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 |