Exit-Specific Information block
All user exits are passed an Exit-Specific Information block pointed to by the Exit Parameter List. It contains a list of character data items which describe the data for the exit, and the absolute and relative record numbers for the record passed to the exit.
On entry to the exit, the Member Name field contains spaces (unless the data set is a SYSLIB data set), the Data Set Name field contains the path name, and the Volume Serial field contains spaces.


The Exit-Specific Information block consists of these fields:
- Member Name
- Member name within the data set. It is always provided for library
members and is also provided for data set members used sequentially
on z/OS® where the data set
is a partitioned data set.
The assembler also sets this field as a parameter for the FIND operation. It is left-aligned and padded with spaces.
For output files, the information should not be updated after it has been set by the OPEN call.
The assembler uses this field to update the system variable symbols, as described in Table 1 (z/OS and CMS) and Table 2 (z/VSE®).
- Member Type
- z/VM® and z/OS
- Always blank. This field is present to maintain compatibility with High Level Assembler running on z/VSE.
- z/VSE
- The file type of the member. This field is also set by the assembler as a parameter for the FIND operation. It is left-aligned and padded with spaces.
- Data Set Name
- The name of the data set from which the last input record was
retrieved, or to which the next output record is written. It is left-aligned
and padded with spaces.
- z/VSE
- For library data sets, the name includes the library and sublibrary name.
For output files, the information should not be updated after it has been set by the OPEN call.
The assembler uses this field to update the system variable symbols, as described in Table 1 (z/OS and CMS) and Table 2 (z/VSE).
- Volume Serial
- Volume serial where the data set is located. It is left-aligned and padded with spaces.
For output files, the information should not be updated after it has been set by the OPEN call.
The assembler uses this field to update the system variable symbols, as described in Table 1 (z/OS and CMS) and Table 2 (z/VSE).
Table 1. z/OS and CMS system variable symbols Data Set Member Name Data Set Name Volume Serial SYSIN &SYSIN_MEMBER &SYSIN_DSN &SYSIN_VOLUME SYSLIB &SYSLIB_MEMBER &SYSLIB_DSN &SYSLIB_VOLUME SYSPRINT &SYSPRINT_MEMBER &SYSPRINT_DSN &SYSPRINT_VOLUME SYSTERM &SYSTERM_MEMBER &SYSTERM_DSN &SYSTERM_VOLUME SYSPUNCH &SYSPUNCH_MEMBER &SYSPUNCH_DSN &SYSPUNCH_VOLUME SYSLIN &SYSLIN_MEMBER &SYSLIN_DSN &SYSLIN_VOLUME SYSADATA &SYSADATA_MEMBER &SYSADATA_DSN &SYSADATA_VOLUME Table 2. z/VSE system variable symbols Data Set Member Name Data Set Name Volume Serial SYSIPT (IJSYSIN) &SYSIN_MEMBER &SYSIN_DSN &SYSIN_VOLUME Library &SYSLIB_MEMBER &SYSLIB_DSN &SYSLIB_VOLUME SYSLST (IJSYSLS) &SYSPRINT_MEMBER &SYSPRINT_DSN &SYSPRINT_VOLUME SYSLOG &SYSTERM_MEMBER &SYSTERM_DSN &SYSTERM_VOLUME SYSPCH (IJSYSPH) &SYSPUNCH_MEMBER &SYSPUNCH_DSN &SYSPUNCH_VOLUME SYSADAT &SYSADATA_MEMBER &SYSADATA_DSN &SYSADATA_VOLUME - Relative Record Number
- The relative record number is the number assigned to the current
record being processed.
- PROCESS Calls
- For PROCESS calls, it represents the total number of records the assembler has passed to the exit for the current data set. Each time a new data set or library member is opened for input, the relative record number is reset to 1 for the first record. If the new data set is a library member, caused by a macro call or a COPY instruction, the relative record number is returned to the correct sequential number when the macro or COPY processing is complete.
- LISTING Exit
- The relative record number is reset to 1 for the LISTING exit whenever the assembler forces a page eject.
- BATCH Assembler Option
- The relative record number is reset to 1 for all output data sets before each assembly when the BATCH assembler option is specified.
- READ and WRITE Calls
- For READ calls and WRITE calls, the exit should maintain the relative record number. The assembler uses the relative record number in information messages when you specify the FLAG(RECORD) option. If you specify the ADATA option, the assembler includes the record number in the associated data file (ADATA) Source Analysis record.
- Absolute Record Number
- The absolute record number is the number assigned to the current
record being processed. The number is incremented by 1 for each record
since the assembly started. For PROCESS calls, it represents the total
number of records provided to the exit for the current exit type.
It starts at 1, but is not reset when the BATCH assembler option is
specified to assemble multiple source programs.
For READ calls and WRITE calls, the exit should maintain the absolute record number. The number provided after READ calls is written to the associated data file (ADATA) in the Source Analysis record.
- Linecount
- This field is only provided for the LISTING exit.
The linecount value is set to the value of the LINECOUNT assembler option before the OPEN call to the LISTING exit. This option contains the number of lines per page in the assembler listing. The exit might change the linecount value only during the OPEN call.
For PROCESS calls, the linecount field contains the number of logical records written to the current listing page. A page eject occurs when the number exceeds the linecount value specified in the LINECOUNT assembler option or during the OPEN call.
- Current Page Number
- The assembler sets this field to the value of the current page
number. Any change the exit makes to this number is ignored.
This field is only provided for the LISTING exit and only for the PROCESS, WRITE, and CLOSE call types.