$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