ワンボードマイコンをつくろう!(パソコンの原点はここから始まった)
TK80ソフトコンパチブル!8080、Z80マシン語からBASICまでこれ1台でこなせます
当記事は2009年11月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.5 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆またもやトラブル発生 ND80ZVの説明書作業も大詰めを迎えて、あと一息で販売開始というところまできて、最後の動作確認をしていましたら、おかしなところが出て来てしまいました。 |
[第100回]
●RS232C受信プログラムにミスがありました
前回お見せしたBASICのRS232C受信プログラム(READ #命令)に、ミスがありました。
といって訂正したところで、なにやってるのかわかんないよー、ということなのでしょうけれど。
でも、間違いは間違いですので。
受信エラーが発生すると、SINERが実行されます。
前回のプログラムリストの終わりのところです。
下はエラーを修正したあとのリストです。
39E1 C1 SINER:POP BC;DUMMY =PC 39E2 C1 POP BC 39E3 D1 POP DE 39E4 E1 POP HL 39E5 77 LD (HL),A 39E6 23 INC HL 39E7 3600 LD (HL),00 39E9 3EEF LD A,EF 39EB D398 OUT (98),A 39ED 3E49 ER49:LD A,49 39EF C33631 JP ERRDP |
10 ON ERROR GOTO 90 20 PRINT "START" 30 KETA%=0 40 READ #1,RDATA$,KETA% 50 IF KETA%<=0 GOTO 40 60 PRINT RDATA$; 70 IF RDATA$="END"THEN STOP 80 IF KETA%=40 GOTO 30 ELSE PRINT :GOTO 30 90 PRINT "err line=";ERL,"err=";ERR,"232c err=";KETA% >r. START err line=40 err=73 232c err=4 |
0866 21C005 NDMON3:LD HL,LEDDPA 0869 22CAFF LD (RST6JA),HL 086C 211606 LD HL,KEYINA 086F 22C7FF LD (RST5JA),HL 0872 215104 LD HL,TK2RST1 0875 22BBFF LD (RST1JA),HL ; 0878 21D209 LD HL,BREAK 087B 22CDFF LD (RST7JA),HL 087E 21CFFF LD HL,RMODE 0881 0629 LD B,29 0883 AF XOR A 0884 77 LD (HL),A 0885 23 INC HL 0886 10FC DJNZ FC 0888 2100F8 LD HL,USTOP 088B 22E2FF LD (SPL),HL ; 088E 3EFF START1:LD A,FF 0890 D398 OUT (98),A 0892 31B8FF LD SP,SPTOP 0895 CDC9FF CALL LEDDP 0898 CDC6FF START2:CALL KEYIN |
; RUN 09A6 2AEEFF RUN:LD HL,(ADRSL) 09A9 22E0FF LD (PCL),HL 09AC 7C LD A,H 09AD B5 OR L 09AE F3 DI 09AF CA0000 JP Z,$0000 ; ; CONTINUE 09B2 31D4FF CONT:LD SP,LDSH 09B5 E1 POP HL 09B6 D1 POP DE 09B7 C1 POP BC 09B8 D9 EXX 09B9 F1 POP AF 09BA 08 EX AF,AF' 09BB FDE1 POP IY 09BD DDE1 POP IX 09BF 31E6FF LD SP,EREG 09C2 D1 POP DE 09C3 C1 POP BC 09C4 F1 POP AF 09C5 ED7BE2FF LD SP,(SPL) 09C9 2AE0FF LD HL,(PCL) 09CC E5 PUSH HL 09CD 2AE4FF LD HL,(LREG) 09D0 FB EI 09D1 C9 RET ; |