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:


Return to Site Home Page 


This page was last updated on January 17, 2015 .