Kanal oeffnen und entsprechende Zahl Puffer zuordnen ($d1df)
E: a  : Anzahl der Puffer (0, 1, oder 2 Puffer)
   $52: Sekundaeradresse
A: $50: neue Kanalnummer
Wenn kein Kanal oder Puffer gefunden wird, erfolgt kein Ruecksprung in die
aufrufende Routine

Einsprung von $9BC8:

9157: 38        SEC              <-- Schreibkanal suchen
9158: B0 01     BCS $915B

Einsprung von $89F4, $8A23, $9B0F, $B182:

915A: 18        CLC              <-- Lesekanal suchen

Einsprung von $9158:

915B: 08        PHP
915C: 85 40     STA $40          Anzahl der gesuchten Puffer merken
915E: 20 9E 91  JSR $919E        Kanal freigeben
9161: 20 DB 92  JSR $92DB        freien Kanal suchen
9164: 85 50     STA $50          und als aktuellen Kanal merken
9166: A6 52     LDX $52          Sekundaeradresse holen
9168: 28        PLP
9169: 90 02     BCC $916D        Lesekanal ? ja, ==>
916B: 09 80     ORA #$80         b76=10: Flag: Schreibkanal

Einsprung von $9169:

916D: 95 A8     STA $A8,X        Kanal der SA zuordnen
916F: 29 3F     AND #$3F
9171: A8        TAY
9172: A9 FF     LDA #$FF         Pufferzuordnung loeschen
9174: 99 D1 00  STA $00D1,Y      1. Puffer
9177: 99 D8 00  STA $00D8,Y      2. Puffer
917A: 99 65 02  STA $0265,Y      SS-Puffer
917D: C6 40     DEC $40          Soll ein Puffer gesucht werden ?
917F: 30 1C     BMI $919D        nein, ==>
9181: 20 04 92  JSR $9204        freien Puffer suchen
9184: 10 08     BPL $918E        Puffer gefunden ? ja, ==>

Einsprung von $9198, $9B44, $9BFC:

9186: 20 CE 91  JSR $91CE        Puffer wieder freigeben
9189: A9 70     LDA #$70         70, no Channel
918B: 4C 7C 80  JMP $807C

Einsprung von $9184:

918E: 99 D1 00  STA $00D1,Y      1. Puffer merken
9191: C6 40     DEC $40          noch einen Puffer suchen ?
9193: 30 08     BMI $919D        nein, ==>
9195: 20 04 92  JSR $9204        freien Puffer suchen
9198: 30 EC     BMI $9186        keinen Puffer gefunden ? ja, ==>
919A: 99 D8 00  STA $00D8,Y      2. Puffer merken

Einsprung von $917F, $9193:

919D: 60        RTS

    Previous Page / Next Page