1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         CUSADR : CTC ACCOUNTS RECEIVABLE 
4  REM
5  REM         36214 REV  B  PART 2 OF 13  2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  H$='29'31'13'26'30
11  DIM R$[54],S$[54],T$[72],U$[72],X$[72]
12  DIM D[2,2],H$[12],A$[12]
13  DIM C$[12],Z$[72]
100  FILES G10A,G10B,G10C,G12,G0
120  READ C9,C8
130  DATA 2,3
140  READ #(C8+2),1;A9,M9
142  PRINT #(C8+2),1;A9,M9
170  C$="0123456789"
190  IF  END #(C8+1) THEN 240
200  FOR I=1 TO 200
205  READ #(C8+1),I;U6,T$,A$,Z0,S1,S2,C0,S5,S6,P0
210  READ #(C8+1);U6,T$,A$,Z0,S1,S2,C0,S5,S6,P0
215  NEXT I
220  PRINT "TRANSACTION FILE FULL"
225  STOP 
230  PRINT "TRANSACTION FILE AT EOF"
235  STOP 
240  IF  END #(C8+1) THEN 230
242  PRINT #(C8+1); END 
245  Z0=2
250  S1=S2=C0=S5=S6=0
255  P0=A9
260  GOTO 300
265  PRINT #(C8+1);U6,X$[1,26],A$[6,7],Z0,S1,S2,C0,S5,S6,P0
270  IF TYP(-(C8+1))=3 THEN 220
275  PRINT #(C8+1); END 
300  PRINT H$[1,2]"CUSTOMER#";
310  INPUT A$
315  IF A$="END" THEN 9999
320  IF LEN(A$)=5 THEN 340
325  GOSUB 4250
330  GOTO 300
340  IF A$[1,1]#"A" THEN 325
345  Z$=A$[2]
350  GOSUB 4200
355  IF B1 THEN 300
360  IF Z<1 OR Z>C9*C8*200 THEN 325
365  U6=Z
370  A$[6,7]="M"
375  GOSUB 4550
380  IF B1 THEN 1200
1000  F1=0
1010  GOSUB 4700
1015  I1=1
1020  GOSUB 4800
1030  GOTO F2 OF 1035,1045,1065
1035  PRINT Z$
1037  I1=I+1
1040  GOTO 1020
1045  PRINT Z$;
1047  IF D[R1,1]#0 THEN 1050
1048  PRINT 
1049  GOTO 1037
1050  GOSUB 4900
1055  PRINT ", ";Z$;"   ";D[R1,1]
1060  GOTO 1037
1065  PRINT "ATTN: ";Z$
1095  PRINT 
1120  GOSUB 2000
1130  GOTO B2 OF 300,265
1200  PRINT "CUSTOMER# NOT IN USE"
1202  PRINT 
1203  D[R1,2]=0
1205  GOSUB 2000
1210  IF B2=1 THEN 300
1215  IF U6 <= M9 THEN 265
1220  M9=U6
1225  PRINT #(C8+2),1;A9,M9
1230  GOTO 265
2000  B2=2
2005  F1=I0=1
2007  U$=""
2010  PRINT "ZIP OR WHOLE (Z/W)";
2011  INPUT T$
2012  IF T$="SAME" THEN 2270
2013  IF T$="W" THEN 2020
2014  GOSUB 2500
2015  GOTO 2250
2020  PRINT "LINE";I0;
2025  INPUT T$
2027  I0=I0+1
2030  IF T$="SAME" THEN 2270
2035  IF T$="END" THEN 2085
2040  IF I0#2 THEN 2050
2045  X$=T$[1,26]
2050  GOSUB 4700
2055  U$[LEN(U$)+1]=T$
2060  U$[LEN(U$)+1]='17
2065  GOSUB 2300
2070  IF B1 THEN 2000
2080  GOTO 2020
2085  PRINT "CITY";
2090  INPUT T$
2095  GOSUB 4700
2100  U$[LEN(U$)+1]=T$
2105  U$[LEN(U$)+1]='18
2110  GOSUB 2300
2115  IF B1 THEN 2000
2117  I0=I0+1
2120  PRINT "ATTN";
2125  INPUT T$
2127  GOSUB 4700
2130  U$[LEN(U$)+1]=T$
2135  GOSUB 2300
2140  IF B1 THEN 2000
2145  GOSUB 2500
2225  GOTO R1 OF 2230,2240
2230  R$=U$
2235  GOTO 2250
2240  S$=U$
2250  PRINT #N,R;R$,D[1,1],D[1,2],S$,D[2,1],D[2,2]
2260  RETURN 
2270  B2=1
2280  RETURN 
2300  B1=0
2310  IF LEN(U$)<55 THEN 2360
2320  B1=1
2330  PRINT '7'7"ADDRESS =";LEN(U$);'7'7">54"'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18
2335  FOR I=1 TO I0+1
2340  PRINT H$[4,4];
2345  NEXT I
2350  PRINT H$[2,2];
2360  RETURN 
2500  PRINT "ZIP";
2505  INPUT Z$
2510  GOSUB 4200
2515  IF B1 THEN 2500
2520  IF Z=0 OR (Z >= 600 AND Z<10^5) THEN 2535
2525  GOSUB 4250
2530  GOTO 2500
2535  D[R1,1]=Z
2540  RETURN 
4200  B1=Z=0
4205  FOR I1=1 TO LEN(Z$)
4210  FOR I2=1 TO 10
4220  IF Z$[I1,I1]=C$[I2,I2] THEN 4270
4230  NEXT I2
4250  B1=1
4260  PRINT '7'7'7'7"INVALID DATA";H$[3,5];
4265  RETURN 
4270  Z=Z*10+I2-1
4280  NEXT I1
4285  RETURN 
4550  B1=0
4552  X=U6
4555  FOR N=1 TO C8
4560  IF X<401 THEN 4585
4565  X=X-400
4570  NEXT N
4575  PRINT '7'7"ERR1"
4580  STOP 
4585  R=INT(X/2)
4587  R1=2
4590  IF R*2=X THEN 4598
4595  R=R+1
4596  R1=1
4598  READ #N,R;R$,D[1,1],D[1,2],S$,D[2,1],D[2,2]
4600  IF D[R1,2]=-1 THEN 4670
4610  T$=R$
4620  IF R1=1 THEN 4660
4630  T$=S$
4660  FOR I=1 TO LEN(T$)
4661  IF T$[I,I]='17 THEN 4663
4662  NEXT I
4663  X$=T$[1,I-1]
4665  RETURN 
4670  B1=1
4680  RETURN 
4700  J=1
4702  Z$=""
4705  FOR I=1 TO LEN(T$)
4710  IF T$[I,I]="." THEN 4750
4715  IF T$[I,I]="," THEN 4750
4720  Z$[J,J]=T$[I,I]
4722  J=J+1
4725  NEXT I
4730  T$=Z$
4740  RETURN 
4750  IF F1 THEN 4775
4755  Z$[J,J]=T$[I,I]
4760  J=J+1
4765  Z$[J,J]=" "
4770  GOTO 4722
4775  Z$[J,J]=T$[I,I]
4780  I=I+1
4785  GOTO 4722
4800  J=1
4805  Z$=""
4810  FOR I=I1 TO LEN(T$)
4812  F2=1
4815  IF T$[I,I]='17 THEN 4830
4816  F2=2
4817  IF T$[I,I]='18 THEN 4830
4820  Z$[J,J]=T$[I,I]
4822  J=J+1
4825  NEXT I
4827  F2=3
4830  RETURN 
4900  X=INT(D[R1,1]/100)
4902  READ #(C8+2),4
4905  FOR J1=1 TO 52
4907  READ #(C8+2);X1
4910  IF X<X1 THEN 4930
4920  NEXT J1
4930  READ #(C8+2),2
4940  FOR J=1 TO J1
4950  READ #(C8+2);Z$
4960  NEXT J
4970  RETURN 
9999  END 
