Source Code
10 REM Loan Amortization 2068
12 REM \* 1984 I. Auersbacher
14 DEF FN a(x)=INT (c*x+0.5)/c
16 DEF FN a$(x,c$)=c$+(".00" AND x=INT x)+("0" AND ("0"+c$)(LEN c$)=".")
18 BORDER 5: LET c=100: LET x=0: BEEP 0.07,22: CLS : GO TO 25
20 LET x=FN a(x): LET c$=FN a$(x,STR$ x): RETURN
25 PRINT PAPER 6;"** Loan Amortization Schedule **": PRINT
30 PRINT "Loan Amount : $";
35 INPUT a: PRINT a: LET t=23
40 PRINT "No. Periods : ";
45 INPUT n: PRINT n;" months"
50 PRINT "Interest (%): ";
55 INPUT y: PRINT y
60 LET y=y/1200: PRINT
65 LET p=a*(y/(1-(1+y)^(-n))): LET x=p: GO SUB 20: LET d=n*p-a
70 PRINT "Monthly Pymt= $";c$: POKE 23692,1: PRINT : LET l=a
75 PRINT "Pmt Interest Principal Balance": PRINT "\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
80 FOR z=1 TO n: LET k=(1+y)^(-z): LET b=1/k*(p*(k-1)/y+a)
85 IF b<0.001 THEN LET b=0
90 LET i=b-l+p: LET r=p-i
95 LET l=b: LET x=i: GO SUB 20
100 LET i$=c$: LET x=r: GO SUB 20: LET p$=c$: LET x=b:
105 GO SUB 20: LET b$=c$
110 PRINT TAB (3-LEN STR$ z);z;TAB (12-LEN i$);i$;TAB (21-LEN p$);p$;TAB (32-LEN b$);b$
115 NEXT z: PRINT : PRINT
120 LET x=a: GO SUB 20: PRINT "Loan Amount =";TAB t-LEN c$;c$
125 LET x=d: GO SUB 20: PRINT "Tot.Interest=";TAB t-LEN c$;c$: LET x=n*p: GO SUB 20: PRINT "Total paymts=";TAB t-LEN c$;c$
130 STOP : STOP
200 SAVE "loans" LINE 10