|
| |
LISTPDS
LISTPDS
is a dataset utility program for listing and/or punching
source libraries or datasets. It
generates formatted
listings of a PDS's directory, the contents of processed members or sequential
files, as well as (optionally) punching processed members and/or sequential
datasets. Records may be generated
which allow the output to be used in conjunction with the IBM utility IEBUPDTE.
LISTPDS is located in File #316 of the CBT tape and was
developed by Gene Czarcinski at the NASA/Goddard Space Flight Center.
Installation
I have extracted the JCL to assemble LISTPDS - LISTPDS$ - and the Assembler
source - LISTPDS - from the CBT tape. I made three minor modifications to
the source so that it would assemble under IFOX00. The resulting jobstream
- listpds.jcl - is contained in the archive listpds.tgz
[MD5: 6772C6486BE0FCB1B18FA669B856116F].
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 LISTPDS into SYS2.LINKLIB. If you don't have SYS2.LINKLIB defined, you
will need to modify the jobstream to specify a target load library.
Executing LISTPDS
The DD names used by LISTPDS are:
| SYSPRINT |
Error
report & listing of the members directory as well as an index for SYSLIST. |
| SYSLIST |
If
included, this file will contain the listing
of the requested datasets. Required when the LIST option is used. |
| SYSLIB |
The
file containing the partitioned and/or sequential
dataset(s) to be processed. If
specific
members are to be processed, each partitioned dataset will be used. Datasets may be concatenated to SYSLIB in any mix of file organization and dataset type. |
| SYSPUNCH |
If
included, this file will contain the output (as
80-byte records) for the members requested. This
DD statement is required when either the DECK or UPDTE options are used. |
| SYSIN |
When
included this file contains the control statements
for the specific members to process. Only the first partitioned
dataset of SYSLIB will be used. When SYSIN is empty, DUMMY, or not
included, all members of SYSLIB are processed. If the EXCLUDE
option is specified, all members other than those specified in the SYSIN
file will be listed. The
EXCLUDE/ SELECT option is ignored if SYSIN is a null data set (DUMMY or DD card) or if the NOSEL option is specified. |
The parameters are supplied as keywords via PARM on the EXEC statement and
are:
| LIST |
Produce
a listing of the contents of the datasets in the SYSLIB file on SYSLIST.
The DD statement SYSLIST is required. |
| NOLIST |
Used
to turn off the listing of datasets and/or members in the SYSLIB file
to SYSLIST. If coded, the SYSLIST DD statement is not required. The default is LIST. |
| DECK |
Produce
card images of the contents of the members
in the SYSLIB file on SYSPUNCH Default is NODECK. The
SYSPUNCH DD statement is required when this option is used. |
| NODECK |
Do not produce card images on SYSPUNCH. |
| LISTDIR |
Produces
only a listing of the directory entries
for the members. No record
count is
given and less I/O time is required. If coded the SYSLIST DD
statement is not required. The default is not to list this. |
| UPDTE |
If
coded IEBUPDTE utility ADD statements will
be produced on SYSPUNCH. When DECK is also specified they will
precede each member. The SYSPUNCH DD
statement is required for UPDTE. If a member contains
IEBUPDTE statements, the './' statements within the member will be
written with '><' in place of the './' characters. The default value is NOUPDTE. |
| NOUPDTE |
IEBUPDTE
ADD records will not be produced on SYSPUNCH. |
| SSI |
If
coded along with UPDTE the system status information
is included on the IEBUPDTE ADD statements produced on SYSPUNCH.
The SYSPUNCH
DD statement is required for UPDTE. Default is NOSSI. |
| NOSSI |
The
system status information is not placed on the IEBUPDTE ADD statements. |
| SPF |
Generate
ISPF statistics if they exist on the
'./ ADD ' card in a format
to be used with
Bill Godfrey's PDSLOAD program. Would also work with IEBUPDTE to
build the PDS. Default is SPF. |
| NOSPF |
ISPF
statistics are not placed on the IEBUPDTE ADD statements. |
| TRUNC |
For
partitioned datasets with records longer
than 100 bytes, only the first 100 bytes are listed on SYSLIST. |
| LINECNT=nn |
The
number of lines printed per page for SYSPRINT
and SYSLIST is specified by nn. The default
value is 60. This should be changed to
58 for devices which allow a maximum of 66 lines per page, such as a
XEROX 1200 printer. |
| RITS/CRBE |
Used
to inform LISTPDS special processing is required due to 88-byte logical records. |
| CRJE |
Same
function as RITS or CRBE. The default is to
treat partitioned data sets as not being either a RITS, CRBE or CRJE library. |
| NOTRUNC |
For
partitioned data sets with records longer
than 100 bytes, the entire record is produced on SYSLIST.
This will require more than on line. Default
is TRUNC. |
| HEXOUT |
When
specified this will cause the records to be produced in hexadecimal
characters. This is useful for non-source members.
The default is NOHEXOUT. |
| NOHEXOUT |
Produces
the records on SYSLIST just as they
appear in the member. Unprintable characters, not in the "64
character" character set will be printed as blanks unless options are set. |
| NUM |
Output
mode for the NUM option will have the
line number on the left margin followed by a space and then the
remainder of the record image. Datasets with record format
F,
FB, or U are assumed to have the record number in the last 8 bytes of
each record. Datasets with record format V or VB, are assumed to
have the record number in the first 8 bytes record.
This applies to both partitioned
and sequential organization datasets. The default for this option is NONUM. |
| NONUM |
This
option will cause the output format to list
each logical record on a separate line with the same format as the record image. |
| XLATE |
Controls
the use of the 'TR' instuction for SYSLIST
and SYSPRINT output.
Default is to translate
from lower case to upper case. Default=TEXT. |
| NOXLATE |
No translation occurs. |
| TEXT |
Controls
the selection of a translate table for
'XLATE'. Printed text will converted from lower case to upper
case. Default=TEXT. |
| NOTEXT |
Lower
case print is not translated to upper case. |
| EJECT |
If
turned on, each member begins on a new page. The
default is EJECT. |
| NOEJECT |
Triple spacing is used to separate members. |
| SELECT |
This
option controls the processing of a PDS.
The member names specified in the SYSIN file are the only members to be
listed. If
a SYSIN file exists, this option
is assumed to be in effect (unless NOSEL is specified). |
| EXCLUDE |
The
member names specified in the SYSIN file will
NOT be printed if this option is specified. All other members will
be printed. |
| EROPT=TERM |
Processing
will be terminated if an I/O error
occurs while reading SYSLIB. The
default is EROPT=ACC. |
| EROPT=ACC |
Processing
will continue after an I/O error is
encountered while reading SYSLIB. The bad records are ignored. |
| MAXLST=nn |
This
parameter is used to limit the number of
lines listed on SYSLIST. The number specified will cause only the
first nn lines of each member to be listed rather than the whole member. Default
- print all records. |
Control
statements processed from SYSIN - When the SYSIN file contains records, each
dataset (partitioned only) is searched based on the contents of the SYSIN
file. Sequential datasets are not affected by
the SYSIN file. The member names must start in byte 1 and be separated by
commas. A blank will start a
comment field.
Bytes 73 - 80 as well as the comments are ignored. As many statements may
be included as necessary.
Examples of JCL to execute LISTPDS:
|
List the entire contents of SYS1.PROCLIB
|
//LISTPDS
EXEC PGM=LISTPDS
//SYSPRINT DD SYSOUT=A
//SYSLIST DD SYSOUT=A
//SYSLIB DD DISP=SHR,DSN=SYS1.PROCLIB |
|
|
List the selected members of 'SYS1.MACLIB'
|
|
//LISTPDS
EXEC PGM=LISTPDS
//SYSPRINT DD SYSOUT=A
//SYSLIST DD SYSOUT=A
//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB
SAVE,RETURN,OPEN,CLOSE,
GET,PUT,READ,WRITE
/* |
|
|
List the contents of multiple libraries.
|
|
//LISTPDS
EXEC PGM=LISTPDS
//SYSPRINT DD SYSOUT=A
//SYSLIST DD SYSOUT=A
//SYSLIB DD DISP=SHR,DSN=USER1.SOURCE
//
DD DISP=SHR,DSN=USER2.SOURCE
//
DD DISP=SHR,DSN=USER3.SOURCE |
|
|
List only the directories of multiple
libraries.
|
|
//LISTPDS
EXEC PGM=LISTPDS,PARM='NOLIST'
//SYSPRINT DD SYSOUT=A
//SYSLIST DD SYSOUT=A
//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB
//
DD DISP=SHR,DSN=SYS1.LINKLIB
//
DD DISP=SHR,DSN=USER.MACLIB |
|
|
Punch
specific members of 'SYS1.PROCLIB' preceding each member with an
IEBUPDTE './ ADD' card.
The './ ADD' card should also have ISPF statistics in each.
|
|
//LISTPDS
EXEC PGM=LISTPDS,
//
PARM='NOLIST,DECK,UPDTE(><)'
//SYSPRINT DD SYSOUT=A
//SYSLIST DD SYSOUT=A
//SYSLIB
DD DISP=SHR,DSN=SYS1.PROCLIB
//SYSPUNCH DD DISP=OLD,DSN=USER.SEQ.FILE |
To view the job log and output produced from an execution of LISTPDS, use
this link: LISTPDS.OUTPUT.
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 April 22, 2008
. |