Device-Dependent Parameters
- DCBE=
- The DCBE= parameter is a device-independent parameter but is included here because if DCBE= is
specified the entire device-dependent section of the DCB is generated. You specify DCBE= when the
DCB extension (DCBE) is required. The first word of the DCB (at offset +0) points to the DCBE when 2
bits at offset 32 (X'20') are on as follows:
Table 1. DCB bits to signify presence of DCBE Name Bit DCBH1 X'80' DCBH0 X'04' Coding DCBE= in the DCB macro sets these 2 bits on. For more DCBE information, see Data Control Block Extension (DCBE) Fields. See z/OS DFSMS Macro Instructions for Data Sets for more information on the DCBE= parameter of the DCB macro.
- DEVD=code
- The device in which the data set might reside. The codes are listed in order of descending space
requirements for the DCB:
Table 2. DCB DEVD options Code Device DA Direct access TA Magnetic tape PR Printer PC Card punch RD Card reader
If you do not want to select a specific device until job setup time, specify the device type requiring the largest area; that is, DEVD=DA.
The following diagrams illustrate the device-dependent portion of the DCB for each combination of device type that is specified in the DEVD parameter and data set organization that is specified in the DSORG parameter. Fields that correspond to device-dependent parameters in addition to DEVD are indicated by the parameter name.
When processing concatenated data sets, the system changes the value in DCBDEVT as appropriate as it reaches each new data set. These values are described in z/OS DFSMS Macro Instructions for Data Sets.
┌───────────────────────────────────────────────────┐
³ 0 ³
³ DCBDCBE ³
├────────────┬──────────────────────────────────────┤
³ 4 ³ 5 ³
³ Reserved ³ (DCBFDAD) ³
├────────────┘ ³
³ 8 ³
³ ³
³ ┌──────────────────────────────────────┤
³ ³ 13 ³
³ ³ (DCBDVTBA) ³
├────────────┼────────────┬─────────────────────────┤
³ 16 ³ 17 ³ 18 ³
³ DCBKEYLE ³ (DCBDEVT)³ (DCBTRBAL) ³
└────────────┴────────────┴─────────────────────────┘
The fields in parentheses represent information that is not associated with parameters of the DCB macro instruction. EOV sets all of these fields. OPEN sets DCBDVTBA and DCBDEVT, but not DCBFDAD. Your program can modify DCBFDAD, DCBKEYLE, or DCBTRBAL as described in the text.
- To write a file mark for output data sets
- When releasing unused space at the end of the allocated area
You can request partial space release using the management class, RLSE on the DD SPACE parameter, TSO/E ALLOCATE command RELEASE parameter or PARTREL macro.
- When adding to the data set with DISP=MOD or the EXTEND or OUTINX options of OPEN
- When DFSMSdss copies the data set.
- The track balance (DCBTRBAL) field that contains a 2-byte unsigned binary number that indicates the remaining number of bytes on the current track. It is recommended that your program not directly calculate this number but use the TRKCALC macro (see Performing Track Calculations (TRKCALC macro)). Both the calculation values and the algorithm differ among device types.
- The full disk address (DCBFDAD) field that indicates the location of the current record. The address is in the form MBBCCHHR. For the actual form of MBBCCHHR, see Table 1.
If space is available for output data sets, the system uses the contents of the full disk address (DCBFDAD) field, plus one block, to write a file mark when the DCB is closed or EOV is issued. If the track balance field (DCBTRBAL) is less than eight, the file mark is written on the next sequential track.
- If the file mark is near the end of the track and a future user extends the data set using DISP=MOD on the DD statement or using the OPEN EXTEND or OUTINX option, then the first new block might be on the next track. This leaves a file mark inside the data.
- For compatibility with BSAM and QSAM when you are writing fixed-standard
records, you should cause the file mark to be written wherever the
next block would have been written, as if all blocks were full size.
The file mark should not be
squeezed
on to the current track.
If the system is to write a file mark, you must maintain the contents of these two fields and set on bit 0 of DCBOFLGS. For further information on DCBOFLGS, see Handling End of Volume and End-Of-Data-Set Conditions. Use the OPEN macro instruction to initialize DCBDVTBA and DCBDEVT. You can use DCBDVTBA or DCBDVTBL with the DEVTAB parameter of the TRKCALC macro (see Performing Track Calculations (TRKCALC macro) for the TRKCALC description).
┌────────────┬─────────────────────────────────────┐
³ 16 ³ 17 ³
³ DCBKEYLE ³ Reserved ³
└────────────┴─────────────────────────────────────┘
┌───────────────────────────────────────────────────┐
³ 12 ³
³ (DCBBLKCT) ³
├────────────┬────────────┬────────────┬────────────┤
³ 16 ³ 17 ³ 18 ³ 19 ³
³ DCBTRTCH ³ (DCBDEVT) ³ DCBDEN ³ Reserved ³
└────────────┴────────────┴────────────┴────────────┘
The fields in parentheses represent information not associated with parameters of the DCB macro instruction. They are set by OPEN and EOV. Your program can modify DCBBLKCT as described for the REPOS parameter above.
The system uses the contents of the block count (DCBBLKCT) field to write the block count in trailer labels when the DCB is closed or when the EOV macro instruction is issued. For tape cartridges, the system also compares this count with a count calculated from hardware information. OPEN and EOV set this DCB field to zero except when reading standard labeled tape backward. In that case OPEN or EOV set DCBBLKCT to the block count in the trailer label.
The I/O process increments this field by the contents of the IOBINCAM field of the IOB upon completion of each I/O request.
To indicate to the system that your program is maintaining DCBBLKCT, code foundation block parameter REPOS=Y. See Foundation Block Parameters.
┌────────────┬────────────────────────────────────┐
³ 16 ³ 17 ³
³ DCBPRTSP ³ Reserved ³
└────────────┴────────────────────────────────────┘
┌────────────┬──────────────────────────────────────┐
³ 16 ³ 17 ³
³ DCBMODE ³ Reserved ³
³ DCBSTACK ³ ³
└────────────┴──────────────────────────────────────┘
- KEYLEN=length
- For direct access devices, the length in bytes of the key of a physical record, with a maximum value of 255. When a block is read or written, the number of bytes transmitted is the key length plus the record length. This parameter does not directly affect EXCP processing, but is stored in the data set label.
- DEN=value
- For magnetic tape
reels, the tape recording density in bits per inch.
- 2
- 800 (NRZI)
- 3
- 1600 (PE)
- 4
- 6250 (GCR)
NRZI—Non return-to-zero change to ones recording PE—phase encoded recording GCR—group coded recording
If this parameter is omitted, the highest density available on the device is assumed. Refer to z/OS DFSMS Macro Instructions for Data Sets for further information on DEN.
- TRTCH=value
- For magnetic tape subsystems
with Improved Data Recording Capability, the tape recording techniques
consist of the following values:
Value Tape recording technique COMP Record data in compacted format. NOCOMP Record data in standard uncompacted format. For 7-track magnetic tape, the tape recording technique:Value Tape recording technique COMP Record data in compacted format. C Data conversion feature is available. E Even parity is used. (If omitted, odd parity is assumed.) T BCDIC to EBCDIC translation is required. - MODE=value
- For a card reader or punch, the mode of operation. Either C (column binary mode) or E (EBCDIC code) can be specified. This field and parameter do not directly affect EXCP processing but your program can use the field. This is useful to allow you to specify the value on the DD statement.
- STACK=value
- For a card punch or card reader, the stacker bin to receive cards, either 1 or 2. This field and parameter do not directly affect EXCP processing but your program can use the field. This is useful to allow you to specify the value on the DD statement.
- PRTSP=value
- For a printer, the line spacing is 0 — 3. This field and parameter do not directly affect EXCP processing but your program can use the field. This is useful to allow you to specify the value on the DD statement.