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