マイコン独立大作戦
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
前へ
次へ
ホームページトップへ戻る