    Ein Byte in Record-Puffer schreiben ($e07c)

    Byte in Puffer schreiben

    Einsprung von $A03C, $A086:

    9FFC: 20 8D A0  JSR $A08D        Flags 'Puffer / REL-Datei geaendert' setzen
    9FFF: 20 11 9F  JSR $9F11        Nummer des aktiven Puffers holen
    A002: 0A        ASL              (2-Byte Tabelle)
    A003: AA        TAX
    A004: A5 54     LDA $54          Datenbyte holen
    A006: 81 BB     STA ($BB,X)      und in den Puffer schreiben

    auf Recordende testen

    A008: B4 BB     LDY $BB,X        Pufferzeiger (Lo) holen
    A00A: C8        INY              Pufferende erreicht ?
    A00B: D0 09     BNE $A016        nein, ==>
    A00D: A4 50     LDY $50          Ist der 'Zeiger auf naechsten Record' = 0
    A00F: B9 57 02  LDA $0257,Y      [Dies ist genau dann der Fall, wenn der
                                     aktuelle Record genau bis zum Blockende
                                     geht und er ausserdem der letzte Record
                                     der Datei ist.]
    A012: F0 0A     BEQ $A01E        ja, dieser letzte Record ist voll, ==>
    A014: A0 02     LDY #$02         Ist das Recordende genau am Pufferende ?

    Einsprung von $A00B:

    A016: 98        TYA
    A017: A4 50     LDY $50          aktuellen Pufferzeiger mit
    A019: D9 57 02  CMP $0257,Y      'Zeiger auf naechsten Record' vergleichen
    A01C: D0 05     BNE $A023        ungleich, (Record noch nicht voll) ==>

    Einsprung von $A012:

    A01E: A9 20     LDA #$20         Flag 'Record voll' setzen
    A020: 4C D5 9C  JMP $9CD5
    Zeiger auf naechstes Byte setzen

    Einsprung von $A01C:

    A023: F6 BB     INC $BB,X        Pufferzeiger erhoehen; Pufferende erreicht ?
    A025: D0 0B     BNE $A032        nein, ==>
    A027: AD 01 01  LDA $0101        Flag '2.Teil des Records geladen' setzen
    A02A: 09 10     ORA #$10
    A02C: 8D 01 01  STA $0101
    A02F: 4C BF 9F  JMP $9FBF        Folgeblock einlesen

    Einsprung von $A025:

    A032: 60        RTS

        Previous Page / Next Page