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 |