z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Device-Dependent Parameters

z/OS DFSMSdfp Advanced Services
SC23-6861-01

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 further 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 specified in the DEVD parameter and data set organization 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.

Figure 1. Device-dependent portion of the DCB with DEVD=DA and DSORG=PS (or DSORG=PO)
 
          ┌───────────────────────────────────────────────────┐
          ³ 0                                                 ³
          ³         DCBDCBE                                   ³
          ├────────────┬──────────────────────────────────────┤
          ³ 4          ³  5                                   ³
          ³  Reserved  ³   (DCBFDAD)                          ³
          ├────────────┘                                      ³
          ³ 8                                                 ³
          ³                                                   ³
          ³            ┌──────────────────────────────────────┤
          ³            ³ 13                                   ³
          ³            ³   (DCBDVTBA)                         ³
          ├────────────┼────────────┬─────────────────────────┤
          ³ 16         ³ 17         ³ 18                      ³
          ³   DCBKEYLE ³   (DCBDEVT)³    (DCBTRBAL)           ³
          └────────────┴────────────┴─────────────────────────┘

The fields in parentheses represent information 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.

When writing on DASD, maintain certain fields of the device-dependent portion of the DCB. The system uses the information in the following instances:
  • 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.
Maintain the following fields of the device dependent portion of the DCB when writing on DASD:
  • 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.

Note that the track containing your last data block, as identified by DCBFDAD, might not be the best place for a file mark. Consider the following:
  • 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).

Figure 2. Device-dependent portion of the DCB with DEVD=DA and DSORG=DA
          ┌────────────┬─────────────────────────────────────┐
          ³ 16         ³ 17                                  ³
          ³   DCBKEYLE ³   Reserved                          ³
          └────────────┴─────────────────────────────────────┘
Figure 3. Device-dependent portion of the DCB with DEVD=TA and DSORG=PS
          ┌───────────────────────────────────────────────────┐
          ³ 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.

Figure 4. Device-dependent portion of the DCB with DEVD=PR and DSORG=PS
          ┌────────────┬────────────────────────────────────┐
          ³ 16         ³ 17                                 ³
          ³   DCBPRTSP ³    Reserved                        ³
          └────────────┴────────────────────────────────────┘
Figure 5. Device-dependent portion of the DCB with DEVD=PC or RD and DSORG=PS
          ┌────────────┬──────────────────────────────────────┐
          ³ 16         ³ 17                                   ³
          ³   DCBMODE  ³    Reserved                          ³
          ³   DCBSTACK ³                                      ³
          └────────────┴──────────────────────────────────────┘
The following DCB operands pertain to specific devices and can be specified only when the DEVD parameter is specified.
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 is shown in the following table:

Value             Density
 
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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014