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 >
BASIC Source File  |  1988-05-22  |  5KB  |  132 lines

  1. 10    rem   ***********************************
  2. 20    rem   **** title : mortgage analysis ****
  3. 30    rem   **** Harold Lynch - programmer ****
  4. 40    rem   ***********************************
  5. 50    dim parr(901,2)
  6. 60    dim voice%(8)
  7. 70    for i=0 to 8:read voice%(i):next
  8. 80    data 200,0,175,0,22800,60,10,0,0
  9. 90    speech$=translate$("AMIGA MORTGAGE ANALYSIS")
  10. 100   screen 1,2,0:font 2
  11. 110   print at(29,10);"AMIGA"
  12. 120   print at(23,12);"MORTGAGE ANALYSIS"
  13. 125   X%=NARRATE(SPEECH$,VOICE%())
  14. 130   print at(20,22);inverse(1);"PRESS ANY KEY TO CONTINUE";
  15. 135   SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
  16. 137   X%=NARRATE(SPEECH$,VOICE%())
  17. 140   getkey a$
  18. 150   font 1
  19. 200   rem **** main options menu ****
  20. 210   scnclr
  21. 220   print at(34,8);inverse(1);"MAIN OPTIONS"
  22. 230   print at(24,10);"1. MORTGAGE PAYMENT COMPARISONS"
  23. 240   print at(24,11);"2. MORTGAGE AMORTIZATION"
  24. 245   print at(24,12);"3. EXIT"
  25. 250   print at(27,13);"SELECT:"
  26. 260   getkey a$:x%=asc(a$)-48
  27. 270   if x%<1 or x%>3 then goto 260
  28. 280   print at(35,13);x%
  29. 290   on x% gosub 300,500,1000
  30. 299   goto 210
  31. 300   rem **** payment comparisons ****
  32. 310   scnclr
  33. 320   print at(23,8);"AMOUNT OF MORTGAGE = ";
  34. 325   SPEECH$=TRANSLATE$("ENTER AMOUNT OF LOAN")
  35. 327   X%=NARRATE(SPEECH$,VOICE%())
  36. 330   input base!
  37. 335   if base! < 1 then goto 320
  38. 340   print at(23,9);"INTEREST RATE      = ";
  39. 345   SPEECH$=TRANSLATE$("ENTER INTEREST RATE ON LOAN")
  40. 347   X%=NARRATE(SPEECH$,VOICE%())
  41. 350   input intr
  42. 355   if intr < 1 or intr > 50 then goto 340
  43. 360   print at(23,10);"MORTGAGE DURATION  = ";
  44. 365   SPEECH$=TRANSLATE$("ENTER LENGTH OF LOAN IN YEARS")
  45. 367   X%=NARRATE(SPEECH$,VOICE%())
  46. 370   input dura
  47. 372   rte = intr/1200:incr = .0025/12
  48. 375   if dura < 1 or dura > 75 then goto 360
  49. 377   scnclr
  50. 380   for i=0 to 8
  51. 390   print at(8+i*8,4);base!+i*2000
  52. 400   next
  53. 405   draw (640,32 to 40,32 to 40,160),2
  54. 410   for i=0 to 14
  55. 420   print at(1,6+i);
  56. 430   print using "##.##";int(((rte+(i*incr))*120000!)+.5)/100
  57. 440   next
  58. 445   for i=0 to 14
  59. 450   ratefac = rte+i*incr:af=1:nf = dura*12:gosub 2000
  60. 460   for j=0 to 8
  61. 470   pymt=payfac*(base!+j*2000)
  62. 480   print at(7+j*8,6+i);:print using "####.##";pymt;
  63. 490   next j:next i
  64. 495   print at(27,23);"PRESS ANY KEY TO CONTINUE";
  65. 496   SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
  66. 497   X%=NARRATE(SPEECH$,VOICE%())
  67. 498   GETKEY A$
  68. 499   return
  69. 500   rem **** amortizations       ****
  70. 505   scnclr
  71. 507   Q%=0
  72. 510   print at(23,8);"AMOUNT OF MORTGAGE = ";
  73. 512   SPEECH$=TRANSLATE$("ENTER ANOUNT OF LOAN")
  74. 513   X%=NARRATE(SPEECH$,VOICE%())
  75. 515   input base!
  76. 520   print at(23,9);"INTEREST RATE      = ";
  77. 522   SPEECH$=TRANSLATE$("ENTER INTEREST RATE ON LOAN")
  78. 523   X%=NARRATE(SPEECH$,VOICE%())
  79. 525   input intr
  80. 530   print at(23,10);"DURATION OF LOAN   = ";
  81. 532   SPEECH$=TRANSLATE$("ENTER LENGTH OF LOAN IN YEARS")
  82. 533   X%=NARRATE(SPEECH$,VOICE%())
  83. 535   input dura
  84. 540   nf=dura*12:ratefac=intr/1200:af=base!:gosub 2000
  85. 560   parr(0,0)=af
  86. 565   scnclr:print at(34,12);"CALCULATING"
  87. 566   SPEECH$=TRANSLATE$("CALCULATING PLEASE WAIT")
  88. 567   X%=NARRATE(SPEECH$,VOICE%())
  89. 570   for i=1 to nf
  90. 575   parr(i,1)=int((parr(i-1,0)*ratefac+5.000001e-03)*100)/100
  91. 580   parr(i,0)=parr(i-1,0)-payfac+parr(i,1)
  92. 585   next
  93. 600   scnclr:print at(25,1);"MONTHLY PAYMENTS ARE = ";
  94. 610   print using "####.##";payfac
  95. 630   print at(1,7);"ENTER BEGINING PAYMENT NUMBER OF PERIOD (1-";NF;",0=exit) = ";
  96. 633   IF Q=1 THEN GOTO 640
  97. 635   SPEECH$=TRANSLATE$("ENTER THE NUMBER OF THE MONTH BEGGINING THE PERIOD TO VIEW OR ENTER A ZERO TO LEAVE")
  98. 637   X%=NARRATE(SPEECH$,VOICE%())
  99. 640   input bp
  100. 645   Q=1
  101. 650   if bp=0 then return
  102. 660   print at(1,7);spc(75)
  103. 665   print at(24,4);"  PRINCIPAL  INTEREST       BALANCE"
  104. 670   totint=0
  105. 680   for i=bp to bp+11
  106. 690   if I>nf then goto 730
  107. 700   totint=totint+parr(i,1)
  108. 705   print spc(20);
  109. 710   print using "###";i;
  110. 720   print using "######.##";payfac-parr(i,1);
  111. 723   print spc(3);
  112. 724   print using "######.##";parr(i,1);
  113. 725   print spc(5);
  114. 727   print using "######.##";parr(i,0)
  115. 730   next
  116. 740   print:print "TOTAL INTEREST FOR THIS PERIOD = ";
  117. 750   print using "######.##";totint
  118. 995   print at(27,22);"PRESS ANY KEY TO CONTINUE"
  119. 996   SPEECH$=TRANSLATE$("PRESS ANY KEY TO CONTINUE")
  120. 997   X%=NARRATE(SPEECH$,VOICE%()):GETKEY A$
  121. 998   GOTO 600
  122. 999   return
  123. 1000  rem **** all done            ****
  124. 1005  scnclr
  125. 1006  SPEECH$=TRANSLATE$("BYE BYE")
  126. 1007  X%=NARRATE(SPEECH$,VOICE%())
  127. 1010  end
  128. 1020  return
  129. 2000  rem *** GENERAL CALCULATIONS ***
  130. 2010  payfac = af*(ratefac/(1#-(1#/((1#+ratefac)^nf)))):goto 2099
  131. 2099  return
  132.