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 |