Listing of file='@MOVE' on disk='vmedia/701-2118M.wvd.zip'
# Sector 774, program filename = '@MOVE'
0010 REM -- @MOVE -- MOVES DISK FILE TO ANOTHER SURFACE 6/17/80
0020 REM RUNS ONLY ON 2200VP, 2200MVP
0030 PRINT HEX(03)
: PRINT AT(1,16);"***** MOVE SYSTEM FILE *****"
: PRINT
0040 COM I$3,O$3
0050 DIM Z$3,N$8,Q$1,A$(256)1,I1$8,O1$8,Y$1
0060 DIM Z$3,Z1$2,J$8,E$1,B$10
0070 $GIO/005(7601,B$)
: B$=AND HEX(10)
: IF STR(B$,,1)=HEX(10)THEN A=80
: ELSE A=64
: A2=3*A
: A5=5*A
: REM A = SCREEN WIDTH
: SELECT PRINT 005(A),LIST 005(A),CO 005(A)
0080 RESTORE
: IF O$<>" "THEN 90
: I$="310"
: O$="320"
0090 READ I1$
: IF I1$=" "THEN 80
0100 PRINT AT(5,0,A);AT(7,0,A5);AT(9,0);
: GOSUB 370
: PRINT AT(3,0,31);
: Z$=I$
: LINPUT "INPUT ADDRESS "-Z$
: GOSUB '100(1,Z$)
: IF E$<>" "THEN 100
: I$=Z$
: PRINT AT(6,0,A);
0110 PRINT AT(9,0,A2);AT(4,0,A);
: PRINT "FILE NAME ";I1$
: PRINT AT(7,0,A);
: Y$="N"
: LINPUT " DO YOU WANT TO MOVE THIS FILE?"-Y$
: IF Y$<>"Y"THEN 90
: PRINT AT(6,0,A);
: LIMITS T#1,I1$,L1,L2,L3,L4
: ERRORL4=0
0120 IF L4<>0 THEN 130
: PRINT AT(6,0);"'";I1$;"' DOES NOT RESIDE ON PLATTER /";I$;"."
: GOTO 100
0130 PRINT AT(6,0,A2); AT(9,0,A2);
: GOSUB 370
: PRINT AT(3,32,32);
: Z$=O$
: LINPUT "OUTPUT ADDRESS "-Z$
: GOSUB '100(2,Z$)
: IF E$<>" "THEN 130
: O$=Z$
: PRINT AT(6,0,A);
0140 PRINT AT(9,0,A2);AT(4,32,32);
: O1$=I1$
: LINPUT "FILE NAME "-O1$
0150 PRINT AT(6,0,A);
: LIMITS T#2,O1$,L5,L6,L7,L8
: ERRORL8=0
0160 IF L8<>0 THEN 190
: PRINT AT(6,0,A);"'";O1$;"' DOES NOT RESIDE ON PLATTER /";O$;"."
: PRINT "IS IT OK TO CREATE NEW FILE (Y OR N)";
: Y$="N"
: LINPUT -Y$
: IF Y$<>"Y" THEN 100
0170 O=0
: REM *****INPUT "CHANGE FILE SIZE BY HOW MANY SECTORS (default = 0)",O
0180 IF ABS(L4)=1THEN SAVE T #2,(L2-L1-2+O)O1$ 10,10
: ELSE DATA SAVE DC OPEN T#2,(L2-L1+1+O)O1$
: LIMITS T#2,O1$,L5,L6,L7,L8
: GOTO 240
0190 PRINT AT(6,0,A2);"'";O1$;"' ALREADY EXISTS ON PLATTER /";O$;"'."
: PRINT "CAN FILE BE OVERWRITTEN (Y OR N)";
: Y$="N"
: LINPUT -Y$
: IF Y$<>"Y" THEN 100
0200 IF L2-L1 <= L6-L5 THEN 230
: PRINT AT(6,0,A2);"OLD FILE IS TOO SMALL. "
: J$="@JUNKAAA"
0210 LIMITS T #2,J$,L9,L9,L9,L9
: IF L9=0THEN 220
: I=POS(-J$<"Z")
: STR(J$,I,1)=ADD HEX(01)
: IF I<8 THEN STR(J$,I+1)=ALL("A")
: GOTO 210
0220 PRINT "CAN THE FILE BE JUNKED (RENAMED TO ";J$;" & SCRATCHED)?";
: Y$="N"
: LINPUT -Y$
: IF Y$<>"Y"THEN 100
: SCRATCH T #2,O1$
: DATA SAVE DC OPEN T #2,O1$,J$
: SCRATCH T #2,J$
: PRINT AT(6,0,A2);
: GOTO 150
0230 SCRATCH T#2,O1$
: IF ABS(L4)=1THEN SAVE T #2,(O1$)O1$9,9
: ELSE DATA SAVE DC OPEN T#2,(O1$)O1$
0240 REM % FILE IS READY FOR COPY
0250 PRINT AT(6,0,A5);AT(11,0,A);
: Q$="N"
: LINPUT "IS IT OK TO MOVE "-Q$
: IF Q$="Y" THEN 290
: IF Q$<>"N" THEN 250
: PRINT AT(6,0,)
: GOTO 90
0290 PRINT AT(11,0,A);"MOVING FILE '";I1$;"' ON /";I$;" TO FILE '";O1$;"' ON /
";O$;"...";
: D=L5
: M=MIN(L2-L1-1,L6-L5-1)
: FOR S=L1 TO L1+M
: DATA LOAD BA T#1,(S)A$()
: DATA SAVE BA T#2,(D,D)A$()
: NEXT S
: M=(L6-L5)-(L2-L1)
: IF M<=0 THEN 300
: A$()=ALL(00)
: FOR S=1TO M
: DATA SAVE BA T#2,(D,D)A$()
: NEXT S
0300 DATA LOAD BA T#1,(L2)A$()
: DATA SAVE BA T#2,(L6)A$()
0310 PRINT AT(11,0,A);"VERIFYING FILE...";
: VERIFY T#2,(L5,L6)
0320 PRINT AT(11,0,A);"MOVE '";O1$;"' & VERIFY COMPLETE";HEX(07)
0330 GOTO 90
0340 DATA "@@","@MOVE","@FORMAT","@2273VFU","@BACKUP","@RECOVER","@MOVEFIL","@
MENU",".STARTD",".SYSVPB","@P","@\","@A","@B","@C","@D"," "
0350 REM % SELECT DISK
0360 DEFFN'100(Z,Z$)
: E$=" "
: MAT SEARCH "310B10320B20330B30350B50360B60370B70D10D11D20D21D30D31D50D51D
60D61D70D71",=STR(Z$) TO Z1$ STEP 3
0365 ON (2+VAL(Z1$,2))/3 SELECT #Z/310;#Z/B10;#Z/320;#Z/B20;#Z/330;#Z/B30;#Z/3
50;#Z/B50;#Z/360;#Z/B60;#Z/370;#Z/B70;#Z/D10;#Z/D11;#Z/D20;#Z/D21;#Z/D30;
#Z/D31;#Z/D50;#Z/D51;#Z/D60;#Z/D61;#Z/D70;#Z/D71
: ELSE E$="E"
: RETURN
0370 PRINT "PLATTER ADDRESS CHOICES:"
: PRINT " 310 B10 320 B20 330 B30 350 B50 360 B60 370 B70"
: PRINT " D10 D11 D20 D21 D30 D31 D50 D51 D60 D61 D70 D71"
: RETURN