$C3CA/50122: Verify drive number
Jump from $C44F, $C829, $D84F, $DA9E:
C3CA: A9 00 LDA #$00
C3CC: 85 6F STA $6F
C3CE: 8D 8D 02 STA $028D
C3D1: 48 PHA
C3D2: AE 78 02 LDX $0278 ; number of drive numbers
Jump from $C3E9, $C3ED:
C3D5: 68 PLA
C3D6: 05 6F ORA $6F
C3D8: 48 PHA
C3D9: A9 01 LDA #$01
C3DB: 85 6F STA $6F
C3DD: CA DEX
C3DE: 30 0F BMI $C3EF
C3E0: B5 E2 LDA $E2,X
C3E2: 10 04 BPL $C3E8
C3E4: 06 6F ASL $6F
C3E6: 06 6F ASL $6F
Jump from $C3E2:
C3E8: 4A LSR
C3E9: 90 EA BCC $C3D5
C3EB: 06 6F ASL $6F
C3ED: D0 E6 BNE $C3D5
Jump from $C3DE:
C3EF: 68 PLA
C3F0: AA TAX
C3F1: BD 3F C4 LDA $C43F,X ; get syntax flag
C3F4: 48 PHA
C3F5: 29 03 AND #$03
C3F7: 8D 8C 02 STA $028C
C3FA: 68 PLA
C3FB: 0A ASL
C3FC: 10 3E BPL $C43C
C3FE: A5 E2 LDA $E2
Jump from $C43D:
C400: 29 01 AND #$01 ; isolate drive number
C402: 85 7F STA $7F
C404: AD 8C 02 LDA $028C
C407: F0 2B BEQ $C434
C409: 20 3D C6 JSR $C63D ; initialize drive
C40C: F0 12 BEQ $C420 ; error?
C40E: 20 8F C3 JSR $C38F ; switch to other drive
C411: A9 00 LDA #$00
C413: 8D 8C 02 STA $028C
C416: 20 3D C6 JSR $C63D ; initialize drive
C419: F0 1E BEQ $C439 ; no error?
Jump from $C437:
C41B: A9 74 LDA #$74
C41D: 20 C8 C1 JSR $C1C8 ; 74, 'drive not ready'
Jump from $C40C:
C420: 20 8F C3 JSR $C38F
C423: 20 3D C6 JSR $C63D ; initialize drive
C426: 08 PHP
C427: 20 8F C3 JSR $C38F ; switch to other drive
C42A: 28 PLP
C42B: F0 0C BEQ $C439 ; no error?
C42D: A9 00 LDA #$00
C42F: 8D 8C 02 STA $028C ; number of drives
C432: F0 05 BEQ $C439
Jump from $C407:
C434: 20 3D C6 JSR $C63D ; initialize drive
C437: D0 E2 BNE $C41B ; error?
Jump from $C419, $C42B, $C432:
C439: 4C 00 C1 JMP $C100 ; turn LED on
Jump from $C3FC:
C43C: 2A ROL ; drive number from carry after bit 0
C43D: 4C 00 C4 JMP $C400
Previous Page / Next Page