1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        APADCH:   CTC ACCOUNTS PAYABLE
4  REM
5  REM        36638 REV  A   PART 13 OF 24   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  DIM I$[10]
11  DIM P[29],Q[8],X[8],C[170,9]
100  FILES PI1,PC1,PC2,*S3,*S4
110  MAT X=ZER
120  MAT C=ZER
121  PRINT "USE INPUT FILE:  PI1 OR PI2";
122  INPUT I$
123  IF I$="PI1" THEN 127
124  IF I$="PI2" THEN 127
125  PRINT '7'7'7"WHAT";
126  GOTO 122
127  ASSIGN I$,1,W5
130  C=C1=0
140  PRINT "ADD INPUT FILE TO CHECKS HELD FILE";
145  INPUT I$
150  IF I$[1,1]#"Y" THEN 9999
200  FOR I=1 TO 200
210  READ #1,I;I$
215  IF I$="" THEN 295
220  MAT  READ #1;P
222  IF P[28]=0 THEN 295
225  IF ABS(P[28])=C1 THEN 270
240  C=C+1
245  C[C,1]=ABS(P[28])
250  C[C,2]=P[1]
255  C[C,3]=P[3]
257  GOSUB 2000
260  C[C,4]=X
262  C1=ABS(P[28])
265  GOTO 295
270  C[C,3]=C[C,3]+P[3]
272  GOSUB 2000
273  FOR J1=4 TO 9
275  IF C[C,J1]=0 THEN 292
280  NEXT J1
285  PRINT "ERR1"
290  STOP 
292  C[C,J1]=X
295  NEXT I
300  FOR I=2 TO C
305  FOR J=I TO 2 STEP -1
310  IF C[J,1] >= C[J-1,1] THEN 340
315  FOR J1=1 TO 9
320  X=C[J,J1]
325  C[J,J1]=C[J-1,J1]
330  C[J-1,J1]=X
332  NEXT J1
335  NEXT J
340  NEXT I
1000  PRINT "CHECKS ENTERED:"
1005  C1=1
1010  N1=4
1015  IF  END #N1 THEN 1200
1020  FOR N=2 TO 3
1025  IF  END #N THEN 1155
1030  MAT  READ #N;Q
1035  IF Q[1]=0 THEN 1300
1040  IF Q[1]#C[C1,1] THEN 1052
1045  PRINT "CHECK";C[C1,1];"ALREADY ON FILE"
1050  GOTO 1145
1052  IF Q[1]>C[C1,1] THEN 1065
1055  S2=1
1060  MAT  PRINT #N1;Q
1062  GOTO 1030
1065  PRINT C[C1,1]
1066  GOSUB 1500
1070  GOSUB 3000
1135  S2=2
1140  MAT  PRINT #N1;X
1145  C1=C1+1
1150  IF C1 <= C THEN 1040
1152  GOTO 1410
1155  NEXT N
1160  PRINT "CHECKS HELD FILE FULL - CHECKS NOT ENTERED:"
1165  FOR I=C1 TO C
1170  PRINT C[I,1]
1172  GOSUB 1500
1175  NEXT I
1180  GOSUB 9800
1185  END 
1200  N1=N1+1
1205  IF N1>5 THEN 1220
1210  IF  END #N1 THEN 1200
1215  GOTO S2 OF 1055,1135
1220  PRINT "CHECKS HELD FILE FULL - CHECKS DROPPED:"
1222  PRINT Q[1]
1223  GOSUB 1500
1225  IF  END #N THEN 1160
1230  MAT  READ #N;Q
1235  IF Q[1]=0 THEN 1160
1240  PRINT Q[1]
1245  GOSUB 1500
1250  GOTO 1230
1300  FOR C1=C1 TO C
1305  GOSUB 3000
1310  IF  END #N1 THEN 1380
1312  PRINT C[C1,1]
1313  GOSUB 1500
1315  MAT  PRINT #N1;X
1320  NEXT C1
1330  MAT X=ZER
1335  IF  END #N1 THEN 1350
1340  MAT  PRINT #N1;X
1345  GOTO 1340
1350  N1=N1+1
1355  IF N1<6 THEN 1335
1360  GOSUB 9800
1370  END 
1380  N1=N1+1
1385  IF N1<6 THEN 1310
1390  GOTO 1160
1400  IF  END #N THEN 1430
1405  MAT  READ #N;Q
1407  IF Q[1]=0 THEN 1330
1410  IF  END #N1 THEN 1445
1415  MAT  PRINT #N1;Q
1420  GOTO 1400
1430  N=N+1
1435  IF N<4 THEN 1400
1440  GOTO 1330
1445  N1=N1+1
1450  IF N1<6 THEN 1410
1455  GOTO 1220
1500  FOR I=1 TO 50
1505  PRINT '21;
1510  NEXT I
1520  RETURN 
2000  X1=INT(P[2]/100)
2010  X=(P[2]-X1*100)*10^4+X1
2020  RETURN 
3000  FOR I=4 TO 8
3005  FOR I1=I+1 TO 9
3010  IF C[C1,I1]=0 THEN 3045
3015  IF C[C1,I] <= C[C1,I1] THEN 3035
3020  X=C[C1,I]
3025  C[C1,I]=C[C1,I1]
3030  C[C1,I1]=X
3035  NEXT I1
3040  NEXT I
3045  FOR I=4 TO 9
3050  C[C1,I]=C[C1,I]-INT(C[C1,I]/10^4)*10^4
3055  NEXT I
3060  FOR I=1 TO 3
3065  X[I]=C[C1,I]
3070  NEXT I
3075  J0=4
3080  FOR I=4 TO 6 STEP 2
3085  X=INT(C[C1,J0+1]/100)
3090  X[I]=C[C1,J0]*100+X
3095  X[I+1]=(C[C1,J0+1]-X*100)*10^4+C[C1,J0+2]
3100  J0=J0+3
3105  NEXT I
3110  RETURN 
9800  FOR I=2 TO 5
9805  READ #I,1
9810  NEXT I
9820  FOR N=4 TO 5
9825  FOR R=1 TO 800
9830  MAT  READ #N;Q
9840  MAT  PRINT #(N-2);Q
9845  NEXT R
9850  NEXT N
9855  RETURN 
9999  END 
