Input register information
Before issuing the SET option of the ESPIE macro, the caller does
not have to place any information into any register unless using it
in register notation for a particular parameter, or using it as a
base register.
Output register information
When control returns to the caller, the general purpose registers
(GPRs) contain the following information: - Register
- Contents
- 0
- Used as a work register by the system
- 1
- Token representing the previously active SPIE/ESPIE environment
- 2-13
- Unchanged
- 14
- Used as a work register by the system
- 15
- Return code of 0
When control returns to the caller, the access registers (ARs)
contain: - Register
- Contents
- 0-1
- Used as work registers by the system
- 2-13
- Unchanged
- 14-15
- Used as work registers by the system
Some callers depend on register contents remaining the same before
and after issuing a service. If the system changes the contents of
registers on which the caller depends, the caller must save them before
issuing the service, and restore them after the system returns control.
Syntax
The standard form of the ESPIE macro with the SET option is written
as follows:
Syntax |
Description |
---|
|
|
name |
name: Symbol. Begin name in
column 1. |
|
|
␢ |
One or more blanks must precede ESPIE. |
|
|
ESPIE |
|
|
|
␢ |
One or more blanks must follow ESPIE. |
|
|
SET |
|
|
|
,exit addr |
exit addr: A-type address,
or register (2) - (12). |
|
|
,(interruptions) |
interruptions: Decimal digits
1-15 and expressed as: |
|
single values: (2, 3, 4, 7, 8, 9, 10)
ranges of values: ((2, 4), (7, 10))
combinations: (2, 3, 4, (7, 10))
|
|
|
,PARAM=list addr |
list addr: A-type address
or register (2) - (12). |
,PKM=SYSTEM_RULES |
Default: PKM=SYSTEM_RULES |
,PKM=TOS |
|
|
|
Parameters
The parameters are explained as follows:
- SET
- Indicates that an ESPIE environment is to be established.
- ,exit addr
- Specifies the address of the exit routine to be given control
when program interruptions of the type specified by interruptions occur.
The exit routine will receive control in the same addressing mode
as the issuer of the ESPIE macro.
- ,(interruptions)
- Indicates the interruption types that are being trapped. The
interruption types are:
- Number
- Interruption Type
- 1
- Operation
- 2
- Privileged operation
- 3
- Execute
- 4
- Protection
- 5
- Addressing
- 6
- Specification
- 7
- Data
- 8
- Fixed-point overflow (maskable)
- 9
- Fixed-point divide
- 10
- Decimal overflow (maskable)
- 11
- Decimal divide
- 12
- Exponent overflow
- 13
- Exponent underflow (maskable)
- 14
- Significance (maskable)
- 15
- Floating-point divide
These interruption types can be designated as one
or more single numbers, as one or more pairs of numbers (designating
ranges of values), or as any combination of the two forms. For example,
(4,8) indicates interruption types 4 and 8; ((4,8)) indicates interruption
types 4 through 8.
If a program interruption type is maskable,
the corresponding program mask bit in the PSW is set to 1. If a maskable
interruption is not specified, the corresponding bit in the PSW is
set to 0. Interruption types not specified above are handled by the
system. The system forces an abnormal end with the program check
as the completion code. If an ESTAE-type recovery routine is also
active, the SDWA indicates a system-forced abnormal end. The registers
at the time of the error are those of the system.
Note: For both
ESPIE and SPIE - If you are using vector instructions and an exception
of 8, 12, 13, 14, or 15 occurs, your recovery routine can check the
exception extension code (the first byte of the two-byte interruption
code in the EPIE or PIE) to determine whether the exception was a
vector or scalar type of exception.
- ,PARAM=list addr
- Specifies the fullword address of a parameter list that is to
be passed by the caller to the exit routine.
- ,PKM=SYSTEM_RULES
- ,PKM=TOS
- SYSTEM_RULES specifies that the system should determine the appropriate
PSW key mask for the ESPIE exit and resume point. TOS specifies that
the Time Of Set PKM should be propagated to the ESPIE exit and resume
point.
Example
Give control to an exit routine for interruption types 1 and 4.
EXIT is the location of the exit routine to be given control and
PARMLIST is the location of the user parameter list to be used by
the exit routine. ESPIE SET,EXIT,(1,4),PARAM=PARMLIST
ESPIE—List form
Use the list form of the ESPIE macro together with the execute
form of the macro for applications that require reentrant code. The
list form of the macro defines an area of storage, which the execute
form of the macro uses to store the parameters. The list form of ESPIE
is valid only for ESPIE SET.
Syntax
The list form of the ESPIE macro is written as follows:
Syntax |
Description |
---|
|
|
name |
name: Symbol. Begin name in
column 1. |
|
|
␢ |
One or more blanks must precede ESPIE. |
|
|
ESPIE |
|
|
|
␢ |
One or more blanks must follow ESPIE. |
|
|
SET |
|
|
|
,exit addr |
exit addr: A-type address. Note:
This parameter must be specified on either the list or the execute
form of the macro.
|
|
|
,(interruptions) |
interruptions: Decimal digit
1-15 and expressed as: |
|
single values: (2, 3, 4, 7, 8, 9, 10)
range of values: ((2, 4), (7, 10))
combinations: (2, 3, 4, (7, 10))
|
|
|
,PARAM=list addr |
list addr: A-type address. |
|
|
,MF=L |
|
|
|
Parameters
The parameters are explained under the standard form of ESPIE SET
with the following exception:
- ,MF=L
- Specifies the list form of the ESPIE macro.
Example
Build a nonexecutable problem program parameter list that will
transfer control to the exit routine, EXIT, for the interruption types
specified in the execute form of the macro. Provide the address of
the user parameter list, PARMLIST. LIST1 ESPIE SET,EXIT,,PARAM=PARMLIST,MF=L
ESPIE—Execute form
Use the execute form of the ESPIE macro together with the list
form of the macro for applications that require reentrant code. The
execute form of the macro stores the parameters into the storage area
defined by the list form. The execute form of ESPIE is valid only
for ESPIE SET.
Syntax
The execute form of the ESPIE macro is written as follows:
Syntax |
Description |
---|
|
|
name |
name: Symbol. Begin name in
column 1. |
|
|
␢ |
One or more blanks must precede ESPIE. |
|
|
ESPIE |
|
|
|
␢ |
One or more blanks must follow ESPIE. |
|
|
SET |
|
|
|
,exit addr |
exit addr: RX-type address
or register (2) - (12). Note: This parameter must be specified
on either the list or the execute form of the macro.
|
|
|
,(interruptions) |
interruptions: Decimal digit
1-15 and expressed as: |
|
single values: (2, 3, 4, 7, 8, 9, 10)
range of values: ((2, 4), (7, 10))
combinations: (2, 3, 4, (7, 10))
|
|
|
,PARAM=list addr |
list addr: RX-type address
or register (2) - (12). |
|
|
,MF=(E,ctrl addr) |
ctrl addr: RX-type address,
or register (1), (2) - (12). |
|
|
,PKM=SYSTEM_RULES |
Default: PKM=SYSTEM_RULES |
,PKM=TOS |
|
|
|
Parameters
The parameters are explained under the standard form of the ESPIE
macro with the following exception:
- ,MF=(E,ctrl addr)
- Specifies the execute form of the ESPIE macro.
Example
Give control to an installation exit routine for interruption types
1, 4, 6, 7, and 8. The exit routine address and the address of a
user parameter list for the exit routine are provided in a remote
control program parameter list at LIST1. ESPIE SET,,(1,4,(6,8)),MF=(E,LIST1)
|