$F510/62736: Read block header
Jump from $F50A, $F589, $F6CA:
F510: A5 3D LDA $3D ; drive number
F512: 0A ASL
F513: AA TAX
F514: B5 12 LDA $12,X ; ID1
F516: 85 16 STA $16 ; save
F518: B5 13 LDA $13,X ; ID2
F51A: 85 17 STA $17 ; save
F51C: A0 00 LDY #$00
F51E: B1 32 LDA ($32),Y ; get track and
F520: 85 18 STA $18
F522: C8 INY
F523: B1 32 LDA ($32),Y ; sector number from buffer
F525: 85 19 STA $19
F527: A9 00 LDA #$00
F529: 45 16 EOR $16
F52B: 45 17 EOR $17 ; calculate parity for block header
F52D: 45 18 EOR $18
F52F: 45 19 EOR $19
F531: 85 1A STA $1A ; and save
F533: 20 34 F9 JSR $F934
F536: A2 5A LDX #$5A ; 90 attempts
Jump from $F54F:
F538: 20 56 F5 JSR $F556 ; wait for SYNC
F53B: A0 00 LDY #$00
Jump from $F53D, $F54B:
F53D: 50 FE BVC $F53D ; byte ready?
F53F: B8 CLV
F540: AD 01 1C LDA $1C01 ; read data from block header
F543: D9 24 00 CMP $24,Y ; compare with saved data
F546: D0 06 BNE $F54E ; not the same, try again
F548: C8 INY
F549: C0 08 CPY #$08 ; 8 bytes read?
F54B: D0 F0 BNE $F53D ; no
F54D: 60 RTS
Jump from $F546:
F54E: CA DEX ; decrement counter
F54F: D0 E7 BNE $F538 ; not yet zero?
F551: A9 02 LDA #$02
Jump from $F560:
F553: 4C 69 F9 JMP $F969 ; 20, 'read error'
Previous Page / Next Page