bdfp1m37 | Programming Concepts and Reference |
Use this macro to generate code to set up:
- A work block with output message transmission (OPMT) information
- A blanked-out line area (FMSLNA) of 64 bytes
- The code for activating the TPF or ALCS FMSG program, including:
- Saving the general registers
- Calculating the character count (UI2CNF).
Format
- label
- is a symbolic name assigned to the macro statement.
- WORKBLOCK
- specifies a data level that is free to set up the work block.
- WORKBLK
- specifies a data level that is free to set up the work block.
- level
- is the data level number. Do not use level number 2.
- OPMT=list
- specifies an OPMT parameter (UI2INC-UI2CNN), where list is
a 5-byte hexadecimal number. The hexadecimal number is used to set
indicators in the UI2PF structure starting at UI2INC-UI2CNN.
- ERROR
- specifies where to return control if an error occurs.
- R
- returns control to the calling program. Register 14 (R14) contains
the return code.
- E
- exits the program with a system error.
- BLOCKSIZE
- specifies the block size.
- BLKSIZE
- specifies the block size.
- size
- is one of the following block sizes:
- L1
- specifies a 381-byte block. This is the default when you do not
specify the SPLIT=Y parameter.
- L2
- specifies a 1055-byte block. This is the default when you specify
SPLIT=Y.
- SPLIT=Y
- generates code to support scrolling. The line number (1-7) is
set up in FMSHLN. This code (which also activates FMS3) is activated
only if WA0ET1 BIT 2 indicates an RO request (T-ENTRY).
- RELEASE
- cleans up and releases any storage obtained by previous iterations of the
FMSGS macro.
Entry Requirements
Normal Return
- The work block is set up and the line area is blanked out.
- R1 points to first available byte of the 64-byte line area
(FMSLNA).
- Register 2 (R2):
- Is the base of OPMT.
- Is unchanged if you do not specify ERROR=R.
- Contains minus one (-1) if you specify ERROR=R.
- The contents of R14-R0 and R3-R7 are unchanged unless an
error occurs.
- If you specify the RELEASE parameter:
- Any OMSG (and chains) on level 2 are released and the core blocks are no
longer held
- If you specify the WORKBLOCK parameter, that core block is released on
entry to the subroutine.
Error Return
The contents of R2 and R14 are changed if an error occurs. If you
specify ERROR=R and an error occurs, R14 contains the error code.
Programming Considerations
- If an exit to UIO is performed, do not use levels 1, 2, 4, 5, or 6 for a
work block because the UIO programs use these levels.
- This macro uses approximately 85 to 160 bytes of storage depending on the
options selected.
Examples
FMSGS WORKBLOCK=0
FMSGS WORKBLOCK=3,OPMT=18F2C80040
FMSGS WORKBLOCK=C,ERROR=R
FMSGS WORKBLOCK=C,SPLIT=Y
FMSGS WORKBLOCK=C,BLKSIZE=L2
FMSGS RELEASE
FMSGS RELEASE,WORKBLOCK=C
Related Macros
None.