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 |