//COMPILE EXEC PGM=CNLCCPLR,
// PARM=(lang,dbcs)
//SYSUT1 DD DSN=msg_pds,DISP=SHR
//SYSUT2 DD DSN=msg_div_obj,DISP=(OLD,KEEP,KEEP)
//SYSPRINT DD SYSOUT=*
//COMPILE EXEC PGM=CNLCCPLR,
// PARM=(lang,dbcs)
//SYSUT1 DD DSN=msg_pds1,DISP=SHR
// DD DSN=msg_pds2,DISP=SHR
:
:
// DD DSN=msg_pdsn,DISP=SHR
//SYSUT2 DD DSN=msg_div_obj,DISP=(OLD,KEEP,KEEP)
//SYSPRINT DD SYSOUT=*
PROC 0
FREE DD(SYSUT1,SYSUT2,SYSPRINT) /* FREE DD'S */
ALLOC DD(SYSUT1) DSN('msg_pds') SHR /* ALLOC INPUT FILE */
ALLOC DD(SYSUT2) DSN('msg_div_obj') OLD /* ALLOC OUTPUT FILE */
ALLOC DD(SYSPRINT) DSN(*) /* ALLOC SYSPRINT */
CALL 'SYS1.LINKLIB(CNLCCPLR)' 'lang,dbcs'
/* CALL MESSAGE COMPILER */
SET &RCODE = &LASTCC /* SET RETURN CODE */
FREE DD(SYSUT1,SYSUT2,SYSPRINT) /* FREE FILES */
EXIT CODE(&RCODE) /* EXIT */
PROC 0
FREE DD(SYSUT1,SYSUT2,SYSPRINT) /* FREE DD'S */
ALLOC DD(SYSUT1) DSN('msg_pds1' + /* ALLOC INPUT FILE */
ALLOC DD(SYSUT1) DSN 'msg_pds1' + /* ALLOC INPUT FILE */
:
:
ALLOC DD(SYSUT1) DSN 'msg_pdsn') SHR /* ALLOC INPUT FILE */
ALLOC DD(SYSUT2) DSN('msg_div_obj') OLD /* ALLOC OUTPUT FILE */
ALLOC DD(SYSPRINT) DSN(*) /* ALLOC SYSPRINT */
CALL 'SYS1.LINKLIB(CNLCCPLR)' 'lang,dbcs'
/* CALL MESSAGE COMPILER */
SET &RCODE = &LASTCC /* SET
RETURN CODE */
FREE DD(SYSUT1,SYSUT2,SYSPRINT) /* FREE FILES */
EXIT CODE(&RCODE) /* EXIT */
/* MESSAGE COMPILER INVOCATION EXEC */
MSGCMPLR:
"FREE DD(SYSUT1,SYSUT2,SYSPRINT)"
"ALLOC DD(SYSUT1) DSN('"msg_pds"') SHR"
"ALLOC DD(SYSUT2) DSN('"msg_div_obj"') OLD"
"ALLOC DD(SYSPRINT) DSN(*)"
"CALL 'SYS1.LINKLIB(CNLCCPLR)' 'lang,dbcs'"
compiler_rc=rc
"FREE DD(SYSUT1,SYSUT2,SYSPRINT)"
return(compiler_rc)
/* MESSAGE COMPILER INVOCATION EXEC */
MSGCMPLR:
"FREE DD(SYSUT1,SYSUT2,SYSPRINT)"
"ALLOC DD(SYSUT1) DSN('msg_pds1',",
"'msg_pds2',",
:
:
"'msg_pdsn') SHR"
"ALLOC DD(SYSUT2) DSN('"msg_div_obj"') OLD"
"ALLOC DD(SYSPRINT) DSN(*)"
"CALL 'SYS1.LINKLIB(CNLCCPLR)' 'lang,dbcs'"
compiler_rc=rc
"FREE DD(MSGIN,MSGOUT,SYSPRINT)"
return(compiler_rc)
The lowercase variables used in the preceding examples are defined as follows:
//LISTCAT JOB MSGLEVEL=(1,1)
//MCAT EXEC PGM=IDCAMS,REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTCAT LEVEL(msg_div_obj) ALL
/*