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