$EF90/61328: Mark block as allocated
Jump from $CD13, $EDE8, $EE04, $F19A, $F1F2:
EF90: 20 F1 EF JSR $EFF1 ; set buffer pointer
Jump from $EE96, $EE9D:
EF93: 20 CF EF JSR $EFCF ; erase bit for sector in BAM
EF96: F0 36 BEQ $EFCE ; already allocated, then done
EF98: B1 6D LDA ($6D),Y
EF9A: 5D E9 EF EOR $EFE9,X ; erase bit for block
EF9D: 91 6D STA ($6D),Y
EF9F: 20 88 EF JSR $EF88 ; set flag for BAM changed
EFA2: A4 6F LDY $6F
EFA4: B1 6D LDA ($6D),Y
EFA6: 38 SEC
EFA7: E9 01 SBC #$01 ; decrement number of blocks per track
EFA9: 91 6D STA ($6D),Y
EFAB: A5 80 LDA $80 ; track
EFAD: CD 85 FE CMP $FE85 ; 18?
EFB0: F0 0B BEQ $EFBD
EFB2: BD FA 02 LDA $02FA,X ; number of free blocks lo
EFB5: D0 03 BNE $EFBA
EFB7: DE FC 02 DEC $02FC,X ; decrement number of free blocks
Jump from $EFB5, $EF7D:
EFBA: DE FA 02 DEC $02FA,X
Jump from $EFB0:
EFBD: BD FC 02 LDA $02FC,X ; number of free blocks hi
EFC0: D0 0C BNE $EFCE ; more than 255 blocks free?
EFC2: BD FA 02 LDA $02FA,X ; free blocks lo
EFC5: C9 03 CMP #$03
EFC7: B0 05 BCS $EFCE ; smaller than 3?
EFC9: A9 72 LDA #$72
EFCB: 20 C7 E6 JSR $E6C7 ; 72, 'disk full'
Jump from $EF96, $EFC0, $EFC7:
EFCE: 60 RTS
Previous Page / Next Page