Feststellen, ob Record existiert und ggf. richtige Gruppe anwaehlen ($df66)
A: n=0, v=0: Record und Side-Sektor sind O.k.
n=0, v=1: Ein falscher Side-Sektor ist geladen. Record kann existieren.
n=1, v=0: Der richtige Side-Sektor ist geladen. Record existiert nicht.
n=1, v=1: Der Side-Sektor (oder sogar die ganze Gruppe) existiert noch
nicht. Der gesuchte Record kann also noch nicht existieren.
Einsprung von $9E32, $9E41:
9ED3: 20 6E A5 JSR $A56E Ist Super-Side-Sektor aktiv ?
9ED6: D0 0C BNE $9EE4 nein, ==>
9ED8: AD 00 01 LDA $0100 gewuenschte Gruppennummer holen
9EDB: 20 C0 A5 JSR $A5C0 richtige Gruppe anwaehlen
9EDE: F0 04 BEQ $9EE4 gefunden ? ja, ==>
9EE0: 2C C1 DB BIT $DBC1 n- und v-Flag setzen
9EE3: 60 RTS (Gruppe existiert nicht)
Einsprung von $9ED6, $9EDE:
9EE4: 20 0B 9E JSR $9E0B Nummer des Side-Sektors holen
9EE7: C5 69 CMP $69 = gesuchter Nummer ?
9EE9: D0 0E BNE $9EF9 nein, ==>
9EEB: A4 6A LDY $6A Zeiger auf T&S des Datenblocks holen
9EED: B1 64 LDA ($64),Y Track = 0 (Block nicht vorhanden) ?
9EEF: F0 04 BEQ $9EF5 ja, ==>
9EF1: 2C BE DB BIT $DBBE n- und v-Flag loeschen (O.k.)
9EF4: 60 RTS (O.k.)
Einsprung von $9EEF:
9EF5: 2C C0 DB BIT $DBC0 n-Flag setzen
9EF8: 60 RTS (Record existiert nicht)
Einsprung von $9EE9:
9EF9: A5 69 LDA $69 gesuchte Nummer
9EFB: C9 06 CMP #$06 >= 6
9EFD: B0 0A BCS $9F09 ja, ==>
9EFF: 0A ASL
9F00: A8 TAY
9F01: A9 04 LDA #$04 Zeiger auf T&S des gesuchten Side-Sektors
9F03: 85 64 STA $64 setzen
9F05: B1 64 LDA ($64),Y Side-Sektor vorhanden (Track>0) ?
9F07: D0 04 BNE $9F0D ja, ==>
Einsprung von $9EFD:
9F09: 2C C1 DB BIT $DBC1 n- und v-Flag setzen
9F0C: 60 RTS (der Side-Sektor existiert nicht)
Einsprung von $9F07:
9F0D: 2C BF DB BIT $DBBF v-Flag setzen
9F10: 60 RTS (falscher Side-Sektor geladen)
Previous Page / Next Page
|