$C63D/50749:   Test and initalise drive

Jump from $C409, $C416, $C423, $C434, $CB8C:

C63D: A5 68     LDA $68
C63F: D0 28     BNE $C669
C641: A6 7F     LDX $7F         ; drive number
C643: 56 1C     LSR $1C,X       ; disk changed?
C645: 90 22     BCC $C669       ; no, then done
C647: A9 FF     LDA #$FF
C649: 8D 98 02  STA $0298       ; set error flag
C64C: 20 0E D0  JSR $D00E       ; read directory track
C64F: A0 FF     LDY #$FF
C651: C9 02     CMP #$02        ; 20, 'read error'?
C653: F0 0A     BEQ $C65F       ; yes
C655: C9 03     CMP #$03        ; 21, 'read error'?
C657: F0 06     BEQ $C65F       ; yes
C659: C9 0F     CMP #$0F        ; 74, 'drive not ready'?
C65B: F0 02     BEQ $C65F       ; yes
C65D: A0 00     LDY #$00

Jump from $C653, $C657, $C65B:

C65F: A6 7F     LDX $7F         ; drive number
C661: 98        TYA
C662: 95 FF     STA $FF,X       ; save error flag
C664: D0 03     BNE $C669       ; error?
C666: 20 42 D0  JSR $D042       ; load BAM

Jump from $C63F, $C645, $C664:

C669: A6 7F     LDX $7F         ; drive number
C66B: B5 FF     LDA $FF,X       ; transmit error code
C66D: 60        RTS

    Previous Page / Next Page