MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第17回]
●さらなる誤動作の追及を…
やっと誤動作の原因をつきとめて、一度はやれやれと安堵したのでありましたが、念のためあれこれ操作をしていますとポロリポロリと誤動作するときがあります。
リセットして表示がオール0のままにしてしばらく置いておきますと、知らないうちに表示が変わっていたり、レジスタLEDが勝手にカウントアップ表示をして7セグメントの表示もでたらめになってしまうこともあります。
やっぱりまだどこかがおかしいようです。
もうすこしZB28Kを使ってBASICプログラムで自動STEPを続けてみることにしました。
せっかくですので、もう少し記録データを見やすくするためBASICプログラムをちょっとばかり改良しました。
●改良したBASICプログラムです(ZB28K)
10 A=0 20 OUT $83,$9B 30 OUT $87,$90:'A=IN B,C=OUT 40 WAH%=$FF:WAL%=$FF:WD%=$FF 50 OUT $86,$FF 60 A%=IN($80) 70 B%=IN($81) 80 C%=IN($82) 90 RW%=IN($84) 100 MR%=BIT(RW%,7) 110 MW%=BIT(RW%,6) 120 IR%=BIT(RW%,2) 130 IW%=BIT(RW%,3) 140 A15%=BIT(B%,3) 150 A14%=BIT(B%,2) 160 A13%=BIT(B%,5) 170 A12%=BIT(B%,4) 180 A11%=BIT(B%,7) 190 A10%=BIT(B%,6) 200 A9%=BIT(C%,2) 210 A8%=BIT(C%,3) 220 A7%=BIT(C%,0) 230 A6%=BIT(C%,1) 240 A5%=BIT(C%,5) 250 A4%=BIT(C%,4) 260 A3%=BIT(C%,7) 270 A2%=BIT(C%,6) 280 A1%=BIT(B%,1) 290 A0%=BIT(B%,0) 300 D7%=BIT(A%,1) 310 D6%=BIT(A%,0) 320 D5%=BIT(A%,3) 330 D4%=BIT(A%,2) 340 D3%=BIT(A%,6) 350 D2%=BIT(A%,7) 360 D1%=BIT(A%,4) 370 D0%=BIT(A%,5) 380 IF MR%*MW%*IR%*IW%=1 GOTO 510 390 AH%=A15%*128+A14%*64+A13%*32+A12%*16+A11%*8+A10%*4+A9%*2+A8% 400 AL%=A7%*128+A6%*64+A5%*32+A4%*16+A3%*8+A2%*4+A1%*2+A0% 410 D%=D7%*128+D6%*64+D5%*32+D4%*16+D3%*8+D2%*4+D1%*2+D0% 420 IF AH%<>WAH% GOTO 450 430 IF AL%<>WAL% GOTO 450 440 IF D%=WD% GOTO 510 450 PRINT HEX$(AH%,2);HEX$(AL%,2);" ";HEX$(D%,2); 460 WAH%=AH%:WAL%=AL%:WD%=D% 470 IF MR%=0 THEN PRINT 480 IF MW%=0 THEN PRINT " MEMWR" 490 IF IR%=0 THEN PRINT " I/ORD" 500 IF IW%=0 THEN PRINT " I/OWR" 510 OUT $86,0 520 GOTO 50 |
0000 C3 FFF8 D7 FFFD 01 0001 3B 0002 00 003B 21 FFFD 01 FFFA 0C 003C EC 003D FF 003E 06 FFFC 03 FFF9 F1 003F 0C 0040 AF FFF9 F1 FFFF 8C 0041 77 FFFB 0C FFF8 D7 FFEC 00 MEMWR 0042 23 FFF8 D7 FFFD 01 0043 05 FFFA 0C FFFF 8C 0044 C2 FFFC 03 FFF9 F1 0045 41 0046 00 0041 77 FFF9 F1 FFFE FF FFED 00 MEMWR 0042 23 FFFE FF FFFC 03 0043 05 FFF8 D7 FFFE FF 0044 C2 FFFB 0C FFF8 D7 0045 41 0046 00 0041 77 FFFF 8C FFFD 01 FFEE 00 MEMWR 0042 23 FFFD 01 FFFA 0C 0043 05 FFFF 8C FFFD 03 0044 C2 FFF9 F1 FFFF FF 0045 41 0046 00 0041 77 FFFE FF FFFF FF FFEF 00 MEMWR 0042 23 FFFC 03 FFF9 F1 0043 05 FFFE FF FFFB FF 0044 C2 FFF8 D7 FFFD 01 0045 41 0046 00 0041 77 FFFD 01 FFFA 0C FFF0 00 MEMWR 0042 23 FFFA 0C FFFF 8C 0043 05 FFFC 03 FFF9 F1 0044 C2 FFFE FF FFFB FF 0045 41 0046 00 0041 77 FFFB FF FFF8 D7 FFF1 00 MEMWR 0042 23 FFF9 F1 FFFE FF 0043 05 FFFB FF FFF8 D7 0044 C2 FFFD 01 FFFA 0C 0045 41 0046 00 0041 77 FFFA 0C FFFF 8C FFF2 00 MEMWR 0042 23 FFFF 8C FFFD 01 0043 05 FFF9 F1 FFFF 8C 0044 C2 FFFF FF FFF9 F1 0045 41 0046 00 0041 77 FFF8 D7 FFFE FF FFF3 00 MEMWR 0042 23 FFFE FF FFFB FF 0043 05 FFF8 D7 FFFD 01 0044 C2 FFFA 0C FFFF 8C 0045 41 0046 00 0041 77 FFFF 8C FFFC 03 FFF4 00 MEMWR 0042 23 FFFC 03 FFF9 F1 0043 05 FFFE FF FFFC FF 0044 C2 FFF8 D7 FFFE FF 0045 41 0046 00 0041 77 FFFD 01 FFFB FF FFF5 00 MEMWR 0042 23 FFFB FF FFF8 D7 0043 05 FFFD 01 FFFA 0C 0044 C2 FFFF 8C FFFC 03 0045 41 0046 00 0041 77 FFFC 03 FFF9 F1 FFF6 00 MEMWR 0042 23 FFF9 F1 FFFE FF 0043 05 FFFC 03 FFF9 F1 0044 C2 FFFE FF FFFB FF 0045 41 0046 00 0041 77 FFFB FF FFF8 D7 FFF7 00 MEMWR 0042 23 FFF8 D7 FFFD 01 0043 05 FFFA 0C FFFB 8C 0044 C2 FFFC 03 FFFA 0C 0045 41 0046 00 0047 21 FFFB FF FFF8 D7 0048 C7 0049 FF 004A 22 FFFA 0C FFFF 8C 004B E2 004C FF FFE2 C7 MEMWR FFE3 FF MEMWR 004D C3 FFF8 D7 FFFD 01 004E 51 004F 00 0051 3E FFFD 01 FFFA 0C 0052 F7 0053 D3 FFFA 0C FFFB 8C 0054 98 0098 F7 I/OWR 0055 31 FFF9 F1 FFFF 8C 0056 D1 0057 FF 0058 CD FFF8 D7 FFFE 01 0059 C0 005A 01 FFD0 00 MEMWR FFCF 5B MEMWR 01C0 21 FFFF 8C FFFC 03 01C1 F4 |