1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM MULFIL : CTC MANUFACTURING PARTS CONTROL 4 REM 5 REM 36210 REV B PART 3 OF 23 2/73 6 REM 7 REM **** CONTRIBUTED PROGRAM ************************************ 10 REM * MANUFACTURING * 11 REM *PUTS ON FILE CMP.PTS AND QUANTITY TO PULL FOR PLAY MULT PULL* 12 H$='29'31'13'26'30 13 DIM X$[20],C$[10],A$[20],H$[5] 14 DIM L[16,2],N[100,3] 15 MAT L=ZER 20 C$="0123456789" 100 FILES FS1,FS2,MFILE1,MFILE2 200 FOR I=1 TO 50 210 MAT PRINT #3,I;L 215 MAT PRINT #4,I;L 220 NEXT I 300 PRINT H$[1,2]; 400 K5=0 1000 PRINT 1005 PRINT "SUBASSEMBLY PART#"; 1010 INPUT X$ 1015 IF X$="0" THEN 1300 1020 IF LEN(X$)=10 THEN 1060 1025 GOSUB 8050 1030 GOTO 1005 1060 IF X$[3,3]#"-" THEN 1025 1065 IF X$[8,8]#"-" THEN 1025 1070 A$=X$[1,2] 1075 GOSUB 8000 1080 IF B1 THEN 1005 1085 IF Z<10 OR Z>19 THEN 1025 1090 Q1=Z 1095 A$[1,4]=X$[4,7] 1100 A$[5]=X$[9] 1105 GOSUB 8000 1110 IF B1 THEN 1005 1115 K5=K5+1 1117 N[K5,1]=Q1 1118 N[K5,2]=Z 1120 PRINT "QUANTITY"; 1125 INPUT A$ 1130 GOSUB 8000 1135 IF B1 THEN 1120 1140 N[K5,3]=Z 1145 IF K5<100 THEN 1000 1300 FOR K4=1 TO K5 1310 PRINT N[K4,1];"-";INT(N[K4,2]/100);"-";N[K4,2]-INT(N[K4,2]/100)*100 2000 S=1 2002 READ #1,1 2004 READ #2,1 2030 IF END #S THEN 2180 2035 S1=1 2040 READ #S;B 2050 IF SGN(B)>-1 THEN 2040 2060 S1=2 2065 READ #S;B1 2070 IF B1=N[K4,1] AND -B=N[K4,2] THEN 2090 2075 IF N[K4,1]B1 OR N[K4,2]>-B THEN 2035 2085 GOTO 2200 2090 IF END #S THEN 2220 2095 S1=1 2100 READ #S;B 2102 IF SGN(B)=-1 THEN 2140 2105 S1=2 2110 READ #S;B1 2115 X=INT(B1/100) 2120 B1=B1-X*100 2125 Q=N[K4,3]*X 2130 GOSUB 2300 2135 GOTO 2095 2140 NEXT K4 2150 END 2180 S=S+1 2182 IF S>2 THEN 2200 2185 IF END #S THEN 2180 2190 GOTO S1 OF 2040,2065 2200 PRINT '7'7"SUBASSEMBLY NOT ON SUB-COMP FILE";N[K4,1];N[K4,2];N[K4,3] 2210 GOTO 2140 2220 S=S+1 2222 IF S>2 THEN 2140 2225 IF END #S THEN 2220 2230 GOTO S1 OF 2100,2110 2300 S1=3 2305 FOR I1=1 TO 50 2310 MAT READ #S1,I1;L 2320 GOSUB 3000 2325 IF NOT G1 THEN 2355 2330 NEXT I1 2335 S1=S1+1 2340 IF S1<5 THEN 2305 2345 PRINT '7'7"PART-PULL FILE FULL--OVER 1600 PARTS" 2350 STOP 2355 RETURN 3000 G1=0 3005 FOR J1=1 TO 16 3007 IF L[J1,1]=0 AND L[J1,2]=0 THEN 3040 3010 N1=INT(L[J1,2]/100) 3015 N2=L[J1,2]-N1*100 3020 IF N2=B1 AND L[J1,1]=B THEN 3050 3025 NEXT J1 3030 G1=1 3035 RETURN 3040 N2=B1 3045 L[J1,1]=B 3047 N1=0 3050 Q=N1+Q 3055 IF Q>9999 THEN 3100 3060 L[J1,2]=Q*100+N2 3065 MAT PRINT #S1,I1;L 3070 RETURN 3100 PRINT '7'7"PART#";B1;B;" QUANTITY >9999;Q=";Q 3110 RETURN 8000 B1=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 B1=1 8055 PRINT '7'7"INVALID DATA";H$[3,5]; 8060 RETURN 8070 Z=Z*10+I2-1 8080 NEXT I1 8090 RETURN 9999 END