home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib24a.dsk
/
JULY.1985
/
IRA.COMPARISON.bas
next >
Wrap
BASIC Source File
|
2023-02-26
|
4KB
|
127 lines
10 REM **********************
20 REM * IRA COMPARISON *
30 REM * BY ALAN STEIN *
40 REM * COPYRIGHT (C) 1985 *
50 REM * BY MICROSPARC, INC *
60 REM * CONCORD, MA 01742 *
70 REM **********************
80 D$ = CHR$(4)
90 BS$ = CHR$(8)
100 CI$ = CHR$(9)
110 R$ = CHR$(13)
120 FS$ = CHR$(21):LF$ = CHR$(10):UP$ = CHR$(11)
130 B1$ = " "
140 BL$ = " "
150 DOT$ = "....."
160 CS = -958: REM CLEAR REST OF SCREEN LOCATION
170 VA = 3:VB = 5:VC = 6:VD = 4:VE = 8
180 VF = 10:VG = 11:VH = 13:VI = 14
190 REM START
200 GOSUB 450: REM SET UP SCREEN
210 GOSUB 560: REM PICK UP NEW VALUES
220 GOSUB 1080: REM CALCULATIONS
230 GOSUB 820: REM MENU
240 IF A$ = "Q" THEN 1260: REM QUIT
250 IF A$ = "P" THEN 890: REM PRINT
260 GOTO 210
270 REM GET VALUE AT XC,YC
280 HTAB XC: VTAB YC
290 T$ = "":EF = 0
300 GET A$: IF A$ = FS$ OR A$ = LF$ OR A$ = UP$ THEN 300
310 IF A$ = R$ THEN RETURN
320 GOSUB 1190: REM CLEAR FIELD
330 IF LEN(T$) > = 9 AND A$ < >BS$ THEN 400
340 PRINT A$;
350 IF A$ < >BS$ THEN 390
360 PRINT B1$;: PRINT BS$;
370 IF LEN(T$) < = 1 THEN 270
380 T$ = LEFT$(T$, LEN(T$) -1): GOTO 400
390 T$ = T$ +A$
400 GET A$: IF A$ = FS$ THEN 400
410 IF A$ < >R$ THEN 330
420 T = VAL(T$)
430 IF T <XL OR T >XH THEN EF = 1: PRINT CHR$(7): HTAB XC: VTAB YC:T = 0: PRINT DOT$
440 RETURN
450 REM SET UP SCREEN
460 HOME :XC = 30
470 Z$ = "IRA COMPARISON CHART": GOSUB 1230
480 VTAB VA: PRINT "YEARS"; TAB( XC)DOT$
490 PRINT "EST. FOR AVG. INFLATION (%)"; TAB( XC)DOT$
500 VTAB VB: PRINT "TAX BRACKET"; TAB( 15)"PRESENT (%)"; TAB( XC)DOT$
510 VTAB VC: PRINT TAB( 15)"RETIREMENT (%)"; TAB( XC)DOT$
520 VTAB VE: PRINT TAB( 20)"IRA"; TAB( XC)"ORDINARY"
530 VTAB VF: PRINT "RATE OF RETURN (%)"; TAB( 20)DOT$; TAB( XC)DOT$
540 VTAB VG: PRINT "AMT. OF INVESTMENT"; TAB( 20)DOT$; TAB( XC)DOT$
550 RETURN
560 REM PICK UP VALUES
570 VTAB VG +1: HTAB 1
580 CALL CS
590 VTAB VG +3
600 Z$ = "FOR EACH FIELD": GOSUB 1230
610 Z$ = "TYPE IN A VALUE": GOSUB 1230
620 Z$ = "OR": GOSUB 1230
630 Z$ = "PRESS <RETURN> TO RETAIN OLD VALUE": GOSUB 1230
640 XC = 30: VTAB 23: PRINT "** COPYRIGHT (C) 1985 MICROSPARC, INC **";
650 YC = VA:XL = 0:XH = 100: GOSUB 270: IF EF GOTO 650
660 IF T$ < >"" THEN NY = T
670 YC = VD: GOSUB 270: IF EF GOTO 670
680 IF T$ < >"" THEN INF = T/100
690 YC = VB: GOSUB 270: IF EF GOTO 690
700 IF T$ < >"" THEN TX = T/100
710 YC = VC: GOSUB 270: IF EF GOTO 710
720 IF T$ < >"" THEN RTB = T/100
730 XC = 20:YC = VF: GOSUB 270: IF EF GOTO 730
740 IF T$ < >"" THEN IRA = T/100
750 XC = 30:YC = VF: GOSUB 270: IF EF GOTO 750
760 IF T$ < >"" THEN ALT = T/100
770 XC = 20:YC = VG:XH = 10000: GOSUB 270: IF EF GOTO 770
780 IF T$ < >"" THEN IV = T
790 XC = 30:YC = VG: GOSUB 270: IF EF GOTO 790
800 IF T$ < >"" THEN AINV = T
810 RETURN
820 REM MENU
830 VTAB 23: HTAB 1: CALL CS
840 VTAB 23: HTAB 1
850 Z$ = "CHOOSE": GOSUB 1230
860 PRINT "P)RINT N)EW CALCULATIONS Q)UIT";
870 GET A$
880 RETURN
890 REM PRINT
900 VTAB 23: HTAB 1: CALL CS: PRINT
910 XC = 30
920 PRINT D$"PR#1"
930 PRINT CI$"80N"
940 Z$ = "IRA COMPARISON CHART": GOSUB 1230
950 PRINT
960 PRINT LEFT$("YEARS" +BL$,XC);NY
970 PRINT LEFT$("EST FOR AVE INFLATION" +BL$,30)INF *100
980 PRINT LEFT$("TAX BRACKET" +BL$,15); LEFT$("PRESENT" +BL$,15);TX *100
990 PRINT LEFT$(BL$,15); LEFT$("RETIREMENT" +BL$,15);RTB *100
1000 PRINT
1010 PRINT LEFT$(BL$,20); LEFT$("IRA" +BL$,10);"ORDINARY"
1020 PRINT
1030 PRINT LEFT$("RATE OF RETURN" +BL$,20); LEFT$( STR$(IRA *100) +BL$,10);ALT *100
1040 PRINT LEFT$("INVESTMENT" +BL$,20); LEFT$( STR$(IV) +BL$,10);AINV
1050 GOSUB 1150: REM PRINT CALCULATIONS
1060 PRINT D$"PR#0"
1070 GOTO 230: REM MENU
1080 REM CALCULATIONS
1090 DI = INT(IV *(1 +IRA) ^NY *(1 -RTB) +.5)
1100 DA = INT(AINV *(1 +ALT *(1 -TX)) ^NY +.5)
1110 PI = INT(DI/(1 +INF) ^NY +.5)
1120 PA = INT(DA/(1 +INF) ^NY +.5)
1130 VTAB VG +1: HTAB 1
1140 CALL CS
1150 PRINT
1160 VTAB VH: PRINT LEFT$("TOTAL AT MATURITY" +BL$,19); LEFT$( STR$(DI) +BL$,10); STR$(DA)
1170 VTAB VI: PRINT LEFT$("TODAY'S DOLLARS" +BL$,19); LEFT$( STR$(PI) +BL$,10); STR$(PA)
1180 RETURN
1190 REM CLEAR OUT TEN SPACES
1200 FOR I = 1 TO 9: PRINT B1$;: NEXT I
1210 FOR I = 1 TO 9: PRINT BS$;: NEXT I
1220 RETURN
1230 REM CENTER DISPLAY OF Z$
1240 TB = 20 - INT( LEN(Z$)/2): IF TB <1 THEN TB = 1
1250 PRINT TAB( TB)Z$: RETURN
1260 REM QUIT
1270 HOME : END