--- title: "Personal Home Finance" id: 51750 type: "computer_media" slug: "personal-home-finance" url: "http://localhost/computer_media/personal-home-finance/" markdown_url: "http://localhost/computer_media/personal-home-finance.md" published_at: "2023-08-13T23:14:30+00:00" modified_at: "2026-04-01T10:27:26+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2023/08/SCR-20260401-ghce.png" excerpt: "A comprehensive financial toolkit covering simple interest, loan payoff, compound growth under five compounding frequencies, present value, and net present value — all with built-in input validation and an illustrated instruction module." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Timex Computer Corporation" slug: "timex-computer-corporation" taxonomy: "post_tag" url: "http://localhost/tag/timex-computer-corporation/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" genre: - name: "Finance" slug: "finance" taxonomy: "genre" url: "http://localhost/type/finance/" - name: "Home" slug: "home" taxonomy: "genre" url: "http://localhost/type/home/" media_type: "Program" download_url: "https://archive.org/download/timex-sinclair-software-archive/Personal Home Finance (1983)(Timex)(US)(TS2068)(Cassette).zip" mediadate: "1983" producer_company: - id: 11401 title: "Timex Computer Corporation" type: "company" url: "http://localhost/company/timex-computer-corporation/" images: - url: "http://localhost/wp-content/uploads/2023/08/SCR-20260401-ghce.png" - url: "http://localhost/wp-content/uploads/2023/08/SCR-20260401-ghad.png" related_products: - id: 13541 title: "Personal Home Finance" type: "product" url: "http://localhost/product/personal-home-finance/" media_type_tags: "Finance, Home" --- # Personal Home Finance Personal Home Finance (FIN PACK) is a multi-module financial calculator covering simple interest, loan payment/retirement, future value (compound growth with annual/semi-annual/quarterly/monthly/daily compounding), present value, and net present value. The program uses a shared input-validation subroutine at line 12 that checks character codes to ensure only numeric input is accepted, rejecting non-digit, non-period characters and forwarding “R” key presses back to the main menu. The instruction module at line 9896 uses PLOT and DRAW commands to render a schematic diagram of the eight modules with connecting lines, built from DATA statements read at line 9910. *** ## Program Analysis ### Program Structure The program is organized as a menu-driven application with a two-part loader (lines 10–200 in the “exec” stub) and the main body beginning at line 1. The main body is divided into distinct functional regions: 1. **Lines 1–25:** Initialization, error handling, and shared utility subroutines (border drawing, input validation) 2. **Lines 40–65:** Simple Interest calculator (LOC=1) 3. **Lines 200–232:** Loan Calculator — payment amount and payoff time (LOC=2) 4. **Lines 300–331:** Future Value — compound growth, variable payments, constant payments (LOC=3) 5. **Lines 400–456:** Present Value — lump sum, variable receipts, constant receipts (LOC=4) 6. **Lines 480–510:** Net Present Value (LOC=5) 7. **Lines 600–645:** Save routine with countdown animation 8. **Lines 650–679:** Terminate routine with countdown animation 9. **Lines 8900–8924:** Splash/intro sequence 10. **Lines 8925–8953:** Main menu 11. **Lines 9000–9002:** Post-load entry point (loads machine code, jumps to line 1) 12. **Lines 9896–9999:** Instruction module A `LOC` variable tracks which module is active, allowing context-sensitive returns from the instruction pages (e.g., lines 9948, 9955, 9972, 9987, 9998 branch back to the correct calculator based on `LOC`). ### Machine Code Usage The program saves and reloads a machine code block named “EZCODE” at line 631 using `SAVE "EZCODE" CODE USR "a", 21*8`, which stores 168 bytes starting at the address of UDG “a”. On startup at line 9001, `LOAD "EZCODE" CODE` reloads this block before jumping to line 1. The purpose of the machine code is not described within the BASIC listing itself, but given its size (168 bytes) and location at the UDG area, it likely defines custom graphics characters used in the display. ### Input Validation Subroutine Lines 12–24 implement a reusable numeric input validator. After each `INPUT V$`, the program calls `GO SUB 12`, which loops through each character of `V$` checking its character code: - Code 82 or 114 (“R” or “r”) immediately redirects to the main menu at line 8925 - Codes below 46 (before “.”) or equal to 47 (“/”) are rejected as invalid - Codes above 57 (above “9”) are also rejected - Invalid input triggers line 24: a BEEP, an error message, a new `INPUT V$`, and a restart of the validation loop Note that lines 15–16 and 17–18 are exact duplicates of each other — the checks `CODE V$(J)<46` and `CODE V$(J)=47` are each performed twice. This is redundant but harmless. ### Financial Calculations | Module | Formula / Key Lines | | --- | --- | | Simple Interest | `INT = P*(I/100)*T` (line 56) | | Loan Payment Amount | Standard annuity: `V2 = V1/(1-(1+V1)^-V3)` (line 211) | | Loan Payoff Time | `V2 = LN(A/(A-P*V)) / LN(1+V)` (line 225) | | Compound Growth (5 methods) | Annual, semi-annual, quarterly, monthly, daily: `PV*((1+I)^N)` with varying divisors (line 311) | | FV Variable/Constant Payments | Loop accumulating `P(N)*((1+I/100)^Y)`, decrementing Y each step (line 323) | | PV Lump Sum | `PV = FV/((1+(I/100))^NN)` (line 411) | | PV Variable/Constant Receipts | Loop: `PV = P(N)/(1+I/100)^N` accumulated into TOT (lines 420, 454) | | Net Present Value | `NPV = TOT - INV` (line 500), reusing PV receipt loops | ### TEST Variable and Shared Code Paths The `TEST` variable serves as a flag to direct shared subroutine flows between related modules. The PV variable-receipt loop (lines 418–430) and the constant-receipt loop (lines 450–456) are both reused by the NPV module (lines 480–510): when `TEST=2` (variable NPV) or `TEST=3` (constant NPV), the receipt loops branch to line 500 instead of displaying their own results. This avoids duplicating calculation code but makes control flow non-obvious. A notable anomaly is at line 418: `IF TEST=0 THEN LET TEST=1: REM PV VARIABLE`. The intent appears to distinguish entry from the PV menu (`TEST=0` set to 1 for variable) versus re-entry from NPV (`TEST=2` or `TEST=3`), but the condition does not guard against overwriting `TEST=2` or `TEST=3` correctly — the `IF` only acts when `TEST=0`, so NPV values are preserved. ### Error Handling Line 4 sets `ON ERR GO TO 70`. Lines 70–73 implement a recovery loop: `ON ERR RESET` to clear the error, `PAUSE 100`, then re-arm both `ON ERR GO TO 70` and `ON ERR CONTINUE`. This provides a safety net against runtime errors during financial calculations (e.g., division by zero or overflow) without crashing to a BASIC error screen. ### Instruction Module Graphics Lines 9901–9919 draw a schematic diagram of the menu structure using `PLOT` and `DRAW`. Coordinates for module boxes are stored in a `DATA` statement at line 9910 and read sequentially. Each iteration draws a rectangle at the specified coordinates using a series of `PLOT`/`DRAW` calls, and the loop continues until `n=10` (nine data pairs consumed). Lines 9920–9925 are entirely commented out with `REM` and appear to be debugging scaffolding left in the listing. ### Countdown Save/Terminate Animations Lines 600–641 (save) and 650–679 (terminate) share a similar animated countdown pattern: a `FOR N=1 TO 20` loop uses `PAUSE 20` and `BEEP` to pace the animation, overwriting block graphic characters on a “10 9 8 7 6 5 4 3 2 1 0” display row. The save routine prompts the user to turn on the tape recorder at `N=6` (line 640). At the end of the save loop, the program saves itself with `SAVE "exec" LINE 9000`, which sets line 9000 as the auto-run entry point — this entry point loads the machine code block before jumping to the main initialization. ### Key BASIC Idioms - Repeated `INKEY$` polling loops (no `INPUT` for menu navigation) with `PAUSE` delays to reduce CPU spin - `INT (P*V2*100)/100` at line 211 to round payment amounts to two decimal places - `DIM P(Y)` / `DIM P(NN)` used to create dynamically sized payment arrays before loop entry - String variables `R$`, `E$`, `O$`, `K$` initialized at line 8925 to hold reused display strings, reducing repeated string literals - The intro sequence at lines 8907–8911 uses a variable `TONE` incremented and decremented across nested loops to produce a melodic sweep effect ## Source Code ``` 10 REM "exec" 20 LOAD "EZDRAW"SCREEN$ 30 LOAD "" 200 SAVE "exec" LINE 20 1 REM "FIN PACK" 2 CLS : FLASH 0: BORDER 1: PAPER 6: INK 0: BRIGHT 0: INVERSE 0: CLS 3 LET COL=1 4 ON ERR GO TO 70 5 GO SUB 8900 8 GO SUB 8925 10 CLS : GO SUB 25: BEEP .1,32: PRINT AT 3,4;"D A T A S U P P L I E D": PRINT AT 4,4;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": RETURN 11 CLS : GO SUB 25: BEEP .1,32: PRINT AT 2,4;"D A T A S U P P L I E D": PRINT AT 3,4;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": RETURN 12 LET LENGTH=LEN V$: FOR J=1 TO LENGTH: IF J>LENGTH THEN : RETURN 13 IF CODE V$(1)=82 OR CODE V$(1)=114 THEN GO TO 8925 14 IF CODE V$(J)>57 THEN GO TO 24 15 IF CODE V$(J)<46 THEN GO TO 24 16 IF CODE V$(J)<46 THEN GO TO 24 17 IF CODE V$(J)=47 THEN GO TO 24 18 IF CODE V$(J)=47 THEN GO TO 24 19 NEXT J: RETURN 20 IF NN<1 THEN PRINT AT 18,7;"TRY AGAIN...YEARS ": BEEP .3,12:: PRINT AT 19,7;"MUST BE GREATER THAN 1": PAUSE 200: PRINT AT 18,7;O$;: PRINT AT 19,7;" ": BEEP .1,22: PRINT AT 18,7;"# YEARS FROM NOW $ REC'D": PRINT AT 19,7;"(MUST BE >=1)": INPUT NN: BEEP .1,22: RETURN 21 RETURN 22 COPY : RETURN 24 BEEP 1.25,12: PRINT AT 21,7;" ERROR: TRY AGAIN ": INPUT V$: LET J=0: LET LENGTH=0: PRINT AT 21,7;"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b": GO TO 12 25 FOR N=0 TO 31: PRINT AT 0,N;"\t": PRINT AT 21,N;"\b": NEXT N: FOR N=0 TO 21: PRINT AT N,0;"\t": PRINT AT N,31;"\t": NEXT N: RETURN 41 FOR N=17 TO 19: PRINT AT N,3;R$: INK 4: PRINT AT 19,9;E$: INK 0: NEXT N: PAUSE 15: INK 0: IF INKEY$="R" THEN GO TO 8925 42 FOR N=17 TO 19: PRINT AT N,9;O$: NEXT N 43 IF INKEY$="r" THEN GO TO 8925 45 RETURN 50 LET LOC=1: CLS : BORDER 1: PAPER 7: INK 0: CLS : GO SUB 25: REM SIMPLE INTEREST 51 PRINT AT 4,8;"SIMPLE INTEREST": PRINT AT 5,11;"CALCULATOR": PRINT AT 6,8;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": BEEP .1,22: 52 FOR N=17 TO 19: PRINT AT N,2;R$: NEXT N 53 BEEP .1,22: PRINT AT 17,7;"ENTER ": PRINT AT 18,7;"PRINCIPAL AMOUNT": PRINT AT 19,7;"EX. (150.00)": INPUT V$: GO SUB 12: LET P=VAL V$ 54 BEEP .1,22: PRINT AT 18,7;"INTEREST RATE ": PRINT AT 19,7;"EX. (15.25) ": INPUT V$: GO SUB 12: LET I=VAL V$ 55 BEEP .1,22: PRINT AT 18,7;"TIME IN YEARS": PRINT AT 19,7;"EX. (0.25 OR 2)": INPUT V$: GO SUB 12: LET T=VAL V$ 56 LET INT=P*(I/100)*T: LET TOT=INT+P 57 GO SUB 10: PRINT AT 6,4;"$ ";P;" PRINCIPAL": PRINT AT 7,4;" ";I;" % INTEREST": PRINT AT 8,4;" ";T;" YEAR(S)" 58 PRINT AT 10,4;"R E S U L T": PRINT AT 11,4;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 13,4;"$ ";INT;" EARNED INTEREST": PRINT AT 14,4;"$ ";TOT;" TOTAL VALUE": PRINT AT 16,2;K$ 59 IF INKEY$="1" THEN GO TO 50: 60 IF INKEY$="2" THEN GO TO 8925 61 IF INKEY$="I" THEN GO TO 9945 62 IF INKEY$="3" THEN GO SUB 22 64 GO SUB 40 65 GO TO 59 70 ON ERR RESET 71 PAUSE 100 72 ON ERR GO TO 70 73 ON ERR CONTINUE 199 STOP 200 LET LOC=2: CLS : BORDER 2: PAPER 7: INK 0: CLS : GO SUB 25: 201 PRINT AT 3,14;"LOAN ": PRINT AT 4,11;"CALCULATOR": PRINT AT 5,11;"\..\..\..\..\..\..\..\..\..\..": PRINT AT 9,4;"<1> LOAN PAYMENT AMOUNT": PRINT AT 11,4;"<2> TIME REQUIRED": PRINT AT 12,4;" TO RETIRE DEBT": PRINT AT 15,11;"\..\..\..\..\..\..\..\..\..\..": 202 BEEP .1,22: PAUSE 15 203 IF INKEY$="3" THEN GO SUB 22 204 IF INKEY$="1" THEN GO TO 208 205 IF INKEY$="2" THEN GO TO 220 206 PAUSE 10: GO SUB 40 207 GO TO 204 208 BEEP .1,22: PRINT AT 17,7;"ENTER ": PRINT AT 18,7;"LOAN PERIOD (YRS)": PRINT AT 19,7;"(EX. 1.5) ": PAUSE 40: INPUT V$: GO SUB 12: LET T=VAL V$ 209 BEEP .1,22: PRINT AT 18,7;"NUMBER OF PAYMENTS ": PRINT AT 19,7;"PER YEAR(1-12)": INPUT V$: GO SUB 12: LET PN=VAL V$ 210 BEEP .1,22: PRINT AT 18,7;"PRINCIPAL AMOUNT ": PRINT AT 19,7;"(EX. 100.00) ": INPUT V$: GO SUB 12: LET P=VAL V$: BEEP .1,22: PRINT AT 18,7;"ANNUAL PERCENTAGE ": PRINT AT 19,7;"RATE (EX. 12.5)": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: 211 LET V1=I/(PN*100): LET V3=T*PN: LET V2=V1/(1-(1+V1)^-V3): LET R1=(INT (P*V2*100))/100 212 GO SUB 10: PRINT AT 6,4;"$ ";P;" PRINCIPAL": PRINT AT 7,4;" ";T;" YEAR(S)": PRINT AT 8,4;" ";PN;" PAYMENTS/YR.": PRINT AT 9,4;" ";I;" PERCENT": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";R1;" = EACH PAYMENT": PRINT AT 16,2;K$ 213 GO SUB 40 214 IF INKEY$="1" THEN GO TO 200 215 IF INKEY$="2" THEN GO TO 8925 216 IF INKEY$="I" THEN GO TO 9949 217 IF INKEY$="3" THEN GO SUB 22 218 PAUSE 15: GO TO 213 220 GO SUB 40: BEEP .1,22: PRINT AT 17,7;"ENTER": PRINT AT 18,7;"NUMBER OF PAYMENTS": PRINT AT 19,7;"PER YEAR(1-12)": PAUSE 40: INPUT V$: GO SUB 12: LET PN=VAL V$: 221 BEEP .1,22: PRINT AT 18,7;"ANNUAL PERCENTAGE ": PRINT AT 19,7;"RATE(EX. 12.5)": INPUT V$: GO SUB 12: LET I=VAL V$: 222 LET V=I/(100*PN) 223 BEEP .1,22: PRINT AT 18,7;"PRINCIPAL AMOUNT ": PRINT AT 19,7;"(EX. 100.00) ": INPUT V$: GO SUB 12: LET P=VAL V$: BEEP .1,22: PRINT AT 18,7;"AMOUNT OF EACH ": PRINT AT 19,7;"PAYMENT(EX. 250.00)": INPUT V$: GO SUB 12: LET A=VAL V$: BEEP .1,22: 224 IF ((A/(A-P*V)))/(LN (1+V))<=0 THEN PRINT AT 17,7;"THAT PAYMENT AMOUNT": PRINT AT 18,7;"WILL NOT PAY OFF ": PRINT AT 19,7;"THE LOAN AT ";I;" % ": BEEP .3,12: PAUSE 200: GO TO 200 225 LET V2=(LN (A/(A-P*V)))/(LN (1+V)): LET R1=V2/PN 226 GO SUB 10: PRINT AT 6,4;"$ ";P;" PRINCIPAL": PRINT AT 7,4;"$ ";A;" PAYMENT": PRINT AT 8,4;" ";PN;" PAYMENTS/YR.": PRINT AT 9,4;" ";I;" %": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,3;R1;" YR(S) RETIRE LOAN": PRINT AT 16,2;K$: BEEP .1,32: 227 GO SUB 40 228 IF INKEY$="1" THEN GO TO 200 229 IF INKEY$="2" THEN GO TO 8925 230 IF INKEY$="I" THEN GO TO 9948 231 IF INKEY$="3" THEN GO SUB 22 232 PAUSE 15: GO TO 227 300 LET LOC=3: PAPER 7: INK 0: BORDER 3: LET TOT=0: LET TEST=0: REM FV COMPOUND INTEREST 301 CLS : GO SUB 25: PRINT AT 3,10;"FUTURE VALUE": PRINT AT 4,10;"\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 7,4;"<1> INVESTMENT GROWTH": PRINT AT 8,4;" (COMPOUND INTEREST)": PRINT AT 10,4;"<2> FUTURE VALUE OF": PRINT AT 11,4;" VARIABLE PAYMENTS": PRINT AT 13,4;"<3> FUTURE VALUE OF": PRINT AT 14,4;" CONSTANT PAYMENTS": PRINT AT 15,10;"\..\..\..\..\..\..\..\..\..\..\..\..": BEEP .1,22: 302 GO SUB 40 303 IF INKEY$="1" THEN GO TO 310 304 IF INKEY$="2" THEN GO TO 319 305 IF INKEY$="3" THEN GO TO 318 306 PAUSE 10: GO TO 302 310 BEEP .1,22: PRINT AT 17,7;"ENTER": PRINT AT 18,7;"AMOUNT INVESTED": PRINT AT 19,7;"(EX. 1000.00)": INPUT V$: GO SUB 12: LET PV=VAL V$: BEEP .1,22: PRINT AT 18,7;"INTEREST RATE ": PRINT AT 19,7;"(EX. 12.5) ": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: PRINT AT 18,7;"NUMBER OF YEARS": PRINT AT 19,7;"(EX. 2.5) ": INPUT V$: GO SUB 12: LET N=VAL V$: BEEP .1,22: 311 LET I2=I/100: LET N2=N: LET FA=(PV*((1+I2)^N)): LET I=I2/2: LET N=N2*2: LET FS=(PV*((1+I)^N)): LET I=I2/4: LET N=N2*4: LET FQ=(PV*((1+I)^N)): LET I=I2/12: LET N=N2*12: LET FM=(PV*((1+I)^N)): LET I=I2/365: LET N=N2*365: LET FD=(PV*((1+I)^N)): 312 GO SUB 11: PRINT AT 4,3;"$ ";PV;" INVESTED (YEAR 1)": PRINT AT 5,3;"@ ";(I2*100);" % FOR ";N2;" YEAR(S)": PRINT AT 6,10;"R E S U L T": PRINT AT 7,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 8,2;"COMPOUNDED: FUTURE VALUE:": PRINT AT 9,2;"\..\..\..\..\..\..\..\..\..\..\.. \..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 10,2;"ANNUALLY = $ ";FA: PRINT AT 11,2;"SEMI-ANNUALLY= $ ";FS: PRINT AT 12,2;"QUARTERLY = $ ";FQ: PRINT AT 13,2;"MONTHLY = $ ";FM: PRINT AT 14,2;"DAILY = $ ";FD: PRINT AT 16,2;K$ 313 IF INKEY$="3" THEN GO SUB 22 314 IF INKEY$="I" THEN GO TO 9955 315 IF INKEY$="1" THEN GO TO 300 316 IF INKEY$="2" THEN GO TO 8925 317 PAUSE 15: GO SUB 40: GO TO 313 318 LET TEST=1 319 PAUSE 30: PRINT AT 17,7;"ENTER": PRINT AT 18,7;"INTEREST RATE": PAUSE 40: PRINT AT 19,7;"(EX. 12.5) ": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: PRINT AT 18,7;"# YEARS PAYMENT IS MADE": PRINT AT 19,7;"(NO DECIMAL) ": INPUT V$: GO SUB 12: LET Y=VAL V$: BEEP .1,22: 320 IF TEST=0 THEN GO TO 322 321 PRINT AT 18,7;"AMOUNT OF CONSTANT ": PRINT AT 19,7;"PAYMENT (EX. 150.00) ": INPUT V$: GO SUB 12: LET CP=VAL V$: BEEP .1,22: DIM P(Y): FOR N=1 TO Y: LET P(N)=CP: NEXT N: GO TO 323 322 DIM P(Y): FOR N=1 TO Y: PRINT AT 18,7;"AMOUNT OF EACH ": PRINT AT 19,7;"ANNUAL PAYMENT (# ";N;" ) ": INPUT V$: GO SUB 12: LET P(N)=VAL V$: BEEP .1,22: NEXT N: 323 LET YZ=Y: LET TOT=0: LET TT=0: FOR N=1 TO Y: LET FV=(P(N)*((1+I/100)^Y)): BEEP .01,25: LET Y=Y-1: LET TOT=TOT+FV: LET TT=TT+P(N): NEXT N 324 IF TEST=0 THEN GO TO 326 325 GO SUB 10: PRINT AT 6,3;"$ ";P(1);" INVESTED ANNUALLY": PRINT AT 7,3;" OVER ";YZ;" YEARS AT ";I;" %": PRINT AT 8,3;" ";"TOTALING $ ";TT;: PRINT AT 10,10;"R E S U L T": PRINT AT 11,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 13,3;"$ ";TOT;" = FUTURE VALUE": PRINT AT 16,2;K$: GO SUB 40: GO TO 327 326 GO SUB 10: PRINT AT 6,3;"$ ";TT;" INVESTED VARIABLY": PRINT AT 7,3;" OVER ";YZ;" YEARS AT ";I;" % ": PRINT AT 10,10;"R E S U L T": PRINT AT 11,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 13,3;"$ ";TOT;" = FUTURE VALUE": PRINT AT 16,2;K$: GO SUB 40: 327 IF INKEY$="1" THEN GO TO 300 328 IF INKEY$="2" THEN GO TO 8925 329 IF INKEY$="I" THEN GO TO 9955 330 IF INKEY$="3" THEN GO SUB 22 331 PAUSE 15: GO SUB 40: GO TO 327 400 LET LOC=4 401 CLS : BORDER 4: PAPER 7: INK 0: CLS : GO SUB 25: BEEP .1,22: PRINT AT 4,9;"PRESENT VALUE": PRINT AT 5,9;"\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 8,4;"<1> LUMP SUM": PRINT AT 10,4;"<2> PRESENT VALUE OF": PRINT AT 11,4;" VARIABLE RECEIPTS": PRINT AT 13,4;"<3> PRESENT VALUE OF": PRINT AT 14,5;" CONSTANT RECEIPTS": PRINT AT 15,9;"\..\..\..\..\..\..\..\..\..\..\..\..\.." 404 IF INKEY$="1" THEN GO TO 409 405 IF INKEY$="2" THEN GO TO 418 406 IF INKEY$="3" THEN GO TO 450 407 GO SUB 40: GO TO 404 409 BEEP .1,22: PRINT AT 17,7;"ENTER ": PRINT AT 18,7;"LUMP SUM PAYMENT": PRINT AT 19,7;"(EX. 150.00)": INPUT V$: GO SUB 12: LET FV=VAL V$: BEEP .1,22: PRINT AT 18,7;"# YEARS FROM NOW $ REC'D": PRINT AT 19,7;"(MUST BE >=1)": INPUT V$: GO SUB 12: LET NN=VAL V$: BEEP .1,22: GO SUB 20: 410 IF NN<1 THEN PRINT AT 18,7;"TRY AGAIN...YEARS ": BEEP .2,12:: PRINT AT 19,7;"MUST BE GREATER THAN 1": PAUSE 100: PRINT AT 18,7;O$;: PRINT AT 19,7;" ": BEEP .1,22: GO TO 410 411 PRINT AT 18,7;"INTEREST RATE ": PRINT AT 19,7;"(EX. 12.5) ": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: LET PV=(FV/((1+(I/100))^NN)): CLS : 412 GO SUB 10: PRINT AT 6,4;"$ ";FV;" TO BE RECEIVED": PRINT AT 7,4;" ";NN;" YEARS FROM NOW": PRINT AT 8,4;" ";I;" % EST. INTEREST RATE": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";PV;"=PRESENT VALUE": PRINT AT 16,2;K$: GO SUB 40 413 IF INKEY$="3" THEN GO SUB 22 414 IF INKEY$="I" THEN GO TO 9973 415 IF INKEY$="1" THEN GO TO 400 416 IF INKEY$="2" THEN GO TO 8925 417 PAUSE 15: GO SUB 40: GO TO 413 418 IF TEST=0 THEN LET TEST=1: REM PV VARIABLE 419 BEEP .1,22: PRINT AT 17,7;"ENTER": PRINT AT 18,7;"# OF YEARS PAYMENT": PRINT AT 19,7;"RECEIVED (NO DECIMAL)": INPUT V$: GO SUB 12: LET NN=VAL V$: BEEP .1,22: DIM P(NN): FOR N=1 TO NN: PRINT AT 18,7;"AMOUNT OF RECEIPT ": PRINT AT 19,7;"(EX. 150.00) # ";N;" ": INPUT V$: GO SUB 12: LET P(N)=VAL V$: BEEP .1,22: NEXT N: PRINT AT 18,7;"INTEREST RATE ": PRINT AT 19,7;"(EX. 12.5) ": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: 420 LET TT1=0: LET TOT=0: FOR N=1 TO NN: LET TT1=TT1+P(N): LET PV=(P(N)/(1+I/100)^N): LET TOT=TOT+PV: BEEP .015,25: NEXT N 422 IF TEST=2 THEN GO TO 500 423 IF TEST=1 THEN CLS : GO SUB 11: PRINT AT 6,4;"$ ";TT1;" RECEIVED VARIABLY": PRINT AT 7,4;" OVER ";NN;" YEARS": PRINT AT 8,4;" ";I;" % EST. INTEREST RATE": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";TOT;"=PRESENT VALUE": PRINT AT 16,2;K$: GO SUB 40 424 IF TEST=0 THEN CLS : GO SUB 11: PRINT AT 6,4;"$ ";P(1);" RECEIVED ANNUALLY": PRINT AT 7,4;" OVER ";NN;" YEARS": PRINT AT 8,4;" ";I;" % EST. INTEREST RATE";: PRINT AT 9,4;" TOTALING $ ";TT1;: PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";TOT;"=PRESENT VALUE": PRINT AT 16,2;K$: GO SUB 40 425 IF INKEY$="1" THEN GO TO 400 426 IF INKEY$="2" THEN GO TO 8925 427 IF INKEY$="3" THEN GO SUB 22 428 IF INKEY$="I" THEN GO TO 9973 430 PAUSE 15: GO SUB 40: GO TO 425 450 LET TEST=0 452 BEEP .1,22: PRINT AT 17,7;"ENTER": PRINT AT 18,7;"# OF YEARS PAYMENT": PRINT AT 19,7;"RECEIVED (NO DECIMAL)": INPUT V$: GO SUB 12: LET NN=VAL V$: BEEP .1,22: DIM P(NN): PRINT AT 18,7;"AMOUNT OF ANNUAL ": PRINT AT 19,7;"RECEIPT (EX. 150.00) ": INPUT V$: GO SUB 12: LET CON=VAL V$: BEEP .1,22: FOR N=1 TO NN: LET P(N)=CON: NEXT N: PRINT AT 18,7;"INTEREST RATE ": PRINT AT 19,7;"(EX. 12.5) ": INPUT V$: GO SUB 12: LET I=VAL V$: BEEP .1,22: 454 LET TT1=0: LET TOT=0: FOR N=1 TO NN: LET TT1=TT1+P(N): LET PV=(P(N)/(1+I/100)^N): LET TOT=TOT+PV: BEEP .015,25: NEXT N 455 IF TEST=3 THEN GO TO 500 456 GO TO 424 480 LET LOC=5 482 LET TEST=2: CLS : BORDER 5: INK 0: PAPER 7: 484 CLS : GO SUB 25: PRINT AT 4,7;"NET PRESENT VALUE": PRINT AT 5,7;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 7,7;"INVESTMENT WITH:": PRINT AT 9,3;"<1> VARIABLE RECEIPTS": PRINT AT 11,3;"<2> CONSTANT RECEIPTS": PRINT AT 13,7;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": GO SUB 40: BEEP .1,22: 485 IF INKEY$="I" THEN GO TO 9988 486 IF INKEY$="1" THEN GO TO 490 487 IF INKEY$="2" THEN GO TO 492 488 PAUSE 15: GO SUB 40: GO TO 485 490 LET TEST=2: GO TO 494 491 GO TO 494 492 LET TEST=3: GO TO 494 494 PRINT AT 17,7;"ENTER": PRINT AT 18,7;"ORIGINAL INVESTMENT": PRINT AT 19,7;"(EX. 50000)": PAUSE 40: INPUT V$: GO SUB 12: LET INV=VAL V$: BEEP .1,22: PRINT AT 18,7;" ": PRINT AT 19,7;" " 496 IF TEST=2 THEN GO TO 418 497 IF TEST=3 THEN GO TO 452 500 LET NPV=TOT-INV 504 IF TEST=2 THEN CLS : GO SUB 11: PRINT AT 6,4;"$ ";TT1;" RECEIVED VARIABLY": PRINT AT 7,4;" OVER ";NN;" YEARS": PRINT AT 8,4;" ";I;" % EST. INTEREST RATE": PRINT AT 9,4;"$ ";INV;" INITIAL INVESTMENT": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";NPV;"= N.P.V.": PRINT AT 16,2;K$: GO SUB 40 505 IF TEST=3 THEN CLS : GO SUB 11: PRINT AT 6,4;"$ ";TT1;" RECEIVED VARIABLY": PRINT AT 7,4;" OVER ";NN;" YEARS": PRINT AT 8,4;" ";I;" % EST. INTEREST RATE": PRINT AT 9,4;"$ ";INV;" INITIAL INVESTMENT": PRINT AT 11,10;"R E S U L T": PRINT AT 12,10;"\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 14,4;"$ ";NPV;" = N.P.V.": PRINT AT 16,2;K$: GO SUB 40 506 IF INKEY$="I" THEN GO TO 9988 507 IF INKEY$="1" THEN GO TO 480 508 IF INKEY$="2" THEN GO TO 8925 509 IF INKEY$="3" THEN GO SUB 22 510 PAUSE 15: GO SUB 40: GO TO 506 600 CLS : PAPER 4: INK 0: BORDER 6: FLASH 1: PRINT AT 6,9;"SAVE FIN PACK\*": FLASH 0: PRINT AT 8,11;"COUNTDOWN:": PRINT AT 10,5;"\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::": PRINT AT 12,5;"10 9 8 7 6 5 4 3 2 1 0": PRINT AT 14,5;"\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::": 604 FLASH 1: PRINT AT 16,7;"ENTER <1> TO ABORT": FLASH 0: BRIGHT 1: FOR N=1 TO 20: PAUSE 20: BEEP .05,30: PRINT AT 12,N+4;"\::\::": GO SUB 628: GO SUB 640: NEXT N: PRINT AT 12,3;"FIN PACK\* SAVE IN PROGRESS": PRINT AT 16,7;" ": SAVE "exec" LINE 9000: GO TO 631 628 IF INKEY$="1" THEN GO TO 8925 629 RETURN 631 CLS : FLASH 1: PRINT AT 21,2;"DEPRESS ANY KEY": BEEP .5,25: SAVE "EZCODE"CODE USR "a",21*8: GO TO 1 632 GO TO 8925 640 IF N=6 THEN PRINT AT 18,8;"TURN RECORDER ON" 641 RETURN 645 STOP 650 CLS : PAPER 2: INK 0: BORDER 1: FLASH 1: PRINT AT 6,6;"TERMINATE FIN PACK\*": FLASH 0: PRINT AT 8,11;"COUNTDOWN:": PRINT AT 10,5;"\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::": PRINT AT 12,5;"10 9 8 7 6 5 4 3 2 1 0": PRINT AT 14,5;"\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::": 654 FLASH 1: PRINT AT 16,7;"ENTER TO ABORT": FLASH 0: BRIGHT 1: FOR N=1 TO 20: PAUSE 20: BEEP .05,30: PRINT AT 12,N+4;"\::\::": GO SUB 678: NEXT N: NEW 678 IF INKEY$<>"" THEN GO TO 8925 679 RETURN 8900 REM ITIALIZE-INTRODUCE 8902 LET S$="F I N P A C K \* F I N P A C K" 8904 LET A$="\ COPYRIGHT 1983 EZ-SOFT COMPANY\::" 8905 LET B$=" " 8906 LET TONE=40 8907 FOR N=1 TO 11: PRINT S$: PRINT B$: BEEP .005,TONE: LET TONE=TONE-2: NEXT N 8908 LET CT=15 8909 INK 1: PAPER 1: CLS : FOR n=1 TO 3: PRINT AT 22-n,0;" ": NEXT n: FOR N=4 TO 7: PAPER COL: INK n: PRINT AT CT,0;" ";A$: BEEP .05,TONE: LET TONE=TONE+4: LET COL=INT (COL+.75): LET CT=CT-2: NEXT N: FOR N=1 TO 3: INK 1: PAPER 5: PRINT AT CT,0; INVERSE 1;"F I N P A C K $ F I N P A C K\*": LET CT=CT-2: NEXT N 8910 FOR N=1 TO 5: BEEP .05,TONE: LET TONE=TONE-10: NEXT N 8911 FOR N=1 TO 9: LET TONE=TONE+N: BEEP .05,TONE: NEXT N: FOR N=1 TO 9: LET TONE=TONE-N+3: BEEP .05,TONE: NEXT N: FOR N=1 TO 5: LET TONE=TONE+2: BEEP .04,TONE: NEXT N: BEEP 1,(TONE+1) 8912 FOR N=1 TO 3 8913 BORDER 2: PAUSE 5 8914 BORDER 3: PAUSE 5 8915 BORDER 4: PAUSE 5 8916 NEXT N 8919 PAUSE 50 8924 CLS : RETURN 8925 CLS : BORDER 4: PAPER 6: INK 0: CLS : CLEAR : LET R$="--->": LET E$="ENTER SELECTION": LET O$=" ": LET K$="<1>=CONTINUE <2>=END <3>=COPY": LET L=1 8926 FOR N=0 TO 31: PRINT AT 0,N;"\::";: PRINT AT 21,n;;"\::": NEXT N: FOR N=0 TO 21: PRINT AT N,0;"\::": PRINT AT N,31;"\::": NEXT N 8928 LET LOC=0: PRINT AT 3,6;"F I N P A C K \*": PRINT AT 4,6;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": LET TEST=0: PRINT AT 6,3;"<1> SIMPLE INTEREST": PRINT AT 7,3;"<2> LOAN PAYMENT/RETIREMENT": PRINT AT 8,3;"<3> FUTURE VALUE": PRINT AT 9,3;" (COMPOUND GROWTH)": PRINT AT 10,3;"<4> PRESENT VALUE": PRINT AT 11,3;"<5> NET PRESENT VALUE": PRINT AT 12,3;"<6> SAVE EZ-SOFT FIN PACK\*": PRINT AT 13,3;"<7> TERMINATE FIN PACK\*": PRINT AT 14,3;"<8> INSTRUCTIONS" 8929 BEEP .05,12 8930 FOR N=17 TO 19: PRINT AT N,3;R$: INK 1: PRINT AT 19,9;E$: INK 0: NEXT N 8931 IF INKEY$="1" THEN GO TO 50 8932 IF INKEY$="2" THEN GO TO 200 8933 IF INKEY$="3" THEN GO TO 300 8934 IF INKEY$="4" THEN GO TO 400 8935 IF INKEY$="5" THEN GO TO 480 8936 IF INKEY$="6" THEN GO TO 600 8937 IF INKEY$="7" THEN GO TO 650 8938 IF INKEY$="8" THEN GO TO 9896 8952 FOR N=17 TO 19: PRINT AT N,9;O$: PAUSE 20: NEXT N 8953 GO TO 8930 9000 LET T=.1: FOR N=1 TO 5: BEEP T,.25: LET T=T-.025: NEXT N 9001 LOAD "EZCODE"CODE 9002 GO TO 1 9896 CLEAR : LET LOC=0: REM "INST" 9897 LET n=1: LET INK=0: BORDER 3: INK 0: BEEP .25,25: CLS : FOR A=1 TO 21: LET INK=INK+1: PRINT " FIN PACK\* INSTRUCTION MODULE": RESTORE 9910: 9898 FOR A=1 TO 21: LET INK=INK+1: PRINT " FIN PACK\* INSTRUCTION MODULE": 9899 INK INK: PAUSE 4: IF INK=6 THEN LET INK=0: 9900 NEXT A: PAUSE 50: CLS 9901 BORDER 3: PAPER 7: INK 0: BEEP .25,35: READ x,y: LET n=n+1 9902 PLOT 0,145: DRAW 90,+30: PLOT 168,175: DRAW 86,-30 9905 PLOT x,y: DRAW 80,0: PLOT x,y-30: DRAW 0,30: PLOT x,y-30: DRAW 80,0: DRAW 0,30: 9910 DATA 88,175,1,130,88,130,175,130,41,90,128,90,1,50,88,50,175,50 9919 IF n<10 THEN GO TO 9901 9920 REM FOR n=0 TO 21: PRINT AT n,0;n;: NEXT n 9921 REM LET x=0 9922 REM FOR n=0 TO 31: PRINT AT 4,n;x; 9923 REM LET x=x+1 9924 REM IF x=10 THEN LET x=0 9925 REM NEXT n 9930 PAPER 6: PRINT AT 1,14;"MAIN": BEEP .2,30: PRINT AT 2,14;"MENU": BEEP .2,30: PRINT AT 6,1;"SIMPLE": BEEP .2,30: PRINT AT 7,1;"INTEREST": BEEP .2,30: PRINT AT 8,1;"MODULE 1": BEEP .2,30: PRINT AT 6,12;"LOAN ": BEEP .2,30: PRINT AT 7,12;"CALC": BEEP .2,30: PRINT AT 8,12;"MODULE 2": BEEP .2,30: PRINT AT 6,23;"FUTURE": BEEP .2,30: PRINT AT 7,23;"VALUE": BEEP .2,30: PRINT AT 8,23;"MODULE 3": BEEP .2,30: 9932 PRINT AT 11,6;"PRESENT": BEEP .2,30: PRINT AT 12,6;"VALUE": BEEP .2,30: PRINT AT 13,6;"MODULE 4": BEEP .2,30: PRINT AT 11,17;"NET PRES.": BEEP .2,30: PRINT AT 12,17;"VALUE": BEEP .2,30: PRINT AT 13,17;"MODULE 5": BEEP .2,30: 9933 PRINT AT 16,1;"SAVE": BEEP .2,30: PRINT AT 17,1;"ROUTINE": BEEP .2,30: PRINT AT 18,1;"MODULE 6": BEEP .2,30: PRINT AT 16,12;"TERMINATE": BEEP .2,30: PRINT AT 17,12;"ROUTINE": BEEP .2,30: PRINT AT 18,12;"MODULE 7": BEEP .2,30: PRINT AT 16,23;"INST-": BEEP .2,30: PRINT AT 17,23;"RUCTION": BEEP .2,30: PRINT AT 18,23;"MODULE 8": BEEP .2,30 9934 PRINT AT 4,0;"FIN PACK\* CONSISTS OF 8 MODULES": BEEP .125,35 9935 PRINT AT 21,1;"PRESS ANY KEY TO CONTINUE" 9936 IF INKEY$<>"" THEN GO TO 9940 9937 IF INKEY$<>"" THEN GO TO 9940 9938 9939 GO TO 9936 9940 BEEP .1,25: CLS : PRINT AT 1,2;"EACH MODULE MAY HAVE SEVERAL SUB-MODULES WITHIN IT. THESE AREDISPLAYED ON THE SCREENS THAT FOLLOW.": PRINT AT 6,0;"NOTE": PRINT AT 7,2;"***PRESSING (I) WHILE IN THE 'SELECTION' MODE OF ANY MODULE WILL AUTOMATICALLY PROVIDE INSTRUCTIONS.": PRINT AT 12,2;"***PRESSING (R) WILL RETURN YOU TO THE MAIN MENU.": PRINT AT 21,1;"PRESS ANY KEY TO CONTINUE" 9942 IF INKEY$<>"" THEN GO TO 9944 9943 GO TO 9942 9944 GO SUB 9945: GO SUB 9950 9945 BORDER 1: CLS : BEEP .1,25: CLS : PRINT AT 0,0;"SIMPLE INTEREST MODULE 1 ": PRINT AT 1,1;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,2;"SIMPLE INTEREST IS THE AMOUNT OF INTEREST OR 'RENT' ONE RECEIVES WHEN THE INTEREST IS COMPUTED A SINGLE TIME FOR THE ENTIRE LOAN PERIOD.": PRINT AT 9,2;"EXAMPLE : SUPPOSE YOU BORROW $1000 FOR 1 YEAR AT 10%": PRINT AT 12,0;"INTEREST=PRINCIPALxINT.RATExTIME": PRINT AT 14,0;" $100 = $1000 x .10 x 1 (YEAR)": PRINT AT 16,0;"THUS, YOU MUST PAY BACK:": PRINT AT 18,1;"$1100 ($1000+$100)PRINC+INT.": PRINT AT 19,0;"________________________________": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9946 IF INKEY$<>"" THEN GO TO 9948: 9947 GO TO 9946 9948 IF LOC<>2 AND LOC<>0 THEN GO TO 50 9949 BORDER 2: CLS : BEEP .1,25: PRINT AT 0,0;"LOAN CALCULATOR MODULE 2": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"1. LOAN PAYMENT CALCULATOR 2. # YEARS REQ'D TO PAYOFF LOAN": PRINT AT 6,0;"LOAN PAYMENT CALLS FOR YOU TO ENTER:": PRINT AT 8,9;"A. LOAN AMOUNT": PRINT AT 9,9;"B. INTEREST RATE": PRINT AT 10,9;"C. LOAN PERIOD": PRINT AT 11,9;"D. # OF PAYM'TS/YEAR": PRINT AT 13,0;"SUPPOSE YOU WISH TO BUY A HOUSE FOR $55,000. YOUR BANK OFFERS 30YEAR MORTGAGES AT 12%. THIS SUB-MODULE PROVIDES THE MONTHLY PAYMENT AMOUNT(10% DOWN).": PRINT AT 19,2;"$50,000@12%(30YRS)=$514.30": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9950 IF INKEY$<>"" THEN GO TO 9952 9951 GO TO 9950 9952 CLS : BEEP .1,25: PRINT AT 0,0;"LOAN CALCULATOR MODULE 2B": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"2. #YRS REQ'D TO PAYOFF LOAN": PRINT AT 5,0;"DATA REQUIRED": PRINT AT 7,5;"A. # PAYMENTS/YEAR": PRINT AT 8,5;"B. INTEREST RATE": PRINT AT 9,5;"C. LOAN AMOUNT (PRINCIPAL)": PRINT AT 10,5;"D. PAYMENT AMOUNT": PRINT AT 12,0;"SUPPOSE YOU WANT TO BUY A CAR AND CAN AFFORD $250/MONTH. THE CAR YOU WANT COSTS $6,000. HOW LONG WILL IT TAKE TO PAYOFF THE LOAN IF RATES ARE AT 12%": PRINT AT 18,0;"$6,000@12%,$250/MO.=2.3 YEARS": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9953 IF INKEY$<>"" THEN GO TO 9955 9954 GO TO 9953 9955 IF LOC<>3 AND LOC<>0 THEN GO TO 200 9960 BORDER 3: CLS : BEEP .1,25: PRINT AT 0,0;"FUTURE VALUE MODULE 3": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"THE CONCEPT OF SIMPLE INTEREST DESCRIBED IN MODULE 1 IS THE BASIS OF MONEY GROWTH CALCULAT- IONS. IN THE REAL WORLD, HOWEVERINTEREST IS COMPOUNDED-YOU EARN INTEREST ON YOUR INTEREST.": PRINT AT 11,0;"THIS MODULE HAS 3 SUB-MODULES:": PRINT AT 13,5;"A. INVESTMENT GROWTH": PRINT AT 14,5;"B. FV OF VARIABLE PAYMENTS": PRINT AT 15,5;"C. FV OF CONSTANT PAYMENTS": PRINT AT 17,0;"EACH SUB-MODULE WILL BE": PRINT AT 18,0;"DESCRIBED NEXT.": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9961 IF INKEY$<>"" THEN GO TO 9963 9962 GO TO 9961 9963 CLS : BEEP .1,25: PRINT AT 0,0;"FUTURE VALUE MODULE 3A": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"1. INVESTMENT GROWTH:": PRINT AT 5,0;"DATA REQUIRED": PRINT AT 7,5;"A. AMOUNT INVESTED": PRINT AT 8,5;"B. INTEREST RATE": PRINT AT 9,5;"C. INVESTMENT PERIOD": PRINT AT 11,0;"SUPPOSE YOU INVESTED $1,000@12% FOR 10 YEARS. THIS MODULE SHOWS THE GROWTH OF YOUR INVESTMENT UNDER 5 DIFFERENT COMPOUNDING METHODS:": PRINT AT 17,1;"$1,000@12%,10YRS=$3,105(ANNUAL)": PRINT AT 18,1;" $3,319(DAILY)": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9964 IF INKEY$<>"" THEN GO TO 9966 9965 GO TO 9964 9966 CLS : BEEP .1,25: PRINT AT 0,0;"FUTURE VALUE MODULE 3B": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"2. FV OF VARIABLE PAYM'TS": PRINT AT 5,0;"DATA REQUIRED": PRINT AT 7,5;"A. INTEREST RATE": PRINT AT 8,5;"B. # YEARS PAYM'T IS MADE": PRINT AT 9,5;"C. EACH ANNUAL PAYMENT": PRINT AT 11,0;"SUPPOSE YOU DECIDED TO SAVE $1,000 THIS YEAR AND $2,000 NEXTYEAR. IF RATES ARE @ 12%, HOW MUCH WOULD THIS BE WORTH A YEAR AFTER YOUR 2ND DEPOSIT?": PRINT AT 17,2;"$1,000,$2,000@12%=$3,494.40": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9967 IF INKEY$<>"" THEN GO TO 9969 9968 GO TO 9967 9969 CLS : BEEP .1,25: PRINT AT 0,0;"FUTURE VALUE MODULE 3C": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"3. FV OF CONSTANT PAYMENTS": PRINT AT 5,0;"DATA REQUIRED": PRINT AT 7,5;"A. INTEREST RATE": PRINT AT 8,5;"B. # YEARS PAYMENT MADE": PRINT AT 9,5;"C. ANNUAL CONSTANT PAYMENT": PRINT AT 11,0;"SUPPOSE YOU DECIDE TO OPEN A BANK ACCOUNT AND DEPOSIT $2,000/YEAR FOR 20YRS UNTIL YOU RETIRE.IF RATES ARE 10%, HOW MUCH WILL YOU HAVE FOR RETIREMENT?": PRINT AT 17,2;"$2,000(20YRS)@10%=$126,005": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9970 IF INKEY$<>"" THEN GO TO 9972 9971 GO TO 9970 9972 IF LOC<>4 AND LOC<>0 THEN GO TO 300 9973 BORDER 4: CLS : BEEP .1,25: PRINT AT 0,0;"PRESENT VALUE MODULE 4": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"THIS MODULE HAS 3 SUB-MODULES:": PRINT AT 5,5;"1. PV OF A LUMP SUM": PRINT AT 6,5;"2. PV OF VARIABLE RECEIPTS": PRINT AT 7,5;"3. PV OF CONSTANT RECEIPTS": PRINT AT 9,0;"PRESENT VALUE IS THE OPPOSITE OFFUTURE VALUE(MODULE 3). IT HELPSONE TO DETERMINE THE VALUE TODAYOF SOME PAYMENT IN THE FUTURE GIVEN SOME INTEREST RATE. WORKING THROUGH THE MODULE WILL CLARIFY THIS CONCEPT FOR YOU.": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9974 IF INKEY$<>"" THEN GO TO 9976 9975 GO TO 9974 9976 CLS : BEEP .1,25: PRINT AT 0,0;"PRESENT VALUE MODULE 4A": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 2,0;"1. PV OF A LUMP SUM": PRINT AT 3,0;"DATA REQUIRED:": PRINT AT 5,2;"A. LUMP SUM RECEIPT": PRINT AT 6,2;"B. # YRS FROM NOW PAYM'T REC'D": PRINT AT 7,2;"C. INTEREST RATE": PRINT AT 9,0;"SUPPOSE YOU WISH TO SELL A BOAT FOR $10,000. THE BUYER AGREES TOTHE PRICE BUT CAN ONLY PAY YOU 2YEARS FROM NOW. SINCE IF HE PAIDYOU NOW, THE $10,000 COULD EARN INTEREST IN THE BANK, YOU WILL BE LOSING THAT INTEREST. RATES ARE 12%. WHAT IS THE VALUEOF THE PAYMENT?": PRINT AT 19,1;"$10,000(2YRS)12%=$7,971.94": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9977 IF INKEY$<>"" THEN GO TO 9979 9978 GO TO 9977 9979 CLS : BEEP .1,25: PRINT AT 0,0;"PRESENT VALUE MODULE 4B": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"PV OF VARIABLE RECEIPTS": PRINT AT 5,0;"DATA REQUIRED": PRINT AT 7,5;"A. #YRS PAYM'T REC'D": PRINT AT 8,5;"B. EACH ANNUAL PAYM'T": PRINT AT 9,5;"C. INTEREST RATE": PRINT AT 11,0;"SUPPOSE YOU SELL THE SAME BOAT BUT THE BUYER OFFERS TO PAY YOU IN 3 ANNUAL INSTALLMENTS:$2,000;$4,000; $5,000 TOTALLING $11,000. IS THIS MORE THAN $10,000 PAID TODAY? NO!": PRINT AT 19,1;"$11,000(3YRS)12%=$8533.39": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9981 IF INKEY$<>"" THEN GO TO 9983 9982 GO TO 9981 9983 CLS : BEEP .1,25: PRINT AT 0,0;"PRESENT VALUE MODULE 4C": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"PV OF CONSTANT PAYMENTS": PRINT AT 5,0;"THIS SUB-MODULE PERFORMS THE SAME FUNCTION AS THE PV OF VARIABLE PAYMENTS SUB-MODULE.": PRINT AT 9,0;"THE ONLY DIFFERENCE IS THAT THE RECEIPT AMOUNT IS THE SAME EACH YEAR.": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE": 9984 IF INKEY$<>"" THEN GO TO 9987 9985 GO TO 9984 9987 IF LOC<>5 AND LOC<>0 THEN GO TO 400 9988 BORDER 5: CLS : BEEP .1,25: PRINT AT 0,0;"NET PRESENT VALUE MODULE 5": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"THIS MODULE HAS 2 SUB-MODULES": PRINT AT 5,2;"A. NPV W/ CONSTANT RECEIPTS": PRINT AT 6,2;"B. NPV W/ VARIABLE RECEIPTS": PRINT AT 8,0;"NET PRESENT VALUE IS MERELY AN EXTENSION OF PRESENT VALUE. BEYOND CALCULATING THE PRESENT VALUE OF SOME FUTURE CASH FLOW, IT ALSO NETS-OUT THE ORIGINAL INVESTMENT COST. THE FOLLOWING EXAMPLE WILL CLARIFY THIS USING THE VARIABLE RECEIPT SUB-MODULE.THE CONSTANT RECEIPT SUB-MODULE IS, AGAIN, FUNCTIONALLY SIMILAR.": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9989 IF INKEY$<>"" THEN GO TO 9991 9990 GO TO 9989 9991 CLS : BEEP .1,25: PRINT AT 0,0;"NET PRESENT VALUE MODULE 5A": PRINT AT 1,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..": PRINT AT 3,0;"NPV W/VARIABLE RECEIPTS": PRINT AT 5,2;"DATA REQUIRED": PRINT AT 6,4;"A. ORIGINAL INVESTMENT": PRINT AT 7,4;"B. # YEARS PAYMENT RECEIVED": PRINT AT 8,4;"C. EACH ANNUAL PAYMENT": PRINT AT 9,4;"D. INTEREST RATE": PRINT AT 11,0;"SUPPOSE YOU BUY AN APARTMENT BUILDING FOR $100,000. RENT IS REC'D FOR 3 YEARS:$30,000; $36,000; $42,000. IN THE LAST YEAR, YOU SELL FOR $100,000. RATES ARE 12%. IS THIS VENTURE PROFITABLE?(USE $142,000 FOR THE3RD RECEIPT)IF THE ANSWER IS + THEN IT IS PROFITABLE. ANSWER= $56,557.": PRINT AT 21,0;"PRESS ANY KEY TO CONTINUE" 9992 IF INKEY$<>"" THEN GO TO 9998 9995 GO TO 9992 9998 IF LOC=5 THEN GO TO 480 9999 BORDER 6: CLS : PRINT AT 1,0;"FIN PACK\* IS A POWERFUL SOFTWAREPRODUCT PROVIDED BY EZ-SOFT TO ASSIST YOU IN MAKING DECISIONS ABOUT THE RELATIVE MERIT OF ALTERNATIVE FINANCIAL TRANSACTIONS.": PRINT AT 11,0;" G O O D L U C K ! ! ": PAUSE 350: FOR N=1 TO 10: FLASH 1: PRINT AT 11,0;" G O O D L U C K ! ! !": FLASH 0: BEEP .05,25: NEXT N: LET LOC=0: GO TO 8925 ```