Pg. of GC20-1819-2 Rev March 30, 1979 by Supp. S[23-9024-1 for 5748-XX8 processed. Fer processing multifile volumes, you may wish to use the LEAVE option on the FILEDEF command. This option prevents a tape from being rewound and positioned before each tape file is processed. The LEAVE option does not exist on an as DD statement.
For input files, HDR2 and EOF2 labels are skipped. There is no merge
of information from a HDR2 label with information in the DCB as there is
under an OS/VS operating system. Output HDR2/EOF2 records are written
from information in the DCB and the CMSCB (FCBSECT). Note that the tape density and TRTCH fields in HDR2/EOF2 records are taken from wbat the
user specifies in his FILEDEF command for the tape file. They may net
correspond to the actual density and TRTCH fields used to write the
tape.
To process standard user labels in as simulation, you must do the
following: 1. Specify the file as SUL in a FILEDEF command.
2. Provide a routine to process the user standard labels in your program. 3. Put the address of the user label routine in the DCB EXIT list of
the DCB for the file. See the IBM publication or Guide, for instructions on how to establish a DCB EXIT list, and the-;xact linkage for communication between user label routines and
the operating system. This exact linkage should te used under CMS with the following exceptions:
a. There is no support for code x'06' EOV EXIT routine.
b. For input labels, return codes 8 and 12 from the user routine
are not supported. If an input return code is not 0, it is
treated as if it were 4.
4. Note that your standard user label routines do not perform any
input/output. They set up an output label for writing, but the CMS tape label processing routines actually write out the label. For
input, the CMS label processing routines read in your user standard
label but then give control to your routine to check the lahel. You should specify NL in the FILEDEF command when you expect a tape does
not contain any IBM standard tape labels. CMS reads your tape at the
time a file is opened and does not open the file if the tape contains a VaLl label as its first record. If the tape does not contain a VOL1 label, a file is opened and the tape is positioned by using the position
parameter (n). For example, if you specify:
filedef fileq tap1 nl 2
fileq is not opened if the tape on tap1 (181) has a VOLl label. If the
tape does not have a VaLl label, fileq is opened and the tape is
positioned at the second file. If you do not specify a position
parameter, the tape is positioned at the first file, (that is, the load
point).
122.2 IBM VM/370 eMS User's Guide
Pg. of GC20-1819-2 Rev March 30, 1979 by Supp. 5B23-9024-1 for 5748-XX8 you should specify BLP in the FILEDEF command to bypass tape label
processing. CMS does not check your tape for an IBM standard tape
label. It uses the position parameter you specified to position the
tape during open processing. If you do not specify a position
parameter, the default is 1. For example:
filedef fileabc tapel blp 4
positions the tape at the fourth file when it opens fileabc. Because CMS does not know whether files on the tape are label files or data
files, the tape is positioned at what is physically the fourth file, regardless of file content. Any label files on the tape are included in
counting files. You should specify LABOFF in the FILEDEF command if you want no
positioning or label processing to occur during open processing. The
position parameter is not valid for LABOFF. If you specify LABOFF, and
your tape is positioned at record 6 in the third file before you issue
an OPEN macro, the tape is positioned at exactly the same record after
open processing (record 6 in the third file). The following FILEDEF
command does not move tape2 (182) before processing the data in fileb:
filedef fileb tap2 lab off
In order to process nonstandard labels, you must write your own routine
to read, write, and check the labels. If you have such a routine as a CMS TEXT or MODULE file, you put the filename of the routine after the NSL keyword parameter in the FILEDEF command for the file. The filename
must be the name of the first CSECT in the program. It is to this point
that control is transferred when the NSL routine gets control. If you
do not have a TEXT or MODULE file with the NSL filename you specify, you
get an error message. The OPEN and CLOSE routines will load your module
if it is not already in storage and will pass control to it at the time they are oFening or closing the file. Your routines will then be
responsible for processing the tape labels. Nonstandard label routines
must do the actual reading and writing of tape labels as well as
checking and setting up the label. This is one of several ways
nonstandard label processing is different from standard user label
processing. Because the CMS label processing routines do not know the
size or format of your nonstandard labels, they cannot read or write the
labels.
If you use a MODULE file for an NSL routine, it is important that you
create the MODULE file so that it starts at an address that will not
allow it to overlay the program or command you are executing at the time the NSL routine is invoked. The reason for this restriction is that the NSL routine is dynamically loaded while your program is executing. For
the TAPEMAC and TAPPDS commands, starting the NSL routine at an address
above X'21000' prevents such an overlay. If the NSL routine is invoked
from your own program which is running in the user area, you must determine how big your program is and where the NSL MODULE file should
be located to prevent overlay. Note that you do not have to specify a Section 7. Using Real printers, Punches, Readers, and Tapes 122.3
Previous Page Next Page