Home » CEEFAX disks » telesoftware2.adl » Dave/ADFS_Bckup

Dave/ADFS_Bckup

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware2.adl
Filename: Dave/ADFS_Bckup
Read OK:
File size: 1096 bytes
Load address: FFFF0E00
Exec address: FFFF802B
File contents
   10REM Single Drive Backup of ADFS disc
   20REM By Jon Welch 21/11/87
   30:
   40pauseflag     = &80
   50maxtrackread  = 60 / 4
   60maxtrack      = &81
   70trackstoread  = &82
   80trackstowrite = &83
   90osnewl = &FFE7
  100oswrch = &FFEE
  110oscli  = &FFF7
  120osword = &FFF1
  130osrdch = &FFE0
  140PROCassem(&900)
  150PRINT "Press <SPACE> to save code."
  160REPEAT UNTIL GET = 32
  170A$ = "*SAVE ADFS_Copy FFFF0900 +"+STR$~(end - &900)
  180PRINT A$
  190OSCLI A$
  200END
  210:
  220DEF PROCassem(M%)
  230FOR pass = 0 TO 3 STEP 3
  240P% = M%
  250[OPT pass
  260ldx #&FF
  270.loop
  280inx
  290lda source,x
  300jsr oswrch
  310bne loop
  320jsr readwrite
  330asla:asla:asla:asla:asla
  340sta read + 6
  350ldx #&FF
  360.loop1
  370inx
  380lda destn,x
  390jsr oswrch
  400bne loop1
  410jsr readwrite
  420asla:asla:asla:asla:asla
  430sta save + 6
  440ldx #&FF
  450.loop2
  460inx
  470lda pause,x
  480jsr oswrch
  490bne loop2
  500jsr osrdch
  510jsr oswrch
  520and #&DF
  530sta pauseflag
  540ldx #&FF
  550.loop3
  560inx
  570lda tracks, x
  580jsr oswrch
  590bne loop3
  600jsr osrdch
  610jsr oswrch
  620and #&DF
  630cmp #ASC"L"
  640bne tr80
  650lda #160
  660bne tr0
  670.tr80
  680cmp #ASC"M"
  690bne tr40
  700lda #80
  710bne tr0
  720.tr40
  730lda #40
  740.tr0
  750sta trackstoread
  760sta trackstowrite
  770.start
  780jsr osnewl
  790jsr osnewl
  800lda #maxtrackread
  810sta maxtrack
  820.loop4
  830inc srdata + 7
  840ldx #srdata MOD 256
  850ldy #srdata DIV 256
  860jsr oscli
  870lda srdata + 7
  880cmp #ASC"Z"
  890bne loop4
  900.readgo
  910jsr rpause
  920.readdisc
  930lda #&72
  940ldx #read MOD 256
  950ldy #read DIV 256
  960jsr osword
  970.shiftup
  980lda #&42
  990ldx #ramup MOD 256
 1000ldy #ramup DIV 256
 1010jsr osword
 1020clc
 1030lda read + 8
 1040adc #16
 1050sta read + 8
 1060lda read + 7
 1070adc #0
 1080sta read + 7
 1090dec trackstoread
 1100beq savedata
 1110dec maxtrack
 1120beq savedata
 1130clc
 1140lda #&10
 1150adc ramup + 9
 1160sta ramup + 9
 1170jmp readdisc
 1180.savedata
 1190jsr spause
 1200lda #maxtrackread
 1210sta maxtrack
 1220.savedisc
 1230lda #&42
 1240ldx #ramdown MOD 256
 1250ldy #ramdown DIV 256
 1260jsr osword
 1270clc
 1280lda #&10
 1290adc ramdown + 9
 1300sta ramdown + 9
 1310.savetodisc
 1320lda #&72
 1330ldx #save MOD 256
 1340ldy #save DIV 256
 1350jsr osword
 1360clc
 1370lda save + 8
 1380adc #16
 1390sta save + 8
 1400lda save + 7
 1410adc #0
 1420sta save + 7
 1430dec trackstowrite
 1440beq bye
 1450dec maxtrack
 1460bne savedisc
 1470lda #maxtrackread
 1480sta maxtrack
 1490lda #0
 1500sta ramup + 9
 1510sta ramdown + 9
 1520jmp readgo
 1530.readwrite
 1540jsr osrdch
 1550jsr oswrch
 1560sec
 1570sbc #48
 1580rts
 1590.rpause
 1600ldx #&FF
 1610lda pauseflag
 1620cmp #78
 1630bne loop5
 1640rts
 1650.loop5
 1660inx
 1670lda source1, x
 1680jsr oswrch
 1690bne loop5
 1700jsr osrdch
 1710rts
 1720.spause
 1730ldx #&FF
 1740lda pauseflag
 1750cmp #78
 1760bne loop6
 1770rts
 1780.loop6
 1790inx
 1800lda destn1, x
 1810jsr oswrch
 1820bne loop6
 1830jsr osrdch
 1840rts
 1850.bye
 1860ldx#&FF
 1870.loop7
 1880inx
 1890lda finished,x
 1900jsr oswrch
 1910bne loop7
 1920rts
 1930.read
 1940equb 0          \ Reserved
 1950equd &00001900  \ Memory Buffer
 1960equb 8          \ Read Data
 1970equb 0          \ Drive 0
 1980equw 0          \ Sector 0
 1990equb 16         \ Read 16 sectors
 2000equb 0          \ Unused
 2010equd 0          \ Length of buffer
 2020.srdata
 2030equs "SRDATA "
 2040equb 86
 2050equb 13
 2060.ramup
 2070equd &001900C0
 2080equd &00100000
 2090equb 0
 2100equb 0
 2110.ramdown
 2120equd &00190040
 2130equd &00100000
 2140equb 0
 2150equb 0
 2160.save
 2170equb 0          \ Reserved
 2180equd &00001900  \ Memory Buffer
 2190equb 10         \ Write Data
 2200equb 0          \ Drive 0
 2210equw 0          \ Sector 0
 2220equb 0          \ Unused
 2230equb 0          \ Unused
 2240equd 16 * 256   \ Length of buffer
 2250.source
 2260equb 12
 2270equb 13
 2280equs "Sideways Ram ADFS Disc Copier"
 2290equb 13
 2300equb 10
 2310equs "(C) Jon Welch 21/11/87"
 2320equb 13
 2330equb 10
 2340equb 10
 2350equs "Enter source drive             : "
 2360equb 0
 2370.destn
 2380equb 13
 2390equb 10
 2400equs "Enter destination drive        : "
 2410equb 0
 2420.pause
 2430equb 13
 2440equb 10
 2450equs "Pause between read / write Y/N : "
 2460equb 0
 2470.tracks
 2480equb 13
 2490equb 10
 2500equs "Disc Large, Medium or Small ?  : "
 2510equb 0
 2520.source1
 2530equb 7
 2540equs "Insert source disc and press a key     "
 2550equb 13
 2560equb 0
 2570.destn1
 2580equb 7
 2590equs "Insert destination disc and press a key"
 2600equb 13
 2610equb 0
 2620.finished
 2630equb 10
 2640equs "Backup Complete"
 2650equb 10
 2660equb 13
 2670equb 0
 2680.end
 2690]
 2700NEXT
 2710ENDPROC

&� Single Drive Backup of ADFS disc
� By Jon Welch 21/11/87
:
(pauseflag     = &80
2maxtrackread  = 60 / 4
<maxtrack      = &81
Ftrackstoread  = &82
Ptrackstowrite = &83
Zosnewl = &FFE7
doswrch = &FFEE
noscli  = &FFF7
xosword = &FFF1
�osrdch = &FFE0
��assem(&900)
�#� "Press <SPACE> to save code."
�� � � = 32
�4A$ = "*SAVE ADFS_Copy FFFF0900 +"+�~(end - &900)
�� A$
�� A$
��
�:
�� �assem(M%)
�� pass = 0 � 3 � 3
�P% = M%
�
[OPT pass
ldx #&FF
	.loop
inx
"lda source,x
,jsr oswrch
6bne loop
@jsr readwrite
Jasla:asla:asla:asla:asla
Tsta read + 6
^ldx #&FF
h
.loop1
rinx
|lda destn,x
�jsr oswrch
�
bne loop1
�jsr readwrite
�asla:asla:asla:asla:asla
�sta save + 6
�ldx #&FF
�
.loop2
�inx
�lda pause,x
�jsr oswrch
�
bne loop2
�jsr osrdch
�jsr oswrch
and #&DF
sta pauseflag
ldx #&FF
&
.loop3
0inx
:lda tracks, x
Djsr oswrch
N
bne loop3
Xjsr osrdch
bjsr oswrch
land #&DF
v
cmp #�"L"
�bne tr80
�lda #160
�bne tr0
�	.tr80
�
cmp #�"M"
�bne tr40
�lda #80
�bne tr0
�	.tr40
�lda #40
�.tr0
�sta trackstoread
�sta trackstowrite

.start
jsr osnewl
jsr osnewl
 lda #maxtrackread
*sta maxtrack
4
.loop4
>inc srdata + 7
Hldx #srdata � 256
Rldy #srdata � 256
\
jsr oscli
flda srdata + 7
p
cmp #�"Z"
z
bne loop4
�.readgo
�jsr rpause
�
.readdisc
�lda #&72
�ldx #read � 256
�ldy #read � 256
�jsr osword
�.shiftup
�lda #&42
�ldx #ramup � 256
�ldy #ramup � 256
�jsr osword
�clc
lda read + 8
adc #16
sta read + 8
$lda read + 7
.
adc #0
8sta read + 7
Bdec trackstoread
Lbeq savedata
Vdec maxtrack
`beq savedata
jclc
tlda #&10
~adc ramup + 9
�sta ramup + 9
�jmp readdisc
�
.savedata
�jsr spause
�lda #maxtrackread
�sta maxtrack
�
.savedisc
�lda #&42
�ldx #ramdown � 256
�ldy #ramdown � 256
�jsr osword
�clc
lda #&10

adc ramdown + 9
sta ramdown + 9
.savetodisc
(lda #&72
2ldx #save � 256
<ldy #save � 256
Fjsr osword
Pclc
Zlda save + 8
dadc #16
nsta save + 8
xlda save + 7
�
adc #0
�sta save + 7
�dec trackstowrite
�beq bye
�dec maxtrack
�bne savedisc
�lda #maxtrackread
�sta maxtrack
�
lda #0
�sta ramup + 9
�sta ramdown + 9
�jmp readgo
�.readwrite
jsr osrdch
jsr oswrch
sec
"sbc #48
,rts
6.rpause
@ldx #&FF
Jlda pauseflag
Tcmp #78
^
bne loop5
hrts
r
.loop5
|inx
�lda source1, x
�jsr oswrch
�
bne loop5
�jsr osrdch
�rts
�.spause
�ldx #&FF
�lda pauseflag
�cmp #78
�
bne loop6
�rts
�
.loop6
�inx
lda destn1, x
jsr oswrch

bne loop6
&jsr osrdch
0rts
:.bye
Dldx#&FF
N
.loop7
Xinx
blda finished,x
ljsr oswrch
v
bne loop7
�rts
�	.read
�equb 0          \ Reserved
�#equd &00001900  \ Memory Buffer
�equb 8          \ Read Data
�equb 0          \ Drive 0
�equw 0          \ Sector 0
�%equb 16         \ Read 16 sectors
�equb 0          \ Unused
�&equd 0          \ Length of buffer
�.srdata
�equs "SRDATA "
�equb 86
equb 13

.ramup
equd &001900C0
 equd &00100000
*
equb 0
4
equb 0
>.ramdown
Hequd &00190040
Requd &00100000
\
equb 0
f
equb 0
p	.save
zequb 0          \ Reserved
�#equd &00001900  \ Memory Buffer
� equb 10         \ Write Data
�equb 0          \ Drive 0
�equw 0          \ Sector 0
�equb 0          \ Unused
�equb 0          \ Unused
�&equd 16 * 256   \ Length of buffer
�.source
�equb 12
�equb 13
�(equs "Sideways Ram ADFS Disc Copier"
�equb 13
�equb 10
	!equs "(C) Jon Welch 21/11/87"
	equb 13
	equb 10
	$equb 10
	.,equs "Enter source drive             : "
	8
equb 0
	B
.destn
	Lequb 13
	Vequb 10
	`,equs "Enter destination drive        : "
	j
equb 0
	t
.pause
	~equb 13
	�equb 10
	�,equs "Pause between read / write Y/N : "
	�
equb 0
	�.tracks
	�equb 13
	�equb 10
	�,equs "Disc Large, Medium or Small ?  : "
	�
equb 0
	�.source1
	�
equb 7
	�2equs "Insert source disc and press a key     "
	�equb 13

equb 0

.destn1

equb 7
2equs "Insert destination disc and press a key"
(equb 13
2
equb 0
<
.finished
Fequb 10
Pequs "Backup Complete"
Zequb 10
dequb 13
n
equb 0
x.end
�]
��
��
�
00000000  0d 00 0a 26 f4 20 53 69  6e 67 6c 65 20 44 72 69  |...&. Single Dri|
00000010  76 65 20 42 61 63 6b 75  70 20 6f 66 20 41 44 46  |ve Backup of ADF|
00000020  53 20 64 69 73 63 0d 00  14 1b f4 20 42 79 20 4a  |S disc..... By J|
00000030  6f 6e 20 57 65 6c 63 68  20 32 31 2f 31 31 2f 38  |on Welch 21/11/8|
00000040  37 0d 00 1e 05 3a 0d 00  28 17 70 61 75 73 65 66  |7....:..(.pausef|
00000050  6c 61 67 20 20 20 20 20  3d 20 26 38 30 0d 00 32  |lag     = &80..2|
00000060  1a 6d 61 78 74 72 61 63  6b 72 65 61 64 20 20 3d  |.maxtrackread  =|
00000070  20 36 30 20 2f 20 34 0d  00 3c 17 6d 61 78 74 72  | 60 / 4..<.maxtr|
00000080  61 63 6b 20 20 20 20 20  20 3d 20 26 38 31 0d 00  |ack      = &81..|
00000090  46 17 74 72 61 63 6b 73  74 6f 72 65 61 64 20 20  |F.trackstoread  |
000000a0  3d 20 26 38 32 0d 00 50  17 74 72 61 63 6b 73 74  |= &82..P.trackst|
000000b0  6f 77 72 69 74 65 20 3d  20 26 38 33 0d 00 5a 12  |owrite = &83..Z.|
000000c0  6f 73 6e 65 77 6c 20 3d  20 26 46 46 45 37 0d 00  |osnewl = &FFE7..|
000000d0  64 12 6f 73 77 72 63 68  20 3d 20 26 46 46 45 45  |d.oswrch = &FFEE|
000000e0  0d 00 6e 12 6f 73 63 6c  69 20 20 3d 20 26 46 46  |..n.oscli  = &FF|
000000f0  46 37 0d 00 78 12 6f 73  77 6f 72 64 20 3d 20 26  |F7..x.osword = &|
00000100  46 46 46 31 0d 00 82 12  6f 73 72 64 63 68 20 3d  |FFF1....osrdch =|
00000110  20 26 46 46 45 30 0d 00  8c 10 f2 61 73 73 65 6d  | &FFE0.....assem|
00000120  28 26 39 30 30 29 0d 00  96 23 f1 20 22 50 72 65  |(&900)...#. "Pre|
00000130  73 73 20 3c 53 50 41 43  45 3e 20 74 6f 20 73 61  |ss <SPACE> to sa|
00000140  76 65 20 63 6f 64 65 2e  22 0d 00 a0 0e f5 20 fd  |ve code."..... .|
00000150  20 a5 20 3d 20 33 32 0d  00 aa 34 41 24 20 3d 20  | . = 32...4A$ = |
00000160  22 2a 53 41 56 45 20 41  44 46 53 5f 43 6f 70 79  |"*SAVE ADFS_Copy|
00000170  20 46 46 46 46 30 39 30  30 20 2b 22 2b c3 7e 28  | FFFF0900 +"+.~(|
00000180  65 6e 64 20 2d 20 26 39  30 30 29 0d 00 b4 08 f1  |end - &900).....|
00000190  20 41 24 0d 00 be 08 ff  20 41 24 0d 00 c8 05 e0  | A$..... A$.....|
000001a0  0d 00 d2 05 3a 0d 00 dc  10 dd 20 f2 61 73 73 65  |....:..... .asse|
000001b0  6d 28 4d 25 29 0d 00 e6  16 e3 20 70 61 73 73 20  |m(M%)..... pass |
000001c0  3d 20 30 20 b8 20 33 20  88 20 33 0d 00 f0 0b 50  |= 0 . 3 . 3....P|
000001d0  25 20 3d 20 4d 25 0d 00  fa 0d 5b 4f 50 54 20 70  |% = M%....[OPT p|
000001e0  61 73 73 0d 01 04 0c 6c  64 78 20 23 26 46 46 0d  |ass....ldx #&FF.|
000001f0  01 0e 09 2e 6c 6f 6f 70  0d 01 18 07 69 6e 78 0d  |....loop....inx.|
00000200  01 22 10 6c 64 61 20 73  6f 75 72 63 65 2c 78 0d  |.".lda source,x.|
00000210  01 2c 0e 6a 73 72 20 6f  73 77 72 63 68 0d 01 36  |.,.jsr oswrch..6|
00000220  0c 62 6e 65 20 6c 6f 6f  70 0d 01 40 11 6a 73 72  |.bne loop..@.jsr|
00000230  20 72 65 61 64 77 72 69  74 65 0d 01 4a 1c 61 73  | readwrite..J.as|
00000240  6c 61 3a 61 73 6c 61 3a  61 73 6c 61 3a 61 73 6c  |la:asla:asla:asl|
00000250  61 3a 61 73 6c 61 0d 01  54 10 73 74 61 20 72 65  |a:asla..T.sta re|
00000260  61 64 20 2b 20 36 0d 01  5e 0c 6c 64 78 20 23 26  |ad + 6..^.ldx #&|
00000270  46 46 0d 01 68 0a 2e 6c  6f 6f 70 31 0d 01 72 07  |FF..h..loop1..r.|
00000280  69 6e 78 0d 01 7c 0f 6c  64 61 20 64 65 73 74 6e  |inx..|.lda destn|
00000290  2c 78 0d 01 86 0e 6a 73  72 20 6f 73 77 72 63 68  |,x....jsr oswrch|
000002a0  0d 01 90 0d 62 6e 65 20  6c 6f 6f 70 31 0d 01 9a  |....bne loop1...|
000002b0  11 6a 73 72 20 72 65 61  64 77 72 69 74 65 0d 01  |.jsr readwrite..|
000002c0  a4 1c 61 73 6c 61 3a 61  73 6c 61 3a 61 73 6c 61  |..asla:asla:asla|
000002d0  3a 61 73 6c 61 3a 61 73  6c 61 0d 01 ae 10 73 74  |:asla:asla....st|
000002e0  61 20 73 61 76 65 20 2b  20 36 0d 01 b8 0c 6c 64  |a save + 6....ld|
000002f0  78 20 23 26 46 46 0d 01  c2 0a 2e 6c 6f 6f 70 32  |x #&FF.....loop2|
00000300  0d 01 cc 07 69 6e 78 0d  01 d6 0f 6c 64 61 20 70  |....inx....lda p|
00000310  61 75 73 65 2c 78 0d 01  e0 0e 6a 73 72 20 6f 73  |ause,x....jsr os|
00000320  77 72 63 68 0d 01 ea 0d  62 6e 65 20 6c 6f 6f 70  |wrch....bne loop|
00000330  32 0d 01 f4 0e 6a 73 72  20 6f 73 72 64 63 68 0d  |2....jsr osrdch.|
00000340  01 fe 0e 6a 73 72 20 6f  73 77 72 63 68 0d 02 08  |...jsr oswrch...|
00000350  0c 61 6e 64 20 23 26 44  46 0d 02 12 11 73 74 61  |.and #&DF....sta|
00000360  20 70 61 75 73 65 66 6c  61 67 0d 02 1c 0c 6c 64  | pauseflag....ld|
00000370  78 20 23 26 46 46 0d 02  26 0a 2e 6c 6f 6f 70 33  |x #&FF..&..loop3|
00000380  0d 02 30 07 69 6e 78 0d  02 3a 11 6c 64 61 20 74  |..0.inx..:.lda t|
00000390  72 61 63 6b 73 2c 20 78  0d 02 44 0e 6a 73 72 20  |racks, x..D.jsr |
000003a0  6f 73 77 72 63 68 0d 02  4e 0d 62 6e 65 20 6c 6f  |oswrch..N.bne lo|
000003b0  6f 70 33 0d 02 58 0e 6a  73 72 20 6f 73 72 64 63  |op3..X.jsr osrdc|
000003c0  68 0d 02 62 0e 6a 73 72  20 6f 73 77 72 63 68 0d  |h..b.jsr oswrch.|
000003d0  02 6c 0c 61 6e 64 20 23  26 44 46 0d 02 76 0d 63  |.l.and #&DF..v.c|
000003e0  6d 70 20 23 97 22 4c 22  0d 02 80 0c 62 6e 65 20  |mp #."L"....bne |
000003f0  74 72 38 30 0d 02 8a 0c  6c 64 61 20 23 31 36 30  |tr80....lda #160|
00000400  0d 02 94 0b 62 6e 65 20  74 72 30 0d 02 9e 09 2e  |....bne tr0.....|
00000410  74 72 38 30 0d 02 a8 0d  63 6d 70 20 23 97 22 4d  |tr80....cmp #."M|
00000420  22 0d 02 b2 0c 62 6e 65  20 74 72 34 30 0d 02 bc  |"....bne tr40...|
00000430  0b 6c 64 61 20 23 38 30  0d 02 c6 0b 62 6e 65 20  |.lda #80....bne |
00000440  74 72 30 0d 02 d0 09 2e  74 72 34 30 0d 02 da 0b  |tr0.....tr40....|
00000450  6c 64 61 20 23 34 30 0d  02 e4 08 2e 74 72 30 0d  |lda #40.....tr0.|
00000460  02 ee 14 73 74 61 20 74  72 61 63 6b 73 74 6f 72  |...sta trackstor|
00000470  65 61 64 0d 02 f8 15 73  74 61 20 74 72 61 63 6b  |ead....sta track|
00000480  73 74 6f 77 72 69 74 65  0d 03 02 0a 2e 73 74 61  |stowrite.....sta|
00000490  72 74 0d 03 0c 0e 6a 73  72 20 6f 73 6e 65 77 6c  |rt....jsr osnewl|
000004a0  0d 03 16 0e 6a 73 72 20  6f 73 6e 65 77 6c 0d 03  |....jsr osnewl..|
000004b0  20 15 6c 64 61 20 23 6d  61 78 74 72 61 63 6b 72  | .lda #maxtrackr|
000004c0  65 61 64 0d 03 2a 10 73  74 61 20 6d 61 78 74 72  |ead..*.sta maxtr|
000004d0  61 63 6b 0d 03 34 0a 2e  6c 6f 6f 70 34 0d 03 3e  |ack..4..loop4..>|
000004e0  12 69 6e 63 20 73 72 64  61 74 61 20 2b 20 37 0d  |.inc srdata + 7.|
000004f0  03 48 15 6c 64 78 20 23  73 72 64 61 74 61 20 83  |.H.ldx #srdata .|
00000500  20 32 35 36 0d 03 52 15  6c 64 79 20 23 73 72 64  | 256..R.ldy #srd|
00000510  61 74 61 20 81 20 32 35  36 0d 03 5c 0d 6a 73 72  |ata . 256..\.jsr|
00000520  20 6f 73 63 6c 69 0d 03  66 12 6c 64 61 20 73 72  | oscli..f.lda sr|
00000530  64 61 74 61 20 2b 20 37  0d 03 70 0d 63 6d 70 20  |data + 7..p.cmp |
00000540  23 97 22 5a 22 0d 03 7a  0d 62 6e 65 20 6c 6f 6f  |#."Z"..z.bne loo|
00000550  70 34 0d 03 84 0b 2e 72  65 61 64 67 6f 0d 03 8e  |p4.....readgo...|
00000560  0e 6a 73 72 20 72 70 61  75 73 65 0d 03 98 0d 2e  |.jsr rpause.....|
00000570  72 65 61 64 64 69 73 63  0d 03 a2 0c 6c 64 61 20  |readdisc....lda |
00000580  23 26 37 32 0d 03 ac 13  6c 64 78 20 23 72 65 61  |#&72....ldx #rea|
00000590  64 20 83 20 32 35 36 0d  03 b6 13 6c 64 79 20 23  |d . 256....ldy #|
000005a0  72 65 61 64 20 81 20 32  35 36 0d 03 c0 0e 6a 73  |read . 256....js|
000005b0  72 20 6f 73 77 6f 72 64  0d 03 ca 0c 2e 73 68 69  |r osword.....shi|
000005c0  66 74 75 70 0d 03 d4 0c  6c 64 61 20 23 26 34 32  |ftup....lda #&42|
000005d0  0d 03 de 14 6c 64 78 20  23 72 61 6d 75 70 20 83  |....ldx #ramup .|
000005e0  20 32 35 36 0d 03 e8 14  6c 64 79 20 23 72 61 6d  | 256....ldy #ram|
000005f0  75 70 20 81 20 32 35 36  0d 03 f2 0e 6a 73 72 20  |up . 256....jsr |
00000600  6f 73 77 6f 72 64 0d 03  fc 07 63 6c 63 0d 04 06  |osword....clc...|
00000610  10 6c 64 61 20 72 65 61  64 20 2b 20 38 0d 04 10  |.lda read + 8...|
00000620  0b 61 64 63 20 23 31 36  0d 04 1a 10 73 74 61 20  |.adc #16....sta |
00000630  72 65 61 64 20 2b 20 38  0d 04 24 10 6c 64 61 20  |read + 8..$.lda |
00000640  72 65 61 64 20 2b 20 37  0d 04 2e 0a 61 64 63 20  |read + 7....adc |
00000650  23 30 0d 04 38 10 73 74  61 20 72 65 61 64 20 2b  |#0..8.sta read +|
00000660  20 37 0d 04 42 14 64 65  63 20 74 72 61 63 6b 73  | 7..B.dec tracks|
00000670  74 6f 72 65 61 64 0d 04  4c 10 62 65 71 20 73 61  |toread..L.beq sa|
00000680  76 65 64 61 74 61 0d 04  56 10 64 65 63 20 6d 61  |vedata..V.dec ma|
00000690  78 74 72 61 63 6b 0d 04  60 10 62 65 71 20 73 61  |xtrack..`.beq sa|
000006a0  76 65 64 61 74 61 0d 04  6a 07 63 6c 63 0d 04 74  |vedata..j.clc..t|
000006b0  0c 6c 64 61 20 23 26 31  30 0d 04 7e 11 61 64 63  |.lda #&10..~.adc|
000006c0  20 72 61 6d 75 70 20 2b  20 39 0d 04 88 11 73 74  | ramup + 9....st|
000006d0  61 20 72 61 6d 75 70 20  2b 20 39 0d 04 92 10 6a  |a ramup + 9....j|
000006e0  6d 70 20 72 65 61 64 64  69 73 63 0d 04 9c 0d 2e  |mp readdisc.....|
000006f0  73 61 76 65 64 61 74 61  0d 04 a6 0e 6a 73 72 20  |savedata....jsr |
00000700  73 70 61 75 73 65 0d 04  b0 15 6c 64 61 20 23 6d  |spause....lda #m|
00000710  61 78 74 72 61 63 6b 72  65 61 64 0d 04 ba 10 73  |axtrackread....s|
00000720  74 61 20 6d 61 78 74 72  61 63 6b 0d 04 c4 0d 2e  |ta maxtrack.....|
00000730  73 61 76 65 64 69 73 63  0d 04 ce 0c 6c 64 61 20  |savedisc....lda |
00000740  23 26 34 32 0d 04 d8 16  6c 64 78 20 23 72 61 6d  |#&42....ldx #ram|
00000750  64 6f 77 6e 20 83 20 32  35 36 0d 04 e2 16 6c 64  |down . 256....ld|
00000760  79 20 23 72 61 6d 64 6f  77 6e 20 81 20 32 35 36  |y #ramdown . 256|
00000770  0d 04 ec 0e 6a 73 72 20  6f 73 77 6f 72 64 0d 04  |....jsr osword..|
00000780  f6 07 63 6c 63 0d 05 00  0c 6c 64 61 20 23 26 31  |..clc....lda #&1|
00000790  30 0d 05 0a 13 61 64 63  20 72 61 6d 64 6f 77 6e  |0....adc ramdown|
000007a0  20 2b 20 39 0d 05 14 13  73 74 61 20 72 61 6d 64  | + 9....sta ramd|
000007b0  6f 77 6e 20 2b 20 39 0d  05 1e 0f 2e 73 61 76 65  |own + 9.....save|
000007c0  74 6f 64 69 73 63 0d 05  28 0c 6c 64 61 20 23 26  |todisc..(.lda #&|
000007d0  37 32 0d 05 32 13 6c 64  78 20 23 73 61 76 65 20  |72..2.ldx #save |
000007e0  83 20 32 35 36 0d 05 3c  13 6c 64 79 20 23 73 61  |. 256..<.ldy #sa|
000007f0  76 65 20 81 20 32 35 36  0d 05 46 0e 6a 73 72 20  |ve . 256..F.jsr |
00000800  6f 73 77 6f 72 64 0d 05  50 07 63 6c 63 0d 05 5a  |osword..P.clc..Z|
00000810  10 6c 64 61 20 73 61 76  65 20 2b 20 38 0d 05 64  |.lda save + 8..d|
00000820  0b 61 64 63 20 23 31 36  0d 05 6e 10 73 74 61 20  |.adc #16..n.sta |
00000830  73 61 76 65 20 2b 20 38  0d 05 78 10 6c 64 61 20  |save + 8..x.lda |
00000840  73 61 76 65 20 2b 20 37  0d 05 82 0a 61 64 63 20  |save + 7....adc |
00000850  23 30 0d 05 8c 10 73 74  61 20 73 61 76 65 20 2b  |#0....sta save +|
00000860  20 37 0d 05 96 15 64 65  63 20 74 72 61 63 6b 73  | 7....dec tracks|
00000870  74 6f 77 72 69 74 65 0d  05 a0 0b 62 65 71 20 62  |towrite....beq b|
00000880  79 65 0d 05 aa 10 64 65  63 20 6d 61 78 74 72 61  |ye....dec maxtra|
00000890  63 6b 0d 05 b4 10 62 6e  65 20 73 61 76 65 64 69  |ck....bne savedi|
000008a0  73 63 0d 05 be 15 6c 64  61 20 23 6d 61 78 74 72  |sc....lda #maxtr|
000008b0  61 63 6b 72 65 61 64 0d  05 c8 10 73 74 61 20 6d  |ackread....sta m|
000008c0  61 78 74 72 61 63 6b 0d  05 d2 0a 6c 64 61 20 23  |axtrack....lda #|
000008d0  30 0d 05 dc 11 73 74 61  20 72 61 6d 75 70 20 2b  |0....sta ramup +|
000008e0  20 39 0d 05 e6 13 73 74  61 20 72 61 6d 64 6f 77  | 9....sta ramdow|
000008f0  6e 20 2b 20 39 0d 05 f0  0e 6a 6d 70 20 72 65 61  |n + 9....jmp rea|
00000900  64 67 6f 0d 05 fa 0e 2e  72 65 61 64 77 72 69 74  |dgo.....readwrit|
00000910  65 0d 06 04 0e 6a 73 72  20 6f 73 72 64 63 68 0d  |e....jsr osrdch.|
00000920  06 0e 0e 6a 73 72 20 6f  73 77 72 63 68 0d 06 18  |...jsr oswrch...|
00000930  07 73 65 63 0d 06 22 0b  73 62 63 20 23 34 38 0d  |.sec..".sbc #48.|
00000940  06 2c 07 72 74 73 0d 06  36 0b 2e 72 70 61 75 73  |.,.rts..6..rpaus|
00000950  65 0d 06 40 0c 6c 64 78  20 23 26 46 46 0d 06 4a  |e..@.ldx #&FF..J|
00000960  11 6c 64 61 20 70 61 75  73 65 66 6c 61 67 0d 06  |.lda pauseflag..|
00000970  54 0b 63 6d 70 20 23 37  38 0d 06 5e 0d 62 6e 65  |T.cmp #78..^.bne|
00000980  20 6c 6f 6f 70 35 0d 06  68 07 72 74 73 0d 06 72  | loop5..h.rts..r|
00000990  0a 2e 6c 6f 6f 70 35 0d  06 7c 07 69 6e 78 0d 06  |..loop5..|.inx..|
000009a0  86 12 6c 64 61 20 73 6f  75 72 63 65 31 2c 20 78  |..lda source1, x|
000009b0  0d 06 90 0e 6a 73 72 20  6f 73 77 72 63 68 0d 06  |....jsr oswrch..|
000009c0  9a 0d 62 6e 65 20 6c 6f  6f 70 35 0d 06 a4 0e 6a  |..bne loop5....j|
000009d0  73 72 20 6f 73 72 64 63  68 0d 06 ae 07 72 74 73  |sr osrdch....rts|
000009e0  0d 06 b8 0b 2e 73 70 61  75 73 65 0d 06 c2 0c 6c  |.....spause....l|
000009f0  64 78 20 23 26 46 46 0d  06 cc 11 6c 64 61 20 70  |dx #&FF....lda p|
00000a00  61 75 73 65 66 6c 61 67  0d 06 d6 0b 63 6d 70 20  |auseflag....cmp |
00000a10  23 37 38 0d 06 e0 0d 62  6e 65 20 6c 6f 6f 70 36  |#78....bne loop6|
00000a20  0d 06 ea 07 72 74 73 0d  06 f4 0a 2e 6c 6f 6f 70  |....rts.....loop|
00000a30  36 0d 06 fe 07 69 6e 78  0d 07 08 11 6c 64 61 20  |6....inx....lda |
00000a40  64 65 73 74 6e 31 2c 20  78 0d 07 12 0e 6a 73 72  |destn1, x....jsr|
00000a50  20 6f 73 77 72 63 68 0d  07 1c 0d 62 6e 65 20 6c  | oswrch....bne l|
00000a60  6f 6f 70 36 0d 07 26 0e  6a 73 72 20 6f 73 72 64  |oop6..&.jsr osrd|
00000a70  63 68 0d 07 30 07 72 74  73 0d 07 3a 08 2e 62 79  |ch..0.rts..:..by|
00000a80  65 0d 07 44 0b 6c 64 78  23 26 46 46 0d 07 4e 0a  |e..D.ldx#&FF..N.|
00000a90  2e 6c 6f 6f 70 37 0d 07  58 07 69 6e 78 0d 07 62  |.loop7..X.inx..b|
00000aa0  12 6c 64 61 20 66 69 6e  69 73 68 65 64 2c 78 0d  |.lda finished,x.|
00000ab0  07 6c 0e 6a 73 72 20 6f  73 77 72 63 68 0d 07 76  |.l.jsr oswrch..v|
00000ac0  0d 62 6e 65 20 6c 6f 6f  70 37 0d 07 80 07 72 74  |.bne loop7....rt|
00000ad0  73 0d 07 8a 09 2e 72 65  61 64 0d 07 94 1e 65 71  |s.....read....eq|
00000ae0  75 62 20 30 20 20 20 20  20 20 20 20 20 20 5c 20  |ub 0          \ |
00000af0  52 65 73 65 72 76 65 64  0d 07 9e 23 65 71 75 64  |Reserved...#equd|
00000b00  20 26 30 30 30 30 31 39  30 30 20 20 5c 20 4d 65  | &00001900  \ Me|
00000b10  6d 6f 72 79 20 42 75 66  66 65 72 0d 07 a8 1f 65  |mory Buffer....e|
00000b20  71 75 62 20 38 20 20 20  20 20 20 20 20 20 20 5c  |qub 8          \|
00000b30  20 52 65 61 64 20 44 61  74 61 0d 07 b2 1d 65 71  | Read Data....eq|
00000b40  75 62 20 30 20 20 20 20  20 20 20 20 20 20 5c 20  |ub 0          \ |
00000b50  44 72 69 76 65 20 30 0d  07 bc 1e 65 71 75 77 20  |Drive 0....equw |
00000b60  30 20 20 20 20 20 20 20  20 20 20 5c 20 53 65 63  |0          \ Sec|
00000b70  74 6f 72 20 30 0d 07 c6  25 65 71 75 62 20 31 36  |tor 0...%equb 16|
00000b80  20 20 20 20 20 20 20 20  20 5c 20 52 65 61 64 20  |         \ Read |
00000b90  31 36 20 73 65 63 74 6f  72 73 0d 07 d0 1c 65 71  |16 sectors....eq|
00000ba0  75 62 20 30 20 20 20 20  20 20 20 20 20 20 5c 20  |ub 0          \ |
00000bb0  55 6e 75 73 65 64 0d 07  da 26 65 71 75 64 20 30  |Unused...&equd 0|
00000bc0  20 20 20 20 20 20 20 20  20 20 5c 20 4c 65 6e 67  |          \ Leng|
00000bd0  74 68 20 6f 66 20 62 75  66 66 65 72 0d 07 e4 0b  |th of buffer....|
00000be0  2e 73 72 64 61 74 61 0d  07 ee 12 65 71 75 73 20  |.srdata....equs |
00000bf0  22 53 52 44 41 54 41 20  22 0d 07 f8 0b 65 71 75  |"SRDATA "....equ|
00000c00  62 20 38 36 0d 08 02 0b  65 71 75 62 20 31 33 0d  |b 86....equb 13.|
00000c10  08 0c 0a 2e 72 61 6d 75  70 0d 08 16 12 65 71 75  |....ramup....equ|
00000c20  64 20 26 30 30 31 39 30  30 43 30 0d 08 20 12 65  |d &001900C0.. .e|
00000c30  71 75 64 20 26 30 30 31  30 30 30 30 30 0d 08 2a  |qud &00100000..*|
00000c40  0a 65 71 75 62 20 30 0d  08 34 0a 65 71 75 62 20  |.equb 0..4.equb |
00000c50  30 0d 08 3e 0c 2e 72 61  6d 64 6f 77 6e 0d 08 48  |0..>..ramdown..H|
00000c60  12 65 71 75 64 20 26 30  30 31 39 30 30 34 30 0d  |.equd &00190040.|
00000c70  08 52 12 65 71 75 64 20  26 30 30 31 30 30 30 30  |.R.equd &0010000|
00000c80  30 0d 08 5c 0a 65 71 75  62 20 30 0d 08 66 0a 65  |0..\.equb 0..f.e|
00000c90  71 75 62 20 30 0d 08 70  09 2e 73 61 76 65 0d 08  |qub 0..p..save..|
00000ca0  7a 1e 65 71 75 62 20 30  20 20 20 20 20 20 20 20  |z.equb 0        |
00000cb0  20 20 5c 20 52 65 73 65  72 76 65 64 0d 08 84 23  |  \ Reserved...#|
00000cc0  65 71 75 64 20 26 30 30  30 30 31 39 30 30 20 20  |equd &00001900  |
00000cd0  5c 20 4d 65 6d 6f 72 79  20 42 75 66 66 65 72 0d  |\ Memory Buffer.|
00000ce0  08 8e 20 65 71 75 62 20  31 30 20 20 20 20 20 20  |.. equb 10      |
00000cf0  20 20 20 5c 20 57 72 69  74 65 20 44 61 74 61 0d  |   \ Write Data.|
00000d00  08 98 1d 65 71 75 62 20  30 20 20 20 20 20 20 20  |...equb 0       |
00000d10  20 20 20 5c 20 44 72 69  76 65 20 30 0d 08 a2 1e  |   \ Drive 0....|
00000d20  65 71 75 77 20 30 20 20  20 20 20 20 20 20 20 20  |equw 0          |
00000d30  5c 20 53 65 63 74 6f 72  20 30 0d 08 ac 1c 65 71  |\ Sector 0....eq|
00000d40  75 62 20 30 20 20 20 20  20 20 20 20 20 20 5c 20  |ub 0          \ |
00000d50  55 6e 75 73 65 64 0d 08  b6 1c 65 71 75 62 20 30  |Unused....equb 0|
00000d60  20 20 20 20 20 20 20 20  20 20 5c 20 55 6e 75 73  |          \ Unus|
00000d70  65 64 0d 08 c0 26 65 71  75 64 20 31 36 20 2a 20  |ed...&equd 16 * |
00000d80  32 35 36 20 20 20 5c 20  4c 65 6e 67 74 68 20 6f  |256   \ Length o|
00000d90  66 20 62 75 66 66 65 72  0d 08 ca 0b 2e 73 6f 75  |f buffer.....sou|
00000da0  72 63 65 0d 08 d4 0b 65  71 75 62 20 31 32 0d 08  |rce....equb 12..|
00000db0  de 0b 65 71 75 62 20 31  33 0d 08 e8 28 65 71 75  |..equb 13...(equ|
00000dc0  73 20 22 53 69 64 65 77  61 79 73 20 52 61 6d 20  |s "Sideways Ram |
00000dd0  41 44 46 53 20 44 69 73  63 20 43 6f 70 69 65 72  |ADFS Disc Copier|
00000de0  22 0d 08 f2 0b 65 71 75  62 20 31 33 0d 08 fc 0b  |"....equb 13....|
00000df0  65 71 75 62 20 31 30 0d  09 06 21 65 71 75 73 20  |equb 10...!equs |
00000e00  22 28 43 29 20 4a 6f 6e  20 57 65 6c 63 68 20 32  |"(C) Jon Welch 2|
00000e10  31 2f 31 31 2f 38 37 22  0d 09 10 0b 65 71 75 62  |1/11/87"....equb|
00000e20  20 31 33 0d 09 1a 0b 65  71 75 62 20 31 30 0d 09  | 13....equb 10..|
00000e30  24 0b 65 71 75 62 20 31  30 0d 09 2e 2c 65 71 75  |$.equb 10...,equ|
00000e40  73 20 22 45 6e 74 65 72  20 73 6f 75 72 63 65 20  |s "Enter source |
00000e50  64 72 69 76 65 20 20 20  20 20 20 20 20 20 20 20  |drive           |
00000e60  20 20 3a 20 22 0d 09 38  0a 65 71 75 62 20 30 0d  |  : "..8.equb 0.|
00000e70  09 42 0a 2e 64 65 73 74  6e 0d 09 4c 0b 65 71 75  |.B..destn..L.equ|
00000e80  62 20 31 33 0d 09 56 0b  65 71 75 62 20 31 30 0d  |b 13..V.equb 10.|
00000e90  09 60 2c 65 71 75 73 20  22 45 6e 74 65 72 20 64  |.`,equs "Enter d|
00000ea0  65 73 74 69 6e 61 74 69  6f 6e 20 64 72 69 76 65  |estination drive|
00000eb0  20 20 20 20 20 20 20 20  3a 20 22 0d 09 6a 0a 65  |        : "..j.e|
00000ec0  71 75 62 20 30 0d 09 74  0a 2e 70 61 75 73 65 0d  |qub 0..t..pause.|
00000ed0  09 7e 0b 65 71 75 62 20  31 33 0d 09 88 0b 65 71  |.~.equb 13....eq|
00000ee0  75 62 20 31 30 0d 09 92  2c 65 71 75 73 20 22 50  |ub 10...,equs "P|
00000ef0  61 75 73 65 20 62 65 74  77 65 65 6e 20 72 65 61  |ause between rea|
00000f00  64 20 2f 20 77 72 69 74  65 20 59 2f 4e 20 3a 20  |d / write Y/N : |
00000f10  22 0d 09 9c 0a 65 71 75  62 20 30 0d 09 a6 0b 2e  |"....equb 0.....|
00000f20  74 72 61 63 6b 73 0d 09  b0 0b 65 71 75 62 20 31  |tracks....equb 1|
00000f30  33 0d 09 ba 0b 65 71 75  62 20 31 30 0d 09 c4 2c  |3....equb 10...,|
00000f40  65 71 75 73 20 22 44 69  73 63 20 4c 61 72 67 65  |equs "Disc Large|
00000f50  2c 20 4d 65 64 69 75 6d  20 6f 72 20 53 6d 61 6c  |, Medium or Smal|
00000f60  6c 20 3f 20 20 3a 20 22  0d 09 ce 0a 65 71 75 62  |l ?  : "....equb|
00000f70  20 30 0d 09 d8 0c 2e 73  6f 75 72 63 65 31 0d 09  | 0.....source1..|
00000f80  e2 0a 65 71 75 62 20 37  0d 09 ec 32 65 71 75 73  |..equb 7...2equs|
00000f90  20 22 49 6e 73 65 72 74  20 73 6f 75 72 63 65 20  | "Insert source |
00000fa0  64 69 73 63 20 61 6e 64  20 70 72 65 73 73 20 61  |disc and press a|
00000fb0  20 6b 65 79 20 20 20 20  20 22 0d 09 f6 0b 65 71  | key     "....eq|
00000fc0  75 62 20 31 33 0d 0a 00  0a 65 71 75 62 20 30 0d  |ub 13....equb 0.|
00000fd0  0a 0a 0b 2e 64 65 73 74  6e 31 0d 0a 14 0a 65 71  |....destn1....eq|
00000fe0  75 62 20 37 0d 0a 1e 32  65 71 75 73 20 22 49 6e  |ub 7...2equs "In|
00000ff0  73 65 72 74 20 64 65 73  74 69 6e 61 74 69 6f 6e  |sert destination|
00001000  20 64 69 73 63 20 61 6e  64 20 70 72 65 73 73 20  | disc and press |
00001010  61 20 6b 65 79 22 0d 0a  28 0b 65 71 75 62 20 31  |a key"..(.equb 1|
00001020  33 0d 0a 32 0a 65 71 75  62 20 30 0d 0a 3c 0d 2e  |3..2.equb 0..<..|
00001030  66 69 6e 69 73 68 65 64  0d 0a 46 0b 65 71 75 62  |finished..F.equb|
00001040  20 31 30 0d 0a 50 1a 65  71 75 73 20 22 42 61 63  | 10..P.equs "Bac|
00001050  6b 75 70 20 43 6f 6d 70  6c 65 74 65 22 0d 0a 5a  |kup Complete"..Z|
00001060  0b 65 71 75 62 20 31 30  0d 0a 64 0b 65 71 75 62  |.equb 10..d.equb|
00001070  20 31 33 0d 0a 6e 0a 65  71 75 62 20 30 0d 0a 78  | 13..n.equb 0..x|
00001080  08 2e 65 6e 64 0d 0a 82  05 5d 0d 0a 8c 05 ed 0d  |..end....]......|
00001090  0a 96 05 e1 0d ff                                 |......|
00001096
Dave/ADFS_Bckup.m0
Dave/ADFS_Bckup.m1
Dave/ADFS_Bckup.m2
Dave/ADFS_Bckup.m4
Dave/ADFS_Bckup.m5