Conversely, pressing the PAl key or issuing the "BEGIN" command returns con­
trol to the programmable operator facility. From this environment, issuing SET
DEBUG OFF causes the programmable operator facility to return to its normal
function of trapping messages.
The Action Routine Interface
Action Routine Call Interface
Action routines are loaded by the programmable operator facility as CMS nucleus
extensions. As a result, they must be invoked by the programmable operator facili­
ty as CMS commands via SVC 202. Also, addresses cannot be resolved between
separate nucleus extensions; they must be passed dynamically if they are desired.
Action Routine Parameter Interface
An installation can write additional action routines in Basic Assembler Language.
Action routines may also be written as EXECs. Programs written in Basic Assem­
bler Language can access the parameter list built by the programmable operator
facility. (The programmable operator parameters are available in a different fash­
ion for EXEC action routines--see below.) The parameter list contains a list of
addresses pointing to data that may be significant to the action routine invoked.
The programmable operator facility then passes the address of the list as a parame­
ter when it invokes the required action routine. See VM / SP Data Areas and Con­
trol Block Logic, Volume 2 for descriptions of the DSECTs mentioned below.
The register conventions used for invoking an action routine are:
Register 1 points to a list of eight-byte tokens (CMS PLIST) containing the
following information: TOKEN 1 Contains the command name (action routine name). TOKEN 2 Contains two fullwords. These fullwords contain the
following:
Fullword 1 -
Fullword 2-
Contains the address of the PROP common
area as described by the PROPCOM DSECT.
Contains the address of a list of addresses that
point to data that may be needed by the
action routine. This list is described by the
PARMLIST DSECT. TOKEN 3 Contains eight X'FF's to mark the end of the parameter list.
Register 13 points to a standard as eighteen word save area.
Register 14 points to the address that receives control when the action rou­
tine completes processing, i.e. the address to which the action routine must
return control.
Register 15 points to the action routine entry point and may be used as a
base register.
The Programmable Operator Facility 453
Figure 58 offers a graphic representation of the previous discussion. It illus­
trates the data areas that can be accessed through Register 1.
o <-TOKEN 1 Register 1 >
Command Name (Action
Routine Name) Fullword 1 ----> 8 '----------' <-TOKEN 2
Fullword 2 ----> C 10 programmable
operator
common area
pointer
address list
pointer <-TOKEN 3 programmable
operator
common
area
8X'FF' I Described by PROPCOM DSEeT
18 PLIST of three
8-byte tokens
Data Item Length 0 V
L> I Message text 240 bytes
4
L> I Message length 4 bytes
8
L>lMessage I text (tokenized) 256 bytes
C
L> I ID of network machine 8 bytes 10 L> I Requester's userid 8 bytes
14
L> Requester's nodeid 8 bytes
18
L> Programmable operator's userid 8 bytes
lC
L> Programmable operator's nodeid 8 bytes 20 L> Logical operator's userid 8 bytes
24
L> Logical operator's nodeid 8 bytes
28
L>
f>filename
Routing table fileid 18 bytes >filetype
2C
L>
>filemode Parameter from Routing Table 8 bytes 30 I L-> Message type (IUCV msg. class) 1 byte
34 I L->2Action routine name 8 bytes
38
J
Address List described by PARMLIST DSECT
lIn addition to the original message text, the message text is also
provided in CMS tokenized form (eight-byte tokens followed by 8X'FF').
2The high order bit (X'80') of the last fullword of this list of
addresses is set to one to indicate that it is the last entry
in the list according to standard as linkage conventions.
Figure 58. Register Conventions for Invoking an Action Routine
454 VM/SP System Programmer's Guide
8
8
2
bytes
bytes
bytes
Previous Page Next Page