1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        APCH#P:   CTC ACCOUNTS PAYABLE
4  REM
5  REM        36638 REV  A   PART 16 OF 24   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  REM  H$=""
10  DIM L$[58],M$[58],A$[20],X$[1]
11  DIM D[2],Q[4,8],U[6]
12  DIM T$[58]
100  FILES PN1,PN2,PN3,PC1,PC2
150  C8=3
200  PRINT H$[1,2];H$[2,2];"(1) TOP OF FORM OR (2) ABDICK";
205  INPUT P5
210  PRINT "CURRENT DATE";
220  INPUT X
230  G1=INT(X/10^4)
235  G2=INT((X-G1*10^4)/100)
240  G3=X-G1*10^4-G2*100
245  PRINT "BEGINNING CHECK# (0 STARTS AT FIRST)";
250  INPUT P6
252  PRINT "BEGINNING PAGE#";
253  INPUT P
255  P=P-1
257  F1=0
260  P9=66
265  GOSUB 8000
1000  FOR N0=C8+1 TO C8+2
1005  FOR R0=1 TO 200
1010  MAT  READ #N0,R0;Q
1020  FOR I1=1 TO 4
1025  IF Q[I1,2]=0 THEN 2000
1030  IF F1 THEN 1045
1035  IF P6=0 THEN 1043
1040  IF Q[I1,1]=P6 THEN 1043
1041  IF P6<Q[I1,1] THEN 2010
1042  GOTO 1180
1043  F1=1
1045  GOSUB 3000
1050  Z$="  #####   ####/"
1052  X$=" "
1055  Z[1]=Q[I1,1]
1060  Z[2]=U6=Q[I1,2]
1065  GOSUB 9000
1070  GOSUB 4500
1075  PRINT T$;TAB(50);
1080  Z$="$######.##  "
1085  Z[1]=Q[I1,3]
1090  GOSUB 9000
1095  Z$="##/##"
1100  FOR I=1 TO 6
1105  IF U[I]#0 THEN 1120
1110  PRINT "       ";
1115  GOTO 1145
1120  Z[1]=INT(U[I]/100)
1125  Z[2]=U[I]-Z[1]*100
1130  IF I=1 THEN 1140
1135  PRINT ", ";
1140  GOSUB 9000
1145  NEXT I
1150  K=1
1155  GOSUB 9900
1165  P9=P9+2
1170  IF P9<60 THEN 1180
1175  GOSUB 8000
1180  NEXT I1
1185  NEXT R0
1190  NEXT N0
2000  IF F1 THEN 9999
2010  PRINT '7'7"BEGINNING CHECK# NOT ON FILE"
2020  STOP 
3000  J=1
3005  FOR I=4 TO 6 STEP 2
3010  U[J]=INT(Q[I1,I]/100)
3015  U[J+1]=Q[I1,I]-U[J]*100
3020  X=INT(Q[I1,I+1]/10^4)
3025  U[J+1]=U[J+1]*100+X
3030  U[J+2]=Q[I1,I+1]-X*10^4
3040  J=J+3
3045  NEXT I
3050  RETURN 
4500  B1=0
4505  X=U6
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],M$,D[2]
4580  IF D[R1]#-1 THEN 4600
4582  T$=""
4585  B1=1
4590  RETURN 
4600  T$=L$
4605  IF R1=1 THEN 4620
4610  T$=M$
4620  FOR I=1 TO LEN(T$)
4625  IF T$[I,I]='17 THEN 4640
4630  NEXT I
4640  T$=T$[1,I-1]
4650  L1=INT(ABS(D[R1])/10^5)
4660  RETURN 
6000  PRINT 
6005  FOR Z0=1 TO 30
6010  PRINT '18;
6020  NEXT Z0
6040  RETURN 
8000  GOTO P5 OF 8010,8020
8010  PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
8015  GOTO 8030
8020  K=66-P9
8025  GOSUB 9910
8030  K=4
8035  GOSUB 9910
8040  Z$="DATE: ##/##/##"
8045  X$=" "
8050  Z[1]=G1
8055  Z[2]=G2
8060  Z[3]=G3
8065  GOSUB 9000
8070  PRINT TAB(40)"A C C O U N T S  P A Y A B L E";TAB(71)'16;TAB(30);"PAGE: ";
8075  Z$="###"
8080  Z[1]=P=P+1
8090  GOSUB 9000
8095  GOSUB 6000
8100  PRINT TAB(47)"CHECKS HELD FILE";
8115  K=2
8120  GOSUB 9900
8125  PRINT "CHECK NO. VENDOR NO/NAME";TAB(51)"CHECK AMT  INVOICE DATES";
8135  K=2
8140  GOSUB 9900
8150  P9=11
8160  RETURN 
9000  REM
9040  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9050  DIM V$[72],Y$[10],Z$[72]
9060  Y$="0123456789"
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  GOSUB 6000
9910  FOR I=1 TO K
9920  PRINT 
9940  NEXT I
9945  RETURN 
9999  END 
