Use this system macro to convert a tape status table (the ITSTB DSECT)
pointer of one type to a pointer of another type. There are 4 types of
pointers:
- Module number pointer
- Tape status table section 1 pointer, which provides access to device
address, volume serial number (VSN), symbolic tape name, and tape status
- Tape status table section 2 pointer, which provides access to error
counters, channel status words (CSWs), tape densities, device types, module
queue pointers, and error recovery information
- Tape status table section 3 pointer, which provides access to the main
storage copy of the tape label directory and tape label maintenance records,
and buffer control information.
Format
- label
- A symbolic name can be assigned to the macro statement.
- FROMTYPE
- Specifies the type of pointer to be converted.
- MODNUM
- Converts from a module number
- TSTB1
- Converts from a Tape Status Table section 1 pointer
- TSTB2
- Converts from a Tape Status Table section 2 pointer
- TSTB3
- Converts from a Tape Status Table section 3 pointer
- TOTYPE
- Specifies the type of pointer to which the given pointer is
converted.
- MODNUM
- Converts to a module number
- TSTB1
- Converts to a Tape Status Table section 1 pointer
- TSTB2
- Converts to a Tape Status Table section 2 pointer
- TSTB3
- Converts to a Tape Status Table section 3 pointer
- FROMADDR
- Specifies the fullword pointer to be converted. Parentheses
distinguish whether the specified register contains the pointer or the address
of the pointer.
- Rx
- Indicates the pointer is in the specified register
- (Rx)
- Indicates the register points to the specified pointer
- TOADDR
- Specifies the converted fullword pointer. Parentheses distinguish
whether the specified register contains the pointer or the address of the
pointer.
- Ry
- Indicates the pointer is in the specified register
- (Ry)
- Indicates the register points to the specified pointer
- WORKAREA
- Specifies a two word work area that can be used during the
conversion. Parentheses distinguish whether the register specifies an
even-odd pair or point to a doubleword location in storage.
- Rz
- Indicates an even-odd register pair
- (Rz)
- Indicates the register points to a doubleword in storage.
R0 cannot be specified for the WORKAREA parameter.
Entry Requirements
- R0 cannot be specified for the WORKAREA parameter.
- The same register cannot be specified for the WORKAREA and TOADDR
parameters.
- The registers specified for the WORKAREA and TOADDR parameters must
satisfy several conditions:
- If WORKAREA is Rx then TOADDR cannot be (Rx).
- If WORKAREA is Rx then TOADDR cannot be (Rx+1).
- If WORKAREA is (Rx) then TOADDR cannot be Rx.
- If WORKAREA is (Rx) then TOADDR cannot be (Rx).
Return Conditions
- The contents of the register pair or the doubleword specified by the
register of the WORKAREA parameter are unpredictable when this macro
ends.
- The contents of all registers (except for the WORKAREA register) are
preserved across this macro call.
Programming Considerations
- This macro can be run on any I-stream.
- This macro does not perform validity checking for input parameters.
Ensure that all values specified fall in acceptable ranges for the parameter
in question.
Examples
None.