Assembler

For CICS® to load your assembler programs in the ERDSA, assemble and link-edit them with the following options: the RENT assembler option; the link-edit RENT attribute; the RMODE(ANY) residency mode.

If you specify these options, ensure that the program is truly read-only (for example, it does not write to static storage), otherwise storage exceptions occur. The program must also be written to 31-bit or 64-bit addressing standards. For possible causes of storage protection exceptions in programs that are resident in the ERDSA, see Causes of protection exceptions.

AMODE(31) programs

The CICS-supplied procedure for AMODE (31) application programs, DFHEITAL, has a LNKPARM parameter that specifies the XREF and LIST options only. To link-edit an ERDSA-eligible program, override LNKPARM from the calling job, specifying the RENT and RMODE(ANY) options in addition to any others you require.

For example:
//ASMPROG JOB
1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//EITAL EXEC DFHEITAL,
	.
	(other parameters as necessary)
	.
// LNKPARM='LIST,XREF,RMODE(ANY),RENT'

The CICS EXEC interface module for assembler programs (DFHEAI) specifies AMODE(ANY) and RMODE(ANY). However, because the assembler defaults your application to AMODE(24) and RMODE(24), the resulting load module also becomes AMODE(24) and RMODE(24).

If you want your application program link-edited as AMODE(31) and RMODE(ANY), use appropriate statements in your assembler program. For example:
MYPROG CSECT
MYPROG AMODE 31
MYPROG RMODE ANY
You can set AMODE and RMODE in the following ways:
  • You can set the required AMODE and RMODE specification by using link-edit (or binder) control information in the JCL PARM keyword. For example:
    //EITAL EXEC DFHEITAL,
    LNKPARM='LIST,XREF,RENT,AMODE(31),RMODE(ANY)'
    
  • Alternatively, you can use the MODE control statement in the SYSIN data set in the link-edit, or the binder, step in your JCL.
When you use the binder, you might see unexpected warning messages about conflicting AMODE and RMODE specifications.

AMODE(64) programs

The CICS-supplied procedure for AMODE(64) application programs, DFHEGTAL, has a LNKPARM parameter that specifies the XREF and LIST options only. To link-edit an ERDSA-eligible program, override LNKPARM from the calling job, specifying the RENT and RMODE(ANY) options in addition to any others you require.

For example:
//ASMPROG JOB
1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//EGTAL EXEC DFHEGTAL,
	.
	(other parameters as necessary)
	.
// LNKPARM='LIST,XREF,RMODE(ANY),RENT'

The CICS EXEC interface module for AMODE(64) assembler programs (DFHEAG) specifies AMODE(64) and RMODE(ANY). However, because the assembler defaults your application to AMODE(24) and RMODE(24), the resulting load module also becomes AMODE(24) and RMODE(24).

If you want your application program link-edited as AMODE(64) and RMODE(ANY), use appropriate statements in your assembler program. For example:
MYPROG CSECT
MYPROG AMODE 64
MYPROG RMODE ANY
You can set AMODE and RMODE in the following ways:
  • You can set the required AMODE and RMODE specification by using link-edit (or binder) control information in the JCL PARM keyword. For example:
    //EITAL EXEC DFHEGTAL,
    LNKPARM='LIST,XREF,RENT,AMODE(64),RMODE(ANY)'
    
  • Alternatively, you can use the MODE control statement in the SYSIN data set in the link-edit, or the binder, step in your JCL.
When you use the binder, you might see unexpected warning messages about conflicting AMODE and RMODE specifications.