Block data

BMS provides an alternate format for the symbolic map, called block data format, that can be useful in specific circumstances. In block data format, the symbolic output map is an image of the screen or page going to the terminal.

The symbolic output map has the customary field attributes (A) and output value (O) subfields for each named map field, but the subfields for each map field are separated by filler fields such that their displacement in the symbolic map structure corresponds to their position on the screen. There are no length subfields, and symbolic cursor positioning is unavailable as a consequence.

For example, the symbolic map for the “quick check” screen in Figure 2 would look like this in block data format (assuming a map 80 columns wide). Compare this with the normal “field data”. format (in Figure 3) from the same map definition.
Figure 1. Symbolic map for “quick check” in block data format
01  QCKMAPO.
    02  FILLER PIC X(12).           <---TIOAPFX still present
    02  FILLER PICTURE X(192).      <---Spacer 
    02  ACCTNOA    PICTURE X.       <---Position (3,13)
    02  ACCTNOO  PIC X(7).
    02  FILLER PICTURE X(72).       <---Spacer 
    02  SURNAMEA    PICTURE X.      <---Position (4,13)
    02  SURNAMEO  PIC X(15).
    02  FNAMEA    PICTURE X.        <---Position (4,30), 
    02  FNAMEO  PIC X(10).              
    02  FILLER PICTURE X(52).       <---Spacer 
    02  CHGA    PICTURE X.          <---Position (5,13)
    02  CHGO  PIC $,$$0.00
    02  FILLER PICTURE X(139).      <---Spacer 
    02  MSGA    PICTURE X.          <---Position (7,1).
    02  MSGO  PIC X(30).
You can set only the field attributes in the program; BMS ignores the DSATTS option in the map and does not generate subfields for the extended attributes in block data format. You can use block data for input as well. The input map is identical in structure to the output map, except that the flag (F) replaces the field attributes (A) subfield, and the input (I) replaces the output (O) subfield, as in field format.

Block data format can be useful if the application program has built or has access to a printer page image which it needs to display on a screen. For most situations, however, the normal field data format provides greater function and flexibility.