Open, Close, and EOV Main Parameter List

IFGTEP (tape exit parameters) maps the main parameter list for all of the open, close, EOV tape management exits. It also maps the function-specific parameter lists. The parameter lists are in protection key five.

The IFGTEP macro supports positional parameters in any order that say which parameter list or lists to expand. These values can be coded in any combination to get the indicated parameter list:

The format of the main parameter list is:

Table 1. Open, Close, EOV Main Parameter List.
Offset Length or Bit Pattern Name Description
00 (X'00')   TEPM Beginning of the parameter list
00 (X'00') 8 TEPMID Control block identifier ("TEPMAIN")
8 (X'08') 4 TEPMLEN Length of main parameter list
12 (X'0C') 1 TEPMVER Version of parameter list (1)
13 (X'0D') 3   Reserved
16 (X'10') 1 TEPMFUNC Calling function (binary numeric):
  1. OPEN. The call can be during like or unlike concatenation.
  2. EOV or FEOV (Note that for QSAM output the caller of EOV might be CLOSE because it reached the end of the tape when writing out the last buffers. EOV will soon continue on a new volume with the file start on volume exit and CLOSE will resume with the file end on volume exit.) The call might be for the first volume during like concatenation.
  3. CLOSE with TYPE=T.
  4. CLOSE without TYPE=T.
17 (X'11') 1 TEPMOPENOP First option for the DCB in the OPEN parameter list. Valid during all calls to the exits with one exception. If the application program used OPEN TYPE=J and suppressed the JFCB update, these bits will show EXTEND and OUTINX as OUTPUT and OUTIN during EOV and CLOSE. Note that all options except UPDAT are valid on tape.
.... 0000   INPUT
.... 0001   RDBACK
.... 0011   INOUT
.... 0110   OUTINX
.... 0111   OUTIN
.... 1110   EXTEND
.... 1111   OUTPUT
18 (X'12') 2 TEPMCONC Concatenation number. First or only data set is 0.
20 (X'14') 2 TEPMVSEQ Volume sequence number. The first volume is 1.
22 (X'16') 6 TEPMVOL Requested volume serial number, blank if output nonspecific or output VOL=REF and it is still not resolved. Not necessarily in JFCB, might be in JFCBX. First byte will not be X'FF', which would mean it is not resolved. Bit TEPMSYNV means that the system synthesized the volume serial number from other than a volume label. The volume mount exit can set bit TEPMNEWLAB to mean that the exit has changed this field to substitute the volume serial.
28 (X'1C') 1 TEPMFLAG1 Flags
1... .... TEPMSMS SMS-managed volume.
.1.. .... TEPMTLDS Tape Library Dataserver.
..1. .... TEPMCHKPT Data set is a checkpoint data set.
...1 .... TEPMASCII The system translated the label from ASCII to EBCDIC or will translate from EBCDIC to ASCII. On input the system translates only if the label begins with ASCII HDR, EOV or EOF.
.... 1... TEPMSAB System issued an ABEND for this data set. Its ABEND completion code is in TEPMABC.
.... .1.. TEPMAB The current task is abending apparently because of a reason that is not related to this tape. Its code is shown in field TEPMABCODE.
.... ..1. TEPMLWRIT Current operation. "1" means that the caller will be writing or rewriting labels. If the caller is OPEN, then this bit will be zero if the OPEN option is INPUT, INOUT, RDBACK, EXTEND or OUTINX or if the OPEN option is is OUTPUT or OUTIN with DSP=MOD. If the caller is OPEN, then this bit will be one for OUTPUT or OUTIN without DISP=MOD. If the caller is EOV, then a zero means that the user's last I/O was to read. Either it read a tape mark or the user issued an FEOV or EOV macro. If the caller is EOV, then a one means that the user's last I/O was to write. Either it encountered the end of the tape or the user issued an FEOV or EOV macro.
.... ...1 TEPMACCESS Access intent. This will be 0 to indicate "read-only" if the OPEN option was for INPUT or RDBACK and it will be 1 to indicate "write" for any other OPEN option.
29 (X'1D') 1 TEPMFLAG2 Flags
1... .... TEPMSYNV Volume serial number in TEPMLABEL was synthesized by the system, possibly from sense bytes.
.1.. .... TEPMVFRY Volume has been verified.
..1. .... TEPMLBS The block size value is contained in TEPMBLKS
30 (X'1E') 1 TEPMFLAG3 Flags
1... .... TEPMLABAN Label anomaly exit being called
.1.. .... TEPMVOLM Volume mount exit being called
..1. .... TEPMFILEV File verification exit being called
...1 .... TEPMFILES File start of volume exit being called
.... 1... TEPMFILEE File end on volume exit being called
.... .1.. TEPMATL Allocated device is in the automated tape library
.... ..1. TEPMMTL Allocated device is in the manual tape library
.... ...1 TEPMWRIT Write channel program issued to tape in OPEN, EOV or CLOSE.
31 (X'1F') 1 TEPMRECTK Recording technology
0000 0000   Unknown
0000 0001   18-track
0000 0010   36-track
0000 0011   128-track
0000 0100   256-track
0000 0101   384-track
0000 0110   EFMT1
0000 0111   EFMT2
0000 0101   EFMT3
0000 1000   EEFMT2
0000 0110   EEFMT3
32 (X'20') 1 TEPMFLAG5 Flags
1... .... TEPMWORM Worm tape mounted.
.1.. .... TEPMCRYP On - the key-related fields have data.

Off - the key-related fields contain binary zeroes.

..xx xxxx Reserved  
33 (X'21') 1 TEPMFLAG6 Flags set by the exit
1... .... TEPMNEWLAB Exit supplied a volume label. Valid only for label anomaly and volume mount exits.
.1.. .... TEPMSCRTCH Original volume request was for a nonspecific volume
..xx xxxx Reserved Set to zeros
34 (X'22') 1 TEPMMEDT Media type
0000 0001   Media1
0000 0010   Media2
0000 0011   Media3
0000 0100   Media4
0000 0101   Media5
  0000 0110   Media6
  0000 0111   Media7
  0000 1000   Media8
  0000 1001   Media9
  0000 1010   Media10
35(X'23') 1   Reserved
36 (X'24') 4 TEPMABCODE Task is abending with this code, in form xxyyyzzz, where yyy is system ABEND code that is normally displayed in hex and zzz is user ABEND code. Valid only if TEPMSAB or TEPMAB is on. Same format as TCBCMP.
40 (X'28') 4 TEPMDCB Address of DCB copy in protection key 5 storage. Can include DEN, TRTCH, OPTCD=B, block count on current volume, MACRF (indicates BSAM, QSAM or EXCP, length of EXCP DCB and whether DCBBLKCT is valid), BUFNO, NCP, address of DCBE, BLKSIZE, LRECL and RECFM. The block count normally is zero at file start on volume except when the data set is open for read backwards or is being extended. For EXCP, DCBMACRF includes an indicator as to whether the user program is keeping a block count in DCBBLKCT (REPOS=Y). If it is off, DCBBLKCT is not valid. It is invalid for any of these reasons:
  • The EXCP user did not code REPOS=Y on the DCB macro.
  • The BSAM user issued the CNTRL FSM macro and the system was not able to reestablish the block count later.
  • While open for read backward, the user issued FEOV or CLOSE before reading the tape mark.
  • Extending (DISP=MOD or OPEN EXTEND or OUTINX) an unlabeled or NSL tape. During OPEN, this DCB does not have a pointer to the DEB.
In the current release, the copy of the DCB points to the user's DCBE if one was supplied. For system integrity reasons refer only to the DCBE in the user's key.
44 (X'2C') 4 TEPMUCB Address of the captured UCB. At the call to the file-end-on-volume exit, the UCB should have volume error statistics because the tape was mounted or SVC 91 cleared them. These statistics differ in format between reels and cartridges. The UCB also tells whether a cartridge stack loader is attached.
48 (X'30') 4 TEPMJFCB Address of JFCB copy. Includes data set name, required label type, requested expiration date, requested volume serials (any that start with X'FF' have not yet been resolved), approximate limit on the volume count, density, file sequence number in the volume group, TRTCH, FREE=CLOSE. If the OPEN option was EXTEND or OUTINX and at least one volume serial was specified, then DISP in the JFCB has been changed to MOD. If DISP=MOD was coded and the OPEN option was EXTEND or OUTINX, but no volume serial was specified, then OPEN changes DISP=MOD to DISP=OLD. The exit should not modify the JFCB.
52 (X'34') 4 TEPMDSAB Address of DSAB. To get the DDname the exit can get the TIOT entry address from the DSAB. The name might be blank, which means concatenation.
56 (X'38') 4 TEPMLABEL Address of label (80 bytes). If the address is 0 and the tape is SL or AL, then the data set was being read and the user issued FEOV or CLOSE without reading the tape mark. As much of the header label 1 or trailer label 1 for read backwards as the system could read up to 80 bytes.
Note: The creation date and expiration date in the header label might differ from that in the trailer label. This might be because of DISP=MOD or OPEN EXTEND. The System code field (13 bytes) is available at beginning of data set. It tells whether an AL tape meets IBM's definition of certain label 2 fields.
For the volume mount exit and label anomaly exit this is the first block on the volume no matter what label type was requested except for BLP. The label anomaly exit might build a label in this area. For the file validation exit the label is HDR1, EOV1 or EOF1. For the file start on volume exit and the file end on volume exit no label is available because OPEN, CLOSE, EOV sometimes does not have one. For example this might be because it processed user labels or it wrote a message to the operator.
60 (X'3C') 4 TEPMLLEN Length of the block that was read. Zero means either that no data was read because of an I/O error or it means that a tape mark was read.
64 (X'40') 4 TEPMTEP Address of function-specific parameter list
68 (X'44') 4 TEPMSENSE Address of sense bytes 0 and 1 from an IOB. If X'10FE', then the system was not able to obtain sense bytes.
72 (X'48') 6 TEPMMTVOL Mounted volume serial
78 (X'4E') 6 TEPMEXVOL External volume serial
84 (X'54') 2 TEPMTDSI TDSI (tape dataset info) from JFCB
86 (X'56') 2   Reserved
88 (X'58') 4 TEPMVOL1 Address of original VOL1 label. Initialized when OPEN or EOV issues a loadpoint read for volume verification.
92 (X'5C') 4 TEPMHDR1 Address of original HDR1 of first data set on the volume. Initialized when OPEN or EOV issues a loadpoint read for volume verification.
96 (X'60') 8 TEPMBLKS Block size value
104 (X'68') 4 TEPMCAPM Media capacity (MB) of the mounted volume on device type 3490 and higher tape drive technologies.
108 (X'6C') 4 TEPMCAPP Reserved for future partition capacity. Currently same value as TEPMCAPM.
112 (X'70') 12 TEPMWWID WORM World Wide Volume id
124 (X'7C') 2 TEPMWMC WORM write mount count