    Byte aus Record-Puffer holen ($e120)

    Einsprung von $930A:

    A0A6: A9 80     LDA #$80         Ist b7=1: 'Record existiert nicht' ?
    A0A8: 20 E4 9C  JSR $9CE4        (Dateistatus testen)
    A0AB: D0 3F     BNE $A0EC        ja, (50, Record not Present) ==>
    A0AD: 20 69 90  JSR $9069        Kanal-/Puffernummer holen
    A0B0: B5 BB     LDA $BB,X        Recordende erreicht ?
    A0B2: D9 42 02  CMP $0242,Y
    A0B5: F0 2A     BEQ $A0E1        ja, (naechsten Record lesen) ==>
    A0B7: F6 BB     INC $BB,X        Pufferzeiger erhoehen
    A0B9: D0 0E     BNE $A0C9        Pufferende erreicht ?
    A0BB: AD 01 01  LDA $0101        ja, Flag '2. Teil des Records geladen'
    A0BE: 09 10     ORA #$10         setzen (s. $a286)
    A0C0: 8D 01 01  STA $0101
    A0C3: 20 BF 9F  JSR $9FBF        (ueber-)naechsten Datenblock lesen

    Einsprung von $A22D:

    A0C6: 20 69 90  JSR $9069        Kanal- und Puffernummer holen

    Einsprung von $A0B9:

    A0C9: A1 BB     LDA ($BB,X)      Byte aus Record holen

    Einsprung von $A0E9:

    A0CB: 99 3B 02  STA $023B,Y      Byte in Ausgabepuffer schreiben
    A0CE: A9 89     LDA #$89         b3=1: EOI-Flag loeschen
    A0D0: 99 34 02  STA $0234,Y
    A0D3: B5 BB     LDA $BB,X        Steht der Pufferzeiger auf dem letzten
    A0D5: D9 42 02  CMP $0242,Y      auszugebenden Byte ?
    A0D8: F0 01     BEQ $A0DB        ja, (EOI-Flag setzen)==>
    A0DA: 60        RTS

    Einsprung von $A0D8:

    A0DB: A9 81     LDA #$81         b3=0: EOI-Flag setzen
    A0DD: 99 34 02  STA $0234,Y
    A0E0: 60        RTS

        Previous Page / Next Page