1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM SUMFS : CTC INVENTORY CONTROL 4 REM FOR FINISHED PRODUCTS 5 REM 36211 REV B PART 15 OF 35 2/73 6 REM 7 REM **** CONTRIBUTED PROGRAM ************************************ 10 H$='29'31'13'26'30 11 DIM A$[20],H$[5],X$[1],I$[6] 12 DIM C[4,8],S[16],P[13],T[4,48],N[30] 13 P4=0 100 FILES C1 105 PRINT H$[1,2]"(1) TOP OF FORM OR (2) ABDICK"; 107 INPUT P5 109 PRINT H$[1,2]"CURRENT DATE"; 111 INPUT X 113 GOSUB 4800 115 IF X1>0 AND X1<13 THEN 121 117 GOSUB 4250 119 GOTO 109 121 IF X2<1 OR X2>31 THEN 117 123 IF X3<72 OR X3>99 THEN 117 125 D1=X1 127 D2=X2 129 D3=X3 131 PRINT "FIRST PRD#"; 133 INPUT P2 135 IF P2>0 AND P2<31 THEN 141 137 GOSUB 4250 139 GOTO 131 141 REM 143 PRINT "LAST PRD#"; 145 INPUT P3 147 IF P3>0 AND P3<31 AND P3 >= P2 THEN 153 149 GOSUB 4250 151 GOTO 143 153 REM 200 READ C9,C8,C7 210 DATA 13,4,8 220 MAT READ P 230 DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400 235 MAT READ N 237 DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122 238 DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120 240 MAT T=ZER 260 DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13" 510 P9=66 520 GOSUB 8000 1000 FOR Q1=P2 TO P3 1002 C=Q1 1005 GOSUB 3000 1010 C3=P[P1] 1020 IF P1=1 THEN 1040 1030 C3=C3-P[P1-1] 1040 FOR C1=1 TO C3 1045 R=C1 1050 IF P1=1 THEN 1060 1055 R=R+P[P1-1] 1060 GOSUB 4000 1065 GOSUB 4100 1067 IF NOT B1 OR S[1]#Q1 THEN 1080 1070 IF (S[3]#5 AND S[3]#6) OR (S[3]=5 AND S6=0) THEN 1080 1072 IF S[9]=0 OR S[9]>23 THEN 1080 1075 GOSUB 2000 1080 NEXT C1 1085 K2=1 1090 GOSUB 2200 1095 NEXT Q1 1100 K2=3 1105 GOSUB 2200 1130 IF I$="" THEN 9999 1140 CHAIN I$,H3 2000 J=(S[9]-1)*2+1+S[3]-5 2010 T[1,J]=T[1,J]+1 2015 T[2,J]=T[2,J]+S6 2020 T[1,47+S[3]-5]=T[1,47+S[3]-5]+1 2025 T[2,47+S[3]-5]=T[2,47+S[3]-5]+S6 2040 RETURN 2200 IF K2#3 THEN 2220 2210 PRINT "REPORT TOTAL"; 2215 GOTO 2300 2220 IF N[Q1]#0 THEN 2245 2240 PRINT "VT06"; 2242 GOTO 2300 2245 X=INT(N[Q1]/1000) 2250 GOTO X OF 2255,2260,2265,2270 2255 Z[1]=2200 2257 GOTO 2280 2260 Z[1]=3000 2262 GOTO 2280 2265 Z[1]=3300 2267 GOTO 2280 2270 Z[1]=3360 2280 Z[2]=N[Q1]-X*1000 2285 Z$="####-###" 2290 X$="0" 2295 GOSUB 9000 2300 GOSUB 6000 2305 FOR K3=1 TO 33 STEP 16 2310 GOSUB 2500 2315 NEXT K3 2320 K=1 2325 GOSUB 9910 2335 P9=P9+11 2340 IF P9<50 THEN 2360 2355 GOSUB 8000 2360 RETURN 2500 Z$=" ##### #####" 2505 X$=" " 2510 A$=" UNITS " 2520 FOR J=1 TO 2 2525 PRINT A$; 2530 FOR J1=K3 TO K3+15 STEP 2 2535 IF K2=3 THEN 2560 2540 Z[1]=T[J,J1] 2542 Z[2]=T[J,J1+1] 2545 GOSUB 9000 2550 T[J+2,J1]=T[J+2,J1]+T[J,J1] 2551 T[J+2,J1+1]=T[J+2,J1+1]+T[J,J1+1] 2552 T[J,J1]=T[J,J1+1]=0 2555 GOTO 2575 2560 Z[1]=T[J+2,J1] 2565 Z[2]=T[J+2,J1+1] 2570 GOSUB 9000 2575 NEXT J1 2580 GOSUB 6000 2585 A$=" MAINT." 2590 NEXT J 2592 K=1 2593 GOSUB 9910 2595 RETURN 3000 P1=C 3010 IF C<9 THEN 3090 3020 P1=9 3030 IF C <= 16 THEN 3090 3040 P1=10 3050 IF C <= 23 THEN 3090 3060 P1=11 3070 IF C <= 27 THEN 3090 3075 P1=12 3080 IF C <= 29 THEN 3090 3085 P1=13 3090 RETURN 4000 X=R/C8 4038 X1=INT(X) 4040 X2=INT((X-X1)*100) 4042 FOR I=1 TO (C8-1) 4044 IF X2=I*25 THEN 4054 4046 NEXT I 4048 R1=X1 4050 R2=C8 4052 GOTO 4057 4054 R1=X1+1 4056 R2=I 4057 RESTORE 260 4058 FOR N=1 TO C9 4060 READ A$ 4062 IF R1<201 THEN 4070 4063 R1=R1-200 4065 NEXT N 4067 PRINT "ERR IN P"; 4068 STOP 4070 ASSIGN A$,1,W5 4080 RETURN 4100 B1=0 4102 MAT READ #1,R1;C 4105 IF C[R2,1]=-1 THEN 4180 4107 B1=1 4110 J=1 4111 FOR I=1 TO 9 STEP 4 4112 S5=SGN(C[R2,J]) 4113 C[R2,J]=ABS(C[R2,J]) 4114 S[I]=INT(C[R2,J]/10^4) 4115 S[I+1]=C[R2,J]-S[I]*10^4 4116 IF I#9 THEN 4119 4117 S[I+1]=INT(S[I+1]/100) 4118 S[I+2]=C[R2,J]-S[I]*10^4-S[I+1]*100 4119 J=J+2 4120 NEXT I 4122 S[3]=INT(C[R2,2]/10^5) 4125 S[4]=C[R2,2]-S[3]*10^5 4145 S[7]=INT(C[R2,4]/10) 4150 S[8]=C[R2,4]-S[7]*10 4170 S[12]=INT(C[R2,6]/100) 4175 S[13]=C[R2,6]-S[12]*100 4176 S[14]=INT(C[R2,8]/10^5) 4177 S[15]=INT((C[R2,8]-S[14]*10^5)/10) 4178 S6=S[13]*10+S[14] 4180 RETURN 4250 PRINT '7'7"INVALID DATA";H$[3,5]; 4255 B1=1 4257 RETURN 4800 X1=INT(X/10^4) 4810 X2=INT((X-X1*10^4)/100) 4820 X3=X-X1*10^4-X2*100 4830 RETURN 6000 PRINT 6040 RETURN 8000 GOTO P5 OF 8005,8010 8005 PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18; 8007 GOTO 8020 8010 K=66-P9 8015 GOSUB 9910 8020 K=4 8030 GOSUB 9910 8040 PRINT TAB(16)"DATE: "; 8050 Z$="##/##/##" 8060 X$=" " 8070 Z[1]=D1 8080 Z[2]=D2 8090 Z[3]=D3 8100 GOSUB 9000 8110 PRINT TAB(50)"I N V E N T O R Y C O N T R O L"; 8120 K=30 8130 GOSUB 9950 8150 Z$="##" 8160 P4=P4+1 8165 Z[1]=P4 8167 PRINT "PAGE: "; 8170 GOSUB 9000 8172 GOSUB 6000 8175 PRINT TAB(51)"FIELD SERVICE LOCATION SUMMARY"; 8180 K=2 8185 GOSUB 9900 8190 PRINT "PRODUCT BOSTON NEW YORK PHILADELPHIA "; 8191 PRINT " PITTSBURG BUFFALO ARLINGTON ATLANTA "; 8192 PRINT " ORLANDO"; 8195 K=1 8197 GOSUB 9900 8200 PRINT TAB(10)" DETROIT CHICAGO MADISON MINNEAPOLIS "; 8201 PRINT " KANSAS CITY DALLAS HOUSTON LOS ANGELES"; 8205 K=1 8210 GOSUB 9900 8211 PRINT TAB(10)" SAN FRAN SEATTLE DENVER "; 8212 PRINT " SAN ANTONIO PHOENIX CLEVELAND DES MOINES TOTAL"; 8213 K=1 8214 GOSUB 9900 8215 PRINT TAB(8); 8220 FOR I=1 TO 8 8225 PRINT " SOLD LEASE"; 8230 NEXT I 8235 GOSUB 6000 8240 P9=15 8245 RETURN 9000 REM 9002 V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1 9004 DIM V$[72],Y$[10],Z$[72] 9006 Y$="0123456789" 9008 Z0=Z9-1 9010 Z0=Z0+1 9012 IF Z0=LEN(Z$)+1 THEN 9140 9014 IF Z$[Z0,Z0]="#" THEN 9030 9016 IF Z$[Z0,Z0+1]=".#" THEN 9030 9018 IF Z$[Z0,Z0+1]="+#" THEN 9026 9020 V$[V,V]=Z$[Z0,Z0] 9022 V=V+1 9024 GOTO 9010 9026 Z4=0 9028 GOTO 9010 9030 Z=100 9032 Z6=Z[Z2] 9034 Z9=Z0-1 9036 Z9=Z9+1 9038 IF Z$[Z9,Z9]="." THEN 9044 9040 IF Z$[Z9,Z9]="#" THEN 9036 9042 GOTO 9052 9044 IF Z5#1 THEN 9052 9046 Z5=0 9048 Z=Z9 9050 GOTO 9036 9052 IF Z#100 THEN 9056 9054 Z=Z9 9056 IF Z4=1 THEN 9070 9058 IF Z6 >= 0 THEN 9066 9060 V$[V,V]="-" 9062 V=V+1 9064 GOTO 9070 9066 V$[V,V]=" " 9068 V=V+1 9070 IF Z=Z9 THEN 9076 9072 Z6=ABS(Z6)+5*10^(Z-Z9) 9074 GOTO 9078 9076 Z6=ABS(Z6)+.5 9078 Z7=10^(Z-Z0-1) 9080 Z4=10*Z7 9082 FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1 9084 IF Z1#0 THEN 9094 9086 V$[V,V]="." 9088 V=V+1 9090 Z3=0 9092 GOTO 9132 9094 Z8=INT(Z6/Z7) 9096 IF Z6