$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