The binder passes control to your message user exit routine just
prior to writing a message to the print data set (typically SYSPRINT).
The message is stored in a buffer and passed to your routine. The
exit routine can either prevent or allow the message to print.
When specifying this exit on STARTD, you provide the following
information by means of the
EXITS keyword: - The entry point address of the message exit routine.
- Optional user data that is passed directly to the exit without
being processed by the binder. This is typically used as an address
to dynamic storage when the binder is invoked by a reentrant program,
but can be a counter or other data.
- An address of a fullword containing an error severity level below
which the binder does not call your exit routine. For example, if
you code 8 in this word, the binder does not call your exit routine
for normal output, informational messages, or warning messages.
The binder passes a parameter list to the exit routine. Register
one contains the address of a list of addresses pointing to the following
data:
- The user data specified in the second word of the exit specification.
- A pointer to a varying-length character buffer that contains a
message. The length of the buffer is indicated in the first two bytes,
which are not included in this length. The length can include trailing
blanks.
- A halfword count of the number of lines in the buffer.
- A halfword count of the number of characters per line in the buffer.
- A 4-character message number extracted from the message text in
the buffer.
- A halfword severity code.
- A fullword reason code to be set by the exit routine.
- A fullword return code to be set by the exit routine.
The exit routine can examine the messages but should not modify
them. Before returning to the binder, your exit routine should set a return code for the
binder to control its next action as follows:
Return Code |
Explanation |
00 |
Continue processing as if the exit routine had
not been called. |
04 |
Suppress printing of the message. |