home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 1: Collection A
/
17Bit_Collection_A.iso
/
files
/
36.dms
/
36.adf
/
mortgage.bas
< prev
next >
Wrap
BASIC Source File
|
1988-05-22
|
5KB
|
132 lines
10 rem ***********************************
20 rem **** title : mortgage analysis ****
30 rem **** Harold Lynch - programmer ****
40 rem ***********************************
50 dim parr(901,2)
60 dim voice%(8)
70 for i=0 to 8:read voice%(i):next
80 data 200,0,175,0,22800,60,10,0,0
90 speech$=translate$("AMIGA MORTGAGE ANALYSIS")
100 screen 1,2,0:font 2
110 print at(29,10);"AMIGA"
120 print at(23,12);"MORTGAGE ANALYSIS"
125 X%=NARRATE(SPEECH$,VOICE%())
130 print at(20,22);inverse(1);"PRESS ANY KEY TO CONTINUE";
135 SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
137 X%=NARRATE(SPEECH$,VOICE%())
140 getkey a$
150 font 1
200 rem **** main options menu ****
210 scnclr
220 print at(34,8);inverse(1);"MAIN OPTIONS"
230 print at(24,10);"1. MORTGAGE PAYMENT COMPARISONS"
240 print at(24,11);"2. MORTGAGE AMORTIZATION"
245 print at(24,12);"3. EXIT"
250 print at(27,13);"SELECT:"
260 getkey a$:x%=asc(a$)-48
270 if x%<1 or x%>3 then goto 260
280 print at(35,13);x%
290 on x% gosub 300,500,1000
299 goto 210
300 rem **** payment comparisons ****
310 scnclr
320 print at(23,8);"AMOUNT OF MORTGAGE = ";
325 SPEECH$=TRANSLATE$("ENTER AMOUNT OF LOAN")
327 X%=NARRATE(SPEECH$,VOICE%())
330 input base!
335 if base! < 1 then goto 320
340 print at(23,9);"INTEREST RATE = ";
345 SPEECH$=TRANSLATE$("ENTER INTEREST RATE ON LOAN")
347 X%=NARRATE(SPEECH$,VOICE%())
350 input intr
355 if intr < 1 or intr > 50 then goto 340
360 print at(23,10);"MORTGAGE DURATION = ";
365 SPEECH$=TRANSLATE$("ENTER LENGTH OF LOAN IN YEARS")
367 X%=NARRATE(SPEECH$,VOICE%())
370 input dura
372 rte = intr/1200:incr = .0025/12
375 if dura < 1 or dura > 75 then goto 360
377 scnclr
380 for i=0 to 8
390 print at(8+i*8,4);base!+i*2000
400 next
405 draw (640,32 to 40,32 to 40,160),2
410 for i=0 to 14
420 print at(1,6+i);
430 print using "##.##";int(((rte+(i*incr))*120000!)+.5)/100
440 next
445 for i=0 to 14
450 ratefac = rte+i*incr:af=1:nf = dura*12:gosub 2000
460 for j=0 to 8
470 pymt=payfac*(base!+j*2000)
480 print at(7+j*8,6+i);:print using "####.##";pymt;
490 next j:next i
495 print at(27,23);"PRESS ANY KEY TO CONTINUE";
496 SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
497 X%=NARRATE(SPEECH$,VOICE%())
498 GETKEY A$
499 return
500 rem **** amortizations ****
505 scnclr
507 Q%=0
510 print at(23,8);"AMOUNT OF MORTGAGE = ";
512 SPEECH$=TRANSLATE$("ENTER ANOUNT OF LOAN")
513 X%=NARRATE(SPEECH$,VOICE%())
515 input base!
520 print at(23,9);"INTEREST RATE = ";
522 SPEECH$=TRANSLATE$("ENTER INTEREST RATE ON LOAN")
523 X%=NARRATE(SPEECH$,VOICE%())
525 input intr
530 print at(23,10);"DURATION OF LOAN = ";
532 SPEECH$=TRANSLATE$("ENTER LENGTH OF LOAN IN YEARS")
533 X%=NARRATE(SPEECH$,VOICE%())
535 input dura
540 nf=dura*12:ratefac=intr/1200:af=base!:gosub 2000
560 parr(0,0)=af
565 scnclr:print at(34,12);"CALCULATING"
566 SPEECH$=TRANSLATE$("CALCULATING PLEASE WAIT")
567 X%=NARRATE(SPEECH$,VOICE%())
570 for i=1 to nf
575 parr(i,1)=int((parr(i-1,0)*ratefac+5.000001e-03)*100)/100
580 parr(i,0)=parr(i-1,0)-payfac+parr(i,1)
585 next
600 scnclr:print at(25,1);"MONTHLY PAYMENTS ARE = ";
610 print using "####.##";payfac
630 print at(1,7);"ENTER BEGINING PAYMENT NUMBER OF PERIOD (1-";NF;",0=exit) = ";
633 IF Q=1 THEN GOTO 640
635 SPEECH$=TRANSLATE$("ENTER THE NUMBER OF THE MONTH BEGGINING THE PERIOD TO VIEW OR ENTER A ZERO TO LEAVE")
637 X%=NARRATE(SPEECH$,VOICE%())
640 input bp
645 Q=1
650 if bp=0 then return
660 print at(1,7);spc(75)
665 print at(24,4);" PRINCIPAL INTEREST BALANCE"
670 totint=0
680 for i=bp to bp+11
690 if I>nf then goto 730
700 totint=totint+parr(i,1)
705 print spc(20);
710 print using "###";i;
720 print using "######.##";payfac-parr(i,1);
723 print spc(3);
724 print using "######.##";parr(i,1);
725 print spc(5);
727 print using "######.##";parr(i,0)
730 next
740 print:print "TOTAL INTEREST FOR THIS PERIOD = ";
750 print using "######.##";totint
995 print at(27,22);"PRESS ANY KEY TO CONTINUE"
996 SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
997 X%=NARRATE(SPEECH$,VOICE%()):GETKEY A$
998 GOTO 600
999 return
1000 rem **** all done ****
1005 scnclr
1006 SPEECH$=TRANSLATE$("BYE BYE")
1007 X%=NARRATE(SPEECH$,VOICE%())
1010 end
1020 return
2000 rem *** GENERAL CALCULATIONS ***
2010 payfac = af*(ratefac/(1#-(1#/((1#+ratefac)^nf)))):goto 2099
2099 return