Mortgage analysis and pre-payment calculator.
Content
Source Code
10 LET C=0 20 DIM C$(32) 30 SLOW 100 PRINT AT 0,3;"% %M%O%R%T%G%A%G%E% %P%A%Y%M%E%N%T% %A%N%A%L%Y%S%I%S% " \n1000 PRINT ,,"PRINCIPAL OR MORTGAGE AMOUNT LEFT TO BE PAID? "; \n1010 INPUT P \n1020 PRINT P \n1030 PRINT ,,"TOTAL NUMBER OF MONTHS OR PERIODS LEFT? "; \n1040 INPUT L \n1050 PRINT L \n1060 PRINT ,,"ANNUAL INTEREST RATE? "; \n1070 INPUT R \n1080 PRINT R \n1090 PRINT ,,"DO YOU WANT HARD COPY?" \n1100 INPUT Y$ \n1110 LET Y$=Y$(1) \n1120 PRINT ,,"STARTING WITH WHAT PERIOD?" \n1130 INPUT WP \n1900 FAST \n2000 LET I=R/1200 \n2010 LET T=1 \n2020 FOR N=1 TO L \n2030 LET T=T*(1+I) \n2040 NEXT N \n2050 LET T=1-(1/T) \n2060 LET M=P*I/T \n2070 LET M=INT (M*100+.05)/100 \n2090 FOR N=1 TO L \n2100 IF C<13 THEN GOTO 2140 \n2110 REM \n2120 LET C=0 \n2140 LET A=(INT (P*I*100+.05))/100 \n2150 LET B=M-A \n2160 LET P=P-B \n2170 SCROLL \n2185 IF WP>N THEN GOTO 2310 \n2186 IF Y$="Y" THEN GOTO 2310 \n2190 PRINT "PAYMT NUMBER",N \n2200 SCROLL \n2210 PRINT "PRINCIPAL LEFT",P \n2220 SCROLL \n2230 PRINT "PER. PAYMT.",M \n2240 SCROLL \n2250 PRINT "PRINCIPAL/PER.",B \n2260 SCROLL \n2270 PRINT "INTEREST/PER.",A \n2280 FOR Z=1 TO 3 \n2290 SCROLL \n2300 NEXT Z \n2302 IF INKEY$<>"" THEN PAUSE 40000 \n2305 SLOW \n2310 GOSUB 3000 \n2315 LET C=C+1 \n2320 NEXT N \n2500 STOP \n3000 IF WP>N OR Y$<>"Y" THEN RETURN \n3010 LET B$="PAYMENT NUMBER"+C$( TO 18-LEN STR$ N)+STR$ N \n3020 LPRINT B$ \n3030 LET P$=STR$ P \n3040 GOSUB 3500 \n3050 LET B$="PRINCIPAL LEFT"+C$( TO 18-LEN P$)+P$ \n3070 LPRINT B$ \n3080 LET P$=STR$ M \n3090 GOSUB 3500 \n3100 LET B$="PERIOD PAYMENT"+C$( TO 18-LEN P$)+P$ \n3110 LPRINT B$ \n3120 LET P$=STR$ B \n3130 GOSUB 3500 \n3140 LET B$="PD. PRINC./PER."+C$( TO 17-LEN P$)+P$ \n3150 LPRINT B$ \n3160 LET P$=STR$ A \n3170 GOSUB 3500 \n3180 LET B$="PD. INTEREST/PER."+C$( TO 15-LEN P$)+P$ \n3190 LPRINT B$ \n3200 LPRINT \n3210 LPRINT \n3220 RETURN \n3500 LET PP=VAL P$ \n3510 LET PP=INT (100*PP+.05)/100 \n3520 LET P$=STR$ PP \n3530 IF VAL P$=INT VAL P$ THEN LET P$=P$+".00" \n3540 IF 10*VAL P$=INT (10*VAL P$) THEN LET P$=P$+"0" \n3550 RETURN \n9998 SAVE "MORTGAGE ANALYSI%S" \n9999 RUN 10 LET YS=0 15 DIM Z$(32) 20 LET A$="..............................." 30 PRINT "%I%N%S%T%R%U%C%T%I%O%N%S%?" 40 PAUSE 40000 50 IF INKEY$<>"Y" THEN GOTO 190 60 CLS 70 PRINT "%H%O%W% %T%O% %S%A%V%E% %M%O%N%E%Y% %O%N% %A% %M%O%R%T%G%A%G%E" 80 PRINT ,," THIS PROGRAM IS DESIGNED TO SHOW YOU HOW BY PAYING A SMALL ADDIONAL AMOUNT TO A MONTHLY MORTGAGE PAYMENT CAN PRODUCE A DRASTIC CHANGE IN THE LIFE AND FINAL AMOUNT PAID INTO A MORT- GAGE." 90 PRINT " YOU MAY BE SUPRISED HOW A LITTLE MORE MONEY ADDED TO A MONTHLY PAYMENT CAN SUBTRACT YEARS AND THOUSANDS OF DOLLARS FROM THE ORIGINAL TOTALS, PAR- TICULARLY AT TODAY\' S 29 AND 30 YEAR MATURITIES AND DOUBLE DIGITINTEREST RATES." 100 PRINT AT 21,0;"PRESS ENTER TO CONTINUE :::" 110 INPUT B$ 190 CLS 200 PRINT "WHAT IS THE ORIGINAL OR REMAIN- ING AMOUNT OF THE MORTGAGE?" 205 SLOW 210 INPUT P 220 LET PP=P 230 PRINT ,,"HOW MANY YEARS ARE LEFT TO PAY?" 240 INPUT Y 260 LET L=12*Y 270 LET YY=Y 280 PRINT ,,"WHAT IS THE INTEREST RATE?" 290 INPUT R 292 PRINT ,,"DO YOU WANT HARD COPY?" 294 LET Y$=INKEY$ 296 IF Y$="" THEN GOTO 294 300 CLS 310 FAST 315 IF Y$="Y" THEN GOTO 365 320 SCROLL 325 PRINT A$ 326 SCROLL 330 PRINT "TTL MON EFF XTR $" 335 SCROLL 340 PRINT "YRS PYMT INT PER SAVED" 350 SCROLL 360 PRINT " RT. MON" 365 IF Y$="Y" THEN GOSUB 3000 366 IF Y$="Y" THEN GOTO 380 370 SCROLL 375 PRINT A$ 376 SCROLL 380 FOR Q=Y TO 1 STEP -1 390 FAST 400 LET I=R/1200 410 LET T=1 420 FOR X=1 TO L 430 LET T=T*(1+I) 440 NEXT X 450 LET T=1/T 460 LET T=1-T 470 LET M=P*I/T 480 LET M=INT (M*100+.5)/100 490 IF YY<>Y THEN GOTO 520 500 LET MX=INT ((PP*I/T)*100+.5)/100 510 LET MX=MX*12*YY 520 FOR Z=1 TO L 530 LET A=(INT (P*I*100*100+.5))/100 540 LET B=M-A 550 LET P=P-B 560 IF YS=0 THEN GOSUB 1000 570 LET EM=INT ((M-OP)*100+.05)/100 580 LET MY=Y*M*12 582 LET IR=M-(PP/(Y*12)) 583 IF Y=YY THEN LET ZZ=IR 584 LET IR=R*(IR/ZZ) 585 LET IR=INT ((IR)*100+.05)/100 586 IF Y$="Y" THEN GOTO 592 588 SCROLL 590 PRINT Y;TAB 3;M;TAB 11;IR;TAB 17;EM;TAB 25;INT (MX-MY) 591 IF YY-Q>14 THEN PAUSE 10000 592 IF Y$="Y" THEN GOSUB 2000 600 LET P=PP 610 LET YS=YS+1 620 LET L=L-12 630 LET Y=Y-1 640 NEXT Q 650 SCROLL 660 PRINT A$ 665 SCROLL 670 PRINT "ORIGINAL MORTGAGE IF PAID IN" 680 SCROLL 690 PRINT YY;" YEARS WOULD COST $";MX 700 IF Y$="Y" THEN LPRINT "ORIGINAL MORTGAGE IF PAID IN" 710 IF Y$="Y" THEN LPRINT YY;" YEARS WOULD COST $";MX 720 PAUSE 1000 730 CLS 740 RUN \n1000 LET OP=M \n1010 RETURN \n2000 LET B$=STR$ Y+Z$( TO 3-LEN STR$ Y)+STR$ M+Z$( TO 8-LEN STR$ M)+STR$ IR+Z$( TO 6-LEN STR$ IR)+STR$ EM+Z$( TO 8-LEN STR$ EM)+STR$ (MX-MY) \n2010 LPRINT B$ \n2020 RETURN \n3000 LPRINT A$ \n3010 LPRINT "TTL MON EFF XTR $" \n3020 LPRINT "YRS PYMT INT PER SAVED" \n3030 LPRINT " RT. MON" \n3040 LPRINT A$ \n3050 RETURN \n9998 SAVE "PREPAYMEN%T" \n9999 RUN