mirror of
https://github.com/moshix/mvs.git
synced 2026-01-11 23:43:00 +00:00
109 lines
7.7 KiB
Plaintext
109 lines
7.7 KiB
Plaintext
//HERC01P JOB (BAL),
|
|
// 'PAYROLL REPORT',
|
|
// CLASS=A,
|
|
// MSGCLASS=A,
|
|
// TIME=1440,
|
|
// MSGLEVEL=(1,1)
|
|
//ASMCLG EXEC ASMFCG,PARM.ASM=(OBJ,NODECK),MAC1='SYS2.MACLIB',
|
|
// REGION.GO=428K
|
|
//ASM.SYSLIB DD
|
|
// DD DISP=SHR,DSN=SYS1.MACLIB
|
|
//ASM.SYSIN DD *
|
|
PRINT GEN
|
|
REPORT CSECT
|
|
SAVE (14,12) SAVE REGISTERS ON ENTRY
|
|
BASR R12,0 SET UP MY
|
|
USING *,R12 BASE REGISTER
|
|
ST R13,SAVEA+4 ENSURE SAVE AREA
|
|
LA R13,SAVEA CHAIN BUILT CORRECTLY.
|
|
*---------------------------------------------------------------------*
|
|
INOPEN OPEN (INDCB,INPUT,OUTDCB,OUTPUT) OPEN BOTH DCBS AT ONCE
|
|
WRTITLE PUT OUTDCB,PTITLE PRINT REPORT TITLE
|
|
*---------------------------------------------------------------------*
|
|
READREC GET INDCB,PAYREC READ IN EMPLOYEE RECORD
|
|
*---------------------------------------------------------------------*
|
|
CPYSTUFF MVC PEMPID,EMPID
|
|
MVC PEMPLOYE,EMPLOYEE
|
|
MVC PSALARY,SALARY
|
|
*
|
|
PACKIT PACK ZSALARY,SALARY PACK SALARY
|
|
AP ZTOTSAL,ZSALARY ADD MONTHLY WAGE TO TOTAL
|
|
WRITEPR PUT OUTDCB,OUTAREA WRITE TO PRINTER
|
|
B READREC AND REPEAT TILL FILE EXHAUSTED.
|
|
*---------------------------------------------------------------------*
|
|
**CLOS MVC ATOTAL-1(L'ATOTAL+1),=X'4020202021206B202020'
|
|
INCLOS MVC ATOTAL,EDWD
|
|
LA R1,ATOTAL
|
|
ED ATOTAL,ZTOTSAL
|
|
PUT OUTDCB,TOTALLNE PRINT TOTAL LINE
|
|
CLSALL CLOSE (INDCB,,OUTDCB) WE GET HERE FROM EODAD
|
|
* FOR END OF BLOCK ON WGET BUT OK
|
|
* TO ALSO CLOSE OUTDCB AS EXIT SOON
|
|
L R13,SAVEA+4 R13 = PREVIOUS SAVE AREA ADDR.
|
|
RETURN (14,12),RC=0 RETURN TO CALLER (Z/OS)
|
|
LTORG
|
|
SAVEA DS 18F FOR REGISTER SAVE AREA
|
|
*---------------------------------------------------------------------*
|
|
INDCB DCB MACRF=GM,DDNAME=INDD,DSORG=PS,EODAD=INCLOS
|
|
OUTDCB DCB MACRF=PM,DDNAME=OUTDD,DSORG=PS
|
|
* PAYROLL REPORT STRUCTURE
|
|
PAYREC DS 0CL80 HANDLE FOR THE STRUCTURE
|
|
EMPID DS CL4 EMPLOYEE ID
|
|
DS CL6 FILLER TO POSITION 10
|
|
EMPLOYEE DS CL21 NAME OF EMPLOYEE
|
|
DS CL2 FILLER TO POSITION 34
|
|
SALARY DS CL4 MONTHLY SALARY
|
|
TOEND DS CL43 80 BYTES SO FAR
|
|
*--------S-T-A-R-T----O-F----O-U-T-P-U-T----S-T-R-U-C-T-U-R-E---------*
|
|
PTITLE DC CL121' P A Y R O L L R E P O R T - B I M C O R P.'
|
|
OUTAREA DC 0CL133' '
|
|
EMPTY DC CL1' '
|
|
PEMPID DS CL4' '
|
|
DC CL6' '
|
|
PEMPLOYE DS CL20' '
|
|
DC CL2' '
|
|
PDOLLAR DC CL1' '
|
|
PSALARY DS CL5' '
|
|
OFILLER DC CL94' '
|
|
*
|
|
ZSALARY DC PL3'0' INITIALIZE SLARY PACKED FIELD
|
|
PSALARY DS CL5' '
|
|
OFILLER DC CL94' '
|
|
*
|
|
ZSALARY DC PL3'0' INITIALIZE SLARY PACKED FIELD
|
|
ZTOTSAL DC PL05'0' INITIALIZE TOTAL WAGES PACKED FIELD
|
|
EDWD DC X'4020202020206B2020'
|
|
TOTALLNE DS 0CL133
|
|
SKIP DC CL1'0'
|
|
TFILL1 DC CL09' '
|
|
TFILL2 DC CL17' '
|
|
TDOLLAR DC CL1'$'
|
|
ATOTAL DC CL10' '
|
|
TFILL3 DC CL12' '
|
|
TOTMSG DC CL61'TOTAL MONTHLY WAGES'
|
|
TFILL4 DC CL33' '
|
|
R0 EQU 0
|
|
R1 EQU 1
|
|
R2 EQU 2
|
|
R3 EQU 3
|
|
R4 EQU 4
|
|
R5 EQU 5
|
|
R6 EQU 6
|
|
R7 EQU 7
|
|
R8 EQU 8
|
|
R9 EQU 9
|
|
R10 EQU 10
|
|
R11 EQU 11
|
|
R12 EQU 12
|
|
R13 EQU 13
|
|
R14 EQU 14
|
|
R15 EQU 15
|
|
END
|
|
/*
|
|
//GO.SYSPRINT DD SYSOUT=*
|
|
//GO.SYSUDUMP DD SYSOUT=*
|
|
//GO.SYSABEND DD SYSOUT=*
|
|
//GO.OUTDD DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=122,BLKSIZE=122)
|
|
//GO.INDD DD DSN=HERC01.SALARIES.INPUT,DISP=SHR
|
|
//
|