1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        APNLAB:   CTC ACCOUNTS PAYABLE
4  REM
5  REM        36638 REV  A   PART 19 OF 24   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  DIM L$[58],X$[1],A$[20],D[2],G[200]
11  DIM T$[58]
100  FILES PN1,PN2,PN3,P0
130  C8=3
140  C5=200
145  DATA "PR","MA","RI","NH","ME","VT","CT","NJ","NY","PA","DE"
146  DATA "DC","MD","VA","WV","NC","SC","GA","FL","AL","TN","MS"
147  DATA "KY","OH","IN","MI","IA","WI","MN","SD","ND","MT","IL"
148  DATA "MO","KS","NB","LA","AR","OK","TX","CO","WY","ID","UT"
149  DATA "AZ","NM","NV","CA","HI","PACIFIC ISLANDS","OR","WA","AK"
150  DATA 10,28,30,39,50,60,70,90,150,197,200,206,220,247,270,290
151  DATA 300,320,350,370,386,400,430,460,480,500,530,550,570,580
152  DATA 590,600,630,660,680,700,716,730,750,800,820,832,840,850
153  DATA 870,890,900,967,969,970,980,995
160  READ #(C8+1),1;M9
165  READ #(C8+1),2
200  PRINT "VEND# INTERVAL OR GROUP (I/G)";
205  INPUT A$
210  IF A$[1,1]="I" THEN 260
212  F7=0
215  FOR C6=1 TO C5
217  PRINT C6;". VEND#";
220  INPUT X
222  IF X=0 THEN 240
225  IF X>0 AND X <= M9 THEN 232
227  PRINT '7'7'7'7'7'7"INVALID CUST#"
230  GOTO 217
232  G[C6]=X
235  NEXT C6
240  M7=1
245  M8=C6-1
250  GOTO 1000
260  F7=1
262  PRINT "ENTER FIRST AND LAST CUST# (X,Y)";
265  INPUT M7,M8
270  IF M7 >= 0 AND M7 <= M9 AND M8 >= 0 AND M8 <= M9 THEN 300
275  PRINT '7'7'7"INVALID VENDOR#"
280  GOTO 260
300  PRINT "LABELS BY VENDOR# OR ALPHABETICALLY (V/A)";
305  INPUT A$
307  IF A$="END" THEN 9999
310  IF A$[1,1]="C" THEN 1000
315  IF A$[1,1]="A" THEN 2000
1000  GOSUB 2100
1005  FOR I5=M7 TO M8
1007  K9=I5
1010  IF F7 THEN 1015
1012  K9=G[I5]
1015  GOSUB 4000
1020  NEXT I5
1025  PRINT 
1035  PRINT 
1040  END 
2000  GOSUB 2100
2005  READ #(C8+1);J9
2007  F1=0
2008  IF M7>0 THEN 2010
2009  F1=1
2010  FOR I5=1 TO J9
2015  READ #(C8+1);K9
2020  IF F1 THEN 2035
2025  IF K9#M7 THEN 2040
2030  F1=1
2035  GOSUB 4000
2040  NEXT I5
2045  PRINT 
2050  PRINT 
2060  END 
2100  PRINT "READY";
2105  INPUT A$
2110  FOR I=1 TO 3
2115  FOR J=1 TO 4
2120  PRINT J
2125  NEXT J
2130  PRINT 
2135  PRINT 
2140  FOR J=1 TO 300
2145  PRINT '21;
2150  NEXT J
2160  NEXT I
2170  RETURN 
4000  GOSUB 4500
4005  IF B3 THEN 4105
4010  I1=1
4015  I2=I3=0
4020  GOSUB 4800
4025  GOTO F2 OF 4030,4055,4080
4030  PRINT Z$;
4031  IF I3 THEN 4034
4032  PRINT TAB(25);K9;
4033  I3=1
4034  GOSUB 6000
4035  I1=I+1
4040  I2=I2+1
4045  IF I2=4 THEN 4115
4050  GOTO 4020
4055  PRINT Z$;
4060  IF L2=0 THEN 4034
4065  GOSUB 4900
4070  GOTO 4034
4080  IF Z$="" THEN 4100
4085  IF Z$[1,5]="     " THEN 4100
4090  PRINT "ATTN: ";Z$
4095  I2=I2+1
4100  IF I2 >= 4 THEN 4115
4105  PRINT 
4110  GOTO 4095
4115  PRINT 
4120  PRINT 
4130  RETURN 
4500  B3=0
4505  X=K9
4510  FOR N=1 TO C8
4515  IF X<401 THEN 4550
4520  X=X-400
4525  NEXT N
4530  PRINT '7'7"ERR1"
4535  STOP 
4550  R=INT(X/2)
4555  R1=2
4560  IF R*2=X THEN 4575
4565  R=R+1
4567  R1=1
4575  READ #N,R;L$,D[1],T$,D[2]
4580  IF D[R1]#-1 THEN 4600
4585  B3=1
4590  RETURN 
4600  IF R1=2 THEN 4620
4610  T$=L$
4620  L0=SGN(D[R1])
4625  L1=INT(ABS(D[R1])/10^5)
4630  L2=ABS(D[R1])-L1*10^5
4640  RETURN 
4800  J=1
4805  Z$=""
4810  FOR I=I1 TO LEN(T$)
4812  F2=1
4815  IF T$[I,I]='17 THEN 4860
4817  F2=2
4818  IF T$[I,I]='18 THEN 4860
4820  Z$[J,J]=T$[I,I]
4825  J=J+1
4830  IF T$[I,I]="." THEN 4840
4835  IF T$[I,I]#"," THEN 4850
4840  Z$[J,J]=" "
4845  J=J+1
4850  NEXT I
4855  F2=3
4860  RETURN 
4900  X=INT(L2/100)
4902  RESTORE 150
4905  FOR J1=1 TO 52
4907  READ X1
4910  IF X<X1 THEN 4930
4920  NEXT J1
4930  RESTORE 145
4940  FOR J=1 TO J1
4950  READ Z$
4960  NEXT J
4970  PRINT ", ";Z$;
4975  Z$="   #####"
4980  X$=" "
4985  Z[1]=L2
4990  GOSUB 9000
4995  RETURN 
6000  PRINT 
6020  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<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 
9999  END 
