1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************2  REM
3  REM        R3PRT:  CTC PROJECTION PROGRAMS
4  REM
5  REM        36212  REV B   PART 9 OF 10  6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  REM
9  H$=""
10  DIM I[32],R[32]
11  DIM A$[20]
100  FILES R3
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
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
372  M1=1
373  M2=12
375  IF A$[1,1]="Q" THEN 1050
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  REM
1060  GOSUB 8000
1062  MAT  READ #1,1;R
1065  PRINT "A S S E T S"
1067  PRINT 
1070  PRINT " CURRENT"
1075  I1=1
1077  PRINT "  CASH & C.D.'S";
1078  GOSUB F2 OF 1500,2000
1080  PRINT "  ACCT REC. (NET)";
1085  GOSUB F2 OF 1500,2000
1090  PRINT "  INVENTORY";
1095  GOSUB F2 OF 1500,2000
1100  PRINT "  PREPAID EXP";
1105  GOSUB F2 OF 1500,2000
1110  PRINT " TOTAL CURRENT";
1115  I1=22
1120  GOSUB F2 OF 1500,2000
1125  PRINT 
1130  PRINT " L/T & N/C NOTES REC.";
1135  I1=5
1140  GOSUB F2 OF 1500,2000
1142  PRINT 
1145  PRINT " FIXED"
1150  PRINT "  PROP.,PLANT & EQUIP.";
1155  GOSUB F2 OF 1500,2000
1160  PRINT "  LEASED EQUIPMENT";
1165  GOSUB F2 OF 1500,2000
1170  PRINT "  LESS: ACCUM. DEPR.";
1175  GOSUB F2 OF 1500,2000
1180  PRINT " TOTAL FIXED";
1185  I1=23
1190  GOSUB F2 OF 1500,2000
1195  PRINT 
1200  PRINT " OTHER (INCLUDING LAND)";
1205  I1=9
1210  GOSUB F2 OF 1500,2000
1215  PRINT 
1220  PRINT "T O T A L  ASSETS";
1225  I1=24
1230  GOSUB F2 OF 1500,2000
1235  PRINT 
1240  PRINT 
1245  PRINT "L I A B I L I T I E S  &  E Q U I T Y"
1247  PRINT 
1250  PRINT " CURRENT"
1255  PRINT "  CURRENT PROTION OF L.T.";
1260  I1=10
1265  GOSUB F2 OF 1500,2000
1270  PRINT "  ACCOUNTS PAYABLE";
1275  GOSUB F2 OF 1500,2000
1280  PRINT "  NOTES PAYABLE - BANK";
1285  GOSUB F2 OF 1500,2000
1290  PRINT "  ACCRUED EXPENSES";
1295  GOSUB F2 OF 1500,2000
1300  PRINT " TOTAL CURRENT";
1305  I1=25
1310  GOSUB F2 OF 1500,2000
1315  PRINT 
1320  PRINT " RESERVE FOR REMARKETING";
1325  I1=14
1330  GOSUB F2 OF 1500,2000
1335  PRINT 
1340  PRINT " LONG TERM"
1345  PRINT "  NOTES";
1350  GOSUB F2 OF 1500,2000
1355  PRINT "  MORTGAGE & OTHER";
1360  GOSUB F2 OF 1500,2000
1365  PRINT " TOTAL LONG TERM";
1370  I1=26
1375  GOSUB F2 OF 1500,2000
1380  PRINT 
1385  PRINT " DEFERRED INCOME";
1390  I1=17
1392  GOSUB F2 OF 1500,2000
1394  PRINT 
1396  PRINT " TOTAL LIABILITIES";
1398  I1=27
1400  GOSUB F2 OF 1500,2000
1402  PRINT 
1404  PRINT " EQUITY"
1406  PRINT "  COMMON STOCK";
1408  I1=18
1410  GOSUB F2 OF 1500,2000
1412  PRINT "  PAID IN CAPITAL";
1414  GOSUB F2 OF 1500,2000
1416  PRINT "  LESS: TREASURY STOCK";
1418  GOSUB F2 OF 1500,2000
1420  PRINT "  RETAINED EARNINGS";
1422  GOSUB F2 OF 1500,2000
1424  PRINT " TOTAL EQUITY";
1426  I1=28
1428  GOSUB F2 OF 1500,2000
1430  PRINT 
1432  PRINT "T O T A L  LIABILITIES AND EQUITY";
1434  GOSUB F2 OF 1500,2000
1435  FOR M=M4 TO M5
1440  MAT  READ #1,(M+1);I
1445  IF I[24]#I[29] THEN 1470
1450  NEXT M
1460  END 
1470  PRINT 
1475  PRINT "TOTAL ASSETS NOT EQUAL TO TOTAL LIABILITIES & EQUITY"
1480  END 
1500  Z$="#####"
1501  X$=" "
1502  REMذ
1503  PRINT TAB(43);
1504  GOTO 1535
1505  Z[1]=R[I1]
1510  PRINT TAB(35);
1515  GOSUB 8900
1520  PRINT " ";
1535  FOR M=M4 TO M5
1536  MAT  READ #1,(M+1);I
1550  Z[1]=I[I1]
1555  GOSUB 8900
1557  PRINT " ";
1560  NEXT M
1580  PRINT 
1597  I1=I1+1
1598  RETURN 
2000  PRINT TAB(35);
2010  Z$="######"
2020  X$=" "
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);I
2050  T1=T1+I[I1]
2055  NEXT I
2060  Z[1]=T1
2065  GOSUB 8900
2067  PRINT "    ";
2075  NEXT M
2100  GOTO 1580
4240  PRINT '7'7'7"INVALID DATA";H$[3,5];
4250  RETURN 
8000  K=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(44)"PROJECTED BALANCE SHEET - 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(38);
8122  IF M3=1 THEN 8125
8123  PRINT "   ";
8124  GOTO 8126
8125  PRINT "YTD";
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
8170  PRINT 
8185  RETURN 
8500  PRINT TAB(38);
8510  Z$="QTR#        "
8515  X$=" "
8520  FOR I=1 TO 4
8525  Z[1]=I
8530  GOSUB 9000
8535  NEXT I
8540  PRINT 
8545  RETURN 
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 
