|
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;