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 |