     $EF5C/61276:   Mark block as free

    EF5C: 20 F1 EF  JSR $EFF1       ; set buffer pointer

    Jump from $C87D, $C8AD, $CCF8:

    EF5F: 20 CF EF  JSR $EFCF       ; erase bit for sector in BAM
    EF62: 38        SEC
    EF63: D0 22     BNE $EF87       ; block already free, then done
    EF65: B1 6D     LDA ($6D),Y     ; bit model of BAM
    EF67: 1D E9 EF  ORA $EFE9,X     ; set bit X, marker for free
    EF6A: 91 6D     STA ($6D),Y
    EF6C: 20 88 EF  JSR $EF88       ; set flag for BAM changed
    EF6F: A4 6F     LDY $6F
    EF71: 18        CLC
    EF72: B1 6D     LDA ($6D),Y
    EF74: 69 01     ADC #$01        ; increment number of free blocks/track
    EF76: 91 6D     STA ($6D),Y
    EF78: A5 80     LDA $80         ; track
    EF7A: CD 85 FE  CMP $FE85       ; equal to 18?
    EF7D: F0 3B     BEQ $EFBA       ; then skip
    EF7F: FE FA 02  INC $02FA,X     ; increment number of free blocks in disk
    EF82: D0 03     BNE $EF87
    EF84: FE FC 02  INC $02FC,X     ; increment number of blocks hi

    Jump from $EF63, $EF82:

    EF87: 60        RTS

        Previous Page / Next Page