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