0
|
1 ********************************************************************
|
|
2 * Format - Initialize disk media
|
|
3 *
|
|
4 * $Id$
|
|
5 *
|
|
6 * Ed. Comments Who YY/MM/DD
|
|
7 * ------------------------------------------------------------------
|
119
|
8 * 17 Original Microware distribution version
|
0
|
9
|
|
10 nam Format
|
|
11 ttl Initialize disk media
|
|
12
|
119
|
13 * Disassembled 02/07/06 14:23:44 by Disasm v1.6 (C) 1988 by RML
|
0
|
14
|
|
15 ifp1
|
104
|
16 use defsfile
|
0
|
17 endc
|
119
|
18
|
0
|
19 tylg set Prgrm+Objct
|
|
20 atrv set ReEnt+rev
|
|
21 rev set $01
|
119
|
22
|
0
|
23 mod eom,name,tylg,atrv,start,size
|
119
|
24
|
0
|
25 u0000 rmb 1
|
|
26 u0001 rmb 1
|
162
|
27 PathNm rmb 1
|
0
|
28 u0003 rmb 1
|
|
29 u0004 rmb 1
|
|
30 u0005 rmb 2
|
|
31 u0007 rmb 1
|
|
32 u0008 rmb 1
|
|
33 u0009 rmb 1
|
|
34 u000A rmb 1
|
|
35 u000B rmb 1
|
|
36 u000C rmb 2
|
|
37 u000E rmb 1
|
|
38 u000F rmb 1
|
|
39 u0010 rmb 1
|
|
40 u0011 rmb 1
|
|
41 u0012 rmb 1
|
|
42 u0013 rmb 2
|
|
43 u0015 rmb 1
|
|
44 u0016 rmb 1
|
|
45 u0017 rmb 1
|
|
46 u0018 rmb 1
|
|
47 u0019 rmb 1
|
|
48 u001A rmb 1
|
|
49 u001B rmb 1
|
|
50 u001C rmb 1
|
|
51 u001D rmb 2
|
|
52 u001F rmb 1
|
|
53 u0020 rmb 2
|
|
54 u0022 rmb 1
|
|
55 u0023 rmb 1
|
|
56 u0024 rmb 1
|
162
|
57 ClustSz rmb 1
|
0
|
58 u0026 rmb 1
|
|
59 u0027 rmb 1
|
|
60 u0028 rmb 1
|
|
61 u0029 rmb 1
|
|
62 u002A rmb 1
|
|
63 u002B rmb 1
|
|
64 u002C rmb 1
|
|
65 u002D rmb 2
|
|
66 u002F rmb 1
|
|
67 u0030 rmb 1
|
|
68 u0031 rmb 1
|
|
69 u0032 rmb 1
|
|
70 u0033 rmb 1
|
|
71 u0034 rmb 2
|
|
72 u0036 rmb 2
|
|
73 u0038 rmb 2
|
|
74 u003A rmb 1
|
|
75 u003B rmb 2
|
|
76 u003D rmb 2
|
|
77 u003F rmb 4
|
|
78 u0043 rmb 1
|
|
79 u0044 rmb 2
|
|
80 u0046 rmb 1
|
162
|
81 DevPath rmb 1 Contains "/"
|
|
82 Device rmb 13
|
0
|
83 u0055 rmb 15
|
|
84 u0064 rmb 3
|
|
85 u0067 rmb 32
|
|
86 u0087 rmb 40
|
|
87 u00AF rmb 14
|
|
88 u00BD rmb 12
|
162
|
89 DateBf rmb 5
|
0
|
90 u00CE rmb 9
|
|
91 u00D7 rmb 17
|
|
92 u00E8 rmb 6
|
|
93 u00EE rmb 177
|
|
94 u019F rmb 2
|
|
95 u01A1 rmb 2
|
|
96 u01A3 rmb 12
|
162
|
97 DDBuf rmb 256
|
0
|
98 u02AF rmb 3
|
|
99 u02B2 rmb 9924
|
|
100 u2976 rmb 451
|
|
101 size equ .
|
119
|
102
|
|
103 name fcs /Format/
|
|
104 fcb $11
|
|
105
|
0
|
106 L0014 fcb $00
|
|
107 fcb $00
|
|
108 L0016 fcb $00
|
|
109 fcb $00
|
|
110 L0018 fcb $00
|
|
111 fcb $00
|
|
112 L001A fcb $80
|
|
113 fcb $E5 e
|
|
114 fcb $80
|
|
115 fcb $E5 e
|
|
116 fcb $00
|
|
117 fcb $00
|
|
118 L0020 fcb $01
|
|
119 fcb $00
|
|
120 fcb $28 (
|
|
121 fcb $FF
|
|
122 fcb $06
|
|
123 fcb $00
|
|
124 fcb $01
|
|
125 fcb $FC
|
|
126 fcb $0C
|
|
127 fcb $FF
|
|
128 fcb $00
|
|
129 fcb $00
|
|
130 fcb $06
|
|
131 fcb $00
|
|
132 fcb $01
|
|
133 fcb $FE
|
|
134 fcb $04
|
|
135 fcb $00
|
|
136 fcb $01
|
|
137 fcb $F7 w
|
|
138 fcb $0A
|
|
139 fcb $FF
|
|
140 fcb $06
|
|
141 fcb $00
|
|
142 fcb $01
|
|
143 fcb $FB
|
|
144 fcb $80
|
|
145 fcb $E5 e
|
|
146 fcb $80
|
|
147 fcb $E5 e
|
|
148 fcb $01
|
|
149 fcb $F7 w
|
|
150 fcb $0A
|
|
151 fcb $FF
|
|
152 fcb $00
|
|
153 fcb $00
|
|
154 fcb $FF
|
|
155 fcb $00
|
|
156 fcb $43 C
|
|
157 fcb $01
|
|
158 fcb $28 (
|
|
159 L0049 fcb $50 P
|
|
160 fcb $4E N
|
|
161 fcb $0C
|
|
162 fcb $00
|
|
163 fcb $03
|
|
164 fcb $F6 v
|
|
165 fcb $01
|
|
166 fcb $FC
|
|
167 fcb $20
|
|
168 fcb $4E N
|
|
169 fcb $00
|
|
170 fcb $00
|
|
171 fcb $0C
|
|
172 fcb $00
|
|
173 fcb $03
|
|
174 fcb $F5 u
|
|
175 fcb $01
|
|
176 fcb $FE
|
|
177 fcb $04
|
|
178 fcb $00
|
|
179 fcb $01
|
|
180 fcb $F7 w
|
|
181 fcb $16
|
|
182 fcb $4E N
|
|
183 fcb $0C
|
|
184 fcb $00
|
|
185 fcb $03
|
|
186 fcb $F5 u
|
|
187 fcb $01
|
|
188 fcb $FB
|
|
189 fcb $80
|
|
190 fcb $E5 e
|
|
191 fcb $80
|
|
192 fcb $E5 e
|
|
193 fcb $01
|
|
194 fcb $F7 w
|
|
195 fcb $16
|
|
196 fcb $4E N
|
|
197 fcb $00
|
|
198 fcb $00
|
|
199 fcb $4E N
|
|
200 fcb $00
|
|
201 fcb $90
|
|
202 fcb $01
|
|
203 fcb $52 R
|
|
204 L0076 fcb $20
|
|
205 fcb $4E N
|
|
206 fcb $00
|
|
207 fcb $00
|
|
208 fcb $08
|
|
209 fcb $00
|
|
210 fcb $03
|
|
211 fcb $F5 u
|
|
212 fcb $01
|
|
213 fcb $FE
|
|
214 fcb $04
|
|
215 fcb $00
|
|
216 fcb $01
|
|
217 fcb $F7 w
|
|
218 fcb $16
|
|
219 fcb $4E N
|
|
220 fcb $0C
|
|
221 fcb $00
|
|
222 fcb $03
|
|
223 fcb $F5 u
|
|
224 fcb $01
|
|
225 fcb $FB
|
|
226 fcb $80
|
|
227 fcb $E5 e
|
|
228 fcb $80
|
|
229 fcb $E5 e
|
|
230 fcb $01
|
|
231 fcb $F7 w
|
|
232 fcb $18
|
|
233 fcb $4E N
|
|
234 fcb $00
|
|
235 fcb $00
|
|
236 fcb $4E N
|
|
237 fcb $00
|
|
238 fcb $2C ,
|
|
239 fcb $01
|
|
240 fcb $50 P
|
|
241 start equ *
|
|
242 stu <u0000
|
|
243 bsr L00BE
|
|
244 bsr L00CF
|
|
245 bsr L011A
|
|
246 lbsr L0295
|
162
|
247 lbsr AskBoth
|
0
|
248 lbsr L04A9
|
119
|
249 lbsr L0586
|
|
250 lbsr L05BC
|
|
251 lbsr L07B6
|
0
|
252 ldu <u0044
|
|
253 os9 I$Detach
|
|
254 clrb
|
162
|
255 Exit os9 F$Exit
|
|
256
|
|
257 L00BE leay PathNm,u
|
0
|
258 pshs y
|
|
259 leay >u00AF,u
|
|
260 L00C6 clr ,-y
|
|
261 cmpy ,s
|
|
262 bhi L00C6
|
|
263 puls pc,y
|
162
|
264
|
0
|
265 L00CF lda ,x+
|
162
|
266 cmpa #'/
|
0
|
267 beq L00DA
|
162
|
268 L00D5 ldb #E$BPNam
|
|
269 lbra ErrExit
|
0
|
270 L00DA os9 F$PrsNam
|
162
|
271 lbcs ErrExit
|
|
272 lda #'/
|
0
|
273 cmpa ,y
|
|
274 beq L00D5
|
|
275 sty <u0020
|
162
|
276 *
|
|
277 * Copy device name from arg to DevPath
|
|
278 leay <DevPath,u
|
0
|
279 L00ED sta ,y+
|
|
280 lda ,x+
|
|
281 decb
|
|
282 bpl L00ED
|
162
|
283 leax <Device,u
|
0
|
284 lda #$20
|
|
285 sta ,y
|
162
|
286
|
|
287 clra 0 = Use device capabilities
|
0
|
288 os9 I$Attach
|
162
|
289 lbcs ErrExit
|
0
|
290 stu <u0044
|
|
291 ldu <u0000
|
|
292 lda #$40
|
|
293 ldb #$20
|
|
294 std ,y
|
162
|
295 lda #WRITE.
|
|
296 leax <DevPath,u
|
0
|
297 os9 I$Open
|
162
|
298 bcs Exit
|
|
299 sta <PathNm
|
0
|
300 rts
|
|
301 L011A bsr L0122
|
|
302 bsr L015D
|
|
303 lbsr L0216
|
|
304 rts
|
162
|
305
|
|
306 L0122 leax >DDBuf,u
|
0
|
307 clrb
|
|
308 os9 I$GetStt
|
162
|
309 bcs Exit
|
0
|
310 ldb $07,x
|
|
311 stb <u0012
|
|
312 ldb $04,x
|
|
313 pshs b
|
|
314 andb #$01
|
|
315 stb <u0010
|
|
316 puls b
|
|
317 lsrb
|
|
318 andb #$01
|
|
319 stb <u0011
|
|
320 ldd $05,x
|
|
321 std <u0013
|
|
322 ldb $03,x
|
|
323 stb <u001B
|
|
324 andb #$20
|
|
325 stb <u0046
|
|
326 ldd $09,x
|
|
327 std <u0017
|
|
328 ldd $0B,x
|
|
329 std <u0019
|
|
330 ldb $0D,x
|
|
331 stb <u001F
|
|
332 ldb #$01
|
162
|
333 stb <ClustSz
|
0
|
334 clrb
|
|
335 rts
|
|
336 L015D ldx <u0020
|
|
337 L015F leay >L0188,pcr
|
|
338 bsr L0176
|
|
339 bcs L017F
|
|
340 pshs b,a
|
|
341 ldd $02,y
|
|
342 leay d,y
|
|
343 puls b,a
|
|
344 jsr ,y
|
|
345 bcc L015F
|
162
|
346 lbra Exit
|
0
|
347 L0176 lda ,x+
|
|
348 L0178 cmpa ,y
|
|
349 bne L0180
|
|
350 ldb $01,y
|
|
351 clra
|
|
352 L017F rts
|
|
353 L0180 leay $04,y
|
|
354 tst ,y
|
|
355 bne L0178
|
|
356 coma
|
|
357 rts
|
119
|
358 L0188
|
|
359
|
|
360 fdb $5259,$002c,$7259,$0028
|
|
361 fdb $2200,$002d,$3a00,$005d,$4300,$0022,$6300,$001e
|
|
362 fdb $2800,$0013,$2900,$000f,$2c00,$000b,$2000,$0007
|
|
363 fdb $00d7,$1039,$d71c,$39d7,$1239,$0c46,$3931,$c867
|
|
364
|
0
|
365 ldb #$20
|
|
366 L01C2 lda ,x+
|
|
367 cmpa #$22
|
|
368 beq L01D9
|
|
369 sta ,y+
|
|
370 decb
|
|
371 bne L01C2
|
|
372 L01CD ldb ,x+
|
|
373 cmpb #$22
|
|
374 beq L01DF
|
|
375 cmpb #$20
|
|
376 bcc L01CD
|
|
377 bra L01DF
|
|
378 L01D9 lda #$20
|
|
379 cmpb #$20
|
|
380 beq L01E3
|
|
381 L01DF leay -$01,y
|
|
382 lda ,y
|
|
383 L01E3 adda #$80
|
|
384 sta ,y
|
|
385 clrb
|
|
386 rts
|
119
|
387 lbsr L089E
|
0
|
388 ldd <u001D
|
|
389 std <u0013
|
|
390 rts
|
119
|
391 lbsr L089E
|
0
|
392 ldd <u001D
|
|
393 tsta
|
|
394 beq L01FB
|
|
395 ldb #$01
|
|
396 L01FB stb <u001F
|
|
397 L01FD rts
|
119
|
398 lbsr L089E
|
0
|
399 ldd <u001D
|
|
400 tsta
|
|
401 beq L0208
|
|
402 ldb #$01
|
162
|
403 L0208 stb <ClustSz
|
0
|
404 negb
|
|
405 decb
|
162
|
406 andb <ClustSz
|
0
|
407 beq L0214
|
|
408 ldb #$01
|
162
|
409 stb <ClustSz
|
0
|
410 L0214 clrb
|
|
411 rts
|
119
|
412 L0216 leax >Title,pcr
|
0
|
413 lbsr L0272
|
162
|
414 leay >DDBuf,u
|
0
|
415 ldx $0B,y
|
|
416 tst <u0010
|
|
417 beq L0229
|
|
418 ldx $09,y
|
|
419 L0229 stx <u0017
|
119
|
420 leax >FmtMsg,pcr
|
|
421 ldy #FmtMLen
|
0
|
422 lbsr L0276
|
162
|
423 leax <DevPath,u
|
0
|
424 tfr x,y
|
|
425 L023B lda ,y+
|
|
426 cmpa #$40
|
|
427 bne L023B
|
|
428 pshs y
|
|
429 lda #$0D
|
|
430 sta -$01,y
|
|
431 lbsr L0272
|
|
432 puls y
|
|
433 lda #$40
|
|
434 sta -$01,y
|
|
435 lda <u001C
|
|
436 bne L01FD
|
119
|
437 L0254 leax >Query,pcr
|
|
438 ldy #QueryLen
|
162
|
439 lbsr GetYN
|
0
|
440 anda #$DF
|
162
|
441 cmpa #'Y
|
0
|
442 beq L01FD
|
|
443 clrb
|
162
|
444 cmpa #'N
|
|
445 lbeq Exit
|
0
|
446 bra L0254
|
119
|
447 L026E leax >HelpCR,pcr
|
0
|
448 L0272 ldy #$0050
|
|
449 L0276 lda #$01
|
|
450 os9 I$WritLn
|
|
451 rts
|
162
|
452 *
|
|
453 * Read a one-byte answer
|
|
454 *
|
|
455 GetYN pshs u,y,x,b,a
|
0
|
456 bsr L0276
|
|
457 leax ,s
|
|
458 ldy #$0001
|
|
459 clra
|
|
460 os9 I$Read
|
162
|
461 lbcs Exit
|
0
|
462 bsr L026E
|
|
463 puls u,y,x,b,a
|
|
464 anda #$7F
|
|
465 rts
|
162
|
466
|
0
|
467 L0295 leax >L001A,pcr
|
|
468 stx <u000A
|
|
469 ldb <u001B
|
|
470 bitb #$C0
|
|
471 bne L02B9
|
|
472 ldb <u0046
|
|
473 beq L02AB
|
|
474 leax >L0076,pcr
|
|
475 bra L02B9
|
|
476 L02AB leax >L0020,pcr
|
|
477 stx <u000A
|
|
478 tst <u0010
|
|
479 beq L02B9
|
|
480 leax >L0049,pcr
|
|
481 L02B9 stx <u000C
|
|
482 clra
|
|
483 ldb <u0012
|
|
484 tfr d,y
|
|
485 clrb
|
|
486 ldx <u0013
|
|
487 bsr L0303
|
|
488 exg d,x
|
|
489 subd #$0001
|
|
490 bcc L02CE
|
|
491 leax -$01,x
|
|
492 L02CE exg d,x
|
|
493 ldy <u0017
|
|
494 bsr L0303
|
|
495 exg d,x
|
|
496 addd <u0019
|
|
497 std <u0023
|
|
498 exg d,x
|
|
499 adcb #$00
|
|
500 stb <u0022
|
|
501 lda #$08
|
|
502 pshs a
|
|
503 ldx <u0023
|
|
504 ldb <u0022
|
|
505 bsr L034C
|
162
|
506 lda <ClustSz
|
0
|
507 pshs a
|
|
508 bsr L034C
|
|
509 tstb
|
|
510 beq L02FE
|
119
|
511 leax >ClustMsg,pcr
|
0
|
512 lbsr L0272
|
119
|
513 lbra L0525
|
0
|
514 L02FE leas $02,s
|
|
515 stx <u0026
|
|
516 rts
|
|
517 L0303 lda #$08
|
|
518 L0305 clr ,-s
|
|
519 deca
|
|
520 bne L0305
|
|
521 sty ,s
|
|
522 stb $02,s
|
|
523 stx $03,s
|
|
524 L0311 ldd ,s
|
|
525 beq L0334
|
|
526 lsra
|
|
527 rorb
|
|
528 std ,s
|
|
529 bcc L0327
|
|
530 ldd $03,s
|
|
531 addd $06,s
|
|
532 std $06,s
|
|
533 lda $02,s
|
|
534 adca $05,s
|
|
535 sta $05,s
|
|
536 L0327 ldd $03,s
|
|
537 lslb
|
|
538 rola
|
|
539 std $03,s
|
|
540 lda $02,s
|
|
541 rola
|
|
542 sta $02,s
|
|
543 bra L0311
|
|
544 L0334 leas $05,s
|
|
545 puls pc,x,b
|
|
546 L0338 pshs x,b
|
|
547 lsr ,s
|
|
548 ror $01,s
|
|
549 ror $02,s
|
|
550 puls x,b
|
|
551 exg d,x
|
|
552 adcb #$00
|
|
553 adca #$00
|
|
554 exg d,x
|
|
555 adcb #$00
|
|
556 L034C lsr $02,s
|
|
557 bne L0338
|
|
558 rts
|
162
|
559
|
|
560 AskBoth tst <u001B
|
0
|
561 bpl L036B
|
119
|
562 leax >Both,pcr
|
|
563 ldy #BothLen
|
162
|
564 lbsr GetYN
|
0
|
565 anda #$DF
|
162
|
566 cmpa #'Y
|
0
|
567 beq L036B
|
162
|
568 cmpa #'N
|
|
569 bne AskBoth
|
0
|
570 rts
|
162
|
571
|
|
572 L036B lda <PathNm
|
119
|
573 ldb #SS.Reset
|
0
|
574 os9 I$SetStt
|
162
|
575 lbcs Exit
|
0
|
576 ldd #$0000
|
|
577 std <u0003
|
|
578 inca
|
|
579 sta <u0007
|
|
580 L037E clr <u0005
|
|
581 L0380 bsr L03DA
|
|
582 leax >u00AF,u
|
|
583 ldu <u0003
|
|
584 clrb
|
|
585 tst <u0010
|
|
586 beq L039B
|
|
587 tst <u0046
|
|
588 bne L0399
|
|
589 tst <u0004
|
|
590 bne L0399
|
|
591 tst <u0005
|
|
592 beq L039B
|
|
593 L0399 orb #$02
|
|
594 L039B tst <u0011
|
|
595 beq L03A1
|
|
596 orb #$04
|
|
597 L03A1 lda <u0005
|
|
598 beq L03A7
|
|
599 orb #$01
|
|
600 L03A7 tfr d,y
|
162
|
601 lda <PathNm
|
119
|
602 ldb #SS.WTrk
|
0
|
603 os9 I$SetStt
|
162
|
604 lbcs Exit
|
0
|
605 ldu <u0000
|
|
606 ldb <u0005
|
|
607 incb
|
|
608 stb <u0005
|
|
609 cmpb <u0012
|
|
610 bcs L0380
|
|
611 ldd <u0003
|
|
612 addd #$0001
|
|
613 std <u0003
|
|
614 cmpd <u0013
|
|
615 bcs L037E
|
|
616 rts
|
|
617 L03CC ldy <u000E
|
|
618 L03CF ldd ,y++
|
|
619 beq L03E9
|
|
620 L03D3 stb ,x+
|
|
621 deca
|
|
622 bne L03D3
|
|
623 bra L03CF
|
|
624 L03DA lda <u001B
|
|
625 bita #$C0
|
|
626 beq L03EA
|
|
627 ldy <u000C
|
|
628 leax >u00AF,u
|
|
629 bsr L03CF
|
|
630 L03E9 rts
|
|
631 L03EA ldy <u000C
|
|
632 ldb <u0018
|
|
633 tst <u0046
|
|
634 bne L0400
|
|
635 tst <u0004
|
|
636 bne L0400
|
|
637 tst <u0005
|
|
638 bne L0400
|
|
639 ldy <u000A
|
|
640 ldb <u001A
|
|
641 L0400 sty <u000E
|
|
642 stb <u0009
|
|
643 stb <u0016
|
|
644 bsr L0466
|
|
645 leax >u00AF,u
|
|
646 bsr L03CF
|
|
647 sty <u000E
|
|
648 L0412 bsr L03CC
|
|
649 dec <u0009
|
|
650 bne L0412
|
|
651 lda ,y+
|
|
652 sty <u000E
|
|
653 stx <u003B
|
|
654 leay >u2976,u
|
|
655 sty <u001D
|
|
656 tfr a,b
|
|
657 L0428 std ,x++
|
|
658 cmpx <u001D
|
|
659 bcs L0428
|
|
660 ldy <u000E
|
|
661 ldd ,y++
|
|
662 std <u003D
|
|
663 ldd ,y
|
|
664 std <u003F
|
|
665 clr <u0009
|
|
666 leax >u00AF,u
|
|
667 ldd <u003D
|
|
668 leay >u0087,u
|
|
669 L0445 leax d,x
|
|
670 ldd <u0004
|
|
671 std ,x
|
|
672 ldb <u0009
|
|
673 lda b,y
|
|
674 incb
|
|
675 stb <u0009
|
|
676 ldb <u0007
|
|
677 tst <u0046
|
|
678 beq L0459
|
|
679 inca
|
|
680 L0459 std $02,x
|
|
681 lda <u0009
|
|
682 cmpa <u0016
|
|
683 bcc L0465
|
|
684 ldd <u003F
|
|
685 bra L0445
|
|
686 L0465 rts
|
|
687 L0466 pshs y,b
|
|
688 tfr b,a
|
|
689 ldb <u0004
|
|
690 cmpb #$01
|
|
691 bhi L0492
|
|
692 leax >u0087,u
|
|
693 leay a,x
|
|
694 ldb <u001F
|
|
695 bne L0481
|
119
|
696 L047A leax >Abort,pcr
|
|
697 lbra L066D
|
0
|
698 L0481 cmpb <u0016
|
|
699 bhi L047A
|
|
700 nega
|
|
701 pshs y,x,b,a
|
|
702 clra
|
|
703 L0489 sta ,x
|
|
704 inca
|
|
705 cmpa <u0016
|
|
706 bne L0494
|
|
707 leas $06,s
|
|
708 L0492 puls pc,y,b
|
|
709 L0494 ldb <u001F
|
|
710 abx
|
|
711 cmpx $04,s
|
|
712 bcs L049F
|
|
713 ldb ,s
|
|
714 leax b,x
|
|
715 L049F cmpx $02,s
|
|
716 bne L0489
|
|
717 leax $01,x
|
|
718 stx $02,s
|
|
719 bra L0489
|
119
|
720 L04A9 lbsr L080A
|
0
|
721 ldd <u0023
|
|
722 std $01,x
|
|
723 ldb <u0022
|
|
724 stb ,x
|
|
725 ldd <u0017
|
|
726 std <$11,x
|
|
727 stb $03,x
|
162
|
728 lda <ClustSz
|
0
|
729 sta $07,x
|
|
730 clra
|
|
731 ldb <u0026
|
|
732 tst <u0027
|
|
733 beq L04C9
|
|
734 addd #$0001
|
|
735 L04C9 addd #$0001
|
|
736 std $09,x
|
|
737 clra
|
|
738 tst <u0010
|
119
|
739 beq L04D5
|
0
|
740 ora #$02
|
119
|
741 L04D5 ldb <u0012
|
0
|
742 cmpb #$01
|
119
|
743 beq L04DD
|
0
|
744 ora #$01
|
119
|
745 L04DD tst <u0011
|
|
746 beq L04E3
|
0
|
747 ora #$04
|
119
|
748 L04E3 sta <$10,x
|
0
|
749 ldd <u0026
|
|
750 std $04,x
|
|
751 lda #$FF
|
|
752 sta $0D,x
|
162
|
753 leax >DateBf,u
|
0
|
754 os9 F$Time
|
|
755 leax >u00CE,u
|
|
756 leay <u0067,u
|
|
757 tst ,y
|
119
|
758 beq L0508
|
|
759 L0500 lda ,y+
|
0
|
760 sta ,x+
|
119
|
761 bpl L0500
|
|
762 bra L053B
|
|
763 L0508 leax >DName,pcr
|
|
764 ldy #DNameLen
|
0
|
765 lbsr L0276
|
|
766 leax >u00CE,u
|
|
767 ldy #$0021
|
|
768 clra
|
|
769 os9 I$ReadLn
|
119
|
770 bcc L052C
|
0
|
771 cmpa #$D3
|
119
|
772 bne L0508
|
|
773 L0525 leax >Aborted,pcr
|
|
774 lbra L066D
|
|
775 L052C tfr y,d
|
0
|
776 leax d,x
|
|
777 clr ,-x
|
|
778 decb
|
119
|
779 beq L0508
|
0
|
780 lda ,-x
|
|
781 ora #$80
|
|
782 sta ,x
|
162
|
783 L053B leax >DateBf,u
|
0
|
784 leay <$40,x
|
|
785 pshs y
|
|
786 ldd #$0000
|
119
|
787 L0547 addd ,x++
|
0
|
788 cmpx ,s
|
119
|
789 bcs L0547
|
0
|
790 leas $02,s
|
|
791 std >u00BD,u
|
|
792 ldd >L0014,pcr
|
|
793 std >u019F,u
|
|
794 ldd >L0016,pcr
|
|
795 std >u01A1,u
|
|
796 ldd >L0018,pcr
|
|
797 std >u01A3,u
|
162
|
798 lda <PathNm
|
119
|
799 ldb #SS.Opt
|
0
|
800 leax >u00EE,u
|
|
801 os9 I$GetStt
|
119
|
802 ldb #SS.Reset
|
0
|
803 os9 I$SetStt
|
162
|
804 lbcs Exit
|
0
|
805 leax >u00AF,u
|
119
|
806 lbra L0816
|
162
|
807 L0586 lda <PathNm
|
0
|
808 os9 I$Close
|
162
|
809 leax <DevPath,u
|
|
810 lda #READ.
|
0
|
811 os9 I$Open
|
119
|
812 lbcs L0669
|
162
|
813 sta <PathNm
|
0
|
814 leax >u00AF,u
|
|
815 ldy #$0100
|
|
816 os9 I$Read
|
119
|
817 lbcs L0669
|
162
|
818 lda <PathNm
|
0
|
819 os9 I$Close
|
162
|
820 leax <DevPath,u
|
|
821 lda #UPDAT.
|
0
|
822 os9 I$Open
|
119
|
823 lbcs L0669
|
162
|
824 sta <PathNm
|
0
|
825 rts
|
119
|
826 L05BC lda <u001B
|
0
|
827 clr <u0043
|
|
828 bita #$80
|
119
|
829 beq L05DB
|
|
830 L05C4 leax >Verify,pcr
|
|
831 ldy #VerifyLen
|
162
|
832 lbsr GetYN
|
0
|
833 anda #$DF
|
162
|
834 cmpa #'Y
|
119
|
835 beq L05DB
|
162
|
836 cmpa #'N
|
119
|
837 bne L05C4
|
162
|
838
|
0
|
839 sta <u0043
|
119
|
840 L05DB ldd <u0019
|
0
|
841 std <u0015
|
|
842 clra
|
|
843 clrb
|
|
844 std <u0034
|
|
845 std <u0003
|
|
846 std <u0008
|
|
847 std <u0030
|
|
848 stb <u002F
|
|
849 sta <u003A
|
162
|
850 leax >DDBuf,u
|
0
|
851 stx <u0036
|
119
|
852 lbsr L080E
|
0
|
853 leax >$0100,x
|
|
854 stx <u0038
|
|
855 clra
|
|
856 ldb #$01
|
|
857 std <u0032
|
162
|
858 lda <ClustSz
|
0
|
859 sta <u0029
|
|
860 clr <u0028
|
|
861 clra
|
|
862 ldb <u0026
|
|
863 tst <u0027
|
119
|
864 beq L0611
|
0
|
865 addd #$0001
|
119
|
866 L0611 addd #$0009
|
0
|
867 std <u002B
|
162
|
868 lda <ClustSz
|
119
|
869 L0618 lsra
|
|
870 bcs L0629
|
0
|
871 lsr <u002B
|
|
872 ror <u002C
|
119
|
873 bcc L0618
|
0
|
874 inc <u002C
|
119
|
875 bne L0618
|
0
|
876 inc <u002B
|
119
|
877 bra L0618
|
|
878 L0629 ldb <u002C
|
0
|
879 stb <u002D
|
162
|
880 lda <ClustSz
|
0
|
881 mul
|
|
882 std <u002B
|
|
883 subd #$0001
|
|
884 subb <u0026
|
|
885 sbca #$00
|
|
886 tst <u0027
|
119
|
887 beq L0640
|
0
|
888 subd #$0001
|
119
|
889 L0640 stb <u002A
|
|
890 L0642 tst <u0043
|
|
891 bne L0674
|
162
|
892 lda <PathNm
|
0
|
893 leax >u00AF,u
|
|
894 ldy #$0100
|
|
895 os9 I$Read
|
119
|
896 bcc L0674
|
0
|
897 os9 F$PErr
|
119
|
898 lbsr L083A
|
0
|
899 lda #$FF
|
|
900 sta <u0028
|
|
901 tst <u002F
|
119
|
902 bne L0674
|
0
|
903 ldx <u0030
|
|
904 cmpx <u002B
|
119
|
905 bhi L0674
|
|
906 L0669 leax >BadSect,pcr
|
|
907 L066D lbsr L0272
|
0
|
908 clrb
|
162
|
909 lbra Exit
|
119
|
910 L0674 ldd <u0008
|
0
|
911 addd #$0001
|
|
912 std <u0008
|
|
913 cmpd <u0015
|
119
|
914 bcs L06B9
|
0
|
915 clr <u0008
|
|
916 clr <u0009
|
|
917 tst <u0043
|
119
|
918 bne L06AE
|
0
|
919 lda #$20
|
|
920 pshs a
|
|
921 lda <u0004
|
119
|
922 lbsr L071B
|
0
|
923 pshs b,a
|
|
924 lda <u0003
|
119
|
925 lbsr L071B
|
0
|
926 pshs b
|
|
927 tfr s,x
|
|
928 ldy #$0004
|
|
929 lbsr L0276
|
|
930 lda $02,s
|
|
931 cmpa #$46
|
119
|
932 bne L06AC
|
0
|
933 lbsr L026E
|
119
|
934 L06AC leas $04,s
|
|
935 L06AE ldd <u0003
|
0
|
936 addd #$0001
|
|
937 std <u0003
|
|
938 ldd <u0017
|
|
939 std <u0015
|
119
|
940 L06B9 dec <u0029
|
|
941 bne L06CF
|
|
942 bsr L06F8
|
0
|
943 tst <u0028
|
119
|
944 bne L06C9
|
0
|
945 ldx <u0034
|
|
946 leax $01,x
|
|
947 stx <u0034
|
119
|
948 L06C9 clr <u0028
|
162
|
949 lda <ClustSz
|
0
|
950 sta <u0029
|
119
|
951 L06CF ldb <u002F
|
0
|
952 ldx <u0030
|
|
953 leax $01,x
|
119
|
954 bne L06D8
|
0
|
955 incb
|
119
|
956 L06D8 cmpb <u0022
|
|
957 bcs L06E0
|
0
|
958 cmpx <u0023
|
119
|
959 bcc L06E7
|
|
960 L06E0 stb <u002F
|
0
|
961 stx <u0030
|
119
|
962 lbra L0642
|
|
963 L06E7 lda #$FF
|
0
|
964 sta <u0028
|
162
|
965 leay >DDBuf,u
|
119
|
966 L06EF cmpy <u0036
|
|
967 beq L0733
|
|
968 bsr L06F8
|
|
969 bra L06EF
|
|
970 L06F8 ldx <u0036
|
0
|
971 lda <u0028
|
|
972 rora
|
|
973 rol ,x+
|
|
974 inc <u003A
|
|
975 lda <u003A
|
|
976 cmpa #$08
|
119
|
977 bcs L071A
|
0
|
978 clr <u003A
|
|
979 stx <u0036
|
|
980 cmpx <u0038
|
119
|
981 bne L071A
|
|
982 bsr L0777
|
162
|
983 leax >DDBuf,u
|
0
|
984 stx <u0036
|
119
|
985 lbsr L080E
|
|
986 L071A rts
|
|
987 L071B tfr a,b
|
0
|
988 lsra
|
|
989 lsra
|
|
990 lsra
|
|
991 lsra
|
|
992 andb #$0F
|
|
993 addd #$3030
|
|
994 cmpa #$39
|
119
|
995 bls L072C
|
0
|
996 adda #$07
|
119
|
997 L072C cmpb #$39
|
|
998 bls L0732
|
0
|
999 addb #$07
|
119
|
1000 L0732 rts
|
|
1001 L0733 lbsr L026E
|
|
1002 leax >NumGood,pcr
|
|
1003 ldy #NumGoodLen
|
0
|
1004 lbsr L0276
|
162
|
1005 ldb <ClustSz
|
0
|
1006 clra
|
|
1007 ldx <u0034
|
|
1008 pshs x,a
|
119
|
1009 L0748 lsrb
|
|
1010 bcs L0753
|
0
|
1011 lsl $02,s
|
|
1012 rol $01,s
|
|
1013 rol ,s
|
119
|
1014 bra L0748
|
|
1015 L0753 puls x,a
|
0
|
1016 ldb #$0D
|
|
1017 pshs b
|
|
1018 tfr d,y
|
|
1019 tfr x,d
|
|
1020 tfr b,a
|
119
|
1021 bsr L071B
|
0
|
1022 pshs b,a
|
|
1023 tfr x,d
|
119
|
1024 bsr L071B
|
0
|
1025 pshs b,a
|
|
1026 tfr y,d
|
119
|
1027 bsr L071B
|
0
|
1028 pshs b,a
|
|
1029 tfr s,x
|
|
1030 lbsr L0272
|
|
1031 leas $07,s
|
|
1032 rts
|
119
|
1033 L0777 pshs y
|
0
|
1034 clra
|
|
1035 ldb #$01
|
|
1036 cmpd <u0032
|
119
|
1037 bne L0792
|
162
|
1038 leax >DDBuf,u
|
0
|
1039 clra
|
|
1040 ldb <u002D
|
|
1041 tfr d,y
|
|
1042 clrb
|
|
1043 os9 F$AllBit
|
119
|
1044 lbcs L0669
|
|
1045 L0792 lbsr L0824
|
162
|
1046 leax >DDBuf,u
|
119
|
1047 bsr L0816
|
0
|
1048 ldd <u0022
|
|
1049 cmpd <u002F
|
119
|
1050 bcs L07AD
|
|
1051 bhi L07AA
|
0
|
1052 ldb <u0024
|
|
1053 cmpb <u0031
|
119
|
1054 bcc L07AD
|
|
1055 L07AA lbsr L083A
|
|
1056 L07AD ldd <u0032
|
0
|
1057 addd #$0001
|
|
1058 std <u0032
|
|
1059 puls pc,y
|
119
|
1060 L07B6 bsr L0824
|
0
|
1061 leax >u02AF,u
|
119
|
1062 bsr L080E
|
0
|
1063 leax >u02B2,u
|
|
1064 os9 F$Time
|
|
1065 leax >u02AF,u
|
|
1066 lda #$BF
|
|
1067 sta ,x
|
|
1068 lda #$02
|
|
1069 sta $08,x
|
|
1070 clra
|
|
1071 ldb #$40
|
|
1072 std $0B,x
|
|
1073 ldb <u002A
|
|
1074 decb
|
|
1075 stb <$14,x
|
|
1076 ldd <u0032
|
|
1077 addd #$0001
|
|
1078 std <$11,x
|
119
|
1079 bsr L0816
|
|
1080 bsr L080A
|
0
|
1081 ldd #$2EAE
|
|
1082 std ,x
|
|
1083 stb <$20,x
|
|
1084 ldd <u0032
|
|
1085 std <$1E,x
|
|
1086 std <$3E,x
|
119
|
1087 bsr L0816
|
|
1088 bsr L080A
|
0
|
1089 ldb <u002A
|
119
|
1090 L07FE decb
|
|
1091 bne L0802
|
0
|
1092 rts
|
119
|
1093 L0802 pshs b
|
|
1094 bsr L0816
|
0
|
1095 puls b
|
119
|
1096 bra L07FE
|
|
1097 L080A leax >u00AF,u
|
|
1098 L080E clra
|
0
|
1099 clrb
|
119
|
1100 L0810 sta d,x
|
0
|
1101 decb
|
119
|
1102 bne L0810
|
0
|
1103 rts
|
162
|
1104 L0816 lda <PathNm
|
0
|
1105 ldy #$0100
|
|
1106 os9 I$Write
|
162
|
1107 lbcs Exit
|
0
|
1108 rts
|
119
|
1109 L0824 clra
|
0
|
1110 ldb <u0032
|
|
1111 tfr d,x
|
|
1112 lda <u0033
|
|
1113 clrb
|
|
1114 tfr d,u
|
162
|
1115 L082E lda <PathNm
|
0
|
1116 os9 I$Seek
|
|
1117 ldu <u0000
|
162
|
1118 lbcs Exit
|
0
|
1119 rts
|
119
|
1120 L083A ldx <u002F
|
0
|
1121 lda <u0031
|
|
1122 clrb
|
|
1123 addd #$0100
|
|
1124 tfr d,u
|
119
|
1125 bcc L082E
|
0
|
1126 leax $01,x
|
119
|
1127 bra L082E
|
0
|
1128 ldd ,y
|
|
1129 leau >u00AF,u
|
119
|
1130 leax >L0892,pcr
|
0
|
1131 ldy #$2F20
|
119
|
1132 L0858 leay >$0100,y
|
0
|
1133 subd ,x
|
119
|
1134 bcc L0858
|
0
|
1135 addd ,x++
|
|
1136 pshs b,a
|
|
1137 ldd ,x
|
|
1138 tfr y,d
|
119
|
1139 beq L0880
|
0
|
1140 ldy #$2F30
|
|
1141 cmpd #$3020
|
119
|
1142 bne L087A
|
0
|
1143 ldy #$2F20
|
|
1144 tfr b,a
|
119
|
1145 L087A sta ,u+
|
0
|
1146 puls b,a
|
119
|
1147 bra L0858
|
|
1148 L0880 sta ,u+
|
0
|
1149 lda #$0D
|
|
1150 sta ,u
|
|
1151 ldu <u0000
|
|
1152 leas $02,s
|
|
1153 leax >u00AF,u
|
|
1154 lbsr L0272
|
|
1155 rts
|
119
|
1156 L0892
|
|
1157
|
|
1158 fdb $2710,$03e8,$0064,$000a,$0001,$0000
|
|
1159
|
|
1160
|
|
1161 L089E ldd #$0000
|
|
1162 L08A1 bsr L08B1
|
|
1163 bcs L08AB
|
|
1164 bne L08A1
|
0
|
1165 std <u001D
|
119
|
1166 bne L08B0
|
|
1167 L08AB ldd #$0001
|
0
|
1168 std <u001D
|
119
|
1169 L08B0 rts
|
|
1170 L08B1 pshs y,b,a
|
0
|
1171 ldb ,x+
|
|
1172 subb #$30
|
|
1173 cmpb #$0A
|
119
|
1174 bcc L08CF
|
0
|
1175 lda #$00
|
|
1176 ldy #$000A
|
119
|
1177 L08C1 addd ,s
|
|
1178 bcs L08CD
|
0
|
1179 leay -$01,y
|
119
|
1180 bne L08C1
|
0
|
1181 std ,s
|
|
1182 andcc #$FB
|
119
|
1183 L08CD puls pc,y,b,a
|
|
1184 L08CF orcc #$04
|
0
|
1185 puls pc,y,b,a
|
162
|
1186
|
|
1187 ErrExit lda #$02
|
0
|
1188 os9 F$PErr
|
119
|
1189 leax <HelpMsg,pcr
|
0
|
1190 ldy #$0154
|
|
1191 lda #$02
|
|
1192 os9 I$WritLn
|
|
1193 clrb
|
|
1194 os9 F$Exit
|
119
|
1195 Title fcb C$LF
|
|
1196 fcc "COLOR COMPUTER FORMATTER"
|
|
1197 HelpCR fcb C$CR
|
|
1198
|
|
1199 HelpMsg fcc "Use: FORMAT /devname <opts>"
|
|
1200 fcb C$LF
|
|
1201 fcc " opts: R - Ready"
|
|
1202 fcb C$LF
|
|
1203 fcc / "disk name"/
|
|
1204 fcb C$LF,C$CR
|
|
1205
|
|
1206 FmtMsg fcc "Formatting drive "
|
|
1207 FmtMLen equ *-FmtMsg
|
|
1208
|
|
1209 Query fcc "y (yes) or n (no)"
|
|
1210 fcb C$LF
|
|
1211 fcc "Ready? "
|
|
1212 QueryLen equ *-Query
|
|
1213 Abort fcc "ABORT Interleave value out of range"
|
|
1214 fcb C$CR
|
|
1215 DName fcc "Disk name: "
|
|
1216 DNameLen equ *-DName
|
|
1217 fcc "How many Cylinders (Tracks?) : "
|
|
1218 BadSect fcc "Bad system sector, "
|
|
1219 Aborted fcc "FORMAT ABORTED"
|
|
1220 fcb C$CR
|
|
1221 ClustMsg fcc "Cluster size mismatch"
|
|
1222 fcb C$CR
|
|
1223 fcc "Double density? "
|
|
1224 TPIChg fcc "Change from 96tpi to 48tpi? "
|
|
1225 DSided fcc "Double sided? "
|
|
1226 NumGood fcc "Number of good sectors: $"
|
|
1227 NumGoodLen equ *-NumGood
|
|
1228 Both fcc "Both PHYSICAL and LOGICAL format? "
|
|
1229 BothLen equ *-Both
|
|
1230 Verify fcc "Physical Verify desired? "
|
|
1231 VerifyLen equ *-Verify
|
|
1232
|
0
|
1233 emod
|
|
1234 eom equ *
|
119
|
1235 end
|
|
1236
|