EX-80のバスに以前日米商事で108円で入手したuPD8279つないでみました。
このユニバーサル基板は亜土電子で買ったものだった気がします。古くなってハンダのノリ悪いです。
8279はIntelのi8279がオリジナルで、セカンドソースがいろいろな会社から発売されていました。
Z80で使われている方がいて大変参考になりました。
CSにはA4を直接つなぎました。
デコーダーはストックの74LS138(HCじゃなく)を使いました。EX-80の頃はLSが標準品でした。
テストプログラムです。
;
TVCLR EQU 036CH
TVDSP EQU 02DEH
; 8279 ports
DAT EQU 0EEH
CTL EQU 0EFH
ORG 8200H
CALL TVCLR
MVI A, 00H
OUT CTL
MVI A, 38H
OUT CTL
MVI A, 50H
OUT CTL
IN CTL
STA LAST
CALL DEBUG
MVI B, 08H
CALL PAD
LOOP
LDA LAST
MOV B, A
IN CTL
CMP B
JZ LOOP
STA LAST
CALL DEBUG
LDA LAST
MVI B, 07H
ANA B
MVI B, 00H
CMP B
JNZ DATIN
MVI B, 08H
CALL PAD
JMP LOOP
DATIN
IN DAT
CALL DEBUG
MVI B, 06H
CALL PAD
JMP LOOP
PAD
PUSH B
MVI A, 20H
CALL TVDSP
POP B
DCR B
JNZ PAD
RET
DEBUG
STA VAL
RRC
RRC
RRC
RRC
CALL WRITE
LDA VAL
CALL WRITE
RET
WRITE
MOV C, A
MVI B, 0FH
ANA B
MVI B, 0AH
CMP B
JNC ALPH
ADI 30H
CALL TVDSP
RET
ALPH
SUI 0AH
ADI 01H
CALL TVDSP
RET
VAL DB 0
LAST DB 0
アセンブラはやっぱり苦手です。ださださなコードですみません。
とはいえ、ちゃんとEX-80のプログラム書いたのは初めてかもしれない。めんどくさいこと苦手で、当時ハンドアセンブルとかできませんでした。40年越しのプログラミングです。
MBAのasm8080でアセンブリしてexldaでFTDIモジュールからEX-80にダウンロードして実行してみます。
ボタンを押すと反応するのでおそらくちゃんと動いているのではないかと思われます。
通常は00でキーを押すとまず40が返ってきてこれはキーの入力があったことをしめして、次にFIFOのデータの数を返すようです。データを読むと00に戻ります。
私のEX-80は廉価版の7セグが無いタイプのもので、本当は7セグを試したかったのですが、8279はカソードコモンな7セグが必要で手持ちがなかったので、とりあえずkeyboardだけ試してみました。
EX-80の7セグはフェアチャイルド社のDM9368というIC二つでドライブしているのですが、このICはすでにディスコンで手に入りません。DM9368はΛ-1でも使われていて、マイコン創成期に一世を風靡したチップでした。
7セグの点灯につていはこちらが参考になります。
シンクドライバのTD62083AFGはストックがありますが、ソースドライバのTD62783AFGはないのでこれも手に入れる必要があります。
また秋葉に行ける日が来ますように。