1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM ARSORT : CTC ACCOUNTS RECEIVABLE 4 REM 5 REM 36214 REV B PART 13 OF 13 2/73 6 REM 7 REM **** CONTRIBUTED PROGRAM ************************************ 10 DIM F[335,4],T[3,2] 11 DIM Y$[10],A$[20],Z$[20],X$[1],I$[6] 12 P0=0 20 PRINT "(1) TOP OF FORM OR (2) ABDICK"; 25 INPUT P5 100 FILES ARD1 101 PRINT "FILE# (1 OR 2)"; 102 INPUT X 103 IF X=1 THEN 200 104 ASSIGN "ARD2",1,W5 105 IF X=2 THEN 200 106 PRINT '7'7"WHAT"; 107 GOTO 101 200 PRINT "CURRENT DATE"; 205 INPUT X 210 D1=INT(X/10^4) 215 D2=INT((X-D1*10^4)/100) 220 D3=X-D1*10^4-D2*100 300 PRINT "SORT BY ACCT# OR REF# (A/R)"; 305 INPUT A$ 310 G0=1 315 IF A$[1,1]="A" THEN 500 320 G0=2 325 IF A$[1,1]="R" THEN 500 330 PRINT '7'7'7"WHAT"; 335 GOTO 305 500 MAT T=ZER 505 MAT F=ZER 510 Y$="0123456789" 515 P9=66 520 F0=0 1000 FOR I0=1 TO 335 1005 IF END #1 THEN 1070 1010 FOR J=1 TO 4 1015 READ #1;F[I0,J] 1020 NEXT J 1030 NEXT I0 1035 GOTO 1200 1070 F0=1 1200 I0=I0-1 1285 FOR J1=2 TO I0 1290 FOR J2=J1 TO 2 STEP -1 1292 GOTO G0 OF 1295,1322 1295 X=INT(F[J2,1]/100) 1300 X1=INT(F[J2-1,1]/100) 1310 IF X>X1 THEN 1380 1315 IF X#X1 THEN 1325 1320 IF F[J2,2] >= F[J2-1,2] THEN 1380 1321 GOTO 1325 1322 IF ABS(F[J2,3]) >= ABS(F[J2-1,3]) THEN 1380 1325 FOR J3=1 TO 4 1330 X=F[J2,J3] 1340 F[J2,J3]=F[J2-1,J3] 1350 F[J2-1,J3]=X 1360 NEXT J3 1370 NEXT J2 1380 NEXT J1 2000 REM 2010 GOSUB 8000 2015 GOTO G0 OF 2020,2035 2020 J2=INT(F[1,1]/100) 2025 J3=F[1,2] 2030 GOTO 2080 2035 J2=ABS(F[1,3]) 2080 FOR J=1 TO I0 2085 X=INT(F[J,1]/100) 2087 X1=F[J,1]-X*100 2088 GOTO G0 OF 2090,2093 2090 IF X=J2 AND F[J,2]=J3 THEN 2115 2092 GOTO 2095 2093 IF ABS(F[J,3])=J2 THEN 2115 2095 GOSUB 6000 2100 GOSUB 2300 2105 GOSUB 6000 2107 P9=P9+3 2110 GOTO G0 OF 2111,2114 2111 J2=X 2112 J3=F[J,2] 2113 GOTO 2115 2114 J2=ABS(F[J,3]) 2115 GOSUB G0 OF 3005,3105 2120 GOSUB G0 OF 3100,3000 2125 S=SGN(F[J,3]) 2130 T[1,1]=F[J,4]*S 2135 T[1,2]=X1*S 2140 I=1 2145 GOSUB 2325 2150 P9=P9+1 2155 IF P9<58 THEN 2165 2160 GOSUB 8000 2165 NEXT J 2205 GOSUB 6000 2210 GOSUB 2300 2215 GOSUB 6000 2220 GOSUB 2315 2225 P9=P9+4 2230 IF F0=0 THEN 500 2235 IF I$="" THEN 9999 2240 CHAIN I$,H3 2300 PRINT "TOTAL"; 2305 I=2 2310 GOTO 2325 2315 PRINT "GRAND TOTAL"; 2320 I=3 2325 Z$="$ " 2330 IF T[I,1] >= 0 AND T[I,2] >= 0 THEN 2345 2335 Z$="$-" 2345 PRINT TAB(38);Z$; 2350 Z$="#######." 2355 X$=" " 2360 Z[1]=T[I,1] 2365 GOSUB 9000 2370 Z$="##" 2375 X$="0" 2380 Z[1]=T[I,2] 2385 GOSUB 9000 2390 GOSUB 6000 2395 IF I=3 THEN 2440 2400 X2=T[I+1,1]+T[I,1] 2405 X3=T[I+1,2]+T[I,2] 2410 GOSUB 3300 2420 T[I+1,1]=X2 2430 T[I+1,2]=X3 2435 T[I,1]=T[I,2]=0 2440 RETURN 3000 PRINT TAB(21); 3005 X$=" " 3010 IF X#0 THEN 3025 3015 PRINT " "; 3020 GOTO 3045 3025 Z$="####" 3030 Z[1]=X 3035 GOSUB 9000 3040 X$="0" 3045 Z$="######" 3050 Z[1]=F[J,2] 3055 GOSUB 9000 3060 RETURN 3100 PRINT TAB(25); 3105 Z$="######" 3110 X$=" " 3115 Z[1]=ABS(F[J,3]) 3120 GOSUB 9000 3125 RETURN 3300 REM 3310 IF X3>-100 THEN 3325 3315 X2=X2-1 3320 X3=X3+100 3325 IF X3>99 THEN 3350 3330 IF SGN(X2)*SGN(X3) >= 0 THEN 3345 3335 X2=X2-SGN(X2) 3340 X3=X3-100*SGN(X3) 3345 RETURN 3350 X2=X2+INT((X3*.01)) 3355 X3=(X3*.01-INT(X3*.01))*100 3360 IF X3-INT(X3)<.9 THEN 3370 3365 X3=INT(X3)+1 3370 RETURN 6000 PRINT 6010 FOR H=1 TO 30 6020 PRINT '21; 6030 NEXT H 6040 RETURN 6500 ASSIGN "DT1",1,W5 6502 READ #1,8;I$,H3,A$,D1,D2,D3,G0 6505 P5=1 6510 ASSIGN A$,1,W5 6520 GOTO 500 8000 GOTO P5 OF 8001,8003 8001 PRINT '12'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21'21; 8002 GOTO 8005 8003 K=66-P9 8004 GOSUB 9900 8005 K=4 8007 GOSUB 9900 8010 A$="ACCT#" 8015 IF G0=1 THEN 8025 8020 A$="REF#" 8025 PRINT "INPUT FILE BY ";A$;" -- ";D1;"/";D2;"/";D3;TAB(41)"PAGE: "; 8030 Z$="###" 8035 X$=" " 8040 Z[1]=P0=P0+1 8045 GOSUB 9000 8050 K=3 8055 GOSUB 9900 8060 GOTO G0 OF 8065,8075 8065 PRINT " ACCOUNT#";TAB(27)"REF#"; 8070 GOTO 8080 8075 PRINT " REF#";TAB(23)"ACCOUNT#"; 8080 PRINT TAB(44);"AMOUNT" 8085 K=2 8090 GOSUB 9900 8095 P9=10 8100 RETURN 9000 REM 9003 LET Z2=Z3=Z4=Z5=Z7=Z8=Z9=1 9006 LET Z0=Z9-1 9007 LET Z0=Z0+1 9008 IF Z0=LEN(Z$)+1 THEN 9059 9009 IF Z$[Z0,Z0]="#" THEN 9016 9010 IF Z$[Z0,Z0+1]=".#" THEN 9016 9011 IF Z$[Z0,Z0+1]="+#" THEN 9014 9012 PRINT Z$[Z0,Z0]; 9013 GOTO 9007 9014 LET Z4=0 9015 GOTO 9007 9016 LET Z=100 9017 LET Z6=Z[Z2] 9018 LET Z9=Z0-1 9019 LET Z9=Z9+1 9020 IF Z$[Z9,Z9]="." THEN 9023 9021 IF Z$[Z9,Z9]="#" THEN 9019 9022 GOTO 9027 9023 IF Z5#1 THEN 9027 9024 LET Z5=0 9025 LET Z=Z9 9026 GOTO 9019 9027 IF Z#100 THEN 9029 9028 LET Z=Z9 9029 IF Z4=1 THEN 9034 9030 IF Z6 >= 0 THEN 9033 9031 PRINT "-"; 9032 GOTO 9034 9033 PRINT " "; 9034 LET Z6=ABS(Z6)+10^(Z-Z9-1) 9035 FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1 9036 IF Z$[Z-Z1,Z-Z1]#"." THEN 9041 9037 PRINT "."; 9038 LET Z3=0 9039 LET Z7=2 9040 GOTO 9055 9041 LET Z8=INT(Z6/(10^(Z1+Z7-2))) 9042 IF Z6<10^(Z-Z0) THEN 9045 9043 PRINT "#"; 9044 GOTO 9055 9045 LET Z6=Z6-Z8*10^(Z1+Z7-2) 9046 IF Y$[Z8+1,Z8+1]="0" THEN 9048 9047 LET Z3=0 9048 IF Z3=0 THEN 9054 9049 IF Z1#1 THEN 9052 9050 PRINT "0"; 9051 GOTO 9055 9052 PRINT X$; 9053 GOTO 9055 9054 PRINT Y$[Z8+1,Z8+1]; 9055 NEXT Z1 9056 LET Z3=Z4=Z5=Z7=1 9057 LET Z2=Z2+1 9058 GOTO 9006 9059 RETURN 9900 FOR I=1 TO K 9910 PRINT 9920 NEXT I 9930 RETURN 9999 END