1300 REM The IBM Personal Computer Mortgage 1301 REM Version 1.00 (C)Copyright IBM Corp 1981, 1982 1302 REM Licensed Material - Program Property of IBM 1303 REM Author - Glenn Stuart Dardick 1304 REM Modified by Ayodele Isaac Anise; September, 1986. 1305 DEF SEG 1306 SAMPLES$="NO" 1307 GOTO 1309 1308 SAMPLES$="YES" 1309 KEY OFF:SCREEN 0,1:COLOR 15,0,0:CLS:LOCATE 5,19:PRINT "IBM" 1310 LOCATE 7,12,0:PRINT "Personal Computer" 1311 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 1312 LOCATE 11,9,0:PRINT CHR$(179)+" MORTGAGES "+CHR$(179) 1313 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 1314 LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.10 "+CHR$(179) 1315 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 1316 COLOR 15,0:LOCATE 17,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982" 1317 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue" 1318 IF INKEY$ <> "" THEN GOTO 1318 1319 CMD$ = INKEY$ 1320 IF CMD$ = " " THEN GOTO 1323 1321 IF CMD$ =CHR$(27) THEN GOTO 1333 1322 GOTO 1319 1323 COLOR 15,0:CLS:DEFDBL P:DIM AMORT(500,2):SCREEN 0 1324 DEF SEG=0 1325 IF (PEEK(&H410) AND &H30)<>&H30 THEN COLS = 3:GOTO 1327 1326 WIDTH 80:COLS=8 1327 DEF SEG 1328 GOSUB 1337 1329 IF ASC(I$)=27 THEN 1333 1330 IF MID$(I$,1,1)="2" THEN GOTO 1415 1331 IF MID$(I$,1,1)="1" THEN GOTO 1362 1332 GOTO 1328 1333 IF SAMPLES$ <> "YES" THEN GOTO 1335 1334 CHAIN "SAMPLES",1000 1335 GOSUB 1360 1336 END 1337 REM - MAIN OPTION MENU 1338 COLOR 15,0:CLS:COLOR 0,7:PRINT " Mortgage Analysis " 1339 COLOR 15,0:LOCATE 3,1:PRINT "Options - " 1340 PRINT "1 - Mortgage Payment Comparisons " 1341 PRINT "2 - Mortgage Amorizitions" 1342 PRINT "ESC KEY - EXIT" 1343 PRINT " " 1344 PRINT "Option Number (1,2, OR ESC) =====>" 1345 PRINT " " 1346 COLOR 15,0 1347 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 1348 PRINT CHR$(179)+" MORTGAGE "+CHR$(179) 1349 PRINT CHR$(179)+" - Use this option to compare "+CHR$(179) 1350 PRINT CHR$(179)+" the monthly payments of "+CHR$(179) 1351 PRINT CHR$(179)+" mortgages at various rates "+CHR$(179) 1352 PRINT CHR$(179)+" and principal amounts. "+CHR$(179) 1353 PRINT CHR$(179)+" Mortgage Amortizated "+CHR$(179) 1354 PRINT CHR$(179)+" - Use this option to calculate "+CHR$(179) 1355 PRINT CHR$(179)+" the principle and interest "+CHR$(179) 1356 PRINT CHR$(179)+" payed over any 12 month period. "+CHR$(179) 1357 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 1358 COLOR 0,7:LOCATE 8,37:PRINT " ":LOCATE 8,37 1359 I$=INKEY$:IF I$="" THEN 1359 ELSE PRINT I$;:RETURN 1360 COLOR 15,0:CLS:END 1361 PF = AF*(RF/(1#-(1#/((1#+RF)^NF)))):RETURN 1362 REM - mortgage comparisons 1363 COLOR 15,0:CLS:COLOR 0,7:PRINT " mortgage payment comparison program." 1364 LOCATE 10,1:COLOR 15,0 1365 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 1366 PRINT CHR$(179)+" MORTGAGE PAYMENT COMPARISONS "+CHR$(179) 1367 PRINT CHR$(179)+" - USE THIS OPTION TO COMPARE "+CHR$(179) 1368 PRINT CHR$(179)+" THE MONTHLY PAYMENTS OF "+CHR$(179) 1369 PRINT CHR$(179)+" MORTGAGES AT VARIOUS RATES "+CHR$(179) 1370 PRINT CHR$(179)+" AND PRINCIPAL AMOUNTS. "+CHR$(179) 1371 PRINT CHR$(179)+" "+CHR$(179) 1372 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179) 1373 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179) 1374 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179) 1375 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 1376 LOCATE 3,1:LINE INPUT "ENTER BASE MORTGAGE AMOUNT ===> ";A$ 1377 A = VAL(A$):IF A <= 0 THEN GOTO 1373 1378 AINC = 2000 1379 LOCATE 4,1:PRINT SPC(38); 1380 LOCATE 5,1:PRINT "(1 TO 35 PERCENT)"; 1381 LOCATE 4,1:LINE INPUT "ENTER BASE INTEREST RATE =====> ";IR$ 1382 IR = VAL(IR$):IF IR>35 OR IR<1 THEN GOTO 1379 1383 R = IR/1200:RINC = .0025/12 1384 LOCATE 5,1:PRINT SPC(38); 1385 LOCATE 6,1:PRINT "(1 TO 35 YEARS)"; 1386 LOCATE 5,1:LINE INPUT "ENTER NUMBER OF YEARS IN MTG => ";Y$ 1387 Y = VAL(Y$) 1388 N = Y * 12 1389 NF = N 1390 IF NF>420 OR NF<1 THEN GOTO 1384 1391 CLS 1392 COLOR 0,7:PRINT " MONTHLY MORTGAGE PAYMENT COMPARISONS " 1393 COLOR 15,0:LOCATE 3,10:PRINT Y$+"-YEAR MORTGAGE LOAN AMOUNTS"; 1394 LOCATE 5,2:PRINT "RATES";:COLOR 0,7 1395 FOR I = 0 TO COLS 1396 LOCATE 4,9+I*8:PRINT SPC(7):LOCATE 4,9+I*8:PRINT A+I*AINC 1397 NEXT I 1398 FOR I = 0 TO 14 1399 LOCATE 6+I,1:PRINT SPC(7):LOCATE 6+I,2 1400 PRINT USING "##.##";INT(((R+(I*RINC))*120000!)+.5)/100 1401 NEXT I 1402 COLOR 15,0 1403 FOR I = 0 TO 14 1404 RF = R+I*RINC:AF=1:GOSUB 1361 1405 FOR J = 0 TO COLS 1406 P = PF*(A+J*AINC):P = INT((P+5.000001E-03)*100)/100 1407 IF P>10000 THEN LOCATE 22,1:PRINT "PAYMENTS TOO LARGE TO DISPLAY":GOTO 1412 1408 LOCATE 6+I,9+J*8:PRINT USING "####.##";P; 1409 NEXT J 1410 NEXT I 1411 PRINT " " 1412 PRINT "PRESS SPACE BAR TO CONTINUE"; 1413 IF INKEY$ <> " " THEN GOTO 1413 1414 GOTO 1328 1415 REM - mortgage amortization 1416 COLOR 7,0 1417 CLS 1418 COLOR 0,7 1419 LOCATE 1,1 1420 PRINT " MORTGAGE AMORTIZATION PROGRAM " 1421 LOCATE 10,1:COLOR 15,0 1422 PRINT CHR$(218)+STRING$(37,CHR$(196))+CHR$(191) 1423 PRINT CHR$(179)+" MORTGAGE AMORTIZATION "+CHR$(179) 1424 PRINT CHR$(179)+" - USE THIS OPTION TO CALCULATE "+CHR$(179) 1425 PRINT CHR$(179)+" THE PRINCIPAL AND INTEREST "+CHR$(179) 1426 PRINT CHR$(179)+" PAID OVER ANY 12 MONTH PERIOD. "+CHR$(179) 1427 PRINT CHR$(179)+" "+CHR$(179) 1428 PRINT CHR$(179)+" NOTE: TO SELECT A VALUE OR AMOUNT "+CHR$(179) 1429 PRINT CHR$(179)+" ENTER THE APPROPRIATE VALUE "+CHR$(179) 1430 PRINT CHR$(179)+" AND PRESS THE ENTER KEY. "+CHR$(179) 1431 PRINT CHR$(192)+STRING$(37,CHR$(196))+CHR$(217) 1432 LOCATE 3,1 1433 LINE INPUT "ENTER MORTGAGE AMOUNT ===> ";A$ 1434 AF = VAL(A$): IF AF <= 0 THEN 1429 1435 LOCATE 4,1 1436 PRINT " "; 1437 LOCATE 5,1 1438 PRINT "(1 TO 35 PERCENT)"; 1439 LOCATE 4,1 1440 LINE INPUT "ENTER INTEREST RATE =====> ";IR$ 1441 IR = VAL(IR$) 1442 IF IR>35 THEN GOTO 1435 1443 IF IR<1 THEN GOTO 1435 1444 RF = IR/1200 1445 LOCATE 5,1 1446 PRINT " "; 1447 LOCATE 6,1 1448 PRINT "(1 TO 35 YEARS)"; 1449 LOCATE 5,1 1450 LINE INPUT "ENTER NUMBER OF YEARS ===> ";Y$ 1451 Y = VAL(Y$) 1452 NF = Y * 12 1453 IF NF>420 THEN GOTO 1445 1454 IF NF<1 THEN GOTO 1445 1455 GOSUB 1361 1456 PF = INT((PF+5.000001E-03)*100)/100 1457 PRINT "MONTHLY PAYMENTS ARE ====>";PF 1458 COLOR 23,0 1459 PRINT "CALCULATING AMORTIZATION" 1460 COLOR 15,0 1461 IF NF>36 THEN GOTO 1463 1462 FOR I = 1 TO 1000:NEXT I 1463 AMORT(0,1) = AF 1464 FOR I = 1 TO NF 1465 AMORT(I,2) = INT((AMORT(I-1,1)*RF+5.000001E-03)*100)/100 1466 AMORT(I,1) = AMORT(I-1,1)-PF+AMORT(I,2) 1467 NEXT I 1468 FOR I = 7 TO 25:LOCATE I,1:PRINT SPC(39);:NEXT I 1469 LOCATE 9,1 1470 PRINT " - 1 TO"+STR$(NF) 1471 PRINT " - 0 TO END AMORTIZATION"; 1472 LOCATE 7,1 1473 PRINT "ENTER BEGINNING PAYMENT NUMBER" 1474 LINE INPUT "OF 12 MONTH PERIOD ======> ";PERIOD$ 1475 PD= VAL(PERIOD$) 1476 IF PD <> 0 THEN GOTO 1478 1477 IF PERIOD$ <> "0" THEN GOTO 1472 1478 IF PD=0 THEN GOTO 1328 1479 IF PD>NF THEN GOTO 1472 1480 IF PD<0 THEN GOTO 1472 1481 LOCATE 7,1 1482 PRINT SPC(39) 1483 PRINT SPC(39) 1484 LOCATE 9,1 1485 PRINT "PYMNT PRINCIPAL INTEREST BALANCE" 1486 TINT = 0 1487 FOR I = PD TO PD+11 1488 IF I> NF THEN GOTO 1492 1489 TINT = TINT + AMORT(I,2) 1490 PRINT USING "### ";I; 1491 PRINT USING " ######.##";PF-AMORT(I,2);AMORT(I,2);AMORT(I,1) 1492 NEXT I 1493 PRINT " " 1494 PRINT "INTEREST FOR 12 PERIODS ="; 1495 PRINT USING "######.## ";TINT 1496 LOCATE 25,1 1497 PRINT "PRESS SPACE BAR TO CONTINUE"; 1498 LOCATE ,,0 1499 IF INKEY$ <> "" THEN GOTO 1499 1500 CMD$ = INKEY$ 1501 IF CMD$ = " " THEN GOTO 1468 1502 IF CMD$ =CHR$(27) THEN GOTO 1333 1503 GOTO 1500