ワンボードマイコンをつくろう!(パソコンの原点はここから始まった)
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
;
|