2017.10.6
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
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

前へ
次へ
ホームページトップへ戻る