Using the operands of the EXLST macro, the user can define an error exit for each event, i.e. he/she can specify the address of a program routine in which the error is handled or, at least, the program is terminated normally (closing the open files, ....). If the EXLST exits are used, it is not necessary to evaluate the FCB field ID1XITB, since each EXLST exit corresponds to precisely one event.
DMS places the address of the file control block in general register 1 before passing control to the user program. This makes it possible to use the same error handling routines for different files.
DMS also enters the address of the instruction which would have been processed next (if no error had occurred) in field ID1RTNAD of the FCB. This address points to the next instruction in the user program.
The type of event is indicated by the contents of field ID1XITB in the FCB. The codes in this field are shown in the table (see the “DMS Macros” manual [1 (Related publications)]).
For the EXLST exits EOVCTRL, ERROPT, LABERR, OPENV, OPENX, OPENZ and WLRERR, the EXRTN macro must be called to resume processing; for LABEND, LABEOV and LABGN, the LBRET macro is used.
If a special status occurs during the processing of a file, DMS enters the appropriate values in fields ID1XITB and ID1ECB of the associated TU FCB. These fields are not automatically reset, but are simply updated if another special status is detected.