XCTL - Execute form

Two parameter lists are available in the XCTL macro: a control parameter list and an optional user parameter list. The control parameter list can be either inline or remote (that is, in an area you specifically obtained); the user parameter list must be remote.

Syntax

The execute form of the XCTL macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede XCTL.
   

XCTL

 
   
One or more blanks must follow XCTL.
   

   (reg1),
   (reg1,reg2),

reg1 and reg2: Decimal digits or RX-type addresses, and in the order 2 through 12.
   
   EP=entry name, entry name: Symbol.
   EPLOC=entry name addr, entry name addr: RX-type address or register (2) - (12).
   DE=list entry addr, list entry addr: RX-type address, or register (2) - (12).
   
   ,DCB=dcb addr, dcb addr: RX-type address, or register (2) - (12).
   
   ,PARAM=(parm), parm: RX-type address, or register (2) - (12).
   ,PARAM=(parm),VL=1, parm is one or more addresses, separated by commas. For example, PARAM=(parm,parm,parm)
   
   ,LSEARCH=NO, Default: LSEARCH=NO
   ,LSEARCH=YES,  
   
,MF=(E,user area) user area: RX-type address, or register (1) or (2) - (12).
,SF=(E,ctrl area) ctrl area: RX-type address, or register (2) - (12) or (15).
,MF=(E,user area),SF=(E,ctrl  
    area)  
   

Parameters

The parameters are explained under the standard form of the XCTL macro, with the following exceptions:

PARAM=(parm)
PARAM=(parm),VL=1
Specifies one or more parameters to be passed to the target module. XCTL builds the user parameter list consisting of a fullword address for each parameter in the order specified, placed at the location designated by MF=(E,user area). When the target module gets control, register 1 contains the address of the location designated by user area.

Use VL=1 if you are passing the target module a variable number of parameters. VL=1 causes the high-order bit of the last address parameter to be set to 1; the target module can check the last bit to find the end of the list.

LSEARCH=NO
LSEARCH=YES
Specifies whether (YES) or not (NO) you want the search limited to the job pack area and to the first library in the normal search sequence.
Note:
  1. Do not use register 1 to pass parameters to the target module unless you use XCTL and omit both LSEARCH and PARAM.
  2. If you code LSEARCH in either the list or execute form of the macro, you must code it in both.
,MF=(E,user area)
,SF=(E,ctrl area)
,MF=(E,user area),SF=(E,ctrl area)
Specifies the execute form of the XCTL macro.

Use MF=(E,user area) to specify the address of data you want the target module to receive in register 1. If you specify PARAM, MF=(E,user area) is required and identifies the remote location where you want XCTL to build the parameter list.

Use SF=(E,ctrl area) to point to a remote control parameter list. If you do not specify SF, XCTL builds the control parameter list inline.