DD TSO Command

DD is a TSO command that displays the attributes of datasets.  It does not require the dataset for which information is to be displayed be catalogued, and it provides more information for Non-VSAM datasets (and Generation Data Groups) than LISTCAT does.  

It is located in File #163 of the CBT tape and is part of a collection of batch programs and TSO commands contributed by Dave Phillips of Ouiedo, FL.  

Installation

I have extracted the installation jobstream which is a single job to assemble and link-edit DD to a TSO command library and place the TSO Help information into a TSO Help library.  My initial changes were those noted as required by the author - specified missing JOB card parameters, changed SOUT PROC parameter from '$' to '*', substituted SYS1.SMPMTS for SYS1.MODGEN library, changed assembler from IEV90 to IEUASM, and changed the target load library to SYS2.CMDLIB, and the target Help library to SYS2.HELP.  In order to resolve assembly (really JCL errors) I reordered the MACLIB concatenation order and increased the space allocations for the assembler work datasets.  

Attempting assembly revealed that a system provided UCBSCAN routine came about later than MVS 3.8j.  Fortunately, it appears that a manually coded UCBSCAN routine was left in the program and was simply expunged with conditional assembly directives.  I added a couple of my own directives to instead expunge the call to the "built in" routine that we don't have.  To see those changes, pull up the jobstream in a text editor and search for the string 'jlm'.

The assembly requires the presence of the IHADVCT (device characteristics table) which is available in the MVS 3.8j source distribution.  Fortunately I had that readily available from the 3380/3390 modifications, so I added a step to create a temporary macro library containing this macro.  It is deleted after the job completes.

The resulting jobstream - dd$.jcl - is contained in the archive dd.tgz [MD5: 717E4E3319CA5862D84BF084E6B0E57A].  Download the archive and extract the jobstream (WinZip on Windows/?? or tar on Linux).  Submit the jobstream to assemble and link the single load module for CATLG into SYS2.CMDLIB and copy the help text into SYS2.HELP.  If you don't have SYS2.CMDLIB defined, you will need to modify the jobstream to specify a different target load library.  Also if you do not have SYS2.HELP defined, you may modify the jobstream to place the help information into SYS1.HELP.

 

Utilizing DD

DD is very easy to use and thoroughly documented in the online help text:

 SYNTAX - 
          DD 'DATASET-NAME'  PARTIAL OR 
                             GENERATION(number) OR 
                             VOLUME(name)

   DEFAULTS -  DATASET-NAME DEFAULTS TO TSO USERID PREFIX
   ALIAS    -  DDX  (DOES CLEAR COMMAND BEFORE DISPLAY)
   ABBREVIATIONS -  PARTIAL    ===> P
                    GENERATION ===> G
                    VOLUME     ===> V
 OPERAND -           
   'dataset-name'    
          - SPECIFIES THE COMPLETE OR PARTIAL NAME OF THE DATA SET
            WHICH IS TO BE SEARCHED FOR.
   PARTIAL - SPECIFIES A PARTIAL DATA SET NAME SEARCH
   GENERATION(number)  - LISTS DATA SET' DSCB INFORMATION FOR THE
                         GENERATION LEVEL SPECIFIED.
   VOLUME(name) - SPECIFIES THE VOLUME NAME ON WHICH THE DATA SET
                  RESIDES.  IF A VOLUME NAME IS ENTERED, SYSALLDA IS
                  ASSUMED AS THE UNIT NAME; OTHERWISE, THE UNIT NAME
                  FROM THE CATALOG IS USED.

                  NOTE:  THIS PARAMETER SHOULD BE USED IF THE DATA SET
                  IS NOT CATALOGED OR IF THE CATALOG ENTRY IS NOT TO BE
                  USED.

   EXAMPLES:

 dd 'men.dp.pub.lib'

 DSN = MEN.DP.PUB.LIB
 3380 - INTLIB
 DSORG PO  RECFM U  BLKSIZE 11,476  LRECL 11,476
 C- 7/25/88  KEYLEN 0  RKP 0  #EXTS 1
 U- 8/19/88  CHANGED
 ALLOC IN CYL  SEC 1  TOTAL 3 CYL  USED 1 CYL 4 TRK
 EXTENTS  #   CCC HH     CCC HH
          1.  209 00  -  211 14    3 CYL

 dd 'x.file22' p

 CATALOG: CATALOG.USER
 NON-VSAM ------ X.FILE225.DATA
 NON-VSAM ------ X.FILE226.DATA
 NON-VSAM ------ X.FILE227.PDS
 NON-VSAM ------ X.FILE229.DATA

 dd 'od.abrcat'

 CATALOG: CATALOG.USER

 NON-VSAM ------ OD.ABRCAT.G0631V00
 NON-VSAM ------ OD.ABRCAT.G0632V00
 NON-VSAM ------ OD.ABRCAT.G0633V00

 dd 'od.abrcat' g(-1)

 DSN = OD.ABRCAT.G0632V00
 3380 - VSAM01 
 DSORG PS  RECFM VBS  BLKSIZE 23,476  LRECL 32,404
 C- 8/18/88  KEYLEN 0  RKP 0  #EXTS 1
 U- 8/18/88
 ALLOC IN CYL  SEC 1  TOTAL 1 CYL  USED 3 TRK 
 EXTENTS  #   CCC HH     CCC HH
          1.  146 00  -  146 14    1 CYL

 dd 'sys1.logrec' v(altres)

 DSN = SYS1.LOGREC
 3380 - ALTRES 
 DSORG PS  RECFM U  BLKSIZE 1,944  LRECL 0
 C-11/09/86  KEYLEN 0  RKP 0  #EXTS 1 
 U- 6/08/88
 ALLOC IN CYL  SEC 0  TOTAL 5 CYL  USED 5 CYL
 EXTENTS  #   CCC HH     CCC HH
          1.  448 00  -  452 14    5 CYL

The alias command - DDX - that was documented to clear the screen prior to displaying the output of DD did not function correctly.  It positioned the cursor to the first character of the first line of the screen prior to beginning output, but it did not clear the screen.  I added a TPUT instruction and a constant to clear the screen if DDX is utilized, so that it functions as documented.

According to the comments in the source, the record count computation is not correct.  I have not made any attempt, yet, to even verify that a problem exists.


I hope that you have found my instructions useful.  If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:


Return to Site Home Page 


This page was last updated on January 17, 2015 .