Listing of file='FCST124A' on disk='vmedia/701-2663.wvd.zip'
# Sector 156, program filename = 'FCST124A' 0010 REM FCST124A, RELEASE 1-0, (05/24/79), THIS PROGRAM IS A COPYRIGHT PRODUC T OF WANG LABORATORIES., UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED, SIMULATOR DATA ENTRY II 4000 DIM K$(1)2,K4$9,K1$(44)5,B7$(1)8,F8$1,B8$14 : GOTO 5380 4020 IF Q6$<>HEX(1F)THEN RETURN : PRINT AT(1,0,80);HEX(07);"THE PROGRAM WILL BE TERMINATED" : GOSUB '31 4045 DEFFN'101(Q$(1),Q$(2),Q3,Q4,Q6$,Q9) : PRINT AT(1,0,80);"ENTER ";Q6$ : GOSUB '100(Q$(1),Q$(2),Q3,Q4," ",0) : GOSUB 4020 : RETURN 4080 CONVERT K8TO Q$(2),(##) : GOSUB '100("0",Q$(2),2,0,"ENTER ITEM NUMBER IN ERROR (0=END)",1) : GOSUB 4020 : RETURN 4110 GOSUB '101("0","999999",6,1,"DESEASONALIZED DEMAND",D) : D=Q9 4120 PRINT AT(5,0,64);"1. DESEASONALIZED DEMAND =";D : RETURN 4140 GOSUB '101("0","999999",6,1,"SAFETY FACTOR",D0) : D0=Q9 4150 PRINT AT(6,0,64);"2. SAFETY FACTOR =";D0 : RETURN 4170 GOSUB '101("0","999999.9",6,1,"MEAN ABSOLUTE DEVIATION",G2) : G2=Q9 4180 PRINT AT(7,0,64);"3. MEAN ABSOLUTE DEVIATION =";G2 : RETURN 4200 GOSUB '101("-999999.9","999999.9",6,1,"MEAN SIGNED DEVIATION",G1) : G1=Q9 4210 PRINT AT(8,0,64);"4. MEAN SIGNED DEVIATION =";G1 : RETURN 4230 GOSUB '101("-999999.9","999999.9",6,1,"VARIABLE TREND",G) : G=Q9 4240 PRINT AT(9,0,64);"5. VARIABLE TREND =";G : RETURN 4260 GOSUB '101("-99.9","99.9",2,1,"TREND PERCENT",D1*100) : D1=.01*Q9 4270 PRINT AT(10,0,64);"6. TREND PERCENT =";100*D1;"%" : RETURN 4290 CONVERT PTO Q$(2),(##) : GOSUB '101("-2",Q$(2),2,0,"LAST PERIOD PROCESSED",C0) : C0=Q9 4305 PRINT AT(11,0,64);"7. LAST PERIOD PROCESSED =";C0 : RETURN 4325 DEFFN'36(F8$) : B7$(1)=HEX(8040201008040201) : INIT(F8$)STR(Q6$,1,8) : AND (B7$(1),Q6$) : Q6$=HEX(3180314031203110310831043102310130002020) : $TRAN(B7$(1),Q6$)R : RETURN 4365 DEFFN'37(B8$,F8$) : PRINT AT(1,0,80);"ENTER INITIAL ";B8$;" HISTORY" : GOSUB '36(F8$) : Q6$=B7$(1) : GOSUB '100(" ","2",8,0," ",3) : GOSUB 4020 : B7$(1)=Q6$ : INIT(FE)Q6$ : AND (Q6$,B7$(1)) : IF STR(Q6$,1,8)="00000000"THEN 4425 : PRINT AT(3,0,80);HEX(07);"RE-ENTER" : GOTO 4365 4425 MAT REDIM B7$(8)1 : Q9=1 : O6=0 : FOR K=8TO 1STEP -1 : IF B7$(K)="1"THEN O6=O6+Q9 : Q9=Q9*2 : NEXT K : BIN(F8$)=O6 : MAT REDIM B7$(1)8 : RETURN 4485 GOSUB '37("DEMAND FILTER",A1$) : A1$=F8$ 4495 GOSUB '36(A1$) : PRINT AT(12,0,0);"8. DEMAND FILTER HISTORY = ";B7$(1) : RETURN 4520 GOSUB '37("VARIABLE TREND",A0$) : A0$=F8$ 4530 GOSUB '36(A0$) : PRINT AT(13,0,0);"9. VARIABLE TREND HISTORY = ";B7$(1) : RETURN 4555 GOSUB '101("0","999999",6,0,"ON HAND",B0) : B0=Q9 4565 PRINT AT(14,0,64);"10. ON HAND =";B0 : RETURN 4585 GOSUB '101("0","999999",6,0,"ON ORDER",B1) : B1=Q9 4595 PRINT AT(15,0,0);"11. ON ORDER =";B1;TAB(63);HEX(0D) : RETURN 4615 Q6$=K5$ : GOSUB '100(" "," ",30,0,"ENTER TITLE",3) : K5$=Q6$ : GOSUB 4020 4635 PRINT AT(5,0,64);"1. SIMULATION TITLE = ";K5$ : RETURN 4655 IF M6$="D"THEN Q$(1)="0" : ELSE Q$(1)="1" : GOSUB '101(Q$(1),"44",2,0,"NUMBER OF PERIODS OF DATA",K3) : K3=Q9 4670 PRINT AT(6,0,64) : IF M6$="R"THEN K3=K3+1-SGN(K3) : PRINT "2. NUMBER OF PERIODS OF DATA =";K3 : RETURN 4700 PRINT AT(1,0,80);"ENTER START DATE OF SIMULATION (PP/"; : IF P$="D"THEN Q6$="DD/YY)" : ELSE Q6$="W/D/YY)" : PRINT Q6$ : IF P$="D"THEN L9=7 : ELSE L9=8 : Q6$=K1$ : GOSUB '100(" "," ",L9+1,0," ",3) : K1$=Q6$ : GOSUB 4020 : IF NUM(Q6$)=0THEN 4930 : IF POS(Q6$="/")-1<>NUM(Q6$)THEN 4930 : CONVERT STR(Q6$,1,NUM(Q6$))TO L6 : IF L6<1THEN 4930 : IF P<L6THEN 4930 4770 STR(Q6$,1)=STR(Q6$,POS(Q6$="/")+1) : IF NUM(Q6$)=0THEN 4930 : IF POS(Q6$="/")-1<>NUM(Q6$)THEN 4930 : CONVERT STR(Q6$,1,NUM(Q6$))TO L7 : IF P$="D"THEN 4835 : STR(Q6$,1)=STR(Q6$,POS(Q6$="/")+1) : IF NUM(Q6$)=0THEN 4930 : IF POS(Q6$="/")-1<>NUM(Q6$)THEN 4930 : CONVERT STR(Q6$,1,NUM(Q6$))TO L8 : IF L8<1THEN 4930 : IF 7<L8THEN 4930 : L7=(L7-1)*7+L8 4835 IF L7<1THEN 4930 : IF P(L6)<L7THEN 4930 : STR(Q6$,1)=STR(Q6$,POS(Q6$="/")+1) : IF NUM(Q6$)<>80THEN 4930 : CONVERT Q6$TO L8 : IF (99-L8)*L8<0THEN 4930 : K1$=" / ///" : CONVERT L6TO STR(K1$,1,2),(##) : IF P$="D"THEN 4905 : CONVERT INT((L7+6)/7)TO STR(K1$,4,1),(#) : CONVERT L7-(INT((L7+6)/7)-1)*7TO STR(K1$,6,1),(#) : GOTO 4910 4905 CONVERT L7TO STR(K1$,4,2),(##) 4910 CONVERT L8TO STR(K1$,L9),(##) 4915 PRINT AT(7,0,64);"3. STARTING DATE OF SIMULATION = ";K1$ : RETURN 4930 PRINT AT(3,0,80);HEX(07);"IMPROPER DATE FORMAT" : GOTO 4700 4950 IF K4$="YES"THEN K4$="NO" : ELSE K4$="YES" 4955 PRINT AT(8,0,64);"4. MACHINE GENERATION OF SALES DATA = ";K4$ : RETURN 4975 CONVERT C3TO Q$(2),(###) : GOSUB '101("1",Q$(2),3,0,"MEAN LEAD TIME",K1) : K1=Q9 4990 PRINT AT(9,0,64);"5. MEAN LEAD TIME =";K1;"DAYS" : RETURN 5010 CONVERT K1TO Q$(2),(###) : GOSUB '101("0",Q$(2),2,1,"LEAD TIME DEVIATION",K2) : K2=Q9 5025 PRINT AT(10,0,64);"6. LEAD TIME DEVIATION =";K2;"DAYS" : RETURN 5045 IF K2$(1)="Y"THEN K2$(1)="N" : ELSE K2$(1)="Y" 5050 PRINT AT(11,0,64);"7. OUTPUT TYPE = "; : IF K2$(1)="N"THEN PRINT "HARDCOPY" : ELSE PRINT "CRT" : RETURN 5075 GOSUB '101("0","39",2,0,"NUMBER OF PROJECTION PERIODS",K9) : K9=Q9 5085 PRINT AT(9,0,64);"5. NUMBER OF PROJECTION PERIODS =";K9 : RETURN 5105 CONVERT K9$TO Q9 : Q6$=K9$ : GOSUB '100("0100","1399",4,0,"ENTER START OF PROJECTION (PPYY)",-1) : GOSUB 4020 : CONVERT Q9TO K9$,(####) : CONVERT STR(K9$,1,2)TO Q9 : IF INT((Q9-1)/P)=0THEN 5150 : PRINT AT(3,0,64);HEX(07);"IMPROPER DATE FORMAT" : GOTO 5105 5150 PRINT AT(10,0,64);"6. STARTING PERIOD OF PROJECTION (PPYY) = ";K9$ : RETURN 5170 GOSUB '101("0","9999999",7,0,"TARGET SALES (0=NO TARGET)",I9) : I9=Q9 5180 PRINT AT(11,0,64);"7. TARGET SALES = ";I9 : RETURN 5200 Q6$=C0$ : GOSUB '100(" "," ",20,0,"ENTER SCALE",3) : GOSUB 4020 : C0$=Q6$ 5220 PRINT AT(12,0,64);"8. SCALE = ";C0$ : RETURN 5240 Q6$=K2$(2) : GOSUB '100("0","3",1,0,"ENTER GRAPH TYPE (0=NONE 1=SEASONAL 2=DESEASONALI ZED 3=BOTH 1 + 2)",3) : GOSUB 4020 : K2$(2)=Q6$ 5260 PRINT AT(13,0,64);"9. GRAPH TYPE = "; : IF K2$(2)="0"THEN PRINT "NONE" : IF K2$(2)="1"THEN PRINT "SEASONAL" : IF K2$(2)="2"THEN PRINT "DESEASONALIZED" : IF K2$(2)="3"THEN PRINT "BOTH SEASONAL AND DESEASONALIZED" : RETURN 5300 PRINT AT(1,0,80);"ENTER SALES DATA FOR ";K1$(K) : Q9=K(K) : GOSUB '100("0","999999",6,0," ",0) : GOSUB 4020 : K(K)=Q9 5325 K0=INT((K-1)/11) : PRINT AT(K-K0*11+4,K0*16,16);K1$(K);K(K); : RETURN 5380 SELECT CO 005(64),PRINT 005(64) : IF S0$<>" "THEN SELECT @PARTS0$ : PRINT AT(1,0,);HEX(0A0A0A);TAB(17);"* * * INITIAL VALUES * * *" : K8=11 : IF M6$="R"THEN 5420 : K8=9 5420 FOR K=1TO K8 : ON KGOSUB 4120,4150,4180,4210,4240,4270,4305,4495,4530,4565,4595 : NEXT K 5435 GOSUB 4080 : IF Q9=0THEN 5465 : ON Q9GOSUB 4110,4140,4170,4200,4230,4260,4290,4485,4520,4555,4585 : GOTO 5435 5465 PRINT AT(1,0,);HEX(0A0A0A);TAB(12);"* * * SIMULATION PARAMETERS * * * " : K4$="NO" : IF K2$="SIMULATOR"THEN 5530 : IF A6$()<>" "THEN 5530 : K4$="YES" : K1=-INT(-C3*.88) : K8=0 5505 K8=K8+1 : IF K1>=B1(1,K8)THEN 5505 : K2=INT(K1*B1(2,K8)+.5) 5530 IF M6$="D"THEN 5585 : K8=7 : FOR K=1TO K8 : ON KGOSUB 4635,4670,4915,4955,4990,5025,5050 : NEXT K 5555 GOSUB 4080 : IF Q9=0THEN 5755 : ON Q9GOSUB 4615,4655,4700,4950,4975,5010,5045 : GOTO 5555 5585 K8=9 : FOR K=1TO K8 : ON KGOSUB 4635,4670,4915,4955,5085,5150,5180,5220,5260 : NEXT K 5605 GOSUB 4080 : IF Q9=0THEN 5635 : ON Q9GOSUB 4615,4655,4700,4950,5075,5105,5170,5200,5240 : GOTO 5605 5635 IF K9=0THEN 5755 : IF K3=0THEN 6065 : CONVERT STR(K1$,1,2)TO K : L7=7 : IF P$="D"THEN 5670 : L7=8 5670 CONVERT STR(K1$,L7,2)TO L6 : L8=L6*P+K : CONVERT STR(K9$,1,2)TO K : CONVERT STR(K9$,3,2)TO L6 : L9=L6*P+K-L8 : IF L9>=0THEN 5710 : PRINT AT(3,0,80);HEX(07);"PROJECTION START DATE MAY NOT PRECEDE DATA STAR T DATE" : GOTO 5605 5710 IF L9<=K3THEN 5725 : PRINT AT(3,0,80);HEX(07);"PROJECTION START DATE MAY NOT FOLLOW LAST DATA PERIOD" : GOTO 5605 5725 IF L9+K9<=60THEN 5755 : PRINT AT(3,0,80);HEX(07);"SALES HISTORY PLUS PROJECTION PERIOD TOO GREAT FOR GRAPHING" : GOTO 5605 5755 CONVERT STR(K1$,LEN(K1$)-1,2)TO O7 : CONVERT O7TO K$(1),(##) : CONVERT STR(K1$,1,2)TO O6 : O6=O6-1 : FOR K=1TO 44 : O6=O6+1 : IF O6<=PTHEN 5805 : O6=1 : O7=O7+1 : CONVERT O7TO K$(1),(##) 5805 STR(K1$(K),1)=P$(O6) : STR(K1$(K),4)=K$(1) : NEXT K : IF K4$="NO"THEN 5925 : A6=0 : CONVERT STR(K1$,1,2)TO O6 : FOR K=1TO K3 : O7=.5-RND(07) : O7=1.25*O7*(.14822401/(.29670819-O7*O7)+.0014532591/(.2505217-07*07)+2.04 89) : K(K)=INT((D+O7*D0)*B(O6)+.5) : IF K(K)<0THEN K(K)=0 : O6=O6+1 : IF O6<=PTHEN 5880 : O6=1 5880 IF K(K)<1E6THEN 5895 : A6=1 : K=K3 5895 NEXT K : IF A6=0THEN 5935 : PRINT AT(3,0,80);HEX(07);"EXCESSIVE SALES WERE GENERATED - REDUCE DEMAND OR SAFETY FACTOR" : GOSUB '254 : GOTO 5380 5925 IF A6$()<>" "THEN 5935 : IF K2$<>"SIMULATOR"THEN 5970 5935 PRINT AT(1,0,);HEX(0A0A0A);TAB(18);"* * * SALES DATA * * *" : FOR K=1TO K3 : GOSUB 5325 : PRINT HEX(01) : NEXT K : GOTO 5995 5970 PRINT AT(1,0,);HEX(0A0A0A);TAB(18);"* * * SALES DATA * * *" 5975 FOR K=1TO K3 : GOSUB 5300 : NEXT K 5995 Q6$="0" : GOSUB '100(" "," ",5,0,"ENTER NAME OF PERIOD TO CORRECT (1=ALL 0=END)", 3) : GOSUB 4020 : IF Q6$="0"THEN 6065 : IF Q6$="1"THEN 5975 : MAT SEARCHK1$()<1,K3*5>,=Q6$TO K$()STEP 5 : IF K$(1)<>HEX(0000)THEN 6040 : PRINT AT(3,0,80);HEX(07);"RE-ENTER" : GOTO 5995 6040 K=(VAL(STR(K$(1),2,1))+4)/5 : GOSUB 5300 : GOTO 5995 6065 $PACK(F=HEX(610461046104510451045303500260046004A001A001))A6$()FROMD,D0,G 2,G1,G,D1,C0,B0,B1,A1$,A0$ : PRINT AT(1,0,) : IF M6$="R"AND K2$(1)="Y"THEN 6105 : GOSUB '93(" ") : IF I0$=" "THEN LOAD TM5$ 6105 IF M6$="R"THEN Q6$="FCST126A" : ELSE Q6$="FCST128A" : LOAD TQ6$3940,8999BEG 4000 9998 DEFFN'29"Q$=";HEX(22);"FCST124A";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D )