1  REM * PRINTS THOSE PART#S WHO ARE USED IN SPECIFIED PRODUCT *
5  P0=0
8  DIM P[13],U[30],W[30]
10  DIM Y$[10],P$[10],X$[20],A$[20],B$[20]
11  Y$="0123456789"
20  READ O,O1,O2,N9
25  DATA 21,7,9,13
50  DATA "G1","G2","G3","G4","G5","G6","G7","G8","G9"
100  FILES G1
150  PRINT "ENTER TODAY'S DATE (MDY)";
160  INPUT X
161  D1=INT(X/10^4)
162  IF D1>0 AND D1<13 THEN 165
163  PRINT '7'7"INVALID DATE"
164  GOTO 150
165  D2=INT((X-D1*10^4)/100)
166  IF D2<1 OR D2>31 THEN 163
167  D3=X-D1*10^4-D2*100
168  IF D3<72 OR D3>99 THEN 163
170  PRINT "ENTER PRODUCT NAME";
175  GOSUB 3100
180  Q3=0
200  PRINT "WITH WHAT PART NO. DO YOU WISH TO BEGIN";
205  INPUT X$
210  IF X$="0" THEN 900
215  IF LEN(X$)=10 THEN 230
220  PRINT '7'7'7"INVALID DATA"
225  GOTO 200
230  IF X$[3,3]#"-" THEN 220
235  IF X$[8,8]#"-" THEN 220
240  A$=X$[1,1]
245  GOSUB 4200
250  IF G1 OR Z=0 THEN 220
255  Q=Z
260  A$=X$[2,2]
265  GOSUB 4200
270  IF G1 THEN 220
275  Q1=Z
280  A$[1,4]=X$[4,7]
285  A$[5]=X$[9,10]
290  GOSUB 4200
295  IF G1 THEN 220
297  Q2=Z
300  RESTORE 50
305  FOR I=1 TO Q
310  READ A$
315  NEXT I
320  IF Q#2 THEN 340
325  IF Q1=0 AND Q2<35001. THEN 350
330  A$[3]="A"
332  Q3=1
335  GOTO 350
340  IF Q#4 AND Q#7 THEN 350
345  IF Q1 >= 2 THEN 330
350  ASSIGN A$,1,W5
800  IF  END #1 THEN 820
805  READ #1;P$
810  MAT  READ #1;P
815  IF P[1]#0 THEN 830
820  PRINT '7'7"BEG.PART# NOT ON FILE"
825  GOTO 180
830  X=INT(ABS(P[1])/10^6)
835  X1=ABS(P[1])-X*10^6
840  IF SGN(P[1])#-1 THEN 850
845  X=X+8
850  IF X=Q1 AND X1=Q2 THEN 880
855  IF X<Q1 THEN 805
860  IF X>Q1 THEN 820
865  IF X1<Q2 THEN 805
870  GOTO 820
880  REM
890  IF  END #1 THEN 2650
892  P9=66
893  GOSUB 8000
895  GOTO 1020
900  READ A$
905  ASSIGN A$,1,W5
910  Q=1
920  IF  END #1 THEN 2650
930  P9=66
935  GOSUB 8000
1000  REM
1015  READ #1;P$
1016  MAT  READ #1;P
1017  IF P[1]=0 THEN 2650
1020  REM ****BREAK UP Q INTO U****
1025  GOSUB 9700
1040  IF  NOT U[X0] THEN 1015
2000  PRINT TAB(25);
2010  GOSUB 9800
2020  PRINT TAB(44);P$
2030  PRINT 
2050  P9=P9+2
2060  IF P9<60 THEN 1000
2120  GOSUB 8000
2130  GOTO 1000
2650  IF Q3 OR (Q#2 AND Q#4 AND Q#7) THEN 2665
2655  A$[3]="A"
2660  Q3=1
2662  GOTO 2685
2665  Q=Q+1
2670  IF Q>9 THEN 9999
2675  Q3=0
2680  READ A$
2685  ASSIGN A$,1,W5
2690  GOTO 1015
3100  INPUT B$
3105  FOR X0=1 TO O
3110  GOTO X0 OF 3125,3135,3145,3155,3165,3175,3185,3320,3320,3320
3115  GOTO X0-10 OF 3225,3235,3245,3255,3265,3275,3285,3295,3305,3310,3320
3125  IF B$#"3300/3000" THEN 3320
3130  RETURN 
3135  IF B$#"2200-350" THEN 3320
3140  RETURN 
3145  IF B$#"3360-100" THEN 3320
3150  RETURN 
3155  IF B$#"3300-200" THEN 3320
3160  RETURN 
3165  IF B$#"2200-000" THEN 3320
3170  RETURN 
3175  IF B$#"2200-300" THEN 3320
3180  RETURN 
3185  IF B$#"2200-200" THEN 3320
3190  RETURN 
3225  IF B$#"3360-200" THEN 3320
3230  RETURN 
3235  IF B$#"3300-300" THEN 3320
3240  RETURN 
3245  IF B$#"VT06" THEN 3320
3250  RETURN 
3255  IF B$#"2200-112" THEN 3320
3260  RETURN 
3265  IF B$#"2200-400" THEN 3320
3270  RETURN 
3275  IF B$#"2200-401" THEN 3320
3280  RETURN 
3285  IF B$#"2200-402" THEN 3320
3290  RETURN 
3295  IF B$#"2200-420" THEN 3320
3300  RETURN 
3305  IF B$#"2200PS" THEN 3320
3307  RETURN 
3310  IF B$#"2200-404" THEN 3320
3312  RETURN 
3320  NEXT X0
3330  PRINT '7'7'7'7'7'7'7"WHAT";
3340  GOTO 3100
4200  G1=Z=0
4205  FOR I1=1 TO LEN(A$)
4210  FOR I2=1 TO 10
4215  IF A$[I1,I1]=Y$[I2,I2] THEN 4240
4220  NEXT I2
4225  G1=1
4230  RETURN 
4240  Z=Z*10+I2-1
4245  NEXT I1
4250  RETURN 
7000  REM
7005  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
7010  DIM V$[72],Z$[72]
7020  Z0=Z9-1
7025  Z0=Z0+1
7030  IF Z0=LEN(Z$)+1 THEN 7350
7035  IF Z$[Z0,Z0]="#" THEN 7075
7040  IF Z$[Z0,Z0+1]=".#" THEN 7075
7045  IF Z$[Z0,Z0+1]="+#" THEN 7065
7050  V$[V,V]=Z$[Z0,Z0]
7055  V=V+1
7060  GOTO 7025
7065  Z4=0
7070  GOTO 7025
7075  Z=100
7080  Z6=Z[Z2]
7085  Z9=Z0-1
7090  Z9=Z9+1
7095  IF Z$[Z9,Z9]="." THEN 7110
7100  IF Z$[Z9,Z9]="#" THEN 7090
7105  GOTO 7130
7110  IF Z5#1 THEN 7130
7115  Z5=0
7120  Z=Z9
7125  GOTO 7090
7130  IF Z#100 THEN 7140
7135  Z=Z9
7140  IF Z4=1 THEN 7175
7145  IF Z6 >= 0 THEN 7165
7150  V$[V,V]="-"
7155  V=V+1
7160  GOTO 7175
7165  V$[V,V]=" "
7170  V=V+1
7175  IF Z=Z9 THEN 7190
7180  Z6=ABS(Z6)+5*10^(Z-Z9)
7185  GOTO 7195
7190  Z6=ABS(Z6)+.5
7195  Z7=10^(Z-Z0-1)
7200  Z4=10*Z7
7205  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
7210  IF Z1#0 THEN 7235
7215  V$[V,V]="."
7220  V=V+1
7225  Z3=0
7230  GOTO 7330
7235  Z8=INT(Z6/Z7)
7240  IF Z6<Z4 THEN 7260
7245  V$[V,V]="#"
7250  V=V+1
7255  GOTO 7325
7260  Z6=Z6-Z8*Z7
7265  IF Z8=0 THEN 7275
7270  Z3=0
7275  IF Z3=0 THEN 7315
7280  IF Z1#1 THEN 7300
7285  V$[V,V]="0"
7290  V=V+1
7295  GOTO 7325
7300  V$[V,V]=X$
7305  V=V+1
7310  GOTO 7325
7315  V$[V,V]=Y$[Z8+1,Z8+1]
7320  V=V+1
7325  Z7=Z7/10
7330  NEXT Z1
7335  Z3=Z4=Z5=Z7=1
7340  Z2=Z2+1
7345  GOTO 7020
7350  PRINT V$;
7355  V$=""
7360  RETURN 
8000  K=66-P9+4
8005  GOSUB 9900
8010  Z$="DATE: ##/##/##"
8015  X$=" "
8020  Z[1]=D1
8025  Z[2]=D2
8030  Z[3]=D3
8035  GOSUB 7000
8040  PRINT TAB(27)"M A N U F A C T U R I N G";TAB(71)"PAGE: ";
8045  Z[1]=P0=P0+1
8050  Z$="###"
8055  GOSUB 7000
8060  PRINT 
8065  PRINT TAB(25)"CTC PARTS USED IN THE ";B$
8070  K=2
8075  GOSUB 9900
8080  PRINT TAB(25)"PART NO";TAB(44)"DESCRIPTION"
8085  K=2
8090  GOSUB 9900
8095  P9=11
8100  RETURN 
9700  REM ****BREAD UP Q INTO U****
9710  J=1
9720  FOR I=5 TO 9
9730  U[J]=INT(P[I]/1000)
9740  U[J+1]=P[I]-U[J]*1000
9750  J=J+2
9760  NEXT I
9765  FOR I=10 TO N9
9770  U[J]=INT(P[I]/10^4)
9772  U[J+1]=INT((P[I]-U[J]*10^4)/100)
9774  U[J+2]=P[I]-U[J]*10^4-U[J+1]*100
9776  J=J+3
9778  NEXT I
9780  RETURN 
9800  REM ****CHANGE PART NO. TO 3 SEPARATE NUMBERS****
9810  Z$="##-####-##"
9815  X$="0"
9820  X1=INT(ABS(P[1])/10^6)
9825  Z[2]=INT((ABS(P[1])-X1*10^6)/100)
9830  Z[3]=ABS(P[1])-X1*10^6-Z[2]*100
9835  IF SGN(P[1])>-1 THEN 9845
9840  X1=X1+8
9845  Z[1]=Q*10+X1
9850  GOSUB 7000
9860  RETURN 
9900  REM ****SKIP K LINES ON PRINTED OUTPUT****
9910  FOR I=1 TO K
9920  PRINT 
9930  NEXT I
9940  RETURN 
9999  END 
