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

⟦b66a9b75c⟧ Q1_Text, reclen=79

    Length: 19908 (0x4dc4)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »DDNPGM_S«

Derivation

└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
    └─⟦this⟧ »DDNPGM_S« 

Text

/* This Program permits Customer to Initialize AND Maintain DEDUCTNS */        
/* File 02/20/78 --- "DEDUCTION PROGRAM - Version 1" Version Message */        
                                                                               
A0:  PUT FILE(D) SKIP EDIT('DEDUCTION PROGRAM - Version : 1')(A(47))           
     ('This Routine permits you to Initialize and')(A(47))                     
     ('Maintain a MAXIMUM of 8 Payroll Deductions')(A(47));                    
DCL DEDUCTNS FILE;                                                             
                                                                               
DCL ANS        CHAR(1);                                                        
DCL ANS2       CHAR(2);                                                        
DCL ANS3       CHAR(3);                                                        
                                                                               
DCL 1 BUFF,                                                                    
    2 DESCR      CHAR(10),                                                     
    2 AMT        FIXED(7,2),                                                   
    2 FREQ       BINARY, /* 0-No Participation 1-4 Same as P_FREQ */           
    2 PF_P       FIXED(4,2),                                                   
    2 MAX        FIXED(7,2),                                                   
    2 TOTAL      FIXED(9,2);                                                   
                                                                               
DCL 1 OBUFF,                                                                   
    2 ODESCR     CHAR(10),                                                     
    2 OAMT       FIXED(7,2),                                                   
    2 OFREQ      BINARY, /* 7-Maximum Attained-No More Deductions */           
    2 OPF_P      FIXED(4,2),                                                   
    2 OMAX       FIXED(7,2),                                                   
    2 OTOTAL     FIXED(9,2);                                                   
                                                                               
DCL 1 DEDUCTION(8),                                                            
    2 D          CHAR(10),                                                     
    2 A          FIXED(7,2),                                                   
    2 F          BINARY,                                                       
    2 PFPCT      FIXED(4,2),                                                   
    2 MX         FIXED(7,2),                                                   
    2 T          FIXED(9,2);                                                   
                                                                               
     I = 0;                                                                    
     M = 0;                                                                    
     N = 0;                                                                    
                                                                               
BEG: GET SKIP LIST(ANS3);                                                      
     ANS = SUBSTR(ANS3,1,1);                                                   
     IF (ANS = 'E') THEN GOTO EOP;                                             
B5:  OPEN DEDUCTNS;                                                            
A1:  I = I + 1;                                                                
     READ FILE(DEDUCTNS) INTO(DEDUCTION(I));                                   
     IF (I < 8) THEN GOTO A1;                                                  
     I = 0;                                                                    
B6:  PUT FILE(D) SKIP LIST('# DESCR FREQ AMT/PCT-LIMIT');                      
     PUT FILE(D) LIST('  MAXIMUM   CURRENTLY');                                
A2:  I = I + 1;                                                                
     BUFF = DEDUCTION(I);                                                      
     PUT FILE(D) EDIT(I)(A(1))(DESCR)(X(1),A(5))('  ')(A)                      
     (FREQ)(P'Z9')(' ')(A);                                                    
     IF (FREQ > 10) THEN DO;                                                   
     PUT FILE(D) EDIT(PF_P)(P'Z9V.99')('-')(A)(AMT)(P'ZZZZ9V.99');             
     END;                                                                      
     IF (FREQ < 10) THEN DO;                                                   
     PUT FILE(D) EDIT('   ')(A)(AMT)(P'ZZZZ9V.99')('   ')(A);                  
     END;                                                                      
     PUT FILE(D) EDIT(' ')(A)(MAX)(P'ZZZZ9V.99')('  ')(A)                      
     (TOTAL)(P'ZZZZZZ9V.99');                                                  
     IF (I < 8) THEN GOTO A2;                                                  
     PUT FILE(D) EDIT('DO YOU WANT TO 1)MAKE CHANGES')(A(47))                  
                     ('2)PRINT LIST OF DEDUCTIONS ')(X(15),A);                 
     PUT FILE(D) EDIT('ENTER CHOICE: ')(X(22),A);                              
B3:  GET SKIP LIST(ANS3);                                                      
     ANS = SUBSTR(ANS3,1,1);                                                   
     IF (ANS = 'E') THEN DO;                                                   
        N = 1;                                                                 
        GOTO B4;                                                               
        END;                                                                   
                                                                               
/*************************************************************/                
/*                                                            */               
/*  Have Yet to Alter the Print Routine in This Program to    */               
/* Accomodate the Increased Fields for Dedction AF & MXF Amts */               
/*  AND to Indicate Where Deduction is on a Percent Basis     */               
/**************************************************************/               
                                                                               
     IF (ANS ='1') THEN GOTO A3;                                               
     IF (ANS ¬= '2') THEN GOTO B3;                                             
     IF (N = 1) THEN DO;                                                       
     UNSPEC(DEDUCTNS) = 0;                                                     
     WRITE FILE(DEDUCTNS) FROM(DEDUCTION);     END;                            
     I = 0;                                                                    
     PUT SKIP(3);                                                              
     PUT EDIT('DESCRIPT"N   AMOUNT-FREQ   MAX-AMT  ')(X(6),A)                  
     ('CURRENT_TOT PERCENT')(A);                                               
     PUT SKIP;                                                                 
     PUT SKIP(2);                                                              
B7:  I = I + 1;                                                                
     BUFF = DEDUCTION(I);                                                      
     PUT EDIT(DESCR)(X(6),A(12))(AMT)(P'$$$$9V.99')                            
     ('-')(A)(FREQ)(P'Z9')(' ')(A(3))(MAX)(P'$$$$9V.99')                       
     ('  ')(A)(TOTAL)(P'$$$$$$9V.99')('  ')(A)(PF_P)(P'Z9V.99')('%')(A);       
     PUT SKIP(2);                                                              
     IF (I < 8) THEN GOTO B7;                                                  
     GOTO EOP;                                                                 
B4:  IF (N = 0) THEN DO;                                                       
        I = 0;                                                                 
        GOTO B6;                                                               
     END;                                                                      
     UNSPEC(DEDUCTNS) = 0;                                                     
     WRITE FILE(DEDUCTNS) FROM(DEDUCTION);                                     
     CLOSE DEDUCTNS;                                                           
     GOTO EOP;                                                                 
A3:  PUT FILE(D) SKIP LIST('ENTER # OF DEDUCTION TO BE MODIFIED: ');           
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'E') ö (ANS = '0') THEN GOTO B4;                                 
    IF (VERIFY(ANS,'12345678') = 0) THEN GOTO A0;                              
    I = ANS;                                                                   
    BUFF = DEDUCTION(I);                                                       
    OBUFF = BUFF;                                                              
B2: PUT FILE(D) SKIP EDIT('1)DEDUCTION: ')(A(16))(DESCR)(A(31))                
    ('2)FREQUENCY: ')(A(16))(FREQ)(P'Z9')(' ')(A(29));                         
    IF (FREQ > 10) THEN DO;                                                    
    PUT FILE(D) EDIT('3)PCT-LIMIT')(A(16))(PF_P)(P'Z9V.99')                    
    ('-')(A)(AMT)(P'ZZZZ9V.99')(' ')(A(17));                                   
    END;                                                                       
    IF (FREQ < 10) THEN DO;                                                    
    PUT FILE(D) EDIT('3)AMOUNT:')(A(16))(AMT)(P'ZZZZ9V.99')                    
    (' ')(A(23));                                                              
    END;                                                                       
    PUT FILE(D) EDIT('4)MAXIMUM: ')(A(16))(MAX)(P'ZZZZ9V.99')                  
    (' ')(A(23))('5)CURRENT-TOT:')(A(16))(TOTAL)(P'ZZZZZZ9V.99')               
    (' ')(A(21))('  ENTER CHOICE: ')(A);                                       
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'E') & (M ¬= 0) THEN GOTO A8;                                    
    IF (ANS = 'E') THEN GOTO A3;                                               
    IF (VERIFY(ANS,'12345') = 0) THEN GOTO A8;                                 
    IF (ANS = '1') THEN GOTO A4;                                               
    IF (ANS = '3') THEN GOTO A5;                                               
    IF (ANS = '2') THEN GOTO A6;                                               
    IF (ANS = '4') THEN GOTO A7;                                               
B1: PUT FILE(D) SKIP EDIT('OLD TOTAL : ')(A(12))(TOTAL)(P'$$$$$$9V.99')        
    ('NEW TOTAL : ')(X(25),A(12));                                             
    GET SKIP LIST(TOTAL);                                                      
    PUT FILE(D) EDIT(TOTAL)(P'$$$$$$9V.99')('OK ? ')(X(25),A(5));              
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
       M = M + 1;                                                              
       GOTO B2;                                                                
    END;                                                                       
    TOTAL = OTOTAL;                                                            
    GOTO B2;                                                                   
A4: PUT FILE(D) SKIP EDIT('ARE YOU        1)RENAMING ONLY')(A(47))             
    ('2)INITIALIZING DEDUCTION')(X(15),A(32))('ENTER CHOICE: ')(X(17),A);      
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'E') THEN GOTO B2;                                               
    J = 0;                                                                     
    IF (ANS = '2') THEN J = 1;                                                 
    IF (ANS ¬= '1') & (ANS ¬= '2') THEN GOTO B2;                               
X3: PUT FILE(D) SKIP EDIT('OLD NAME :')(A(12))(DESCR)(A(35))                   
    ('NEW NAME :')(A(12));                                                     
    GET SKIP LIST(DESCR);                                                      
    PUT FILE(D) EDIT(DESCR)(A(35))('OK ? ')(A(5));                             
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
       M = M + 1;                                                              
       IF (J = 1) THEN GOTO A6;                                                
       GOTO B2;                                                                
    END;                                                                       
    DESCR = ODESCR;                                                            
    GOTO X3;                                                                   
                                                                               
A5: IF (FREQ > 10) THEN DO;                                                    
    PUT FILE(D) SKIP EDIT('OLD PERCENT: ')(A(16))(PF_P)(P'Z9V.99')             
    (' NEW PERCENT: ')(A(16));                                                 
    GET SKIP LIST(PF_P);                                                       
    PUT FILE(D) EDIT(PF_P)(P'Z9V.99')(' ')(A(5))('OLD LIMIT')                  
    (A(13))(AMT)(P'ZZZZ9V.99')(' NEW LIMIT: ')(A(13));                         
    GET SKIP LIST(AMT);                                                        
    PUT FILE(D) EDIT(AMT)(P'ZZZZ9V.99')(' ')(A(5))('OK ? ')(A);                
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
      M = M + 1;                                                               
      IF (J = 1) THEN GOTO A7;                                                 
      GOTO B2;                                                                 
    END;                                                                       
    AMT = OAMT;                                                                
    PF_L = OPF_L;                                                              
    GOTO A5;                                                                   
    END;                                                                       
    IF (FREQ < 10) THEN DO;                                                    
    PUT FILE(D) SKIP EDIT('OLD AMOUNT : ')(A(15))(AMT)(P'ZZZZ9V.99')           
    ('NEW AMOUNT : ')(X(24),A(15));                                            
    GET SKIP LIST(AMT);                                                        
    PUT FILE(D) EDIT(AMT)(P'ZZZZ9V.99')('OK ? ')(X(24),A);                     
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
       M = M + 1;                                                              
       IF (J = 1) THEN GOTO A7;                                                
       GOTO B2;                                                                
    END;                                                                       
    AMT = OAMT;                                                                
    GOTO A5;                                                                   
    END;                                                                       
A6: PUT FILE(D) SKIP EDIT('OLD FREQUENCY : ')(A(16))(FREQ)(P'Z9')              
    (' ')(A(29))('NEW FREQUENCY : ')(A(16));                                   
A9: GET SKIP LIST(FREQ);                                                       
    IF (FREQ > 4) THEN DO; IF (FREQ > 14) THEN GOTO A9;                        
    IF (FREQ < 10) & (FREQ ¬= 7) THEN GOTO A9; END;                            
    PUT FILE(D) EDIT(FREQ)(P'Z9')('OK ? ')(X(29),A);                           
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
       M = M + 1;                                                              
       IF (J = 1) THEN GOTO A5;                                                
       GOTO B2;                                                                
    END;                                                                       
    FREQ = OFREQ;                                                              
    GOTO A6;                                                                   
A7: PUT FILE(D) SKIP EDIT('OLD MAXIMUM : ')(A(15))(MAX)(P'ZZZZ9V.99')          
    ('NEW MAXIMUM : ')(X(24),A(15));                                           
    GET SKIP LIST(MAX);                                                        
    PUT FILE(D) EDIT(MAX)(P'ZZZZ9V.99')('OK ? ')(X(24),A);                     
    GET SKIP LIST(ANS3);                                                       
    ANS = SUBSTR(ANS3,1,1);                                                    
    IF (ANS = 'Y') THEN DO;                                                    
       M = M + 1;                                                              
       GOTO B2;                                                                
    END;                                                                       
    MAX = OMAX;                                                                
    GOTO A7;                                                                   
                                                                               
/* YET TO ADD % TO THE BELOW --- LISTING FOR OLD/NEW VALUES */                 
                                                                               
A8: IF (M = 0) THEN GOTO A3;                                                   
     N = 1;                                                                    
    PUT SKIP(3);                                                               
    PUT EDIT('DESCRIPT"N   AMOUNT-FREQ   MAX-AMT   CURRENT-TOT')(X(16),A(54)); 
    PUT SKIP;                                                                  
    PUT EDIT('OLD  ***  ')(X(6),A(10))(ODESCR)(A(12))(OAMT)(P'ZZZZ9V.99')      
    (' ')(A)(OFREQ)(P'Z9')(' ')(A(4))(OMAX)(P'ZZZZ9V.99')('  ')                
    (A(3))(OTOTAL)(P'ZZZZZZ9V.99');                                            
    PUT SKIP;                                                                  
    PUT EDIT('NEW  ***  ')(X(6),A(10))(DESCR)(A(12))(AMT)                      
    (P'ZZZZ9V.99')(' ')(A)(FREQ)(P'Z9')(' ')(A(4))(MAX)(P'ZZZZ9V.99')          
    (' ')(A(4))(TOTAL)(P'ZZZZZZ9V.99');                                        
    PUT SKIP;                                                                  
    DEDUCTION(I) = BUFF;                                                       
    M = 0;   I = 0;                                                            
    GOTO B6;                                                                   
EOP: END;