1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         SUMALL : CTC INVENTORY CONTROL 
4  REM                  FOR FINISHED PRODUCTS
5  REM         36211 REV  B  PART 14 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[50,12],N[30]
13  K=0
14  MAT Z=ZER
15  P4=0
100  FILES C1,DT1
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 C
135  IF C>0 AND C<31 THEN 141
137  GOSUB 4250
139  GOTO 131
141  GOSUB 3000
143  P2=P1
145  PRINT "LAST PRD#";
147  INPUT C
149  IF C>0 AND C<31 AND C >= P2 THEN 155
151  GOSUB 4250
153  GOTO 145
155  GOSUB 3000
157  P3=P1
185  GOSUB 9900
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
250  GOSUB 6000
260  DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13"
510  P9=66
520  GOSUB 8000
815  PRINT TAB(56)"SUMMARY OF ALL UNITS";
1000  FOR P1=P2 TO P3
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
1070  IF  NOT B1 THEN 1080
1075  GOSUB 2000
1080  NEXT C1
1085  K4=1
1090  K5=P1
1095  IF P1<9 THEN 1125
1097  K5=30
1098  IF P1=13 THEN 1125
1100  RESTORE 250
1105  FOR L6=9 TO 12
1110  READ K5,K4
1115  IF L6=P1 THEN 1125
1120  NEXT L6
1125  FOR K2=1 TO K4 STEP 5
1130  GOSUB 2220
1135  K5=K5+1
1140  NEXT K2
1141  IF K4=1 THEN 1145
1142  K2=46
1143  K4=1
1144  GOSUB L6-8 OF 2200,2202,2204,2206
1145  NEXT P1
1150  K2=41
1155  GOSUB 2208
1160  IF I$="" THEN 9999
1170  CHAIN I$,H3
2000  I=1
2002  J=5
2005  IF S[8]=0 THEN 2040
2010  I=2
2015  IF S[8]=1 OR S[8]=2 THEN 2040
2020  I=3
2025  IF S[8]=3 THEN 2040
2030  I=4
2040  IF P1<9 OR P1=13 THEN 2070
2042  RESTORE 250
2045  FOR X=9 TO 12
2047  READ X1,X2
2050  IF X=P1 THEN 2055
2052  NEXT X
2055  I=I+(S[1]-X1)*5
2060  J=5+(S[1]-X1)*5
2070  I7=S[3]+1
2072  IF I7#1 THEN 2090
2075  IF S[12]=1400 THEN 2135
2080  I7=2
2085  GOTO 2135
2090  IF I7#2 THEN 2105
2095  I7=3
2100  GOTO 2135
2105  IF I7#3 THEN 2130
2110  I7=4
2115  IF S[2]=9999 THEN 2135
2120  I7=5
2125  GOTO 2135
2130  I7=I7+2
2135  T[I,I7]=T[I,I7]+1
2140  T[J,I7]=T[J,I7]+1
2150  RETURN 
2200  PRINT "2200-1S";
2201  GOTO 2300
2202  PRINT "2200-4S";
2203  GOTO 2300
2204  PRINT "2200-3S";
2205  GOTO 2300
2206  PRINT "2200-2S";
2207  GOTO 2300
2208  PRINT "REPORT TOT";
2209  GOTO 2300
2220  IF N[K5]#0 THEN 2245
2240  PRINT "VT06";
2242  GOTO 2300
2245  X=INT(N[K5]/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[K5]-X*1000
2285  Z$="####-###"
2290  X$="0"
2295  GOSUB 9000
2300  A$="   TA"
2305  I1=K2
2310  GOSUB 2500
2315  A$="  CTC"
2320  GOSUB 2500
2325  A$="  NAC"
2330  GOSUB 2500
2335  A$="  4TH"
2340  GOSUB 2500
2342  A$="TOTAL"
2343  GOSUB 2500
2345  IF K2=41 THEN 2415
2347  J1=41
2350  FOR I=K2 TO K2+4
2360  FOR J=1 TO 12
2362  IF K4#1 THEN 2367
2365  T[J1,J]=T[J1,J]+T[I,J]
2366  GOTO 2370
2367  T[J1+5,J]=T[J1+5,J]+T[I,J]
2370  T[I,J]=0
2375  NEXT J
2380  J1=J1+1
2385  NEXT I
2390  K=1
2395  GOSUB 9910
2400  P9=P9+6
2405  IF 9<56 THEN 2415
2410  GOSUB 8000
2415  RETURN 
2500  PRINT TAB(11);A$;TAB(19);
2505  Z$="#### "
2510  X$=" "
2512  X=0
2515  FOR J=1 TO 12
2520  GOTO J OF 2570,2570,2525,2535,2570,2545,2555,2525,2565,2535,2567,2567
2525  PRINT "    ";
2530  GOTO 2570
2535  PRINT "   ";
2540  GOTO 2570
2545  PRINT " ";
2550  GOTO 2570
2555  PRINT "     ";
2560  GOTO 2570
2565  PRINT "  ";
2566  GOTO 2570
2567  PRINT "       ";
2570  Z[1]=T[I1,J]
2572  X=X+Z[1]
2575  GOSUB 9000
2580  NEXT J
2582  PRINT "    ";
2583  Z[1]=X
2584  GOSUB 9000
2592  I1=I1+1
2595  RETURN 
3000  REM
3020  P1=C
3025  IF C<9 THEN 3090
3030  P1=9
3035  IF C <= 16 THEN 3090
3040  P1=10
3045  IF C <= 23 THEN 3090
3050  P1=11
3060  P1=12
3065  IF C <= 29 THEN 3090
3070  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 I 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  S[3]=INT(C[R2,2]/10^5)
4113  C[R2,J]=ABS(C[R2,J])
4114  S[I]=INT(C[R2,J]/10^4)
4115  S[I+1]=C[R,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
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 
6500  READ #2,3;I$,H3,D1,D2,D3,P2,P3
6510  P5=1
6520  GOTO 200
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
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";"";TAB(30)"PAGE: ";
8150  Z$="##"
8160  Z[1]=P4=P4+1
8170  GOSUB 9000
8172  GOSUB 6000
8180  K=2
8190  PRINT "PRODUCT OWNERSHIP  W.I.P.  INVENTORY TRANSIT DEMO  ";
8191  PRINT "CAPITALIZED  SALE LEASE   SCRAPPED  UNACCUNTED  CANCELLED TOTAL";
8192  GOSUB 6000
8193  PRINT TAB(21)"RW   RP";TAB(43)"SA CUST";TAB(50)"FOR";TAB(60)"LEASE";
8200  K=2
8210  GOSUB 9900
8220  P9=12
8230  RETURN 
9000  REM
9002  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM V$[30],Y$[10],Z$[30]
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$[Z,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<Z4 THEN 9104
9098  V$[V,V]="#"
9100  V=V+1
9102  GOTO 9130
9104  Z6=Z6-Z8*Z7
9106  IF Z8=0 THEN 9110
9108  Z3=0
9110  IF Z3=0 THEN 9126
9112  IF Z1#1 THEN 9120
9114  V$[V,V]="0"
9116  V=V+1
9118  GOTO 9130
9120  V$[V,V]=X$
9122  V=V+1
9124  GOTO 9130
9126  V$[V,V]=Y$[Z8+1,Z8+1]
9128  V=V+1
9130  Z7=Z7/10
9132  NEXT Z1
9134  Z3=Z4=Z5=Z7=1
9136  Z2=Z2+1
9138  GOTO 9008
9140  PRINT V$;
9142  V$=""
9144  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9915  PRINT 
9930  NEXT I
9940  RETURN 
9999  END 
