CEETERM macro — Terminate a Language Environment-conforming routine

CEETERM provides a Language Environment-conforming epilog and is used to terminate, or return from, a Language Environment-conforming routine. If used with a main entry, the appropriate call is made to Language Environment termination routines.

Read syntax diagramSkip visual syntax diagram
Syntax

>>-name--CEETERM--+---------------------+----------------------->
                  '-RC=--return_code--,-'   

>--+---------------------+--+-------------------------+--------><
   '-MODIFIER=--modifier-'  '-MF=--+-L--------------+-'   
                                   '-(E,--ctrl_addr-'     

name
The entry name (and the CSECT name, if this is for a main entry).
RC=
The return code that is to be placed into R15 after the MODIFIER is added to it, if terminating a main routine. If returning from a Language Environment subroutine, the return code itself is placed into R15, without MODIFIER being added to it. return code can be a fixed constant, variable, or register 2–12.
MODIFIER=
The return code modifier that is multiplied by the appropriate value (based upon the operating system), added to the return code, and placed into R15 (if terminating a main routine). The MODIFIER is independently placed into R0. Modifier can be a fixed constant, variable, or register 2-12.
MF=L
Indicates the list form of the macro. A remote control program parameter list for the macro is defined, but the service is not invoked. The list form of the macro is usually used in conjunction with the execute form of macro.
MF=(E, ctrl_addr)
Indicates the execute form of the macro. The service is invoked using the remote control program parameter list addressed by ctrl_addr (normally defined by the list form of the macro, it cannot be register 0).
Usage notes:
  1. The MF=L and the MF=(E, ctrl_addr) parameters cannot both be coded for the same macro invocation. If neither is coded, the immediate form of the macro is used. The immediate form generates an inline parameter list, and generates nonreentrant code.
  2. The address of the name can be specified as a register using parentheses ().
  3. The macro invocation destroys the registers R1, R14, and R15.
  4. MF=L and MF=(E, ctrl_addr) can only be used when CEEENTRY MAIN=YES has been specified. These parameters are not necessary when CEEENTRY MAIN=NO has been specified; in that environment, CEETERM automatically generates reentrant code.