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