DFHEIENT macro

Allocates working storage to hold any user variables and for CICS® use.

Syntax

Read syntax diagramSkip visual syntax diagramDFHEIENTCODEREG=0CODEREG= registerDATAREG=13DATAREG= registerEIBREG=11EIBREG= registerSTATREG=3STATREG= registerSTATIC= label

Description

The translator inserts the DFHEIENT macro after the first CSECT or START instruction (unless you specify the NOPROLOG translator option to prevent this). This macro performs prolog code to allocate working storage to hold any user variables and for CICS use:
  • It saves registers.
  • It gets an initial allocation of the storage that is defined by DFHEISTG.
  • It sets up a base register (default register 3).
  • It sets up a dynamic storage register (default register 13).
  • It sets up a register to address the EIB (default register 11).

AMODE(64) programs must use relative addressing, because only relative addressing is supported. Use the NOPROLOG translator option and specify the DFHEIENT macro with the appropriate parameters for relative addressing.

For relative addressing, you do not need any base registers to address your program instructions, but you must use the STATREG and STATIC parameters to set up at least one static register to address static data in your program.

Operands

CODEREG
Specify a value of 0 (the default) to specify relative addressing.
Or specify base registers. Note that registers 13,14,15, and 1 are not allowed.
DATAREG
Specify one or more working storage registers for the application program. The default is register 13, and it is advisable to use register 13 as your first data dynamic-storage register. If you do not, the code generated by the DFHECALL macro adds extra instructions to manipulate register 13. The DFHECALL macro ensures that register 13 addresses the save area that DFHEISTG defined in dynamic storage.
EIBREG
Specify the register to use to address the EXEC interface block (EIB). The default is register 11.
STATREG
Specify one or more static registers for the application program to use. The default is register 3.
STATIC
Specify the assembler label of the start of the static area. You must specify a value; there is no default for this parameter.