1: 940 REM The IBM Personal Computer Mortgage 2: 950 REM Version 1.21 (C)Copyright IBM Corp 1981, 1982 3: 960 REM Licensed Material - Program Property of IBM 4: 965 REM Author - Glenn Stuart Dardick 5: 970 REM Modified by Ayodele Isaac Anise; September, 1986. 6: 971 REM Modified by George L. Fulk; 5 November 1991. 7: 975 DEF SEG: DEFDBL A 8: 980 'SAMPLES$="NO" 9: 990 'GOTO 1010 10: 1000 'SAMPLES$="YES" 11: 1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 12: 1020 LOCATE 7,12,0:PRINT "Personal Computer" 13: 1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 14: 1040 LOCATE 11,9,0:PRINT CHR$(179)+" MORTGAGE "+CHR$(179) 15: 1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 16: 1060 LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.21 "+CHR$(179) 17: 1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 18: 1080 COLOR 15,0:LOCATE 17,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982" 19: 1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue" 20: 1100 IF INKEY$ <> "" THEN GOTO 1100 21: 1110 CMD$ = INKEY$ 22: 1120 IF CMD$ = " " THEN GOTO 1150 23: 1130 IF CMD$ =CHR$(27) THEN GOTO 1210 24: 1140 GOTO 1110 25: 1150 COLOR 15,0:CLS:DEFDBL P:DIM AMORT(500,2):SCREEN 0 26: 1154 DEF SEG=0 27: 1155 IF (PEEK(&H410) AND &H30)<>&H30 THEN COLS = 3:GOTO 1158 28: 1156 WIDTH 80:COLS=8 29: 1158 DEF SEG 30: 1160 GOSUB 1240 31: 1170 IF ASC(I$)=27 THEN 1210 32: 1180 IF MID$(I$,1,1)="2" THEN GOTO 2010 33: 1190 IF MID$(I$,1,1)="1" THEN GOTO 1490 34: 1200 GOTO 1160 35: 1210 'IF SAMPLES$ <> "YES" THEN GOTO 1220 36: 1215 'CHAIN "SAMPLES",1000 37: 1220 GOSUB 1470 38: 1230 END 39: 1240 REM - MAIN OPTION MENU 40: 1250 COLOR 15,0:CLS:COLOR 0,7:PRINT " MORTGAGE ANALYSIS " 41: 1260 COLOR 15,0:LOCATE 3,1:PRINT "OPTIONS - " 42: 1270 PRINT "1 - MORTGAGE PAYMENT COMPARISONS " 43: 1280 PRINT "2 - MORTGAGE AMORTIZATION" 44: 1290 PRINT "ESC KEY - EXIT" 45: 1300 PRINT " " 46: 1310 PRINT "OPTION NUMBER (1,2, OR ESC) =====>" 47: 1330 PRINT " " 48: 1340 COLOR 15,0 49: 1350 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 50: 1360 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179) 51: 1370 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179) 52: 1380 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179) 53: 1390 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179) 54: 1400 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179) 55: 1410 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179) 56: 1420 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179) 57: 1430 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179) 58: 1440 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179) 59: 1450 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 60: 1460 COLOR 0,7:LOCATE 8,37:PRINT " ":LOCATE 8,37 61: 1461 I$=INKEY$:IF I$="" THEN 1461 ELSE PRINT I$;:RETURN 62: 1470 COLOR 15,0:CLS:END 63: 1480 PF = AF*(RF/(1#-(1#/((1#+RF)^NF)))):RETURN 64: 1490 REM - mortgage comparisons 65: 1500 COLOR 15,0:CLS:COLOR 0,7:PRINT " MORTGAGE PAYMENT COMPARISON PROGRAM " 66: 1510 LOCATE 10,1:COLOR 15,0 67: 1520 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 68: 1530 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179) 69: 1540 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179) 70: 1550 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179) 71: 1560 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179) 72: 1570 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179) 73: 1580 PRINT CHR$(179)+" "+CHR$(179) 74: 1590 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179) 75: 1600 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179) 76: 1610 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179) 77: 1620 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 78: 1625 LOCATE 3,1:PRINT SPC(39);:PRINT "(1 TO 1000000 DOLLARS)"; 79: 1630 LOCATE 3,1:LINE INPUT "ENTER BASE MORTGAGE AMOUNT ===> ";A$ 80: 1640 A = VAL(A$):IF (A < 1 OR A > 1000000!) THEN 1625 81: 1650 AINC = 2000 82: 1660 LOCATE 4,1:PRINT SPC(38); 83: 1670 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)"; 84: 1680 LOCATE 4,1:LINE INPUT "ENTER BASE INTEREST RATE =====> ";IR$ 85: 1690 RR = VAL(IR$):IF RR>35 OR RR<1 THEN GOTO 1660 86: 1700 R = RR/1200:RINC = .0025/12 87: 1710 LOCATE 5,1:PRINT SPC(38); 88: 1720 LOCATE 6,1:PRINT "(1 TO 35 YEARS)"; 89: 1730 LOCATE 5,1:LINE INPUT "ENTER NUMBER OF YEARS IN MTG => ";Y$ 90: 1740 Y = VAL(Y$) 91: 1750 N = Y * 12 92: 1760 NF = N 93: 1770 IF NF>420 OR NF<1 THEN GOTO 1710 94: 1780 CLS 95: 1790 COLOR 0,7:PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS " 96: 1800 COLOR 15,0:LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS"; 97: 1810 LOCATE 5,2:PRINT "RATES";:COLOR 0,7 98: 1820 FOR I = 0 TO COLS 99: 1830 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT USING "#######";A+I*AINC 100: 1840 NEXT I 101: 1850 FOR I = 0 TO 14 102: 1860 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2 103: 1870 PRINT USING "##.##";INT(((R+(I*RINC))*120000!)+.5)/100 104: 1880 NEXT I 105: 1890 COLOR 15,0 106: 1900 FOR I = 0 TO 14 107: 1910 RF = R+I*RINC:AF=1:GOSUB 1480 108: 1920 FOR J = 0 TO COLS 109: 1930 P = PF*(A+J*AINC):P = ((P+5.000001E-03)*100)/100 110: 1935 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1980 111: 1940 LOCATE 6+I,9+J*8:PRINT USING "####.##";P; 112: 1950 NEXT J 113: 1960 NEXT I 114: 1970 PRINT " " 115: 1980 PRINT "PRESS SPACE BAR TO CONTINUE"; 116: 1990 IF INKEY$ <> " " THEN GOTO 1990 117: 2000 GOTO 1160 118: 2010 REM - mortgage amortization 119: 2020 COLOR 7,0 120: 2030 CLS 121: 2040 COLOR 0,7 122: 2050 LOCATE 1,1 123: 2060 PRINT " MORTGAGE AMORTIZATION PROGRAM " 124: 2070 LOCATE 10,1:COLOR 15,0 125: 2080 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 126: 2090 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179) 127: 2100 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179) 128: 2110 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179) 129: 2120 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179) 130: 2130 PRINT CHR$(179)+" "+CHR$(179) 131: 2140 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179) 132: 2150 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179) 133: 2160 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179) 134: 2170 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 135: 2175 LOCATE 3,1: PRINT SPC(39):PRINT "(1 TO 10000000 DOLLARS)"; 136: 2180 LOCATE 3,1 137: 2190 LINE INPUT "ENTER MORTGAGE AMOUNT ===> ";A$ 138: 2200 AF = VAL(A$): IF (AF < 1 OR AF > 10000000#) THEN 2175 139: 2210 LOCATE 4,1 140: 2220 PRINT " "; 141: 2230 LOCATE 5,1 142: 2240 PRINT "(1 TO 35 PERCENT)"; 143: 2250 LOCATE 4,1 144: 2260 LINE INPUT "ENTER INTEREST RATE =====> ";IR$ 145: 2270 RR = VAL(IR$) 146: 2280 IF RR>35 THEN GOTO 2210 147: 2290 IF RR<1 THEN GOTO 2210 148: 2300 RF = RR/1200 149: 2310 LOCATE 5,1 150: 2320 PRINT " "; 151: 2330 LOCATE 6,1 152: 2340 PRINT "(1 TO 35 YEARS)"; 153: 2350 LOCATE 5,1 154: 2360 LINE INPUT "ENTER NUMBER OF YEARS ===> ";Y$ 155: 2370 Y = VAL(Y$) 156: 2380 NF = Y * 12 157: 2390 IF NF>420 THEN GOTO 2310 158: 2400 IF NF<1 THEN GOTO 2310 159: 2410 GOSUB 1480 160: 2420 PF = ((PF+5.000001E-03)*100)/100: PF1 =INT((PF+5.000001E-03)*100)/100: 161: 2430 PRINT "MONTHLY PAYMENTS ARE ====> ";PF1 162: 2435 COLOR 23,0 163: 2440 PRINT "CALCULATING AMORTIZATION" 164: 2445 COLOR 15,0 165: 2450 IF NF>36 THEN GOTO 2470 166: 2460 FOR I = 1 TO 1000:NEXT I 167: 2470 AMORT(0,1) = AF 168: 2480 FOR I = 1 TO NF 169: 2490 AMORT(I,2) = ((AMORT(I-1,1)*RF+5.000001E-03)*100)/100 170: 2500 AMORT(I,1) = AMORT(I-1,1)-PF+AMORT(I,2) 171: 2510 NEXT I 172: 2520 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(39);:NEXT I 173: 2530 LOCATE 9,1 174: 2540 PRINT " - 1 TO"+STR$(NF) 175: 2550 PRINT " - 0 TO END AMORTIZATION"; 176: 2560 LOCATE 7,1 177: 2570 PRINT "ENTER BEGINNING PAYMENT NUMBER" 178: 2580 LINE INPUT "OF 12 MONTH PERIOD ======> ";PERIOD$ 179: 2590 PD= VAL(PERIOD$) 180: 2600 IF PD <> 0 THEN GOTO 2620 181: 2610 IF PERIOD$ <> "0" THEN GOTO 2560 182: 2620 IF PD=0 THEN GOTO 1160 183: 2630 IF PD>NF THEN GOTO 2560 184: 2640 IF PD<0 THEN GOTO 2560 185: 2650 LOCATE 7,1 186: 2660 PRINT SPC(39) 187: 2670 PRINT SPC(39) 188: 2680 LOCATE 9,1 189: 2690 PRINT "PYMNT PRINCIPAL INTEREST BALANCE" 190: 2700 TINT# = 0 191: 2710 FOR I = PD TO PD+11 192: 2711 IF I> NF THEN GOTO 2750 193: 2720 TINT# = TINT# + AMORT(I,2) 194: 2730 PRINT USING "### ";I; 195: 2740 PRINT USING " #######.##";ABS(PF1-AMORT(I,2));AMORT(I,2);AMORT(I,1) 196: 2750 NEXT I 197: 2760 PRINT " " 198: 2770 PRINT "INTEREST FOR 12 PERIODS ="; 199: 2780 PRINT USING "#######.## ";TINT# 200: 2790 LOCATE 25,1 201: 2800 PRINT "PRESS SPACE BAR TO CONTINUE"; 202: 2810 LOCATE ,,0 203: 2820 IF INKEY$ <> "" THEN GOTO 2820 204: 2830 CMD$ = INKEY$ 205: 2840 IF CMD$ = " " THEN GOTO 2520 206: 2850 IF CMD$ =CHR$(27) THEN GOTO 1210 207: 2860 GOTO 2830 |