マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[総合第100回]
●27C1001のテスト
前回は27C4001のテストを行ないました。
ROM/RAM/RTCボードには増設ROMとして、27C4001、27C1001、27C512、27C256を実装することができます。
増設と書きましたがバンクROMアドレスの設定がマイコンボード本体上のシステムROM(バンク00)を含む設計になっているため、ROM/RAM/RTCボードにROMを実装するとマイコンボード上のシステムROMと競合してしまいます。
ですからROM/RAM/RTCボードに実装するROMはアドレス00000〜07FFFにシステムプログラムを書き込んでおく必要があります。
実際に27C1001のテスト用ROMを作成するにあたっては、すでに作成済み、テスト済みの27C4001がありますから、その00000〜1FFFFを27C1001にコピーすればよいことになります。
その作業は4M/1MROM WRITERで行ないました。
しっかり役に立っております。
実装するROMに合わせて2Pディップスイッチと8PディップスイッチのbP〜bUを設定します。

2Pディップスイッチは27C256以外はbP=ON、bQ=OFFにします。
8Pディップスイッチは27C4001はbP、bR、bTがON、bQ、bS、bUがOFFにします。
それに対して27C1001はbR〜bUは27C4001と同じですが、bPとbQは27C4001とは逆にbP=OFF、bQ=ONにします。
27C1001については「ROM/RAM/RTCボードの製作」[第30回]に書きましたように、今年6月にテストをしたようです。
ノートにはそのように書いてありますし、ROMもみつかりました。
しかし肝心の記憶がまるでありませぬ。
われながらあきれ果てます。
多分ND80Z3.5システムプログラムを27C1001に書いて、それを当時の試作版のROM/RAM/RTCボードに実装して、ND80Z3.5が正常に動作することを確認した、というあたりのテストだったと思います。
せっかく前回で本格的に27C4001のテストをしたことでもありますから、今回は同じようにして27C1001のテストをすることにします。
前回は27C4001用のテストプログラム4mromt2を作りましたが、その一部を書き換えれば27C1001用のテストプログラムになりますから、そのようにしました。
下が今回作った27C1001用のテストプログラム1mromt2のアセンブルリストです。
2017/10/5 10:29 1mromt2.txt
END=9429
;;; 1M WRITER ROM read test
;from 4mromt2
; 17/9/28 9/29 10/5
;
ORG $9300
;
ADISP=$1015
DEDP=$1018
REENT=$1033
SPDP=$1039
HXDP2=$104B
HXDP4=$104E
CRLF2=$107B
;
;address C,H,L
;
9300 C30693 JP RTEST
9303 10 BKADRS:DB 10
9304 00 CSBF:DB 00
9305 00 DB 00
9306 110080 RTEST:LD DE,$8000
9309 3E10 LD A,10;*****
930B 320393 LD (BKADRS),A
930E D39C OUT (9C),A
9310 210000 LD HL,$0000
9313 220493 LD (CSBF),HL
9316 0E00 LD C,00
9318 210080 LD HL,$8000
931B 7C RTEST1:LD A,H
931C E67F AND 7F
931E 44 LD B,H
931F 67 LD H,A
9320 7E LD A,(HL)
9321 E5 PUSH HL
9322 D5 PUSH DE
9323 2A0493 LD HL,(CSBF)
9326 1600 LD D,00
9328 5F LD E,A
9329 19 ADD HL,DE
932A 220493 LD (CSBF),HL
932D D1 POP DE
932E E1 POP HL
932F 60 LD H,B
9330 B9 CP C
9331 41 LD B,C
9332 C4EA93 CALL NZ,ERR
9335 1B DEC DE
9336 7A LD A,D
9337 B3 OR E
9338 C24D93 JP NZ,RTEST12
933B 3A0393 LD A,(BKADRS)
933E C610 ADD A,10
9340 FE40 CP 40;********
9342 CAB693 JP Z,END
9345 320393 LD (BKADRS),A
9348 D39C OUT (9C),A
934A 110080 LD DE,$8000
934D 23 RTEST12:INC HL
934E 7C LD A,H
934F B5 OR L
9350 C25793 JP NZ,RTEST2
9353 CD2094 CALL ASTDP
9356 0C INC C
9357 7C RTEST2:LD A,H
9358 E67F AND 7F
935A 44 LD B,H
935B 67 LD H,A
935C 7E LD A,(HL)
935D 60 LD H,B
935E BD CP L
935F 45 LD B,L
9360 C4EA93 CALL NZ,ERR
9363 1B DEC DE
9364 7A LD A,D
9365 B3 OR E
9366 C27B93 JP NZ,RTEST22
9369 3A0393 LD A,(BKADRS)
936C C610 ADD A,10
936E FE40 CP 40;*******
9370 CAB693 JP Z,END
9373 320393 LD (BKADRS),A
9376 D39C OUT (9C),A
9378 110080 LD DE,$8000
937B 23 RTEST22:INC HL
937C 7C LD A,H
937D B5 OR L
937E C28593 JP NZ,RTEST3
9381 CD2094 CALL ASTDP
9384 0C INC C
9385 7C RTEST3:LD A,H
9386 E67F AND 7F
9388 44 LD B,H
9389 67 LD H,A
938A 7E LD A,(HL)
938B 60 LD H,B
938C BC CP H
938D 44 LD B,H
938E C4EA93 CALL NZ,ERR
9391 1B DEC DE
9392 7A LD A,D
9393 B3 OR E
9394 C2A993 JP NZ,RTEST32
9397 3A0393 LD A,(BKADRS)
939A C610 ADD A,10
939C FE40 CP 40;*******
939E CAB693 JP Z,END
93A1 320393 LD (BKADRS),A
93A4 D39C OUT (9C),A
93A6 110080 LD DE,$8000
93A9 23 RTEST32:INC HL
93AA 7C LD A,H
93AB B5 OR L
93AC C21B93 JP NZ,RTEST1
93AF CD2094 CALL ASTDP
93B2 0C INC C
93B3 C31B93 JP RTEST1
93B6 AF END:XOR A
93B7 D39C OUT (9C),A
93B9 E5 PUSH HL
93BA 11E193 LD DE,ENDT
93BD 3E0D LD A,0D
93BF CD1810 CALL DEDP
93C2 61 LD H,C
93C3 CD4B10 CALL HXDP2
93C6 E1 POP HL
93C7 CD4E10 CALL HXDP4
93CA CD7B10 CALL CRLF2
93CD 11E693 LD DE,CST
93D0 3E0D LD A,0D
93D2 CD1810 CALL DEDP
93D5 2A0493 LD HL,(CSBF)
93D8 CD4E10 CALL HXDP4
93DB CD7B10 CALL CRLF2
93DE C33310 JP REENT
;
93E1 45 ENDT:DB 45;E
93E2 4E DB 4E;N
93E3 44 DB 44;D
93E4 3D DB 3D;=
93E5 0D DB 0D
;
93E6 43 CST:DB 43;C
93E7 53 DB 53;S
93E8 3D DB 3D;=
93E9 0D DB 0D
;
93EA E5 ERR:PUSH HL
93EB D5 PUSH DE
93EC C5 PUSH BC
93ED F5 PUSH AF
93EE E5 PUSH HL
93EF AF XOR A
93F0 D39C OUT (9C),A
93F2 61 LD H,C
93F3 CD4B10 CALL HXDP2
93F6 E1 POP HL
93F7 CD4E10 CALL HXDP4
93FA CD3910 CALL SPDP
93FD 60 LD H,B
93FE CD4B10 CALL HXDP2
9401 3E2D LD A,2D
9403 CD1510 CALL ADISP
9406 F1 POP AF
9407 67 LD H,A
9408 CD4B10 CALL HXDP2
940B 111B94 LD DE,ERRT
940E AF XOR A
940F CD1810 CALL DEDP
9412 C1 POP BC
9413 D1 POP DE
9414 E1 POP HL
9415 3A0393 ERR2:LD A,(BKADRS)
9418 D39C OUT (9C),A
941A C9 RET
;
941B 20 ERRT:DB 20
941C 45 DB 45;E
941D 52 DB 52;R
941E 52 DB 52;R
941F 0D DB 0D
;
9420 D39C ASTDP:OUT (9C),A
9422 3E2A LD A,2A
9424 CD1510 CALL ADISP
9427 C31594 JP ERR2
;
ADISP =1015 ASTDP =9420 BKADRS =9303
CRLF2 =107B CSBF =9304 CST =93E6
DEDP =1018 END =93B6 ENDT =93E1
ERR =93EA ERR2 =9415 ERRT =941B
HXDP2 =104B HXDP4 =104E REENT =1033
RTEST =9306 RTEST1 =931B RTEST12 =934D
RTEST2 =9357 RTEST22 =937B RTEST3 =9385
RTEST32 =93A9 SPDP =1039
|
変更したのはアドレス9340、936E、939Cの3箇所です。
ここは4mromt2ではADD A,10のあとすぐにJP Z,ENDになっていました。
27C4001の最終バンクはF0なので、そのあと10を加算すれば結果は00になりますから、すぐにJP Z命令を使っています。
27C1001の場合には最終バンクは30なので、そのあと10を加算して結果が40になれば最終バンクまで完了したことになります。
そこでADD A,10とJP Z,ENDの間にCP 40を入れました。
テストに使う27C1001は27C4001のときと同じ要領で、アドレス00000〜07FFF(バンク00)にND80Z3.5システムプログラムを書き、アドレス08000(バンク10)〜1FFFF(バンク30)にはテストデータを書きました。
下は1mromt2.binを実行したときのログです。
logfile nd80zlog\10051030.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** ndwr2h.bin loaded,from E23F to E535 >/ld 1mromt2.bin,9300 loading 1MROMT2.BIN ...012a(298)bytes loaded,from 9300 to 9429 >jp 9300 *END=01FFFF CS=5555 >/exit 0000 00C3 - リモート接続を終了しました logfile closed at Thu Oct 05 10:31:12 2017 |
エラーブレークすることなく正常に終了しました。
27C1001も動作テストOKです。
●27C256
27C256はROM/RAM/RTCボードを作ったとき、最初にND80Z3.5のシステムROMをROMソケットに実装して、ND80Z3.5が正常に動作することを確認しましたから、それで動作確認は済んでいます。
ですけれど、ここでは念のためにもう一度27C256についても動作を確認しておくことにしました。
27C256は、ICのピン数が27C4001、27C1001よりも4ピン少ないのでICソケットに実装するときに間違えないように注意する必要があります。

写真のように1ピン側(左側)の上下各2ピンを空けて右側に寄せて実装します。
27C256を実装するときのDS1について、考え違いをしていたことがわかりました。
そのことについては後で書くことにします。
DS2はbP〜bR、bTがOFFでbSとbUをONにします。
そのように設定したROM/RAM/RTCボードをND80Z3.5(試作版)に接続してテスト中の写真です。
ND80Z3.5にはシステムROMは実装されていません。
ROM/RAM/RTCボードに実装したシステムROMが生きています。
左側82C55入出力用26pinコネクタに接続しているのは4M/1MROM WRITERです。
CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第100回]
2017.10.6upload
前へ
次へ
ホームページトップへ戻る