$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