z/OS TSO/E Programming Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Building a Second Level Informational Chain

z/OS TSO/E Programming Services
SA32-0973-00

PUTLINE can accept two levels of informational messages at each execution of the service routine. It formats the first-level message and puts it out to the terminal. The second-level message is formatted and a copy of it is placed on an internal chain in shared subpool 78. This internal chain, the second level informational chain, is maintained by the I/O service routines for the duration of one command or subCommand Processor. You can use the PUTLINE service routine to purge this chain or to put it out to the terminal in its entirety.

To purge the chain without putting it out to the terminal, you must turn on the high-order bit in the first byte (ECTMSGF) of the third word of the environment control table (ECT). The ECT is pointed to by the second word of the input/output parameter list, and can be mapped by the IKJECT DSECT. The next time any chaining or unchaining is requested with PUTLINE or PUTGET, the second-level informational chain will be eliminated.

To put the entire chain out to the terminal, use the PUTLINE macro instruction and place a zero address where the output line address is normally required. This will cause the PUTLINE service routine to write the chain to the terminal and eliminate the internal chain. You will normally use this procedure only if your attention exit routine is using the PUTLINE macro instruction to process a question mark entered from the terminal.

Figure 2 is an example of the code required to build a second-level informational chain. It executes the PUTLINE service routine by using two different execute form macro instructions to modify the PUTLINE parameter block built by the list form of the PUTLINE macro instruction.

The code shown puts two messages out to the terminal and places two second-level messages on an internal chain. It then executes a third execute form of the PUTLINE macro instruction with a zero OUTPUT address to put the second level chain out to the terminal.

Note that the offset value for the primary message segment must always be zero, and when placing second-level messages on an internal chain, the offset value for the second-level message must also be zero. Note also that you do not place a message identifier on a second-level message.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014