     $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