Macro type: type R
The EXRTN macro is required in some user routines which are addressed via EXLST exits. It returns control to DMS, which evaluates the function code and continues processing accordingly.
The EXRTN macro must be specified in routines which use the following EXLST exits: CLOSPOS, EOVCTRL, ERROPT, LABEND, LABEOV, LABERR, LABGN, OPENV, OPENX, OPENZ, WRLERR.
If UHL, UTL or UVL labels are being processed, the LBRET macro must be used.
Format
Operation | Operands |
|
|
Operand descriptions
fcbaddr
Symbolic address of the FCB for the file being processed when a branch was made in the program to an EXLST exit.
(1)
Register 1 contains the address of the FCB.
The second operand specifies a function code; this is significant only for the EXLST exits ERROPT and WRLERR.
0
The error is to be ignored.
1
Disk files: the current block is to be skipped and the next one processed.
Tape files: the user program is to be terminated with an OPEN or end-of-tape error.
2
Tape files: end-of-tape processing is to be continued (for the LABERR exit only).
(0)
The rightmost byte of register 0 contains the function code.
PARMOD
Specifies the generation mode for the macro.
Default value: | the value preset for the generation mode by means of the GPARMOD macro or by the assembler. |
= 24
The macro is expanded in accordance with the format for the 24-bit interface. The object code is thus executable only in 24-bit addressing mode.
= 31
The macro is generated as addressing mode-independent.
Programming note
The EXRTN macro overwrites registers 0, 1, 14 and 15.