System Utilities

1 - Show the current status of jobs

This program determines the status of jobs by sending commands to the SDSF server (program ISFAFD). The results are presented to the user by browsing a temporary dataset.

The only possible parameter is the job prefix, which is defaulted as your TSO user id.

Here is the program and a HTML file showing a sample output:

2 - Show environmental information within ISPF

SYSINFO gathers some (more or less useful) information from ISPF variables, REXX variables, and MVS variables and shows them to the user by browsing a temporary dataset.

Here is the program and a HTML file showing a sample output:

3 - Check whether a user is connected to a RACF group

CHECKGRP crawls through various control blocks to check whether a user is connected to a RACF group specified as a parameter.

Here is the program source code:

4 - Transfer a dataset between 2 mainframe hosts

Whenever you have no possibility to share a volume between two machines or to use some kind of file transfer between source and target machine directly, you might be thinking about transferring the dataset to your local workstation and upload it from there to the desired target.

Here is the DOS script:

5 - Extract and analyze the COBOL signature bytes contained in a load module

The COBOL compiler writes a lot of information into the load module. The so called "signature bytes" contain information of all compiler options used, the number of data division statements and procedure division statements, the compiler version, the compile date and time and more.

My program is driven by keyword parameters and uses AMBLIST to extract these bytes from the load module. The following analysis is performed based on algorithms I've found somewhere else (can't really remember where). The resulting formatted output can be edited in a temporary dataset or passed back to the caller via stack or file.

Here is the REXX solution:

6 - Invoke ISPF 3.4 data set list utility with predefined search pattern

With this small program you have the possibilty to pass a search pattern (for example MY.DATA.SET*.**), invoke the data set list utility, and let it build up and display the list without any disruption.

Here is the REXX program:

7 - Show all TSO help topics interactively

This utility scans all data sets allocated to SYSHELP and builds a list of member names and alias entries. This list is displayed to the user as a scrollable list with entries that could be used as point-and-shoot fields. Whenever the user tabs to a command, the corresponding HELP text is retrieved and displayed.

Here are the REXX program and the two ISPF panels:

8 - Determine all assigned REXX variables

When debugging a REXX application you often have the need to look at the current contents of variables. In trace mode you need to know the exact name of the variable to show its value by using the SAY instruction interactively. This can be a very annoying and time-consuming process.

Robin Ryerse has developed an assembler program which determines all REXX variables and their current values and published it on cbt.org as file520. The only disadvantage I've found was that this program displays the variables' name and contents by using something else that the PUTLINE macro (maybe a TPUT macro). So the output could not be trapped by the OUTTRAP() REXX function.

A clever german systems programmer, Wilfried Eike, modified the assembler source so that the output is now written to the stack. This makes it easy to use the program and process the output in various ways, for example displaying it as an ISPF table, saving it in a dataset etc.

Up to now Wilfried has not published his modified version. So here it is for all to use:

If you have any difficulties with the program or with general concepts behind, feel free to contact me.