image of READY prompt

Wang2200.org

Listing of file='FCST120A' on disk='vmedia/701-2663.wvd.zip'

# Sector 112, program filename = 'FCST120A'
0010  REM FCST120A, RELEASE 1-0, (07/31/79), THIS PROGRAM IS A COPYRIGHT PRODU
     CT OF WANG LABORATORIES., UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED,
      SIMULATOR DATA ACCESS
0430 COM A6$(1)38,C0$20,F7$3,I9,K(44),K1,K2,K3,K9,K1$9,K2$9,K2$(2)1,K3$8,K5$30
     ,K9$4,M$8,I0$3
   : COM A,A0,A0$1,A1,A1$1,A2,A3,A3$1,A4,A4$1,A5,B,B(13),B0,B1,B1(2,5),B2,B3,B
     4,B5,C0,C1,C2,C3,C5,D,D0,D1,D2,D3,D4,D5,G,G1,G2
   : COM Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q$1,Q$(2)80,Q6$80,Q7$80
0480 GOTO 4000
3940 DEFFN'93(Q$(2))
   : Q7$="ENTER PRINTER ADDRESS (215, 216, 204)"
   : IF Q$="H"THEN STR(Q7$,LEN(Q7$))=", BLANK = NO PRINTER)"
   : IF Q$(2)=" "THEN Q$(2)="MOUNT PAPER INTO PRINTER"
   : IF I0$=" "THEN Q6$="215"
   : ELSE Q6$=I0$
   : GOSUB '100("215,216,204,   ,005",Q$(2),3,2,Q7$,3)
   : IF Q6$=HEX(1F)THEN GOSUB '31
   : I0$=Q6$
3948 IF I0$=" "THEN RETURN
   : SELECT #15<Q6$>
   : $OPEN 3963,#15
   : ERRORPRINT AT(3,0,80);"Printer ";Q6$;" not attached to system.";HEX(07)
   : GOTO 3940
3951 SELECT @PARTS$
   : PACK(##)STR(@I0$,Q9,1)FROMS2
   : SELECT @PARTS0$
   : L,L0=56
3955 PRINT AT(1,0);Q$(2)
   : IF I0$="204"THEN PRINT AT(3,0,80);HEX(07);"Make sure that terminal printe
     r is on, and selected."
   : GOSUB '254
   : IF Q6$=HEX(1F)THEN GOSUB '31
   : $GIO#15(010102001212400040004000,Q6$)
   : IF STR(Q6$,8,1)=HEX(00)THEN RETURN
   : PRINT AT(3,0,80);"Printer not ready. Turn printer on, and select.";HEX(07
     )
   : GOTO 3955
3963 SELECT @PARTS$
   : PRINT AT(3,0,80);"Printer is being used by station ";HEXOF(STR(@I0$,Q9,1)
     );HEX(072E)
   : SELECT @PARTS0$
   : Q$="H"
   : GOTO 3940
4000 DIM R4$,R,R1,R2,R8,R9,J0,J$(8),R1$8,R9$8,R9$(16)
   : DIM K0$62,I$(4)62,E6$3,K4$8,L8$5
   : GOTO 5240
4040 GOSUB '100("1","2",1,0,"ENTER SOURCE OF DATA (1=KEYBOARD 2=SIMULATOR FILE
     )",1)
   : K2$="NEW"
   : IF Q9=1THEN 4100
   : K2$="SIMULATOR"
   : PRINT AT(5,16,64);"1. DATA SOURCE = ";K2$
   : RETURN
4100 RETURN CLEAR
4110 GOTO 5870
4140 Q6$=F7$
   : GOSUB '100(" "," ",3,0,"ENTER DESIRED DISK ADDRESS",3)
   : GOSUB 4490
   : R9$=Q6$
   : MAT SEARCH"310320330350360370B10B20B30B50B60B70D10D11D12D13D14D15D20D21D2
     2D23D24D25D30D31D32D33D34D35D50D51D52D53D54D55D60D61D62D63D64D65D70D71D72
     D73D74D75",=R9$TO Q7$STEP 3
4190 IF STR(Q7$,,2)<>HEX(0000)THEN 4230
   : PRINT AT(3,0,80);HEX(07);"ADDRESS ";R9$;" IS INVALID"
   : IF R9$=F7$THEN F7$=" "
   : GOTO 4140
4230 F7$=R9$
   : SELECT #2<F7$>
   : PRINT AT(7,16,64);"3. DISK ADDRESS = ";F7$
   : RETURN
4290 PRINT AT(3,0,80);HEX(07);"DISK ERROR";ERR;"HAS OCCURRED"
   : CONVERT E7$TO Q9
   : E7$=" "
   : ON Q9GOTO 5600,6430
   : ON ERRORE6$,Q6$GOTO 4340
4340 PRINT HEX(010A);HEX(07);"AN ERROR ";E6$;" HAS OCCURED ON LINE  ";Q6$
   : GOSUB '254
   : GOSUB '31
4390 GOSUB '100("N,Y","NnYyY ",1,1,"DO YOU WISH TO SAVE DATA (Y OR N)",2)
   : GOSUB 4490
   : IF Q6$="Y"THEN RETURN
   : IF Q6$="N"THEN 4430
4430 RETURN CLEAR
4440 PRINT AT(1,0,)
   : GOTO 6790
4460 RETURN
4490 IF Q6$<>HEX(1F)THEN RETURN
   : PRINT AT(1,0,80);HEX(07);"THE PROGRAM WILL BE TERMINATED"
   : GOSUB '31
4540 Q6$=K3$
   : GOSUB '100(" "," ",8,0,"ENTER FILE NAME",3)
   : K3$=Q6$
   : PRINT AT(6,16,64);"2. FILE NAME = ";K3$
   : RETURN
4610 K0$=HEX(A00553025202500151015302A00153025202520252025202A0015004510550015
     002510250045004500453025302A01953025002A001A00150045004A01E)
   : RETURN
4640 K0$=HEX(5002A009500251025002A0045004A0145004A001)
   : RETURN
4680 DBACKSPACE #2,BEG
   : DATA LOAD DC #2,I$()
   : GOSUB 4610
   : $UNPACK(F=K0$)I$()TO L8$,A,A0,B,B3,A1,A4$,A2,A3,A4,A5,B(),A3$,D4,D3,C1,C3
     ,C2,D2,B5,B4,B2,C5,Q6$,D1,C0,A1$,A0$,B0,B1,K5$
   : UNPACK(-########.#)Q6$TO D,D0,G2,G1,G
   : DATA LOAD DC #2,I$()
   : GOSUB 4640
   : $UNPACK(F=K0$)I$()TO K3,K1$,K1,K2,K9,K9$,I9,C0$,K(),K2$()
4760 GOSUB '219(K3$,2,S2,F7$,0)
   : RETURN
4800 GOSUB 4610
   : L8$="INVTS"
   : PACK(-########.#)Q6$FROMD,D0,G2,G1,G
   : $PACK(F=K0$)I$()FROML8$,A,A0,B,B3,A1,A4$,A2,A3,A4,A5,B(),A3$,D4,D3,C1,C3,
     C2,D2,B5,B4,B2,C5,Q6$,D1,C0,A1$,A0$,B0,B1,K5$
   : DATA SAVE DC #2,I$()
   : GOSUB 4640
   : $PACK(F=K0$)I$()FROMK3,K1$,K1,K2,K9,K9$,I9,C0$,K(),K2$()
   : DATA SAVE DC #2,I$()
4880 GOSUB '218(K3$,2,F7$,0)
   : GOSUB '219(K3$,2,S2,F7$,0)
   : RETURN
4950 DEFFN'217(R9$,R9,R8,R1,Q9,Q6$,R4$,R2)
   : $OPEN #R9
   : LIMITS T#R9,R9$,Q6,Q7,Q8,R
   : Q$="D"
   : IF ABS(R)=1THEN 5050
   : IF R1<=0THEN 4980
   : IF R=2THEN 5050
   : Q9=4
   : Q$="S"
   : IF R=0THEN 4960
   : IF Q7-Q6+1<R1THEN 5050
   : DATA SAVE DC OPEN T#R9,R9$,R9$
   : GOTO 4990
4960 DATA SAVE DC OPEN T#R9,R1,R9$
   : ERRORGOTO 5050
4970 LIMITS T#R9,Q6,Q7,Q8
   : GOTO 4990
4980 IF R<2THEN 5050
4990 GOSUB 5080
   : Q$="M"
   : IF STR(R9$(1),4,4)<>HEX(FD4D5558)AND R1=-2THEN 5050
   : IF STR(R9$(1),4,4)=HEX(FD4D5558)THEN 5000
   : STR(R9$(1),4,4)=HEX(FD4D5558)
   : R9$(2)=Q6$
   : STR(R9$(),33)=" "
5000 Q$="P"
   : IF Q6$<>R9$(2)THEN 5050
   : Q$="A"
   : Q6$=STR(R9$(),33,48)
   : IF STR(Q6$,R8,1)=" "XOR R1<>-1THEN 5050
   : STR(Q6$,R8,1)=" "
   : ON Q9-1GOTO 5010,5020,5040
   : R1$=" 1 2 3"
   : GOTO 5030
5010 R1$=" 1 2"
   : GOTO 5030
5020 R1$=" 1 3"
5030 $TRAN(Q6$,R1$)R
5040 IF Q6$<>" "THEN 5050
   : CONVERT Q9TO STR(R9$(),32+R8,1),(#)
   : GOSUB 5090
   : DATA LOAD DC OPEN T#R9,R9$
   : Q$=" "
5050 IF R2=0THEN $CLOSE#R9
   : RETURN
5060 DEFFN'218(R9$,R9,R4$,R2)
   : $OPEN #R9
   : LIMITS T#R9,Q6,Q7,Q8
   : Q6=Q8-Q6+2
   : R9$()=HEX(A0)
   : DATA SAVE BA T#R9,(Q8)R9$()
   : GOSUB 5080
   : STR(R9$(),2,2)=BIN(Q6,2)
   : GOSUB 5090
   : DATA LOAD DC OPEN T#R9,R9$
   : DSKIP #R9,END
   : GOTO 5050
5070 DEFFN'219(R9$,R9,R8,R4$,R2)
   : $OPEN #R9
   : LIMITS T#R9,R9$,Q6,Q7,Q8
   : GOSUB 5080
   : STR(R9$(),32+R8,1)=" "
   : GOSUB 5090
   : DATA SAVE DC CLOSE#R9
   : GOTO 5050
5080 DATA LOAD BA T#R9,(Q7,Q8)R9$()
   : RETURN
5090 DATA SAVE BA T#R9,(Q7,Q8)R9$()
   : RETURN
5120 DEFFN'91
   : $TRAN(Q$,"0 1E2X3N4D5S6A7B8P")R
   : CONVERT Q$TO J0
   : IF J0<1OR J$(J0)=" "THEN 5180
   : PRINT AT(3,0,80);HEX(07);J$(J0)
5180 J$()="END OF FILE     IMPROPER CALL   RECORD NOT FOUNDDUPLICATE KEY   NO
     MORE SPACE   ACCESS CONFLICT RECORD BUSY     INVALID PASSWORD"
   : RETURN
5240 SELECT CO 005(64),PRINT 005(64)
   : IF S0$<>" "THEN SELECT @PARTS0$
   : IF S2=0THEN S2=#PART
   : K4=4
   : GOSUB 5180
   : IF B1(1,1)=2THEN 6220
   : K2$(1)="Y"
   : K2$(2)="3"
   : D5=.5
   : B1(1,1)=2
   : B1(2,1)=.6
   : B1(1,2)=5
   : B1(2,2)=.5
   : B1(1,3)=10
   : B1(2,3)=.4
   : B1(1,4)=100
   : B1(2,4)=.3
   : B1(1,5)=9E99
   : B1(2,5)=.2
   : PRINT HEX(03);TAB(31);
5551 IF M6$="D"THEN PRINT "DEMAND SIMULATOR"
   : ELSE PRINT "REORDER SIMULATOR"
   : GOSUB 4040
   : GOSUB 4540
   : GOSUB 4140
5600 GOSUB '100("0","3",1,0,"ENTER ITEM NUMBER TO CORRECT (0=END)",1)
   : GOSUB 4490
   : IF Q9=0THEN 5670
   : ON Q9GOSUB 4040,4540,4140
   : GOTO 5600
5670 PRINT HEX(010A);"MOUNT DISK CONTAINING FILE ";K3$;" IN DISK DRIVE ";F7$
   : GOSUB '254
   : E7$="1"
   : LIMITS T#2,K3$,H6,H7,B8,R
   : ERRORGOTO 4290
5710 E7$=" "
   : IF R=2THEN 5780
   : IF R=0THEN 5765
5730 PRINT AT(3,0,80);HEX(07);"FILE ";K3$;" IS NOT A SIMULATOR FILE"
   : K3$=" "
   : GOSUB 4540
   : GOTO 5600
5765 PRINT AT(3,0,80);HEX(07);"FILE ";K3$;" IS NOT ON DISK ";F7$
   : GOTO 5600
5780 DATA LOAD BA T#2,(H6,H7)R9$()
   : IF B8<>K4OR STR(R9$(1),4,5)<>"INVTS"THEN 5730
   : GOSUB '217(K3$,2,S2,0,1," ",F7$,0)
   : GOSUB '91
   : IF J0<>0THEN 5600
   : GOSUB 4680
   : GOTO 6840
5870 A,A1=.1
   : A2,A3=.2
   : A0,A4=1
   : B=6
   : B3,A5=.5
   : A4$="F"
   : MAT B=CON
   : A3$="S"
   : C1,B5,B4=1
   : D4=8
   : D3,C2=4
   : C3=28
   : B2=.1
   : C5=.95
   : D5=.5
   : D=100
   : D0,G2=20
   : B1,C0,D1,G,G1,I9=0
   : A0$,A1$=HEX(00)
   : B0=150
   : K1$="01/01/78"
   : IF P$="D"THEN 6130
   : K1$="01/1/1/78"
6130 MAT K=ZER
   : K3,K9=P
   : K9$="0179"
   : C0$="UNITS"
   : GOTO 6840
6220 $UNPACK(F=HEX(610461046104510451045303500260046004A001A001))A6$()TO D,D0,
     G2,G1,G,D1,C0,B0,B1,A1$,A0$
   : PRINT AT(1,0,)
   : K4$=K3$
   : GOSUB 4390
   : PRINT AT(5,16,64);"1. SAVE DATA - YES"
   : GOSUB 4540
   : GOSUB 4140
6430 GOSUB '100("0","3",1,0,"ENTER ITEM NUMBER TO CORRECT (0=END)",1)
   : GOSUB 4490
   : IF Q9=0THEN 6490
   : ON Q9GOSUB 4390,4540,4140
   : GOTO 6430
6490 PRINT HEX(010A);"MOUNT DISK ";
   : IF K2$="SIMULATOR"AND K3$=K4$THEN PRINT "CONTAINING";
   : ELSE PRINT "TO CONTAIN";
   : PRINT " FILE ";K3$;" IN DISK DRIVE ";F7$
   : GOSUB '254
   : E7$="2"
   : LIMITS T#2,K3$,H6,H7,B8,R
   : ERRORGOTO 4290
6550 E7$=" "
   : R1=K4
   : IF R=0OR R=-2THEN 6730
   : IF R=2THEN 6650
6600 PRINT AT(3,0,80);HEX(07);"FILE ";K3$;" IS NOT A SIMULATOR FILE"
6610 K3$=" "
   : GOSUB 4540
   : GOTO 6430
6650 IF K2$="SIMULATOR"AND K3$=K4$THEN 6690
   : PRINT AT(3,0,80);HEX(07);"FILE ";K3$;" ALREADY EXISTS ON DISK"
   : GOTO 6610
6690 DATA LOAD BA T#2,(H6,H7)R9$()
   : IF B8<>K4OR STR(R9$(1),4,5)<>"INVTS"THEN 6600
   : R1=0
6730 GOSUB '217(K3$,2,S2,R1,4," ",F7$,0)
   : GOSUB '91
   : IF J0<>0THEN 6430
   : GOSUB 4800
   : K2$="SIMULATOR"
6790 GOSUB '100("N,Y","NnYyY ",1,1,"DO YOU WISH TO MODIFY THE DATA AND RE-RUN
      (Y OR N)",2)
   : GOSUB 4490
   : IF Q6$="N"THEN GOSUB '31
6840 IF M6$="D"THEN Q6$="DEMAND"
   : ELSE Q6$="REORDER"
   : PRINT AT(1,0,);AT(11,17);"* *  LOADING ";Q6$;" SIMULATOR INPUT ROUTINE  *
      *"
   : Q6$=M5$
   : STR(Q6$,7,1)="2"
   : LOAD TQ6$4000,7999BEG 4000
8050 DEFFN'100(Q$(1),Q$(2),Q3,Q4,Q7$,Q5)
   : Q6=Q9
   : SELECT PRINT 005(80)
   : IF Q7$<>" "THEN PRINT HEX(010A);Q7$;TAB(80)
8060 KEYIN Q7$,8060,8060
8070 Q7$=" "
   : Q7=Q3+Q4+2+17*(1-ABS(SGN(Q3+Q4)))
   : IF Q5>1THEN Q7=Q3+64*(1-ABS(SGN(Q3)))
   : PRINT AT(2,0,80);
   : IF Q5>-1AND Q5<3THEN 8080
   : STR(Q6$,Q7+1)=" "
   : LINPUT -STR(Q6$,,Q7)
   : GOTO 8100
8080 Q6$=ALL(8B)
   : IF Q5>1THEN 8090
   : STR(Q6$,Q3+1,1)="."
   : STR(Q6$,Q7)=" "
   : Q7$="Default = "&Q6$&"-"
   : $TRAN(Q7$,HEX(238B))R
   : PRINT AT(2,Q7+3);
   : IF Q5=0THEN PRINTUSING Q7$,Q9;
   : PRINT HEX(0D)
   : Q7$=Q6$
8090 LINPUT ?STR(Q6$,,Q7)
   : IF Q5=0AND Q6$=Q7$THEN Q7=0
   : IF Q5=1AND Q6$=Q7$THEN Q6$="0"
8100 $TRAN(Q6$,HEX(208B))R
   : IF Q7$=HEX(0F)THEN 8070
   : IF Q6$=HEX(1F)THEN 8150
   : IF Q5>1THEN 8160
   : $TRAN(STR(Q6$,POS(Q6$=".")+1)," .")R
   : $TRAN(Q7$,HEX(238B))R
   : MAT COPY -Q7$<1,16>TO -Q7$<2,17>
   : STR(Q7$,,1)="-"
   : IF Q7=0THEN CONVERT Q9TO Q6$,(Q7$)
   : CONVERT Q$(1)TO Q7
   : ERRORQ7=0
8110 CONVERT Q$(2)TO Q8
   : ERRORQ8=0
8120 CONVERT Q6$TO Q9
   : ERRORGOTO 8180
8130 IF Q3+Q4=0THEN 8140
   : IF ABS(Q9)>=10^ABS(Q3)OR INT(Q9*10^Q4)<>Q9*10^Q4THEN 8180
8140 IF Q7=0AND Q8=0THEN 8150
   : IF Q9<Q7OR Q9>Q8THEN 8180
8150 PRINT AT(1,0,240)
   : RETURN
8160 IF Q$()=" "THEN 8150
   : IF Q4=0AND Q$(1)<=Q6$AND Q$(2)>=Q6$THEN 8150
   : Q7$=HEX(07)
   : IF Q4=0THEN 8170
   : IF Q4=1THEN $TRAN(STR(Q6$,,Q3),Q$(2))R
   : Q7=LEN(Q$(1))
   : MAT SEARCHSTR(Q$(1),,Q7),=STR(Q6$,,Q3)TO STR(Q7$,,2)STEP Q3+1
   : Q9=INT((VAL(Q7$,2)+Q3)/(Q3+1))
   : IF Q9>0THEN 8150
   : Q7$=" - "&STR(Q$(1),,Q7)&HEX(07)
8170 PRINT AT(3,0,80);"Re-enter.";Q7$
   : GOTO 8070
8180 Q7$=HEX(07)
   : IF Q$()=" "THEN 8170
   : PRINT AT(3,0,80);Q7$;"Re-enter, ";Q7;"<= X <=";Q8
   : Q9=Q6
   : GOTO 8070
8400 DEFFN'15
   : Q7$=HEX(0F)
   : RETURN
8415 DEFFN'4
   : IF Q5>1THEN Q6$="END"
   : ELSE Q6$="0"
   : RETURN
8685 DEFFN'254
   : KEYIN Q6$,8685,8685
   : SELECT PRINT 005
   : PRINT AT(2,0);TAB(80);AT(2,0);
   : Q6$=" "
   : INPUT "KEY RETURN(EXEC) TO RESUME",Q6$
   : PRINT AT(1,0);TAB(80),TAB(80),TAB(80)
   : RETURN
9035 DEFFN'126
9040 DEFFN'31
   : PACK(####)Q6$FROMS2
   : $TRAN(@I0$,Q6$)R
   : COM CLEAR A6$()
   : LOAD TM$
9998 DEFFN'29"Q$=";HEX(22);"FCST120A";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D
     )