'#', 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