1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        PJPLAC:  CTC PROJECTION PROGRAMS
4  REM
5  REM        36212  REV B  PART 5 OF 10  6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  REM
9  REM
10  DIM F[64],D[16,24],L[16]
11  DIM A$[20]
20  MAT  READ L
21  DATA 2.2E+06,2.2002E+06,2.20022E+06,2.2003E+06,2.20035E+06,2.2004E+06,2.2005E+06
22  DATA 3.0001E+06,3.3001E+06,3.3002E+06,3.3003E+06,3.3601E+06,3.3602E+06,4.46E+06
23  DATA 5.5E+06,5.50036E+06
100  FILES IN1
150  MAT D=ZER
200  PRINT "CURRENT DATE";
205  INPUT D
210  D1=INT(D/10^4)
215  IF D1>0 AND D1<13 THEN 230
220  PRINT '7'7'7'7"INVALID DATE"
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 "BEGINNING FISCAL YEAR";
255  INPUT F5
260  IF F5>71 AND F5<99 THEN 275
265  PRINT '7'7"WHAT";
270  GOTO 255
275  PRINT "BEGINNING MONTH";
280  INPUT M3
285  IF M3>0 AND M3<12 THEN 300
290  PRINT '7'7"WHAT";
295  GOTO 280
300  P9=66
310  F1=0
320  GOSUB 8000
1000  FOR P=1 TO 16
1002  Z$="####-###"
1004  X$="0"
1006  Z[1]=INT(L[P]/1000)
1010  Z[2]=L[P]-Z[1]*1000
1015  GOSUB 9000
1017  PRINT 
1020  FOR L1=1 TO 6
1025  GOSUB 4000
1030  PRINT A$;TAB(15);
1035  Z$="##### "
1040  X$=" "
1045  FOR I=M3 TO 12
1050  Z[1]=F[I]
1055  GOSUB 9000
1060  D[P,I]=D[P,I]+F[I]
1065  NEXT I
1067  K=13
1070  FOR I=13 TO 48 STEP 3
1072  Z[1]=0
1075  FOR J=0 TO 2
1080  Z[1]=Z[1]+F[I+J]
1085  NEXT J
1090  D[P,K]=D[P,K]+Z[1]
1095  GOSUB 9000
1097  K=K+1
1100  NEXT I
1105  PRINT 
1110  NEXT L1
1115  PRINT "TOTAL";TAB(15);
1120  FOR I=M3 TO 24
1125  Z[1]=D[P,I]
1135  GOSUB 9000
1140  NEXT I
1145  K=2
1147  GOSUB 9900
1150  P9=P9+9
1155  IF P9<52 THEN 1170
1160  GOSUB 8000
1170  NEXT P
1175  F1=1
1180  GOSUB 8000
1185  FOR P=1 TO 16
1190  Z$="####-###"
1195  X$="0"
1200  Z[1]=INT(L[P]/1000)
1205  Z[2]=L[P]-Z[1]*1000
1210  GOSUB 9000
1215  PRINT TAB(15);
1220  Z$="##### "
1230  X$=" "
1235  FOR J=M3 TO 24
1240  Z[1]=D[P,J]
1245  GOSUB 9000
1250  NEXT J
1260  K=2
1265  GOSUB 9900
1280  NEXT P
1290  END 
3230  P9=14
4000  R=32*(L1-1)+1
4010  R1=R+2*(P-1)
4020  READ #1,R1
4030  MAT  READ #1;F
4040  GOTO L1 OF 4050,4065,4070,4075,4080,4085
4050  A$=" END USER"
4060  RETURN 
4065  A$=" OEM"
4067  RETURN 
4070  A$=" INTERNATIONAL"
4072  RETURN 
4075  A$=" LEASE CO"
4077  RETURN 
4080  A$=" CTC LEASES"
4082  RETURN 
4085  A$=" INSTALLMENT"
4087  RETURN 
8000  K=66-P9+4
8005  GOSUB 9900
8010  PRINT TAB(54)"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"
8015  PRINT TAB(71)"PROJECTED PLACEMENTS"
8020  Z$="##/##/##"
8025  X$=" "
8030  Z[1]=D1
8035  Z[2]=D2
8040  Z[3]=D3
8045  PRINT TAB(71)"      ";
8050  GOSUB 9000
8055  PRINT 
8060  IF F1 THEN 8075
8065  PRINT 
8070  GOTO 8090
8075  PRINT TAB(71)"   TOTALS ONLY"
8090  K=2
8095  GOSUB 9900
8096  X=(13-M3)*6
8097  IF SGN(X-17)>-1 THEN 8100
8098  X1=15
8099  GOTO 8104
8100  X1=17+INT((X-17)/2)
8104  PRINT TAB(X1)"FISCAL YEAR ";
8105  Z$="##-##"
8110  Z[1]=F5
8120  Z[2]=F5+1
8125  GOSUB 9000
8127  IF X+19<72 THEN 8130
8128  PRINT TAB(71)"";TAB(X+19-71)"FISCAL YEAR ";
8129  GOTO 8135
8130  PRINT TAB(X+19)"FISCAL YEAR ";
8135  Z[1]=F5+1
8140  Z[2]=F5+2
8145  GOSUB 9000
8150  PRINT "       FISCAL YEAR ";
8155  Z[1]=F5+2
8160  Z[2]=F5+3
8165  GOSUB 9000
8170  PRINT "       FISCAL YEAR ";
8175  Z[1]=F5+3
8180  Z[1]=F5+4
8181  GOSUB 9000
8182  PRINT 
8183  PRINT TAB(17);
8184  GOTO M3 OF 8185,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196
8185  PRINT "AUG  ";
8186  PRINT "SEPT   ";
8187  PRINT "OCT   ";
8188  PRINT "NOV   ";
8189  PRINT "DEC   ";
8190  PRINT "JAN   ";
8191  PRINT "FEB   ";
8192  PRINT "MAR   ";
8193  PRINT "APR   ";
8194  PRINT "MAY  ";
8195  PRINT "JUNE  ";
8196  PRINT "JULY";
8212  PRINT "  QTR1  QTR2  QTR3  QTR4  QTR1  QTR2  QTR3  QTR4  ";
8215  PRINT "QTR1  QTR2  QTR3  QTR4"
8220  K=2
8225  GOSUB 9900
8230  P9=14
8240  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 K5=1 TO K
9910  PRINT "    "
9920  NEXT K5
9930  RETURN 
9999  END 
