0
|
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
|