image of READY prompt

Wang2200.org

Listing of file='WPINSTLL' on disk='vmedia/731-0067F-disk1.wvd.zip'

# Sector 50, 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
     89ABCDEF"=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
     89ABCDEF"=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