home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib30a.dsk / FEBRUARY.1987 / FIN.CALC.bas < prev    next >
BASIC Source File  |  2023-02-26  |  19KB  |  303 lines

  1. 10  REM  *******1/22/87********
  2. 20  REM  *      FIN.CALC      *
  3. 30  REM  *  BY RICHARD REED   *
  4. 40  REM  * COPYRIGHT (C) 1987 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  HOME : POKE 49237,0: POKE 1024,123:A =  PEEK(1024): POKE 1024,35:B =  PEEK(1024): POKE 49236,0: ON  PEEK(64435) < >6  OR A < >123  OR B < >35 GOTO 3040: PRINT : PRINT  CHR$(4)"PR#3": PRINT : ONERR  GOTO 2970
  9. 90  DIM MN$(35),V(35),H(35),L(35),TP(35),DC$(11)
  10. 100  FOR X = 1 TO 7: READ MU$(X): NEXT 
  11. 110  FOR X = 1 TO 34: READ MN$(X): READ V(X): READ H(X): READ L(X): READ TP(X): NEXT 
  12. 120 X$(0) = "   ":X$(1) = "-->":MY = 50:BY = 1985:EY = 1999:MI = 50:CR$ =  CHR$(13):EX$ =  CHR$(27):VT$ =  CHR$(11):BS$ =  CHR$(8):DL$ =  CHR$(127):CX$ =  CHR$(24):CU$ =  CHR$(21)
  13. 130 D$ =  CHR$(4):DC$(1) = "*** GRAND TOTALS ***":DC$(2) = "******** RESULTS ********": REM  8/8 *'S
  14. 140 DC$(3) = "     Y E A R S      ":DC$(4) = "LOAN AMOUNT: ":DC$(5) = "DEPOSITS WILL BE: ":DC$(6) = "INTEREST RATE: ":DC$(7) = "NUMBER OF INVESTMENT YEARS: ": REM  5/6 SPACES
  15. 150 DC$(8) = "AMOUNT INVESTED: ":DC$(9) = "AMOUNT TO DEPOSIT / PERIOD: ":DC$(10) = "INTEREST AMOUNT EARNED: ":DC$(11) = "FUTURE VALUE OF ACCOUNT: "
  16. 160 BL$ = "                    ":WT = 72:WD = WT: REM  20 SPACES
  17. 170  GOTO 1400
  18. 180  IF PR = 0  AND  PEEK(49152) = 160  THEN  POKE 49168,0: GET N$
  19. 190  RETURN 
  20. 200  HOME : IF PR = 0  THEN  RETURN 
  21. 210  VTAB 12: POKE 36,((WT -35)/2): PRINT "MAKE SURE YOUR PRINTER IS TURNED ON": GOSUB 690
  22. 220  HOME : INVERSE : VTAB 12: POKE 36,((WT -32)/2) -1: PRINT " PRINTING REPORT -- PLEASE WAIT ": NORMAL :WT = 72: PRINT D$: PRINT D$;"PR#";PR: PRINT  CHR$(9);"80N": PRINT : PRINT : PRINT 
  23. 230  PRINT EX$; CHR$(69): REM  ENTER PRINTER CONTROL CODES HERE
  24. 240  RETURN 
  25. 250  PRINT D$: GOSUB 3020:WT = WD: RETURN 
  26. 260 LP$ = LP$ +" LOAN": POKE 36,((WT - LEN(LP$))/2): PRINT LP$: PRINT 
  27. 270 N =  VAL(AM$): GOSUB 700:N$ =  RIGHT$(BL$ +N$,10): PRINT DC$(4);N$;
  28. 280 I$ =  LEFT$(I$,5):I$ =  RIGHT$(BL$ +"INTEREST " +I$,16): PRINT I$;"%";
  29. 290 N = PM: GOSUB 700:N$ =  RIGHT$(BL$ +N$,10)
  30. 300  PRINT "    PAYMENTS ";: GOSUB 1350: PRINT " ";N$
  31. 310  FOR X = 1 TO WT: PRINT "-";: NEXT : PRINT : PRINT 
  32. 320 L = L +5: RETURN 
  33. 330  PRINT "PM#  MO  YEAR     PAYMENT       INTEREST       PRINCIPAL         BALANCE": GOSUB 670: PRINT :L = L +3: REM  5/7/7/9 SPACES
  34. 340  RETURN 
  35. 350  IF Y = 7  THEN N = (CI *RB) +.10: GOSUB 700: PRINT N$;"):":H(Y) = (25 + LEN(N$))
  36. 360  VTAB V(Y): POKE 36,H(Y) -1:TN$ = ""
  37. 370  FOR X = 1 TO L(Y) +1
  38. 380  PRINT  CHR$(95)BS$;: POKE  -16368,0: WAIT  -16384,128:A =  PEEK( -16384): POKE  -16368,0: IF A = 155  THEN X = L(Y) +1: NEXT : GOTO 1410
  39. 390 N$ =  CHR$(A -128): IF N$ > CHR$(31)  AND N$ < >DL$  THEN 510
  40. 400  IF N$ = CR$  THEN X = L(Y) +1: NEXT : PRINT " ";: RETURN 
  41. 410  IF N$ = VT$  THEN  IF Y = 7  OR Y = 8  AND CT$ = "1"  THEN Y = Y -3: RETURN 
  42. 420  IF N$ = VT$  AND Y = 11  AND RT$ = "S"  THEN Y = 7: RETURN 
  43. 430  IF N$ = VT$  AND Y >S  THEN Y = Y -2: RETURN 
  44. 440  IF N$ = CX$  OR N$ = DL$  THEN  IF X >1  THEN TN$ =  MID$ (TN$,1,X -2) + MID$ (TN$,X, LEN(TN$) -X +1): POKE 36,H(Y) -1: CALL  -868: PRINT TN$;:X = X -2: POKE 36,H(Y) +X -1: GOTO 660
  45. 450  IF N$ = EX$  AND X = 1  THEN X = L(Y) +1: NEXT : GOTO 1410
  46. 460  IF N$ = EX$  THEN Y = Y -1: RETURN 
  47. 470  IF N$ = CU$  AND X < =  LEN(TN$)  THEN  POKE 36,H(Y) +X -1: GOTO 660
  48. 480  IF N$ < >BS$  THEN 510
  49. 490  IF X = 1  OR X = 2  THEN X = 0: POKE 36,H(Y) -1: CALL  -868: GOTO 660
  50. 500 X = X -2: VTAB V(Y): POKE 36,(H(Y) +X) -1: CALL  -868: GOTO 660
  51. 510  IF N$ > CHR$(96)  THEN N$ =  CHR$( ASC(N$) -32)
  52. 520  IF X = L(Y) +1  AND N$ < >CR$  THEN  CALL  -198: GOTO 380
  53. 530  IF TP(Y) < >1  THEN 590
  54. 540  IF N$ < > CHR$(46)  THEN 580
  55. 550  FOR Z = 1 TO  LEN(TN$): IF Z = X  THEN  GOTO 570
  56. 560  IF  MID$ (TN$,Z,1) =  CHR$(46)  THEN Z =  LEN(TN$) +1: NEXT : CALL  -198: GOTO 380
  57. 570  NEXT : GOTO 600
  58. 580  IF N$ < CHR$(48)  OR N$ > CHR$(57)  THEN  CALL  -198: GOTO 380
  59. 590  IF N$ < CHR$(31)  OR N$ > CHR$(94)  THEN  CALL  -198: GOTO 380
  60. 600  IF X = 1  AND  LEN(TN$) = 1  THEN TN$ = "":TN$ = N$: GOTO 650
  61. 610  IF X = 1  AND  LEN(TN$) >X  THEN TN$ = N$ + RIGHT$(TN$, LEN(TN$) -X): GOTO 650
  62. 620  IF  LEN(TN$) = X  THEN TN$ =  LEFT$(TN$,X -1) +N$: GOTO 650
  63. 630  IF  LEN(TN$) >X  THEN TN$ =  LEFT$(TN$,X -1) +N$ + RIGHT$(TN$, LEN(TN$) -X): GOTO 650
  64. 640 TN$ = TN$ +N$
  65. 650  PRINT N$;
  66. 660  NEXT 
  67. 670  FOR X = 1 TO WT: PRINT "-";: NEXT : PRINT : RETURN 
  68. 680  VTAB 24: HTAB 27: PRINT "Press Return to Continue _";BS$;: POKE 49168,0: WAIT  -16384,128: PRINT " ";: POKE  -16368,0: HOME : RETURN 
  69. 690  CALL  -198: PRINT : VTAB 24: HTAB 29: PRINT "Press Return for Menu _";BS$;: POKE 49168,0: WAIT  -16384,128: PRINT " ";: POKE  -16368,0: RETURN 
  70. 700  IF N >999999.99  THEN N$ = "**********": RETURN : REM  6 9'S, 10 *'S
  71. 710 N$ = " $": IF  ABS(N) <1  THEN N$ = N$ +"0": IF N = 0  THEN N$ = " $0.00": GOTO 750
  72. 720 SG = N <0:N =  INT( ABS(N) *100 +.5)/100
  73. 730 N$ = N$ + STR$(N): IF N - INT(N) = 0  THEN N$ = N$ +"."
  74. 740  IF  MID$ (N$, LEN(N$) -2,1) < >"."  THEN N$ = N$ +"0": GOTO 740
  75. 750 N$ =  MID$ (N$,2): IF SG  THEN N$ = "-" +N$
  76. 760  RETURN 
  77. 770 P$ =  LEFT$(P$ +BL$,5): PRINT P$;
  78. 780 MN$ =  LEFT$(MN$ +BL$,4): PRINT MN$;
  79. 790  PRINT YR;
  80. 800 N = PM: GOSUB 700:N$ =  RIGHT$(BL$ +N$,12): PRINT N$;
  81. 810 N = II: GOSUB 700:N$ =  RIGHT$(BL$ +N$,15): PRINT N$;
  82. 820 N = (PM -II): GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$;
  83. 830 N = RB: GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$
  84. 840  RETURN 
  85. 850  IF PY = 4  THEN MP$ = MN$:MN$ =  STR$( VAL(MN$) -12):YR = YR +1
  86. 860  IF PY = 12  THEN MP$ = MN$:MN$ = "0":YR = YR +1
  87. 870  GOSUB 670
  88. 880  PRINT "YEAR TOTALS";
  89. 890 N = YT: GOSUB 700:N$ =  RIGHT$(BL$ +N$,14): PRINT N$;
  90. 900 N = YI: GOSUB 700:N$ =  RIGHT$(BL$ +N$,15): PRINT N$;
  91. 910 N = YP: GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$;
  92. 920 N = RB: GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$
  93. 930  GOSUB 670: PRINT :L = L +4:YT = 0:YI = 0:YP = 0: ON PR = 0 GOSUB 680: RETURN 
  94. 940  PRINT : GOSUB 670
  95. 950  POKE 36,((WT - LEN(DC$(1)))/2): PRINT DC$(1): PRINT 
  96. 960  PRINT "PM#              PAYMENTS       INTEREST       PRINCIPAL         BALANCE": PRINT : REM  14,7,7,9 SPACES
  97. 970 P$ =  LEFT$(P$ +BL$,11): PRINT P$;
  98. 980 N = TT: GOSUB 700:N$ =  RIGHT$(BL$ +N$,14): PRINT N$;
  99. 990 N = TI: GOSUB 700:N$ =  RIGHT$(BL$ +N$,15): PRINT N$;
  100. 1000 N = TP: GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$;
  101. 1010 N = RB: GOSUB 700:N$ =  RIGHT$(BL$ +N$,16): PRINT N$
  102. 1020  GOSUB 670: RETURN 
  103. 1030 II =  INT(.5 +RB *CI *100)/100
  104. 1040 RB =  INT(.5 +(RB -(PM -II)) *100)/100
  105. 1050 P$ =  STR$( VAL(P$) +1):L = L +1
  106. 1060  IF CT$ = "1"  AND  VAL(P$) = NP  THEN PM = PM +RB:RB = 0
  107. 1070  IF CT$ = "2"  AND FL = 1  THEN PM = PM +RB:RB = 0
  108. 1080 YT = YT +PM:YI = YI +II:YP = YP +(PM -II)
  109. 1090 TT = TT +PM:TI = TI +II:TP = TP +(PM -II): RETURN 
  110. 1100  IF L =  >60  AND PR >0  THEN  FOR X = L TO 68: PRINT : NEXT :L = 3: GOSUB 330
  111. 1110  IF  VAL(MN$) = 12  AND PY = 12  THEN  GOSUB 850
  112. 1120  IF PY = 12  THEN MN$ =  STR$( VAL(MN$) +1)
  113. 1130  IF PY = 1  THEN YR = YR +1
  114. 1140  IF PY = 4  THEN MN$ =  STR$( VAL(MN$) +3): IF  VAL(MN$) >12  THEN  GOSUB 850
  115. 1150  RETURN 
  116. 1160 AM$ = TN$:AM =  VAL(AM$): IF AM <1  OR AM >999999.99  THEN CK = 1: REM  6 9'S
  117. 1170  RETURN 
  118. 1180 TP$ = TN$: IF TP$ < >"D"  AND TP$ < >"M"  AND TP$ < >"Q"  AND TP$ < >"A"  THEN CK = 1
  119. 1190  RETURN 
  120. 1200 I$ = TN$:I =  VAL(I$): IF I <1  OR I >MI  THEN CK = 1
  121. 1210  RETURN 
  122. 1220 NP$ = TN$:NP =  VAL(NP$):N = NP - INT(NP): IF N < >0  AND N < >.25  AND N < >.50  AND N < >.75  THEN CK = 1
  123. 1230  IF TP$ = "A"  OR Y >11  THEN  IF NP >MY  OR NP = 0  THEN CK = 1
  124. 1240  IF Y <16  THEN  IF NP - INT(NP) < >0  OR NP = 0  THEN CK = 1
  125. 1250  IF TP$ = "A"  AND NP - INT(NP) < >0  THEN CK = 1
  126. 1260  RETURN 
  127. 1270 PR$ = TN$:PR =  VAL(PR$): IF PR >7  THEN CK = 1
  128. 1280  RETURN 
  129. 1290  IF TP$ = "D"  THEN PY = 365
  130. 1300  IF TP$ = "M"  THEN PY = 12
  131. 1310  IF TP$ = "Q"  THEN PY = 4
  132. 1320  IF TP$ = "A"  THEN PY = 1
  133. 1330 CI = (I/100)/PY: RETURN 
  134. 1340  IF TP$ = "D"  THEN  PRINT "DAILY";: RETURN 
  135. 1350  IF TP$ = "M"  THEN  PRINT "MONTHLY";: RETURN 
  136. 1360  IF TP$ = "Q"  THEN  PRINT "QUARTERLY";: RETURN 
  137. 1370  IF TP$ = "A"  THEN  PRINT "ANNUALLY";: RETURN 
  138. 1380 CI = (( VAL(I$) +Y)/100)/PY
  139. 1390 N =  INT(.5 +AM *(CI/(1 -(1 +CI) ^( -((NP +X) *PY)))) *100)/100: GOSUB 700: RETURN 
  140. 1400  PRINT : PRINT D$"PR#3": PRINT : VTAB 10: HTAB 30: PRINT "FINANCIAL CALCULATOR": PRINT : HTAB 32: PRINT "BY RICHARD REED": PRINT : HTAB 22: PRINT "COPYRIGHT (C) 1987 BY MICROSPARC, INC": GOSUB 690
  141. 1410 CK = 0: HOME : VTAB 1: POKE 36,16: INVERSE : PRINT " FINANCIAL CALCULATOR ": NORMAL : ONERR  GOTO 2970
  142. 1420  FOR X = 1 TO 7: VTAB 3 +2 *X: POKE 36,12: PRINT X"."MU$(X): NEXT 
  143. 1430  VTAB 22: POKE 36,12: PRINT "ENTER MENU # OR USE ARROW KEYS": PRINT : POKE 36,12: PRINT "THEN PRESS <RETURN>:";
  144. 1440 SL = DF +(DF = 0): GOSUB 1460:DF = SL
  145. 1450  ON SL GOTO 1510,1970,2200,2380,2560,2730,1500
  146. 1460 N = SL:OS = SL: GOSUB 1490:Z = 0: VTAB 24: POKE 36,33: POKE  -16368,0: CALL  -868
  147. 1470  VTAB 24: POKE 36,33: PRINT SL;: WAIT  -16384,128:Z =  PEEK( -16384) -128: IF Z > = 49  AND Z < = 55  THEN SL = Z -48:N = OS: GOSUB 1490: GOTO 1460
  148. 1480 Z = (Z = 21  OR Z = 10) -(Z = 8  OR Z = 11) +10 *(Z = 13): ON   NOT Z GOTO 1470:SL = SL +Z *(Z <10):SL = SL -7 *(SL >7) +7 *(SL <1):N = OS: GOSUB 1490: ON Z <10 GOTO 1460: POKE  -16368,0: RETURN 
  149. 1490  VTAB 3 +2 *N: POKE 36,8: PRINT X$(SL = OS);: RETURN 
  150. 1500  HOME : VTAB 12: INPUT "ARE YOU SURE YOU WANT TO QUIT? ";YN$: ON YN$ < >"Y"  AND YN$ < > CHR$(121) GOTO 1410: END 
  151. 1510  HOME :YT = 0:YI = 0:YP = 0:TT = 0:TI = 0:TP = 0:S = 1
  152. 1520  FOR Y = S TO 11
  153. 1530  IF Y = 5  THEN  VTAB 9: POKE 36,1: PRINT "CALCULATE LOAN BY:": VTAB 10: POKE 36,4: PRINT "1. NUMBER OF PAYMENTS TO MAKE": VTAB 11: POKE 36,4: PRINT "2. SPECIFIC AMOUNT / PERIOD"
  154. 1540  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  155. 1550  IF N$ = EX$  OR N$ = VT$  THEN 1710
  156. 1560  IF Y = 1  THEN LP$ = TN$
  157. 1570  IF Y = 2  THEN  GOSUB 1160:RB =  VAL(AM$)
  158. 1580  IF Y = 3  THEN  GOSUB 1200
  159. 1590  IF Y = 4  THEN  GOSUB 1180: IF TP$ = "D"  THEN  CALL  -198: GOTO 1540
  160. 1600  IF Y = 5  THEN  GOSUB 1290:CT$ = TN$: IF CT$ < >"1"  AND CT$ < >"2"  THEN  CALL  -198: GOTO 1540
  161. 1610  IF Y = 6  THEN  GOSUB 1220
  162. 1620  IF Y = 7  THEN PM$ = TN$:PM =  VAL(PM$): IF PM < INT(N *100)/100  OR PM >RB  THEN  CALL  -198: GOTO 1540
  163. 1630  IF Y = 8  THEN RT$ = TN$: IF RT$ < >"S"  AND RT$ < >"D"  THEN  CALL  -198: GOTO 1540
  164. 1640  IF Y = 9  THEN MN$ = TN$: IF  VAL(MN$) <1  OR  VAL(MN$) >12  THEN  CALL  -198: GOTO 1540
  165. 1650  IF Y = 10  THEN YR$ = TN$:YR =  VAL(YR$): IF YR <BY  OR YR >EY  THEN  CALL  -198: GOTO 1540
  166. 1660  IF Y = 11  THEN  GOSUB 1270
  167. 1670  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 1540
  168. 1680  IF Y = 8  AND RT$ = "S"  THEN Y = 10
  169. 1690  IF Y = 6  THEN Y = 7
  170. 1700  IF Y = 5  AND CT$ = "2"  THEN Y = 6
  171. 1710  NEXT 
  172. 1720  GOSUB 200:P$ = "0":L = 3
  173. 1730  IF CT$ = "1"  THEN PM =  INT(.5 +RB *(CI/(1 -(1 +CI) ^( -NP))) *100)/100
  174. 1740  GOSUB 260: IF RT$ < >"S"  THEN  GOSUB 330
  175. 1750  IF RT$ = "S"  AND PR = 0  THEN  PRINT : PRINT : INVERSE : POKE 36,((WT -11)/2): PRINT "CALCULATING": NORMAL 
  176. 1760  IF WT = 40  THEN  POKE 34,10
  177. 1770  IF WT = 72  THEN  POKE 34,7
  178. 1780  IF CT$ = "2"  THEN 1850
  179. 1790  FOR Y = 1 TO NP
  180. 1800  GOSUB 1030
  181. 1810  IF RT$ = "S"  THEN  NEXT : GOTO 1920
  182. 1820  GOSUB 770: GOSUB 1100: GOSUB 180
  183. 1830  NEXT 
  184. 1840  GOTO 1920
  185. 1850 FL = 0
  186. 1860  FOR Y = 1 TO 1000: GOSUB 1030
  187. 1870  IF RT$ = "S"  THEN 1890
  188. 1880  GOSUB 770: GOSUB 1100: GOSUB 180
  189. 1890  IF RB = 0  THEN Y = 1000: GOTO 1910
  190. 1900  IF RB -PM <0  THEN FL = 0
  191. 1910  NEXT 
  192. 1920  IF RT$ = "D"  THEN  IF (PY = 12  AND MN$ >"1")  OR (PY = 4  AND MP$ >"3")  THEN  GOSUB 850
  193. 1930  IF RT$ = "S"  AND PR = 0  THEN  VTAB 6: CALL  -958
  194. 1940  GOSUB 940: GOSUB 250
  195. 1950  GOSUB 690
  196. 1960  TEXT : GOTO 1410
  197. 1970  HOME : INVERSE : VTAB 2: POKE 36,12: PRINT MU$(2): NORMAL :S = 12:TP$ = "M"
  198. 1980  FOR Y = S TO 15
  199. 1990  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  200. 2000  IF N$ = EX$  OR N$ = VT$  THEN 2060
  201. 2010  IF Y = 12  THEN  GOSUB 1160
  202. 2020  IF Y = 13  THEN  GOSUB 1200
  203. 2030  IF Y = 14  THEN  GOSUB 1220
  204. 2040  IF Y = 15  THEN  GOSUB 1270
  205. 2050  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 1990
  206. 2060  NEXT : GOSUB 1290
  207. 2070  GOSUB 200:N = AM: GOSUB 700: PRINT MU$(2);"    ";DC$(4);N$
  208. 2080  POKE 36,((WT -14)/2): PRINT "I N T E R E S T"
  209. 2090 SI = .5:C = 8: IF WT = 40  THEN C = 4
  210. 2100 FL = 1:C = (SI *C) -SI: POKE 36,4: FOR Y = 0 TO C  STEP SI: IF FL  THEN  INVERSE :FL = 0: GOTO 2120
  211. 2110  IF   NOT FL  THEN  NORMAL :FL = 1
  212. 2120  PRINT  RIGHT$(BL$ + STR$( VAL(I$) +Y) +"%",9);: NEXT 
  213. 2130 SY = 1:R = (20 *SY) -SY
  214. 2140 L = 0: FOR X = 0 TO R  STEP SY:L = L +1: IF WT < >40  THEN  PRINT 
  215. 2150  PRINT  MID$ (DC$(3),L,1);: PRINT  RIGHT$(BL$ + STR$(NP +X),3);
  216. 2160 FL = 1: FOR Y = 0 TO C  STEP SI: IF FL  THEN  INVERSE :FL = 0: GOTO 2180
  217. 2170  IF   NOT FL  THEN  NORMAL :FL = 1
  218. 2180  GOSUB 1380: PRINT  RIGHT$(BL$ +N$,9);: NEXT : NEXT : VTAB 22
  219. 2190  GOSUB 250: GOSUB 690: GOTO 1410
  220. 2200  HOME : INVERSE : VTAB 1: POKE 36,8: PRINT MU$(3): NORMAL :S = 16
  221. 2210  FOR Y = S TO 20
  222. 2220  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  223. 2230  IF N$ = EX$  OR N$ = VT$  THEN 2300
  224. 2240  IF Y = 16  THEN  GOSUB 1160
  225. 2250  IF Y = 17  THEN  GOSUB 1180
  226. 2260  IF Y = 18  THEN  GOSUB 1200
  227. 2270  IF Y = 19  THEN  GOSUB 1220
  228. 2280  IF Y = 20  THEN  GOSUB 1270
  229. 2290  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 2220
  230. 2300  NEXT : GOSUB 1290
  231. 2310  GOSUB 200: POKE 36,((WT -21)/2): PRINT MU$(3): PRINT 
  232. 2320 N = AM: GOSUB 700: PRINT "FUTURE VALUE OF ACCOUNT: ";N$: PRINT : PRINT DC$(5);: GOSUB 1340: PRINT 
  233. 2330  PRINT : PRINT DC$(6);I$;"%": PRINT : PRINT DC$(7);NP
  234. 2340 N =  INT(.5 +AM *CI/((1 +CI) *(((1 +CI) ^(PY *NP)) -1)) *100)/100
  235. 2350  PRINT : PRINT DC$(2):TP = (PY *NP) *N:TI = AM -TP: GOSUB 700: PRINT : PRINT DC$(9);N$
  236. 2360 N = TP: GOSUB 700: PRINT : PRINT DC$(8);N$:N = TI: GOSUB 700: PRINT : PRINT DC$(10);N$
  237. 2370  GOSUB 250: GOSUB 690: GOTO 1410
  238. 2380  HOME : INVERSE : VTAB 1: POKE 36,6: PRINT MU$(4): NORMAL :S = 21
  239. 2390  FOR Y = S TO 25
  240. 2400  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  241. 2410  IF N$ = EX$  OR N$ = VT$  THEN 2480
  242. 2420  IF Y = 21  THEN  GOSUB 1180
  243. 2430  IF Y = 22  THEN  GOSUB 1160
  244. 2440  IF Y = 23  THEN  GOSUB 1200
  245. 2450  IF Y = 24  THEN  GOSUB 1220
  246. 2460  IF Y = 25  THEN  GOSUB 1270
  247. 2470  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 2400
  248. 2480  NEXT : GOSUB 1290
  249. 2490  GOSUB 200: POKE 36,((WT -27)/2): PRINT MU$(4): PRINT 
  250. 2500  PRINT DC$(5);: GOSUB 1340: PRINT :N = AM: GOSUB 700: PRINT : PRINT DC$(9);N$
  251. 2510  PRINT : PRINT DC$(6);I$;"%": PRINT : PRINT DC$(7);NP
  252. 2520 N =  INT(.5 +AM *(1 +CI) *(((1 +CI) ^(PY *NP) -1)/CI) *100)/100
  253. 2530  PRINT : PRINT DC$(2):TP = (PY *NP) *AM:TI = N -TP: GOSUB 700: PRINT : PRINT DC$(11);N$
  254. 2540 N = TP: GOSUB 700: PRINT : PRINT DC$(8);N$:N = TI: GOSUB 700: PRINT : PRINT DC$(10);N$
  255. 2550  GOSUB 250: GOSUB 690: GOTO 1410
  256. 2560  HOME : INVERSE : VTAB 1: POKE 36,8: PRINT MU$(5): NORMAL :S = 26
  257. 2570  FOR Y = S TO 30
  258. 2580  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  259. 2590  IF N$ = EX$  OR N$ = VT$  THEN 2660
  260. 2600  IF Y = 26  THEN  GOSUB 1160
  261. 2610  IF Y = 27  THEN  GOSUB 1180
  262. 2620  IF Y = 28  THEN  GOSUB 1200
  263. 2630  IF Y = 29  THEN  GOSUB 1220
  264. 2640  IF Y = 30  THEN  GOSUB 1270
  265. 2650  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 2580
  266. 2660  NEXT : GOSUB 1290
  267. 2670  GOSUB 200: POKE 36,((WT -22)/2): PRINT MU$(5): PRINT 
  268. 2680 N = AM: GOSUB 700: PRINT "AMOUNT OF DEPOSIT: ";N$: PRINT : PRINT DC$(6);I$;"%": PRINT : PRINT "INTEREST COMPOUNDED: ";: GOSUB 1340: PRINT : PRINT : PRINT DC$(7);NP
  269. 2690 N =  INT(.5 +AM *(1 +CI) ^(PY *NP) *100)/100
  270. 2700  PRINT : PRINT DC$(2):TI = N -AM: GOSUB 700: PRINT : PRINT DC$(11);N$
  271. 2710 N = AM: GOSUB 700: PRINT : PRINT DC$(8);N$:N = TI: GOSUB 700: PRINT : PRINT DC$(10);N$
  272. 2720  GOSUB 250: GOSUB 690: GOTO 1410
  273. 2730  HOME : INVERSE : VTAB 1: POKE 36,3: PRINT MU$(6): NORMAL :S = 31:TP$ = "A"
  274. 2740  FOR Y = S TO 34
  275. 2750  VTAB V(Y): POKE 36,1: PRINT MN$(Y);: CALL  -958: GOSUB 350
  276. 2760  IF N$ = EX$  OR N$ = VT$  THEN 2820
  277. 2770  IF Y = 31  THEN  GOSUB 1160
  278. 2780  IF Y = 32  THEN  GOSUB 1200
  279. 2790  IF Y = 33  THEN  GOSUB 1220
  280. 2800  IF Y = 34  THEN  GOSUB 1270
  281. 2810  IF CK = 1  THEN CK = 0: CALL  -198: GOTO 2750
  282. 2820  NEXT : GOSUB 1290
  283. 2830  GOSUB 200: POKE 36,((WT -34)/2): PRINT MU$(6): PRINT 
  284. 2840 N = AM: GOSUB 700: PRINT "FUTURE AMOUNT: ";N$: PRINT : PRINT "ANNUAL INFLATION RATE: ";I$;"%": PRINT : PRINT "NUMBER OF INFLATION YEARS: ";NP$
  285. 2850 N =  INT(.5 +AM *((1 +CI) ^ -NP) *100)/100
  286. 2860  PRINT : PRINT DC$(2):TP = AM -N: GOSUB 700: PRINT : PRINT "PRESENT VALUE OF AMOUNT: ";N$:N = TP: GOSUB 700: PRINT : PRINT "DEFLATION DOLLARS: ";N$
  287. 2870  GOSUB 250: GOSUB 690: GOTO 1410
  288. 2880  DATA  " LOAN SCHEDULE ACCOUNT "," LOAN CHART "," FUTURE FUND ACCOUNT "," SCHEDULED DEPOSIT ACCOUNT "," MONEY MARKET ACCOUNT "," PRESENT VALUE OF A FUTURE AMOUNT "," QUIT "
  289. 2890  DATA  "Reason for Loan:",1,19,20,2,"Amount of Loan:",3,18,9,1,"Interest:",5,12,6,1,"Type of Payments (M, Q, A):",7,30,1,2
  290. 2900  DATA  "Enter Option (1-2):",13,22,1,1,"Number of Payments to Make:",15,30,3,1,"$ to Pay/Period (Min ",15,33,9,1
  291. 2910  DATA  "Summary or Detail List (S/D):",17,32,1,2,"First Month:",19,15,2,1,"Starting Year:",21,17,4,1,"Printer Slot (0=Screen):",23,27,1,1
  292. 2920  DATA  "Loan Amount:",6,15,9,1,"Interest Rate:",8,17,6,1,"Number of Loan Years:",10,24,5,1,"Printer Slot (0 = Screen):",12,29,1,1
  293. 2930  DATA  "Desired Future Amount:",4,25,9,1,"Deposits Will Be (D,M,Q,A):",6,30,1,2,"Interest Rate:",8,17,6,1,"Number of Investment Years:",10,30,5,1,"Printer Slot(0 = Screen):",12,29,1,1
  294. 2940  DATA  "Deposits Will Be (D,M,Q,A):",4,30,1,2,"Deposit Amount / Period:",6,27,9,1,"Interest Rate:",8,17,6,1,"Number of Investment Years:",10,30,5,1,"Printer Slot (0 = Screen):",12,29,1,1
  295. 2950  DATA  "Amount of Deposit:",4,21,9,1,"Interest Compounded (D,M,Q,A):",6,33,1,2,"Interest Rate:",8,17,6,1,"Number of Investment Years:",10,30,5,1,"Printer Slot(0 = Screen):",12,29,1,1
  296. 2960  DATA  "Future Amount:",6,17,9,1,"Annual Inflation Rate:",8,25,6,1,"Number of Inflation Years:",10,29,5,1,"Printer Slot (0 = Screen):",12,29,1,1
  297. 2970  CALL  -3288: IF  PEEK(222) = 255  THEN  RESUME 
  298. 2980  TEXT : NORMAL : POKE 216,0: IF  PEEK(48896) = 76  THEN  PRINT D$"PR#A$C307": GOTO 3000
  299. 3000  HOME : CALL  -198: PRINT "You have received error # "; PEEK(222): PRINT "found in line # "; PEEK(218) + PEEK(219) *256
  300. 3010  CALL  -198: PRINT : VTAB 24: HTAB 29: PRINT "Press Return for Menu _";BS$;: POKE 49168,0: WAIT  -16384,128: PRINT " ";: POKE  -16368,0: GOTO 1410
  301. 3020  IF  PEEK(48896) = 76  THEN  PRINT  CHR$(4)"PR#A$C307": RETURN 
  302. 3030  POKE 54,7: POKE 55,195: CALL 1002: RETURN 
  303. 3040  PRINT  CHR$(4)"PR#0": HOME : VTAB 12: PRINT "THIS PROGRAM REQUIRES A IIC, IIGS": PRINT " OR IIE WITH 80 COLUMN CARD.": END