     $F575/62837:   Write data block to disk

    Jump from $F570:

    F575: 20 E9 F5  JSR $F5E9       ; calculate parity for buffer
    F578: 85 3A     STA $3A         ; and save
    F57A: AD 00 1C  LDA $1C00       ; read port B
    F57D: 29 10     AND #$10        ; isolate bit for 'write protect'
    F57F: D0 05     BNE $F586       ; not set, ok
    F581: A9 08     LDA #$08
    F583: 4C 69 F9  JMP $F969       ; 26, 'write protect'

    Jump from $F57F:

    F586: 20 8F F7  JSR $F78F
    F589: 20 10 F5  JSR $F510       ; find block header
    F58C: A2 09     LDX #$09

    Jump from $F58E, $F592:

    F58E: 50 FE     BVC $F58E       ; byte ready?
    F590: B8        CLV
    F591: CA        DEX
    F592: D0 FA     BNE $F58E
    F594: A9 FF     LDA #$FF
    F596: 8D 03 1C  STA $1C03       ; port A (read/write head) to output
    F599: AD 0C 1C  LDA $1C0C
    F59C: 29 1F     AND #$1F
    F59E: 09 C0     ORA #$C0        ; change PCR to output
    F5A0: 8D 0C 1C  STA $1C0C
    F5A3: A9 FF     LDA #$FF
    F5A5: A2 05     LDX #$05
    F5A7: 8D 01 1C  STA $1C01       ; write $FF to disk 5 times
    F5AA: B8        CLV

    Jump from $F5AB, $F5AF:

    F5AB: 50 FE     BVC $F5AB       ; as SYNC characters
    F5AD: B8        CLV
    F5AE: CA        DEX
    F5AF: D0 FA     BNE $F5AB
    F5B1: A0 BB     LDY #$BB

    Jump from $F5BD:

    F5B3: B9 00 01  LDA $0100,Y     ; bytes $1BB to $1FF to disk

    Jump from $F5B6:

    F5B6: 50 FE     BVC $F5B6
    F5B8: B8        CLV
    F5B9: 8D 01 1C  STA $1C01
    F5BC: C8        INY
    F5BD: D0 F4     BNE $F5B3

    Jump from $F5C8:

    F5BF: B1 30     LDA ($30),Y     ; write data buffer (256 bytes)

    Jump from $F5C1:

    F5C1: 50 FE     BVC $F5C1
    F5C3: B8        CLV
    F5C4: 8D 01 1C  STA $1C01
    F5C7: C8        INY
    F5C8: D0 F5     BNE $F5BF

    Jump from $F5CA:

    F5CA: 50 FE     BVC $F5CA       ; byte ready?
    F5CC: AD 0C 1C  LDA $1C0C
    F5CF: 09 E0     ORA #$E0        ; PCR to input again
    F5D1: 8D 0C 1C  STA $1C0C
    F5D4: A9 00     LDA #$00
    F5D6: 8D 03 1C  STA $1C03       ; port A (read/write head) to input
    F5D9: 20 F2 F5  JSR $F5F2
    F5DC: A4 3F     LDY $3F
    F5DE: B9 00 00  LDA $00,Y
    F5E1: 49 30     EOR #$30        ; convert command code 'write' to 'verify'
    F5E3: 99 00 00  STA $00,Y
    F5E6: 4C B1 F3  JMP $F3B1

        Previous Page / Next Page