Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/format.asm @ 924:c155aac72190
Made cosmetic changes
author | boisy |
---|---|
date | Sun, 19 Jan 2003 14:54:09 +0000 (2003-01-19) |
parents | 92b575ffa143 |
children | ebd5b6ce665d |
rev | line source |
---|---|
0 | 1 ******************************************************************** |
312 | 2 * Format - Disk format program |
0 | 3 * |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
312 | 8 * 22 From Tandy OS-9 Level Two Vr. 2.00.01 |
0 | 9 |
10 nam Format | |
312 | 11 ttl Disk format program |
0 | 12 |
312 | 13 * Disassembled 02/07/17 11:00:13 by Disasm v1.6 (C) 1988 by RML |
0 | 14 |
15 ifp1 | |
104 | 16 use defsfile |
312 | 17 use rbfdefs |
0 | 18 endc |
119 | 19 |
0 | 20 tylg set Prgrm+Objct |
21 atrv set ReEnt+rev | |
22 rev set $01 | |
312 | 23 edition set $16 |
119 | 24 |
0 | 25 mod eom,name,tylg,atrv,start,size |
119 | 26 |
924 | 27 org 0 |
28 savedu rmb 2 | |
29 diskpath rmb 1 | |
30 currtrak rmb 2 | |
0 | 31 u0005 rmb 2 |
924 | 32 currsect rmb 1 |
0 | 33 u0008 rmb 1 |
34 u0009 rmb 1 | |
312 | 35 u000A rmb 2 |
0 | 36 u000C rmb 2 |
312 | 37 u000E rmb 2 |
924 | 38 mfm rmb 1 |
0 | 39 u0011 rmb 1 |
312 | 40 T4896 rmb 1 |
41 u0013 rmb 1 | |
42 u0014 rmb 1 | |
924 | 43 ncyls rmb 2 |
0 | 44 u0017 rmb 1 |
45 u0018 rmb 1 | |
924 | 46 sectors rmb 1 |
0 | 47 u001A rmb 1 |
924 | 48 sectors0 rmb 1 |
0 | 49 u001C rmb 1 |
924 | 50 dtype rmb 1 |
312 | 51 u001E rmb 1 |
0 | 52 u001F rmb 1 |
312 | 53 u0020 rmb 1 |
924 | 54 interlv rmb 1 |
312 | 55 u0022 rmb 2 |
0 | 56 u0024 rmb 1 |
312 | 57 u0025 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 | |
312 | 65 u002D rmb 1 |
66 u002E rmb 1 | |
0 | 67 u002F rmb 1 |
68 u0030 rmb 1 | |
69 u0031 rmb 1 | |
70 u0032 rmb 1 | |
71 u0033 rmb 1 | |
312 | 72 u0034 rmb 1 |
73 u0035 rmb 1 | |
0 | 74 u0036 rmb 2 |
75 u0038 rmb 2 | |
312 | 76 u003A rmb 2 |
77 u003C rmb 1 | |
0 | 78 u003D rmb 2 |
312 | 79 u003F rmb 2 |
80 u0041 rmb 2 | |
0 | 81 u0043 rmb 1 |
312 | 82 u0044 rmb 1 |
83 u0045 rmb 1 | |
924 | 84 dtentry rmb 2 |
312 | 85 u0048 rmb 1 |
924 | 86 stoff rmb 2 |
312 | 87 u004B rmb 1 |
88 u004C rmb 1 | |
89 u004D rmb 1 | |
90 u004E rmb 1 | |
91 u004F rmb 1 | |
92 u0050 rmb 5 | |
0 | 93 u0055 rmb 15 |
312 | 94 u0064 rmb 7 |
95 u006B rmb 4 | |
96 u006F rmb 32 | |
97 u008F rmb 40 | |
98 u00B7 rmb 14 | |
99 u00C5 rmb 12 | |
924 | 100 timepkt rmb 5 |
312 | 101 u00D6 rmb 18 |
102 u00E8 rmb 14 | |
103 u00F6 rmb 177 | |
104 u01A7 rmb 2 | |
105 u01A9 rmb 2 | |
106 u01AB rmb 12 | |
924 | 107 optbuf rmb 256 |
312 | 108 u02B7 rmb 3 |
109 u02BA rmb 9924 | |
110 u297E rmb 451 | |
0 | 111 size equ . |
119 | 112 |
113 name fcs /Format/ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
168
diff
changeset
|
114 fcb edition |
119 | 115 |
312 | 116 L0014 fdb $0000 |
117 L0016 fdb $0000 | |
118 L0018 fdb $0000 | |
119 L001A fdb $80E5 | |
120 fdb $80E5 | |
121 fdb $0000 | |
122 L0020 fdb $0100 | |
123 fdb $28FF | |
124 fdb $0600 | |
125 fdb $01FC | |
126 fdb $0CFF | |
127 fdb $0000 | |
128 fdb $0600 | |
129 fdb $01FE | |
130 fdb $0400 | |
131 fdb $01F7 | |
132 fdb $0AFF | |
133 fdb $0600 | |
134 fdb $01FB | |
135 fdb $80E5 | |
136 fdb $80E5 | |
137 fdb $01F7 | |
138 fdb $0AFF | |
139 fdb $0000 | |
140 fcb $Ff | |
141 fdb $0043 | |
142 fdb $0128 | |
143 L0049 fdb $504E | |
144 fdb $0C00 | |
145 fdb $03F6 | |
146 fdb $01Fc | |
147 fdb $204E | |
148 fdb $0000 | |
149 fdb $0C00 | |
150 fdb $03F5 | |
151 fdb $01FE | |
152 fdb $0400 | |
153 fdb $01F7 | |
154 fdb $164E | |
155 fdb $0C00 | |
156 fdb $03F5 | |
157 fdb $01FB | |
158 fdb $80E5 | |
159 fdb $80E5 | |
160 fdb $01F7 | |
161 fdb $164E | |
162 fdb $0000 | |
163 fcb $4E | |
0 | 164 fcb $00 |
165 fcb $90 | |
166 fcb $01 | |
167 fcb $52 R | |
168 L0076 fcb $20 | |
169 fcb $4E N | |
170 fcb $00 | |
171 fcb $00 | |
312 | 172 fcb $0C |
0 | 173 fcb $00 |
174 fcb $03 | |
175 fcb $F5 u | |
176 fcb $01 | |
177 fcb $FE | |
178 fcb $04 | |
179 fcb $00 | |
180 fcb $01 | |
181 fcb $F7 w | |
182 fcb $16 | |
183 fcb $4E N | |
184 fcb $0C | |
185 fcb $00 | |
186 fcb $03 | |
187 fcb $F5 u | |
188 fcb $01 | |
189 fcb $FB | |
190 fcb $80 | |
191 fcb $E5 e | |
192 fcb $80 | |
193 fcb $E5 e | |
194 fcb $01 | |
195 fcb $F7 w | |
196 fcb $18 | |
197 fcb $4E N | |
198 fcb $00 | |
199 fcb $00 | |
200 fcb $4E N | |
201 fcb $00 | |
312 | 202 fcb $30 0 |
0 | 203 fcb $01 |
312 | 204 fcb $54 T |
205 | |
924 | 206 start stu <savedu |
312 | 207 bsr ClrWork cleark work area |
208 bsr OpenDev get device name and open it | |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
209 bsr Default |
312 | 210 lbsr GetDTyp |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
211 lbsr Format |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
212 lbsr InitDisk |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
213 lbsr Access |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
214 lbsr Stamps |
312 | 215 lbsr L0843 |
924 | 216 ldu <dtentry |
0 | 217 os9 I$Detach |
218 clrb | |
312 | 219 L00BB os9 F$Exit |
924 | 220 ClrWork leay diskpath,u |
0 | 221 pshs y |
312 | 222 leay >u00B7,u |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
223 ClrOne clr ,-y |
0 | 224 cmpy ,s |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
225 bhi ClrOne |
0 | 226 puls pc,y |
162 | 227 |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
228 OpenDev lda ,x+ get char at X |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
229 cmpa #PDELIM pathlist delimiter? |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
230 beq L00DA branch if so |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
231 L00D5 ldb #E$BPNam else set bad pathname |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
232 lbra L0961 and print error |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
233 L00DA os9 F$PrsNam parse pathname |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
234 lbcs L0961 branch if illegal (has additional pathlist element) |
312 | 235 lda #PDELIM |
0 | 236 cmpa ,y |
237 beq L00D5 | |
312 | 238 sty <u0022 |
239 leay <u004F,u | |
0 | 240 L00ED sta ,y+ |
241 lda ,x+ | |
242 decb | |
243 bpl L00ED | |
312 | 244 leax <u0050,u |
245 lda #C$SPAC | |
0 | 246 sta ,y |
312 | 247 clra |
0 | 248 os9 I$Attach |
312 | 249 lbcs L0961 |
924 | 250 stu <dtentry |
251 ldu <savedu | |
312 | 252 lda #PENTIR |
253 ldb #C$SPAC | |
0 | 254 std ,y |
162 | 255 lda #WRITE. |
312 | 256 leax <u004F,u |
0 | 257 os9 I$Open |
312 | 258 bcs L00BB |
924 | 259 sta <diskpath |
0 | 260 rts |
162 | 261 |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
262 Default bsr GetOpts |
312 | 263 bsr L0183 |
264 lbsr L025E | |
265 rts | |
266 | |
924 | 267 GetOpts leax >optbuf,u |
0 | 268 clrb |
269 os9 I$GetStt | |
312 | 270 bcs L00BB |
271 ldb PD.SID-PD.OPT,x | |
272 stb <u0013 | |
273 stb <u0014 | |
274 ldb PD.SToff-PD.OPT,x | |
275 beq L0143 | |
276 tfr b,a | |
277 anda #$0F | |
924 | 278 sta <stoff |
312 | 279 lsrb |
280 lsrb | |
281 lsrb | |
282 lsrb | |
283 stb <u004B | |
284 L0143 ldb PD.DNS-PD.OPT,x | |
0 | 285 pshs b |
312 | 286 andb #DNS.MFM |
924 | 287 stb <mfm |
312 | 288 stb <u0011 |
289 ldb ,s | |
290 lsrb | |
291 pshs b | |
292 andb #$01 (PD.DTD) | |
293 stb <T4896 | |
0 | 294 puls b |
295 lsrb | |
312 | 296 andb <u0011 |
297 stb <u004C | |
298 puls b | |
0 | 299 ldb #$01 |
312 | 300 stb <u004D |
301 beq L0169 | |
302 stb <u004B | |
924 | 303 clr <stoff |
312 | 304 L0169 ldd PD.CYL-PD.OPT,x |
924 | 305 std <ncyls |
312 | 306 ldb PD.TYP-PD.OPT,x |
924 | 307 stb <dtype |
312 | 308 ldd PD.SCT-PD.OPT,x |
924 | 309 std <sectors |
312 | 310 ldd PD.T0S-PD.OPT,x |
924 | 311 std <sectors0 |
312 | 312 ldb PD.ILV-PD.OPT,x |
924 | 313 stb <interlv |
312 | 314 ldb #$01 |
315 stb <u0027 | |
0 | 316 clrb |
317 rts | |
312 | 318 L0183 ldx <u0022 |
319 L0185 leay >OptTbl,pcr | |
320 bsr L019C | |
321 bcs L01A5 | |
0 | 322 pshs b,a |
323 ldd $02,y | |
324 leay d,y | |
325 puls b,a | |
326 jsr ,y | |
312 | 327 bcc L0185 |
328 lbra L00BB | |
329 L019C lda ,x+ | |
330 L019E cmpa ,y | |
331 bne L01A6 | |
0 | 332 ldb $01,y |
333 clra | |
312 | 334 L01A5 rts |
335 L01A6 leay $04,y | |
0 | 336 tst ,y |
312 | 337 bne L019E |
0 | 338 coma |
339 rts | |
119 | 340 |
312 | 341 OptTbl |
342 opt.1 fcc /R/ | |
343 fcc /Y/ | |
344 fdb DoReady-opt.1 | |
345 opt.2 fcc /r/ | |
346 fcc /Y/ | |
347 fdb DoReady-opt.2 | |
348 opt.3 fcc /"/ | |
349 fcb $00 | |
350 fdb DoQuote-opt.3 | |
351 opt.4 fcc /:/ | |
352 fcb $00 | |
353 fdb DoColon-opt.4 | |
354 opt.5 fcc /1/ | |
355 fcb $01 | |
356 fdb Do1-opt.5 | |
357 opt.6 fcc /2/ | |
358 fcb $02 | |
359 fdb Do2-opt.6 | |
360 opt.7 fcc /'/ | |
361 fcb 0 | |
362 fdb DoSQuote-opt.7 | |
363 opt.8 fcc /L/ | |
364 fcb $01 | |
365 fdb DoL-opt.8 | |
366 opt.9 fcc /l/ | |
367 fcb 01 | |
368 fdb DoL-opt.9 | |
369 opt.10 fcc /(/ | |
370 fcb $00 | |
371 fdb DoLParen-opt.10 | |
372 opt.11 fcc /)/ | |
373 fcb $00 | |
374 fdb DoRParen-opt.11 | |
375 opt.12 fcc /,/ | |
376 fcb $00 | |
377 fdb DoComa-opt.12 | |
378 opt.13 fcb C$SPAC | |
379 fcb 00 | |
380 fdb DoSpace-opt.13 | |
119 | 381 |
312 | 382 fcb $00 |
383 | |
384 cmpb <u0011 | |
385 bgt L01FE | |
386 cmpb <u004C | |
387 blt L01FE | |
924 | 388 stb <mfm |
312 | 389 clrb |
390 | |
391 DoComa | |
392 DoRParen | |
393 DoLParen | |
394 DoSpace rts | |
395 | |
396 DoReady stb <u001E | |
397 rts | |
398 | |
399 Do2 | |
400 Do1 cmpb <u0013 | |
401 bgt L01FE | |
402 stb <u0013 | |
403 clrb | |
404 rts | |
405 | |
406 DoL stb <u004E | |
407 clrb | |
408 rts | |
409 | |
410 L01FE leax >AbortOp,pcr | |
411 lbra L06F9 | |
412 | |
413 DoQuote leay <u006F,u | |
414 ldb #C$SPAC | |
415 L020A | |
416 koQuote lda ,x+ | |
417 cmpa #'" | |
418 beq L0221 | |
0 | 419 sta ,y+ |
420 decb | |
312 | 421 bne L020A |
422 L0215 ldb ,x+ | |
423 cmpb #'" | |
424 beq L0227 | |
425 cmpb #C$SPAC | |
426 bcc L0215 | |
427 bra L0227 | |
428 L0221 lda #C$SPAC | |
429 cmpb #C$SPAC | |
430 beq L022B | |
431 L0227 leay -$01,y | |
0 | 432 lda ,y |
312 | 433 L022B adda #$80 |
0 | 434 sta ,y |
435 clrb | |
436 rts | |
312 | 437 |
438 DoSQuote lbsr L092C | |
439 ldd <u001F | |
924 | 440 std <ncyls |
0 | 441 rts |
312 | 442 |
443 DoColon lbsr L092C | |
444 ldd <u001F | |
0 | 445 tsta |
312 | 446 beq L0243 |
0 | 447 ldb #$01 |
924 | 448 L0243 stb <interlv |
312 | 449 rts |
450 lbsr L092C | |
451 ldd <u001F | |
0 | 452 tsta |
312 | 453 beq L0250 |
0 | 454 ldb #$01 |
312 | 455 L0250 stb <u0027 |
0 | 456 negb |
457 decb | |
312 | 458 andb <u0027 |
459 beq L025C | |
0 | 460 ldb #$01 |
312 | 461 stb <u0027 |
462 L025C clrb | |
463 L025D rts | |
464 L025E leax >Title,pcr | |
465 lbsr L02E2 | |
924 | 466 leay >optbuf,u |
312 | 467 ldx PD.T0S-PD.OPT,y |
924 | 468 tst <mfm |
312 | 469 beq L0271 |
470 ldx PD.SCT-PD.OPT,y | |
924 | 471 L0271 stx <sectors |
119 | 472 leax >FmtMsg,pcr |
473 ldy #FmtMLen | |
312 | 474 lbsr L02E6 |
475 leax <u004F,u | |
0 | 476 tfr x,y |
312 | 477 L0283 lda ,y+ |
478 cmpa #PENTIR | |
479 bne L0283 | |
0 | 480 pshs y |
312 | 481 lda #C$CR |
0 | 482 sta -$01,y |
312 | 483 lbsr L02E2 |
0 | 484 puls y |
312 | 485 lda #PENTIR |
0 | 486 sta -$01,y |
312 | 487 lda <u001E |
488 bne L02BC | |
924 | 489 tst <dtype |
312 | 490 bpl L02AB |
491 leax >HDFmt,pcr | |
492 ldy #$002A | |
493 lbsr L02E6 | |
494 L02AB leax >Query,pcr | |
119 | 495 ldy #QueryLen |
312 | 496 lbsr L02EC |
0 | 497 anda #$DF |
162 | 498 cmpa #'Y |
312 | 499 bne L02D5 |
924 | 500 L02BC tst <dtype |
312 | 501 bpl L025D |
502 leax >HDFmt,pcr | |
503 ldy #$0038 | |
504 lbsr L02EC | |
505 anda #$DF | |
506 cmpa #'Y | |
507 beq L025D | |
0 | 508 clrb |
312 | 509 lbra L00BB |
510 L02D5 clrb | |
162 | 511 cmpa #'N |
312 | 512 lbeq L00BB |
513 bra L02AB | |
514 L02DE leax >HelpCR,pcr | |
515 L02E2 ldy #80 | |
516 L02E6 lda #$01 | |
0 | 517 os9 I$WritLn |
518 rts | |
312 | 519 L02EC pshs u,y,x,b,a |
520 bsr L02E6 | |
0 | 521 leax ,s |
522 ldy #$0001 | |
523 clra | |
524 os9 I$Read | |
312 | 525 lbcs L00BB |
526 bsr L02DE | |
0 | 527 puls u,y,x,b,a |
528 anda #$7F | |
529 rts | |
162 | 530 |
312 | 531 GetDTyp leax >L001A,pcr |
0 | 532 stx <u000A |
924 | 533 ldb <dtype |
312 | 534 bitb #TYP.HARD+TYP.NSF |
535 bne L0323 | |
536 tst <u004D | |
537 beq L031B | |
0 | 538 leax >L0076,pcr |
312 | 539 bra L032D |
540 L031B leax >L0020,pcr | |
924 | 541 tst <mfm |
312 | 542 beq L032D |
543 L0323 stx <u000A | |
0 | 544 leax >L0049,pcr |
312 | 545 tst <u004C |
546 beq L032F | |
547 L032D stx <u000A | |
548 L032F stx <u000C | |
0 | 549 clra |
312 | 550 ldb <u0013 |
0 | 551 tfr d,y |
552 clrb | |
924 | 553 ldx <ncyls |
312 | 554 bsr L0379 |
0 | 555 exg d,x |
556 subd #$0001 | |
312 | 557 bcc L0344 |
0 | 558 leax -$01,x |
312 | 559 L0344 exg d,x |
924 | 560 ldy <sectors |
312 | 561 bsr L0379 |
0 | 562 exg d,x |
924 | 563 addd <sectors0 |
312 | 564 std <u0025 |
0 | 565 exg d,x |
566 adcb #$00 | |
312 | 567 stb <u0024 |
0 | 568 lda #$08 |
569 pshs a | |
312 | 570 ldx <u0025 |
571 ldb <u0024 | |
572 bsr L03C2 | |
573 lda <u0027 | |
0 | 574 pshs a |
312 | 575 bsr L03C2 |
0 | 576 tstb |
312 | 577 beq L0374 |
119 | 578 leax >ClustMsg,pcr |
312 | 579 lbsr L02E2 |
580 lbra L05B1 | |
581 L0374 leas $02,s | |
582 stx <u0028 | |
0 | 583 rts |
312 | 584 L0379 lda #$08 |
585 L037B clr ,-s | |
0 | 586 deca |
312 | 587 bne L037B |
0 | 588 sty ,s |
589 stb $02,s | |
590 stx $03,s | |
312 | 591 L0387 ldd ,s |
592 beq L03AA | |
0 | 593 lsra |
594 rorb | |
595 std ,s | |
312 | 596 bcc L039D |
0 | 597 ldd $03,s |
598 addd $06,s | |
599 std $06,s | |
600 lda $02,s | |
601 adca $05,s | |
602 sta $05,s | |
312 | 603 L039D ldd $03,s |
0 | 604 lslb |
605 rola | |
606 std $03,s | |
607 lda $02,s | |
608 rola | |
609 sta $02,s | |
312 | 610 bra L0387 |
611 L03AA leas $05,s | |
0 | 612 puls pc,x,b |
312 | 613 L03AE pshs x,b |
0 | 614 lsr ,s |
615 ror $01,s | |
616 ror $02,s | |
617 puls x,b | |
618 exg d,x | |
619 adcb #$00 | |
620 adca #$00 | |
621 exg d,x | |
622 adcb #$00 | |
312 | 623 L03C2 lsr $02,s |
624 bne L03AE | |
0 | 625 rts |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
626 |
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
627 Format tst <u004E |
312 | 628 bne L03E4 |
924 | 629 tst <dtype |
312 | 630 bpl L03E5 |
119 | 631 leax >Both,pcr |
632 ldy #BothLen | |
312 | 633 lbsr L02EC |
0 | 634 anda #$DF |
162 | 635 cmpa #'Y |
312 | 636 beq L03E5 |
162 | 637 cmpa #'N |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
638 bne Format |
312 | 639 L03E4 rts |
924 | 640 L03E5 lda <diskpath |
119 | 641 ldb #SS.Reset |
0 | 642 os9 I$SetStt |
312 | 643 lbcs L00BB |
0 | 644 ldd #$0000 |
924 | 645 std <currtrak |
0 | 646 inca |
924 | 647 sta <currsect |
312 | 648 L03F8 clr <u0005 |
649 L03FA bsr L045C | |
650 leax >u00B7,u | |
924 | 651 ldd <currtrak |
312 | 652 addd <u0048 |
653 tfr d,u | |
0 | 654 clrb |
312 | 655 tst <u004D |
656 bne L041B | |
924 | 657 tst <mfm |
312 | 658 beq L041D |
659 tst <u004C | |
660 bne L041B | |
924 | 661 tst <currtrak+1 |
312 | 662 bne L041B |
0 | 663 tst <u0005 |
312 | 664 beq L041D |
665 L041B orb #$02 | |
666 L041D tst <T4896 | |
667 beq L0423 | |
0 | 668 orb #$04 |
312 | 669 L0423 lda <u0005 |
670 beq L0429 | |
0 | 671 orb #$01 |
312 | 672 L0429 tfr d,y |
924 | 673 lda <diskpath |
119 | 674 ldb #SS.WTrk |
0 | 675 os9 I$SetStt |
312 | 676 lbcs L00BB |
924 | 677 ldu <savedu |
0 | 678 ldb <u0005 |
679 incb | |
680 stb <u0005 | |
312 | 681 cmpb <u0013 |
682 bcs L03FA | |
924 | 683 ldd <currtrak |
0 | 684 addd #$0001 |
924 | 685 std <currtrak |
686 cmpd <ncyls | |
312 | 687 bcs L03F8 |
0 | 688 rts |
312 | 689 L044E ldy <u000E |
690 L0451 ldd ,y++ | |
691 beq L046B | |
692 L0455 stb ,x+ | |
0 | 693 deca |
312 | 694 bne L0455 |
695 bra L0451 | |
924 | 696 L045C lda <dtype |
0 | 697 bita #$C0 |
312 | 698 beq L046C |
0 | 699 ldy <u000C |
312 | 700 leax >u00B7,u |
701 bsr L0451 | |
702 L046B rts | |
703 L046C ldy <u000C | |
704 ldb <u001A | |
924 | 705 tst <currtrak+1 |
312 | 706 bne L047E |
0 | 707 tst <u0005 |
312 | 708 bne L047E |
0 | 709 ldy <u000A |
312 | 710 ldb <u001C |
711 L047E sty <u000E | |
0 | 712 stb <u0009 |
312 | 713 stb <u0018 |
714 bsr L04EC | |
715 leax >u00B7,u | |
716 bsr L0451 | |
0 | 717 sty <u000E |
312 | 718 L0490 bsr L044E |
0 | 719 dec <u0009 |
312 | 720 bne L0490 |
0 | 721 lda ,y+ |
722 sty <u000E | |
312 | 723 stx <u003D |
724 leay >u297E,u | |
725 sty <u001F | |
0 | 726 tfr a,b |
312 | 727 L04A6 std ,x++ |
728 cmpx <u001F | |
729 bcs L04A6 | |
0 | 730 ldy <u000E |
731 ldd ,y++ | |
312 | 732 std <u003F |
0 | 733 ldd ,y |
312 | 734 std <u0041 |
0 | 735 clr <u0009 |
312 | 736 leax >u00B7,u |
737 ldd <u003F | |
738 leay >u008F,u | |
739 L04C3 leax d,x | |
924 | 740 ldd <currtrak+1 |
741 adda <stoff | |
0 | 742 std ,x |
743 ldb <u0009 | |
744 lda b,y | |
745 incb | |
746 stb <u0009 | |
924 | 747 ldb <currsect |
312 | 748 adda <u004B |
749 bcs L04E5 | |
750 std $02,x | |
0 | 751 lda <u0009 |
312 | 752 cmpa <u0018 |
753 bcc L04E4 | |
754 ldd <u0041 | |
755 bra L04C3 | |
756 L04E4 rts | |
757 L04E5 leax >AbortSct,pcr | |
758 lbra L06F9 | |
759 L04EC pshs y,b | |
0 | 760 tfr b,a |
924 | 761 ldb <currtrak+1 |
0 | 762 cmpb #$01 |
312 | 763 bhi L0518 |
764 leax >u008F,u | |
0 | 765 leay a,x |
924 | 766 ldb <interlv |
312 | 767 bne L0507 |
768 L0500 leax >AbortIlv,pcr | |
769 lbra L06F9 | |
770 L0507 cmpb <u0018 | |
771 bhi L0500 | |
0 | 772 nega |
773 pshs y,x,b,a | |
774 clra | |
312 | 775 L050F sta ,x |
0 | 776 inca |
312 | 777 cmpa <u0018 |
778 bne L051A | |
0 | 779 leas $06,s |
312 | 780 L0518 puls pc,y,b |
924 | 781 L051A ldb <interlv |
0 | 782 abx |
783 cmpx $04,s | |
312 | 784 bcs L0525 |
0 | 785 ldb ,s |
786 leax b,x | |
312 | 787 L0525 cmpx $02,s |
788 bne L050F | |
0 | 789 leax $01,x |
790 stx $02,s | |
312 | 791 bra L050F |
689
92b575ffa143
Folded pxd.asm and pwd.asm into pd.asm for simplicity since almost all code
boisy
parents:
312
diff
changeset
|
792 InitDisk lbsr L0898 |
312 | 793 ldd <u0025 |
0 | 794 std $01,x |
312 | 795 ldb <u0024 |
0 | 796 stb ,x |
924 | 797 ldd <sectors |
0 | 798 std <$11,x |
799 stb $03,x | |
312 | 800 lda <u0027 |
0 | 801 sta $07,x |
802 clra | |
312 | 803 ldb <u0028 |
804 tst <u0029 | |
805 beq L054F | |
0 | 806 addd #$0001 |
312 | 807 L054F addd #$0001 |
0 | 808 std $09,x |
809 clra | |
924 | 810 tst <mfm |
312 | 811 beq L0561 |
0 | 812 ora #$02 |
312 | 813 tst <u004C |
814 beq L0561 | |
815 ora #$08 | |
816 L0561 ldb <u0013 | |
0 | 817 cmpb #$01 |
312 | 818 beq L0569 |
0 | 819 ora #$01 |
312 | 820 L0569 tst <T4896 |
821 beq L056F | |
0 | 822 ora #$04 |
312 | 823 L056F sta <$10,x |
824 ldd <u0028 | |
0 | 825 std $04,x |
826 lda #$FF | |
827 sta $0D,x | |
924 | 828 leax >timepkt,u |
0 | 829 os9 F$Time |
312 | 830 leax >u00D6,u |
831 leay <u006F,u | |
0 | 832 tst ,y |
312 | 833 beq L0594 |
834 L058C lda ,y+ | |
0 | 835 sta ,x+ |
312 | 836 bpl L058C |
837 bra L05C7 | |
838 L0594 leax >DName,pcr | |
119 | 839 ldy #DNameLen |
312 | 840 lbsr L02E6 |
841 leax >u00D6,u | |
0 | 842 ldy #$0021 |
843 clra | |
844 os9 I$ReadLn | |
312 | 845 bcc L05B8 |
168
3a847d2b4492
Cobbler, OS9Gen and format are all hardware dependent.
roug
parents:
162
diff
changeset
|
846 cmpa #E$EOF |
312 | 847 bne L0594 |
848 L05B1 leax >Aborted,pcr | |
849 lbra L06F9 | |
850 L05B8 tfr y,d | |
0 | 851 leax d,x |
852 clr ,-x | |
853 decb | |
312 | 854 beq L0594 |
0 | 855 lda ,-x |
856 ora #$80 | |
857 sta ,x | |
924 | 858 L05C7 leax >timepkt,u |
0 | 859 leay <$40,x |
860 pshs y | |
861 ldd #$0000 | |
312 | 862 L05D3 addd ,x++ |
0 | 863 cmpx ,s |
312 | 864 bcs L05D3 |
0 | 865 leas $02,s |
312 | 866 std >u00C5,u |
0 | 867 ldd >L0014,pcr |
312 | 868 std >u01A7,u |
0 | 869 ldd >L0016,pcr |
312 | 870 std >u01A9,u |
0 | 871 ldd >L0018,pcr |
312 | 872 std >u01AB,u |
924 | 873 lda <diskpath |
119 | 874 ldb #SS.Opt |
312 | 875 leax >u00F6,u |
0 | 876 os9 I$GetStt |
119 | 877 ldb #SS.Reset |
0 | 878 os9 I$SetStt |
312 | 879 lbcs L00BB |
880 leax >u00B7,u | |
881 lbra L08A4 | |
924 | 882 |
883 Access lda <diskpath | |
0 | 884 os9 I$Close |
312 | 885 leax <u004F,u |
162 | 886 lda #READ. |
0 | 887 os9 I$Open |
312 | 888 lbcs L06F5 |
924 | 889 sta <diskpath |
312 | 890 leax >u00B7,u |
891 ldy #256 | |
0 | 892 os9 I$Read |
312 | 893 lbcs L06F5 |
924 | 894 lda <diskpath |
0 | 895 os9 I$Close |
312 | 896 leax <u004F,u |
162 | 897 lda #UPDAT. |
0 | 898 os9 I$Open |
312 | 899 lbcs L06F5 |
924 | 900 sta <diskpath |
0 | 901 rts |
924 | 902 |
903 Stamps lda <dtype | |
312 | 904 clr <u0045 |
0 | 905 bita #$80 |
312 | 906 beq L0667 |
907 L0650 leax >Verify,pcr | |
908 ldy #VerifyL | |
909 lbsr L02EC | |
0 | 910 anda #$DF |
312 | 911 cmpa #$59 |
912 beq L0667 | |
913 cmpa #$4E | |
914 bne L0650 | |
915 sta <u0045 | |
924 | 916 L0667 ldd <sectors0 |
312 | 917 std <u0017 |
0 | 918 clra |
919 clrb | |
312 | 920 std <u0036 |
924 | 921 std <currtrak |
0 | 922 std <u0008 |
312 | 923 std <u0032 |
924 stb <u0031 | |
925 sta <u003C | |
924 | 926 leax >optbuf,u |
312 | 927 stx <u0038 |
928 lbsr L089C | |
0 | 929 leax >$0100,x |
312 | 930 stx <u003A |
0 | 931 clra |
932 ldb #$01 | |
312 | 933 std <u0034 |
934 lda <u0027 | |
935 sta <u002B | |
936 clr <u002A | |
0 | 937 clra |
312 | 938 ldb <u0028 |
939 tst <u0029 | |
940 beq L069D | |
0 | 941 addd #$0001 |
312 | 942 L069D addd #$0009 |
943 std <u002D | |
944 lda <u0027 | |
945 L06A4 lsra | |
946 bcs L06B5 | |
947 lsr <u002D | |
948 ror <u002E | |
949 bcc L06A4 | |
950 inc <u002E | |
951 bne L06A4 | |
952 inc <u002D | |
953 bra L06A4 | |
954 L06B5 ldb <u002E | |
955 stb <u002F | |
956 lda <u0027 | |
0 | 957 mul |
312 | 958 std <u002D |
0 | 959 subd #$0001 |
312 | 960 subb <u0028 |
0 | 961 sbca #$00 |
312 | 962 tst <u0029 |
963 beq L06CC | |
0 | 964 subd #$0001 |
312 | 965 L06CC stb <u002C |
966 L06CE tst <u0045 | |
967 bne L0700 | |
924 | 968 lda <diskpath |
312 | 969 leax >u00B7,u |
970 ldy #256 | |
0 | 971 os9 I$Read |
312 | 972 bcc L0700 |
0 | 973 os9 F$PErr |
312 | 974 lbsr L08C8 |
0 | 975 lda #$FF |
312 | 976 sta <u002A |
977 tst <u0031 | |
978 bne L0700 | |
979 ldx <u0032 | |
980 cmpx <u002D | |
981 bhi L0700 | |
982 L06F5 leax >BadSect,pcr | |
983 L06F9 lbsr L02E2 | |
0 | 984 clrb |
312 | 985 lbra L00BB |
986 L0700 ldd <u0008 | |
0 | 987 addd #$0001 |
988 std <u0008 | |
312 | 989 cmpd <u0017 |
990 bcs L0745 | |
0 | 991 clr <u0008 |
992 clr <u0009 | |
312 | 993 tst <u0045 |
994 bne L073A | |
0 | 995 lda #$20 |
996 pshs a | |
924 | 997 lda <currtrak+1 |
312 | 998 lbsr L07A7 |
0 | 999 pshs b,a |
924 | 1000 lda <currtrak |
312 | 1001 lbsr L07A7 |
0 | 1002 pshs b |
1003 tfr s,x | |
1004 ldy #$0004 | |
312 | 1005 lbsr L02E6 |
0 | 1006 lda $02,s |
1007 cmpa #$46 | |
312 | 1008 bne L0738 |
1009 lbsr L02DE | |
1010 L0738 leas $04,s | |
924 | 1011 L073A ldd <currtrak |
0 | 1012 addd #$0001 |
924 | 1013 std <currtrak |
1014 ldd <sectors | |
312 | 1015 std <u0017 |
1016 L0745 dec <u002B | |
1017 bne L075B | |
1018 bsr L0784 | |
1019 tst <u002A | |
1020 bne L0755 | |
1021 ldx <u0036 | |
0 | 1022 leax $01,x |
312 | 1023 stx <u0036 |
1024 L0755 clr <u002A | |
1025 lda <u0027 | |
1026 sta <u002B | |
1027 L075B ldb <u0031 | |
1028 ldx <u0032 | |
0 | 1029 leax $01,x |
312 | 1030 bne L0764 |
0 | 1031 incb |
312 | 1032 L0764 cmpb <u0024 |
1033 bcs L076C | |
1034 cmpx <u0025 | |
1035 bcc L0773 | |
1036 L076C stb <u0031 | |
1037 stx <u0032 | |
1038 lbra L06CE | |
1039 L0773 lda #$FF | |
1040 sta <u002A | |
924 | 1041 leay >optbuf,u |
312 | 1042 L077B cmpy <u0038 |
1043 beq L07BF | |
1044 bsr L0784 | |
1045 bra L077B | |
1046 L0784 ldx <u0038 | |
1047 lda <u002A | |
0 | 1048 rora |
1049 rol ,x+ | |
312 | 1050 inc <u003C |
1051 lda <u003C | |
0 | 1052 cmpa #$08 |
312 | 1053 bcs L07A6 |
1054 clr <u003C | |
1055 stx <u0038 | |
1056 cmpx <u003A | |
1057 bne L07A6 | |
1058 bsr L0803 | |
924 | 1059 leax >optbuf,u |
312 | 1060 stx <u0038 |
1061 lbsr L089C | |
1062 L07A6 rts | |
1063 L07A7 tfr a,b | |
0 | 1064 lsra |
1065 lsra | |
1066 lsra | |
1067 lsra | |
1068 andb #$0F | |
1069 addd #$3030 | |
1070 cmpa #$39 | |
312 | 1071 bls L07B8 |
0 | 1072 adda #$07 |
312 | 1073 L07B8 cmpb #$39 |
1074 bls L07BE | |
0 | 1075 addb #$07 |
312 | 1076 L07BE rts |
1077 L07BF lbsr L02DE | |
119 | 1078 leax >NumGood,pcr |
1079 ldy #NumGoodLen | |
312 | 1080 lbsr L02E6 |
1081 ldb <u0027 | |
0 | 1082 clra |
312 | 1083 ldx <u0036 |
0 | 1084 pshs x,a |
312 | 1085 L07D4 lsrb |
1086 bcs L07DF | |
0 | 1087 lsl $02,s |
1088 rol $01,s | |
1089 rol ,s | |
312 | 1090 bra L07D4 |
1091 L07DF puls x,a | |
0 | 1092 ldb #$0D |
1093 pshs b | |
1094 tfr d,y | |
1095 tfr x,d | |
1096 tfr b,a | |
312 | 1097 bsr L07A7 |
0 | 1098 pshs b,a |
1099 tfr x,d | |
312 | 1100 bsr L07A7 |
0 | 1101 pshs b,a |
1102 tfr y,d | |
312 | 1103 bsr L07A7 |
0 | 1104 pshs b,a |
1105 tfr s,x | |
312 | 1106 lbsr L02E2 |
0 | 1107 leas $07,s |
1108 rts | |
312 | 1109 L0803 pshs y |
0 | 1110 clra |
1111 ldb #$01 | |
312 | 1112 cmpd <u0034 |
1113 bne L081E | |
924 | 1114 leax >optbuf,u |
0 | 1115 clra |
312 | 1116 ldb <u002F |
0 | 1117 tfr d,y |
1118 clrb | |
1119 os9 F$AllBit | |
312 | 1120 lbcs L06F5 |
1121 L081E lbsr L08B2 | |
924 | 1122 leax >optbuf,u |
312 | 1123 lbsr L08A4 |
1124 ldd <u0024 | |
1125 cmpd <u0031 | |
1126 bcs L083A | |
1127 bhi L0837 | |
1128 ldb <u0026 | |
1129 cmpb <u0033 | |
1130 bcc L083A | |
1131 L0837 lbsr L08C8 | |
1132 L083A ldd <u0034 | |
0 | 1133 addd #$0001 |
312 | 1134 std <u0034 |
0 | 1135 puls pc,y |
312 | 1136 L0843 bsr L08B2 |
1137 leax >u02B7,u | |
1138 bsr L089C | |
1139 leax >u02BA,u | |
0 | 1140 os9 F$Time |
312 | 1141 leax >u02B7,u |
0 | 1142 lda #$BF |
1143 sta ,x | |
1144 lda #$02 | |
1145 sta $08,x | |
1146 clra | |
1147 ldb #$40 | |
1148 std $0B,x | |
312 | 1149 ldb <u002C |
0 | 1150 decb |
1151 stb <$14,x | |
312 | 1152 ldd <u0034 |
0 | 1153 addd #$0001 |
1154 std <$11,x | |
312 | 1155 bsr L08A4 |
1156 bsr L0898 | |
0 | 1157 ldd #$2EAE |
1158 std ,x | |
1159 stb <$20,x | |
312 | 1160 ldd <u0034 |
0 | 1161 std <$1E,x |
1162 std <$3E,x | |
312 | 1163 bsr L08A4 |
1164 bsr L0898 | |
1165 ldb <u002C | |
1166 decb | |
1167 L088C decb | |
1168 bne L0890 | |
0 | 1169 rts |
312 | 1170 L0890 pshs b |
1171 bsr L08A4 | |
0 | 1172 puls b |
312 | 1173 bra L088C |
1174 L0898 leax >u00B7,u | |
1175 L089C clra | |
0 | 1176 clrb |
312 | 1177 L089E sta d,x |
0 | 1178 decb |
312 | 1179 bne L089E |
0 | 1180 rts |
924 | 1181 L08A4 lda <diskpath |
312 | 1182 ldy #256 |
0 | 1183 os9 I$Write |
312 | 1184 lbcs L00BB |
0 | 1185 rts |
312 | 1186 L08B2 clra |
1187 ldb <u0034 | |
0 | 1188 tfr d,x |
312 | 1189 lda <u0035 |
0 | 1190 clrb |
1191 tfr d,u | |
924 | 1192 L08BC lda <diskpath |
0 | 1193 os9 I$Seek |
924 | 1194 ldu <savedu |
312 | 1195 lbcs L00BB |
0 | 1196 rts |
312 | 1197 L08C8 ldx <u0031 |
1198 lda <u0033 | |
0 | 1199 clrb |
1200 addd #$0100 | |
1201 tfr d,u | |
312 | 1202 bcc L08BC |
0 | 1203 leax $01,x |
312 | 1204 bra L08BC |
0 | 1205 ldd ,y |
312 | 1206 leau >u00B7,u |
1207 leax >L0920,pcr | |
0 | 1208 ldy #$2F20 |
312 | 1209 L08E6 leay >$0100,y |
0 | 1210 subd ,x |
312 | 1211 bcc L08E6 |
0 | 1212 addd ,x++ |
1213 pshs b,a | |
1214 ldd ,x | |
1215 tfr y,d | |
312 | 1216 beq L090E |
0 | 1217 ldy #$2F30 |
1218 cmpd #$3020 | |
312 | 1219 bne L0908 |
0 | 1220 ldy #$2F20 |
1221 tfr b,a | |
312 | 1222 L0908 sta ,u+ |
0 | 1223 puls b,a |
312 | 1224 bra L08E6 |
1225 L090E sta ,u+ | |
1226 lda #C$CR | |
0 | 1227 sta ,u |
924 | 1228 ldu <savedu |
0 | 1229 leas $02,s |
312 | 1230 leax >u00B7,u |
1231 lbsr L02E2 | |
0 | 1232 rts |
119 | 1233 |
312 | 1234 L0920 fdb $2710,$03e8,$0064,$000a,$0001,$0000 |
119 | 1235 |
312 | 1236 L092C ldd #$0000 |
1237 L092F bsr L093F | |
1238 bcs L0939 | |
1239 bne L092F | |
1240 std <u001F | |
1241 bne L093E | |
1242 L0939 ldd #$0001 | |
1243 std <u001F | |
1244 L093E rts | |
1245 L093F pshs y,b,a | |
0 | 1246 ldb ,x+ |
1247 subb #$30 | |
1248 cmpb #$0A | |
312 | 1249 bcc L095D |
0 | 1250 lda #$00 |
1251 ldy #$000A | |
312 | 1252 L094F addd ,s |
1253 bcs L095B | |
0 | 1254 leay -$01,y |
312 | 1255 bne L094F |
0 | 1256 std ,s |
203 | 1257 andcc #^Zero |
312 | 1258 L095B puls pc,y,b,a |
1259 L095D orcc #Zero | |
0 | 1260 puls pc,y,b,a |
312 | 1261 L0961 lda #$02 |
0 | 1262 os9 F$PErr |
119 | 1263 leax <HelpMsg,pcr |
0 | 1264 ldy #$0154 |
1265 lda #$02 | |
1266 os9 I$WritLn | |
1267 clrb | |
1268 os9 F$Exit | |
312 | 1269 |
119 | 1270 Title fcb C$LF |
1271 fcc "COLOR COMPUTER FORMATTER" | |
1272 HelpCR fcb C$CR | |
1273 | |
1274 HelpMsg fcc "Use: FORMAT /devname <opts>" | |
1275 fcb C$LF | |
312 | 1276 fcc " opts: R - Ready" |
1277 fcb C$LF | |
1278 fcc " L - Logical format only" | |
119 | 1279 fcb C$LF |
1280 fcc / "disk name"/ | |
312 | 1281 fcb C$LF |
1282 fcc " 1/2 - number of sides" | |
1283 fcb C$LF | |
1284 fcc " 'No. of cylinders' (in decimal)" | |
1285 fcb C$LF | |
1286 fcc " :Interleave value: (in decimal)" | |
1287 fcb C$CR | |
1288 HelpLen equ *-HelpMsg | |
119 | 1289 |
1290 FmtMsg fcc "Formatting drive " | |
1291 FmtMLen equ *-FmtMsg | |
1292 | |
1293 Query fcc "y (yes) or n (no)" | |
1294 fcb C$LF | |
1295 fcc "Ready? " | |
1296 QueryLen equ *-Query | |
312 | 1297 AbortIlv fcc "ABORT Interleave value out of range" |
1298 fcb C$CR | |
1299 AbortSct fcc "ABORT Sector number out of range" | |
1300 fcb C$CR | |
1301 AbortOp fcc "ABORT Option not allowed on Device" | |
119 | 1302 fcb C$CR |
1303 DName fcc "Disk name: " | |
1304 DNameLen equ *-DName | |
1305 fcc "How many Cylinders (Tracks?) : " | |
1306 BadSect fcc "Bad system sector, " | |
1307 Aborted fcc "FORMAT ABORTED" | |
1308 fcb C$CR | |
1309 ClustMsg fcc "Cluster size mismatch" | |
1310 fcb C$CR | |
1311 fcc "Double density? " | |
312 | 1312 fcc "Track 0 Double density? " |
119 | 1313 TPIChg fcc "Change from 96tpi to 48tpi? " |
1314 DSided fcc "Double sided? " | |
1315 NumGood fcc "Number of good sectors: $" | |
1316 NumGoodLen equ *-NumGood | |
312 | 1317 HDFmt fcc "WARNING: You are formatting a HARD Disk.." |
1318 fcb C$LF | |
1319 fcc "Are you sure? " | |
1320 HDFmtLen equ *-HDFmt | |
119 | 1321 Both fcc "Both PHYSICAL and LOGICAL format? " |
1322 BothLen equ *-Both | |
1323 Verify fcc "Physical Verify desired? " | |
312 | 1324 VerifyL equ *-Verify |
119 | 1325 |
0 | 1326 emod |
1327 eom equ * | |
119 | 1328 end |