Letztes benutzte Zeichen im Record suchen ($e16e)
Einsprung von $9FBC:
A0FD: A6 50 LDX $50
A0FF: BD 57 02 LDA $0257,X Zeiger auf naechsten Record holen
A102: 85 56 STA $56
A104: C6 56 DEC $56 -1 (letztes Zeichen im Record)
A106: C9 02 CMP #$02 Ist letztes Zeichen im alten Datenblock ?
A108: D0 04 BNE $A10E nein, ==>
A10A: A9 FF LDA #$FF Zeiger auf letztes Zeichen im Datenblock
A10C: 85 56 STA $56 setzen
Einsprung von $A108:
A10E: BD 5E 02 LDA $025E,X Recordlaenge merken (Dies ist der Bereich,
A111: 85 57 STA $57 in dem das Zeichen liegen muss)
A113: 20 42 94 JSR $9442 Pufferzeiger des aktiven Puffers holen
A116: A6 50 LDX $50 Ist Pufferzeiger hinter dem Record-Ende ?
A118: C5 56 CMP $56
A11A: 90 19 BCC $A135 nein, ==>
A11C: F0 17 BEQ $A135 nein, ==>
A11E: 20 7D 8D JSR $8D7D ja, Puffer wechseln (Record hoert im anderen
Puffer auf)
A121: 20 43 A1 JSR $A143 Recordende suchen
A124: 90 08 BCC $A12E nicht gefunden, ==>
A126: A6 50 LDX $50 Record geht ueber die Blockgrenze hinaus
A128: 9D 42 02 STA $0242,X Recordende merken
A12B: 4C 7D 8D JMP $8D7D Puffer wechseln (1. Teil des Records) ==>
Einsprung von $A124:
A12E: 20 7D 8D JSR $8D7D Puffer wechseln (1. Teil des Records)
A131: A9 FF LDA #$FF Zeiger auf Pufferende setzen
A133: 85 56 STA $56
Einsprung von $A11A, $A11C:
A135: 20 43 A1 JSR $A143 weitersuchen
A138: B0 03 BCS $A13D gefunden, ==>
[Record ist komplett leer; deshalb wird der
A13A: 20 42 94 JSR $9442 Pufferzeiger des aktiven Puffers
als Recordende genommen (provoziert EOI).]
Einsprung von $A138:
A13D: A6 50 LDX $50
A13F: 9D 42 02 STA $0242,X Zeiger auf Recordende merken
A142: 60 RTS
Recordende im aktiven Puffer suchen
A: c: 1: a: Zeiger auf Record-Ende; 0: Recordende nicht gefunden
Einsprung von $A121, $A135:
A143: 20 69 9D JSR $9D69 Zeiger auf Anfang des aktiven Puffers
A146: A4 56 LDY $56 setzen
Einsprung von $A153:
A148: B1 64 LDA ($64),Y Datenbyte aus Record holen
A14A: D0 0D BNE $A159 <> 0, dann Ende gefunden ==>
A14C: 88 DEY
A14D: C0 02 CPY #$02 Datenbereichs-Anfang erreicht ?
A14F: 90 04 BCC $A155 ja, ==>
A151: C6 57 DEC $57 Recordlaenge -1
A153: D0 F3 BNE $A148 ==>
Einsprung von $A14F:
A155: C6 57 DEC $57 Recordlaenge -1
A157: 18 CLC c=0: Anfang noch nicht gefunden
A158: 60 RTS
Einsprung von $A14A:
A159: 98 TYA Zeiger auf Recordende nach a
A15A: 38 SEC c=1 Anfang gefunden
A15B: 60 RTS
Previous Page / Next Page