1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM APCK1: CTC ACCOUNTS PAYABLE 4 REM 5 REM 36638 REV A PART 11 OF 24 6/73 6 REM 7 REM **** CONTRIBUTED PROGRAM ************************************ 8 REM H$="" 10 DIM A$[20],I$[10],T$[58],M$[58],X$[1],H$[5] 11 DIM P[29],S[9,2],D[2] 100 FILES PI1,PN1,PN2,PN3 120 C8=3 121 PRINT "USE INPUT FILE: PI1 OR PI2"; 122 INPUT A$ 123 IF A$="PI1" THEN 127 124 IF A$="PI2" THEN 127 125 PRINT '7'7"WHAT"; 126 GOTO 122 127 ASSIGN A$,1,W5 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 200 PRINT H$[1,2]"CHECK DATE"; 205 INPUT X 210 GOSUB 4800 215 IF X1>0 AND X1<13 THEN 230 220 PRINT '7'7"INVALID DATE";H$[3,5]; 225 GOTO 200 230 IF X2<1 OR X2>31 THEN 220 235 IF X3<72 OR X3>99 THEN 220 240 D5=X 250 PRINT "BEGINNING CHECK#"; 260 INPUT P6 270 PRINT "CHECKS READY"; 275 INPUT A$ 500 P9=42 1000 REM 1005 T=T1=F1=F2=0 1010 FOR I2=1 TO 200 1015 READ #1,I2;I$ 1020 IF I$="" THEN 1065 1025 MAT READ #1;P 1027 IF P[28]>0 THEN 1070 1030 IF F2 THEN 1045 1035 IF ABS(P[28])P6 THEN 1075 1042 F2=1 1045 IF ABS(P[28])=P6 THEN 1060 1050 GOSUB 3000 1055 T=T1=F1=0 1057 P6=ABS(P[28]) 1060 GOSUB 2000 1065 NEXT I2 1070 IF F2 THEN 1085 1075 PRINT '7'7"BEG. CHECK# NOT ON FILE" 1080 STOP 1085 GOSUB 3000 1087 K=42-P9 1090 GOSUB 9900 1095 END 2000 IF F1 THEN 2025 2010 U6=P[1] 2020 GOSUB 4700 2022 F1=1 2025 GOSUB 4100 2030 G0=0 2035 FOR I0=1 TO 9 2040 IF S[I0,1]#9000 OR S[I0,2]#9115 THEN 2045 2042 G0=G0+P[I0+18] 2045 NEXT I0 2050 REM 2095 PRINT TAB(17);I$;TAB(35); 2100 X=P[2] 2105 GOSUB 4300 2107 PRINT TAB(46); 2110 P[3]=P[3]-G0 2112 S=SGN(P[3]) 2115 X=ABS(P[3])*100 2125 GOSUB 4400 2130 PRINT "."; 2140 GOSUB 4450 2141 IF NOT G0 THEN 2152 2142 PRINT " "; 2143 S=SGN(G0) 2144 X=ABS(G0)*100 2145 Z$=" #####" 2146 X$=" " 2147 X1=INT(X/100) 2148 X2=X-X1*100 2149 GOSUB 4407 2150 PRINT "."; 2151 GOSUB 4450 2152 PRINT TAB(69); 2154 P[3]=P[3]+G0 2155 S=SGN(P[3]) 2156 X=ABS(P[3])*100 2160 GOSUB 4400 2165 PRINT "."; 2170 GOSUB 4450 2172 T=T+X1*S 2173 T1=T1+X2*S 2174 GOSUB 4000 2175 PRINT 2180 P9=P9+1 2210 RETURN 2300 S=SGN(T) 2305 IF T#0 THEN 2315 2310 S=SGN(T1) 2315 X1=ABS(T) 2330 X2=ABS(T1) 2340 RETURN 3000 PRINT TAB(64)"TOTAL"; 3002 GOSUB 2300 3004 GOSUB 4403 3005 PRINT "."; 3006 GOSUB 4450 3007 K=25-P9 3008 GOSUB 9900 3009 PRINT TAB(68); 3010 Z$="#####" 3011 X$=" " 3012 Z[1]=P6 3013 GOSUB 9000 3014 K=4 3015 GOSUB 9900 3016 P9=29 3017 PRINT TAB(3); 3018 X=D5 3020 GOSUB 4310 3025 PRINT TAB(35); 3030 GOSUB 2300 3045 X$="*" 3050 GOSUB 4405 3055 PRINT TAB(52); 3060 GOSUB 4450 3065 PRINT TAB(67); 3070 X$="*" 3075 GOSUB 4405 3080 PRINT " "; 3085 GOSUB 4450 3090 K=4 3095 GOSUB 9900 3100 P9=33 3105 GOSUB 5000 3107 I1=1 3110 GOSUB 5100 3115 GOTO F2 OF 3120,3140,3175 3120 PRINT TAB(12);Z$ 3125 P9=P9+1 3130 I1=I+1 3135 GOTO 3110 3140 PRINT TAB(12);Z$; 3145 IF D2#0 THEN 3160 3150 PRINT 3155 GOTO 3125 3160 GOSUB 5200 3165 PRINT ", ";Z$;" ";D2 3170 GOTO 3125 3175 IF Z$="" THEN 3190 3180 PRINT TAB(12)"ATTN: ";Z$ 3185 P9=P9+1 3190 RETURN 4000 REM 4005 IF T1>-100 THEN 4020 4010 T=T-1 4015 T1=T1+100 4020 IF T1>99 THEN 4045 4025 IF SGN(T)*SGN(T1) >= 0 THEN 4040 4030 T=T-SGN(T) 4035 T1=T1-100*SGN(T1) 4040 RETURN 4045 T=T+INT((T1*.01)) 4050 T1=(T1*.01-INT(T1*.01))*100 4055 IF T1-INT(T1)<.9 THEN 4065 4060 T1=INT(T1)+1 4065 RETURN 4100 REM 4105 J=1 4107 FOR I=4 TO 18 STEP 5 4110 S[J,1]=P[I] 4115 S[J,2]=INT(P[I+1]/100) 4120 S[J+1,1]=P[I+1]-S[J,2]*100 4125 X=INT(P[I+2]/100) 4130 S[J+1,1]=S[J+1,1]*10^4+X 4135 S[J+1,2]=(P[I+2]-X*100)*100 4140 X=INT(P[I+3]/10^4) 4145 S[J+1,2]=S[J+1,2]+X 4150 S[J+2,1]=(P[I+3]-X*10^4)*100 4155 X=INT(P[I+4]/10^4) 4160 S[J+2,1]=S[J+2,1]+X 4165 S[J+2,2]=P[I+4]-X*10^4 4170 J=J+3 4175 NEXT I 4180 RETURN 4300 Z$="##/##/##" 4305 GOTO 4315 4310 Z$="## ## ##" 4315 X$="O" 4320 GOSUB 4800 4325 Z[1]=X1 4330 Z[2]=X2 4335 Z[3]=X3 4340 GOSUB 9000 4350 RETURN 4400 GOSUB 4500 4403 X$=" " 4405 Z$=" #######" 4407 IF S>-1 THEN 4410 4408 Z$[1,1]="<" 4410 Z[1]=X1 4420 GOSUB 9000 4430 RETURN 4450 Z$="## " 4455 X$="O" 4457 IF S>-1 THEN 4460 4458 Z$[3,3]=">" 4460 Z[1]=X2 4470 GOSUB 9000 4480 RETURN 4500 X1=INT(X/100) 4505 I=X-X1*100 4510 X2=INT(I) 4515 IF I-X2<.8 THEN 4525 4520 X2=X2+1 4525 IF X2<100 THEN 4540 4530 X1=X1+1 4535 X2=X2-100 4540 RETURN 4700 K=42-P9+1 4702 GOSUB 9900 4705 PRINT TAB(50);P6;TAB(70); 4706 Z$=" ####" 4707 X$=" " 4708 Z[1]=U6 4709 GOSUB 9000 4710 K=3 4715 GOSUB 9900 4720 P9=4 4730 RETURN 4800 X1=INT(X/10^4) 4805 X2=INT((X-X1*10^4)/100) 4810 X3=X-X1*10^4-X2*100 4830 RETURN 5000 REM 5002 X=U6 5004 FOR N=1 TO C8 5006 IF X<401 THEN 5016 5008 X=X-400 5010 NEXT N 5012 T$="" 5014 RETURN 5016 R=INT(X/2) 5018 R1=2 5020 IF R*2=X THEN 5026 5022 R=R+1 5024 R1=1 5026 READ #(N+1),R;M$,D[1],T$,D[2] 5028 IF D[R1]#-1 THEN 5034 5030 T$="" 5032 RETURN 5034 IF R1=2 THEN 5038 5036 T$=M$ 5038 D0=SGN(D[R1]) 5039 D1=INT(ABS(D[R1])/10^5) 5040 D2=ABS(D[R1])-D1*10^5 5042 RETURN 5100 J=1 5105 Z$="" 5110 FOR I=I1 TO LEN(T$) 5115 F2=1 5120 IF T$[I,I]='17 THEN 5175 5125 F2=2 5130 IF T$[I,I]='18 THEN 5175 5135 Z$[J,J]=T$[I,I] 5140 J=J+1 5145 IF T$[I,I]="," THEN 5155 5150 IF T$[I,I]#"." THEN 5165 5155 Z$[J,J]=" " 5160 J=J+1 5165 NEXT I 5170 F2=3 5175 RETURN 5200 X=INT(D2/100) 5205 RESTORE 150 5210 FOR J1=1 TO 52 5215 READ X1 5220 IF X= 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