Mercurial > hg > Members > kono > nitros9-code
comparison level1/cmds/backup.asm @ 0:6641a883d6b0
Initial revision
author | boisy |
---|---|
date | Thu, 04 Apr 2002 16:34:12 +0000 |
parents | |
children | e9ce43cc215e |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:6641a883d6b0 |
---|---|
1 ******************************************************************** | |
2 * Backup - Make a backup copy of a disk | |
3 * | |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
8 * 8 Original Microware distribution version | |
9 | |
10 nam Backup | |
11 ttl Make a backup copy of a disk | |
12 | |
13 * Disassembled 02/04/03 23:08:04 by Disasm v1.6 (C) 1988 by RML | |
14 | |
15 ifp1 | |
16 use defsfile | |
17 endc | |
18 | |
19 tylg set Prgrm+Objct | |
20 atrv set ReEnt+rev | |
21 rev set $01 | |
22 | |
23 mod eom,name,tylg,atrv,start,size | |
24 | |
25 u0000 rmb 1 | |
26 u0001 rmb 1 | |
27 u0002 rmb 2 | |
28 u0004 rmb 5 | |
29 u0009 rmb 1 | |
30 u000A rmb 1 | |
31 u000B rmb 1 | |
32 u000C rmb 1 | |
33 u000D rmb 1 | |
34 u000E rmb 1 | |
35 u000F rmb 1 | |
36 u0010 rmb 1 | |
37 u0011 rmb 2 | |
38 u0013 rmb 1 | |
39 u0014 rmb 1 | |
40 u0015 rmb 32 | |
41 u0035 rmb 32 | |
42 u0055 rmb 2 | |
43 u0057 rmb 424 | |
44 u01FF rmb 81 | |
45 u0250 rmb 256 | |
46 u0350 rmb 3840 | |
47 size equ . | |
48 | |
49 name fcs /Backup/ | |
50 fcb $08 | |
51 | |
52 L0014 fcc "/d0 /d1" | |
53 fcb C$CR | |
54 L001C fcb C$LF | |
55 fcc "Use: Backup [e] [s] [-v]" | |
56 fcb C$LF | |
57 fcc " [/dev1 [/dev2]]" | |
58 fcb C$LF | |
59 fcc " e - abort if read error" | |
60 fcb C$LF | |
61 fcc " s - single drive prompts" | |
62 fcb C$LF | |
63 fcc " -v - inhibit verify pass" | |
64 L00A0 fcb $8D | |
65 L00A1 fcc "Ready to backup from" | |
66 L00B5 fcb $A0 | |
67 L00B6 fcc " to" | |
68 fcb $A0 | |
69 L00BA fcc "Ok" | |
70 L00BC fcc " ?:" | |
71 fcb $A0 | |
72 L00C0 fcc "Ready Source, hit a key:" | |
73 fcb $A0 | |
74 L00D9 fcc "Ready Destination, hit a key:" | |
75 fcb $A0 | |
76 L00F7 fcs "Sector $" | |
77 L00FF fcs "Sectors copied: $" | |
78 L0112 fcb C$LF | |
79 fcc "Verify pass" | |
80 fcb $8D | |
81 L011F fcs "Sectors verified: $" | |
82 L0132 fcb C$LF | |
83 fcc " is being scratched" | |
84 fcb $8D | |
85 L0147 fcc "Disks not formatted identically" | |
86 fcb C$LF | |
87 L0167 fcc "Backup Aborted" | |
88 fcb $8D | |
89 | |
90 start leas >u01FF,u | |
91 pshs b,a | |
92 pshs u | |
93 tfr y,d | |
94 subd ,s++ | |
95 subd #$0250 | |
96 sta <u0013 | |
97 clr <u000B | |
98 clr <u000A | |
99 clr <u000C | |
100 clr <u000D | |
101 leay <u0057,u | |
102 sty <u0055 | |
103 ldd ,s++ | |
104 beq L01E3 | |
105 L0199 ldd ,x+ | |
106 cmpa #C$SPAC | |
107 beq L0199 | |
108 cmpa #C$COMA | |
109 beq L0199 | |
110 eora #'E | |
111 anda #$DF | |
112 bne L01B1 | |
113 cmpb #$30 | |
114 bcc L01B1 | |
115 inc <u000A | |
116 bra L0199 | |
117 L01B1 lda -$01,x | |
118 eora #'S | |
119 anda #$DF | |
120 bne L01C1 | |
121 cmpb #$30 | |
122 bcc L01C1 | |
123 inc <u000B | |
124 bra L0199 | |
125 L01C1 ldd -$01,x | |
126 cmpa #'- | |
127 bne L01D7 | |
128 eorb #'V | |
129 andb #$DF | |
130 bne L01D7 | |
131 ldd ,x+ | |
132 cmpb #$30 | |
133 bcc L01D7 | |
134 inc <u000C | |
135 bra L0199 | |
136 L01D7 lda ,-x | |
137 cmpa #PDELIM | |
138 beq L01E7 | |
139 cmpa #C$CR | |
140 lbne L040E | |
141 L01E3 leax >L0014,pcr | |
142 L01E7 leay >L00A1,pcr | |
143 lbsr L044B | |
144 ldy <u0055 | |
145 sty <u0002 | |
146 lbsr L043A | |
147 L01F7 lda ,x+ | |
148 cmpa #C$SPAC | |
149 beq L01F7 | |
150 cmpa #C$COMA | |
151 beq L01F7 | |
152 cmpa #C$CR | |
153 bne L020B | |
154 inc <u000B | |
155 ldx <u0002 | |
156 lda ,x+ | |
157 L020B cmpa #PDELIM | |
158 lbne L040E | |
159 leax -$01,x | |
160 leay >L00B6,pcr | |
161 lbsr L044B | |
162 ldy <u0055 | |
163 sty <u0004 | |
164 lbsr L043A | |
165 leay >L00BC,pcr | |
166 lbsr L0421 | |
167 comb | |
168 eora #'Y | |
169 anda #$DF | |
170 lbne L03BA | |
171 ldx <u0002 | |
172 ldd #$4020 | |
173 L0238 cmpb ,x+ | |
174 bne L0238 | |
175 std -$01,x | |
176 ldx <u0002 | |
177 lda #READ. | |
178 os9 I$Open | |
179 bcs L027C | |
180 leax >u0350,u | |
181 ldy #$0100 | |
182 os9 I$Read | |
183 bcs L027C | |
184 os9 I$Close | |
185 ldx <u0002 | |
186 lda #READ. | |
187 os9 I$Open | |
188 bcs L027C | |
189 sta <u0000 | |
190 ldx <u0004 | |
191 leay <u0015,u | |
192 L0267 ldb ,x+ | |
193 stb ,y+ | |
194 cmpb #C$SPAC | |
195 bne L0267 | |
196 ldd #$4020 | |
197 std -$01,y | |
198 leax <u0015,u | |
199 lda #READ.+WRITE. | |
200 os9 I$Open | |
201 L027C lbcs L03AF | |
202 sta <u0001 | |
203 clr <u000E | |
204 clr <u000F | |
205 clr <u0010 | |
206 lbsr L0419 | |
207 lda <u0001 | |
208 leax >u0250,u | |
209 ldy #$0100 | |
210 os9 I$Read | |
211 pshs u,x | |
212 ldx #$0000 | |
213 leau ,x | |
214 os9 I$Seek | |
215 puls u,x | |
216 bcs L027C | |
217 ldd >$0100,x | |
218 cmpd ,x | |
219 bne L02B7 | |
220 ldb >$0102,x | |
221 cmpb $02,x | |
222 beq L02BE | |
223 L02B7 leay >L0147,pcr | |
224 lbra L03B6 | |
225 L02BE leax >u0250,u | |
226 lda #$BF | |
227 sta <$3F,x | |
228 leay <$1F,x | |
229 lbsr L044B | |
230 leay >L0132,pcr | |
231 lbsr L0456 | |
232 leay >L00BA,pcr | |
233 lbsr L0421 | |
234 comb | |
235 eora #'Y | |
236 anda #$DF | |
237 lbne L03BA | |
238 lda <u0001 | |
239 leax >u0350,u | |
240 ldy #$0100 | |
241 os9 I$Write | |
242 lbcs L03AF | |
243 pshs u | |
244 ldx #$0000 | |
245 leau ,x | |
246 os9 I$Seek | |
247 puls u | |
248 leax >u0350,u | |
249 os9 I$Read | |
250 lbcs L03AF | |
251 os9 I$Close | |
252 leax <u0015,u | |
253 lda #$02 | |
254 os9 I$Open | |
255 lbcs L03AF | |
256 sta <u0001 | |
257 leax <u0035,u | |
258 ldb #SS.OPT | |
259 os9 I$GetStt | |
260 ldb #$01 | |
261 stb $08,x | |
262 ldb #SS.OPT | |
263 os9 I$SetStt | |
264 lbcs L03AF | |
265 L0332 leay >L00C0,pcr | |
266 lbsr L041D | |
267 lda <u0013 | |
268 sta <u0014 | |
269 leax >u0250,u | |
270 lbsr L0403 | |
271 lbsr L0419 | |
272 ldd <u0011 | |
273 leax >u0250,u | |
274 stx <u0011 | |
275 subd <u0011 | |
276 beq L035C | |
277 tfr d,y | |
278 lda <u0001 | |
279 os9 I$Write | |
280 bcs L03AF | |
281 L035C lda <u000D | |
282 cmpa #E$EOF | |
283 bne L0332 | |
284 leay >L00FF,pcr | |
285 lbsr L0470 | |
286 tst <u000C | |
287 bne L03BA | |
288 leay >L0112,pcr | |
289 lbsr L0456 | |
290 lda <u0000 | |
291 os9 I$Close | |
292 bcs L03AF | |
293 lda <u0001 | |
294 os9 I$Close | |
295 bcs L03AF | |
296 leax <u0015,u | |
297 lda #READ. | |
298 os9 I$Open | |
299 bcs L03AF | |
300 sta <u0000 | |
301 clr <u000E | |
302 clr <u000F | |
303 clr <u0010 | |
304 clr <u000D | |
305 L0396 lda <u0013 | |
306 sta <u0014 | |
307 leax >u0250,u | |
308 bsr L0403 | |
309 lda <u000D | |
310 cmpa #E$EOF | |
311 bne L0396 | |
312 leay >L011F,pcr | |
313 lbsr L0470 | |
314 bra L03BA | |
315 L03AF os9 F$PErr | |
316 leay >L0167,pcr | |
317 L03B6 lbsr L0456 | |
318 comb | |
319 L03BA ldb #$00 | |
320 os9 F$Exit | |
321 L03BF ldy #$0100 | |
322 lda <u0000 | |
323 os9 I$Read | |
324 bcc L03DC | |
325 stb <u000D | |
326 cmpb #E$EOF | |
327 beq L040D | |
328 lbsr L046C | |
329 ldb <u000D | |
330 tst <u000A | |
331 bne L03AF | |
332 os9 F$PErr | |
333 L03DC ldd <u000F | |
334 addd #$0001 | |
335 std <u000F | |
336 bcc L03E7 | |
337 inc <u000E | |
338 L03E7 tst <u000D | |
339 beq L03FD | |
340 pshs u | |
341 ldx <u000E | |
342 tfr b,a | |
343 clrb | |
344 tfr d,u | |
345 lda <u0000 | |
346 os9 I$Seek | |
347 puls u | |
348 clr <u000D | |
349 L03FD ldx <u0011 | |
350 leax >$0100,x | |
351 L0403 stx <u0011 | |
352 lda <u0014 | |
353 suba #$01 | |
354 sta <u0014 | |
355 bcc L03BF | |
356 L040D rts | |
357 L040E leax <u0057,u | |
358 stx <u0055 | |
359 leay >L001C,pcr | |
360 bra L03B6 | |
361 L0419 leay >L00D9,pcr | |
362 L041D tst <u000B | |
363 beq L0439 | |
364 L0421 bsr L0456 | |
365 pshs y,x,b,a | |
366 leax ,s | |
367 ldy #$0001 | |
368 clra | |
369 os9 I$Read | |
370 leay >L00A0,pcr | |
371 bsr L0456 | |
372 puls y,x,b,a | |
373 anda #$7F | |
374 L0439 rts | |
375 L043A pshs x | |
376 os9 F$PrsNam | |
377 puls x | |
378 bcs L040E | |
379 L0443 lda ,x+ | |
380 bsr L04A5 | |
381 decb | |
382 bpl L0443 | |
383 rts | |
384 L044B lda ,y | |
385 anda #$7F | |
386 bsr L04A5 | |
387 lda ,y+ | |
388 bpl L044B | |
389 L0455 rts | |
390 L0456 bsr L044B | |
391 pshs y,x,a | |
392 ldd <u0055 | |
393 leax <u0057,u | |
394 stx <u0055 | |
395 subd <u0055 | |
396 tfr d,y | |
397 lda #$02 | |
398 os9 I$WritLn | |
399 puls pc,y,x,a | |
400 L046C leay >L00F7,pcr | |
401 L0470 bsr L044B | |
402 lda <u000E | |
403 bsr L0486 | |
404 inc <u0009 | |
405 lda <u000F | |
406 bsr L0488 | |
407 lda <u0010 | |
408 bsr L0488 | |
409 leay >L00B5,pcr | |
410 bra L0456 | |
411 L0486 clr <u0009 | |
412 L0488 pshs a | |
413 lsra | |
414 lsra | |
415 lsra | |
416 lsra | |
417 bsr L0494 | |
418 puls a | |
419 anda #$0F | |
420 L0494 tsta | |
421 beq L0499 | |
422 sta <u0009 | |
423 L0499 tst <u0009 | |
424 beq L0455 | |
425 adda #$30 | |
426 cmpa #$39 | |
427 bls L04A5 | |
428 adda #$07 | |
429 L04A5 pshs x | |
430 ldx <u0055 | |
431 sta ,x+ | |
432 stx <u0055 | |
433 puls pc,x | |
434 | |
435 emod | |
436 eom equ * | |
437 end |