The processing of standard labels is requested by means of:
the operand LABEL=(STD,n) of the FILE macro
the operand LABEL-TYPE=*STD(DIN-REVISION-NUMBER=n) of the ADD-FILE-LINK command
DMS checks the record which follows the tape mark:
If this is neither an end-of-file nor an end-of-volume label (EOF1 or EOV1), DMS activates the LABERR routine. If the LABERR exit of the EXLST macro is not specified, an appropriate error message (DMS0DE9) is sent to the user. The user can then either terminate his/her program with a CLOSER routine or opt to continue processing in spite of the error.
If the tape mark is followed by EOF or EOV labels and a double tape mark, DMS compares the contents of the label field “Block counter” (in EOF1 or EOV1) with the current value of the block counter within DMS. If the two values are not the same, DMS activates a LABERR routine in the user program or issues error message
DMS0DE6
. The user can then either terminate his/her program with a CLOSER routine or continue processing.
Any further standard EOF or EOV labels are skipped. If the tape contains user trailer labels (UTL), DMS activates the LABEND or LABEOV routine in the user program. It distinguishes between a UTL used as an end-of-file label and a UTL used as an end-of-volume label on the basis of the preceding group of standard labels (EOF or EOV).
If DMS has read an EOF label, it initiates a tape swap only if a temporary volume list was created via the TVSN operand of the FILE macro or via the PROCESS-VOLUME operand of the ADD-FILE-LINK command, and this list contains further VSNs. If this list is exhausted, or if the appropriate operand was not specified in the macro or command, DMS detects the “end-of-file” condition. At this time, the tape is positioned to the tape mark following the EOF labels.
If DMS has read an EOV label, it initiates a tape swap if the volume list of the TFT contains further VSNs. This TFT volume list is affected by the VSEQ operand of the FILE macro and by the VOL-SEQUENCE-NUMBER operand of the ADD-FILE-LINK command. If the input file is a foreign file, a tape swap is always initiated.
DMS activates an EOVCTRL routine (if defined in the EXLST macro) in which the user can, for example, request writing of a checkpoint. The EOVCTRL routine is terminated by means of an EXRTN macro.
The operator must change the tapes. For this purpose, DMS issues a message
(DMS0DE4) on the console. The operator can then assign the next tape and allow processing to continue, or he/she can terminate the user program (or activate the NODEV exit of the EXLST macro).
After the tape has been swapped, processing of the header labels on the new tape is initiated (see section "Label processing for input files").