DataMuseum.dk

Presents historical artifacts from the history of:

Q1 computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Q1 computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦a36c38a00⟧ Q1_Text, reclen=79

    Length: 7268 (0x1c64)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »RATEA«

Derivation

└─⟦934333717⟧ Bits:30008597 DDMQ1-0029_Demonstration_Disk_SOURCE_Single_Density_Sept_77
    └─⟦this⟧ »RATEA« 

Text

 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;