FORMAT18.S (965B)
1 lst off 2 org = $300 3 * 4 * Format an 18 sector disk 5 * 6 * Call from applesoft: 7 * 8 * CALL FO,<slot>,<drive>,<BbundID>, 9 * <start track>,<end track> 10 * 11 * (Writes out whatever happens to be sitting 12 * at $2000.31FF, so do HGR for better results) 13 * 14 err_code = 0 15 16 get8bit = $E74C 17 18 buffer = $2000 19 rw18 = $6900 20 slot = $FD 21 track = $FE 22 lastrack = $FF 23 24 *------------------------------- 25 org org 26 *------------------------------- 27 28 jsr get8bit 29 txa 30 asl 31 asl 32 asl 33 asl 34 sta slot 35 36 jsr get8bit 37 stx drive 38 39 jsr get8bit 40 stx BbundID 41 42 jsr get8bit 43 txa 44 pha 45 46 jsr get8bit 47 inx 48 stx end_track 49 50 jsr rw18 51 db 7 52 BbundID db $11 53 54 jsr rw18 55 db 0 ;drive on 56 drive db 1,5 57 58 lda #$80 59 sta lastrack 60 jsr rw18 61 db 2,0,0 ;recal! 62 63 pla 64 sta track 65 66 loop jsr rw18 67 db $05,>buffer ;write 68 bcs wp_error 69 70 jsr rw18 71 db $44 ;verify 72 ds 18,0 73 bcs vr_error 74 75 lda track 76 eor #$11 77 end_track = *-1 78 bne loop 79 80 hex 2C 81 wp_error lda #1 82 hex 2C 83 vr_error lda #2 84 sta err_code 85 86 jsr rw18 87 db 1 ;drive off 88 rts