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
|