1 'ARCTRANS.BAS - transfers diskimages to RiscPC/Archimedes
2 'Version 8
3 '
5 MODE 2
10 SectorLen=2
20 StartTrack=0
30 EndTrack=41
40 FirstSector=&C1
50 LastSector=&C9
60 Drive=1
70 Kopf=&0
80 trackLen=6*1024
90 transferRate=92
100 MEMORY &3FFF
105 RESTORE 2000:FOR i=&9000 TO &9148:READ a$:POKE i,VAL("&"+a$):NEXT
106 RESTORE 3000:FOR i=&A000 TO &A06D:READ a$:POKE i,VAL("&"+a$):NEXT
107 GOTO 405
110 '
120 '
130 ' Input
140 '
160 LOCATE 1,3
161 PRINT"source-drive (0/1):"Drive
190 PRINT"head-address (0/1): &"HEX$(Kopf,2)
195 PRINT"tracks (1-80)     :"EndTrack+1
200 PRINT"first sector      : &"HEX$(FirstSector,2)
210 PRINT"last sector       : &"HEX$(LastSector,2)
220 PRINT"sector-size       :"SectorLen
230 LOCATE 1,3
240 INPUT"source-drive (0/1): ",e$:IF e$<>""THEN Drive=VAL(e$)
270 INPUT"head-address (0/1): ",e$:IF e$<>""THEN Kopf=VAL(e$)
275 INPUT"tracks (1-80)     : ",e$:IF e$<>""THEN EndTrack=VAL(e$)-1
280 INPUT"first sector      : ",e$:IF e$<>""THEN FirstSector=VAL(e$)
290 INPUT"last sector       : ",e$:IF e$<>""THEN LastSector=VAL(e$)
300 INPUT"sector-size       : ",e$:IF e$<>""THEN SectorLen=VAL(e$)
310 PRINT
320 PRINT"is this correct (y/n)?"
330 a$=UPPER$(INKEY$):IF a$=""THEN 330
340 IF a$="N"THEN 150
350 IF a$<>"Y"THEN 330
360 buffer=&4000
363 CLS:PRINT"insert disk......":CALL &BB06:CLS
365 RETURN
370 '
380 '
390 ' main program
400 '
405 CLS:PRINT"SIDE 0:":PRINT"-------":GOSUB 160
430 POKE buffer,EndTrack+1
440 CALL &A000,transferRate,buffer,1
450 GOSUB 530
460 CLS:PRINT"SIDE 1:":PRINT"-------":GOSUB 160
470 GOSUB 530
480 PRINT"transfer completed.....press any key to restart!":CALL &BB06:GOTO 405
490 '
500 '
510 ' transfer disk-side
520 '
530 CALL &9003:FOR i=1 TO 2000:NEXT
540 POKE buffer,ASC("I")
550 POKE buffer+1,ASC("N")
560 POKE buffer+2,ASC("D")
570 POKE buffer+3,ASC("X")
580 POKE &9010,Drive
590 POKE &9012,Kopf
600 POKE &9014,SectorLen
610 FOR i=StartTrack TO EndTrack
620 LOCATE 1,1:PRINT i" "
630 tl=0
640 FOR s=FirstSector TO LastSector
650 tl=tl+4
660 POKE &9011,i
670 POKE &9013,s
680 CALL &9000,buffer+tl
690 tl=tl+128*(2^SectorLen)+28
700 FOR j=tl TO tl+3:POKE buffer+j,0:NEXT
710 NEXT
720 CALL &A000,transferRate,buffer,trackLen
730 NEXT
735 PRINT CHR$(7);
740 RETURN
1997 '
1998 'COPYMC2
1999 '
2000 DATA C3,1E,90,C3,37,91,00,00,00,00,00,00,00,00,00,00,01,00,00,41
2001 DATA 02,2A,FF,00,00,00,00,00,00,00,EB,0E,02,06,05,C5,E5,36,49,23
2002 DATA 36,44,23,36,46,23,36,44,23,D5,C5,01,04,00,11,11,90,EB,ED,B0
2003 DATA EB,06,10,36,00,23,10,FB,C1,D1,36,44,23,36,41,23,36,54,23,36
2004 DATA 41,23,CD,7B,90,E1,C1,3A,17,90,E6,88,20,0E,3A,18,90,E6,35,20
2005 DATA 07,3A,19,90,E6,33,28,0D,10,B5,C5,CD,EE,90,C1,0D,20,AB,37,18
2006 DATA 01,B7,C9,CD,08,91,F3,3E,46,CD,A9,90,ED,78,F2,84,90,E6,20,28
2007 DATA 08,0C,ED,78,77,23,0D,18,EF,16,07,21,17,90,ED,78,F2,9A,90,0C
2008 DATA ED,78,77,23,0D,15,20,F2,C9,01,7E,FB,CD,E3,90,3A,10,90,5F,3A
2009 DATA 12,90,87,87,83,CD,E3,90,3A,11,90,CD,E3,90,3A,12,90,CD,E3,90
2010 DATA 3A,13,90,CD,E3,90,3A,14,90,CD,E3,90,3A,13,90,CD,E3,90,3A,15
2011 DATA 90,CD,E3,90,3A,16,90,5F,ED,78,F2,E4,90,0C,ED,59,0D,C9,CD,F1
2012 DATA 90,01,7E,FB,3E,07,CD,E3,90,3A,10,90,5F,3A,12,90,87,87,83,CD
2013 DATA E3,90,18,1B,01,7E,FB,3E,0F,CD,E3,90,3A,10,90,5F,3A,12,90,87
2014 DATA 87,83,CD,E3,90,3A,11,90,CD,E3,90,E5,3E,08,CD,E3,90,16,02,CD
2015 DATA 97,90,3A,17,90,CB,6F,28,EF,E1,C9,3E,01,CD,43,91,0D,20,FD,10
2016 DATA FB,C9,AF,01,7E,FA,ED,79,C9
2997 '
2998 'TRANSMC
2999 '
3000 DATA DD,5E,00,DD,56,01,DD,6E,02,DD,66,03,DD,7E,04,FD,6F,3E,60,CD
3001 DATA 48,A0,06,00,10,FE,DD,21,00,00,4E,23,06,00,DD,09,CD,37,A0,1B
3002 DATA 7A,B3,20,F2,DD,4D,CD,37,A0,DD,4C,CD,37,A0,C9,79,E6,0F,F6,50
3003 DATA CD,48,A0,79,E6,F0,0F,0F,0F,0F,F6,20,C5,FD,45,10,FE,CD,52,A0
3004 DATA C1,C9,4F,3A,6E,A0,E6,F0,47,79,E6,0F,B0,06,EF,ED,79,06,08,10
3005 DATA FE,79,32,6E,A0,06,EF,ED,79,C9
