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