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:
- E$ for minimum function
- A$ for standard function
- 1$ for full function.
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:
- DFHMCP* (mapping control program).
Additional modules used by both standard and full-function versions
of BMS are:
- DFHDSB* (data stream build)
- DFHIIP* (non-3270 input mapping)
- DFHMCX (fast path module)
- DFHML1 (LU1 printer mapping)
- DFHM32* (3270 mapping)
- DFHPBP* (page build program)
- DFHPHP (partition handling program)
- DFHRLR* (route list resolution)
- DFHTPP* (terminal page processor).
Additional modules used only by full-function BMS are:
- DFHTPQ (terminal page cleanup)
- DFHTPR (terminal page retrieval)
- DFHTPS (terminal page scheduling).
A detailed description of each of these modules follows in alphabetic
order of module name.
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:
- Truncates trailing blanks within data lines
- Substitutes strings of physical device control characters for
logical new-line characters that terminate each line of data
- Provides a format management header (FMH) for some VTAM®-supported
devices
- Allows horizontal and vertical tab processing.
Figure 6 shows the relationships between the components
of data stream build.
Notes:
- DFHDSB is entered from the page build program to process the page
buffer.
- 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).
- For SEND TEXT commands without the NOEDIT option, the appropriate
device control characters for the target device are selected for substitution.
- The page buffer containing the data to be compressed is located
through the address stored at TTPPGBUF.
- After compression of the page buffer data, control returns to
DFHPBP, which calls DFHTPP to provide disposition of the page.
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.
Notes:
- 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.
- The map required for an operation is either passed by the application
program or loaded by DFHMCP.
- DFHIIP communicates with storage control to obtain and release
buffers for mapping operations.
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.
Notes:
- This program is entered when an application program issues a request
for basic mapping support services.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- DFHMCP communicates with task control to schedule transaction
CSPQ for every terminal that is to receive a routed message to be
delivered immediately.
- Transient data control is used to send error and information messages
to the master terminal.
- 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.
- Non-3270 input mapping (DFHIIP) is used to process RECEIVE MAP
requests for a terminal other than an IBM 3270 Information Display
System.
- The mapping control program calls DFHMCX if the request is eligible
for the BMS fast-path module.
- 3270 mapping (DFHM32) is used to process RECEIVE MAP requests
for an IBM 3270 Information Display System.
- Page and text build (DFHPBP) processes the following output requests:
- 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.
- 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.
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.
Notes:
- 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.
- Maps are either passed by the application program or loaded by
DFHMCP.
- The address of a terminal input/output area (TIOA) is supplied
by the application program for all requests.
- DFHML1 communicates with storage control to obtain and release
storage for MCAs and for the mapped data.
- All requests (see note 1) are sent to a designated
destination by the terminal page processor (DFHTPP), after the return
of control to DFHPBP.
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.
Notes:
- 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.
- 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.
- Maps are either passed by the application program or loaded by
DFHMCP.
- DFHM32 communicates with storage control to obtain and release
storage for MCAs and for the mapped data.
- All output requests (see note 1) are sent to
a designated destination by the terminal page processor (DFHTPP) after
control is returned to DFHPBP.
The 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.
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.
Figure 11 shows the relationships between the components
of page and text build.
Notes:
- 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.
- 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.
- OSPTR2, OSPTR3, ..., OSPTR7 contain request data from the DFHBMS
macro expansion. OSPRC1 and OSPRC3 contain return codes to be examined
by DFHMCP.
- 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.
- 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.
- DFHPBP requests program manager to terminate a transaction abnormally
(ABEND) if certain errors occur that cannot be corrected.
- 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.
- 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.
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:
- PHPPSI tests whether there is a partition set in storage. If there is and it is not the required
partition set, that partition set is deleted. When no partition set
is in storage, an attempt is made to load the appropriate partition
set.
- PHPPSC builds a data stream to destroy any partitions that may already be loaded on the terminal, creates
the partition set designated by the application partition set, and
sets the name of the partition set in the TCTTE to be the name of
the application partition set.
- PHPPIN extracts the AID, cursor address, and partition ID. The AID and cursor address are put in
the TCTTE, and the partition ID is converted to a partition name and
returned to the caller. A check is made that the partition ID is a
member of the application partition set.
- PHPPXE sends a data stream to a terminal to activate the appropriate partition and sends an error
message to any error message partition if input arrived from an unexpected
partition.
Figure 12 shows the relationships between the components
of partition handling.
Notes:
- DFHPHP is called by the mapping control program (DFHMCP) and by
the terminal output macro (DFHTOM).
- PHPPSI refers to OSPWA to check whether a partition set is loaded.
- PHPPSI communicates with program manager to load the partition
set.
- PHPPSI puts the name of the partition set in TPE (terminal partition
extension) as the application partition set.
- PHPPSC calls storage control to acquire a TIOA in which to build
and free the original TIOA.
- 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.
- PHPPIN places the AID and the cursor address in the TCTTE.
- 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.
- PHPPSC references the partition set object to build the partition
creation data stream.
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.
Notes:
- DFHRLR is called by the mapping control program (DFHMCP) to determine
the grouping of terminal destinations.
- 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.
- If data is not to be routed, a direct TTP is built for the originating
terminal and its address is placed in OSPDTTP.
- DFHRLR communicates with storage control to acquire storage for
the TTP.
- Program manager services are requested by means of an ABEND command
if errors occur that cannot be corrected.
The terminal page processor (DFHTPP) directs completed pages to
a destination specified in the BMS output request:
- SEND MAP or SEND TEXT sends to the originating terminal
- SEND MAP PAGING or SEND TEXT PAGING directs to temporary storage
- SEND MAP SET or SEND TEXT SET directs to a list of completed pages
that are returned to the application program.
Figure 14 shows the relationships between the terminal
page processor and other components in response to BMS output requests.
Notes:
- 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.
- 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.
- Temporary-storage control is used to store pages and the message
control record (MCR) for messages stored on temporary storage.
- 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.
- 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.
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.
Notes:
- 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).
- DFHTPQ communicates with the allocation program (DFHALP) to locate
and unchain AIDs.
- DFHTPQ communicates with storage control to free AIDs that have
been purged and to acquire storage for notification messages.
- Transient data control is used to send notification messages.
- Interval control is used to obtain the current time
and to reinitiate this task (DFHTPQ).
- DFHTPQ communicates with temporary-storage control to retrieve
and replace message control records (MCRs) and to purge messages.
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.
Notes:
- 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.
- 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.
- 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.
- Temporary-storage control is used to retrieve and replace MCRs
and to retrieve and purge pages.
- 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.
- Task control is used to retain exclusive control of an MCR while
it is being updated.
- 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.)
- 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.
- Transient data control is used to send error or information messages
to the master terminal.
- The terminal output macro (DFHTOM) is issued to provide an open
subroutine that puts a completed page out to the terminal.
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 ]]