DFHMSD is used to define a mapset with its characteristic and to end a mapset. So you will find two DFHMSD in any BMS coding. Some of the important operands are below:
It should be DSECT for Symbolic map generation, MAP for physical map generation and FINAL to indicate the end of mapset. Alternatively symbolic parameter &SYSPARM can be coded in the TYPE of defining DFHMSD and the value can be overridden in the PARM parameter of assembly procedure. This avoids the change in the BMS coding.
IN for input maps like order entry screens and OUT for output maps like display screens and INOUT for input-output maps like update screens.
It specifies the language in which the symbolic map is to be generated. It can be COBOL, PLI, ASM or RPG.
AUTO is used to acquire separate symbolic map area for each mapset. BASE=MAP-IOAREA allows multiple maps from more than one mapset to share same storage area. MAP-IOAREA will be redefined multiple times to achieve it.
It should be ‘YES’ to reserve the prefix space of 12 bytes for BMS commands to access TIOA properly. This is required for command level CICS.
Device control requests are placed here. Multiple parameters are separated by comma. FREEKB is used to unlock the keyboard. FRSET is used to reset the MDT of all the fields in all the maps to zero. ALARM is used to set an alarm at screen display time. PRINT is used to send the mapset to printer.
If anything other than 3270 terminal is used for display of screens, then it should be coded here. This ensures device independence by means of providing the suffix. SUFFIX is used to specify suffix for the terminal and it should correspond to TCT entry of the terminal.
The following example shows how to code a mapset definition,
MPSET1 DFHMSD TYPE = &SYSPARM, X CTRL = (FREEKB,FRSET), X LANG = COBOL, X STORAGE = AUTO, X TIOAPFX = YES, X MODE = INOUT, X TERM = 3270 DFHMSD TYPE = FINAL END
If you have any doubts or queries related to this chapter, get them clarified from our Mainframe experts on ibmmainframer Community!