Error-Routine des Controllers ($e60a)
A7AE: 48 PHA Fehlernummer merken
A7AF: 86 6C STX $6C Puffernummer bzw Jobspeichernummer merken
A7B1: 8A TXA
A7B2: 0A ASL (Index fuer 2-Byte Tabelle)
A7B3: AA TAX
A7B4: B5 0B LDA $0B,X T&S des Fehlers holen
A7B6: 85 4D STA $4D
A7B8: B5 0C LDA $0C,X
A7BA: 85 4E STA $4E
A7BC: 68 PLA Fehlernummer zurueckholen
Job-Errorcodes in DOS-Errorcodes umwandeln
A7BD: 29 0F AND #$0F Fehlercode = $10 ?
A7BF: F0 10 BEQ $A7D1 ja, (24, Read Error) ==>
A7C1: C9 03 CMP #$03 NOADAM_DV_ER: keine Sync-Markierungen
A7C3: F0 08 BEQ $A7CD ja, (74, Drive not Ready) ==>
A7C5: C9 0E CMP #$0E SYNTAX_DV_ER: ungueltiger Jobcode
A7C7: F0 04 BEQ $A7CD ja, (74, Drive not Ready) ==>
A7C9: C9 0F CMP #$0F NODSKPRS_DV_ER:
A7CB: D0 06 BNE $A7D3 nein, Fehlrecode errechnen
Einsprung von $A7C3, $A7C7:
A7CD: A9 74 LDA #$74 Meldung: '74, Drive not Ready' ausgeben
A7CF: D0 08 BNE $A7D9 ==>
Einsprung von $A7BF:
A7D1: A9 06 LDA #$06 24, Read Error ausgeben
Einsprung von $A7CB:
A7D3: 09 20 ORA #$20 Fehlernummer + 20 (BCD) -2
A7D5: AA TAX (Aus den Fehlern: 02,04,05,07,08 und 09
A7D6: CA DEX die entsprechenden DOS-Meldungen errechnen.
A7D7: CA DEX Bsp.: aus 5 wird 23; aus 9 wird 27)
A7D8: 8A TXA
Einsprung von $A7CF:
A7D9: 48 PHA Fehlernummer merken
A7DA: AD 2A 02 LDA $022A aktuelle DOS-Befehlsnummer holen
A7DD: C9 00 CMP #$00 = 0 (Validate) ?
A7DF: D0 0F BNE $A7F0 nein, ==>
A7E1: A9 FF LDA #$FF Befehlsnummer loeschen
A7E3: 8D 2A 02 STA $022A
A7E6: 68 PLA Fehlernummer zurueckholen
A7E7: 20 6D A8 JSR $A86D Fehlertext generieren
A7EA: 20 03 8F JSR $8F03 Partition initialisieren
A7ED: 4C F4 A7 JMP $A7F4
Einsprung von $A7DF:
A7F0: 68 PLA
Previous Page / Next Page