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