1  REM *MANUFACTURING*
2  REM *DOES PLAY MULT PULL PRINTING ALL OR SHORT ON HAND VALUES*
8  DIM A$[2]
9  DIM P$[10],Q$[10],T$[20],R$[10],X$[1],Z$[20]
10  DIM P[13],Q[13],L[9],R[13],W[25],A[6],U[25]
40  MAT  READ L
42  DATA 50,200,200,200,200,200,200,50,50
44  READ N9,O3
46  DATA 13,21
50  DATA "G1","G2","G3","G4","G5","G6","G7","G8","G9"
100  FILES G1,MFILE1,MFILE2,G0
244  FOR I=1 TO O3
246  READ #4;W[I]
248  NEXT I
250  MAT  READ #4;A
252  READ #4;K5,K6,T5
300  PRINT "ENTER TODAY'S DATE";
302  INPUT X
304  D1=INT(X/10^4)
306  IF D1>0 AND D1<13 THEN 310
308  PRINT '7'7"INVALID DATE"
309  GOTO 300
310  D2=INT((X-D1*10^4)/100)
312  IF D2<1 OR D2>31 THEN 308
314  D3=X-D1*10^4-D2*100
316  IF D3<72 OR D3>99 THEN 308
330  PRINT "ENTER LIST 'ALL' OR JUST 'SHORT'";
340  INPUT T$
350  T2=1
360  IF T$[1,1]="A" THEN 400
370  T2=2
400  P0=0
410  P9=66
420  GOSUB 8000
1000  S=2
1005  IF  END #S THEN 2000
1010  READ #S;P2,X
1012  IF P2=0 AND X=0 THEN 9999
1015  Q=INT(X/100)
1017  X=X-Q*100
1020  P=INT(X/10)
1025  P1=X-P*10
1110  GOSUB 6000
1120  IF  NOT G1 THEN 1160
1125  GOSUB 2100
1126  PRINT "NOT ON COMP.PT FILE";
1130  K=17
1140  GOSUB 3000
1150  GOTO 1460
1160  GOSUB 9700
1162  GOSUB 9600
1164  GOSUB 9650
1166  GOSUB 9800
1170  T$=R$
1180  T[1]=R[2]
1190  T[2]=R[3]
1200  T[3]=R[4]
1260  Q1=T[3]-Q
1262  GOTO T2 OF 1265,1264
1264  IF SGN(Q1)#-1 THEN 1010
1265  GOSUB 2100
1267  PRINT T$;TAB(21);
1270  X$=" "
1280  Z$="$#####.##"
1285  Z[1]=T[1]
1290  GOSUB 9000
1300  PRINT "  ";
1305  Z$="#######"
1310  Z[1]=T[2]
1320  GOSUB 9000
1330  PRINT "  ";
1340  Z$="+#######"
1350  Z[1]=T[3]
1360  GOSUB 9000
1370  K=3
1375  GOSUB 3000
1377  Z$="+#######"
1380  Z[1]=T[3]-Q
1390  GOSUB 9000
1395  PRINT "  ";
1397  IF SGN(Z[1])#-1 THEN 1424
1400  IF SGN(T[3])#-1 THEN 1420
1410  Z[1]=Q
1420  Z$="*#######*  "
1422  IF Z[1]#0 THEN 1430
1424  K=11
1426  GOSUB 9950
1428  GOTO 1432
1430  GOSUB 9000
1432  Z$="######   "
1434  Z[1]=M5
1435  GOSUB 9000
1436  Z[1]=M6
1437  GOSUB 9000
1439  M7=(M5-M6)/2+M6
1440  T$="***"
1441  IF T[3]-Q>M5 THEN 1450
1442  T$=""
1443  IF M7<T[3]-Q AND T[3]-Q <= M5 THEN 1450
1444  T$="#"
1445  IF M6<T[3]-Q AND T[3]-Q <= M7 THEN 1448
1446  T$="*"
1447  GOTO 1450
1448  IF T[2]>0 THEN 1450
1449  A$="HOT"
1450  PRINT T$;
1460  PRINT 
1465  PRINT 
1470  P9=P9+2
1480  IF P9<60 THEN 1010
1510  GOSUB 8000
1520  GOTO 1010
2000  S=S+1
2010  IF S<4 THEN 1005
2020  END 
2100  Z[1]=P*10+P1
2110  Z[2]=INT(P2/100)
2130  Z[3]=P2-Z[2]*100
2140  X$="0"
2150  Z$="##-####-##"
2170  GOSUB 9000
2180  PRINT " ";
2190  RETURN 
3000  GOSUB 9950
3010  X$=" "
3020  Z$="#####"
3040  Z[1]=Q
3050  GOSUB 9000
3060  PRINT "    ";
3070  RETURN 
6000  REM
6005  G1=0
6010  RESTORE 50
6015  FOR I=1 TO P
6020  READ A$
6025  NEXT I
6030  IF P#2 THEN 6055
6035  IF P1=0 AND P2<35000. THEN 6065
6040  A$[3]="A"
6050  GOTO 6065
6055  IF P#4 AND P#7 THEN 6065
6060  IF P1 >= 2 THEN 6040
6065  ASSIGN A$,1,W5
6070  N1=0
6075  N2=L[P]
6080  IF N2-N1<2 THEN 6165
6082  R1=N1+INT((N2-N1)/2)
6085  READ #1,R1;P$
6090  MAT  READ #1;P
6095  X=P[1]
6100  GOSUB 6400
6102  U1=X1
6103  U2=X2
6105  READ #1;Q$
6110  MAT  READ #1;Q
6115  X=Q[1]
6120  GOSUB 6400
6125  S1=X1
6130  S2=X2
6135  IF P[1]=0 THEN 6205
6140  IF U1=P1 AND U2=P2 THEN 6185
6145  IF U1<P1 THEN 6155
6150  IF U1>P1 OR U2>P2 THEN 6205
6155  IF Q[1]=0 THEN 6165
6160  IF S1=P1 AND S2=P2 THEN 6195
6162  IF S1>P1 THEN 6165
6163  IF S1<P1 OR S2<P2 THEN 6215
6165  REM
6170  G1=1
6180  RETURN 
6185  F1=1
6187  R$=P$
6188  MAT R=P
6190  RETURN 
6195  F1=2
6197  R$=Q$
6198  MAT R=Q
6200  RETURN 
6205  N2=R1
6210  GOTO 6080
6215  N1=R1
6220  GOTO 6080
6400  X1=INT(ABS(X)/10^6)
6405  X2=ABS(X)-X1*10^6
6410  IF SGN(X)>-1 THEN 6430
6420  X1=X1+8
6430  RETURN 
8000  K=66-P9+4
8001  GOSUB 9900
8002  PRINT "DATE: ";
8003  Z$="##/##/##"
8004  X$=" "
8005  Z[1]=D1
8006  Z[2]=D2
8007  Z[3]=D3
8008  GOSUB 9000
8009  PRINT TAB(40)"M A N U F A C T U R I N G";"";TAB(25);"PAGE: ";
8010  Z$="###"
8011  Z[1]=P0=P0+1
8012  GOSUB 9000
8013  PRINT 
8014  PRINT TAB(38)"MULTIPLE COMPONENT PARTS PULL"
8015  K=2
8016  GOSUB 9900
8020  PRINT "  CTC        PART     ";
8030  PRINT "STANDARD     ON     ON HAND  QUANTITY   ON HAND  QUANTITY";
8032  PRINT "    MAX      MIN     ON HAND"
8040  PRINT "PART NO.   DESCRIPT     COST      ";
8050  PRINT "ORDER    BEFORE   PULLED     AFTER     SHORT   ON HAND  ";
8055  PRINT "ON HAND    < MIN"
8070  K=2
8090  GOSUB 9900
8095  P9=12
8098  RETURN 
9000  REM
9005  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9010  DIM V$[72],Y$[10]
9015  Y$="0123456789"
9020  Z0=Z9-1
9025  Z0=Z0+1
9030  IF Z0=LEN(Z$)+1 THEN 9350
9035  IF Z$[Z0,Z0]="#" THEN 9075
9040  IF Z$[Z0,Z0+1]=".#" THEN 9075
9045  IF Z$[Z0,Z0+1]="+#" THEN 9065
9050  V$[V,V]=Z$[Z0,Z0]
9055  V=V+1
9060  GOTO 9025
9065  Z4=0
9070  GOTO 9025
9075  Z=100
9080  Z6=Z[Z2]
9085  Z9=Z0-1
9090  Z9=Z9+1
9095  IF Z$[Z9,Z9]="." THEN 9110
9100  IF Z$[Z9,Z9]="#" THEN 9090
9105  GOTO 9130
9110  IF Z5#1 THEN 9130
9115  Z5=0
9120  Z=Z9
9125  GOTO 9090
9130  IF Z#100 THEN 9140
9135  Z=Z9
9140  IF Z4=1 THEN 9175
9145  IF Z6 >= 0 THEN 9165
9150  V$[V,V]="-"
9155  V=V+1
9160  GOTO 9175
9165  V$[V,V]=" "
9170  V=V+1
9175  IF Z=Z9 THEN 9190
9180  Z6=ABS(Z6)+5*10^(Z-Z9)
9185  GOTO 9195
9190  Z6=ABS(Z6)+.5
9195  Z7=10^(Z-Z0-1)
9200  Z4=10*Z7
9205  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9210  IF Z1#0 THEN 9235
9215  V$[V,V]="."
9220  V=V+1
9225  Z3=0
9230  GOTO 9330
9235  Z8=INT(Z6/Z7)
9240  IF Z6<Z4 THEN 9260
9245  V$[V,V]="#"
9250  V=V+1
9255  GOTO 9325
9260  Z6=Z6-Z8*Z7
9265  IF Z8=0 THEN 9275
9270  Z3=0
9275  IF Z3=0 THEN 9315
9280  IF Z1#1 THEN 9300
9285  V$[V,V]="0"
9290  V=V+1
9295  GOTO 9325
9300  V$[V,V]=X$
9305  V=V+1
9310  GOTO 9325
9315  V$[V,V]=Y$[Z8+1,Z8+1]
9320  V=V+1
9325  Z7=Z7/10
9330  NEXT Z1
9335  Z3=Z4=Z5=Z7=1
9340  Z2=Z2+1
9345  GOTO 9020
9350  PRINT V$;
9355  V$=""
9360  RETURN 
9600  T=0
9605  FOR I=1 TO O3
9607  IF U[I]=99 THEN 9640
9610  T=T+(R[2]*U[I]*W[I])
9640  NEXT I
9645  RETURN 
9650  IF (T/T5)<K5 THEN 9690
9655  IF K5 <= T/T5 AND T/T5<K6 THEN 9680
9662  I=1
9665  RETURN 
9680  I=3
9685  RETURN 
9690  I=5
9695  RETURN 
9700  J=1
9720  FOR I=5 TO 9
9730  U[J]=INT(R[I]/1000)
9740  U[J+1]=R[I]-U[J]*1000
9750  J=J+2
9760  NEXT I
9765  FOR I=10 TO N9
9770  U[J]=INT(R[I]/10^4)
9775  U[J+1]=INT((R[I]-U[J]*10^4)/100)
9780  U[J+2]=R[I]-U[J]*10^4-U[J+1]*100
9785  J=J+3
9790  NEXT I
9795  RETURN 
9800  M5=M6=0
9820  FOR I1=1 TO O3
9830  IF U[I1]=99 THEN 9860
9840  M5=M5+(A[I]*U[I1]*W[I1])
9850  M6=M6+(A[I+1]*U[I1]*W[I1])
9855  NEXT I1
9860  RETURN 
9900  REM
9910  FOR I=1 TO K
9920  PRINT 
9940  NEXT I
9945  RETURN 
9950  FOR I=1 TO K
9960  PRINT " ";
9970  NEXT I
9980  RETURN 
9999  END 
