Mark's MVS Utilities
Mark's MVS Utilities

Last updated on: 04/29/2017. Check back often for additions to this page. Look for the "NEW" picture next to the file name. This indicates a new or updated file.

About me: Mark Zelden


Before you try to use any of these utilities, you MUST read the disclaimer. Also, please read the notes on ASCII translation (this is especially important if you do not use a U.S. code page).

If you have any questions or comments about these utilities please email me at mark@mzelden.com. You may also leave general comments in my Guestbook.


About the color theme for this site:      Over the years I've had a few people comment that they didn't like the colors on the site or it was hard to read. Since this is a mainframe related site, I chose the colors based on an IBM 3279 terminal operating with extended color attributes. I appologize if it is difficult to read for some of you, but maybe changing the font size larger so the font looks more like a 3278 model 2 or model 5 terminal would help. :-)

Recent Changes
Skip changes

04/29/2017 - Added RXSMF30 program. This is a REXX sample to read SMF 30 records to produce a job accounting report.
10/11/2016 - IPLINFO updates:
1) Add IPA updates for z/OS 2.2: SMFLIM & IEFOPZ.
2) Add JES2 node offset and JES3 FMIDs for z/OS 2.2.
3) Add some additional SMS information from the SMS SSI Vector Table.
4) Add "EDIt" option that can be specified as the 3rd parm to edit the output, similar to the Nobrowse option. Also changed the check in the XLATE_NONDISP subroutine from "> '00'x" to ">= '00'x" after seeing a subsystem with x'00' as part of the name in the edited output (and the ISPF warning about invalid / non-display characters).
5) Add 2G page information to LFAREA display in the VMAP section.
6) Fixed a rounding problem in the "FORMAT_MEMSIZE" subroutine for sizes over 1024G that should be displayed using "M" instead. The problem was seen in the HVSHARE display in the VMAP section.
08/27/2016 - Add 2G page information to LFAREA display in RXSTOR64 and also added a "NODETAIL" option so only system wide totals are displayed for HVSHARE/HVCOMMON/LFAREA.
08/27/2016 - Fixed a rounding problem in the "FORMAT_MEMSIZE" subroutine for sizes over 1024G that should be displayed using "M" instead in the following EXECs: IPLINFO, RXSTOR64, REXXSTOR
08/21/2016 - Added a "Showdups" option to the DELDUPS edit macro which will show the duplicate lines instead of deleting them.
05/15/2016 - Add code to LOGRREXX to remove LS_ALLOCAHEAD(0) if system is not z/OS 2.2. The parm is added to lower level systems after OA44680 for z/OS 2.2 toleration.
04/04/2016 - IPLINFO updates:
1) Reverted change from 3/12/2015 that changed the method of finding the real storage online at IPL for z/OS 2.1 and above. IBM opened APAR OA48094 to fix the original problem.
2) Add an undocumented option alias: SSN for SUBsystems.
04/04/2016 - Updated the assembler ASIDLIST and JOBCHECK programs to support the ASVT in 31-bit storage which is available via DIAGxx CBLOC in z/OS 2.1 and above.
05/21/2015 - Change IPLINFO LFAREA display in z/OS 2.1 and above to include PAGEABLE1M allocations. Before the change these are incorrectly reported as 4K allocations on z/OS 2.1.
05/21/2015 - Change RXSTOR64 LFAREA total display in z/OS 2.1 and above to include PAGEABLE1M allocations. Before the change these are incorrectly reported as 4K allocations on z/OS 2.1.
05/21/2015 - Fix truncation of "PARESZSL" in the IPLINFO page data set display to support the number of slots possibly defined on a 3390-54.
05/14/2015 - Add offset change into IRALCCT for CPC SI info as a comment in IPLINFO for z/OS 1.13 with z13 maintenance applied.
03/12/2015 - IPLINFO updates:
1) Change method of finding online storage at IPL time for z/OS 2.1 and above as CVTRLSTG was not always correct. A field from the RIT is used instead.
2) Add code to show SCM (Storage Class Memory) usage to the "PAGE" section similar to "D ASM,SCM" output for z/OS 2.1 and above.
01/29/2015 - Updated the REXXMEM memory display utility to work with 64-bit addresses. Using 64-bit addresses requires z/OS 2.1 or above.
10/27/2014 - Added the ONEPAK21/TWOPAK21 jobs. These are updates to the ONEPAKZD/TWOPAKZD jobs and can be used to create a "rescue" system from a z/OS 2.1 driving system.
05/07/2014 - IPLINFO updates for z/OS 2.1:
1) Updated GET_CPCSI code for larger offset into IRALCCT to get the CPC SI info for z/OS 2.1.
2) Added JES2 node offset and JES3 FMIDs for z/OS 2.1.
3) IPA additions for z/OS 2.1 - 5 IEASYSxx PARMs:
      PAGESCM, WARNUND, HZS, GTZ and HZSPROC.
05/07/2014 - Updated the REXXMEM help panel.
05/07/2014 - Updated the SMPDELF sample job for deleting an SMP/E function.
05/07/2014 - Updated $SNGLTSO doc related to JES3 for z/OS 2.1.
05/07/2014 - Updated $SNGLTSO doc related to JES3 for z/OS 2.1.
05/01/2014 - Added LFAREA system totals into the VMAP section of IPLINFO similar to the "D VS,LFAREA" operator display output.
11/22/2013 - Added code to IPLINFO to split the "Supported Subsystem Function Codes" display for a given subsystem across multiple lines if needed to avoid truncation.
11/13/2013 - Updated REXXMEM to support indirect storage addressing similar to IPCS.
11/01/2013 - XEF: Changed the check in XEFCLIST for a null data set name in the data set list to be after the code to process the "FIND" option. Version is now 6.4.3
10/07/2013 - Added "Help" to the following edit macros: COLADD, COLUTIL, DELDUPS, DELNX, DELX, EXCL, FILL, INCL, INSLINE, PREFIX, PREFIX2, SUFFIX. Also added a check into "FILL" to make sure the fill data would fit within the columns specified.
10/07/2013 - Updated the "FIND_LABELS" routine in the following edit macros to a better / simpler version: COLADD, COLUTIL, FILL, INSLINE, PREFIX, PREFIX2, SUFFIX
10/01/2013 - Updated the DELDUPS edit macro to allow labels to be used to limit the range of the operation.
08/23/2013 - Added code to IPLINFO to display the ACF2 data set names currently in use plus removed equal sign from "CLPA=" and "CVIO=" in the IPA display. These parms have no value when specified in IEASYSxx. Also changed the code that checks for CLPA used at IPL time to look at a specific BIT in ASMFLAG2.
01/17/2013 - XEF Changes - version is now 6.4.2:
1) Blank out the saved "F" in the option field if any data sets are found that match the search string.
2) Change XEFMENU panel so the command field is now the "Other DSN" field instead of the option field so options that conflict with scrolling remain in the option field while scrolling the list of data sets (M, D, & P). Also added code to the panel to allow the full option name to be used instead of a single character. For example: "EDIT" instead of "E", "BROWSE" instead of "B" etc.
10/22/2012 - Changed the method IPLINFO uses to get the RACF primary data set name and also display the backup data set and multiple (split) data sets if they exist.
07/05/2012 - Added the ONEPAKZD/TWOPAKZD jobs. These are updates to the ONEPAKZ8/TWOPAKZ8 jobs and can be used to create a "rescue" system from a z/OS 1.12 or z/OS 1.13 driving system. ONEPAKZ8/TWOPAKZ8 were also updated with some changes to the comments.
06/18/2012 - XEF Changes - version is now 6.4.1:
1) Force "DSLIST" option when a data set is chosen from the menu that contains a pattern.
2) Added delete member confirmation for the XEF member list and also honor the CONFIRM setting.
06/18/2012 - Added delete member confirmation for XMEMLIST and also honor the CONFIRM setting.
06/18/2012 - Added new "LINETBL" table sample for supporting ISPF line macros natively in z/OS 1.13 (ISPF 6.3) and above.
04/10/2012 - Updated the ISPF Considerations section of the $SNGLTSO doc member related to ISPF profile sharing and z/OSMF.
03/19/2012 - IPLINFO Updates:
1) Added JES2 node offset and JES3 FMIDs for z/OS 1.12 and z/OS 1.13.
2) Added new parms to the IPA display: AUTOR for z/OS 1.12 and above and CATALOG / IXGCNF for z/OS 1.13 and above.
3) Remove RTLS from the IPA display for z/OS 1.13 and above.
02/13/2012 - Changed description of SVCESRMX in IPLINFO SVC display of ESRs from "Max Entries" to "Max ESR Num Supported".
01/03/2012 - Added an "SVC" option / display to IPLINFO and made the help panel scrollable. Also added the IPL TOD (GMT) from the IPA to the IPA section.

A summary of all changes made since November 1999 can be found by clicking here.


Index of this page

  1. ISPF Edit Macros
  2. TSO REXX EXECs and CLISTs
  3. Batch Programs and Routines
  4. XEF - eXtended Editor Facility
  5. Sample JOBs and Documentation
  6. Notes on ASCII Translation
  7. Disclaimer
  8. Thanks
  9. Guestbook
A TSO XMIT file format, that includes any updates since the current CBT version, is available on this site as CBT434.ZIP (800K).

You can also download these utilities from the CBT Tape Homepage in TSO XMIT format - CBT FILE # 434 (800K).

The updated file may also be on the CBT Updates Page in TSO XMIT format - CBT FILE # 434 (800K).

Instructions on how to use TSO XMIT files can be found at the Download CBT Tape section of the CBT Tape Homepage.

All downloadable files on this page are also contained in MVSUTILS.ZIP (800K). (please see the Notes on ASCII Translation)

General instructions for installing and using these utilities can be found by clicking here.

An index and description of all members on the TSO XMIT format file (which is essentially the same as the downloadable files on this site) can be found by clicking here.


ISPF Edit Macros

Return to top | Index | Next Section | Previous Section

Roscoe users might recognize some of these edit macros that I wrote to simulate fuctions that were built into Roscoe when I last used it (1986).

File Name Macro Description and Usage Examples

INCL.TXT
Include only lines that contain a specified search string. The search string can optionally be limited to specific columns.
Examples:
INCL ' JOB'
INCL '//' 1 2

EXCL.TXT
Exclude all lines that contain a specified search string string. The search string can optionally be limited to specific columns.
Examples:
EXCL UNIT=SYSDA
EXCL ' DD ' 3 12

DELX.TXT
Delete all lines that contain a specified search string. The search can optionally be limited to specific columns.
Examples:
DELX VOL=SER=WORK01
DELX '//*' 1 3

DELNX.TXT
Delete all lines that contain a specified search string. The search can optionally be limited to specific columns. Roscoe calls this "DELS" (rename if desired).
Examples:
DELNX UNIT=CART
DELNX 'SYSOUT=*' 3 16

FILL.TXT
Fills column(s) with characters. The fill can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Examples:
FILL 1 2 '/'
FILL 2 7 'DELETE' .A .B

PREFIX.TXT
Add a character string prefix to the beginning of a line before the first non-blank character, shifting data to the right. The prefix can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Examples:
PREFIX "'"
PREFIX 'DELETE ' .A .B

PREFIX2.TXT
Add a character string prefix to the beginning of a line before the first non-blank character. The prefix can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Examples:
PREFIX2 "'"
PREFIX2 'DSN=' .A .B

SUFFIX.TXT
Add a character string suffix to the end of a line after the last non-blank character. The suffix can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Examples:
SUFFIX "'"
SUFFIX ',DISP=SHR' .A .B
DB.TXT Delete all lines from the line the cursor is on to the bottom line. This MACRO can be implemented as a true line command with the help of ISPF developer Doug Nadel's LMAC program, and this LINEMAC edit macro. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.
DT.TXT Delete all lines from the line the cursor is on to the top line. This MACRO can be implemented as a true line command with the help of ISPF developer Doug Nadel's LMAC program, and this LINEMAC edit macro. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.
LINEMAC.TXT Edit macro needed to implement DB , DT , ZB , ZE , and ZV as true line commands. This MACRO must to be used in conjuction with ISPF developer Doug Nadel's LMAC program. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.

LINETBL.XMI
EDIT line command table needed to implement DB , DT , ZB , ZE , and ZV as true line commands under z/OS 1.13 and above without the use of LMAC.

COLADD.TXT
Total numbers in a specified column range. An optional parameter of "HEX", "ZONE", "PACK", or "BIN" is needed to add hexadecimal, zoned decimal, packed decimal, or binary data. "DEC" is the default addition type. The operation can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Examples:
COLADD 10 25
COLADD 33 40 HEX
COLADD 25 30 DEC .A .B
COLADD 10 29 ZONE
COLADD 10 16 PACK
COLADD 40 44 BIN
COLADD 44 57 X .FROM .TO

COLUTIL.TXT
Column manipulation utility which can either MOVE, COPY or SWAP columns to a new location (move is the default), SHIFT columns right or left, or CUT (copy) data from specific columns to the ISPF Default Clipboard to be used with paste later on. The operation can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
Move Examples:
COLUTIL 10 20 5
COLUTIL 10 14 35 MOVE .A .B

Copy Examples:
COLUTIL 35 40 12 COPY
COLUTIL 10 14 35 C .A .B

Swap Examples:
COLUTIL 25 30 15 SWAP
COLUTIL 40 50 10 S .A .B

Shift Examples:
COLUTIL LEFT 3
COLUTIL R 5 .A .B

Cut Examples:
COLUTIL CUT 10 15
COLUTIL C 30 40 .A .B

INSLINE.TXT
Insert a character string or previously "CUT" data from the ISPF Default Clipboard either after or before every line. The insert can optionally be limited to specific lines if labels are used. Excluded lines are omitted from the operation.
After Examples:
INSLINE '// DISP=SHR' A
INSLINE '// DISP=SHR' A .FROM .TO
INSLINE PASTE A
INSLINE PASTE A .FROM .TO

Before Examples:
INSLINE ' DELETE +' B
INSLINE ' DELETE +' B .FROM .TO
INSLINE PASTE B
INSLINE PASTE B .FROM .TO


DELDUPS.TXT
Sort and delete all duplicate lines. The duplicate search can optionally be limited to specific columns and/or lines by using labels. An optional parameter of "Showdups" may be specified and all the duplicate lines will be shown instead of being deleted. The "Showdups" option may be appreviated by using one or more of its characters.
Examples:
DELDUPS
DELDUPS show
DELDUPS 10 15
DELDUPS 10 15 Showdups
DELDUPS .from .to
DELDUPS .from .to s
DELDUPS 43 57 .here .there
DELDUPS 43 57 .here .there Show
DELDUPS .to .from 43 57
DELDUPS .to .from 43 57 show
SW.TXT
Switch from VIEW to EDIT and visa versa. For use with sequential files it requires XVIEW/XEDIT or a similar EXEC/CLIST.
LMPREXX.TXT
This edit macro helps manage CA LMP keys.
ZBROWSE.TXT BROWSE the dataset on the line that the cursor is at. This MACRO can be implemented as a true line command with the help of ISPF developer Doug Nadel's LMAC program, and this LINEMAC edit macro. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.
ZEDIT.TXT EDIT the dataset on the line that the cursor is at. This MACRO can be implemented as a true line command with the help of ISPF developer Doug Nadel's LMAC program, and this LINEMAC edit macro. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.
ZVIEW.TXT VIEW the dataset on the line that the cursor is at (ISPF V4). This MACRO can be implemented as a true line command with the help of ISPF developer Doug Nadel's LMAC program, and this LINEMAC edit macro. For z/OS 1.8 and above, LMAC should be downloaded from IBM's ISPF web site.
For z/OS 1.13 and above, LMAC is not needed and you can use the LINETBL EDIT line command table to support EDIT line command macros nativly without LMAC.
EDMACALL.TXT This is a REXX exec that can be used to run an edit macro against all members of a PDS.
CUT & PASTE
ALL FILES BELOW:
CUTPASTE.ZIP
CLISTS:
CUT.TXT
PASTE.TXT
PANELS:
CUTDEF.TXT
CUTDEF@.TXT
CUTHELP@.TXT
CUTHELP1.TXT
CUTHELP2.TXT
CUTHELP3.TXT
CUTHELP4.TXT
CUTHELP5.TXT
CUTPROM.TXT
CUTPROM@.TXT
PASTEDEF.TXT
PASTEDF@.TXT
PASTEPR@.TXT
PASTEPRM.TXT
CUT data, and then PASTE it into a different member. The ISPF panels must be put into a library in the ISPPLIB concatenation.

These CLISTs and panels were originally taken from file 182 of the CBT tape which is available through NaSPA, or can be downloaded from the CBT Tape Homepage.

Examples:
CUT (will CUT whole member or lines marked with a "C"/"CC" or "M"/"MM" line commands)
CUT R (will replace the current CUT data)
CUT H (will display help panels)
CUT D (set up CUT defaults)
PASTE (will PASTE last cut data into an empty member or before a "B" or after an "A" line command)
PASTE K (will PASTE the last CUT data and keep it to use for another PASTE)
PASTE H (will display help panles)
PASTE D (set up PASTE defaults)


TSO REXX EXECs and CLISTs

Return to top | Index | Next Section | Previous Section

All of the REXX EXECs and CLISTS listed after ISPCMDSA.TXT are best used when set up as ISPF Commands. The ISPCMDSA CLIST is an example of how to add these commands on a temporary basis without actually modifying the ISPF Command Table (ISPCMDS).

File Name File Description and Usage Examples

IPLINFO.TXT
Displays IPL and other system information on your terminal. Some of the things displayed are the IPL address and volser, the IPL date and time, the IPL LOADPARM, IODF information, the master catalog name, the real and expanded storage sizes, the maximum private area size below the 16Meg line, storage sizes for CSA/ECSA, SQA/ESQA and V=R, CPU information, values from LOADxx and IEASYSxx, a virtual storage map, static system symbol values, page data set usage, SMF data set usage, subsystem information, ASID (ASVT) usage, the LPA library list, the LNKLST library list, the APF library list and SVC information. IPLINFO can also be executed as an ISPF edit macro or from the Unix System Services environment - including the WEB server.
Examples:
TSO %IPLINFO       (Display all information)
TSO %IPLINFO VMAP  (Display a Virtual Storage Map)
TSO %IPLINFO SYM   (Display Static System Symbols)
TSO %IPLINFO SUB   (Display Subsystem Information)
TSO %IPLINFO APF   (Display APF Library List)

Here is sample IPLINFO output.

IPLINFO can also be called as a REXX function to return up to 20 variables used in the exec.
Examples:
sysname = IPLINFO(VAR,GRSNAME)
pvtsize = IPLINFO(VAR,GDAPVTSZ)
ipl_sum = IPLINFO(VAR,IPLDATE,IPLTIME,IPLADDR,IPLVOL,IPLPARM)
IPLHIST.TXT This exec executes IPLINFO as a REXX function and writes a one line summary of the IPL information to a history data set. It is meant to be executed as an STC at IPL time from COMMNDxx. See the source code for sample execution JCL. Also see the "LASTIPL" exec.
LASTIPL.TXT This exec displays the last (latest) IPL information for all LPARs using the IPL history data set that is updated from the IPLHIST exec. Also see "IPLHIST".
LPROG.TXT Displays LPA list, LNKLST, and APF list libraries.
Examples:
TSO %LPROG       (display LPA, LNK, & APF Lists)
TSO %LPROG LPA   (display LPA list)
TSO %LPROG LNK   (display LNKLST)
TSO %LPROG LINK  (display LNKLST)
TSO %LPROG APF   (display APF list)
CATSRCH.TXT REXX exec that uses the Catalog Search Interface (CSI) to quickly search for catalog entries. A generic HLQ can also be used (some shops don't allow this with ISPF 3.4). I've also included an optional ISPF panel, CATSRCHP.TXT, and an invocation exec CAT.TXT, which displays the optional panel.
KEYSWAP.TXT Swaps PFKEYS 1 thru 12 with PFKEYS 13 thru 24. Usefull when you keep having to switch terminal types (happens often to consultants!)
APFVER.TXT APF LIST verification utility. Checks for existence of libraries in the in-storage APF List. This will help you clean up all those obsolete APF entires!
Example:
TSO %APFVER
LNKVER.TXT LINK LIST verification utility. Checks for invalid syntax (missing / extra commas), for data sets not cataloged in the master catalog, invalid link list data sets (not a PDS or RECFM=U) and the concatenation algorithm:
    (32) + (16n) + (k-1)
    n = the number of DASD extents (PDSE counts as 1)
    k = the number of data set in the link list
The result of the algorithm cannot exceed 2040. If running DFSMS/MVS 1.3 or later, then the only restriction is that the total number of extents must not exceed 255.
Examples:
TSO %LNKVER
TSO %LNKVER LNKLST00
TSO %LNKVER IEASYS01 DETAIL
INDIRECR.TXT This exec will take a list of data sets and create IDCAMS control cards to indirectly catalog them.
Examples:
TSO %INDIRECR
TSO %INIDRECR MASTER.CAT
TSO %INIDRECR MASTER.CAT &SYSR2

REXXMEM.TXT
This exec can be used to display memory in "dump" format similar to IPCS.
Examples:
TSO %REXXMEM                (display syntax, notes & examples)
TSO %REXXMEM 0              (start at x'00000000' for x'100')
TSO %REXXMEM 10 100         (start at x'00000010' for x'100')
TSO %REXXMEM x'10' x'100'   (start at x'00000010' for x'100')
TSO %REXXMEM FD0740         (start at x'00FD0740' for x'100')
TSO %REXXMEM FD0746 64      (start at x'00FD0746' for x'64')
TSO %REXXMEM 4C%            (24-bit ptr to stor at x'4C')
TSO %REXXMEM 10.%%          (24-bit ptr x'10' + 2nd 24-bit ptr)
TSO %REXXMEM 10?            (31-bit ptr to stor at x'10' - CVT)
TSO %REXXMEM 10?+8C? 200    (point to ECVT stor for x'200')
TSO %REXXMEM 10?+22C? 1E00  (point to ASVT stor for x'1E00')
TSO %REXXMEM 10?+8C?+188? 1000   (point to IPA for x'1000')
TSO %REXXMEM 1FFFFF00000         (64-bit address display)
TSO %REXXMEM 1FF_FFF00000 200    (64-bit display for x'200')
REXXSTOR.TXT This exec will show the virtual storage usage of the task that invokes the REXX exec. This could be an interactive TSO user, a batch TSO step, or even a Unix System Services user / Web server. For z/OS 1.2 and above running in z/Architecture mode it also displays the MEMLIMIT. I've used this exec to test the affects of the IEFUSI SMF exit on region size and MEMLIMIT. I've included sample JCL to execute REXSTOR in batch - REXXSTOJ.TXT.

There is a modified version of this exec written by Janek Jakubek called MXIVSTOR that uses a freeware tool called MXI to display the virtual storage usage of another address space. MXIVSTOR can be found on CBT file 394 available at the CBT Tape Homepage. MXI is available from Rocket Software.

RXSTOR64.TXT
This exec will show the 64-bit MEMLIMIT and 64-bit storage usage for all ASIDs running in the system. In addition is will show system wide summaries for 64-bit shared virtual (HVSHARE), 64-bit large memory objects (large / 1M page support) and 64-bit common storage (HVCOMMON) at the appropriate software levels.

Here is an example of RXSTOR64 output.
CMD34.TXT This exec can be used to execute commands against an ISPF 3.4 type DSLIST. If slashes are found as part of the command the data set name will be substituted in place of the slashes similar to what ISPF 3.4 does.
Examples:
TSO %CMD34 SYS2.OLD.PRODUCT.HLQ HMIG
TSO %CMD34 SOME.HLQ* LISTC ENT(/) VOL
TSO %CMD34 HLQ.OLD.JUNK DEL /
HLISTB.TXT Browse the output of a HLIST DA BCDS (backup) command. This works well when typed next to a data set on an ISPF 3.4 DSLIST.
Examples:
TSO %HLISTB USERID.JCL.CNTL
HLISTBL.TXT Browse the output of a HLIST DA LEVEL BCDS (backup) command.
Examples:
TSO %HLISTBL USERID
HLISTM.TXT Browse the output of a HLIST DA MCDS (migrate) command. This works well when typed next to a data set on an ISPF 3.4 DSLIST.
Examples:
TSO %HLISTM USERID.JCL.CNTL.OLD
HLISTML.TXT Browse the output of a HLIST DA LEVEL MCDS (migrate) command.
Examples:
TSO %HLISTML USERID
EDMACALL.TXT This is a REXX exec that can be used to run an edit macro against all members of a PDS.
CALC.TXT REXX Calculator. Because CALC is an ISPF TSO command supplied by IBM, this REXX exec must be renamed or invoked using a percent sign as follows:
"TSO   %CALC" .
ISPCMDSA.TXT Temporarily adds commands to the ISPF Command Table (ISPCMDS).
XEDIT.TXT Recursively EDIT a data set from the TSO command line.
Examples:
XE 'MY.PDS(ABC*)'
XE PDS.NOTCAT USER01
XBROWSE.TXT Recursively BROWSE a data set from the TSO command line.
Examples:
XB 'MY.PDS(ABC*)'
XB PDS.NOTCAT USER01
XVIEW.TXT Recursively VIEW a data set from the TSO command line (ISPF V4).
Examples:
XV 'MY.PDS(IE*)'
XV PDS.NOTCAT USER01

XMEMLIST.TXT
Recursively MEMLIST a data set from the TSO command line.
Examples:
XM 'MY.PDS(DB*)'
XM 'PDS.NOTCAT' USER01
XDSLIST.TXT Recursively DSLIST (ISPF 3.4) a data set level from the TSO command line.
Examples:
XD     (USERID.* used by default)
XD SYS2.*.PROCLIB
XD SYS2.NOTCAT USER01
XLISTC.TXT Recursively IDCAMS LISTCAT ALL a data set from the TSO command line. The output goes into a browse data set that can be scrolled. Works great when typed next to a DSN on ISPF option 3.4.
Examples:
XL 'MY.VSAM.FILE'
XL 'SMPE.GLOBAL.CSI'
TSOB.TXT BROWSE the output from a TSO command.
Examples:
TSOB LISTA STA
TSOB PROFILE
TSOE.TXT EDIT the output from a TSO command.
Examples:
TSOE LISTA STA
TSOE PROFILE
TSOV.TXT VIEW the output from a TSO command.
Examples:
TSOV LISTA STA
TSOV PROFILE
TSOR.TXT REVIEW the output from a TSO command. TSOR requires the REVIEW command from CBT file 134 or 135 and can be used under native TSO without ISPF.
Examples:
TSOR LISTA STA
TSOR PROFILE
AMBCLIST.TXT
AMBPANEL.TXT
Interactive AMBLIST using panel input. The AMBPANEL ISPF panel must be put into a library in the ISPPLIB concatenation.
BLKCLIST.TXT
BLKPANEL.TXT
Interactive BLKDISK (BLK3380) using panel input. The BLKPANEL ISPF panel must be put into a library in the ISPPLIB concatenation. The BLKDISK command can be found on file 296 of the CBT tape which is available through NaSPA, or can be downloaded from the CBT Tape Homepage.

FINDMOD.TXT Quickly find the location of a module (or modules). The specified module name may be fully qualified or any valid ISPF member pattern. By default, the LPA and LNKLST concatenation are searched. Alternatively, a "search list member" may be specified. In order to use the search list, the libraries to search must be manually added to a PDS member (or members). This gives FINDMOD the advantage of being able to search any library. I include PROC libs and CLIST libs in one of my alternate search lists. I've included a sample search list - FINDASYS.TXT.
Examples:
FINDMOD (will prompt for modname)
FINDMOD IEFBR14 (search LPA/LNKLST)
FINDMOD A%R* (use pattern to search)
FINDMOD DFHCSA FINDCICS (use alt list)
FINDMOD MXG* FINDPROC BOTH (altlist+LPA/LNK)
FVE.TXT Fast View/Edit of data sets.
This REXX exec is intended to work with ISPF command table entries to create "shortcuts" for VIEWing or EDITing data sets or data set concatenations. The source code includes the instructions for updating the ISPF command table entries and there are also examples of adding the entries dynamically in the ISPCMDSA CLIST. It can also serve a dual purpose as a "member search" facility in library concatenations.

The exec must be customized for your use, but I've included the basic framework in the supplied example. The possibilities for creating shortcuts are endless. See the source code for full details and usage.


Batch Programs and Routines

Return to top | Index | Next Section | Previous Section

File Name File Description
RACFUDEL.TXT REXX program to Remove obsolete users from the RACF Database, remove their RACF dataset profiles, and delete their datasets and aliases from catalogs.
TAPESTAK.TXT REXX Tape stacking program (works with CA-1).
DELDUPS2.TXT REXX Duplicate Record Deletion Program.
This program will sort a file and delete records that have duplicate characters between user specified columns. The main difference between this program and the DELDUPS Edit Macro is that this program writes the duplicate records to a seperate file, and can run as a batch job for processing large files.
RDATE.TXT REXX date conversion routine.
Convert MM DD YYYY, YYYY DDD, or NNNNN to standard date output that inclues the day of week and the number of days (NNNNN) from January 1, 1900. This is not the same as the Century date! Valid input dates range from 01/01/1900 through 12/31/2172. A parm of "TODAY" can also be passed to the date conversion routine. The output format is always as follows:
MM/DD/YYYY.JJJ NNNNN WEEKDAY

This program is called as an internal subroutine in several other programs and EXECs on this page.
RDATEF.TXT REXX function version of RDATE.
ACBCHECK.TXT This program will check if a VTAM ACB is available and if it is not the program will wait 15 seconds and try again. It will keep trying for up to 15 minutes. It can be put into STCs as the first step so the STC can be started at IPL time via COMMNDxx before VTAM is active. The program must be passed a parm of the ACB to check.

ASIDLIST.TXT ASIDLRX.TXT
Address Space ID List Program.
These programs will list the names of all ASIDs in the system, their ASCB address, their ASID number in hex and decimal, and provide the following totals:

TOTAL ADDRESS SPACES IN THE SYSTEM
TOTAL ACTIVE ADDRESS SPACES IN THE SYSTEM
TOTAL AVAILABLE ADDRESS SPACES IN THE SYSTEM
TOTAL NON-REUSABLE ADDRESS SPACES IN THE SYSTEM

The programs also display MAXUSER and usage of RSVSTRT and RSVNONR from IEASYSxx.

JOBCHECK.TXT
JOBCHKRX.TXT
These programs check if a job or task is running on the system and set a return code based on the results. The job/task to check is passed to the program VIA parm.

LOGRREXX.TXT
This program takes the output from LIST LOGSTREAM (PGM=IXCMIAPU) and creates logstream DELETE/DEFINE cards that can be used as input to IXCMIAPU. This was developed for use at a disaster recovery site.
REXXSCAN.TXT This program scans an input file for parm string(s). See the program source for more detail and JCL.

RXSMF30.TXT
This program reads SMF 30 records to products a job accounting report. Sample execution JCL is contained within the source code.
SDSF@DR.TXT This program takes the output in the spool and copies it to individual data sets using the SDSF REXX environment. Its original intent was to be used at a DR site and then "reverse mirror" the output DASD volume(s) back to the primary site. See the program source for details and sample execution JCL.
VTOCTOT.TXT This program processes the output of the CBT VTOC command and produces totals by high level qualifier. The VTOC command can be found on file 112 of the CBT tape which is available through NaSPA, or can be downloaded from the CBT Tape Homepage.


XEF - eXtended Editor Facility (V6.4.3)

Return to top | Index | Next Section | Previous Section

XEF is an ISPF dialog application that is used for BROWSING, VIEWING, EDITING, or COMPRESSING a dataset. It allows you to choose a dataset from a menu instead of typing in the entire dataset name. XEF can also be used to obtain DATASET INFORMATION or display a DATASET MEMBER LIST of a partitioned dataset. From the member list you can select members to be BROWSEd, VIEWed, EDITed, DELETEd, RENAMEd, or PRINTed. Using the DSLIST option, a dataset pattern can be entered to display a Data Set List that is like ISPF option 3.4. If the CBT PDS command is installed, XEF can also interface with it.

Here is a sample XEF menu screen shot from a 3270-2 terminal. If using a terminal type with more rows (model 3, model 4, model 5) you obviously can see more data sets without having to scroll through the list. I use a custom size terminal (62 x 142) and I can see all 99 data sets on my menu at once.

A summary of XEF changes can be found by clicking on the XEFCLIST file.

** Note: If you want to run XEF 6.4.3 on systems below OS/390 2.10 use the XEFMENUB panel instead of XEFMENU. You should rename the panel to XEFMENU during installation. XEF 6.4.3 will function as it would on systems running OS/390 2.10 or higher, however, no verification is done for valid data set names or patterns when adding the names to the XEF main menu. This should work on any OS/390 system below OS/390 2.10 or MVS/ESA V5 systems (ISPF 4.2 or above is required).

All XEF files listed below are also contained in XEF.ZIP.   XEF V6.4.3 requires OS/390 2.10 (ISPF V5) or above. For older systems you can still download XEF V6.2 - XEFV62.ZIP   (both are TSO XMIT format).

CLISTs (add to library in SYSPROC concatenation)

File Name File Description

XEFCLIST.TXT
eXtended Editor Facility CLIST (note that only XEFCLIST changed between V6.4 and V6.41
XEF.TXT REXX exec to invoke XEF (optional if using ISPF command tables or an option menu to invoke XEF)
XEFLIBD.TXT REXX exec to invoke XEF (same function as XEF exec but uses LIBDEFs)

Messages (add to library in ISPMLIB concatenation)

File Name File Description
XEF00.TXT eXtended Editor Facility Messages

Panels (add to library in ISPPLIB concatenation)

File Name File Description
XEFMENU.TXT eXtended Editor Facility Main Menu
** XEFMENUB.TXT eXtended Editor Facility Main Menu (optional)
XEFINF.TXT eXtended Editor Facility Dataset Information Panel (SEQ)
XEFINFD.TXT eXtended Editor Facility Dataset Information Panel (PDS)
XEFINFE.TXT eXtended Editor Facility Dataset Information Panel (PDSE)
XEFINFP.TXT eXtended Editor Facility Dataset Information Panel (PDS SMS)
XEFINFS.TXT eXtended Editor Facility Dataset Information Panel (SEQ SMS)
XEFHELP.TXT eXtended Editor Facility Help Panel #1
XEFHELP2.TXT eXtended Editor Facility Help Panel #2
XEFHELP3.TXT eXtended Editor Facility Help Panel #3
XEFHELP4.TXT eXtended Editor Facility Help Panel #4

XEF is invoked by selecting the main menu panel - XEFMENU. It can be added to an existing ISPF option panel or is best used when set up as a command in the ISPF Command Table (ISPCMDS). The ISPCMDSA CLIST on this page has an example of how to add the XEF command on a temporary basis without actually modifying the ISPF Command Table.



Sample JOBs and Documentation

Return to top | Index | Next Section | Previous Section

This section contains various sample JOBs and documentation that people have asked me to make available, or that I feel would be helpful.

File Name File Description
$RXINTRO.ZIP "Introduction to TSO/E REXX" document from a class I gave at one of my clients. The file was created using Microsoft Word (zipped).
$ROOTSHR.TXT Doc for setting up a shared UNIX root file

$SNGLTSO.TXT
Doc for using the same TSO USERID in a shared environment. I have provided the following samples to implement this:
ISPF defaults source update - ISPDFLTS.TXT
ISPXDT and ISPF exit 16 source - ISPEX16.TXT
JES2 source update (OS/390 R10 & z/OS R1) - UMJES01.TXT
JES2 source update (z/OS R2 and above) - UMJES012.TXT
JES2 source update (prior to OS/390 R10) - UMJES01O.TXT
JES3 source update - UMJES06.TXT
$WLMMONO.TXT Doc for setting up WLM in a MONOPLEX
CLONERES.TXT Sample jobstream to clone a two volume sysres set and SMP/E target zones.
CLONERSO.TXT Old version of CLONERES.
$ONEPAK.TXT Doc for using DFSMSdss instead of FDRCOPY to create ONEPAK and TWOPAK systems.
ONEPAKZ3.TXT Sample jobstream to build a one pack "rescue" system from a z/OS 1.3 driving system.
ONEPAKZ6.TXT Sample jobstream to build a one pack "rescue" system from a z/OS 1.6 driving system.

ONEPAKZ8.TXT
Sample jobstream to build a one pack "rescue" system from a z/OS 1.7 - z/OS 1.11 driving system.

ONEPAKZD.TXT
Sample jobstream to build a one pack "rescue" system from a z/OS 1.12 - z/OS 1.13 driving system.

ONEPAK21.TXT
Sample jobstream to build a one pack "rescue" system from a z/OS 2.1 driving system.
ONEPAK43.TXT Sample jobstream to build a one pack "rescue" system (created for ESA 4.3, but is still a good sample of the required steps).
TWOPAKZ3.TXT Sample jobstream to build a two pack "rescue" system from a z/OS 1.3 driving system. Same as ONEPAKZ3 but also includes Unix System Services, TCP/IP, and ISHELL.
TWOPAKZ6.TXT Sample jobstream to build a two pack "rescue" system from a z/OS 1.6 driving system. Same as ONEPAKZ6 but also includes Unix System Services, TCP/IP, and ISHELL.

TWOPAKZ8.TXT
Sample jobstream to build a two pack "rescue" system from a z/OS 1.7 - z/OS 1.11 driving system. Same as ONEPAKZ8 but also includes Unix System Services, Unicode, TCP/IP and ISHELL.

TWOPAKZD.TXT
Sample jobstream to build a two pack "rescue" system from a z/OS 1.12 - z/OS 1.13 driving system. Same as ONEPAKZD but also includes Unix System Services, Unicode, TCP/IP and ISHELL.

TWOPAK21.TXT
Sample jobstream to build a two pack "rescue" system from a z/OS 2.1 driving system. Same as ONEPAK21 but also includes Unix System Services, Unicode, TCP/IP and ISHELL.
SMPBLD1.TXT Job to build an SMP/E environment from scratch. All VSAM SMP/E zones are created within the same physical VSAM data set.
SMPBLD2.TXT Job to build an SMP/E environment from scratch. The VSAM SMP/E zones are created as separate physical VSAM data sets.
SMPBLD3.TXT Job to build a new SMP/E target zone, dlib zone, and other required SMP/E data sets into an existing global zone.
SMPDELF.TXT Sample job to delete an FMID from a set of SMP/E zones and libraries.


Notes on ASCII translation

Return to top | Index | Next Section | Previous Section

ASCII translation is not an issue if the TSO XMIT format download is used. A TSO XMIT file format that includes all files is available. I STRONGLY suggest you use the TSO XMIT file instead of individual downloads or the ASCII zip file. If you do not use a U.S. code page, this is even more important!

There are two characters in most of the REXX and CLIST code that don't translate to ASCII. The logical OR (solid bar like |) and the logical NOT ( usually upper case 6 on a real 327X terminal). You might have to manually fix these in the code after uploading the files to the mainframe. If they end up as non displayable characters, the easiest way to find them is by using the following ISPF command:
The logical NOTs are usually next to an equal sign (=). The logical ORs are usually in an IF statement, or two of them are used together to indicate concatenation (||). Use the ISPF CHANGE ALL command to fix them as in the following examples:
Note that the X'52' and X'6A' in the above examples will vary depending on the translate table that is used for uploading the files to the mainframe. Also, these files were downloaded at different times using different transfer software, so don't assume that the changes for one file will be the same for another one. Don't forget to use the ASCII and CRLF options of your file transfer product. Please do not use CUT and PASTE to copy the files from your PC to the mainframe!


Disclaimer

Return to top | Index | Next Section | Previous Section

The downloadable files on this site are FREEWARE . Use at your own risk. Neither Mark Zelden, nor other contributing organizations or individuals accept any liability of any kind howsoever arising out of the use of these files. You are free to use and modify these files as you desire, however, the author does ask that you leave his name in the files and give credit to him as the original programmer.

Notes on ASCII translation

Thanks

Return to top | Index | Next Section | Previous Section

Thanks to the following people for adding links to this page:

Bruce R. Gillispie - Mainframe, Midrange, & Micro Computers
Bal Oberoi - Mainframe Programming - Useful Links
David Alcock - Planet MVS
Sam Knutson - Knutson's Home Page and CBT Tape Home Page
Doug Nadel - A Few OS/390 Tools and Toys. Although this site no longer exists you can still find references and code at the Internet Archive Internet Archive
The Rexx Language Association - The Rexx Language Association Links
Frank Clarke - Frank Clarke's Home Page
Lionel B. Dyck - OS/390 and z/OS Freeware
Nico Rizzuto - Rizzuto IT
IBM Mainframes - IBM Mainframe Forum, Manuals, Programs and download
Michel Castelei - Michel Castelein's Home Page (education consultant/instructor)
Eric Loriaux - Eric Loriaux' System z home page
Robert Prins - Prino's z/OS Tools and utilities



Thanks for visiting!
The Zelden's Homepage Mini-Banner



Before you leave, please sign my new Guestbook (even if you signed an old one)!!

View/Sign Mark's New Guestbook

Old Guestbooks
View Lycos Guestbook Guests (Retired in April 2012)
View Original Guestbook Guests (1997-2000)



Return to top | Index | The Zelden's Homepage


Angry Dino Mark's MVS Utilities is part of the Dinos Web Ring.

[Skip Prev] [Prev] [Next] [Skip Next]
[Random] [Next 5] [Rate] [Ring Hub]


Want to join the Dinos Web Ring?


This page has been accessed 638936 times since January 1, 1997.