     $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