|
To define ISPXDT using the exit macros:
- Indicate the beginning of the exit entry definition section of
ISPXDT by coding one ISPMXED macro with the START operand. For example:
ISPMXED START
⋮
- Define the installation-wide exits you plan to use. Code the ISPMXLST
macro, listing the numeric codes for each user exit in ascending order,
enclosed within parentheses. This example shows that exit routines
will be installed at ISPF installation-wide exits 3, 7, and 14.
ISPMXED START
ISPMXLST (3,7,14)
⋮
If no operand is specified, a dummy ISPXDT is
built.
- For each user exit that you define on the ISPMXLST macro, use
the ISPMXDEF, ISPMEPT, and ISPMXEND macros to define one or more exit
routines. These three macros are a set and must be coded for each
user exit you identify.
- Code the ISPMXDEF macro with the exit ID as its operand.
- Code the ISPMEPT macro for each exit routine and, if required,
its data areas.
- Code the ISPMXEND macro to end the exit routine definitions for
this user exit.
In this example, three exit routines
are defined at user exit 7. The first two share a common data area
(DAREA015) and the third uses a different data area (DAREA027). ISPF
calls entry points EXPT7EP1, EXPT7EP2, and EXPT7EP3 in that order
unless one of the routines returns a return code of 12 or greater.
For example, if entry point EXPT7EP2 returns a return code of 12,
control returns to ISPF without executing entry point EXPT7EP3. Therefore,
if you define more than one exit routine at a given user exit, define
them in the correct order of priority.
ISPMXED START
ISPMXLST (3,7,14)
⋮
ISPMXDEF 7
ISPMEPT EXPT7EP1,DAREA015
ISPMEPT EXPT7EP2,DAREA015
ISPMEPT EXPT7EP3,DAREA027
ISPMXEND
⋮
If you use the ISPMXDEF macro to define an exit
ID that is not listed on the ISPMXLST macro, ISPF issues a warning
message. You can still use ISPXDT, but the user exit is defined. As
a result, you can easily disable a user exit by deleting its exit
ID on the ISPMXLST macro. However, for every exit point listed on
the ISPMXLST macro, there must be a corresponding ISPMXDEF macro.
- Indicate the end of the exit entry definition section of ISPXDT
by coding the END operand on the ISPMXED macro. For example:
ISPMXED START
ISPMXLST (3,7,14)
⋮
ISPMXED END
- Define the data areas used by the exit routines in the exit data
area definition section of ISPXDT. Indicate the start of this section
by using the START operand on the ISPMXDD macro. For example:
⋮
ISPMXED END
ISPMXDD START
⋮
- Use the ISPMDAD macro to define the name and size of each data
area defined on an ISPMEPT macro. Every data area referenced on an
ISPMEPT macro must be defined by an ISPMDAD macro.
This example
defines DAREA015 to be 100 bytes long. (ISPF rounds the length to
104 in this case.)
⋮
ISPMXDD START
ISPMDAD DAREA015,100
⋮
If you use the ISPMDAD macro to define a data
area that is not coded on an ISPMEPT macro, a warning message is issued
during assembly and storage for the area is not obtained during execution.
If none of your exit routines require a data area, you need not code
an ISPMDAD macro, but you must still code ISPMXDD START and ISPMXDD
END.
- Use the ISPMXDD macro to indicate the end of the exit data area
definition section. For example:
⋮
ISPMXDD START
ISPMDAD DAREA015,100
⋮
ISPMXDD END
|