DFHMSD

The DFHMSD macro defines a mapset.

DFHMSD Minimum BMS

Read syntax diagramSkip visual syntax diagrammapsetDFHMSDTYPE= DSECTMAPFINAL ,MODE=OUTININOUTFOLD=LOWERUPPERTRIGRAPH=NOYESLANG=ASMCOBOL COBOL2PLICSTORAGE=AUTOBASE=nameCTRL=(,PRINTlengthFREEKBALARMFRSET)EXTATT=NOMAPONLYYESCOLOR=DEFAULTcolorDSECT=ADSADSL ,CURSLOC=NOYESHILIGHT=OFFBLINKREVERSEUNDERLINEPS=BASEpsidVALIDN=,MUSTFILLMUSTENTERTRIGGERUSEREXITTERM=typeSUFFIX=nTIOAPFX=NOYES,MAPATTS=(attr),DSATTS=(attr)OUTLINE=BOX(,LEFTRIGHTOVERUNDER)SOSI=NOYESTRANSP=YESNO

DFHMSD Standard BMS

Read syntax diagramSkip visual syntax diagram ,PARTN=(name),ACTIVATELDC=mnemonicOBFMT=NOYESHTAB=,tabVTAB=,tabDATA=FIELDBLOCKFLDSEP=charX'hex-char'
A DFHMSD macro defines a mapset. It begins with the following code:
DFHMSD TYPE=MAP    (or TYPE=DSECT)
It ends with the following code:
DFHMSD TYPE=FINAL

mapset is the name of the mapset. Normally, the name is up to 7 characters in length. However, if the mapset is used to generate HTML templates, and contains more than 36 maps, the name must not exceed 6 characters in length.

A DFHMSD macro contains one or more map definition macros, each of which contains one or more field definition macros.

Ensure that the names of maps, and names of fields in a mapset (or in multiple mapsets that are copied into one application program) are unique. However, a map can have the same name as a mapset.

Before CICS® can load a physical map, you must define a physical map using an RDO DEFINE MAPSET command.

You assemble a BMS mapset definition to generate either a symbolic description map or a physical map. For information about assembling and cataloging the maps, see Installing map sets and partition sets.

Operands

BASE
Specifies that the same storage base is used for the symbolic description maps from more than one mapset. The same name is specified for each mapset that is to share the same storage base. Because all mapsets with the same base describe the same storage, data related to a previously used mapset might be overwritten when a new mapset is used. Different maps in the same mapset also overlay one another.

This operand is not valid for assembler language programs, and cannot be used when STORAGE=AUTO has been specified.

COLOR
Indicates the individual color, or the default color for the mapset (where applicable). This is overridden by the COLOR operand of the DFHMDI macro, which is in turn overridden by the COLOR operand of the DFHMDF macro.

The valid colors are blue, red, pink, green, turquoise, yellow, and neutral.

The COLOR operand is ignored unless the terminal supports color, as indicated by the RDO TYPETERM definition COLOR(YES) option.

CTRL
Defines characteristics of IBM® 3270 terminals. Use of any of the control options in the SEND MAP command overrides all control options in the DFHMDI macro, which in turn overrides all control options in the DFHMSD macro.
If CTRL is used with cumulative BMS paging (that is, the ACCUM option is used on the BMS SEND MAP commands), it must be specified on the last (or only) map of a page, unless it is overridden by the ALARM, FREEKB, and so on, options on the SEND MAP or accumulated SEND CONTROL command.
PRINT
Must be specified if the printer is to be started; if omitted, the data is sent to the printer buffer but is not printed. This operand is ignored if the mapset is used with 3270 displays without the Printer Adapter feature.
LENGTH
Indicates the line length on the printer; length can be specified as L40, L64, L80, or HONEOM. L40, L64, and L80 force a new line after 40, 64, or 80 characters, respectively. HONEOM causes the default printer line length to be used. If this option is omitted, BMS sets the line length from the TCT page size.
FREEKB
Causes the keyboard to be unlocked after the map is written. If FREEKB is not specified, the keyboard remains locked; data entry from the keyboard is inhibited until this status is changed.
ALARM
Activates the 3270 audible alarm. For non-3270 VTAM® terminals, it sets the alarm flag in the FMH. (This feature is not supported by interactive and batch logical units.)
FRSET
Specifies that the modified data tags (MDTs) of all fields currently in the 3270 buffer are to be reset to a not-modified condition (that is, field reset) before map data is written to the buffer. This allows the DFHMDF macro with the ATTRB operand to control the final status of any fields written or rewritten in response to a BMS command.
CURSLOC
Indicates that for all RECEIVE MAP operations using this map on 3270 terminals, BMS sets a flag in the application data structure element for the field where the cursor is located.

The flag can be tested by DFHBMCUR (see copybook DFHBMSCA in BMS-related constants).

To test the flag (COBOL example):
(DFHBMSCA)
...
02  DFHBMEOF   PIC X VALUE X'80'.
02  DFHBMCUR   PIC X VALUE X'02'.
02  DFHBMEC    PIC X VALUE X'82'.
02  DFHBMFLG   PIC X.
  88  DFHERASE       VALUES ARE X'80', X'82'.
  88  DFHCURSR       VALUES ARE X'02', X'82'.
MOVE FLD1F TO DFHBMFLG.
IF DFHERASE THEN ...
            ELSE ...
IF DFHCURSR THEN ...
            ELSE ...
Note:
  1. If CURSLOC=YES is specified for the MAP definitions, and there is no data for any field of the application data structure, but the cursor lies in a field known to the application data structure, BMS sets the cursor flag for the appropriate field, but the data for all fields in the application data structure is null, and the MAPFAIL condition does not occur. The unmapped data stream is not available to the application program unless it is a RECEIVE DATA FROM request.
  2. A valid CURSLOC definition in DFHMDI overrides the definition in DFHMSD.

DATA
Specifies the format of the data.
FIELD
Specifies that the data is passed as contiguous fields, each field having the format:

LL is two bytes that specify the length of the data as input from the terminal (these two bytes are ignored in output processing). A is a byte into which the programmer can place an attribute to override that specified in the map used to process this data (see copybook DFHBMSCA in BMS-related constants).

BLOCK
Specifies that the data is passed as a continuous stream in the following format:

This stream is processed as line segments of the length specified in the map used to process the data. The data is in the form that it appears on the terminal; that is, it contains data fields and interspersed blanks corresponding to any spaces that are to appear between the fields on output. You cannot use DSATTS=YES, if you specify DATA=BLOCK.

Block data is further discussed in Block data.

DSATTS
Specifies the attribute types to be included in the symbolic description map. These types can be one or more of the following: COLOR, HILIGHT, OUTLINE, PS, SOSI, TRANSP, and VALIDN. Any type included in DSATTS should also be included in MAPATTS.
DSECT
Specifies whether the copybook generated supports the normal or long form of the application data structure (ADS).
ADS
Requests mapping of the normal form of the ADS (default).
ADSL
Requests mapping of the long form of the ADS, where all fields are aligned on four-byte boundaries. This form is required by the 3270 Bridge interface to IBM MQ.

This option requires LANG=C.

EXTATT
This operand is supported for compatibility with previous releases. Each extended attribute can be defined individually. For new maps, use the operands DSATTS and MAPATTS instead.
NO
Is equivalent to specifying neither the DSATTS operand nor the MAPATTS operand.
YES
Is equivalent to specifying the following operands:
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
DSATTS=(COLOR,HILIGHT,PS,VALIDN)
MAPONLY
Is equivalent to specifying the following operand:
MAPATTS=(COLOR,HILIGHT,PS,VALIDN)
FLDSEP
Specifies the field separator sequence (1–4 characters) for input from non-3270 devices. Input from non-3270 devices can be entered as a single string of data with the field separator sequence delimiting fields. The data between the field separators is moved to the input fields in the map in order.
FOLD
Specifies whether to generate lowercase or uppercase characters in C language programs.

FOLD is only available for programs written in C.

HILIGHT
Specifies the default highlighting attribute for all fields in all maps in a mapset. This is overridden by the HILIGHT operand of the DFHMDI, which is in turn overridden by the HILIGHT operand of the DFHMDF.
OFF
Indicates that no highlighting is used (the default).
BLINK
Specifies that the field must flash.
REVERSE
Specifies that the character or field is displayed in reverse video, for example, on a 3278, black characters on a green background.
UNDERLINE
Specifies that a field is underlined.

The HILIGHT operand is ignored unless the terminal supports highlighting, as indicated by HILIGHT(YES) on the RDO TYPETERM definition.

HTAB
Specifies one or more tab positions for use with interactive and batch logical units and SCS printers with horizontal forms control.
LANG
Specifies the source language of the application programs into which the symbolic description maps in the mapset are copied. COBOL is OS/VS COBOL, which cannot run under this CICS version, and COBOL2 is either Enterprise COBOL or VS COBOL II. This option need only be coded for DFHMSD TYPE=DSECT. If a mapset is to be used by more than one program, and the programs are not all written in the same source language, a separate version of the mapset must be defined for each programming language.
LDC
Specifies the code to be used by CICS to determine the logical device mnemonic to be used for a BMS output operation. If no LDC operand has been specified on any previous BMS output in the logical message, this LDC will be transmitted in the function management header to the logical unit. This operand is used only for VTAM-supported 3600 terminals, and batch logical units.
MAPATTS
Specifies the attribute types to be included in the physical map. These types can be one or more of the following: COLOR, HILIGHT, OUTLINE, PS, SOSI, TRANSP, and VALIDN. This list must include all the attribute types to be specified for individual fields in the map (DFHMDF macro).

Where possible these values are deduced from operands already specified in the DFHMDI and DFHMSD macros. For example, if COLOR=BLUE has been specified, MAPATTS=COLOR is assumed.

MODE
Specifies whether the mapset is to be used for input, output, or both.
OBFMT
Specifies whether outboard formatting is to be used. This operand is available only for 3650 logical units, or for an 8100 series processor running DPS Release 2 and defined to CICS as an LUTYPE2 logical unit. For more information, see Outboard formatting.
The OBFMT operand on DFHMSD is overridden by the OBFMT operand on DFHMDI.
YES
Specifies that all maps in this mapset can be used in outboard formatting, except those for which OBFMT=NO is specified in the DFHMDI macro.
NO
Specifies that no maps in this mapset can be used in outboard formatting, except those for which OBFMT=YES is specified in DFHMDI.
OUTLINE
Allows lines to be included above, below, to the left, or to the right of a field. You can use these lines in any combination to construct boxes around fields or groups of fields.
PARTN
Specifies the default partition to be associated with maps in this mapset. If the ACTIVATE option is specified, the specified partition is also activated when maps in this mapset are output to a terminal that supports partitions. This option is overridden by the PARTN operand of the DFHMDI macro, which is in turn overridden by any OUTPARTN or ACTPARTN option on the SEND MAP command, or the INPARTN option on a RECEIVE MAP command.

The PARTN operand is ignored if the target terminal does not support partitions, or if there is no partition set associated with the transaction.

PS
Specifies that programmed symbols are to be used. This is overridden by the PS operand of the DFHMDI macro, which is in turn overridden by the PS operand of the DFHMDF macro.
BASE
Specifies that the base symbol set is to be used.
psid
Specifies a single EBCDIC character, or a hexadecimal code of the form X'nn', that identifies the set of programmed symbols to be used.

The PS operand is ignored unless the terminal supports programmed symbols, as indicated by PROGSYMBOLS(YES) on the RDO TYPETERM definition.

SOSI
Indicates that the field can contain a mixture of EBCDIC and DBCS data. The DBCS subfields in an EBCDIC field are delimited by SO (shift out) and SI (shift in) characters. SO and SI both occupy a single screen position (normally displayed as a blank). They can be included in any non-DBCS field on output provided they are correctly paired. The terminal user can transmit them inbound if they are already present in the field, but can add them to an EBCDIC field only if the field has the SOSI attribute.
STORAGE
The meaning of this operand depends upon the language in which application programs are written, as follows:

For a COBOL program, STORAGE=AUTO specifies that the symbolic description maps in the mapset are to occupy separate (that is, not redefined) areas of storage. This operand is used when the symbolic description maps are copied into the working-storage section and the storage for the separate maps in the mapset is to be used concurrently.

For a C program, STORAGE=AUTO specifies that the symbolic description maps are to be defined as having the automatic storage class. If STORAGE=AUTO is not specified, they are declared as pointers.

For a PL/I program, STORAGE=AUTO specifies that the symbolic description maps are to be declared as having the AUTOMATIC storage class. If STORAGE=AUTO is not specified, they are declared as BASED.

For an assembler language program, STORAGE=AUTO specifies that individual maps in a mapset are to occupy separate areas of storage instead of overlaying one another.

For all languages:
  • You cannot specify both BASE=name and STORAGE=AUTO for the same mapset.
  • If STORAGE=AUTO is specified and TIOAPFX is not, TIOAPFX=YES is assumed.
SUFFIX
Specifies a one-character, user-defined, device-dependent suffix for this mapset, as an alternative to a suffix generated by the TERM operand. The suffix specified by this operand should match the value of a transaction defined on the ALTSUFFIX attribute of a TYPETERM definition, or ALTSFX in the terminal control table TYPE=TERMINAL. Use a numeric value to avoid conflict with suffixes generated by the TERM operand.
TERM
Specifies the type of terminal or logical unit (LU) associated with the mapset. If no terminal type or LU is specified, 3270 is assumed. The terminal types and LUs you can specify, together with their generated suffixes, are shown in Table 1.

In addition, you should note the following:

If ALL is specified, ensure that device-dependent characters are not included in the mapset and that format characteristics such as page size are suitable for all input/output operations (and all terminals) in which the mapset is applied. For example, some terminals are limited to 480 bytes, others to 1920 bytes; the 3604 is limited to six lines of 40 characters each. Within these guidelines, use of ALL can offer important advantages. Because an assembly run is required for each map generation, the use of ALL, indicating that one map is to be used for more than one terminal, can result in significant time and storage savings.

However, better run-time performance for maps used by single terminal types is achieved if the terminal type (rather than ALL) is specified. Alternatively, BMS support for device-dependent mapsets can be bypassed by specifying NODDS in the BMS operand of the system initialization parameters.

Table 1. BMS terminal types
Type Suffix Notes
CRLP A Card-reader-in/line-printer-out
TAPE B  
DISK C  
TWX D  
1050 E  
2740 F  
2741 G  
2770 I  
2780 J  
3780 K  
3270-1 (40-column) L  
3270-2 (80-column) M  
INTLU/3767/3770I/SCS p All interactive LUs including 3790 full-function LU and SCS printer LUs (3270 and 3790).
2980 Q  
2980-4 R  
3270 blank Default if TERM omitted. Same as ALL; used when no need to distinguish between models.
3601 U  
3653 V Plus host-conv (3653) LU.
3650UP W Plus interpreter LU.
3650/3270 X Plus host-conv (32700 LU.
BCHLU/3770B Y Plus all batch and BDI LUs.
ALL (all of the above) blank  
TIOAPFX
Specifies whether BMS should include a filler in the symbolic description maps to allow for the unused TIOA prefix.
YES
Specifies that the filler should be included in the symbolic description maps. If TIOAPFX=YES is specified, all maps in the mapset have the filler, except when TIOAPFX=NO is specified on the DFHMDI macro. TIOAPFX=YES is the default if STORAGE=AUTO is specified. TIOAPFX=YES should always be used for command-level application programs.
NO
Is the default, unless STORAGE=AUTO is specified, and specifies that the filler is not to be included. The filler can still be included for a map if TIOAPFX=YES is specified on DFHMDI.
TRANSP
Determines whether the background of an alphanumeric field is transparent or opaque, that is, whether an underlying (graphic) presentation space is visible between the characters.
TRIGRAPH
Specifies trigraph sequences to be used in C language symbolic description maps.
When TRIGRAPH=YES, trigraph sequences are produced:
{
prints as ??<
}
prints as ??>
[
prints as ??(
]
prints as ??)

This option is available only for programs written in C.

TYPE
Specifies the type of map to be generated using the definition. Both types of map must be generated before the mapset can be used by an application program. If aligned symbolic description maps are required, you should ensure that you specify SYSPARM=ADSECT and SYSPARM=AMAP when you assemble the symbolic and physical maps respectively.
DSECT
Specifies that a symbolic description map is to be generated. Symbolic description maps must be copied into the source program before it is translated and compiled.
MAP
Specifies that a physical map is to be generated. Physical maps must be assembled or compiled, link-edited, and cataloged in the CICS program library before an application program can use them.

If both map and DSECT are to be generated in the same job, the SYSPARM option can be used in the assembler job execution step.

VALIDN
Specifies that:
  • Validation is to be used on an 8775 terminal
  • This field can be processed by the BMS global user exits
This is overridden by the VALIDN operand of the DFHMDI macro, which is in turn overridden by the VALIDN of the DFHMDF macro.
MUSTFILL
Specifies that the field must be filled completely with data. An attempt to move the cursor from the field before it has been filled, or to transmit data from an incomplete field, raises the INHIBIT INPUT condition.
MUSTENTER
Specifies that data must be entered into the field, though need not fill it. An attempt to move the cursor from an empty field raises the INHIBIT INPUT condition.
TRIGGER
Specifies that this field is a trigger field. Trigger fields are discussed in Trigger field support.
USEREXIT
Specifies that this field is to be processed by the BMS global user exits, XBMIN and XBMOUT, if this field is received or transmitted in a 3270 datastream when the respective exit is enabled.

The MUSTFILL, MUSTENTER, and TRIGGER specifications are valid only for terminals that support the field validation extended attribute, otherwise they are ignored. The USEREXIT specification applies to all 3270 devices.

Note: The USEREXIT specification is unconnected with the field validation extended attribute as defined in the 3270 datastream architecture.
VTAB
Specifies one or more tab positions for use with interactive and batch logical units and SCS printers having vertical forms control.