Job auf fehlerfreie Durchfuehrung pruefen ($d5a6)
E: x: Puffernummer

Test auf Fehler, bei denen mehrere Versuche keine Besserung bringen koennen

Einsprung von $94ED:

94F8: 20 98 95  JSR $9598        Controller aufrufen
94FB: C9 02     CMP #$02         kein Fehler ? (0 oder 1)
94FD: 90 19     BCC $9518        ja, Ok. Ende ==>
94FF: C9 08     CMP #$08         Schreibschutzfehler ?
9501: F0 0C     BEQ $950F        ja, ==>
9503: C9 0B     CMP #$0B         Falsche ID ?
9505: F0 08     BEQ $950F        ja, ==>
9507: C9 03     CMP #$03         keine Adressmarke gefunden ?
9509: F0 04     BEQ $950F        ja, ==>
950B: C9 0F     CMP #$0F         keine Diskette eingelegt ?
950D: D0 0B     BNE $951A        nein, ==>

Einsprung von $9501, $9505, $9509:

950F: 24 81     BIT $81          Burst-Fehlerunterdrueckung ?
9511: 30 05     BMI $9518        ja, ==>
9513: 2C A8 02  BIT $02A8        DOS-Fehlerunterdrueckung ?
9516: 10 17     BPL $952F        nein, ==>

Einsprung von $94FD, $9511:

9518: 18        CLC              ja: Fehler kommentarlos hinnehmen
9519: 60        RTS

Mehrere Leseversuche unternehmen, ggf. Spur 0 anfahren

Einsprung von $950D:

951A: 98        TYA
951B: 48        PHA
951C: 20 64 95  JSR $9564        Mehrere Versuche durchfuehren
951F: C9 02     CMP #$02         kein Fehler mehr ?
9521: 90 37     BCC $955A        ja, ==>
9523: 24 30     BIT $30          b7=0: Kopf auf Spur 0 fahren ?
9525: 10 12     BPL $9539        ja, ==>

Einsprung von $954D:

9527: 68        PLA              Stack restaurieren
                                [enthielt ein gerettetes y-Reg. Der Wert
                                 hat nichts mit Jobcodes zu tun, trotzdem
9528: C9 90     CMP #$90          wird mit $90: Jobcode zum Schreiben ver-
952A: D0 03     BNE $952F         glichen - ein Fehler bei der Veraenderung
952C: 9D 72 02  STA $0272,X      des 1541-DOS;  wird bei der 1581 aber
                                 sowieso nicht mehr benoetigt]

Einsprung von $9516, $952A, $955C, $C015:

952F: A9 00     LDA #$00         Fehlerpruefung einschalten
9531: 8D A8 02  STA $02A8        [Fehlerunterdrueckung wird nicht beachtet !]
9534: B5 02     LDA $02,X        Fehlernummer holen
9536: 20 2D FF  JSR $FF2D        Error-Routine des Controllers
Kopf auf Spur 0 fahren und Job nochmal probieren

Einsprung von $9525:

9539: 24 81     BIT $81          Burst-Fehlerunterdrueckung ?
953B: 30 21     BMI $955E        ja, ==>
953D: 2C A8 02  BIT $02A8        DOS-Fehlerunterdrueckung ?
9540: 30 1C     BMI $955E        ja, ==>
9542: 48        PHA              a enthaelt letzte Job-RoeCK-meldung
9543: A9 C0     LDA #$C0         RESTORE_DV
9545: 20 9D 95  JSR $959D        Aufruf des Controllers
9548: 20 64 95  JSR $9564        Schreib-/Lesejob ausfuehren
954B: C9 02     CMP #$02         Fehler ?
954D: B0 D8     BCS $9527        ja, ==>

954F: 68        PLA              vorletzte Job-RoeCK-meldung holen
9550: C9 90     CMP #$90         (ist immer < $10)
9552: D0 0A     BNE $955E        also immer ==>
9554: 9D 72 02  STA $0272,X      wird nie aufgerufen
9557: 20 64 95  JSR $9564        "

Einsprung von $9521:

955A: C9 02     CMP #$02         "
955C: B0 D1     BCS $952F        "

Einsprung von $953B, $9540, $9552:

955E: 68        PLA              y-Register zurueckholen
955F: A8        TAY
9560: B5 02     LDA $02,X        Jobrueckmeldung holen
9562: 18        CLC              Ok. Ende
9563: 60        RTS

mehrere Schreib-/Leseversuche ausfuehren

Einsprung von $951C, $9548, $9557:

9564: A5 30     LDA $30          Anzahl der Leseversuche nach y
9566: 29 3F     AND #$3F
9568: A8        TAY

Einsprung von $957A, $C023:

9569: A5 79     LDA $79          LED-Blinken aktivieren
956B: 09 20     ORA #$20
956D: 85 79     STA $79
956F: BD 72 02  LDA $0272,X      Jobcode holen
9572: 20 9D 95  JSR $959D        Job nochmals ausfuehren
9575: C9 02     CMP #$02         Fehler
9577: 90 03     BCC $957C        nein, =>
9579: 88        DEY              naechster Versuch ?
957A: D0 ED     BNE $9569        ja, ==>

Einsprung von $9577:

957C: 48        PHA              Jobrueckmeldung merken
957D: A5 79     LDA $79          LED-Blinken aus
957F: 29 DF     AND #$DF
9581: 85 79     STA $79
9583: 68        PLA              Jobrueckmeldung in A
9584: 60        RTS

    Previous Page / Next Page