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 6bne 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 land #&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 tlda #&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