Defining the map set: DFHMSD
You create a map using the DFHMSD macro which defines a map set
About this task
Maps are assembled in groups called map sets. Typically you group all the maps used by a single transaction or several related transactions. (We discuss reasons for grouping maps further in Grouping maps into map sets.) A map set need not contain more than one map, incidentally, and in our simple example, the map set consists of just the “quick check” map.
One
DFHMSD macro is placed in front of all the map definitions in the
map set. It gives:
- The name of the map set
- Whether you are using the maps for output, input, or both
- Defaults for map characteristics that you did not specify on the DFHMDI macros for the individual maps
- Defaults for extended attributes that you did not specify in either the field or map definitions
- Whether you are creating physical or symbolic maps in the current assembly (see Physical and symbolic map sets)
- The programming language of programs that use the maps
- Information about the storage that is used to build the maps
QCKSET DFHMSD TYPE=MAP,STORAGE=AUTO,MODE=OUT,LANG=COBOL,TIOAPFX=YES
This
map set definition tells BMS that the maps in it are used only for
output, and that the programs using them are written in COBOL. It
assigns the name QCKSET to the map set. TIOAPFX=YES causes inclusion
of a 12-byte “prefix” field at the beginning of each symbolic map
(you can see the effect in the second line in Figure 3). You always need this
filler in command language programs and you should specify it explicitly,
as the default is sometimes omission. MAP and STORAGE are explained
in Sending BMS mapped output.You need another
DFHMSD macro at the end of your map definitions, to tell the assembler
that it has reached the end of last map in the map set:
DFHMSD TYPE=FINAL