Byte aus aktuellem Puffer holen ($d137) E: $50: Kanalnummer A: a : aktuelles Byte z : 1: Blockende Einsprung von $8FDF, $8FE4, $909B, $90CC, $90D5, $9107, $938F, $994B, $9DD3, $9DD8, $B245, $B2D5, $B2DA: 9071: A6 50 LDX $50 Kanal- und Puffernummer holen 9073: B5 D1 LDA $D1,X [Dies entspricht exakt der Routine $9069. 9075: 10 02 BPL $9079 Bei der 1541 stand hier nur ein JSR 9077: B5 D8 LDA $D8,X dorthin. Diese Version spart Einsprung von $9075: 9079: 29 BF AND #$BF 2 x JSR, 2 x RTS (2x6 + 2x6 = 24 Takte) 907B: 0A ASL fuer jedes gelesene Byte 907C: AA TAX = 0.6 sec bei 202 Blocks.] 907D: A4 50 LDY $50 907F: B9 42 02 LDA $0242,Y Zeiger auf Pufferende = 0 ? 9082: F0 12 BEQ $9096 (nicht letzter Block) ja, ==> Byte aus letztem Block einer Datei holen 9084: A1 BB LDA ($BB,X) Byte holen 9086: 48 PHA 9087: B5 BB LDA $BB,X Dateiende ? 9089: D9 42 02 CMP $0242,Y 908C: D0 04 BNE $9092 nein, ==> 908E: A9 FF LDA #$FF Pufferzeiger auf 0 setzen 9090: 95 BB STA $BB,X ($ff wegen inc bb,x (setzt das z-Flag)) Einsprung von $908C: 9092: 68 PLA 9093: F6 BB INC $BB,X Pufferzeiger erhoehen 9095: 60 RTS Byte aus allen anderen Bloecken einer Datei holen Einsprung von $9082: 9096: A1 BB LDA ($BB,X) Byte holen 9098: F6 BB INC $BB,X Pufferzeiger erhoehen 909A: 60 RTS Previous Page / Next Page |