Listing of file='WPINSTLL' on disk='vmedia/701-2736G.wvd.zip'
# Sector 276, program filename = 'WPINSTLL' 0010 REM WPINSTLL RELEASE 250-05/04/88 - COPYRIGHT WANG LABS. INC. 1988 KKB 0050 DIM R(3),C(3),U(3),E(3),E$(7)45,D$(7)2 : DIM T1(9),R1(9),C1(9),E1$(9)60 : DIM T2(7),R2(7),C2(7),E2(7),U2$(7)3,D2$(16)2,D1$10,Q$1,X$80,X2$2 0060 DIM A$(4)62,D2$6,D3$6,D4$6,D5$6,F$20,F0$16,T1$4,T2$4,T3$4,R$(10)9,Z9$8 : DIM A1$(14)8,A2$(14)8,A3$(14)1,B$(4)64,C$(4)64,F1$8,X9$6,Y$1,Y9$8,Z8$8,Z7 $8 0070 $FORMATF$=A6,A4,A6,A4,A6,A4,A13,A6,A16,A9 : Z9$="609@D0" : Z8$="609@DEVC" : Y9$="\CA\D5\CE\CB\B0\B0\B0\B0" : X9$=".REFWP" : C3,C4,F,N=0 : Z7$="BUMPmain" 0080 PRINT HEX(03) : GOSUB '61 0090 GOSUB '62 : IF U=0OR U=-1THEN 1010 : IF NUM(U2$(1))*NUM(U2$(2))*NUM(U2$(3))*NUM(U2$(4))*NUM(U2$(5))<32THEN 102 0 : IF POS("DB3"=STR(U2$(6),,1))*POS("1234567"=STR(U2$(6),2,1))*POS("01234567 89ABCDE"=STR(U2$(6),3,1))=0THEN 1030 : SELECT #6<U2$(6)> : ERRORGOTO 1030 0100 IF POS("3BD"=STR(U2$(7),,1))*POS("1234567"=STR(U2$(7),2,1))*POS("01234567 89ABCDE"=STR(U2$(7),3,1))=0THEN 1040 : IF STR(U2$(6),,3)=STR(U2$(7),,3)THEN 1050 : SELECT #7<U2$(7)> : ERRORGOTO 1040 0110 REM .type of disk 0111 VERIFY T#6,(2444,2446)A : IF A=2445 THEN Z9$="609@SSSD" 0112 VERIFY T#7,(2444,2446)A : IF A=2445 THEN Z9$="609@SSSD" 0119 LIMITS T#6,Z9$,A,B,B,B : ERRORGOTO 1060 0120 IF B<>2THEN 1060 : DATA LOAD DC OPEN T#6,Z9$ : DATA LOAD DC #6,A$() : LIMITS T#7,Z9$,A,B,B,B : IF U(1)=1AND B<>2THEN 1070 : D2$=U2$(1)&U2$(2)&U2$(3) : T1$=U2$(4)&U2$(5) : STR(A$(),,6),STR(A$(),11,6)=D2$ : STR(A$(),7,4),STR(A$(),17,4)=T1$ : IF B<>2THEN 140 : DATA LOAD DC OPEN T#7,Z9$ : DATA SAVE DC #7,A$() : GOTO 142 0140 DATA SAVE DC OPEN T#7,(3)Z9$ : STR(A$(),11,6)=D2$ : STR(A$(),17,4)=T1$ : DATA SAVE DC #7,A$() : DATA SAVE DC #7,END 0142 LIMITS T#7,Z7$,A1,A2,A3,A4 : ERRORGOTO 1100 0143 IF A4=0THEN MOVE T#6,Z7$TO T#7, : LIMITS T#7,"Pqueue",A1,A2,A3,A5 : ERRORGOTO 1100 0145 IF A5=0THEN MOVE T#6,"Pqueue"TO T#7, : ERRORGOTO 1100 0146 LIMITS T#7,"609EDATA",A1,A2,A3,A6 : ERRORGOTO 1100 0147 IF A6=0THEN 148 : IF A2-A1>53THEN 150 : SCRATCH T#7,"609EDATA" : DATA SAVE DC OPEN T#7,"609EDATA","JUNKEDAT" : DATA SAVE DC OPEN T#7,(55)"609EDATA" : SCRATCH T#7,"JUNKEDAT" : GOTO 150 0148 MOVE T#6,"609EDATA"TO T#7, : ERRORGOTO 1100 0150 $UNPACK(F=F$)A$()TO D2$,T1$,D3$,T2$,D4$,T3$,R$,D5$,F0$,R$() : FOR J=1TO 10 : IF STR(R$(J),,6)<>X9$AND STR(R$(J),1,8)<>".REFDAST"THEN 160 : IF U(1)=1AND STR(R$(J),7,2)="D "THEN 160 : GOSUB 190 0160 NEXT J : IF U(1)=1THEN 176 : DATA LOAD DC OPEN T#7,Z8$ : ERRORGOTO 180 0170 DATA LOAD DC #7,A$() : STR(A$(),2,3)=U2$(7) : DBACKSPACE #7,BEG : DATA SAVE DC #7,A$() : DATA SAVE DC CLOSEALL 0171 DATA LOAD DC OPEN T#7,Z9$ : ERRORGOTO 1100 0172 DATA LOAD DC #7,A$() : STR(A$(),,6),STR(A$(),11,6)=D2$ : STR(A$(),7,4),STR(A$(),17,4)=T1$ : DBACKSPACE #7,BEG : DATA SAVE DC #7,A$() : DATA SAVE DC CLOSEALL 0176 IF A5<>0AND U(1)=1THEN 180 : DATA LOAD DC OPEN T#7,Z7$ : ERRORGOTO 180 0177 MAT REDIM A$(50)3 : A$()=U2$(7) : DATA SAVE DC #7,A$() : MAT REDIM A$(4)62 : DATA SAVE DC CLOSEALL 0180 GOSUB 1150 : END 0190 IF J=1THEN 200 : IF STR(R$(J),9,1)<>STR(R$(J-1),9,1)THEN 1080 0200 DATA LOAD DC OPEN T#6,STR(R$(J),,8) : ERRORGOTO 1080 0210 DATA LOAD DC #6,STR(A1$(),1),STR(A2$(),1),STR(A3$(),1) : IF END THEN RETURN : FOR K=1TO 14 : IF A1$(K)<>" "THEN 220 : GOTO 280 0220 LIMITS T#6,A1$(K),A1,A2,A3,A4 : IF A4=0THEN 1090 : LIMITS T#7,A1$(K),B1,B2,B3,B4 : S=MAX(VAL(A3$(K))-1,0) : IF B4=0THEN MOVE T#6,A1$(K)TO T#7,(S) : ERRORE9=ERR : GOTO 1100 0230 IF B4=0THEN 260 : IF U(3)=3THEN 180 : IF U(3)=2THEN 240 : IF U(3)=1AND A1$(K)="START"THEN 240 : GOTO 250 0240 GOSUB 1000 : IF Y$="N"OR Y$="n"THEN 280 0250 SCRATCH T#7,A1$(K) : MOVE T#6,A1$(K)TO T#7,() : ERRORE9=ERR : IF E9<>81THEN 1100 : GOTO 290 0260 C3=C3+1 : GOSUB 1130 : IF U(2)=1THEN 280 : LIMITS T#7,A1$(K),B1,B2,B3,B4 : IF A3<>B3THEN 320 : A3=A3+(1-SGN(A3-1))*(A2-A1) : FOR L=ABS(A4-2)TO A3-A4-1 : DATA LOAD BA T#6,(A1+L)B$() : DATA LOAD BA T#7,(B1+L)C$() : IF B$()<>C$()THEN 320 : NEXT L : GOSUB 1140 0280 NEXT K : GOTO 210 0290 Y9$=DSC HEX(80808080) : CONVERT STR(Y9$,5,4)TO N : N=N+1 : CONVERT NTO STR(Y9$,5,4),(####) : STR(Y9$,5,4)=OR HEX(80808080) : SAVE T#7,(A1$(K))Y9$10,10 : ERRORE9=ERR : IF E9<>83THEN 1100 : GOTO 290 0300 SCRATCH T#7,Y9$ : MOVE T#6,A1$(K)TO T#7,(S) : ERRORE9=ERR : GOTO 1100 0310 GOTO 260 0320 F=F+1 : IF F=1THEN 330 : IF F=2AND F1$=A1$(K)THEN 1110 : F=1 0330 F1$=A1$(K) : C3=C3-1 : GOTO 220 1000 KEYIN Y$,1000,1000 : PRINT HEX(07);AT(23,0,);"Do you wish to overwrite file ";HEX(0E);A1$(K); HEX(0F);" ? (Enter 'Y' OR 'N') ";HEX(0E8B0F); : Y$="Y" : KEYIN Y$ : IF Y$<>"Y"AND Y$<>"y"AND Y$<>"N"AND Y$<>"n"THEN 1000 : PRINT HEX(080E);Y$;HEX(0F06); : RETURN 1010 RESTORE : GOTO 80 1020 PRINT HEX(0706020402000E);AT(23,0);"Dates and times must contain only num bers";HEX(0F); : GOTO 90 1030 PRINT HEX(0706020402000E);AT(23,0);"Invalid floppy disk address";HEX(0F); : GOTO 90 1040 PRINT HEX(0706020402000E);AT(23,0);"Invalid destination disk address";HEX (0F); : GOTO 90 1050 PRINT HEX(0706020402000E);AT(23,0);"Floppy and destination disk addresses cannot be the same";HEX(0F); : GOTO 90 1060 PRINT HEX(0706020402000E);AT(23,0);"Mount software diskette #1 at floppy address";HEX(0F); : GOTO 90 1070 PRINT HEX(0706);AT(19,0);"Essential file ";Z9$;" is missing from the dest ination disk.";AT(20,0);"You must either copy the system data files";AT(2 1,0);"Or choose a destination disk where ";HEX(22);Z9$;" resides."; : GOTO 90 1080 KEYIN Y$,1080,1080 : PRINT HEX(0706020402000E);AT(23,0,);"Mount software diskette #";STR(R$(J) ,9,1);" at address ";U2$(6);", and THEN press EXECUTE.";HEX(0F); : KEYIN Y$ : IF VAL(Y$)<>82AND VAL(Y$)<>130THEN 1080 : PRINT AT(23,0,); : GOTO 200 1090 PRINT HEX(0706020402000E);AT(23,0);"Diskette does not contain the proper files. Contact your Wang reprsentative.";HEX(0F); : PRINT AT(19,0); : END 1100 PRINT HEX(0706020402000E);AT(23,0); : IF E9=85THEN PRINT "The index of the disk at ";U2$(7);" is full."; : IF E9=86THEN PRINT "No more room on the disk at address ";U2$(7);"."; : ELSE PRINT "Error ";E9;". Software is not fully installed.";HEX(0F); : PRINT AT(19,0,80); : STOP # : GOTO 280 1110 F=0 : C4=C4+1 : IF C4>1THEN 1120 : PRINT HEX(06020402000E);AT(2,0,1120);"The following files cannot be verif ied: (diskette number follows file name)";HEX(0F) 1120 PRINT AT(3+INT((C4-1)/5),15*MOD((C4-1),5));A1$(K);" #";STR(R$(J),9,1) : GOTO 280 1130 PRINT AT(19,0,);"Now copying file number ";HEX(0E);C3;": ";A1$(K);HEX(0F ) : RETURN 1140 PRINT AT(19,0,);"Now verifying file number ";HEX(0E);C3;": ";A1$(K);HEX( 0F) : RETURN 1150 PRINT HEX(020402000E);AT(19,0,);"All software is now installed and update d"; : PRINT AT(20,0); : IF N=0THEN END : PRINT "Because of file size conflicts, ";N;" scratched junk file(s)";AT(2 1,0); : IF N=1THEN PRINT "Has"; : ELSE PRINT "Have"; : PRINT " been created on destination platter.";HEX(0F); : RETURN 2000 DATA 3,0,0,"INSTALLATION OF WANG 2200 WORD PROCESSING SOFTWARE" : DATA 4,2,0,"Provide requested information and press EXECUTE" : DATA 4,4,0,"Enter today's date (MMDDYY)" : DATA 2,4,29,2," " : DATA 2,4,32,2," " : DATA 2,4,35,2," " : DATA 4,5,0,"Enter present time (24 hour system - HHMM)" 2070 DATA 2,5,44,2," " : DATA 2,5,47,2," " : DATA 4,7,0,"Enter address where floppy disk containing software resides" : DATA 2,7,61,3," " : DATA 4,8,0,"Enter destination address for software" : DATA 2,8,40,3," " : DATA 4,10,3,"Select which files to copy:" : DATA 4,10,55,"Select option:" 2150 DATA 1,11,3,1,"Copy programs only","Copy programs and system data files", "\DE" : DATA 1,11,55,1,"Copy only","Copy and verify","\DE" : DATA 4,14,3,"If a file already exists on destination disk:" 2180 DATA 1,15,3,1,"Replace all such files","Stop for confirmation for each fi le","Terminate Immediately","\DE" : DATA 0 3005 DEFFN'61 : E,E1,E2,Q,Q5=0 3010 READ X : ON XGOSUB 3015,3025,3030,3030,3025 : IF X=0THEN RETURN : GOTO 3010 3015 E=E+1 : READ R(E),C(E),U(E) : Q5=Q5+1 : STR(D1$,Q5,1)="O" : E(E)=0 3020 READ X$ : IF X$="\DE"THEN RETURN : E(E)=E(E)+1 : Q=Q+1 : E$(Q)=X$ : GOTO 3020 3025 E2=E2+1 : T2(E2)=X : READ R2(E2),C2(E2),E2(E2),U2$(E2) : Q5=Q5+1 : STR(D1$,Q5,1)="T" : RETURN 3030 E1=E1+1 : T1(E1)=X : READ R1(E1),C1(E1),E1$(E1) : RETURN 3040 DEFFN'62 : D$(),D2$()=ALL(00) : PRINT HEX(06); : $TRAN(U2$(),HEX(8520))R : IF E1=0THEN 3055 : IF E1$(1)=" "THEN 3050 : PRINT HEX(020402000E);AT(0,40-LEN(E1$(1))/2);E1$(1); : X$=ALL(CC) : IF R1(1)=1THEN PRINT AT(1,0);HEX(0202020F);STR(X$,,80); : PRINT HEX(0F0202000F); 3050 IF E1=1THEN 3055 : FOR X=2TO E1 : PRINT AT(R1(X),C1(X));STR(E1$(X),,LEN(E1$(X))); : IF T1(X)=3THEN PRINT AT(R1(X)+1,C1(X));BOX(0,LEN(E1$(X))) : NEXT X 3055 IF E=0THEN 3065 : Q=0 : FOR X=1TO E : R0=0 : R=ABS(R(X)) : C=C(X) : Q1=C1 : IF R(X)>0THEN Q1=1 : Q2=INT(E(X)/Q1) : Q3=1 : FOR X1=1TO Q1 : IF X1>MOD(E(X),Q1)THEN Q3=0 : Q5=C+C2*(X1-1) 3060 FOR Q0=1TO Q2+Q3 : Q=Q+1 : R0=R0+1 : D$(Q)=BIN(R+Q0-1)&BIN(Q5) : PRINT AT(R+Q0-1,Q5); : IF U(X)=R0THEN PRINT HEX(0202020F0ECC200202000F); : ELSE PRINT HEX(2E20); : PRINT STR(E$(Q),,LEN(E$(Q)));HEX(0F); : NEXT Q0 : NEXT X1 : NEXT X 3065 IF E2=0THEN 3070 : Q2=0 : X$=ALL(85) : FOR X=1TO E2 : R=R2(X) : C=C2(X) : PRINT HEX(020402000E);AT(R,C); : IF T2(X)=2THEN PRINT STR(U2$(X),,E2(X)); : ELSE PRINT STR(X$,,E2(X)) : PRINT HEX(0F); : FOR X1=1TO E2(X) : Q2=Q2+1 : D2$(Q2)=BIN(R)&BIN(C+X1-1) : NEXT X1 : NEXT X 3070 Q2,Q5=1 : Q$=D1$ : IF Q$="O"THEN 3075 : R=R2(1) : C=C2(1) : GOTO 3080 3075 R=VAL(D$(U(1))) : C=VAL(STR(D$(U(1)),2)) 3080 PRINT AT(R,C);HEX(0E050F); : KEYIN Q$,,3200 : PRINT HEX(06);AT(23,0,80); : ON POS(HEX(820D)=Q$)GOTO 3120,3095 : GOSUB 3250 : ON QGOTO 3135,3180,,,3180 3085 X$="Move cursor!" 3090 PRINT AT(23,40);HEX(020404000E07);X$; : GOTO 3080 3095 GOSUB 3250 : IF Q=0THEN 3085 : IF Q<>1OR Q$<>HEX(0D)THEN 3100 : Q0=Q3-Q1+U(Q2) : R0=VAL(D$(Q0)) : C0=VAL(STR(D$(Q0),2)) : U(Q2)=Q1 : GOSUB 3175 3100 GOSUB 3285 : GOTO 3080 3110 U=-1 : RETURN 3115 U=0 : RETURN 3120 U=1 : $TRAN(U2$(),HEX(2085))R : RETURN 3125 U=2 : RETURN 3130 U=3 : RETURN 3135 R0=R : C0=C : Q0=Q3 : ON POS(HEX(2008)=Q$)GOTO 3160,3165 : X=0 : IF Q1=E(Q2)THEN 3150 : FOR X1=1TO E(Q2)-Q1 : IF STR(E$(Q3+X1),,1)<>Q$THEN 3145 : X=Q1+X1 : Q3=Q3+X1 : X1=E(Q2) 3145 NEXT X1 : IF X>0THEN 3170 3150 IF Q1=1THEN 3080 : Q3=Q3-Q1 : FOR X1=1TO Q1-1 : IF STR(E$(Q3+X1),,1)<>Q$THEN 3155 : X=X1 : Q3=Q3+X1 : X1=Q1-1 3155 NEXT X1 : IF X=0THEN 3080 : GOTO 3170 3160 X=Q1+1 : Q3=Q3+1 : IF X<=E(Q2)THEN 3170 : X=1 : Q3=Q3-E(Q2) : GOTO 3170 3165 X=Q1-1 : Q3=Q3-1 : IF X>=1THEN 3170 : X=E(Q2) : Q3=Q3+E(Q2) 3170 U(Q2)=X : R=VAL(D$(Q3)) : C=VAL(STR(D$(Q3),2)) : GOSUB 3175 : GOTO 3080 3175 PRINT AT(R0,C0);HEX(2E20);STR(E$(Q0),,LEN(E$(Q0)));AT(R,C);HEX(0202020F02 0402000ECC200202000F);STR(E$(Q3),,LEN(E$(Q3)));HEX(0F); : RETURN 3180 IF Q$=HEX(08)THEN 3195 : STR(U2$(Q2),Q1,1)=Q$ 3185 $TRAN(STR(U2$(Q2)),HEX(8520))R : IF Q=2THEN PRINT HEX(06020402000E);AT(R2(Q2),C2(Q2));STR(U2$(Q2),,E2(Q2)) ;HEX(0F); : R=R2(Q2) : C=C2(Q2)+Q1 : IF Q1=E2(Q2)THEN GOSUB 3285 : GOTO 3080 3195 IF Q1<2THEN 3080 : Q1=Q1-2 : STR(U2$(Q2),Q1+1,1)=" " : GOTO 3185 3200 PRINT HEX(06);AT(23,0,80); : ON POS(HEX(46454C4DF05042437E7F48494A)=Q$)GOTO 3205,3210,3215,3220,3115,3 115,3125,3130,3095,3095,3225,3225,3225 : X$="Invalid key - ignored!" : GOTO 3090 3205 R=R-1 : IF R<0THEN R=23 : GOTO 3080 3210 R=R+1 : IF R>23THEN R=0 : GOTO 3080 3215 C=C+1 : IF C<=79THEN 3080 : C=0 : GOTO 3210 3220 C=C-1 : IF C>=0THEN 3080 : C=79 : GOTO 3205 3225 GOSUB 3250 : IF Q=0THEN 3090 : IF Q<>1THEN ON POS(HEX(48494A)=Q$)GOTO 3230,3235,3240 : X$="Invalid key for this type of field!" : GOTO 3090 3230 STR(U2$(Q2),Q1)=" " : Q1=Q1-1 : GOTO 3185 3235 IF E2(Q2)-Q1=0THEN 3080 : MAT COPY STR(U2$(Q2),Q1+1,E2(Q2)-Q1)TO STR(U2$(Q2),Q1,E2(Q2)-Q1+1) : Q1=Q1-1 : GOTO 3185 3240 IF E2(Q2)-Q1=0THEN 3080 : MAT COPY -STR(U2$(Q2),Q1,E2(Q2)-Q1)TO -STR(U2$(Q2),Q1+1,E2(Q2)-Q1) : STR(U2$(Q2),Q1,1)=" " : Q1=Q1-1 : GOTO 3185 3250 Q=0 : X$=BIN(R)&BIN(C) : MAT SEARCHD$(),=STR(X$,,2)TO X2$STEP 2 : IF X2$=HEX(0000)THEN MAT SEARCHD2$(),=STR(X$,,2)TO X2$STEP 2 : ELSE Q=1 : IF X2$=HEX(0000)THEN RETURN : Q3=(VAL(X2$,2)+1)/2 : X=0 : IF Q<>1THEN 3275 : FOR X1=1TO E : X=X+E(X1) : IF Q3>=X+1THEN 3260 : Q2=X1 : X1=E 3260 NEXT X1 : Q1=Q3-X+E(Q2) : X2$="O" 3265 Q5,X=0 3270 Q5=Q5+1 : IF STR(D1$,Q5,1)=X2$THEN X=X+1 : IF X=Q2THEN RETURN : GOTO 3270 3275 FOR X1=1TO E2 : X=X+E2(X1) : IF Q3>=X+1THEN 3280 : Q2=X1 : X1=E2 3280 NEXT X1 : Q1=Q3-X+E2(Q2) : Q=T2(Q2) : X2$="T" : GOTO 3265 3285 IF Q$=HEX(7F)THEN Q5=Q5-1 : ELSE Q5=Q5+1 : IF Q5>E+E2THEN Q5=1 : IF Q5<1THEN Q5=E+E2 : X2$=STR(D1$,Q5,1) : Q2=0 : FOR X=1TO Q5 : IF X2$=STR(D1$,X,1)THEN Q2=Q2+1 : NEXT X : IF X2$="T"THEN 3305 : Q=1 : Q1=U(Q2) : Q3=0 : IF Q2=1THEN 3300 : FOR X=1TO Q2-1 : Q3=Q3+E(X) : NEXT X 3300 Q3=Q3+Q1 : R=VAL(D$(Q3)) : C=VAL(STR(D$(Q3),2)) : RETURN 3305 Q=T2(Q2) : Q1=1 : R=R2(Q2) : C=C2(Q2) : RETURN