Normally when a channel program ends, the ending
CCW or TCW address is stored in field IOBCMD31 or IOBCMDA depending
on the type of channel program. However, for certain types of errors,
the ending status of the channel program is unpredictable and the
ending address will be set to zero. Therefore, your program should
never assume that a valid ending address is always provided in the
IOB.
For CCW channel programs, the ending CCW address will be set to
zero when any of the following conditions occur:
- An interface control check, channel control check, or channel
data check has occurred and the ending address in the subchannel status
word (SCSW) is not valid
- A program check, protection check, or chaining check has occurred
- The ending CCW address was in a part of the channel program that
was modified by device dependent system code. If
device dependent system code needs to modify your
channel program, it does so in system related storage that is not
available to your program.
For zHPF channel programs:
- The ending TCW address will be set to zero when an interface control
check, channel control check, or channel data check has occurred and
the ending address in the SCSW is not valid.
- The ending DCW offset in the IOBE is more useful for determining
where the channel program ended than the TCW, since the DCW is analogous
to the CCW in zHPF channel programs. The ending DCW offset will not
be stored if the device did not send ending status containing a valid
DCW offset or the channel was unable to store the ending status. In this case, the flag indicating that the DCW offset is
valid will be off.