Freigeben einer SA ausser der des Kommandokanals; Puffer freigeben ($d227)
Schreib-/Lesekanaele ausser dem Kommandokanal schliessen
E: $52: Sekundaeradresse, die geschlossen werden soll
Einsprung von $872F, $915E, $9266, $9289, $9438, $943F, $9965,
$99C5, $9A02, $A838, $B2E3:
919E: A5 52 LDA $52 Sekundaeradresse holen
91A0: C9 0F CMP #$0F Kommandokanal nicht
91A2: D0 01 BNE $91A5 schliessen
91A4: 60 RTS
Einsprung von $91A2:
91A5: A6 52 LDX $52 Aktuelle SA holen
91A7: B5 A8 LDA $A8,X Zugehoerige Kanalnummer holen
91A9: C9 FF CMP #$FF 'Kanal unbenutzt' ?
91AB: F0 20 BEQ $91CD ja, ==>
91AD: 29 3F AND #$3F Kanalnummer isolieren
91AF: 85 50 STA $50 Als aktuelle Kanalnummer merken
91B1: A9 FF LDA #$FF SA als unbenutzt kennzeichnen
91B3: 95 A8 STA $A8,X SA freigeben
91B5: A6 50 LDX $50 Kanalnummer wieder holen
91B7: A9 00 LDA #$00 Kanalstatus loeschen
91B9: 9D 34 02 STA $0234,X
91BC: 20 CE 91 JSR $91CE Puffer und Zuordnung freigeben
91BF: A6 50 LDX $50
91C1: A9 01 LDA #$01 Entsprechendes Bit der Kanaltabelle setzen
Einsprung von $91C7:
91C3: CA DEX und damit den Kanal freigeben
91C4: 30 03 BMI $91C9
91C6: 0A ASL Bit an die richtige Stelle
91C7: D0 FA BNE $91C3 schieben
Einsprung von $91C4:
91C9: 05 70 ORA $70 Bit setzen
91CB: 85 70 STA $70
Einsprung von $91AB:
91CD: 60 RTS
Previous Page / Next Page