1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         EXTCST : CTC MANUFACTURING PARTS CONTROL 
4  REM
5  REM         36210 REV  B  PART 23 OF 23   2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
9  C$="0123456789"
10  H$='29'31'13'26'30
11  REM *MANUFACTURING--UPDATES ANY ITE OF A PART NUMBER*
12  MAT  READ L
13  DIM P[13],Q[13],R[13],L[9]
14  DIM P$[10],Q$[10],R$[10],A$[20],X$[20],C$[10],H$[5]
45  DATA 50,200,200,200,200,200,200,50,50
50  DATA "G1","G2","G3","G4","G5","G6","G7","G8","G9"
100  FILES G1
5000  REM****UPDATE A PARTNUMBER****
5010  PRINT H$[1,1];H$[1,1];H$[2,2];H$[2,2];
5020  PRINT 
5022  PRINT "PART NO.";
5025  INPUT X$
5028  IF X$="END" THEN 9999
5030  IF LEN(X$)=10 THEN 5036
5032  GOSUB 9565
5034  GOTO 5020
5036  IF X$[3,3]#"-" THEN 5032
5038  IF X$[8,8]#"-" THEN 5032
5040  A$=X$[1,1]
5042  GOSUB 8000
5044  IF G1 OR Z=0 THEN 5032
5046  Q=Z
5048  A$=X$[2,2]
5050  GOSUB 8000
5052  IF G1 THEN 5032
5054  Q1=Z
5056  A$[1,4]=X$[4,7]
5058  A$[5]=X$[9]
5060  GOSUB 8000
5062  IF G1 THEN 5032
5063  Q2=Z
5064  GOSUB 6000
5066  IF G1 THEN 5020
5067  PRINT "DESCRIP:";R$
5070  PRINT "QUANTITY";
5075  INPUT H0
5080  PRINT "STD COST=";R[2];TAB(20)"EXTENDED COST=";R[2]*H0
5090  GOTO 5020
6000  REM
6005  G1=0
6010  RESTORE 50
6015  FOR I=1 TO Q
6020  READ A$
6025  NEXT I
6030  IF Q#2 THEN 6055
6035  IF Q1=0 AND Q2<35000. THEN 6065
6040  A$[3]="A"
6050  GOTO 6065
6055  IF Q#4 AND Q#7 THEN 6065
6060  IF Q1 >= 2 THEN 6040
6065  ASSIGN A$,1,W5
6070  N1=0
6075  N2=L[Q]
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  P1=X1
6103  P2=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 P1=Q1 AND P2=Q2 THEN 6185
6145  IF P1<Q1 THEN 6155
6150  IF P1>Q1 OR P2>Q2 THEN 6205
6155  IF Q[1]=0 THEN 6165
6160  IF S1=Q1 AND S2=Q2 THEN 6195
6162  IF S1>Q1 THEN 6165
6163  IF S1<Q1 OR S2<Q2 THEN 6215
6165  PRINT '7'7"PART NO NOT ON FILE"
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 
7000  B1=0
7010  L=LEN(X$)
7015  IF L>3 AND L<9 THEN 7030
7020  GOSUB 9565
7025  B1=1
7027  RETURN 
7030  IF X$[L-2,L-2]#"." THEN 7020
7035  A$=X$[1,L-3]
7040  GOSUB 8000
7045  IF G1 THEN 7020
7050  X=Z
7055  A$=X$[L-1]
7060  GOSUB 8000
7065  IF G1 THEN 7020
7070  T=R[2]
7075  T1=R[2]=X+Z*0
7080  A$=X$
7085  RETURN 
8000  G1=Z=0
8010  FOR I1=1 TO LEN(A$)
8020  FOR I2=1 TO 10
8030  IF A$[I1,I1]=C$[I2,I2] THEN 8070
8040  NEXT I2
8050  G1=1
8060  RETURN 
8070  Z=Z*10+I2-1
8080  NEXT I1
8090  RETURN 
9565  PRINT '7'7'7'7'7'7"DATA OUT OF BOUNDS"'7'7'7'7H$[3,5];
9570  G1=1
9580  RETURN 
9999  END 
