image of READY prompt

Wang2200.org

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
     )