1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        R2PRT:  CTC PROJECTION PROGRAMS
4  REM
5  REM        36212  REV B  PART 7 OF 10    6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  REM
9  H$=""
10  DIM H[32]
11  DIM A$[20],L$[34],M$[34]
100  FILES R2
200  PRINT H$[1,2]"ENTER CURRENT DATE";
205  INPUT D
210  D1=INT(D/10^4)
215  IF D1>0 AND D1<13 THEN 230
220  GOSUB 4240
225  GOTO 200
230  D2=INT((D-D1*10^4)/100)
235  IF D2<1 OR D2>31 THEN 220
240  D3=D-D1*10^4-D2*100
245  IF D3<72 OR D3>99 THEN 220
250  PRINT "NAME1";
252  L$[1,1]=" "
255  INPUT L$[2,34]
260  PRINT "NAME2";
261  M$[1,1]=" "
262  INPUT M$[2,34]
300  PRINT "FISCAL YEAR (YY)";
305  INPUT F1
310  IF F1>71 AND F1<79 THEN 325
315  GOSUB 4240
320  GOTO 300
325  PRINT "ENTER PROJECTED YEAR (1,2,3 OR 4)";
330  INPUT M3
335  IF M3>0 AND M3<5 THEN 350
340  GOSUB 4240
345  GOTO 325
350  PRINT "REPORT BY MONTH OR QUARTER (M/Q)";
355  INPUT A$
360  F2=1
365  IF A$[1,1]="M" THEN 1000
370  F2=2
375  IF A$[1,1]="Q" THEN 1055
380  GOSUB 4240
385  GOTO 350
1000  PRINT "ENTER MONTHLY INTERVAL (M1,M2)";
1030  INPUT M1,M2
1035  IF M1>0 AND M1<13 AND M2>0 AND M2<13 AND M1 <= M2 THEN 1050
1040  GOSUB 4240
1045  GOTO 1000
1050  M4=M1+12*(M3-1)
1052  M5=M2+12*(M3-1)
1055  P9=66
1060  GOSUB 8000
1062  MAT  READ #1,1;H
1063  L4=H[4]
1064  L5=H[24]
1065  PRINT "CASH RECEIVED"
1070  I1=2
1075  PRINT " SALES";
1080  GOSUB F2 OF 1500,2000
1085  PRINT " LEASING CO.";
1090  GOSUB F2 OF 1500,2000
1095  PRINT " CTC LEASE & MAINT";
1097  I1=5
1100  GOSUB F2 OF 1500,2000
1105  PRINT " EXISTING RECEIVABLES";
1110  GOSUB F2 OF 1500,2000
1112  PRINT " LIFE INVESTORS INC.";
1120  GOSUB F2 OF 1500,2000
1125  PRINT " FROST BANK";
1130  GOSUB F2 OF 1500,2000
1135  PRINT " NOTES";
1140  GOSUB F2 OF 1500,2000
1142  PRINT "TOTAL CASH RECEIVED";
1143  I1=25
1145  GOSUB F2 OF 1500,2000
1146  PRINT 
1147  I1=10
1160  PRINT "CASH DISBURSEMENTS"
1165  PRINT " COST OF GOODS SOLD-MATERIAL";
1170  GOSUB F2 OF 1500,2000
1175  PRINT " CTC LEASES-MATERIAL";
1180  GOSUB F2 OF 1500,2000
1185  PRINT " DIRECT LABOR";
1190  GOSUB F2 OF 1500,2000
1195  PRINT " OPERATING EXPENSES"
1197  PRINT "   SALARIES AND COMMISSIONS";
1200  GOSUB F2 OF 1500,2000
1210  PRINT "   OTHER";
1215  GOSUB F2 OF 1500,2000
1225  PRINT " DISTRIBUTION OF PAYABLE BAL.";
1235  GOSUB F2 OF 1500,2000
1240  PRINT " CAP. EQUIP.";
1245  GOSUB F2 OF 1500,2000
1250  PRINT " DEBT PRINCIPAL (BLDG & EQ)";
1255  GOSUB F2 OF 1500,2000
1260  PRINT " DEBT INTEREST";
1265  GOSUB F2 OF 1500,2000
1270  PRINT " DEBT PRINCIPAL (BANK)";
1275  GOSUB F2 OF 1500,2000
1280  PRINT L$;
1285  GOSUB F2 OF 1500,2000
1290  PRINT M$;
1295  GOSUB F2 OF 1500,2000
1300  PRINT "TOTAL CASH DISBURSEMENTS";
1301  I1=26
1302  GOSUB F2 OF 1500,2000
1303  PRINT 
1304  I1=22
1305  PRINT "NET CASH";
1310  GOSUB F2 OF 1500,2000
1315  PRINT 
1320  PRINT "BEGINNING CASH BALANCE";
1325  GOSUB F2 OF 1500,2000
1330  PRINT 
1335  PRINT "ENDING CASH BALANCE";
1340  GOSUB F2 OF 1500,2000
1375  END 
1500  Z$="####"
1501  X$=" "
1503  PRINT TAB(42);
1504  T=0
1535  FOR M=M4 TO M5
1536  MAT  READ #1,(M+1);H
1545  T=T+H[I1]
1550  Z[1]=H[I1]
1555  GOSUB 8900
1557  PRINT " ";
1560  NEXT M
1565  Z$[5,5]="#"
1570  Z[1]=T
1575  GOSUB 8900
1580  PRINT 
1585  P9=P9+1
1590  IF P9<60 THEN 1597
1595  GOSUB 8000
1597  I1=I1+1
1598  RETURN 
2000  PRINT TAB(35);
2010  Z$="#####"
2020  X$=" "
2025  T=0
2030  M1=1+12*(M3-1)
2035  FOR M=M1 TO M1+9 STEP 3
2040  T1=0
2045  FOR I=1 TO 3
2046  MAT  READ #1,(M+I);H
2050  T1=T1+H[I1]
2055  NEXT I
2060  Z[1]=T1
2065  GOSUB 8900
2067  PRINT "    ";
2070  T=T+T1
2075  NEXT M
2085  Z[1]=T
2090  Z$[6,6]="#"
2095  GOSUB 8900
2100  GOTO 1580
4240  PRINT '7'7'7"INVALID DATA";H$[3,5];
4250  RETURN 
8000  K=66-P9+4
8010  GOSUB 9900
8015  PRINT TAB(38)"C O M P U T E R  T E R M I N A L  C O R P O R A T I O N"
8020  PRINT TAB(45)"PROJECTED CASH FLOW - FISCAL YEAR  ";
8025  Z$="##-##"
8030  X$=" "
8035  Z[1]=F1
8040  Z[2]=F1+1
8045  GOSUB 9000
8050  PRINT 
8055  PRINT TAB(62);
8060  Z$="##/##/##"
8065  Z[1]=D1
8070  Z[2]=D2
8075  Z[3]=D3
8080  GOSUB 9000
8085  K=2
8090  GOSUB 9900
8095  PRINT TAB(53)"(FIGURES ROUNDED TO 1000'S)"
8100  K=2
8110  GOSUB 9900
8120  GOTO F2 OF 8121,8500
8121  PRINT TAB(37);
8123  PRINT "   ";
8126  FOR M=M1 TO M2
8127  GOTO M OF 8130,8132,8134,8136,8138,8140
8128  GOTO M-6 OF 8142,8144,8146,8148,8150,8152
8130  PRINT "    AUG";
8131  GOTO 8160
8132  PRINT "   SEPT";
8133  GOTO 8160
8134  PRINT "    OCT";
8135  GOTO 8160
8136  PRINT "    NOV";
8137  GOTO 8160
8138  PRINT "    DEC";
8139  GOTO 8160
8140  PRINT "    JAN";
8141  GOTO 8160
8142  PRINT "    FEB";
8143  GOTO 8160
8144  PRINT "    MAR";
8145  GOTO 8160
8146  PRINT "    APR";
8147  GOTO 8160
8148  PRINT "    MAY";
8149  GOTO 8160
8150  PRINT "   JUNE";
8151  GOTO 8160
8152  PRINT "   JULY";
8160  NEXT M
8162  PRINT "  TOTAL"
8170  K=2
8175  GOSUB 9900
8180  P9=14
8185  RETURN 
8500  PRINT TAB(37);
8510  Z$="QTR#       "
8515  X$=" "
8520  FOR I=1 TO 4
8525  Z[1]=I
8530  GOSUB 9000
8535  NEXT I
8540  PRINT "TOTAL"
8545  GOTO 8170
8900  IF SGN(Z[1])#-1 THEN 8930
8905  PRINT "<";
8910  GOSUB 9000
8915  PRINT ">";
8920  RETURN 
8930  PRINT " ";
8940  GOSUB 9000
8945  PRINT " ";
8950  RETURN 
9000  REM
9003  LET Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM Y$[10],Z$[72]
9005  LET Y$="0123456789"
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 
