$F698/63128: Compare written data with data on disk
Jump from $F693:
F698: 20 E9 F5 JSR $F5E9 ; calculate parity for data buffer
F69B: 85 3A STA $3A ; and save
F69D: 20 8F F7 JSR $F78F
F6A0: 20 0A F5 JSR $F50A ; find start of data block
F6A3: A0 BB LDY #$BB
Jump from $F6B1:
F6A5: B9 00 01 LDA $0100,Y ; data from buffer
Jump from $F6A8:
F6A8: 50 FE BVC $F6A8 ; byte ready?
F6AA: B8 CLV
F6AB: 4D 01 1C EOR $1C01 ; compare with data from disk
F6AE: D0 15 BNE $F6C5 ; not equal, then error
F6B0: C8 INY
F6B1: D0 F2 BNE $F6A5
Jump from $F6C0:
F6B3: B1 30 LDA ($30),Y ; data from buffer
Jump from $F6B5:
F6B5: 50 FE BVC $F6B5
F6B7: B8 CLV
F6B8: 4D 01 1C EOR $1C01 ; compare with data from disk
F6BB: D0 08 BNE $F6C5 ; not equal, then error
F6BD: C8 INY
F6BE: C0 FD CPY #$FD
F6C0: D0 F1 BNE $F6B3
F6C2: 4C 18 F4 JMP $F418 ; error free termination
Jump from $F6AE, $F6BB:
F6C5: A9 07 LDA #$07
F6C7: 4C 69 F9 JMP $F969 ; 25, 'write error'
Previous Page / Next Page