T&S auf Gueltigkeit pruefen       ($d506)
ggf. Formatkennzeichen pruefen, Jobcode setzen und Controller aufrufen
E: x  : Puffernummer
   $28: Jobcode

Einsprung von $900A, $9DCB:

9471: A5 28     LDA $28          Zwischenspeicher fuer Jobcode merken

Einsprung von $94EA:

9473: 48        PHA
9474: 86 6C     STX $6C          aktuelle Puffernummer merken
9476: 2C A8 02  BIT $02A8        b6=1: T&S Pruefung abgeschaltet ?
9479: 70 58     BVS $94D3        ja, ==>
947B: 8A        TXA              Index fuer 16-Bit Tabelle berechnen
947C: 0A        ASL
947D: AA        TAX
947E: B5 0C     LDA $0C,X        Sektornummer merken
9480: 85 28     STA $28
9482: B5 0B     LDA $0B,X        Tracknummer
9484: F0 1A     BEQ $94A0        = 0 ? ja, (Fehler) ==>
9486: CD 2C 02  CMP $022C        > letzter Track der Partition ?
9489: B0 15     BCS $94A0        ja, (Fehler) ==>
948B: 68        PLA              Jobcode holen
948C: 48        PHA
948D: C9 90     CMP #$90         'Schreiben' ?
948F: D0 42     BNE $94D3        nein, ==> [Anscheinend wird die Sektor-
                                nummer nur bei Schreibjobs geprueft ?!]
9491: A5 6F     LDA $6F          Formatkennzeichen
9493: CD EB 01  CMP $01EB        = 1581-Formatkennzeichen ?
9496: D0 33     BNE $94CB        nein, ==>
9498: A5 75     LDA $75          Anzahl der Sektoren pro Track
949A: C5 28     CMP $28          mit Sektornummer vergleichen
949C: F0 02     BEQ $94A0        gleich, dann Fehler ==>
949E: B0 33     BCS $94D3        groesser, dann Ok. ==>

Einsprung von $9484, $9489, $949C:

94A0: 20 A8 94  JSR $94A8        T&S aus Jobpuffer holen

Einsprung von $94B7, $94BC, $94C0, $94C6, $94C8:

94A3: A9 66     LDA #$66         66, Illegal Track or Sector
94A5: 4C 3F FF  JMP $FF3F

    Previous Page / Next Page