$EE0D/60941: Perform [N] - New (Format) command
EE0D: 20 12 C3 JSR $C312 ; get drive number
EE10: A5 E2 LDA $E2 ; drive number
EE12: 10 05 BPL $EE19 ; not clear?
EE14: A9 33 LDA #$33
EE16: 4C C8 C1 JMP $C1C8 ; 33, 'syntax error'
Jump from $EE12:
EE19: 29 01 AND #$01
EE1B: 85 7F STA $7F ; drive number
EE1D: 20 00 C1 JSR $C100 ; turn LED on
EE20: A5 7F LDA $7F ; drive number
EE22: 0A ASL ; times 2
EE23: AA TAX
EE24: AC 7B 02 LDY $027B ; comma position
EE27: CC 74 02 CPY $0274 ; compare with end name
EE2A: F0 1A BEQ $EE46 ; format without ID
EE2C: B9 00 02 LDA $0200,Y ; first character of ID
EE2F: 95 12 STA $12,X ; save
EE31: B9 01 02 LDA $0201,Y ; second character
EE34: 95 13 STA $13,X
EE36: 20 07 D3 JSR $D307 ; close all channels
EE39: A9 01 LDA #$01
EE3B: 85 80 STA $80 ; track 1
EE3D: 20 C6 C8 JSR $C8C6 ; format disk
EE40: 20 05 F0 JSR $F005 ; erase buffer
EE43: 4C 56 EE JMP $EE56 ; continue as below
Jump from $EE2A:
EE46: 20 42 D0 JSR $D042 ; load BAM
EE49: A6 7F LDX $7F ; drive number
EE4B: BD 01 01 LDA $0101,X
EE4E: CD D5 FE CMP $FED5 ; 'A', marker for 1541 format
EE51: F0 03 BEQ $EE56 ; ok
EE53: 4C 72 D5 JMP $D572 ; 73, 'cbm dos v2.6 1541'
Jump from $EE43, $EE51:
EE56: 20 B7 EE JSR $EEB7 ; create BAM
EE59: A5 F9 LDA $F9 ; buffer number
EE5B: A8 TAY
EE5C: 0A ASL
EE5D: AA TAX
EE5E: AD 88 FE LDA $FE88 ; $90, start of disk name
EE61: 95 99 STA $99,X ; buffer pointer to name
EE63: AE 7A 02 LDX $027A
EE66: A9 1B LDA #$1B ; 27
EE68: 20 6E C6 JSR $C66E ; write filenames in buffer
EE6B: A0 12 LDY #$12 ; position 18
EE6D: A6 7F LDX $7F ; drive number
EE6F: AD D5 FE LDA $FED5 ; 'A', 1541 format
EE72: 9D 01 01 STA $0101,X
EE75: 8A TXA
EE76: 0A ASL ; times 2
EE77: AA TAX
EE78: B5 12 LDA $12,X ; ID, first character
EE7A: 91 94 STA ($94),Y ; in buffer
EE7C: C8 INY
EE7D: B5 13 LDA $13,X ; and second character
EE7F: 91 94 STA ($94),Y ; in buffer
EE81: C8 INY
EE82: C8 INY
EE83: A9 32 LDA #$32 ; '2'
EE85: 91 94 STA ($94),Y ; in buffer
EE87: C8 INY
EE88: AD D5 FE LDA $FED5 ; 'A' 1541 format
EE8B: 91 94 STA ($94),Y ; in buffer
EE8D: A0 02 LDY #$02
EE8F: 91 6D STA ($6D),Y ; and at position 2
EE91: AD 85 FE LDA $FE85 ; 18
EE94: 85 80 STA $80 ; track number
EE96: 20 93 EF JSR $EF93 ; mark block as allocated
EE99: A9 01 LDA #$01 ; 1
EE9B: 85 81 STA $81 ; sector number
EE9D: 20 93 EF JSR $EF93 ; mark block as allocated
EEA0: 20 FF EE JSR $EEFF ; write BAM
EEA3: 20 05 F0 JSR $F005 ; pointer $6D/$6E to buffer, erase buffer
EEA6: A0 01 LDY #$01
EEA8: A9 FF LDA #$FF
EEAA: 91 6D STA ($6D),Y ; track following is zero
EEAC: 20 64 D4 JSR $D464 ; write BAM
EEAF: C6 81 DEC $81 ; decrement sector number, 0
EEB1: 20 60 D4 JSR $D460 ; read block
EEB4: 4C 94 C1 JMP $C194 ; prepare disk status
Previous Page / Next Page