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.
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.
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:
This page was last updated on January 17, 2015 .