gtpg2m5qGeneral Macros

WTOPC-Edit and Send System Message

This general macro edits and sends a message to the system operator or any other designated terminal. It constructs the message block and provides facilities for converting binary values into EBCDIC, decimal, or hexadecimal and for editing the message.

Each time WTOPC is called a single line or a block of text is associated with it. In the discussion that follows we assume each WTOPC is for a single line and use the term message lines to refer to lines or blocks.

The WTOPC macro functionally enhances the ROUTC, SENDC, or CSMP interface for system messages. The format of the message produced by the WTOPC macro is in the standard TPF system format:

xxxxnnnnl hh.mm.ss message text

Where:

xxxx
This is a 4-character message prefix denoting the origin of the message; (for example, VFAC, NETW). The prefix identifies the name of the program issuing the message (unsolicited) or the secondary action code of the operator command the message is in response to. Sometimes the package name is use for the prefix (for example MPIF for messages issued from the MPIF program package).

nnnn
This is a 4-digit number assigned to uniquely identify the message from others issued by the same package.

l
The following are the severity indicators:

I
Information

E
Error

W
Warning

A
Action required

T
Termination of function.

hh.mm.ss
This is the time stamp of when the message was issued

message text
This is the text of the message to be sent

Format







Notes:

  1. Allowed on CP invocations only and is required by them.

  2. Allowed on CP invocations only.







label
A symbolic name can be assigned to the macro statement.

BUFFA
This specifies the address of a buffer where the formatted message is to be copied. The message is copied into the indicated buffer, as well as being used as specified in the 'DISP=NONE' operand. The format of the BUFFA operand is:

address
The symbolic address of the buffer area.

(reg)
A register containing the address of the buffer area.

When the text is copied into the buffer, the length of the message text is inserted into the first byte of the buffer, and the remainder of the text is inserted in subsequent bytes.

CHAIN
This specifies whether chaining should take place for the current WTOPC call.

Use the CHAIN operand to link WTOPC calls together to produce an uninterrupted display of message lines in their original order. The format of the CHAIN operand is:

NO
Do Not chain WTOPC call.

YES
This WTOPC call is to be chained to a previous WTOPC call, if any, which also included a CHAIN=YES parameter (during a single ECB).

For example, if you code 3 WTOPC macros with CHAIN=YES on all three, ENDOFM=NO on the first two, and ENDOFM=YES on the last one, the display could be as follows:

CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the first line of the message
          00.00.00 This is the second line of the message
          00.00.00 This is the third (last) line of the message

Although this does not seem any different from the display using just the ENDOFM operand, there are several differences. CHAIN=YES prevents other output messages from interrupting a multiple line display and ensures the output lines appear in the same order that the WTOPC macros were issued. When used with the HEADER and ENDOFM operands, CHAIN=YES can be used to format long displays.

CHAIN=YES is NOT allowed when ECB=NO. In other words, CP code executing without an ECB cannot use the CHAIN parameter, but this does not mean that CP code cannot issue a multiple-line message. (Refer to the HEADER parameter to see how this is accomplished.) If CHAIN is coded with ECB=NO, it will be flagged and ignored.

Note:
CHAIN=YES and UNSOL=YES cannot be specified for the same WTOPC call.

COMP
Use the COMP operand when you do not want to display multiple blanks within your message text. The format of the COMP operand is:

NO
Do not remove multiple blanks from the message. This is the default if the COMP parameter is not specified.

YES
Remove multiple blanks from the message.

For example, if you code:

WTOPC TEXT='TOTAL     5',COMP=YES

the line is displayed as:

TOTAL 5

DISP=NONE
The DISP parameter specifies the output disposition of the edited line.

When DISP is not coded, the message text is built and sent to the designated terminal.

When the DISP parameter is coded, the only correct value for it is 'NONE'. 'DISP=NONE' specifies that no output occurs. The message is built, returned to the BUFFA area, and not sent. When 'DISP=NONE' is used, the BUFFA parameter must also be specified.

DOT
This specifies whether a period is to be placed at the end of the message.

NO
Period will not be placed at the end of the message. This is the default if the DOT parameter is not specified.

YES
Period will be placed at the end of the message.

For example, if you code:

WTOPC TEXT='COMPLETED',DOT=YES

the line displayed is:

COMPLETED.

EBROUT
This specifies whether WTOPC sends the message to the address contained in EBROUT.

YES
Send to the address contained in EBROUT. This is the default if the EBROUT parameter is not specified.

NO
Do not use EBROUT as one of the destinations.
Note:
If EBROUT=NO is coded, the ROUT parameter or the LEVEL parameter must also be coded.

ECB
This specifies whether CP code is running with or without an ECB. This option is not valid for E-type programs.

YES
The running CP code does have an ECB. This is the default when the ECB parameter is not specified.

NO
The running CP code does NOT have an ECB. CP code calling WTOPC with ECB=NO must be in SVM addressing mode.

CP code normally runs without an ECB. All WTOPC calls from the CP (as well as ECB=NO) must specify UNSOL=YES and XNUM=YES.

ECB creation time is used to identify each chained message, so a WTOPC called by CP code is not able to send chained messages. As a result, the existence or nonexistence of an ECB must be specified by the programmer.

Notes:

  1. It is still possible for CP code to send multiple-line displays. Refer to the HEADER parameter.

  2. If ECB=NO is coded, the ROUT parameter must also be coded.

ENDOFM
This specifies whether output message lines following the current message line are prefixed with the standard system header. If used with CHAIN=YES, ENDOFM also specifies whether the current message line is the end of the chain.

Use the ENDOFM operand when you want to suppress prefixing of the message lines following the current message line. The format of the ENDOFM operand is:

YES
Do not suppress prefixing of the following message lines. This is the default if the ENDOFM parameter is not specified.

NO
Suppress prefixing of message lines following.

For example, if you code ENDOFM=NO, the display will be as follows:

CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the first message line
          00.00.00 This is the second message line
          00.00.00 This is the third message line

Otherwise, if you code ENDOFM=YES (default value) or ENDOFMR=(R6) and R6 contains the value zero, the display will be as follows:

CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the first message line
CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the second message line
CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the third message line

ENDOFMR
This specifies a register the contents of which control whether message lines are prefixed. If the contents of the specified register are:

Nonzero, subsequent lines are not prefixed or

Zero, subsequent lines are prefixed.

If used with CHAIN=YES, ENDOFMR also specifies whether the current message line is the end of the chain.

Use the ENDOFMR operand when you want to suppress prefixing of the message lines following the current message line. The format of the ENDOFMR operand is:

(reg)
If register contains a value other than zero, prefixing of the message will be suppressed.

For example, if you code ENDOFMR=(R6) and R6 contains a value other than zero, the display will be as follows:

CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the first message line
          00.00.00 This is the second message line
          00.00.00 This is the third message line

If you code ENDOFMR=(R6) and R6 contains the value zero, the display will be as follows:

CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the first message line
CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the second message line
CSMP0097I 00.00.00 CPU-B SS-BSS  SSU-HPN  IS-01
xxxxnnnnl 00.00.00 This is the third message line

HEADER
This specifies whether or not the output message should contain the header created from the PREFIX(A), NUM(A), LET(A) and TIME operands. Also, for CP code with ECB=NO, specifies whether the output line should be prefixed with the standard system header.

Use the HEADER operand if the header is to be suppressed. The format of the HEADER operand is:

YES
Include header in the output message. This is the default if the HEADER parameter is not specified. For CP code with ECB=NO, indicate that this line should be prefixed.

NO
Send message without a header. For CP code with ECB=NO, indicate that this line should not be prefixed.

For example, if you code:

WTOPC TEXT='FIRST WTOPC MESSAGE',PREFIX =WTOP,NUM=01,LET=I
WTOPC TEXT='SECOND WTOPC MESSAGE',HEADER=NO

The following lines are displayed:

WTOP0001I 00:00:00 FIRST WTOPC MESSAGE
SECOND WTOPC MESSAGE

LET
This specifies the message severity indicator letter.

literal
Literal message severity indicator letter:

I
Information

E
Error

W
Warning

A
Action required

T
Termination of function

(reg)
A register containing the indicator letter in bits 24-31.

LETA
This specifies the address of the message severity indicator letter.

label
The symbolic address of the severity indicator letter.

(reg)
A register containing the address of the severity indicator letter.

Note:
If LET or LETA are not specified and HEADER=YES, the default LET=I is used.

LEVEL
This specifies the data level of the message block containing the text. This operand is not valid if WTOPC is issued from the control program.

Use the LEVEL operand to pass the text in a 381-byte message block in AMSG (AM0SG) format. The output text should be in a 381-byte block and the maximum text count must not exceed 335 (UI0TMX).

The message destination is based on the address in the message and routing codes specified by the ROUT parameter, if any. EBROUT is not used. No text manipulation is performed, therefore the following operands will be considered invalid when the LEVEL operand is coded; COMP, DOT, SUB, DISP, BUFFA, MF, TEXT, TEXTA, and ECB. WTOPC returns to the user with the message block detached.

Dx
A data level, D0-DF, with the message block.

MF
Use the MF operand to specify a work area other than the one set up by WTOPC.

Note:
The address specified should always be a work area outside the program so that the code is reentrant. For CP code, the work area should be carved out of the stack area. The default work area for C-type programs without an ECB is inline.

NEXTPAGE=label2
This specifies the name of the label in the code that should receive control when an operator issues the ZPAGE command. If no label is specified, control is passed to the next sequential instruction.
Note:
A value can be specified for this parameter only when PAGE=YES.

NUM
This specifies the number assigned to the message and is used with the XNUM parameter.

When XNUM=NO is coded, the valid range for NUM is decimal 1-255.

When XNUM=YES is coded, the valid range is decimal 1-9999.

literal
Literal message number.

(reg)
A register containing a binary number that will be converted from binary to decimal.

When XNUM=NO, the binary number is assumed to be in bits 24-31.

When XNUM=YES, the binary number is assumed to be in bits 16-31.

NUMA
This specifies the address of a binary field containing the number assigned to the message. It is used with the XNUM parameter because

when XNUM=NO, NUMA must specify a 1-byte field, and

when XNUM=YES, NUMA must specify a 2-byte field.

label
The symbolic address of the message number.

(reg)
A register containing the address of the message number.

Note:
If neither NUM nor NUMA is specified and HEADER=YES, the default NUM=1 is used.

PAGE=NO|YES
This specifies whether to display the ENTER ZPAGE TO CONTINUE message and suspend the ECB when the number of lines in the message exceeds the size of the WTOPC output page. In this case, the operator must issue the ZPAGE command in order to continue displaying the message.
Note:
If PAGE=YES, then CHAIN=YES and ECB=YES must also be specified.

PAGESTOP=label
This specifies the name of the label in the code that should receive control if:

When this label receives control, the program should not issue any more output.

Notes:

  1. A value must be specified for this parameter when PAGE=YES.

  2. Since the ECB is being suspended during processing of a PAGESTOP, the ECB must NOT be holding any resources (gained through functions such as FIWHC, CORHC, and LOCKC). Holding resources could result in a lock out condition.

PREFIX
This specifies the 4-character message prefix.

literal
The literal message prefix.

(reg)
A register containing the message prefix.

Use the PREFIX operand to precede the message with four characters denoting its origin.

For example, if you code:

WTOPC TEXT='OUTPUT MESSAGE',PREFIX=CVAD,NUM=01,LET=I,...
WTOPC TEXT='OUTPUT MESSAGE 2',PREFIX=(R7),NUM=02,LET=I,...

where CVAD is the desired message prefix and R7 contains X'C3E5D1C3' (C'CVJC'), the following lines are displayed:

CVAD0001I 00.00.00 OUTPUT MESSAGE 1
CVJC0002I 00.00.00 OUTPUT MESSAGE 2

PREFIXA
This specifies the address of a 4-character field containing the message prefix.

label
The symbolic address of the message prefix.

(reg)
A register containing the address of the message prefix.

Use the PREFIXA operand to precede the message with four characters denoting its origin.

For example, if you code the following:

WTOPC TEXT='OUTPUT MESSAGE 1',PREFIXA=PRFIX,NUM=01,LET=I,...
WTOPC TEXT='OUTPUT MESSAGE 2',PREFIXA=EBW068,NUM=02,LET=I,...
WTOPC TEXT='OUTPUT MESSAGE 3',PREFIXA=(R6),NUM=03,LET=I,...

where:

PRFIX DC CL4'CVLC',

EBW068 contains X'C3E5D8C3' (C'CVQC'), and

R6 contains the address of a 4-byte, character field containing X'C3E5D4C7' (C'CVMG')

the following lines are displayed:

CVLC0001I 00.00.00 OUTPUT MESSAGE 1
CVQC0002I 00.00.00 OUTPUT MESSAGE 2
CVMG0003I 00.00.00 OUTPUT MESSAGE 3
Note:
If either PREFIX or PREFIXA are not specified and HEADER=YES, the default will be the program name, PREFIXA=4(R8). This is the TPF system standard for message identifiers.

ROUT=code
This specifies which functional support console (FSC) will receive the message. Valid FSC names for this parameter are defined in the RTCEQ macro.

Use the ROUT operand to specify specific functional support consoles to which the message should be sent. You may specify either the mnemonic, as defined in RTCEQ, or the actual functional support console (1-16).

ROUT=(routing_code1,...,routing_coden...)

Routing codes specified on the WTOPC macro are in addition to any functional support console (FSC) bits set upon entry.

SUB
This specifies a substitution list describing the conversions to be performed on the message.

The SUB parameter specifies the type of substitution performed on portions of the message indicated by periods. For each set of periods, specify the type of substitution and the value to be substituted or its address. If the message text does not contain periods, no substitution is performed.

You can specify the SUB parameter in one of the following formats:

The following describes each of the possible substitution pairs. These descriptions are followed by information about length specification and multiple substitution lists.

HEX,(reg)
Converts the value in the specified register to graphic hexadecimal format and substitutes it in the message text. If you code fewer than eight consecutive periods in the message text, then leading digits are truncated; leading zeros are not suppressed.

For example, if register 3 contains the value C0031FC8, the following macro statement:

WTOPC TEXT='VALUE = ...',SUB=(HEX,(R3))

results in the display:

VALUE = FC8

HEX,expression
Converts the given expression to graphic hexadecimal format and substitutes it in the message text. The variable expression, may be a symbolic address or a symbol equate; it is evaluated by means of a LOAD ADDRESS (LA) instruction. For example, if your program has a label BUFF1, the following macro statement:
WTOPC TEXT='BUFFER IS LOCATED AT ......',SUB=(HEX,BUFF1)

can result in the display:

BUFFER IS LOCATED AT 0201AC

If you code fewer than eight periods in the message text, leading digits are truncated; leading zeros are not suppressed.

DEC,(reg)
Converts the value in the specified register into graphic decimal format and substitutes it in the message text. Leading zeros are suppressed. If the number is negative, a leading minus sign is inserted. For example, if register 3 contains the decimal value 10,345, the following macro statement:
WTOPC TEXT='REG 3 = ......',SUB=(DEC,(R3))

results in the display:

REG 3 = 10345

DEC,expression
Converts the given expression to graphic decimal format and substitutes it in the message text. The variable expression may be a symbolic label in your program or a symbolic equate. For example, assume your program contains the following statement
VALUE      EQU    2003

In this example, the following macro statement:

WTOPC TEXT='VALUE IS ......',SUB=(DEC,VALUE+5)

results in the display:

VALUE IS 2008

HEXA,address
Converts the fullword at the specified address to graphic hexadecimal format and substitutes it in the message text. If you code fewer than eight periods in the message text, leading digits are truncated; leading zeros are not removed. For example, if you code the following macro statement, the last five hexadecimal digits of the fullword at the label CODE are substituted into the message text.
WTOPC TEXT='HEX VALUE IS .....',SUB=(HEXA,CODE)

HEXA,(reg)
Converts the fullword at the address indicated in the specified register into graphic hexadecimal format and substitutes it in the message text. For example, if you code the following macro statement, the last six hexadecimal digits of the fullword the address of which is in register 5 are substituted in the message text.
WTOPC TEXT='REGISTER 5 - ......',SUB=(HEXA,(R5))

If you code fewer than eight digits, leading digits are truncated; leading zeros are not suppressed.

DECA,address
Converts the fullword at the specified address to graphic decimal format. Leading zeros are suppressed; if the number is negative, a minus sign is inserted. For example, if you code the following macro statement, the fullword at the location COUNT is converted to graphic decimal format and substituted in the message text.
WTOPC TEXT='COUNT = ......',SUB=(DECA,COUNT)

DECA,(reg)
Converts the fullword at the address specified in the indicated register into graphic decimal format and substitutes it in the message text. For example, the following macro statement causes the value in the fullword the address of which is in register 3 to be displayed in graphic decimal format.
WTOPC TEXT='SUM = ..........',SUB=(DECA,(3))

DEC8A,address
Converts the 8-byte field at the address specified to graphic decimal format and substitutes it in the message text. Leading zeros are suppressed; a blank is inserted every 3 digits going from right to left; if the number is negative, a minus sign is inserted. For example, the following macro statements cause the value in the 8-byte field to be displayed in graphic decimal format.
BIGNUM DC XL8'00000001FFFFFFFF'
WTOPC TEXT='SUM = ..........................',SUB=(DEC8A,BIGNUM)

results in the display:

SUM =              8 589 934 591

DEC8A,(reg)
Converts the 8-byte field at the address specified in the register indicated into graphic decimal format and substitutes it in the message text. Leading zeros are suppressed; a blank is inserted every 3 digits going from right to left; if the number is negative, a minus sign is inserted. For example, the following macro statements cause the value in the 8-byte field (the address of which is in register 3) to be displayed in graphic decimal format.
NUMBER DC XL8'0000000000001000'
WTOPC TEXT='SUM = ..........................',SUB=(DEC8A,NUMBER),COMP=YES

results in the display:

SUM = 4 096

HEX4A,address
Converts the data at the specified address to graphic hexadecimal format, and inserts a blank character following every 4 bytes ( 8 characters of output). The data to be converted does not have to be on a fullword boundary.

When you code periods in the message text for substitution, you must code sufficient periods to allow for the blanks. Thus, to display 8 bytes of information (16 hexadecimal digits), you must code 17 periods in the message text.

For example, to display 7 bytes of hexadecimal data beginning at location STOR in your program, you can code the following:

WTOPC TEXT='STOR: ...............',SUB=(HEX4A,STOR)

This results in the following display:

STOR: 0A23F115 78ACFE
Note:
15 periods were coded in the message text, to allow for the blank following the first 4 bytes displayed.

HEX4A,(reg)
Converts the data at the address indicated in the specified register to graphic hexadecimal format and inserts a blank character following every 4 bytes displayed (8 characters of output).

When you code the message text for the substitution, you must code sufficient periods to allow for the blank characters to be inserted.

For example, the following macro statement:

WTOPC TEXT='....................',SUB=(HEX4A,(R6))

results in the display of the first 9 bytes at the address in register 6, in the following format:

hhhhhhhh hhhhhhhh hh

HEXBA,address
Converts the data at the specified address to graphic hexadecimal format and displays the output contiguously; that is, blank characters are not inserted. The data to be converted does not have to be on a fullword boundary.

For example, to display 7 bytes of hexadecimal data beginning at location STOR in your program, you can code the following:

WTOPC TEXT='STOR: ..............',SUB=(HEXBA,STOR)

This results in the following display:

STOR: 0A23F11578ACFE

HEXBA,(reg)
Converts the data at the address indicated in the specified register to graphic hexadecimal format and displays the output contiguously; that is, blank characters are not inserted.

For example, the following macro statement:

WTOPC TEXT='..................',SUB=(HEXBA,(R6))

results in the display of the first 9 bytes at the address in register 6, in the following format:

hhhhhhhhhhhhhhhhhh

CHARA,address
Substitutes the character data at the specified address into the message text. For example, the following macro statement:
WTOPC TEXT='NAME IS ''...........''',SUB=(CHARA,NAME)

causes the 10 characters at location name to be substituted into the message text.

CHARA,(reg)
Substitutes the character data at the address indicated in the specified register into the message text. For example, consider the following macro statement:
WTOPC TEXT='CODE IS ....',SUB=(CHARA,(R7))

In this example, the first 4 characters at the address indicated in register 7 are substituted in the message line.

CHAR8A,address
Substitutes the character data at the specified address into the message text, and inserts a blank character following each 8 characters of output.

CHAR8A,(reg)
Substitutes the character data at the address indicated in the specified register and inserts a blank character following each eight characters of output.

Specifying the Length for WTOPC Macro Substitution

In all the examples shown, the length of the argument being substituted was determined by the number of periods in the message text. The number of periods indicated the size of the output field, and indirectly determined the size of the input data area.

For hexadecimal and decimal substitutions, the input data is truncated on the left. To ensure that a decimal number will never be truncated, you can code 10 periods (11 for negative numbers) in the message text where it will be substituted. For hexadecimal data, code 8 periods to ensure that no characters are truncated when a fullword is substituted.

When you are coding substitution lists with the CHARA, CHAR8A, HEX4A, and HEXBA options, however, you can specify the length of the input data field. To do so, code the SUB operand as follows:

SUB=(type,(address,length))

Both address and length may be specified using register notation. For example:

SUB=(HEX4A,(LOC,(R4)))

shows that the characters at location LOC are substituted into the message text; the number of characters is determined by the value contained in register 4, but it cannot be larger than the number of periods coded in the message text.

You can use this method in the special case where only 1 character is to be substituted. Since you must always code at least two periods to indicate that substitution is to be performed, you can code two periods and specify a length of 1, as follows:

WTOPC TEXT='INVALID MODE LETTER ..',SUB=(CHARA,(PLIST+24,1))

Specifying Multiple Substitution Lists

When you want to make several substitutions in the same line, you must enter a substitution list for each set of periods in the message text. For example,

WTOPC TEXT='VALUES ARE ..... AND ......',SUB=(DEC,(R3),HEXA,LOC)

might generate a line as follows:

VALUES ARE -45 AND FFE3C2.
Note:
If the default work area is used to build the parameter list, coding an excessive number of substitutions will overrun the work area and cause a warning message to be generated. To calculate how many bytes will be needed for the work area see Programming Considerations.

TEXT='text'
Use the TEXT operand to specify the exact text of the message on the macro instruction. The message text must appear within single quotation marks, as follows:
WTOPC TEXT='message text'

If you want a single quotation mark to appear within the actual message text, you must code two of them.

Text specified on the WTOPC macro may be edited so that multiple blanks appear as only a single blank, and a period may be placed at the end of the line, for example:

TEXT='IT ISN''T READY'

will result in:

IT ISN'T READY.

TEXTA
This specifies the address of the message text.

label
The symbolic address of the message text.

(reg)
A register contains address of the message text.

Use the TEXTA operand when you want to send a message contained in a buffer. You may specify either a symbolic address or use register notation. In either case, the first byte at the address specified must contain the length of the message text, for example:

WTOPC TEXTA=MESSAGE

where MESSAGE must be defined as follows:

MESSAGE  DC    AL1(MSGLEN-MESSAGE-1),AL1(#CAR)
DC    C'LINE ONE',AL1(#CAR)
DC    C'LINE TWO'
MSGLEN   EQU   *

will produce:

LINE ONE
LINE TWO

Note:
There are 2 additional macros that help the generation of message text for WTOPC output. These macros should be used whenever possible.

GENMSG
This macro can be used to generate message text, number, and letter data, and is handy for defining message text tables. See GENMSG-Generate Message Table for WTOPC for more information.

DCTMSG
This is a dsect that defines the data required by GENMSG. Tags in this dsect can be used with the TEXTA, NUMA, and LETA parameters.

TIME
This parameter specifies whether or not the message should include a time stamp and whether the time should reflect the system time or the subsystem time.

NO
Suppresses time stamping of system messages.

YES
The subsystem time will inserted between the message header and the message text. This is the default if the TIME parameter is not specified.

SYS
The system time will be inserted between the message header and the message text.

Notes:

  1. The TIME parameter is suppressed if HEADER=NO.

  2. A time stamp is a required parameter on an output message. If TIME=NO is specified, the WTOPC user should provide a time stamp as part of the output text.

UNSOL=NO|YES
This specifies whether messages being sent to remote terminals are sent as unsolicited messages (UNSOL=YES) or solicited messages (UNSOL=NO).

Unsolicited messages are handled by the unsolicited message package (UMP). Operators may need to issue the LOGU command to display unsolicited messages.

Note:
UNSOL=YES and CHAIN=YES cannot be specified for the same WTOPC call.

WKREG=reg
This parameter specifies a work register for WTOPC processing. It is only valid for CP programs and is mandatory for them. WTOPC uses R15 for a work register, which could conflict with CP code using R15 for its base register.

If R15 is available, code WKREG=R15.

If R15 is not available, code WKREG=Rx, where Rx is an available register.

XNUM
This specifies whether the message number will be passed in a 1- or 2-byte field.

YES
The message number is greater than 255. The number will then be passed in a 2-byte field.

NO
The number will be passed in a 1-byte field.

XNUM=NO is the default if the XNUM parameter is not specified.

This parameter is affected by any previous use of WTOPC or DCTMSG. For example: if DCTMSG is coded with XNUM=YES, the following WTOPC must code XNUM=YES or omit the XNUM parameter. In this case, omitting XNUM will result in XNUM=YES being the default.

Entry Requirements

Return Conditions

Programming Considerations

Examples