|
|
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: 19908 (0x4dc4)
Types: Q1_Text, reclen=79
Notes: q1file
Names: »DDNPGM_S«
└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
└─⟦this⟧ »DDNPGM_S«
/* 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;