2 DEFine FuNction READ_MODE:RETurn 256*(2-INT(PEEK(163892)/8)MOD 2):END DEFine 
3 DEFine PROCedure SET_MODE(N):LOCal TVMOD:TVMOD=PEEK(163890):MODE N:POKE 163890,TVMOD:END DEFine 
4 DEFine FuNction RIGHTMOST$(F$):LOCal G$:G$=F$:IF G$<>"" THEN REPeat Right_loop:IF G$=" " THEN G$="":EXIT Right_loop:END IF :IF G$(1)=" " THEN G$=G$(2 TO):ELSE EXIT Right_loop:END IF 
5 RETurn G$:END DEFine 
100 REMark MAIN PROGRAM
110 OPEN#3;scr_512x256a0x0:PAPER#3;0:INK#3;7:OPEN#4;con_448x72a32x99:PAPER#4;0:INK#4;7:BORDER#4;1,7
120 Smode=READ_MODE:SET_MODE 512
130 Src$="Mdv1_":Dst$="Mdv2_"
140 AT#4;2,12:INPUT #4;"Source device = ";Name$;:IF Name$=""THEN PRINT#4;Src$;:ELSE Src$=Name$:END IF :AT#4;2,37:INPUT#4;"Destination device = ";Name$;:IF Name$="" THEN PRINT#4;Dst$:ELSE Dst$=Name$:END IF :AT#4;4,21:PRINT#4;"Hit any key to begin cloning...";:PAUSE:CLS#4
150 REPeat loop
160  AT#4;2,6:PRINT#4;"Format destination media (Y/N) ";:INPUT#4;Name$:CLS#4
170  IF Name$=="Y" THEN 
180   AT#4;2,6:PRINT#4;"Name for destination media ":AT#4;4,21:INPUT#4;Name$:CLS#4
190   Name$=RIGHTMOST$(Name$)
200   IF Name$<>"" THEN 
210    Name$=Name$&FILL$(" ",10)
220    Name$=Name$(1 TO 10)
230    CLS#4:AT#4;3,13:PRINT#4;"Formatting ";Dst$;" as ";Name$;" ... ";
240    FORMAT#4;Dst$&Name$:AT#4;3,0
250    EXIT loop
260   END IF 
270  END IF 
280  IF Name$=="N" THEN EXIT loop
290 END REPeat loop
300 DELETE Dst$&"CLONE_dat"
310 OPEN_NEW#5;Dst$&"CLONE_dat"
320 DIR#5;Src$
330 CLOSE#5
340 OPEN_IN#5;Dst$&"CLONE_dat"
350 INPUT#5;Name$,Space$
360 REPeat loop
370   IF EOF(#5) THEN EXIT loop
380   INPUT#5;Name$
390   IF NOT(Name$=="CLONE" OR Name$=="CLONE_dat") THEN 
400     CLS#4;3:AT#4;3,20:PRINT#4;"...Copying ";Name$
410     COPY Src$&Name$ TO Dst$&Name$
420   END IF 
430 END REPeat loop
440 CLOSE#5
450 DELETE Dst$&"CLONE_dat"
460 CLS#4;3:AT#4;3,20:PRINT#4;"... Saving CLONE"
470 SAVE Dst$&"CLONE"
480 CLOSE#3:CLOSE#4
490 SET_MODE Smode
500 DIR Dst$
