復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第36回]
●cpm22.z80のバグ(2)
前回からの続きです。
下のCHECKSUMルーチンにはバグがあります。
どこにバグがあるか、おわかりになりますでしょうか?
というところまでが、前回のお話でした。
; ; Compute the check-sum for the directory buffer. Return ; integer sum in (A). ; C8FA 0E80 CHECKSUM: LD C,128 ;length of buffer. C8FC 2AC0D1 LD HL,(DIRBUF) ;get its location. C8FF AF XOR A ;clear summation byte. C900 C600 CHKSUM1:ADD A,M ;and compute sum ignoring carries. C902 23 INC HL C903 0D DEC C C904 C200C9 JP NZ,CHKSUM1 C907 C9 RET |
2043 CHKSUM1:ADD A,M ;and compute sum ignoring carries. 2168 SBC A,M ;set carry if no more names. 3340 SBC A,M 3348 SBC A,M |
2043 CHKSUM1:ADD A,(HL) ;and compute sum ignoring carries. 2168 SBC A,(HL) ;set carry if no more names. 3340 SBC A,(HL) 3348 SBC A,(HL) |