By testing for these conditions, your program can avoid using an ALET that would cause an ART program interruption.
For information about ALETs, EAXs, and EAX-authorization, see z/OS MVS Programming: Extended Addressability Guide.
Requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Problem state. |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | Any |
ASC mode: | Primary or AR |
Interrupt status: | Enabled or disabled for I/O and external interrupts |
Locks held: | The caller can be locked or unlocked. |
Control parameters: | Not applicable |
None.
None.
The input to the macro is the ALET and the caller's EAX.
None.
The TESTART macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede TESTART. |
TESTART | |
␢ | One or more blanks must follow TESTART. |
ALET=(access-reg) | access-reg: Access register (0) - (15). |
,EAX=(eax) | eax: Register (0) - (14). |
,CADS=YES | Default: CADS=NO |
,CADS=NO | |
The parameters are explained as follows:
If CADS=NO is specified, TESTART does not indicate whether or not the specified ALET is for a SCOPE=COMMON data space.
None.
When TESTART macro returns control to your program, GPR 15 contains a return code.
Hexadecimal Return Code | Meaning and Action |
---|---|
00 | Meaning: The specified ALET is 0. Action: None. |
04 | Meaning: The specified ALET represents
a valid entry on the DU-AL. If CADS=YES was specified on the call,
the ALET does not point to an entry for a SCOPE=COMMON
data space. Action: None required. However, you might take some action based upon your application. |
08 | Meaning: The specified ALET represents
a valid entry on the PASN-AL. Action: None required. However, you might take some action based upon your application. |
0C | Meaning: The specified ALET is 1. Action: None required. However, you might take some action based upon your application. |
10 | Meaning: The specified ALET and/or EAX
will cause an ART program interruption. Action: None required. However, you might take some action based upon your application. |
14 | Meaning: A system error occurred in the
TESTART service routine. Action: Retry the request. |
18 | Meaning: The program specified CADS=YES
on the call to TESTART. The specified ALET points to an entry for
a SCOPE=COMMON data space. Action: None required. However, you might take some action based upon your application. |
R1 EQU 1 General register 1
AR1 EQU 1 Access register 1
R15 EQU 15 General register 15
*
SLR R15,R15 Set a zero code for the ESTA
EREG AR1,AR1 Extract GPR/AR 1 from the linkage stack
ESTA R0,R15 Place the caller's EAX in R1 bits 0-15
TESTART ALET=(AR1),EAX=(R1) Test the ALET/EAX
CL R15,=X'00000004' Test the TESTART return code
BH ERROR Branch to error routine when the return
* code is greater than 4
R1 EQU 1 General register 1
AR1 EQU 1 Access register 1
R15 EQU 15 General register 15
*
SLR R15,R15 Set a zero code for the ESTA
EREG AR1,AR1 Extract GPR/AR 1 from the linkage stack
ESTA R0,R15 Place the caller's EAX in R1 bits 0-15
TESTART ALET=(AR1),EAX=(R1),CADS=YES Test the ALET/EAX
CL R15,=X'00000018' Test the TESTART return code
BE CADS_ALET Branch to CADS ALET routine processing