100 DIM V(8)›105 DIM A$(10),C$(4),C1$(12),V$(8),Q$(1):POKE 82,0:FOR I=1 TO 8:V(I)=0:NEXT I›110 V$="TPIYMNDW"›120 C$="VSHR"›130 C1$="M+M-M*M/MRMC"›140 Q$=""›150 D5=13›160 S1=4›170 S2=14›180 S3=22›190 S4=30›200 GOSUB 5450›210 PRINT "INVESTMENTS OR LOANS"›220 PRINT "(I/L) ";›230 INPUT A$›240 IF A$="I" THEN 270›250 IF A$="L" THEN 2170›260 GOTO 230›270 GOSUB 5450›280 PRINT "INVESTMENTS:"›290 PRINT ›300 PRINT "1) FUTURE VALUE WITH PERIODIC INTEREST"›310 PRINT "2) FUTURE VALUE WITH INTEREST COMPOUNDED CONTINUOUSLY"›320 PRINT "3) FUTURE VALUE WITH REGULAR DEPOSITS"›330 PRINT "4) FUTURE VALUE WITH CASH FLOWS"›340 PRINT "5) WITHDRAWAL OF FUNDS"›350 PRINT "6) NET PRESENT VALUE"›360 PRINT "7) CALCULATOR MODE"›370 PRINT "8) RETURN TO MAIN MENU"›380 PRINT ›390 PRINT "CHOICE ";›400 INPUT A$›410 A=VAL(A$)›420 IF A<1 THEN 400›430 IF A>8 THEN 400›440 ON A GOTO 470,730,970,1360,1550,1940,450,200›450 GOSUB 4180›460 GOTO 200›470 GOSUB 5450›480 PRINT "FUTURE VALUE WITH PERIODIC INTEREST"›490 PRINT ›500 GOSUB 4710›510 GOSUB 4750›520 PRINT "*";›530 GOSUB 4840›540 PRINT "*";›550 GOSUB 4880›560 IF E=4 THEN 580›570 GOSUB 4920›580 GOSUB 4970›590 IF E<>1 THEN 620›600 V(1)=INT(V(2)*(1+V(3)/V(6))^(V(6)*Y)*100+0.5)/100›610 GOSUB 5090›620 IF E<>2 THEN 650›630 V(2)=INT(V(1)/((1+V(3)/V(6))^(V(6)*Y))*100+0.5)/100›640 GOSUB 5120›650 IF E<>3 THEN 680›660 V(3)=INT((V(6)*(V(1)/V(2))^(1/(V(6)*Y))-V(6))*10000+0.5)/10000›670 GOSUB 5150›680 IF E<>4 THEN 710›690 V(4)=LOG(V(1)/V(2))/(V(6)*LOG(1+V(3)/V(6)))›700 GOSUB 5180›710 GOSUB 5330›720 GOTO 270›730 GOSUB 5450›740 PRINT "FUTURE VALUE WITH INTEREST COMPOUNDED CONTINUOUSLY"›750 PRINT ›760 GOSUB 4710›770 GOSUB 4750›780 PRINT "*";›790 GOSUB 4840›800 PRINT "*";›810 GOSUB 4880›820 IF E=4 THEN 840›830 GOSUB 4920›840 IF E<>1 THEN 870›850 V(1)=INT(V(2)*EXP(V(3)*Y)*100+0.5)/100›860 GOSUB 5090›870 IF E<>2 THEN 900›880 V(2)=INT(V(1)/EXP(V(3)*Y)*100+0.5)/100›890 GOSUB 5120›900 IF E<>3 THEN 930›910 V(3)=INT(LOG(V(1)/V(2))/Y*10000+0.5)/10000›920 GOSUB 5150›930 IF E<>4 THEN 710›940 V(4)=INT(LOG(V(1)/V(2))/V(3)*100+0.5)/100›950 GOSUB 5180›960 GOTO 710›970 GOSUB 5450›980 PRINT "FUTURE VALUE WITH REGULAR DEPOSITS"›990 PRINT ›1000 GOSUB 4710›1010 PRINT "*REGULAR DEPOSIT $"›1020 C=6›1030 GOSUB 3950›1040 PRINT "*";›1050 GOSUB 4840›1060 PRINT "*";›1070 GOSUB 4880›1080 IF E=4 THEN 1100›1090 GOSUB 4920›1100 GOSUB 4970›1110 IF E<>1 THEN 1140›1120 V(1)=INT(V(7)*V(6)*((1+V(3)/V(6))^(V(6)*Y)-1)/V(3)*100+0.5)/100›1130 GOSUB 5090›1140 IF E<>3 THEN 1280›1150 V(3)=0.99›1160 I=0›1170 T=INT(V(7)*(((1+V(3)/V(6))^(V(6)*Y)-1)/(V(3)/V(6)))*100+0.5)/100›1180 TE=ABS(V(3)-I)/2›1190 I=V(3)›1200 IF ABS(T-V(1))<5.0E-03 THEN 1260›1210 IF T4 THEN 1310›1290 V(4)=LOG(V(3)*V(1)/(V(6)*V(7))+1)/(V(6)*LOG(1+V(3)/V(6)))›1300 GOSUB 5180›1310 IF E<>7 THEN 710›1320 V(7)=INT(V(1)*(V(3)/V(6))/((1+V(3)/V(6))^(V(6)*Y)-1)*100+0.5)/100›1330 PRINT ›1340 PRINT "REGULAR DEPOSITS REQUIRED:$";V(7)›1350 GOTO 710›1360 GOSUB 5450›1370 PRINT "FUTURE VALUE WITH CASH FLOWS"›1380 PRINT ›1390 GOSUB 4840›1400 GOSUB 4880›1410 PRINT "CASH FLOW (+/-)"›1420 PRINT ›1430 V(1)=0›1440 FOR I=1 TO V(4)›1450 PRINT "CASH FLOW - YEAR #";I›1460 INPUT A$›1470 A=VAL(A$)›1480 V(1)=V(1)+A*(1+V(3))^(V(4)-I)›1490 NEXT I›1500 V(1)=INT(V(1)*100+0.5)/100›1510 GOSUB 5090›1520 TE=V(1)›1530 GOSUB 5270›1540 GOTO 710›1550 GOSUB 5450›1560 PRINT "WITHDRAWAL OF FUNDS"›1570 PRINT ›1580 GOSUB 4750›1590 PRINT "*REGULAR WITHDRAWAL $"›1600 C=7›1610 GOSUB 3950›1620 PRINT "*";›1630 GOSUB 4840›1640 PRINT "*";›1650 GOSUB 4880›1660 IF E=4 THEN 1680›1670 GOSUB 4920›1680 GOSUB 4970›1690 IF E<>2 THEN 1720›1700 V(2)=INT(V(8)*V(6)/V(3)*(1-(1+V(3)/V(6))^(-V(6)*Y))*100+0.5)/100›1710 GOSUB 5120›1720 IF E<>3 THEN 1860›1730 V(3)=0.99›1740 I=0›1750 R=INT(V(2)*V(3)/V(6)*(1/((1+V(3)/V(6))^(V(6)*Y)-1)+1)*100+0.5)/100›1760 TE=ABS(V(3)-I)/2›1770 I=V(3)›1780 IF ABS(R-V(8))<5.0E-03 THEN 1840›1790 IF R4 THEN 1890›1870 V(4)=LOG(V(6)*V(8)/(V(6)*V(8)-V(3)*V(2)))/(V(6)*LOG(1+V(3)/V(6)))›1880 GOSUB 5180›1890 IF E<>8 THEN 710›1900 V(8)=INT(V(2)*V(3)/V(6)*(1/((1+V(3)/V(6))^(V(6)*Y)-1)+1)*100+0.5)/100›1910 PRINT ›1920 PRINT "REGULAR WITHDRAWALS:$";V(8)›1930 GOTO 710›1940 GOSUB 5450›1950 PRINT "NET PRESENT VALUE:$"›1960 PRINT ›1970 PRINT "INITIAL INVESTMENT"›1980 C=1›1990 GOSUB 3950›2000 GOSUB 4840›2010 GOSUB 4880›2020 PRINT "CASH FLOW (+/-)"›2030 PRINT ›2040 NV=-V(2)›2050 FOR I=1 TO V(4)›2060 PRINT "CASH FLOW - YEAR # ";I›2070 INPUT A$›2080 A=VAL(A$)›2090 NV=NV+A/((V(3)+1)^I)›2100 NEXT I›2110 NV=INT(NV*100+0.5)/100›2120 PRINT ›2130 PRINT "NET PRESENT VALUE:$";NV›2140 TE=NV›2150 GOSUB 5270›2160 GOTO 710›2170 GOSUB 5450›2180 PRINT "LOANS:"›2190 PRINT ›2200 PRINT "1) REGULAR LOAN PAYMENTS"›2210 PRINT "2) REMAINING LOAN LIABILITY"›2220 PRINT "3) FINAL LOAN PAYMENT"›2230 PRINT "4) SINGLE PAYMENT LOAN"›2240 PRINT "5) LOAN AMORTIZATION SCHEDULE"›2250 PRINT "6) CALCULATOR MODE"›2260 PRINT "7) RETURN TO MAIN MENU"›2270 PRINT ›2280 PRINT "CHOICE ";›2290 INPUT A$›2300 A=VAL(A$)›2310 IF A<1 THEN 2290›2320 IF A>7 THEN 2290›2330 ON A GOTO 2360,2780,2960,3120,3230,2340,200›2340 GOSUB 4180›2350 GOTO 200›2360 GOSUB 5450›2370 PRINT "REGULAR LOAN PAYMENTS"›2380 PRINT ›2390 PRINT "*";›2400 GOSUB 4790›2410 PRINT "*";›2420 GOSUB 5010›2430 PRINT "*";›2440 GOSUB 4840›2450 PRINT "*";›2460 GOSUB 4880›2470 IF E=4 THEN 2490›2480 GOSUB 4920›2490 GOSUB 4970›2500 IF E<>2 THEN 2550›2510 V(2)=INT(V(7)*V(6)/V(3)*(1-(1+V(3)/V(6))^(-V(6)*Y))*100+0.5)/100›2520 PRINT ›2530 PRINT "AMT OF PRINCIPAL:$";V(2)›2540 GOTO 2760›2550 IF E<>3 THEN 2690›2560 V(3)=0.99›2570 I=0›2580 P=INT(V(7)*V(6)/V(3)*(1-((1+V(3)/V(6))^(-V(6)*Y)))*100+0.5)/100›2590 TE=ABS(V(3)-I)/2›2600 I=V(3)›2610 IF ABS(P-V(2))<5.0E-03 THEN 2670›2620 IF P4 THEN 2720›2700 V(4)=-LOG(1-V(3)*V(2)/(V(6)*V(7)))/(V(6)*LOG(V(3)/V(6)+1))›2710 GOSUB 5180›2720 IF E<>7 THEN 2760›2730 V(7)=INT(V(3)*V(2)/(V(6)*(1-(V(3)/V(6)+1)^(-V(6)*Y)))*100+0.5)/100›2740 PRINT ›2750 PRINT "REQ PAYMENT:$";V(7)›2760 GOSUB 5330›2770 GOTO 2170›2780 GOSUB 5450›2790 PRINT "REMAINING LOAN LIABILITY"›2800 PRINT ›2810 GOSUB 4790›2820 GOSUB 5010›2830 GOSUB 4840›2840 GOSUB 4970›2850 PRINT "LAST PAYMENT # WAS:"›2860 INPUT A$›2870 A=VAL(A$)›2880 FOR J=1 TO A›2890 I=INT(P*V(3)/V(6)*100+0.5)/100›2900 P=P+I-V(7)›2910 NEXT J›2920 LI=INT(P*100+0.5)/100›2930 PRINT ›2940 PRINT "LIABILITY AFTER ";A;" PAYMENTS:$";LI›2950 GOTO 2760›2960 GOSUB 5450›2970 PRINT "LAST LOAN PAYMENT"›2980 PRINT ›2990 GOSUB 4790›3000 GOSUB 5010›3010 GOSUB 4840›3020 GOSUB 5050›3030 GOSUB 4970›3040 FOR J=1 TO V(6)*Y›3050 I=INT(P*V(3)/V(6)*100+0.5)/100›3060 P=P+I-V(7)›3070 NEXT J›3080 LP=INT(P*100+0.5)/100+V(7)›3090 PRINT ›3100 PRINT "LAST PAYMENT:$";V(11)›3110 GOTO 2760›3120 GOSUB 5450›3130 PRINT "SINGLE PAYMENT LOAN"›3140 PRINT ›3150 GOSUB 4790›3160 GOSUB 4840›3170 GOSUB 5050›3180 GOSUB 4970›3190 V(1)=INT(V(2)*(1+V(3)/V(6))^(Y*V(6))*100+0.5)/100›3200 PRINT ›3210 PRINT "TOTAL OWED:$";V(1)›3220 GOTO 2760›3230 C5=0›3240 N5=0›3250 F=0›3260 P1=0›3270 I1=0›3280 GOSUB 5450›3290 PRINT "LOAN AMORTIZATION SCHEDULE"›3300 PRINT ›3310 GOSUB 4790›3320 GOSUB 5010›3330 GOSUB 4840›3340 GOSUB 5050›3350 PRINT "# OF PAYMENTS YEARLY"›3360 GOSUB 3950›3370 PRINT "ENTER THE PERIOD OF THE YEAR IN WHICH THE LOAN BEGAN"›3380 INPUT N›3390 NE=N›3400 NP=(V(4)*12+V(5))/(12/V(6))›3410 NY=INT(((N-1)+NP)/V(6)+0.99)›3420 PRINT "ENTER THE RANGE OF YEARS YOU'D LIKE TO EXAMINE (FIRST, LAST)"›3430 INPUT F1,L1›3440 IF L1<=NY THEN 3460›3450 L1=NY›3460 FOR J1=1 TO L1›3470 IF J1NY THEN 3570›3540 IF N5<>NP THEN 3570›3550 PP=P›3560 F=1›3570 IF J1D5 THEN 3770›3710 IF J13 THEN 3990›3970 PRINT V(3)*100,›3980 GOTO 4000›3990 PRINT V(C),›4000 A$=""›4010 INPUT A$›4020 IF A$<>"" THEN 4040›4030 RETURN ›4040 IF A$<>"MR" THEN 4100›4050 PRINT "MEM=";M;" USE AS VARIABLE HERE (Y/N)"›4060 INPUT A$›4070 IF A$="N" THEN 4000›4080 V(C)=M›4090 RETURN ›4100 IF A$<>"X" THEN 4130›4110 E=C›4120 RETURN ›4130 V(C)=VAL(A$)›4140 IF C<>3 THEN 4160›4150 V(C)=V(C)/100›4160 RETURN ›4170 REM CALCULATOR MODE›4180 GOSUB 5450›4190 M5=0›4200 GOSUB 4530›4210 INPUT A$›4220 IF ASC(A$)>57 THEN 4250›4230 T=VAL(A$)›4240 GOTO 4210›4250 FOR I=1 TO 8›4260 IF A$<>V$(I,I) THEN 4290›4270 PRINT V(I)›4280 T=V(I)›4290 NEXT I›4300 FOR J=1 TO 6›4310 IF A$<>C1$((J-1)*2+1,(J-1)*2+2) THEN 4330›4320 ON J GOSUB 4580,4600,4620,4640,4660,4680›4330 NEXT J›4340 FOR K=1 TO 4›4350 IF A$<>C$(K,K) THEN 4370›4360 ON K GOSUB 4410,4460,4530,4560›4370 NEXT K›4380 IF M5=0 THEN 4210›4390 M5=0›4400 RETURN ›4410 FOR I=1 TO 8›4420 PRINT V$(I,I);" ";V(I)›4430 NEXT I›4440 PRINT ›4450 RETURN ›4460 PRINT "IN WHAT VARIABLE ";›4470 INPUT A$›4480 FOR I=1 TO 8›4490 IF A$<>V$(I,I) THEN 4510›4500 V(I)=M›4510 NEXT I›4520 RETURN ›4530 PRINT C$;" ";C1$;" MEM=";M›4540 PRINT ›4550 RETURN ›4560 M5=1›4570 RETURN ›4580 M=M+T›4590 GOTO 4690›4600 M=M-T›4610 GOTO 4690›4620 M=M*T›4630 GOTO 4690›4640 M=M/T›4650 GOTO 4690›4660 T=M›4670 GOTO 4690›4680 M=0›4690 PRINT "MEM=";M›4700 RETURN ›4710 PRINT "*FUTURE VALUE $"›4720 C=0›4730 GOSUB 3950›4740 RETURN ›4750 PRINT "*PRESENT VALUE $"›4760 C=1›4770 GOSUB 3950›4780 RETURN ›4790 PRINT "PRINCIPAL $"›4800 C=1›4810 GOSUB 3950›4820 P=V(C)›4830 RETURN ›4840 PRINT "ANNUAL INT RATE (%)"›4850 C=2›4860 GOSUB 3950›4870 RETURN ›4880 PRINT "FOR # OF YEARS"›4890 C=3›4900 GOSUB 3950›4910 RETURN ›4920 PRINT "FOR # OF MONTHS"›4930 C=4›4940 GOSUB 3950›4950 Y=V(C-1)+V(C)/12›4960 RETURN ›4970 PRINT "# OF PERIODS (COMPOUNDING, DEPOSITS, WITHDRAWALS, PAYMENTS) YEARLY"›4980 C=5›4990 GOSUB 3950›5000 RETURN ›5010 PRINT "PAYMENTS $"›5020 C=6›5030 GOSUB 3950›5040 RETURN ›5050 PRINT "TERM OF LOAN:"›5060 GOSUB 4880›5070 GOSUB 4920›5080 RETURN ›5090 PRINT ›5100 PRINT "FUTURE VALUE:$";V(1)›5110 RETURN ›5120 PRINT ›5130 PRINT "REQUIRED INVESTMENT:$";V(2)›5140 RETURN ›5150 PRINT ›5160 PRINT "ANNUAL INT RATE (%) REQUIRED:";V(3)*100›5170 RETURN ›5180 V(5)=V(4)-INT(V(4))›5190 V(5)=INT(INT(12*V(5)*10+0.5)/10)›5200 V(4)=INT(V(4))›5210 IF V(5)<>12 THEN 5240›5220 V(4)=V(4)+1›5230 V(5)=0›5240 PRINT ›5250 PRINT "# OF YEARS AND MONTHS:";V(4);",";V(5)›5260 RETURN ›5270 PRINT ›5280 IF TE>=0 THEN 5310›5290 PRINT "THIS IS A LOSING INVESTMENT."›5300 RETURN ›5310 PRINT "THIS IS A PROFITABLE INVESTMENT."›5320 RETURN ›5330 PRINT ›5340 PRINT "HIT TO CONTINUE"›5350 A$=""›5360 INPUT A$›5370 IF A$<>"" THEN 5350›5380 RETURN ›5390 GOSUB 5450›5400 PRINT "LOAN AMORTIZATION SCHEDULE FOR YR ";J1›5410 PRINT "PRIN $";V(2);" RATE ";V(3)*100;"%";" PAYM $";V(7)›5420 PRINT ›5430 PRINT "# BEG BAL PRINC INT END BAL"›5440 RETURN ›5450 PRINT CHR$(125)›5460 RETURN ›HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH