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

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第103回]


●27C512のテスト

前回の続きです。
27C512も書き込みできるように改造した27C256WRITERを使って、27C512の0000〜7FFFにND80Z3.5システムプログラムを書き込んで、それをROM/RAM/RTCボードに接続したのですが、ND80Z3.5は全く起動してくれませんでした。
最初は512WRITERの書き込みプログラムに問題があって、うまく書き込みができていないのかと疑って、書き込み済みの27C512の内容を確認してみたのですが、ちゃんと正しく書き込みできています。
ということになりますと疑うべきはROM/RAM/RTCボードということになります。

じょーだんじゃないよお。
ここまできて。
そういう冗談はほんとやめてほしいなあ。

などとぼやきつつROM/RAM/RTCボードの回路図を眺めていましたら。
なんだあ?
なんでこんなバカなことをやっておるのだ?

下は「ROM/RAM/RTCボードの製作」[第32回]でお見せしたメモリ部分の回路図です。

問題はディップスイッチの設定にありました。
というよりもそもそもディップスイッチの回路に問題があったのでした。
なんでこんなおばかな回路にしてしまったのか?
何回も回路図を見ていながらなぜ気が付かなかったのか。
なんとも情けない限りです。
DS1とDS2のbR、bSが完全にダブッています。

DS1は27C512を追加するために新たに設けたものでしたが、そもそも追加などする必要はなかったのでした。
つねづね視野の狭さと先入観の強さについては自信を持って(?)自覚していたのでありますが、ここまでくるともうほとんど病気ですなあ(とほほ)。
DS1はもともと不要なものなので、ここはbPをON、bQをOFFにします。
そしてDS2のbRをON、bSをOFFにします。
bTをOFF、bUをONにします。
(DS2の)bP、bQは27C256、27C512は無関係なのでどちらでもよいのですが、OFFにしておきます。
そのようにしたところ、無事にND80Z3.5が起動してくれました。


27C512とディップスイッチのところを大きく撮りました。

めでたしめでたしといいたいところですけれど。
そりゃあ素直には喜べませんです。
むしろ。
ばっかじゃないのぉ、と自分に向かって言いたい気分であります。

●テストプログラム

自分がばかなのは十分熟知しておりますので、いまさらそれを愚痴ってみても始まりませぬ。
気を取り直してテストです。
ROMのテストは27C4001、27C1001でやったのと同じです。
あらかじめ27C512のシステム以外のエリア(27C512の場合には8000〜FFFFの32KBのみ)にテストデータを書いておきます。
そのようにして作成した27C512をROM/RAM/RTCボードに実装して、テストプログラムでテストデータを読み出して正しく読み出せるかどうかをテストします。
27C512用のテストプログラムは27C1001用のテストプログラム1mromt2の一部を書き換えて作成しました。
下が今回作った27C512用のテストプログラム512romt2のアセンブルリストです。

2017/10/6  20:46  512romt2.txt
END=9445
              ;;; 512 ROM read test
              ;from 4mromt2
              ; 17/9/28 9/29 10/5
              ;10/6 from 1mromt2
              ;
                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 C40694     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 FE20       CP 20;********
9342 CAD293     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 CD3C94     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 E5         PUSH HL
935E D5         PUSH DE
935F 2A0493     LD HL,(CSBF)
9362 1600       LD D,00
9364 5F         LD E,A
9365 19         ADD HL,DE
9366 220493     LD (CSBF),HL
9369 D1         POP DE
936A E1         POP HL
936B 60         LD H,B
936C BD         CP L
936D 45         LD B,L
936E C40694     CALL NZ,ERR
9371 1B         DEC DE
9372 7A         LD A,D
9373 B3         OR E
9374 C28993     JP NZ,RTEST22
9377 3A0393     LD A,(BKADRS)
937A C610       ADD A,10
937C FE20       CP 20;*******
937E CAD293     JP Z,END
9381 320393     LD (BKADRS),A
9384 D39C       OUT (9C),A
9386 110080     LD DE,$8000
9389 23       RTEST22:INC HL
938A 7C         LD A,H
938B B5         OR L
938C C29393     JP NZ,RTEST3
938F CD3C94     CALL ASTDP
9392 0C         INC C
9393 7C       RTEST3:LD A,H
9394 E67F       AND 7F
9396 44         LD B,H
9397 67         LD H,A
9398 7E         LD A,(HL)
9399 E5         PUSH HL
939A D5         PUSH DE
939B 2A0493     LD HL,(CSBF)
939E 1600       LD D,00
93A0 5F         LD E,A
93A1 19         ADD HL,DE
93A2 220493     LD (CSBF),HL
93A5 D1         POP DE
93A6 E1         POP HL
93A7 60         LD H,B
93A8 BC         CP H
93A9 44         LD B,H
93AA C40694     CALL NZ,ERR
93AD 1B         DEC DE
93AE 7A         LD A,D
93AF B3         OR E
93B0 C2C593     JP NZ,RTEST32
93B3 3A0393     LD A,(BKADRS)
93B6 C610       ADD A,10
93B8 FE20       CP 20;*******
93BA CAD293     JP Z,END
93BD 320393     LD (BKADRS),A
93C0 D39C       OUT (9C),A
93C2 110080     LD DE,$8000
93C5 23       RTEST32:INC HL
93C6 7C         LD A,H
93C7 B5         OR L
93C8 C21B93     JP NZ,RTEST1
93CB CD3C94     CALL ASTDP
93CE 0C         INC C
93CF C31B93     JP RTEST1
93D2 AF       END:XOR A
93D3 D39C       OUT (9C),A
93D5 E5         PUSH HL
93D6 11FD93     LD DE,ENDT
93D9 3E0D       LD A,0D
93DB CD1810     CALL DEDP
93DE 61         LD H,C
93DF CD4B10     CALL HXDP2
93E2 E1         POP HL
93E3 CD4E10     CALL HXDP4
93E6 CD7B10     CALL CRLF2
93E9 110294     LD DE,CST
93EC 3E0D           LD A,0D
93EE CD1810         CALL DEDP
93F1 2A0493     LD HL,(CSBF)
93F4 CD4E10     CALL HXDP4
93F7 CD7B10     CALL CRLF2
93FA C33310     JP REENT
              ;
93FD 45       ENDT:DB 45;E
93FE 4E         DB 4E;N
93FF 44         DB 44;D
9400 3D         DB 3D;=
9401 0D         DB 0D
              ;
9402 43       CST:DB 43;C
9403 53         DB 53;S
9404 3D         DB 3D;=
9405 0D         DB 0D
              ;
9406 E5       ERR:PUSH HL
9407 D5         PUSH DE
9408 C5         PUSH BC
9409 F5         PUSH AF
940A E5         PUSH HL
940B AF         XOR A
940C D39C       OUT (9C),A
940E 61         LD H,C
940F CD4B10     CALL HXDP2
9412 E1         POP HL
9413 CD4E10         CALL HXDP4
9416 CD3910         CALL SPDP
9419 60             LD H,B
941A CD4B10         CALL HXDP2
941D 3E2D           LD A,2D
941F CD1510         CALL ADISP
9422 F1             POP AF
9423 67             LD H,A
9424 CD4B10         CALL HXDP2
9427 113794         LD DE,ERRT
942A AF             XOR A
942B CD1810         CALL DEDP
942E C1         POP BC
942F D1         POP DE
9430 E1         POP HL
9431 3A0393   ERR2:LD A,(BKADRS)
9434 D39C       OUT (9C),A
9436 C9             RET
              ;
9437 20       ERRT:DB 20
9438 45         DB 45;E
9439 52         DB 52;R
943A 52         DB 52;R
943B 0D         DB 0D
              ;
943C D39C     ASTDP:OUT (9C),A
943E 3E2A       LD A,2A
9440 CD1510     CALL ADISP
9443 C33194     JP ERR2
              ;
ADISP        =1015  ASTDP        =943C  BKADRS       =9303  
CRLF2        =107B  CSBF         =9304  CST          =9402  
DEDP         =1018  END          =93D2  ENDT         =93FD  
ERR          =9406  ERR2         =9431  ERRT         =9437  
HXDP2        =104B  HXDP4        =104E  REENT        =1033  
RTEST        =9306  RTEST1       =931B  RTEST12      =934D  
RTEST2       =9357  RTEST22      =9389  RTEST3       =9393  
RTEST32      =93C5  SPDP         =1039  

あ。
またばかなことをやっておりました。
うーん。
ちょっと脳細胞のリフレッシュが必要かも(今更無理か)。
27C512のテスト対象はアドレス8000〜FFFFのバンク10のみですから、アドレス9340、937C、93B8のところでADD A,10のあとでCP 20なんてやっていないで、ADD A,10も取ってしまっていきなりJP ENDとすればよかったのでした(10に10を加算すれば20になるに決っていますから!)。
そうそう。
937C、93B8がもとの1mromt2.lstとアドレスが変わっているのには理由があります。
今回のテストをしてみて4mromt2、1mromt2のプログラムミスに気が付いて直したからです。
チェックサム値が正しく算出されていませんでした。
データの照合は3箇所で行なっているのにチェックサムの加算は最初の1箇所でしか行なっていませんでした。
今回はそこを直したために1mromt2.lstとアドレスがずれています。

下は512romt2.binを実行したときのログです。

>/ld 512romt2.bin,9300
loading 512ROMT2.BIN ...0146(326)bytes loaded,from 9300 to 9445
>jp 9300
END=00FFFF
CS=2A2B
>/exit
0000 00C3 - 
リモート接続を終了しました
logfile closed at Fri Oct 06 20:47:29 2017

エラーブレークすることなく正常に終了しました。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第103回]
2017.10.9upload

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