$D227/53799: Close channel
Jump from $C8AA, $D1E6, $D30B, $D331, $D4DE, $D4E5, $DACE, $DB29, $DB5F,
$E695, $EE01:
D227: A5 83 LDA $83 ; secondary address
D229: C9 0F CMP #$0F ; 15?
D22B: D0 01 BNE $D22E ; no
D22D: 60 RTS ; else done already
Jump from $D22B:
D22E: A6 83 LDX $83
D230: BD 2B 02 LDA $022B,X ; channel number
D233: C9 FF CMP #$FF ; not associated?
D235: F0 22 BEQ $D259 ; then done
D237: 29 3F AND #$3F
D239: 85 82 STA $82 ; channel number
D23B: A9 FF LDA #$FF
D23D: 9D 2B 02 STA $022B,X ; erase association in table
D240: A6 82 LDX $82
D242: A9 00 LDA #$00
D244: 95 F2 STA $F2,X ; erase READ and WRITE flag
D246: 20 5A D2 JSR $D25A ; free buffer
D249: A6 82 LDX $82 ; channel number
D24B: A9 01 LDA #$01 ; set bit 0
Jump from $D251:
D24D: CA DEX
D24E: 30 03 BMI $D253 ; shift to correct position
D250: 0A ASL
D251: D0 FA BNE $D24D
Jump from $D24E:
D253: 0D 56 02 ORA $0256 ; free in allocation register
D256: 8D 56 02 STA $0256
Jump from $D235:
D259: 60 RTS
Previous Page / Next Page