! A program to calculate payments on a loan by duration and interest rates.
! begun 5/13/83 by ron
! This program outputs the results of the fancy version to a file called
! AMORTZ.DAT. If you run the program again, it writes the new listing over
! the old one.
! If you want to append several runs, replace OUTPUT with APPEND
! where the file AMORTZ.DAT is opened.
map1 loan,f ! loan amount in dollars
map1 rate,f ! interest rate
map1 lenght,f ! length of loan in years
map1 a,f
map1 dummy,s,1
map1 choice,f
menu:
? tab(-1,0)
? tab(5,5)
? "Here are the choices for running this program"
?
? "1. Run just the quickest version..............."
?
? "2. Run the fancy one with monthly listings....."
?
? "3. Exit this program stage left................"
?
input "Enter the number of your choosing................>",choice
calculate:
let i=rate/12/100
let m=length*12
let l=loan
let a=(i*l)/((1-(i+1)^(-m)))
goto answer
fancy:
? tab(-1,0)
? tab(8,10)
open #1, "AMORTZ.DAT", output
input "Enter loan amount in dollars......$",loan
?#1, "Enter loan amount in dollars......$",loan
?
input "Enter annual interest rate.........",rate
?#1, "Enter annual interest rate.........",rate
?
input "Enter loan duration in years.......",length
?#1, "Enter loan duration in years.......",length
let i=rate/12/100
let m=length*12
let l=loan
let a=(i*l)/((1-(i+1)^(-m)))
let x=a
let x=(int(100*(x+.005)))/100
let a=x
?#1
?#1
?#1
?
?
? "The monthly payment is ---------- $",a
?#1, "The monthly payment is ---------- $",a
?
?
?#1
?#1
input"For the month by month listing hit RETURN",q
let b=l !initialize for Amortization
let t=0
? "MONTH#","INTEREST","PRINCIPLE","PRINC.BAL","TOTAL INT."
?#1, "MONTH#","INTEREST","PRINCIPLE","PRINC.BAL","TOTAL INT."
for j=1 to m !loop for number of payments
let i1=b*i !compute the interest
let x=i1
let x=(int(100*(x+.005)))/100
let i1=x
let p=a-i1 !compute the PRINCIPLE
if j=m then let p=b !force out the last payment
let b=b-p !update the loan balance
let t=t+i1 !update the total interest
? j,i1,p,b,t !print monthly pay details
?#1, j,i1,p,b,t
next j
?
close #1
! input "Shall we out put this to a file (Y/N) --->",b$
! if b$="y" then call format
input "Shall we do it again (Y/N)----->",a$
if ucs(a$)="Y"&
then call menu &
else goto quit
answer:
?tab(15,10)
?"The monthly payment on that loan would be $",a
call pause
call menu
pause:
? tab(20,25)
input "hit return to continue.....>",y
call menu
return