Extensions to dynamic storage

You can extend dynamic storage to provide extra storage for user variables.

You do this by defining these variables in your source program in a DSECT called DFHEISTG. The maximum amount of dynamic storage obtainable using the DFHEISTG DSECT is 65 264 bytes. (Note that DFHEISTG is a reserved name.) This storage is initialized to X'00'. At translation, the translator inserts the DFHEISTG macro immediately following your DFHEISTG DSECT instruction. In this way the DSECT describes dynamic storage needed for the parameter list, for the command-level interface, and for any user variables. Start of changeAt link-edit time, use the STORAGE option of the CEEXOPT macro to ensure that the DFHEISTG storage is initialized to x'00', for example CEEXOPT STORAGE=(,,00).End of changeStart of changeMake sure that your application propagates or initializes any constants that are defined in the user DFHEISTG area.End of change

The example in Figure 1 shows a simple assembler-language application program that uses such variables in dynamic storage.
Figure 1. Translated code for user variables
Source program
 
DFHEISTG DSECT
         COPY  DFH$AGA           INPUT MAP DSECT
         COPY  DFH$AGB           OUTPUT MAP DSECT
MESSAGE  DS    CL39
INQUIRY  CSECT
         EXEC CICS RECEIVE MAP('DFH$AGA')
         MVC   NUMBO,KEYI
         MVC   MESSAGE,=CL(L'MESSAGE)'THIS IS A MESSAGE'
         EXEC CICS SEND MAP('DFH$AGB') ERASE
         END
 
 
The above source program is translated to:
 
         DFHEIGBL ,                INSERTED BY TRANSLATOR
DFHEISTG DSECT
         DFHEISTG                  INSERTED BY TRANSLATOR
         COPY DFH$AGA              INPUT MAP DSECT
         COPY DFH$AGB              OUTPUT MAP DSECT
MESSAGE  DS    CL39
INQUIRY  CSECT
         DFHEIENT                  INSERTED BY TRANSLATOR
*        EXEC CICS RECEIVE MAP('DFH$AGA')
         DFHECALL =X'1802C0000800000000040900000020',
               (CHA7,=CL7'DFH$AGA*'),(______RF,DFH$AGAI)
         MVC   NUMBO,KEYI
         MVC   MESSAGE,=CL(L'MESSAGE)'THIS IS A MESSAGE'
*        EXEC CICS SEND MAP('DFH$AGB') ERASE
         DFHECALL =X'1804C000080000000004E204000020',
               (CHA7,=CL7'DFH$AGB*'),(______RF,DFH$AGBO)
         DFHEIRET                  INSERTED BY TRANSLATOR
         DFHEISTG                  INSERTED BY TRANSLATOR
         DFHEIEND                  INSERTED BY TRANSLATOR
         END