1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         FREUNT : CTC INVENTORY CONTROL 
4  REM                  FOR FINISHED PRODUCTS
5  REM         36211 REV  B  PART 21 OF 35   2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  DIM A$[20],Y$[10],X$[1]
11  DIM E[8],Q[13],P[13],R[13]
12  P0=0
20  Y$="0123456789"
100  FILES C1
150  PRINT "(1) TOP OF FORM OR (2) ABDICK";
160  INPUT P5
200  READ C9,C8,C7,G8
210  DATA 13,4,8,3
220  MAT  READ P
230  DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400
235  MAT  READ Q
236  DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1400,1300,1200,3120
237  DATA 1400,1401,1402,0,1300,1200,3120
240  DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13"
300  PRINT "CURRENT DATE";
310  INPUT X
335  GOSUB 4800
355  D1=X1
360  D2=X2
365  D3=X3
370  PRINT "ENTER 13 SER# CUT OFFS"
372  FOR I=1 TO 13
374  PRINT "PRD";I;
376  INPUT X
378  IF I#5 THEN 382
380  X=X-1000
381  IF X<1 THEN 388
382  IF I=1 THEN 386
384  X=X+P[I-1]
386  IF X <= P[I] THEN 392
388  PRINT '7'7'7'7"INVALID SER#"
390  GOTO 374
392  R[I]=X
395  NEXT I
400  PRINT "BEGINNING PRD# (1 TO 13)";
405  INPUT P6
410  IF P6>0 AND P6<14 THEN 425
415  PRINT '7'7"WHAT";
420  GOTO 405
425  S5=0
430  IF P6=1 THEN 440
435  S5=P[P6-1]
440  R=S5+1
445  FOR N=1 TO C9
450  IF R <= 800 THEN 472
455  R=R-800
460  NEXT N
465  PRINT "ERR1"
470  STOP 
472  IF R#1 THEN 478
474  R1=1
476  GOTO 510
478  X=R/4
480  R=INT(X)
482  X1=X-R
484  IF X1=0 THEN 490
486  R=R+1
490  FOR R1=1 TO 3
492  IF X1=R1*.25 THEN 496
494  NEXT R1
496  REM
510  N5=N
515  GOSUB 1300
520  READ #1,R
525  FOR I=2 TO R1
530  MAT  READ #1;E
535  NEXT I
560  P9=66
565  GOSUB 8000
1000  IF  END #1 THEN 1060
1010  MAT  READ #1;E
1012  S5=S5+1
1015  IF E[1]#-1 THEN 1010
1020  IF S5>P[13] THEN 9999
1030  GOSUB 2000
1035  GOTO 1010
1060  N5=N5+1
1070  IF N5>C9 THEN 9999
1075  GOSUB 1300
1080  GOTO 1000
1300  RESTORE 240
1310  FOR I=1 TO N5
1320  READ A$
1330  NEXT I
1340  ASSIGN A$,1,W5
1350  READ #1,1
1360  RETURN 
2000  FOR I=1 TO 13
2001  IF S5 <= P[I] THEN 2005
2002  NEXT I
2003  PRINT "ERR1"
2004  STOP 
2005  S2=S5
2006  IF I=1 THEN 2008
2007  S2=S2-P[I-1]
2008  S1=I
2010  IF S5>R[I] THEN 2145
2012  IF S1#5 THEN 2020
2015  S2=S2+900
2020  IF S1#8 THEN 2035
2025  PRINT "VT06   ";
2030  GOTO 2090
2035  Z$="####-### "
2040  X$="0"
2045  X=INT(Q[S1]/1000)
2050  Z[2]=Q[S1]-X*1000
2055  GOTO X OF 2060,2065,2070,2075
2060  Z[1]=2200
2062  GOTO 2080
2065  Z[1]=3000
2067  GOTO 2080
2070  Z[1]=3300
2072  GOTO 2080
2075  Z[1]=3360
2080  GOSUB 9000
2090  PRINT TAB(10);
2095  Z$="####    "
2100  X$="0"
2105  Z[1]=S2
2120  GOSUB 9000
2135  PRINT 
2140  P9=P9+1
2142  IF P9<60 THEN 2145
2143  GOSUB 8000
2145  RETURN 
4800  X1=INT(X/10^4)
4805  X2=INT((X-X1*10^4)/100)
4810  X3=X-X1*10^4-X2*100
4830  RETURN 
8000  GOTO P5 OF 8005,8015
8005  PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
8010  GOTO 8025
8015  K=66-P9
8020  GOSUB 9900
8025  K=4
8030  GOSUB 9900
8040  P0=P0+1
8045  PRINT "UNITS NOT ON FILE --";D1;"/";D2;"/";D3;TAB(55)"PAGE: ";P0
8050  K=2
8055  GOSUB 9900
8060  P9=7
8070  RETURN 
9000  REM
9002  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM V$[72],Z$[72]
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<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  REM
9910  FOR I=1 TO K
9915  PRINT 
9930  NEXT I
9940  RETURN 
9999  END 
