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 |