Kanal zum Lesen suchen 1.Block und ggf. 1.Side-Sektor lesen ($dc46) E: $52 : benutzte Sekundaeradresse $4d- $4e: 1. Datenblock $0270-$0271: 1. (Super-)Side-Sektor Einsprung von $93D8, $96A3, $96C7, $987D: 9B0D: A9 01 LDA #$01 Lese-Kanal oeffnen 9B0F: 20 5A 91 JSR $915A und einen Puffer belegen 9B12: 20 9B 9B JSR $9B9B Pufferzeiger initialisieren 9B15: AD 2D 02 LDA $022D Filetyp merken 9B18: 48 PHA 9B19: 0A ASL b0=0: Drivenummer; b1-3: Filetyp 9B1A: 95 F9 STA $F9,X in Kanaltabelle eintragen 9B1C: 20 D6 8F JSR $8FD6 1. Block lesen 9B1F: A6 50 LDX $50 9B21: A5 4D LDA $4D existiert ein Folgeblock ? 9B23: D0 05 BNE $9B2A ja, ==> 9B25: A5 4E LDA $4E Blocklaenge merken 9B27: 9D 42 02 STA $0242,X Einsprung von $9B23: 9B2A: 68 PLA Filetyp holen 9B2B: C9 04 CMP #$04 Rel-Datei ? 9B2D: D0 5E BNE $9B8D nein, ==> 9B2F: A4 52 LDY $52 9B31: B9 A8 00 LDA $00A8,Y b6=1: Flag fuer Lesen/Schreiben setzen 9B34: 09 40 ORA #$40 9B36: 99 A8 00 STA $00A8,Y 9B39: AD 6F 02 LDA $026F 9B3C: 9D 5E 02 STA $025E,X Recordlaenge merken 9B3F: 20 04 92 JSR $9204 Puffer suchen 9B42: 10 03 BPL $9B47 gefunden, ==> 9B44: 4C 86 91 JMP $9186 70, No Channel Einsprung von $9B42: 9B47: A6 50 LDX $50 Puffer fuer Side-Sektoren merken 9B49: 9D 65 02 STA $0265,X 9B4C: 48 PHA 9B4D: 20 6E A5 JSR $A56E Super-Side-Sektor Modus gewaehlt ? 9B50: F0 17 BEQ $9B69 ja, ==> 9B52: 68 PLA 9B53: AC 70 02 LDY $0270 T&S des Side-Sektors setzen 9B56: 84 4D STY $4D 9B58: AC 71 02 LDY $0271 9B5B: 84 4E STY $4E 9B5D: 20 88 95 JSR $9588 T&S an DC uebergeben 9B60: 20 AC 9D JSR $9DAC Side-Sektor lesen 9B63: 20 ED 94 JSR $94ED Jobausfuehrung ueberpruefen 9B66: 4C 7B 9B JMP $9B7B Einsprung von $9B50: 9B69: 68 PLA 9B6A: AD 70 02 LDA $0270 T&S des Super-Side-Sektors merken 9B6D: 9D 10 01 STA $0110,X 9B70: AD 71 02 LDA $0271 9B73: 9D 09 01 STA $0109,X 9B76: A9 FF LDA #$FF 'keine Side-Sektor-Gruppe aktiv'-Flag 9B78: 9D 02 01 STA $0102,X setzen Einsprung von $9B66, $9C7F: 9B7B: A6 50 LDX $50 9B7D: A9 02 LDA #$02 'Zeiger auf naechsten Record' 9B7F: 9D 57 02 STA $0257,X auf 1. Record setzen 9B82: A9 00 LDA #$00 9B84: 20 22 94 JSR $9422 Pufferzeiger auf 0 setzen 9B87: 20 E1 A0 JSR $A0E1 1. Record lesen 9B8A: 4C 7C 9D JMP $9D7C T&S des aktiven Kanals holen 1. Byte aus der Datei fuer Ausgabe bereitstellen Einsprung von $9B2D: 9B8D: 20 9B 90 JSR $909B Byte aus aktueller Datei holen 9B90: A6 50 LDX $50 9B92: 9D 3B 02 STA $023B,X und in Ausgabepuffer schreiben 9B95: A9 88 LDA #$88 b3=1: EOI loeschen und 9B97: 9D 34 02 STA $0234,X b7=1: Datei auf Lesen festlegen 9B9A: 60 RTS Previous Page / Next Page |