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