'#', oeffnen eines Direktzugriffkanals ($cb84)
Einsprung von $96D3:
89E4: A5 52 LDA $52 aktuelle SA merken
89E6: 48 PHA
89E7: 20 AE 84 JSR $84AE ggf. Drive initialisieren
89EA: 68 PLA
89EB: 85 52 STA $52 SA zurueckholen
89ED: A6 29 LDX $29
89EF: CA DEX nur '#' ?
89F0: D0 0D BNE $89FF '#x' ==>
89F2: A9 01 LDA #$01
89F4: 20 5A 91 JSR $915A Kanal oeffnen und 1 Puffer belegen
89F7: 4C 35 8A JMP $8A35
Einsprung von $8A09, $8A19:
89FA: A9 70 LDA #$70 70, no Channel
89FC: 4C 7C 80 JMP $807C
Einsprung von $89F0:
89FF: A0 01 LDY #$01 Zeiger auf 2. Zeichen im INPUT-Puffer
8A01: 20 AC 8A JSR $8AAC setzen und Zahl holen
8A04: AE 9C 02 LDX $029C Puffernummer >= 8 ?
8A07: E0 08 CPX #$08
8A09: B0 EF BCS $89FA ja, ==>
8A0B: A9 00 LDA #$00 Pruefen, ob Puffer frei ist
8A0D: 85 40 STA $40
8A0F: 38 SEC 1-Bit x-mal shiften
Einsprung von $8A13:
8A10: 26 40 ROL $40
8A12: CA DEX bis gewuenschte Position erreicht ist
8A13: 10 FB BPL $8A10
8A15: A5 40 LDA $40 und entsprechendes Bit der Pufferbelegung
8A17: 25 6D AND $6D testen; ist das Bit=1, dann ist der
8A19: D0 DF BNE $89FA Puffer belegt: 70, no Channel ==>
8A1B: A5 40 LDA $40
8A1D: 05 6D ORA $6D Bit setzen und dadurch Puffer belegen
8A1F: 85 6D STA $6D
8A21: A9 00 LDA #$00
8A23: 20 5A 91 JSR $915A Lesekanal oeffnen und keinen Puffer belegen
8A26: A6 50 LDX $50
8A28: AD 9C 02 LDA $029C Puffernummer holen
8A2B: 95 D1 STA $D1,X Puffer dem Kanal zuordnen
8A2D: AA TAX
8A2E: A9 00 LDA #$00 Jobcodes des Puffers loeschen
8A30: 95 02 STA $02,X
8A32: 9D 72 02 STA $0272,X
Einsprung von $89F7:
8A35: A6 52 LDX $52
8A37: B5 A8 LDA $A8,X b76=01: Kanal zum Lesen/Schreiben oeffnen
8A39: 09 40 ORA #$40
8A3B: 95 A8 STA $A8,X in Sekundaeradressentabelle setzen
8A3D: A4 50 LDY $50
8A3F: A9 FF LDA #$FF Anzahl gueltige Bytes = 256
8A41: 99 42 02 STA $0242,Y (der ganze Puffer)
8A44: A9 89 LDA #$89 Kanalstatus: Schreiben, Lesen, kein EOI
8A46: 99 34 02 STA $0234,Y
8A49: B9 D1 00 LDA $00D1,Y Puffernummer fuer Ausgabe
8A4C: 99 3B 02 STA $023B,Y bereitstellen
8A4F: 0A ASL 16-Bit Index
8A50: AA TAX
8A51: A9 01 LDA #$01 Pufferzeiger auf 2. Byte setzen
8A53: 95 BB STA $BB,X (wegen Blocklaenge bei B-R, B-W)
8A55: A9 0E LDA #$0E b1-3: Dateityp $07: Direktzugriff
8A57: 99 F9 00 STA $00F9,Y
8A5A: 4C 4C 80 JMP $804C
Previous Page / Next Page