z/OS Mainframe

Over the years, I have developed a number of utilities and ISPF applications for the MVS platform. I have packaged some for download. Apart from the websites listed in Web Development and user exits in MVS & JES3, a few notable ones I have developed include:

  • IODF
    Written in PERL, this would display the contents of the IODF in HTML. This was released on CBT Tape under File #736 - a more up to date version has been incorporated in a website - see Web Development for more details.

    An Assembler program to extract information on IBM DASD and PPRC pairs with their status. This is used in conjunction with REXX to compare the changes and email the Storage managers.

    Originally written in REXX as a proof of concept, this suite was written in Assembler with supporting REXX programs. Its intention was to replace a ISV product which had stopped working when we moved to 64bit back in 2004. However it has evolved and allowed us to add a number of new features and commands that were requested by various teams. It features Object Lists, Extended VTOC, Command Shell and Member List.

  • ATM
    I designed and coded a new in-house automaton package in REXX for the MVS systems. This involved common rules for started tasks, dependencies, VTAM nodes, a database for the started tasks and JES3 groups/classes and all associated rules. This reduced complexity and increased the availability of subsystems as the monitor would automatically restart subsystems if they abended. This replaced a previous in-house automaton which was undocumented and prone to errors.

    This was adapted from 3 different programs and written in C to send emails and attachments from MVS batch jobs.

  • Alternate Master Catalog
    Written in REXX to extract catalog information and rebuild an alternate master catalog on a secondary configuration volume which would be used in a disaster.

System Logger Reader

v2.0.5 (21 Jan 2014)

Written in 64-bit z/OS Assembler. This program extracts data from the MVS System Logger logstream using multi-block reads. Data is extracted for the previous, current day or between specified dates with filters which include Jobname, System ID, Message and Search text.

A previous version was available on CBT Tape under File #747

TCP/IP Trace Parser

v1.3.1 (02 May 2017)

Written in z/OS Assembler. This program was initiated from a project requirement to search for strings in packets from z/OS TCP/IP trace data - a feature that was missing from IBM's IPCS at the time. This was made even more difficult as the format of the CTRACE blocks and IP blocks were not present in IBM's documentation at the time. As there is a large amount of data to be processed, it is read into a dataspace and parsed, then the output is written to DD:SYSPRINT. A TSO/ISPF front end was also developed to aid the end-user when searching for specific dates/text etc.

System Data

v1.8.0 (06 Aug 2018)

After working with the Mainframe systems for some time, I found myself trawling through the CBT website, looking for utilities and understanding the layout of the control blocks of the system. And while each gave me something, I wanted all of the data accessible in one place. I spent a year, on and off, creating an 31-bit Assembler modules which were to be called by a started task. The result was System Data.

This set of programs analyses the MVS system and produces either output in the DD:SYSPRINT or writes it to a PDS member. I also wrote a program to interface with BCPii to collect data at the processor level, and to collect data on the DASD configuration. I use these at my company to feed into two TSO CLISTs and a website.


I'm Mark, and I have worked as an IT professional for over 30+ years. I currently design and develop websites and Android apps when I'm not working on Mainframe systems. When not going stir-crazy in front of my screens, I like nothing more than drinking real ale and doing yoga.

Want to get in contact? Details are on the main page.