結局秋月の通販でカソードコモンの7セグとソースドライバーを手に入れて、作ってみました。
138側は手持ちのトランジスタ(2SA)を使いました。コレクタ電流がちょっと小さいのですが、最近のLEDはカレント少ないので大丈夫でしょう。
この作業で2SAを画像検索したところ以下のような間違えた図が一番最初に出てきます。
左の図のエミッタとコレクタが逆です。連絡したいのですが、連絡先がありません。誰か知ってる人いたら伝えてください。
あと8279の使い方でClearを1100CCFAと書いているページがあるのですが、正しくは110CCCFAです。
ネットって信用できないもんですね。
テストプログラムはこんな感じです。
;
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, 0A0H
OUT CTL
MVI A, 32H
OUT CTL
MVI A, 50H
OUT CTL
MVI A, 0D0H
OUT CTL
MVI A, 90H
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
LXI H,SEG
MVI B, 00H
LDA COUNT
MOV C,A
DAD B
INR A
MVI B, 10H
CMP B
JNZ STCOUNT
MVI A, 00H
STCOUNT
STA COUNT
MOV A,M
OUT DAT
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
COUNT DB 0
SEG DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 27H
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
表示位置は90Hで設定していて、0番目でインクリメントありの設定です。
モニターでは使えませんが、任意のパターンが表示できるので、なにか面白い使い方を考えてみたいと思います。
40年らいのLED増設計画の夢が叶いました。
RESETはEX-80のバスは負論理で8279は正論理なのでGAL6001で反転して入れてみました。7404の1回路分です。RESETしても表示は残るようです。
module ex80(
input i1,
output o1
);
assign o1 = ~i1;
endmodule