2017.1.16
前へ
次へ
ホームページトップへ戻る


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第12回]


●I/O端子の設定

ちょっとまた何日か間が空いてしまいました。
本日も時間がありません。
ほんの少しだけ、さわり程度です。
メモリのCS端子の設定に比べてI/O端子の設定はかなり面倒です。
前回の続きのところからがI/Oの設定なのですが、リストを見直してみましたら、どうにも納得できないおかしなことをやっています。
それであらためてその部分を書き直して、ROMに焼いて動作を確認しました。
下が変更後のプログラムリストです。

[00054] F000  BAA0FF        START0:MOV DX,FFA0;umcs
[00055] F003  B83FE0            MOV AX,E03F;128k,noready
[00056] F006  EF                OUT DX,AX
[00057] F007  BAA2FF            MOV DX,FFA2;lmcs
[00058] F00A  B83F1F            MOV AX,1F3F
[00059] F00D  EF                OUT DX,AX
[00060] F00E  BA78FF            MOV DX,FF78;pdir1
[00061] F011  B8FEFF            MOV AX,FFFE;pcs0 active
[00062] F014  EF                OUT DX,AX
[00063] F015  BAA8FF            MOV DX,FFA8;mpcs
[00064] F018  B8B880            MOV AX,80B8
[00065] F01B  EF                OUT DX,AX
[00066] F01C  BAA4FF            MOV DX,FFA4;pacs
[00067] F01F  B87608            MOV AX,0876;i/o base address=8000
[00068] F022  EF                OUT DX,AX
[00069] F023  BA8380            MOV DX,8083;**** 82c55
[00070] F026  B080              MOV AL,80;**** all port out
[00071] F028  EE                OUT DX,AL;****
[00072] F029  8CC8              MOV AX,CS;*****
[00073] F02B  BA8080            MOV DX,8080;*****
[00074] F02E  EF                OUT DX,AX;*****

60行からがI/O設定のところです。
変更前のリストは[第3回]にありますが、比較のために下に再掲します。
行のトップを2行削除したため行番号がずれています。
それは別にして、今回はどこを変更したかといいますと、下のリストの62行から67行を削除しました。
削除した部分が分かり易いように、空行を入れてあります。

[00059] F00D  BAA2FF            MOV DX,FFA2;lmcs
[00060] F010  B83F1F            MOV AX,1F3F
[00061] F013  EF                OUT DX,AX

[00062] F014  BA70FF            MOV DX,FF70;piomode0
[00063] F017  B80100            MOV AX,0001
[00064] F01A  EF                OUT DX,AX
[00065] F01B  BA72FF            MOV DX,FF72;pdir0
[00066] F01E  B80EFC            MOV AX,FC0E
[00067] F021  EF                OUT DX,AX

[00068] F022  BA78FF            MOV DX,FF78;pdir1
[00069] F025  B8FEFF            MOV AX,FFFE;pacs active
[00070] F028  EF                OUT DX,AX
[00071] F029  BAA8FF            MOV DX,FFA8;mpcs
[00072] F02C  B8B880            MOV AX,80B8
[00073] F02F  EF                OUT DX,AX
[00074] F030  BAA4FF            MOV DX,FFA4;pacs
[00075] F033  B87608            MOV AX,0876;i/o base address=8000
[00076] F036  EF                OUT DX,AX
[00077] F037  BA8380            MOV DX,8083;**** 82c55
[00078] F03A  B080              MOV AL,80;**** all port out
[00079] F03C  EE                OUT DX,AL;****

それでよいのかどうかをROMに焼いて確認したのですが、上記削除後も正常に動作することが確認できました。
初期設定として必要のない余計なことをやっていたということになります。

何がなんだかわけがわからん、というお叱りもあろうかと思いますが、本日は時間がありません。
次回以降に説明いたしますので、ご容赦願います。

16ビットマイコンボードの製作[第12回]
2017.1.16upload

前へ
次へ
ホームページトップへ戻る