If a user exit is specified in the LABEL-EXIT operand of the ASSIGN-INPUT-FILE or ASSIGN-OUTPUT-FILE statement, PERCON branches to the specified user module after reading or before writing the labels.
Register 1 indicates the following address list:
A(parameter area) A(FCB) X'800000000'
A description of the structure of the parameter area is provided on chapter "Common parameter area for the interfaces".
The following values are entered in the parameter area:
Identifier of the interface: X'00' |
Additional | Meaning |
X'00' | OPENV exit for UVL labels |
X'04' | LABGN exit for UHL labels |
X'08' | LABEOV exit for UTL labels with tape swaps |
X'0C' | LABEND exit for UTL labels |
X'10' | LABERR exit for errored end-of-tape labels |
X'14' | CLOSPOS exit for positioning the tape during CLOSE processing |
A description of the individual exits is provided in the manual [11] "DMS Makros" under the EXLST macro.
In the case of nonstandard labels, the user reads/writes his or her labels using the access method BTAM and returns control to PERCON without a return code.
In the case of standard labels, register 0 indicates the beginning of the user label; the user checks/generates the label himself and returns control to PERCON using the return code X’F1’ (if user label processing is to be terminated) or X’F2’ (if label processing by PERCON is to be continued).
For files with standard labels a branch is made to the LABERR exit if an error occurred during end-of-tape processing. The error code is contained in the ID1ECB field of the FCB.
The user can position the tape during CLOSE processing by means of the CLOSPOS exit. After positioning the tape using BTAM macros the user returns control to PERCON without a return code. (For a more detailed description of these exits, see the manual [11] "DMS Makros".)
Control can be returned to PERCON by means of the following return codes:
Return code | Meaning |
X'00' | Execute volume swapping as if the correct EOV/EOF labels had been read. |
X'01' | Terminate task with an error. |
X'02' | Perform end-of-file processing. |
X'F1' | Terminate user label processing. |
X'F2' | Continue user label processing by PERCON. |