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