$E60A/58890: Prepare error number and message
Jump from $C8EC, $D641:
E60A: 48 PHA ; save error code
E60B: 86 F9 STX $F9 ; drive number
E60D: 8A TXA
E60E: 0A ASL ; times 2
E60F: AA TAX ; as pointer
E610: B5 06 LDA $06,X
E612: 85 80 STA $80 ; get track
E614: B5 07 LDA $07,X
E616: 85 81 STA $81 ; and sector number
E618: 68 PLA ; get error code back
E619: 29 0F AND #$0F ; isolate bits 0-3
E61B: F0 08 BEQ $E625 ; zero, then 24, 'read error'
E61D: C9 0F CMP #$0F ; 15?
E61F: D0 06 BNE $E627
E621: A9 74 LDA #$74 ; 74, 'drive not ready'
E623: D0 08 BNE $E62D ; 6
Jump from $E61B:
E625: A9 06 LDA #$06 ; add $20
Jump from $E61F:
E627: 09 20 ORA #$20
E629: AA TAX
E62A: CA DEX
E62B: CA DEX ; subtract two
E62C: 8A TXA
Jump from $E623:
E62D: 48 PHA ; save error number
E62E: AD 2A 02 LDA $022A ; number of the disk command
E631: C9 00 CMP #$00 ; OPEN or VALIDATE?
E633: D0 0F BNE $E644 ; no
E635: A9 FF LDA #$FF
E637: 8D 2A 02 STA $022A
E63A: 68 PLA ; get error number back
E63B: 20 C7 E6 JSR $E6C7 ; generate error message
E63E: 20 42 D0 JSR $D042 ; load BAM
E641: 4C 48 E6 JMP $E648 ; set error message
Jump from $E633:
E644: 68 PLA
Previous Page / Next Page