マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第98回]
●628128のテスト
前回は628512のテストを行ないました。
ROM/RAM/RTCボードには増設RAMとして、628512、628128、62256を実装することができます。
実装するRAMに合わせて8PディップスイッチのbV、bWを設定します。

628512はbV=ON、bW=OFFにします。
628128と62256はそれとは逆にbV=OFF、bW=ONにします。
前回の628512のテストでは何も問題なく正常に終了しましたので、多分628128も問題になるようなことはないだろうと思いますが、念のため628128についてもテストをしておくことにします。
628128については「ROM/RAM/RTCボードの製作」[第28回]でテストをしました。
そこでは628128用のテストプログラムを作ってテストしましたが、今回は前回作った628512用のプログラムを手直ししたものを作って、それでテストを行ないます。
下が今回作った628128用のテストプログラムram128t3のアセンブルリストです。
2017/10/2 15:5 ram128t3.txt
END=8689
;;;628128 test
;17/10/2
;
ORG $8600
;
REENT=$1033
BKWR=$E9A0
BKRD=$E9A9
;
8600 C31B86 JP WRTEST
;
8603 D39C BKWRT:OUT (9C),A;$E9A0
8605 EB EX DE,HL
8606 71 LD (HL),C
8607 EB EX DE,HL
8608 AF XOR A;don't use JP! see assemble list
8609 D39C OUT (9C),A
860B C9 RET
860C D39C BKRDT:OUT (9C),A;$E9A9
860E 4E LD C,(HL)
860F AF XOR A
8610 D39C OUT (9C),A
8612 C9 RET
8613 D39C BKMVT:OUT (9C),A;$E9B0
8615 EDB0 LDIR
8617 AF XOR A
8618 D39C OUT (9C),A
861A C9 RET;end=$E9B8
;
861B 210386 WRTEST:LD HL,BKWRT
861E 11A0E9 LD DE,BKWR
8621 011800 LD BC,$0018;=24bytes
8624 EDB0 LDIR
8626 06FF LD B,FF
8628 CD4586 WRTEST1:CALL WRSB
862B 78 LD A,B
862C D610 SUB 10
862E 47 LD B,A
862F FEBF CP BF
8631 C22886 JP NZ,WRTEST1
;
8634 06FF RDTEST:LD B,FF
8636 CD6186 RDTEST1:CALL RDSB
8639 78 LD A,B
863A D610 SUB 10
863C 47 LD B,A
863D FEBF CP BF
863F C23686 JP NZ,RDTEST1
8642 C33310 JP REENT
;
8645 110000 WRSB:LD DE,$0000
8648 78 WRSB1:LD A,B
8649 4F LD C,A
864A CDA0E9 CALL BKWR
864D 13 INC DE
864E 78 LD A,B
864F 4B LD C,E
8650 CDA0E9 CALL BKWR
8653 13 INC DE
8654 7A LD A,D
8655 FE80 CP 80
8657 C8 RET Z
8658 78 LD A,B
8659 4A LD C,D
865A CDA0E9 CALL BKWR
865D 13 INC DE
865E C34886 JP WRSB1
;
8661 210000 RDSB:LD HL,$0000
8664 78 RDSB1:LD A,B
8665 CDA9E9 CALL BKRD
8668 79 LD A,C
8669 B8 CP B
866A C28986 JP NZ,ERR
866D 23 INC HL
866E 78 LD A,B
866F CDA9E9 CALL BKRD
8672 79 LD A,C
8673 BD CP L
8674 C28986 JP NZ,ERR
8677 23 INC HL
8678 7C LD A,H
8679 FE80 CP 80
867B C8 RET Z
867C 78 LD A,B
867D CDA9E9 CALL BKRD
8680 79 LD A,C
8681 BC CP H
8682 C28986 JP NZ,ERR
8685 23 INC HL
8686 C36486 JP RDSB1
8689 00 ERR:NOP;break point set
;
BKMVT =8613 BKRD =E9A9 BKRDT =860C
BKWR =E9A0 BKWRT =8603 ERR =8689
RDSB =8661 RDSB1 =8664 RDTEST =8634
RDTEST1 =8636 REENT =1033 WRSB =8645
WRSB1 =8648 WRTEST =861B WRTEST1 =8628
|
前回の628512テストプログラムram512t3を2箇所変更しただけです。
アドレス862Fと863DのCP FFをCP BFに直しただけです。
628512はバンクFFから10ずつ減じて0Fまで16バンクをテストしますから、10を減じてFFになったところで終了します。
628128はバンクFF、EF、DF、CFの4バンクですから10を減じてBFになったところで終了します。
下はram128t3.binを実行したときのログです。
logfile nd80zlog\10021541.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** ndwr2h.bin loaded,from E23F to E535 >/ld ram128t3.bin,8600 loading RAM128T3.BIN ...008a(138)bytes loaded,from 8600 to 8689 >bp 8689 >jp 8600 >/exit 0000 00C3 - リモート接続を終了しました logfile closed at Mon Oct 02 15:43:20 2017 |
エラーブレークすることなく正常に終了しました。
628128も動作テストOKです。
●62256のテスト
628512と628128のテストを行ないましたから、62256についてもテストをしておくことにしました。
62256は8Pディップスイッチの設定は628128と同じですが、ICのピン数が628512、628128よりも4ピン少ないのでICソケットに実装するときに間違えないように注意する必要があります。

写真のように1ピン側(左側)の上下各2ピンを空けて右側に寄せて実装します。
62256用のテストプログラムもram512t3をもとにして新たに作成しましたが、62256はFFの1バンクだけをテストするだけですから、バンクアドレスの10を減ずるところがなくなって、その分簡単になっています。
lo2017/10/2 15:46 ram256t3.txt
END=8677
;;;62256 test
;17/10/2
;
ORG $8600
;
REENT=$1033
BKWR=$E9A0
BKRD=$E9A9
;
8600 C31B86 JP WRTEST
;
8603 D39C BKWRT:OUT (9C),A;$E9A0
8605 EB EX DE,HL
8606 71 LD (HL),C
8607 EB EX DE,HL
8608 AF XOR A;don't use JP! see assemble list
8609 D39C OUT (9C),A
860B C9 RET
860C D39C BKRDT:OUT (9C),A;$E9A9
860E 4E LD C,(HL)
860F AF XOR A
8610 D39C OUT (9C),A
8612 C9 RET
8613 D39C BKMVT:OUT (9C),A;$E9B0
8615 EDB0 LDIR
8617 AF XOR A
8618 D39C OUT (9C),A
861A C9 RET;end=$E9B8
;
861B 210386 WRTEST:LD HL,BKWRT
861E 11A0E9 LD DE,BKWR
8621 011800 LD BC,$0018;=24bytes
8624 EDB0 LDIR
8626 06FF LD B,FF
8628 CD3386 WRTEST1:CALL WRSB
;
862B 06FF RDTEST:LD B,FF
862D CD4F86 RDTEST1:CALL RDSB
8630 C33310 JP REENT
;
8633 110000 WRSB:LD DE,$0000
8636 78 WRSB1:LD A,B
8637 4F LD C,A
8638 CDA0E9 CALL BKWR
863B 13 INC DE
863C 78 LD A,B
863D 4B LD C,E
863E CDA0E9 CALL BKWR
8641 13 INC DE
8642 7A LD A,D
8643 FE80 CP 80
8645 C8 RET Z
8646 78 LD A,B
8647 4A LD C,D
8648 CDA0E9 CALL BKWR
864B 13 INC DE
864C C33686 JP WRSB1
;
864F 210000 RDSB:LD HL,$0000
8652 78 RDSB1:LD A,B
8653 CDA9E9 CALL BKRD
8656 79 LD A,C
8657 B8 CP B
8658 C27786 JP NZ,ERR
865B 23 INC HL
865C 78 LD A,B
865D CDA9E9 CALL BKRD
8660 79 LD A,C
8661 BD CP L
8662 C27786 JP NZ,ERR
8665 23 INC HL
8666 7C LD A,H
8667 FE80 CP 80
8669 C8 RET Z
866A 78 LD A,B
866B CDA9E9 CALL BKRD
866E 79 LD A,C
866F BC CP H
8670 C27786 JP NZ,ERR
8673 23 INC HL
8674 C35286 JP RDSB1
8677 00 ERR:NOP;break point set
;
BKMVT =8613 BKRD =E9A9 BKRDT =860C
BKWR =E9A0 BKWRT =8603 ERR =8677
RDSB =864F RDSB1 =8652 RDTEST =862B
RDTEST1 =862D REENT =1033 WRSB =8633
WRSB1 =8636 WRTEST =861B WRTEST1 =8628
|
下はram256t3.binを実行したときのログです。
logfile nd80zlog\10021553.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** ndwr2h.bin loaded,from E23F to E535 >/ld ram256t3.bin,8600 loading RAM256T3.BIN ...0078(120)bytes loaded,from 8600 to 8677 >bp 8677 >jp 8600 >/exit 0000 00C3 - リモート接続を終了しました logfile closed at Mon Oct 02 15:54:20 2017 |
エラーブレークすることなく正常に終了しました。
62256も動作テストOKです。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第98回]
2017.10.4upload
前へ
次へ
ホームページトップへ戻る