Listing of file='FCST122A' on disk='vmedia/701-2663.wvd.zip'
# Sector 392, program filename = 'FCST122A' 0010 REM FCST122A, RELEASE 1-0, (05/07/79), THIS PROGRAM IS A COPYRIGHT PRODUC T OF WANG LABORATORIES., UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED, SIMULATOR DATA ENTRY PART I 4000 %##. 4010 %.## 4020 GOTO 5950 4050 IF Q6$<>HEX(1F)THEN RETURN : PRINT AT(1,0,80);"THE PROGRAM WILL BE TERMINATED" : GOSUB '31 4100 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 4050 : RETURN 4170 GOSUB '100("0",B6$,2,0,"ENTER ITEM NUMBER TO CORRECT (0=END)",1) : GOSUB 4050 : K=Q9 : RETURN 4230 GOSUB '101("0",".99",0,2,"MIN. DESEAS. DEMAND SMOOTHING RATE",A) : A=Q9 4250 PRINT AT(5,0,80);"1. MIN. DEMAND SMOOTHING RATE = "; : PRINTUSING 4010,A : RETURN 4300 GOSUB '101("0","1",1,2,"DEMAND SMOOTHING RATE DAMPING FACTOR",A0) : A0=Q9 4320 PRINT AT(6,0,80);"2. DEMAND SMOOTHING RATE DAMPING FACTOR = "; : PRINTUSING "#.##",A0 : RETURN 4370 GOSUB '101("0","9",1,0,"DEMAND FILTER LIMIT",B) : B=Q9 4390 PRINT AT(7,0,80);"3. DEMAND FILTER LIMIT =";B : RETURN 4430 GOSUB '101("0",".9",0,1,"ENTER TRACKING SIGNAL LIMIT",B3) : B3=Q9 4450 PRINT AT(8,0,64);"4. TRACKING SIGNAL LIMIT =";B3 : RETURN 4490 Q6$=A4$ : GOSUB '100("N,C,F","NnCcFf",1,1,"ENTER TREND TYPE (N=NONE C=CALC. F=USE I N FCST.)",3) : GOSUB 4050 : A4$=Q6$ 4530 PRINT AT(9,0,64);"5. TREND TYPE = ";A4$ : RETURN 4570 GOSUB '101("0",".99",0,2,"TREND PERCENT SMOOTHING RATE",A1) : A1=Q9 4590 PRINT AT(10,0,64);"6. TREND PERCENT SMOOTHING RATE = "; : PRINTUSING 4010,A1 : RETURN 4640 GOSUB '101("0",".99",0,2,"SAFETY FACTOR SMOOTHING RATE",A2) : A2=Q9 4660 PRINT AT(11,0,64);"7. SAFETY FACTOR SMOOTHING RATE = "; : PRINTUSING 4010,A2 : RETURN 4710 GOSUB '101("0","99",2,0,"MIN. % OF DEMAND FOR SAFETY FACTOR",A3*100) : A3=Q9*.01 4730 PRINT AT(12,0,64);"8. MINIMUM % OF DEMAND FOR SAFETY FACTOR =";A3*100;"%" : RETURN 4770 GOSUB '101("0","100",3,0,"MAX. % OF DEMAND FOR SAFETY FACTOR",A4*100) : A4=Q9*.01 4790 PRINT AT(13,0,64);"9. MAXIMUM % OF DEMAND FOR SAFETY FACTOR =";A4*100;"%" : RETURN 4830 GOSUB '101("0","100",3,0,"MAX. % OF DEMAND FOR DYING ITEM SAF FACT",A5*10 0) : A5=Q9*.01 4850 PRINT AT(14,0,64);"10. MAX. % OF DEMAND FOR DYING ITEM SAFETY FACTOR =";A 5*100;"%" : RETURN 4890 PRINT HEX(010A);"ENTER BASE INDEX FOR ";P$(K) : Q9=B(K) : GOSUB '100("0","9.99",1,2," ",0) : GOSUB 4050 : B(K)=Q9 4940 K0=INT((K-1)/4) : PRINT AT(K-K0*4+6,K0*16,0); : PRINTUSING "### #.##",P$(K),B(K) : RETURN 5000 Q6$=A3$ : GOSUB '100("S,F,W,M","SsFfWwMm",1,1,"ENTER REORDER STRATEGY ('S','F','W', 'M')",3) : GOSUB 4050 : A3$=Q6$ : RETURN 5070 PRINT AT(1,0,);HEX(0A0A0A);TAB(7);"* * * REORDER RECOMMENDATION PARAME TERS * * *" : PRINT " 1. REORDER STRATEGY = ";A3$ : RETURN 5120 GOSUB '101("0","999999",6,0,"MINIMUM ALLOWABLE INVENTORY LEVEL",D3) : D3=Q9 5140 PRINT AT(6,0,64);" 2. MINIMUM LEVEL =";D3 : RETURN 5180 GOSUB '101("0","999999",6,0,"MAXIMUM ALLOWABLE INVENTORY LEVEL",D4) : D4=Q9 5200 PRINT AT(7,0,64);" 3. MAXIMUM LEVEL =";D4 : RETURN 5240 GOSUB '101("0","99",2,0,"MINIMUM NUMBER OF WEEKS SUPPLY",D3) : D3=Q9 5260 PRINT AT(10,0,64);" 6. WEEKS OF SUPPLY =";D3 : RETURN 5300 GOSUB '101("0","9",1,0,"REVIEW TIME IN WEEKS",C1) : C1=Q9 5320 PRINT AT(6,0,64);" 2. REVIEW TIME =";C1 : RETURN 5360 GOSUB '101("0","730",3,0,"LEAD TIME IN DAYS",C3) : C3=Q9 5380 PRINT AT(7,0,64);" 3. LEAD TIME =";C3 : RETURN 5420 GOSUB '101("1","99.9",2,1,"SERVICE PERIOD IN WEEKS",C2) : C2=Q9 5440 PRINT AT(8,0,64);" 4. SERVICE PERIOD =";C2 : RETURN 5480 GOSUB '101("0","999999",6,0,"COUNTER STOCK (MINIMUM SAFETY STOCK)",D2) : D2=Q9 5500 PRINT AT(9,0,64);" 5. COUNTER STOCK =";D2 : RETURN 5540 GOSUB '101("0","999999",6,0,"ITEM MINIMUM",B5) : B5=Q9 5560 PRINT AT(K+4,0,64) : PRINTUSING 4000,K; : PRINT "ITEM MINIMUM =";B5 : RETURN 5620 GOSUB '101("1","999999",6,0,"PACK SIZE",B4) : B4=Q9 5640 PRINT AT(K+4,0,64) : PRINTUSING 4000,K; : PRINT "PACK SIZE =";B4 : RETURN 5700 GOSUB '101("1","999999",6,0,"FIXED ORDER QUANTITY",B4) : B4=Q9 5720 PRINT AT(10,0,64);" 6. FIXED ORDER QUANTITY =";B4 : RETURN 5760 GOSUB '101("0",".99",0,2,"TREND LIMIT",B2) : B2=Q9 5780 PRINT AT(K+4,0,80) : PRINTUSING 4000,K; : PRINT "TREND LIMIT =";B2 : RETURN 5840 GOSUB '101("0",".99",0,2,"LEVEL OF SERVICE",C5) : C5=Q9 5860 PRINT AT(K+4,0,64) : PRINTUSING 4000,K; : PRINT "LEVEL OF SERVICE =";C5 : RETURN 5950 SELECT CO 005(64),PRINT 005(80) : IF S0$<>" "THEN SELECT @PARTS0$ : PRINT AT(1,0,);HEX(0A0A0A);" * * * DESEASONALIZED DEMAND ADJUSTMENT PARAMETERS * * *" : FOR K=1TO 10 : ON KGOSUB 4250,4320,4390,4450,4530,4590,4660,4730,4790,4850 : NEXT K 6050 B6$="10" : GOSUB 4170 : IF Q9=0THEN 6110 : ON Q9GOSUB 4230,4300,4370,4430,4490,4570,4640,4710,4770,4830 : GOTO 6050 6110 IF A4>=A3THEN 6160 : PRINT AT(3,0,80);HEX(07);"MAXIMUM % OF DEMAND MUST BE >= MINIMUM % FOR SA FETY FACTOR" : GOTO 6050 6160 PRINT AT(1,0,);HEX(0A0A0A0A);TAB(6);"* * * SEASONAL PROFILE * * *" : C5$="E" : FOR K=1TO P : GOSUB 4940 : NEXT K 6230 Q6$="0" : GOSUB '100(" "," ",3,0,"ENTER NAME OF PERIOD TO CHANGE (1=ALL 0=END)",3 ) : GOSUB 4050 : IF Q6$="0"THEN 6430 : IF Q6$="1"THEN 6380 : MAT SEARCHP$()<1,P*3>,=Q6$TO Q7$STEP 3 : IF STR(Q7$,,2)<>HEX(0000)THEN 6330 : PRINT HEX(07);AT(3,0,80);"RE-ENTER" : GOTO 6230 6330 K=(VAL(STR(Q7$,2,1))+2)/3 : C5$="B" : GOSUB 4890 : GOTO 6230 6380 C5$="B" : FOR K=1TO P : GOSUB 4890 : NEXT K : GOTO 6230 6430 IF C5$="E"THEN 6790 : PRINT AT(5,8);"* * * NORMALIZING BASE INDICES * * *" : D7=0 : FOR K=1TO P : D7=D7+B(K) : NEXT K : IF D7>0THEN 6540 : PRINT AT(3,0,80);HEX(07);"DATA MAY NOT BE ALL ZERO" : PRINT HEX(0A);TAB(64) : GOTO 6230 6540 IF ABS(D7-P)<=.005*PTHEN 6580 : D7=D7-(SGN(D7)-1)*P : MAT B=(P/D7)*B 6580 D7=0 : FOR K=1TO P : IF B(K)<9.995THEN 6620 : D7=K 6620 NEXT K : IF D7=0THEN 6710 : K=.5*(B(D7)-9.99) : B7=D7-1-P*(SGN(D7-1)-1) : B6=D7+1+P*(SGN(P-D7)-1) : B(B6)=B(B6)+K : B(B7)=B(B7)+K : B(D7)=9.99 6710 MAT B=(100)*B : FOR K=1TO P : B(K)=INT(B(K)+.5) : NEXT K : MAT B=(.01)*B : FOR K=1TO P : GOSUB 4940 : NEXT K : C5$="E" : Q6$="Y" : GOSUB '100("Y,N","YyNn",1,1,"ARE NORMALIZED INDICES OK (Y/N)",3) : IF Q6$=HEX(1F)THEN GOSUB '31 : IF Q6$="N"THEN 6230 6790 IF POS("SFWM"=A3$)=0THEN A3$="S" : IF M6$="D"THEN 7380 6810 ON POS("SFWM"=A3$)GOTO 6840,6960,7080,7230 6840 FOR K=1TO 9 : ON KGOSUB 5070,5320,5380,5440,5500,5560,5640,5780,5860 : NEXT K 6880 B6$="9" : GOSUB 4170 : IF K=0THEN 7380 : ON KGOSUB 5000,5300,5360,5420,5480,5540,5620,5760,5840 : IF A3$<>"S"THEN 6810 : GOTO 6880 6960 FOR K=1TO 8 : ON KGOSUB 5070,5320,5380,5440,5500,5720,5780,5860 : NEXT K 7000 B6$="8" : GOSUB 4170 : IF K=0THEN 7380 : ON KGOSUB 5000,5300,5360,5420,5480,5700,5760,5840 : IF A3$<>"F"THEN 6810 : GOTO 7000 7080 FOR K=1TO 8 : ON KGOSUB 5070,5320,5380,5440,5500,5260,5560,5640 : NEXT K 7120 B6$="8" : GOSUB 4170 : IF K=0THEN 7180 : ON KGOSUB 5000,5300,5360,5420,5480,5240,5540,5620,5760 : IF A3$<>"W"THEN 6810 : GOTO 7120 7180 IF D3+C1-C3/7>=0THEN 7380 : PRINT AT(3,0,80);HEX(07);"WEEKS SUPPLY + REVIEW TIME MUST BE >= LEAD TIME /7" : GOTO 7120 7230 FOR K=1TO 5 : ON KGOSUB 5070,5140,5200,5560,5640 : NEXT K 7270 B6$="5" : GOSUB 4170 : IF K=0THEN 7330 : ON KGOSUB 5000,5120,5180,5540,5620 : IF A3$<>"M"THEN 6810 : GOTO 7270 7330 IF D4>=D3THEN 7380 : PRINT AT(3,0,80);HEX(07);"MAXIMUM LEVEL SHOULD BE >= MINIMUM LEVEL";TAB(6 4) : GOTO 7270 7380 LOAD T"FCST124A"4000,7999BEG 4000 9998 DEFFN'29"Q$=";HEX(22);"FCST122A";HEX(22);":SCRATCH TQ$:SAVET$()Q$";HEX(0D )