Listing of file='@MOVEFIL' on disk='vmedia/vp-boot-2.3.wvd.zip'
# Sector 795, program filename = '@MOVEFIL'
0010 REM %"@MOVEFIL". 08/18/80. MOVE SPECIFIED FILE
0020 LOAD T"@MOVE1"10,40BEG 90
0030 REM %VARIABLES
0040 REM REM A1$-Input address
: REM C1$-Input name
: REM A2$-Output address
: REM C2$-Output name
0050 DIM A1$3,A2$3,T$1,C1,C2
0060 DIM C1$8,C2$8,C3$8,C0$8,A4$5,A3$3,A5$3
0070 DIM S$(24,2)8,S$3,N$8,N3$8,P1$1,Q1$1,Q$1,Q6$2,L$2,E$49,S1$3,S2$3,N1$8,N2$
8,N4$8,N5$8,N6$8
0090 PRINT HEX(020D0C030F020402000F);
0100 PRINT HEX(060E);TAB(30);"MOVE FILE UTILITY";HEX(0F)
: REM % INIT
: S$(),C1$,C2$,C3$,N3$=ALL(00)
: A9=0
: T$="W"
: A1$="D11"
: A2$="D10"
: A5$,A3$=" "
0120 REM %INPUT
0130 $CLOSE
: PRINT HEX(06);AT(1,0,)
0140 PRINT AT(2,0,80);
: LINPUT "Input address: "-A1$
: GOSUB '100(A1$)
: IF Q$<>" "THEN 130
: IF A1$=A3$AND Q$=" "THEN 170
: A3$=A1$
0150 PRINT HEX(06);AT(5,0);"W = WANG 2200 type";AT(6,0);"I = IBM 3741 type"
0160 PRINT AT(4,0,80);
: LINPUT "Input platter type: "-T$
: C1=POS("IWiw"=T$)
: IF C1=0THEN 160
: PRINT HEX(06);AT(4,0,);
: C1,C2=MOD(C1,2)*2^14
: GOSUB '105(1,A1$,C1)
: IF Q$=" "THEN 170
: A3$=" "
: GOTO 140
0170 $OPEN #1
: REM READ INDEX
: GOSUB '115(1,0,A1$,C1)
: IF Q$<>" "THEN 140
: I1=VAL(STR(S$(),2))
0180 PRINT AT(8,0,80);
: REM NEXT NAME
: GOSUB '130(0,1,C3$,A9,I1-1,A1$,C1)
: IF Q$<>" "THEN 185
: C1$,C2$,C3$=N3$
: A9=S9
: IF R3<0OR STR(N3$,,5)="@SPAN"THEN 180
: GOTO 200
0185 A9=0
: C3$=ALL(00)
: GOSUB '130(1,1,"@SPAN001",0,I1-1,A1$,C1)
: C1$,C2$=" "
: IF R3<0THEN 180
: IF Q$<>" "THEN 200
: C1$,C2$=N3$
0190 REM SPAN FILE
: GOSUB '115(1,R4,A1$,C1)
: C2$=STR(S$(),9,8)
: PRINT HEX(0E);AT(8,0,80);"File @SPAN001";" contains a portion of file ";C
2$;
0200 PRINT HEX(06);AT(4,0,320);
: LINPUT "Input file name: "-C1$
: IF C1$=" "THEN 180
: IF STR(C1$,,5)="@SPAN"AND STR(C1$,6)<>"001"THEN 200
: C0$=C1$
: PRINT HEX(06);AT(6,0,80);"Getting file parameters";
0210 IF C1$<>N3$OR Q$<>" "THEN GOSUB '130(1,1,C1$,0,I1-1,A1$,C1)
: IF Q$=" "AND C1$="@SPAN001"THEN 230
: ELSE IF Q$=" "THEN 260
: IF C1$="@SPAN001"THEN 250
: C1$="@SPAN001"
: A9=0
0220 REM LOOK FOR "@SPAN001"
: GOSUB '130(1,1,C1$,A9,I1-1,A1$,C1)
: IF Q$="N"THEN 250
0230 REM SPAN FILE. REAL PARM
: GOSUB '115(1,R4,A1$,C1)
: REM NAME
: Q$="N"
: C2$=STR(S$(),9,8)
: IF C2$<>C0$AND C0$<>"@SPAN001"THEN 250
: Q$=" "
: C1$=N3$
0240 A3=VAL(STR(S$(),5),2)
: A5=VAL(STR(S$(),3),2)-A3
: GOTO 270
0250 REM
: PRINT HEX(07);AT(10,0);
: LINPUT "File does not exist in source platter. Key RETURN to try again",P
1$
: PRINT AT(10,0,160);
: C1$=" "
: GOTO 200
0260 REM REGULAR FILE PARMS.
: C2$=N3$
: A3=R6
: A5=R5-R4-R6+1
0270 PRINT HEX(0E);AT(8,0,);
: IF STR(C0$,,5)<>"@SPAN"THEN 280
: PRINT "File ";C0$;" contains a portion of file ";C2$;
0280 PRINT AT(9,0);"Currently,";A3;"sectors are used in file ";C2$;" and";A5;"
are free.";
0290 PRINT HEX(0F);AT(6,0,80);
: CONVERT A5TO A4$,(#####)
: LINPUT "Extra Sectors: "-A4$
: CONVERT A4$TO A4
: ERRORGOTO 280
0300 IF A4<0OR A4+A3>2^16-1THEN 290
: PRINT HEX(06);AT(6,0,)
0305 REM %OUTPUT
: IF A5$<>" "THEN 380
0310 PRINT AT(2,40,40);
: LINPUT "Output address: "-A2$
: GOSUB '100(A2$)
: IF Q$<>" "THEN 310
: IF A2$=A5$AND Q$=" "OR A2$=A1$THEN 340
: A5$=A2$
0320 PRINT HEX(06);AT(5,38,42);TAB(40);"W = WANG 2200 type";AT(6,40,);"I = IBM
3741 type"
: T$="W"
0330 PRINT AT(4,40,40);
: LINPUT "Output platter type: "-T$
: C2=POS("IWiw"=T$)
: IF C2=0THEN 330
: PRINT HEX(06);AT(4,40,);
: C2=MOD(C2,2)*2^14
0340 GOSUB '105(2,A2$,C2)
: IF Q$=" "THEN 342
: A5$=" "
: GOTO 310
0342 $OPEN #2
: REM READ INDEX
: GOSUB '115(2,0,A2$,C2)
: IF Q$<>" "THEN 310
: REM SIZE
: I4=VAL(STR(S$(),2))
0350 IF C2=0THEN 380
: PRINT AT(7,40);
: Q1$="N"
: F=1
: IF STR(S$(),,2)<>HEX(000D)AND STR(S$(),5,2)<>HEX(03E9)THEN PRINT HEX(0E);
"Your platter needs to be initialized";HEX(0F);
: ELSE F=0
: IF F=1THEN Q1$="Y"
: PRINT AT(5,38);
: LINPUT "Do you want to initialize the platter?"-Q1$
: ON POS("YyNn"=Q1$)GOTO 370,370,360,360
: ELSE GOTO 350
0360 ON F+1GOTO 380
: PRINT AT(8,40);
: LINPUT "Mount a new platter and key RETURN",P1$
: GOTO 320
0370 PRINT HEX(06);AT(5,38,);TAB(40);"Initializing output platter"
: GOSUB '240(A2$)
0380 PRINT HEX(06);AT(4,40,);
: LINPUT "Output file name: "-C2$
: PRINT HEX(06);AT(6,30,50);"Scanning output index";
: GOSUB '130(1,2,C2$,0,I4-1,A2$,C2)
: PRINT AT(6,30,50);
: IF Q$="N"THEN 400
0390 Q1$="N"
: PRINT AT(6,30);"File ";C2$;" already exists. OK to overwrite?";
: LINPUT Q1$
: ON POS("YyNn"=Q1$)GOTO 400,400,380,380
: ELSE GOTO 390
0400 PRINT AT(6,30,50);
: REM CALL 'MOVE'
: GOSUB '255(C1$,A1$,C1,A4,C2$,A2$,C2)
: GOTO 180
0410 REM END
: PRINT HEX(020D0C0F)
: END