Modules

BMS makes use of the following modules (see Figure 5):

Module Function
DFHDSB Addresses the page buffer, which was composed by the page and text build program (DFHPBP).
DFHEMS The EXEC interface processor for BMS commands.
DFHIIP Called in response to requests for BMS services involving terminals other than IBM® 3270 Information Display Systems.
DFHMCP The interface between application programs and the modules that perform mapping, message switching, page and text building, device-dependent output preparation, and message disposition to terminals, temporary-storage areas, or the application program.
DFHMCX The BMS fast path module for standard and full-function BMS, and the program for minimum BMS support. It is called by DFHMCP if the request satisfies one of the following conditions:
  • It is a non-cumulative direct terminal send map or receive map issued by a command-level program.
  • It is for a 3270 display or an LU3 printer which does not support outboard formatting. If the terminal supports partitions, it is in the base state.
  • The CSPQ transaction has been started.
  • The message disposition has not changed.
DFHM32 Called in response to requests for BMS services involving terminals of the 3270 Information Display System.
DFHPBP Processes all BMS output requests (SEND MAP, SEND PAGE, and SEND TEXT). It performs the following functions:
  • Positions the data in the page, either by actually placing it in a buffer, or by copying it and adjusting the map for an IBM 3270 Information Display System (SEND MAP ACCUM)
  • Places the data into the page buffer (SEND TEXT ACCUM)
  • Inserts device-dependent control characters for other than 3270 Information Display System devices, removing extended attributes.
DFHPHP Processes terminal operations that involve partitions.
DFHRLR Builds terminal type parameters (TTPs), which are the main blocks for building and writing out data in BMS.
DFHTPP Directs completed pages to a destination specified in the BMS output request: SEND TEXT sends to the originating terminal; SEND MAP PAGING or SEND TEXT PAGING directs to temporary storage; and SEND MAP SET or SEND TEXT SET directs to a list of completed pages that are returned to the application program).
DFHTPQ Checks the chain of automatic initiate descriptors (AIDs) to detect and delete AIDs that have been on the chain for an interval exceeding the purge delay time interval specified by the PRGDLAY system initialization parameter, if this has a nonzero value.
DFHTPR Processes messages built by BMS and placed in temporary storage.
DFHTPS Invoked for each terminal type to which a BMS logical message built with SEND MAP PAGING or SEND TEXT PAGING is to be sent. For each terminal designated by the originating application program, DFHTPR is scheduled to display the first page of the logical message if the terminal is in paging status, or the complete message if it is in autopage status.

Basic mapping support (BMS) is provided by means of a number of modules, each of which interfaces with other BMS modules, CICS® control components, and application programs. The maps that are handled by BMS may be new maps, created to utilize BMS mapping capabilities. The interrelationships of CICS programs requesting mapping services are summarized in Figure 5. Further details for specific programs within BMS are given in topics that follow.

One of three versions (MINIMUM, STANDARD, or FULL) of basic mapping support can be selected by the system initialization parameter BMS (see the CICS System Definition Guide). Where the generated versions of a BMS module differ according to the level of function provided, a suffix identifies the version as follows:

In the module lists that follow, an asterisk (*) after a module name shows that the module is suffixed in this way. Elsewhere in this book, however, the BMS modules are usually referenced by their unsuffixed names with no distinction made between the minimum, standard, and full-function versions.

The module used by all three versions of BMS (minimum, standard, and full-function) is:

Additional modules used by both standard and full-function versions of BMS are:

Additional modules used only by full-function BMS are:

A detailed description of each of these modules follows in alphabetic order of module name.

Figure 5. Modules associated with basic mapping support (BMS)
 This is a technical drawing showing the modules associated wih basic mapping support (BMS) and the relationships between them.

DFHDSB (data stream build)

The data stream build program addresses the page buffer, composed by the page and text build program (DFHPBP). The page buffer contains lines of output data that are to be written to a terminal other than an IBM 3270 Information Display System. The number of lines is contained in the TTPLINES field. The data stream build program performs the following functions on the data in the page buffer:

Figure 6 shows the relationships between the components of data stream build.

Figure 6. Data stream build interfaces
 This is a technical drawing showing the components of data stream build and the relationships between them.

Notes:
  1. DFHDSB is entered from the page build program to process the page buffer.
  2. For SEND TEXT commands with the NOEDIT option specified, page buffer compression is skipped and control returns to DFHPBP, which calls the terminal page processor (DFHTPP).
  3. For SEND TEXT commands without the NOEDIT option, the appropriate device control characters for the target device are selected for substitution.
  4. The page buffer containing the data to be compressed is located through the address stored at TTPPGBUF.
  5. After compression of the page buffer data, control returns to DFHPBP, which calls DFHTPP to provide disposition of the page.

DFHIIP (non-3270 input mapping)

The non-3270 input mapping program (DFHIIP) is called in response to requests for BMS services involving terminals other than IBM 3270 Information Display Systems.

Figure 7 shows the relationships between the components of non-3270 input mapping.

Figure 7. Non-3270 input mapping interfaces
 This is a technical drawing showing the components of non-3270 input mapping and the relationships between them.

Notes:
  1. A RECEIVE MAP request by an application program, communicating with other than an IBM 3270 Information Display System, passes information through the TCA through the mapping control program (DFHMCP) to DFHIIP.
  2. The map required for an operation is either passed by the application program or loaded by DFHMCP.
  3. DFHIIP communicates with storage control to obtain and release buffers for mapping operations.

DFHMCP (mapping control program)

The mapping control program (DFHMCP) is the interface between application programs and the modules that perform mapping, message switching, page and text building, device-dependent output preparation, and message disposition to terminals, temporary-storage areas, or the application program.

Figure 8 shows the relationships between the components of mapping control.

Figure 8. Mapping control program interfaces
 This is a technical drawing showing the components of mapping control and the relationships between them.
Notes:
  1. This program is entered when an application program issues a request for basic mapping support services.
  2. It may also be called by task control to process a deferred work element (DWE) if an application program terminates and there are partial pages in storage, or the message control record (MCR) created during execution of the task has not been placed in temporary storage.
  3. The following information is returned to the requester: error codes, page overflow information, and (for a SEND MAP SET or SEND TEXT SET command) a list of completed pages.
  4. DFHMCP communicates with temporary storage control to put the MCR for routed or stored messages, if a ROUTE command, or SEND MAP PAGING or SEND TEXT PAGING command is issued. A DELETEQ TS command is issued to request that a message be purged from temporary storage if a PURGE MESSAGE command is issued.
  5. DFHMCP communicates with storage control to:
    • Acquire and free storage in which the MCR is built (a SEND MAP command after a SEND MAP PAGING, SEND TEXT PAGING, or ROUTE command)
    • Acquire and free storage in which to copy the message title (a ROUTE command with the TITLE option specified)
    • Acquire storage to build automatic initiate descriptors (AIDs) for non-routed messages, or routed messages to be delivered immediately (a SEND PAGE command)
    • Acquire a BMS work area (OSPWA) at the time of the initial BMS request
    • Acquire and free an area used for user request data if a SEND PAGE command must be simulated before processing the user’s request
    • Free the returned page list (a DELETEQ TS command)
    • Free map copies if SEND PAGE command was issued and pages were being built in response to SEND PAGE commands
    • Free terminal type parameters (TTPs) (SEND PAGE command).
  6. DFHMCP communicates with program manager to:
    • Load and delete map sets
    • Link to the terminal page retrieval program (DFHTPR) to process one or more pages of a message if a SEND PAGE command is issued with the RETAIN or RELEASE option specified
    • Abnormally terminate tasks that incur errors that cannot be corrected.
  7. DFHMCP communicates with interval control to:
    • Initiate transaction CSPQ
    • Obtain the current time of day, which is then used to time stamp AIDs for routed messages
    • Initiate transaction CSPS for messages to be delivered later.
  8. DFHMCP communicates with task control to schedule transaction CSPQ for every terminal that is to receive a routed message to be delivered immediately.
  9. Transient data control is used to send error and information messages to the master terminal.
  10. Route list resolution (DFHRLR) is used to collect terminals from a user-supplied route list or from the entire TCT by terminal type, and build a terminal type parameter (TTP), which controls message building, for each terminal type. It is also used to build a single-element TTP for the originating terminal.
  11. Non-3270 input mapping (DFHIIP) is used to process RECEIVE MAP requests for a terminal other than an IBM 3270 Information Display System.
  12. The mapping control program calls DFHMCX if the request is eligible for the BMS fast-path module.
  13. 3270 mapping (DFHM32) is used to process RECEIVE MAP requests for an IBM 3270 Information Display System.
  14. Page and text build (DFHPBP) processes the following output requests:
  15. Page and text build program (DFHPBP) processes all BMS output requests
    • SEND MAP
    • SEND MAP PAGING
    • SEND MAP SET
    • SEND PAGE
    • SEND TEXT
    • SEND TEXT PAGING
    • SEND TEXT SET.
    For 3270 output, DFHM32 is called; for other output, DFHML1 is called.
  16. The partition handling program (DFHPHP) is called when the data is in an inbound structured field. DFHPHP extracts the partition ID, device AID, and cursor address.

DFHML1 (LU1 printer with extended attributes mapping)

The LU1 printer with extended attributes mapping program, DFHML1, is called in response to requests for BMS services involving terminals of the 3270 Information Display System. Figure 9 shows how the DFHML1 program responds to these requests.

Figure 9. LU1 printer with extended attributes mapping program interfaces
 This is a technical drawing showing how the DFHML1 program responds to requests for BMS services involving 3270 terminals

Notes:
  1. The following types of requests, by application programs communicating with LU1 printer mapping, pass information through the mapping control program (DFHMCP), and the page and text build program (DFHPBP), to DFHML1:
    • SEND MAP ACCUM
    • SEND MAP SET
    • SEND TEXT
    • SEND TEXT ACCUM
    • SEND TEXT SET

    For one page of output, DFHML1 acquires an area and formats it into a chain of control blocks known as map control areas (MCAs). Each MCA corresponds to one map on the page and contains information about chaining down the maps and processing the fields in each map. DFHML1 then builds the data stream directly from the maps and the TIOAs.

  2. Maps are either passed by the application program or loaded by DFHMCP.
  3. The address of a terminal input/output area (TIOA) is supplied by the application program for all requests.
  4. DFHML1 communicates with storage control to obtain and release storage for MCAs and for the mapped data.
  5. All requests (see note 1) are sent to a designated destination by the terminal page processor (DFHTPP), after the return of control to DFHPBP.

DFHM32 (3270 mapping)

The 3270 mapping program (DFHM32) is called in response to requests for BMS services involving terminals of the 3270 Information Display System. Figure 10 shows how the 3270 mapping program responds to these requests.

Figure 10. 3270 mapping program interfaces
 This is a technical drawing showing how DFHM32, the 3270 mapping program, responds to requests for BMS services involving 3270 terminals
Notes:
  1. The following types of requests by an application program communicating with an IBM 3270 Information Display System passes information through the TCA by way of the mapping control program (DFHMCP) and the page and text build program (DFHPBP) to DFHM32:
    • SEND MAP ACCUM
    • SEND MAP PAGING
    • SEND MAP SET
    • SEND TEXT
    • SEND TEXT ACCUM
    • SEND TEXT PAGING
    • SEND TEXT SET

    For one page of output, DFHM32 acquires an area and formats it into a chain of control blocks known as map control areas (MCAs). Each MCA corresponds to one map on the page and contains information for chaining down the maps and processing the fields in each map. DFHM32 then builds the data stream directly from the maps and the TIOAs.

  2. A RECEIVE MAP or RECEIVE MAP FROM request by an application program communicating with an IBM 3270 Information Display System passes information through the TCA through the message control program (DFHMCP) to DFHM32.
  3. Maps are either passed by the application program or loaded by DFHMCP.
  4. DFHM32 communicates with storage control to obtain and release storage for MCAs and for the mapped data.
  5. All output requests (see note 1) are sent to a designated destination by the terminal page processor (DFHTPP) after control is returned to DFHPBP.

DFHPBP (page and text build)

The page and text build program (DFHPBP) processes all BMS output requests

It performs the following functions:

Figure 11 shows the relationships between the components of page and text build.

Figure 11. Page and text build program interfaces
 This is a technical drawing showing the components of page and text build, and the relationships between them.
Notes:
  1. DFHPBP is entered from the mapping control program, DFHMCP, to process all BMS output requests. It is called once for each terminal type parameter (TTP) on the TTP chain pointed to by OSPTTP. The current TTP in the chain is pointed to by OSPCTTP.
  2. DFHPBP returns control to DFHMCP when request processing is complete, or when the page must be written out before a SEND MAP ACCUM request can be processed and an OFLOW=symbolic address operand was specified.
  3. OSPTR2, OSPTR3, ..., OSPTR7 contain request data from the DFHBMS macro expansion. OSPRC1 and OSPRC3 contain return codes to be examined by DFHMCP.
  4. For a SEND MAP ACCUM request for an IBM 3270 Information Display System, the map is copied and chained to the TTP. For a SEND TEXT ACCUM request for an IBM 3270 Information Display System, a dummy map is created and chained to the TTP. When a page is complete, control is given to 3270 mapping (DFHM32), which combines the map copies chained to the TTP and maps the data.

    For a SEND MAP ACCUM request for an LU1 printer with extended attributes, the map is copied and chained to the TTP. For a SEND TEXT ACCUM request, a dummy map is created and chained to the TTP. When a page is complete, control is given to the LU1 printer mapping program (DFHML1), which combines the map copies chained to the TTP and maps the data.

  5. DFHPBP communicates with storage control to:
    • Acquire and free buffers in which pages are built
    • Acquire storage for copies of maps for SEND MAP ACCUM or SEND TEXT ACCUM
    • Acquire storage for a copy of the user’s data for SEND MAP ACCUM or SEND TEXT ACCUM.
  6. DFHPBP requests program manager to terminate a transaction abnormally (ABEND) if certain errors occur that cannot be corrected.
  7. A SEND TEXT ACCUM request for an IBM 3270 Information Display System causes a map set consisting of one dummy map to be passed to 3270 mapping (DFHM32). The map has one field with attributes FREEKB and FRSET.

    SEND TEXT ACCUM requests for an LU1 printer cause a map set consisting of one dummy map to be passed to the LU1 printer mapping program (DFHML1). The map has one field with attributes FREEKB and FRSET.

  8. If the page is being constructed for an IBM 3270 Information Display System, control is given to DFHM32 to map the data and then to DFHTPP to output the page.

    If the page is being constructed for an LU1 printer, control is given to DFHML1 to map the data, and then to DFHTPP to output the page. Otherwise, control is given to DFHDSB to add device dependencies to the page, and then to the terminal page processor (DFHTPP) to output the page.

DFHPHP (partition handling program)

The partition handling program (DFHPHP) processes terminal operations that involve partitions. DFHPHP has one entry point, and starts with a branch table that passes control to the required routine according to the request. It consists of routines that perform the following functions:

Figure 12 shows the relationships between the components of partition handling.

Figure 12. Partition handling program interfaces
 This is a technical drawing showing the components of partition handling and the relationships between them.
Notes:
  1. DFHPHP is called by the mapping control program (DFHMCP) and by the terminal output macro (DFHTOM).
  2. PHPPSI refers to OSPWA to check whether a partition set is loaded.
  3. PHPPSI communicates with program manager to load the partition set.
  4. PHPPSI puts the name of the partition set in TPE (terminal partition extension) as the application partition set.
  5. PHPPSC calls storage control to acquire a TIOA in which to build and free the original TIOA.
  6. PHPPSC sets a slot in the TCTTE to be the partition set data stream concatenated with the terminal partition set name if the terminal is not in the base state.
  7. PHPPIN places the AID and the cursor address in the TCTTE.
  8. PHPPXE calls storage control to get a TIOA, retrieves the error message text by calling the message domain, fills the TIOA with data, transmits the data, and frees the TIOA.
  9. PHPPSC references the partition set object to build the partition creation data stream.

DFHRLR (route list resolution program)

The route list resolution program (DFHRLR) builds terminal type parameters (TTPs), which are the main blocks for building and writing out data in BMS.

Figure 13 shows the route list resolution program interfaces.

Figure 13. Route list resolution program interfaces
 This is a technical drawing showing the route list resolution program interface
Notes:
  1. DFHRLR is called by the mapping control program (DFHMCP) to determine the grouping of terminal destinations.
  2. If data is to be routed, DFHRLR groups the terminals in the user’s route list by terminal type and builds a routing TTP for each type. For each TTP, the supported attributes of the corresponding terminals are accumulated. The address of the first routing TTP in the chain of TTPs is placed in OSPTTP.
  3. If data is not to be routed, a direct TTP is built for the originating terminal and its address is placed in OSPDTTP.
  4. DFHRLR communicates with storage control to acquire storage for the TTP.
  5. Program manager services are requested by means of an ABEND command if errors occur that cannot be corrected.

DFHTPP (terminal page processor)

The terminal page processor (DFHTPP) directs completed pages to a destination specified in the BMS output request:

Figure 14 shows the relationships between the terminal page processor and other components in response to BMS output requests.

Figure 14. Terminal page processor interfaces
 This is a technical drawing showing the relationships between the terminal page processor and other components in response to BMS output requests.
Notes:
  1. DFHTPP is entered from DFHPBP after processing by 3270 mapping (DFHM32) for 3270s, by LU1 printer with extended attributes mapping (DFHML1) for those LU1 printers, and by data stream build (DFHDSB) for other devices.
  2. DFHTPP communicates with storage control to obtain:
    • The return list (to store the address of completed pages to be returned to the program)
    • Deferred work elements (DWEs), which ensure that message control information is written to disk, even if the program neglects to issue a SEND PAGE request
    • Storage for a list that correlates pages on temporary storage with the logical device codes for which they are destined.
  3. Temporary-storage control is used to store pages and the message control record (MCR) for messages stored on temporary storage.
  4. The terminal type parameter (TTP) controls the formatting of a message for a particular terminal type (for example, an IBM 2741 Communication Terminal). TTPPGBUF contains the address of a completed page.
  5. The terminal output macro (DFHTOM) is issued to provide an open subroutine assembled within DFHTPP that puts a completed page out to the terminal. If the data stream contains extended attributes, and the terminal does not support extended attributes, the extended attributes are deleted.

DFHTPQ (undelivered messages cleanup program)

The undelivered messages cleanup program (DFHTPQ) checks the chain of automatic initiate descriptors (AIDs) to detect and delete AIDs that have been on the chain for an interval exceeding the purge delay time interval specified by the PRGDLAY system initialization parameter, if this has a nonzero value.

Figure 15 shows the undelivered messages cleanup program interfaces.

Figure 15. Undelivered messages cleanup program interfaces
 This is a technical drawing showing the relationships between the undelivered messages cleanup program and other components.
Notes:
  1. DFHTPQ is initiated the first time by the mapping control program (DFHMCP), by interval control, or by the transaction CSPQ. Thereafter, it reinitiates itself (see note 5).
  2. DFHTPQ communicates with the allocation program (DFHALP) to locate and unchain AIDs.
  3. DFHTPQ communicates with storage control to free AIDs that have been purged and to acquire storage for notification messages.
  4. Transient data control is used to send notification messages.
  5. Interval control is used to obtain the current time and to reinitiate this task (DFHTPQ).
  6. DFHTPQ communicates with temporary-storage control to retrieve and replace message control records (MCRs) and to purge messages.

DFHTPR (terminal page retrieval program)

The terminal page retrieval program (DFHTPR) processes messages built by BMS and placed in temporary storage.

Figure 16 shows the relationships between the components of page retrieval.

Figure 16. Page retrieval program interfaces
 This is a technical drawing showing the components of page retrieval and the relationships between them
Notes:
  1. DFHTPR can be initiated as a stand-alone transaction (CSPG), or by a user-defined paging command (for example, P/, or 3270 PA/PF keys), or linked to from a BMS conversational operation (SEND PAGE request with CTRL=RETAIN or RELEASE).

    DFHTPR performs the following functions:

    • Displays the first page of a routed message
    • Displays subsequent pages of a message at a terminal for which a SEND PAGE request with CTRL=AUTOPAGE was specified
    • Processes paging commands from a terminal
    • Processes the CSPG transaction when it is entered at the terminal
    • Purges a message displayed at the terminal if the terminal is in display status and other than a paging command is entered at the terminal.

  2. DFHTPR is entered from the BMS mapping control program (DFHMCP) to display the first page of a message originated at the terminal if CTRL=RETAIN was specified in the BMS request. DFHTPR reads from the terminal and processes paging commands until other than a paging command is entered.
  3. DFHTPR uses storage control to:
    • Acquire and free message control blocks (MCBs)
    • Free message control record (MCR) storage
    • Acquire storage for information and error messages to be sent to the destination terminal and the master terminal
    • Free an automatic initiate descriptor (AID) taken off the AID chain
    • Acquire and free storage for a route list constructed in response to a COPY command entered at a terminal
    • Acquire a TIOA into which to place a device-independent page when performing the COPY function.
  4. Temporary-storage control is used to retrieve and replace MCRs and to retrieve and purge pages.
  5. Basic mapping support is used to display error and information messages at a requesting terminal, and to send a page to the destination terminal in the COPY function.
  6. Task control is used to retain exclusive control of an MCR while it is being updated.
  7. DFHTPR communicates with interval control during error processing when a temporary-storage identification error is returned while attempting to retrieve an MCR. Up to four retries (each consisting of a one-second wait followed by another attempt to read the MCR) are performed. (The error may be due to the fact that an MCR has been temporarily released because another task is updating it. If so, the situation may correct itself, and a retry is successful.)
  8. Terminal control is used to read in the next portion of terminal input after a page or information message is sent to the terminal when a SEND PAGE request with CTRL=RETAIN was specified.
  9. Transient data control is used to send error or information messages to the master terminal.
  10. The terminal output macro (DFHTOM) is issued to provide an open subroutine that puts a completed page out to the terminal.

DFHTPS (terminal page scheduling program)

The terminal page scheduling program (DFHTPS) is invoked for each terminal type to which a BMS logical message built with SEND MAP PAGING or SEND TEXT PAGING is to be sent. For each terminal designated by the originating application program, DFHTPR is scheduled to display the first page of the logical message if the terminal is in paging status, or the complete message if it is in autopage status.

[[ Contents Previous Page | Next Page Index ]]