Letzten Datenblock einer REL-Datei
und dessen Eintrag im Side-Sektor ermitteln ($e1cb)

Einsprung von $8895, $99CE, $9E46, $A438:

A15C: 20 6E A5  JSR $A56E        Super-Side-Sektor aktiv ?
A15F: D0 03     BNE $A164        nein, ==>
A161: 20 A9 A5  JSR $A5A9        letzte existierende Gruppe holen

Einsprung von $A15F:

A164: 20 0B 9E  JSR $9E0B        Nummer des aktuellen Side-Sektors setzen
A167: 85 69     STA $69

Letzten Side-Sektor laden

A169: A9 04     LDA #$04         Zeiger auf Side-Sektor-Tabelle setzen
A16B: 85 64     STA $64
A16D: A0 0A     LDY #$0A         mit letztem Tabelleneintrag anfangen
A16F: D0 04     BNE $A175        immer ==>

Einsprung von $A177:

A171: 88        DEY              vorhergehenden Eintrag testen
A172: 88        DEY
A173: 30 27     BMI $A19C        kein Side-Sektor benutzt ?, ==>

Einsprung von $A16F:

A175: B1 64     LDA ($64),Y      existiert Side-Sektor ?
A177: F0 F8     BEQ $A171        nein, ==>
A179: 98        TYA              so ermittelte Side-Sektor-Nummer
A17A: 4A        LSR              (es war eine 2-Byte-Tabelle)
A17B: C5 69     CMP $69          mit aktueller Nummer vergleichen
A17D: F0 0A     BEQ $A189        gleich, ==>
A17F: 85 69     STA $69          neue Side-Sektor-Nummer merken
A181: A6 50     LDX $50
A183: BD 65 02  LDA $0265,X      Side-Sektor-Puffer holen
A186: 20 56 9E  JSR $9E56        Side-Sektor laden

Einsprung von $A17D:

A189: A0 00     LDY #$00         hat letzter Side-Sektor einen Folgeblock ?
A18B: 84 64     STY $64
A18D: B1 64     LDA ($64),Y
A18F: D0 0B     BNE $A19C        ja, (Fehler) ==>
A191: C8        INY
A192: B1 64     LDA ($64),Y      Blocklaenge holen
A194: A8        TAY              Zeiger auf letzten Eintrag setzen
A195: 88        DEY              (-1: ein Eintrag ist 2 Byte lang)
A196: 84 6A     STY $6A          Zeiger auf T&S des Datenblocks merken
A198: 98        TYA              Side-Sektor-Pufferzeiger auf letzten
A199: 4C 23 9E  JMP $9E23        Eintrag setzen

Einsprung von $A173, $A18F, $A21F:

A19C: A9 67     LDA #$67         67, Illegal Track or Sector
A19E: 20 3F FF  JSR $FF3F        CMDERR

    Previous Page / Next Page