$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