|
|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7268 (0x1c64)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »RATEA«
└─⟦934333717⟧ Bits:30008597 DDMQ1-0029_Demonstration_Disk_SOURCE_Single_Density_Sept_77
└─⟦this⟧ »RATEA«
DCL RATE FIXED(12,4), MONTH BINARY, PRINC FIXED(12,2), MPP FIXED(12,2),
IPP FIXED(12,2), IR FIXED(12,11), IT FIXED(12,3), B5 CHAR(5)INIT(' '),
B10 CHAR(9) INIT(' '), B20 CHAR(20) INIT(' '),
ASK CHAR(5) INIT('* '), BORRO CHAR(45), ACCT CHAR(5), ANS CHAR(1),
TEMP FIXED(12,2), TOTAL(3) FIXED(12,2), K BINARY;
ST: PUT FILE(DISPLAY) SKIP EDIT(' ')(A(37))('ACCOUNT NO')(A(14))(':')(A(23))
('PRINCIPAL')(A(14))(':')(A(23))('RATE %')(A(14))(':')(A(23))('NO. OF MONTH')
(A(14))(':')(A(23))('MNTHLY OR FULL:')(A(111))('BORROWER')(A(14))(':')(A(2));
GET SKIP LIST (BORRO); IF INDEX(BORRO,'END')=1 THEN GOTO SP;
PUT FILE(DISPLAY) EDIT (BORRO)(A(21))('ACCOUNT NO')
(A(14))(':')(A(2));GET SKIP LIST(ACCT);PUT FILE(DISPLAY) EDIT(ACCT)(A(21))
('PRINCIPAL')(A(14))(':')(A(2)); GET SKIP LIST (PRINC);
PUT FILE(DISPLAY) EDIT(PRINC)(P'$$$,$$$,$$9V.99',X(7))('RATE %')(A(14))(':')
(A(2));GET SKIP LIST(RATE); PUT FILE(DISPLAY) EDIT(RATE)(P'ZZZ9V.999',X(13))
('NO. OF MONTH')(A(14))(':')(A(2)); GET SKIP LIST (MONTH);
PUT FILE(DISPLAY) EDIT (MONTH)(P'ZZZZZ',X(16))('MNTHLY OR FULL:')(A(16));
AA: GET SKIP LIST(ANS);
IF ANS='M' ö ANS='F' THEN GOTO AB; GOTO AA;
AB: PUT SKIP(3) EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10));
PUT EDIT('AMORTIZATION OF EXTENDED MORTGAGE LOAN')(A(38));
PUT SKIP(5) EDIT(' ')(A(50))('NAME OF BORROWER=')(A(20))(BORRO)(A(30));
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('ACCOUNT NO. = ')
(A(24));
PUT EDIT(ACCT)(A(6));
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('PRINCIPAL =')(A(18));
PUT EDIT(PRINC)(P'ZZZZZ999V.99');
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('RATE % =')(A(18));
PUT EDIT (RATE)(P'ZZZZZ9V.9999');
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('NO. OF MONTH =')(A(18));
PUT EDIT(MONTH)(P'ZZZZZZZZZZZ');
RATE=RATE/100;
LOOP: DO K=1 TO 3;
TOTAL(K)=0;
END;
IT=PRINC*RATE;
IR=1;
DO I=1 TO MONTH;
IR=IR*(RATE+1);
END;
IPP=IT/(IR-1);
MPP=IPP+IT;
MPP=MPP+0.01;
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('MONTHLY PAYMENT =')(A(18));
PUT EDIT(MPP)(P'ZZZZZZZ9V.99');
PUT SKIP EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10))('1ST INSTALLMENT DUE')
(A(20));
IF ANS='M' THEN GOTO ST;
PRINC=PRINC+IPP;
PUT SKIP(5) LIST('PERIODS MONTHLY PAYMENT PAYMENT ON PRIN ');
PUT LIST('INTEREST INTEREST TO-DATE PRIN. TO-DATE ');
PUT LIST(' PAYMENT TO-DATE BALANCE OF LOAN');
LINE=10;
MONTH=MONTH-1;
DO J=1 TO MONTH;
PRINC=PRINC-IPP;
IT=PRINC*RATE; IT=IT +0.005;
TEMP=IT; IT=TEMP; IPP=MPP-IT;
RP=PRINC-IPP; TOTAL(1)=TOTAL(1)+MPP;
TOTAL(2)=TOTAL(2)+IPP; TOTAL(3)=TOTAL(3)+IT;
PUT SKIP(2) EDIT(J)(P'ZZZZ')(B5)(A(6))(MPP)(P'ZZZZZZZZZZV.99');
PUT EDIT(B5)(A(6))(IPP)(P'ZZZZZZZZZV.99');
PUT EDIT(B5)(A(6))(IT)(P'ZZZZZZZZZV.99')(B5)(A(6));
PUT EDIT(TOTAL(3))(P'ZZZZZZZZZV.99');
PUT EDIT(B5)(A(6))(TOTAL(2))(P'ZZZZZZZZZV.99')(B5)(A(6));
PUT EDIT(TOTAL(1))(P'ZZZZZZZZZV.99')(B5)(A(6));
PUT EDIT(B5)(A(6))(RP)(P'ZZZZZZZZZV.99');
LINE=LINE+1;
IF LINE<29 THEN GOTO CONT;
PUT SKIP(8) LIST('PERIODS MONTHLY PAYMENT PAYMENT ON PRIN');
PUT LIST(' INTEREST INTEREST TO-DATE PRIN. TO-DATE ');
PUT LIST(' PAYMENT TO-DATE BALANCE OF LOAN');
LINE=0;
CONT: END;
PRINC=PRINC-IPP;
IT=PRINC*RATE; IT=IT+0.005; TEMP=IT;
IT=TEMP; MPP=PRINC+IT;
IPP=PRINC; RP=PRINC-IPP;
TOTAL(1)=TOTAL(1)+MPP;
TOTAL(2)=TOTAL(2)+IPP;
TOTAL(3)=TOTAL(3)+IT;
MONTH=MONTH+1;
PUT SKIP(2) EDIT(MONTH)(P'ZZZZ')(B5)(A(7))(MPP)(P'ZZZZZZZZZV.99');
PUT EDIT(ASK)(A(6)) (IPP)(P'ZZZZZZZZZV.99');
PUT EDIT(B5)(A(6))(IT)(P'ZZZZZZZZZV.99') (B5)(A(6));
PUT EDIT(TOTAL(3))(P'ZZZZZZZZZV.99') (B5)(A(6));
PUT EDIT(TOTAL(2))(P'ZZZZZZZZZV.99') (B5)(A(6));
PUT EDIT(TOTAL(1))(P'ZZZZZZZZZV.99') (B5)(A(6))(B5)(A(6));
PUT EDIT(RP)(P'ZZZZZZZZZV.99');
PUT SKIP(5) EDIT(B20)(A(20))(B20)(A(20))(B10)(A(10));
PUT LIST(' *FINAL PAYMENT');
GOTO ST;
SP: END;