1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         ARINPT : CTC ACCOUNTS RECEIVABLE 
4  REM
5  REM         36214 REV  B  PART 12 OF 13   2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  H$='29'31'13'26'30
11  DIM C[4],T[2,2]
12  DIM A$[20],Y$[10],H$[5],B$[20],X$[1],Z$[20]
20  Y$="0123456789"
30  J6=100
35  J7=800
100  FILES ARD1
101  PRINT "FILE# (1 OR 2)";
102  INPUT X
103  IF X=1 THEN 110
104  ASSIGN "ARD2",1,W5
105  IF X=2 THEN 110
106  PRINT '7'7"WHAT";
107  GOTO 101
110  MAT T=ZER
120  T=P0=0
150  PRINT "ENTER OR PRINT FILE";
155  INPUT A$
160  IF A$[1,1]="P" THEN 3000
200  PRINT "NEW OR OLD FILE";
205  INPUT A$
210  IF A$[1,1]#"N" THEN 240
215  FOR I=1 TO J6
220  PRINT #1,I; END 
225  NEXT I
230  READ #1,1
235  GOTO 500
240  IF A$[1,1]#"O" THEN 300
245  IF  END #1 THEN 270
255  MAT  READ #1;C
260  T=T+1
265  GOTO 255
270  IF T#J7 THEN 500
275  PRINT '7'7"DATA FILE FULL - 1600 ENTRIES"
280  GOSUB 2000
285  GOSUB 2005
290  END 
300  GOSUB 4250
310  GOTO 200
500  IF  END #1 THEN 275
1000  PRINT 
1002  IF T=J7 THEN 275
1005  MAT C=ZER
1007  PRINT "ACCT#";
1010  INPUT B$
1015  IF B$#"B" THEN 1030
1020  GOSUB 2000
1025  GOTO 1000
1030  IF B$="END" THEN 280
1035  L=LEN(B$)
1040  IF L <= 10 THEN 1055
1045  GOSUB 4250
1050  GOTO 1005
1055  IF L>6 THEN 1075
1060  A$=B$
1065  C[1]=0
1070  GOTO 1100
1075  A$=B$[1,L-6]
1080  GOSUB 4200
1085  IF B1 THEN 1005
1090  C[1]=Z*100
1095  A$=B$[L-5]
1100  GOSUB 4200
1105  IF B1 THEN 1005
1110  C[2]=Z
1115  PRINT "REF#";
1120  INPUT A$
1125  L=LEN(A$)
1130  IF L <= 5 THEN 1145
1135  GOSUB 4250
1140  GOTO 1115
1145  GOSUB 4200
1150  IF B1 THEN 1115
1155  C[3]=Z
1160  PRINT "AMT";
1165  INPUT B$
1170  S=1
1175  IF B$[1,1]#"-" THEN 1190
1180  S=-1
1185  B$=B$[2]
1190  L=LEN(B$)
1195  IF L>3 AND L<10 THEN 1210
1200  GOSUB 4250
1205  GOTO 1160
1210  IF B$[L-2,L-2]#"." THEN 1200
1215  A$=B$[1,L-3]
1220  GOSUB 4200
1225  IF B1 THEN 1160
1230  C[4]=Z
1235  A$=B$[L-1]
1240  GOSUB 4200
1245  IF B1 THEN 1160
1250  C[1]=C[1]+Z
1255  C[3]=C[3]*S
1260  MAT  PRINT #1;C
1262  PRINT #1; END 
1265  X8=T[1,1]+C[4]*S
1270  X9=T[1,2]+Z*S
1275  GOSUB 3500
1277  T[1,1]=X8
1278  T[1,2]=X9
1280  T=T+1
1290  GOTO 1000
2000  PRINT 
2002  PRINT "BATCH TOTAL = ";
2003  I=1
2004  GOTO 2020
2005  PRINT 
2010  PRINT "GRAND TOTAL = ";
2015  I=2
2020  Z$=" "
2025  IF T[I,1] >= 0 AND T[I,2] >= 0 THEN 2035
2030  Z$="-"
2035  PRINT Z$;
2040  Z$="#######."
2045  X$=" "
2050  Z[1]=T[I,1]
2055  GOSUB 9000
2060  Z$="##"
2065  X$="0"
2070  Z[1]=T[I,2]
2075  GOSUB 9000
2080  PRINT 
2085  IF I=2 THEN 2120
2090  X8=T[2,1]+T[1,1]
2095  X9=T[2,2]+T[1,2]
2100  GOSUB 3500
2105  T[2,1]=X8
2110  T[2,2]=X9
2115  T[1,1]=T[1,2]=0
2120  RETURN 
3000  PRINT "CURRENT DATE";
3005  INPUT X
3010  D1=INT(X/10^4)
3015  D2=INT((X-D1*10^4)/100)
3020  D3=X-D1*10^4-D2*100
3025  P9=66
3030  GOSUB 8000
3035  IF  END #1 THEN 285
3040  MAT  READ #1;C
3045  Z$="####. "
3050  X$=" "
3055  Z[1]=T=T+1
3060  GOSUB 9000
3065  A1=INT(C[1]/100)
3070  C=C[1]-A1*100
3075  S=SGN(C[3])
3080  IF A1#0 THEN 3100
3085  PRINT "    ";
3090  GOTO 3120
3100  Z$="####"
3105  Z[1]=A1
3110  GOSUB 9000
3115  X$="0"
3120  Z$="######"
3125  Z[1]=C[2]
3130  GOSUB 9000
3135  PRINT TAB(25);ABS(C[3]);TAB(38);
3140  T[1,1]=C[4]*S
3145  T[1,2]=C*S
3150  I=1
3155  GOSUB 2020
3160  PRINT 
3162  FOR I=1 TO 50
3164  PRINT '18;
3166  NEXT I
3170  P9=P9+2
3175  IF P9<60 THEN 3040
3180  GOSUB 8000
3190  GOTO 3040
3500  REM
3505  IF X9>-100 THEN 3520
3510  X8=X8-1
3515  X9=X9+100
3520  IF X9>99 THEN 3545
3525  IF SGN(X8)*SGN(X9) >= 0 THEN 3540
3530  X8=X8-SGN(X8)
3535  X9=X9-100*SGN(X9)
3540  RETURN 
3545  X8=X8+INT((X9*.01))
3550  X9=(X9*.01-INT(X9*.01))*100
3555  IF X9-INT(X9)<.9 THEN 3565
3560  X9=INT(X9)+1
3565  RETURN 
4200  Z=B1=0
4205  FOR I1=1 TO LEN(A$)
4210  FOR I2=1 TO 10
4220  IF A$[I1,I1]=Y$[I2,I2] THEN 4270
4225  NEXT I2
4250  PRINT '7'7"INVALID DATA";H$[3,5];
4255  B1=1
4260  RETURN 
4270  Z=Z*10+I2-1
4280  NEXT I1
4290  RETURN 
8000  K=66-P9+4
8010  GOSUB 9900
8020  PRINT "INPUT FILE -- ";D1;"/";D2;"/";D3;TAB(41)"PAGE: ";
8025  Z[1]=P0=P0+1
8030  Z$="###"
8035  X$=" "
8040  GOSUB 9000
8045  K=3
8050  GOSUB 9900
8055  PRINT TAB(8)"ACCOUNT#";TAB(27)"REF#";TAB(44)"AMOUNT"
8060  K=2
8065  GOSUB 9900
8070  P9=10
8080  RETURN 
9000  REM
9040  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9050  DIM V$[20]
9070  Z0=Z9-1
9080  Z0=Z0+1
9090  IF Z0=LEN(Z$)+1 THEN 9650
9100  IF Z$[Z0,Z0]="#" THEN 9170
9110  IF Z$[Z0,Z0+1]=".#" THEN 9170
9120  IF Z$[Z0,Z0+1]="+#" THEN 9150
9130  V$[V,V]=Z$[Z0,Z0]
9131  V=V+1
9140  GOTO 9080
9150  Z4=0
9160  GOTO 9080
9170  Z=100
9180  Z6=Z[Z2]
9190  Z9=Z0-1
9200  Z9=Z9+1
9210  IF Z$[Z9,Z9]="." THEN 9240
9220  IF Z$[Z9,Z9]="#" THEN 9200
9230  GOTO 9280
9240  IF Z5#1 THEN 9280
9250  Z5=0
9260  Z=Z9
9270  GOTO 9200
9280  IF Z#100 THEN 9300
9290  Z=Z9
9300  IF Z4=1 THEN 9350
9310  IF Z6 >= 0 THEN 9340
9320  V$[V,V]="-"
9321  V=V+1
9330  GOTO 9350
9340  V$[V,V]=" "
9341  V=V+1
9350  IF Z=Z9 THEN 9380
9360  Z6=ABS(Z6)+5*10^(Z-Z9)
9370  GOTO 9390
9380  Z6=ABS(Z6)+.5
9390  Z7=10^(Z-Z0-1)
9400  Z4=10*Z7
9410  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9420  IF Z1#0 THEN 9460
9430  V$[V,V]="."
9431  V=V+1
9440  Z3=0
9450  GOTO 9610
9460  Z8=INT(Z6/Z7)
9470  IF Z6<Z4 THEN 9500
9480  V$[V,V]="#"
9481  V=V+1
9490  GOTO 9600
9500  Z6=Z6-Z8*Z7
9510  IF Z8=0 THEN 9530
9520  Z3=0
9530  IF Z3=0 THEN 9590
9540  IF Z1#1 THEN 9570
9550  V$[V,V]="0"
9551  V=V+1
9560  GOTO 9600
9570  V$[V,V]=X$
9571  V=V+1
9580  GOTO 9600
9590  V$[V,V]=Y$[Z8+1,Z8+1]
9591  V=V+1
9600  Z7=Z7/10
9610  NEXT Z1
9620  Z3=Z4=Z5=Z7=1
9630  Z2=Z2+1
9640  GOTO 9070
9650  PRINT V$;
9660  V$=""
9670  RETURN 
9900  FOR I=1 TO K
9910  PRINT 
9920  NEXT I
9930  RETURN 
9999  END 
