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