The Linux Foundation Projects
Skip to main content
BlogCBT Tape

Easily Research and Access Mainframe Open Source using ISPF

Written by Lionel B. Dyck, Contributor to CBT TAPE and an advocate for z/OS ISPF

The world of open source repositories did not start with GitHub. It didn’t start with SourceForge. It didn’t even start with the Internet. ppen source started shortly after the 2nd programable computer was released into the wild in the 1950’s. At that time the operating system was open-source, and universities and companies shared code, primarily utilities.  The sharing started with code on paper and progressed to paper tape, then punch cards, then magnetic tape reels. At one point there were many different groups collecting, and sharing, magnetic tapes with open-source software. Among these were SHARE, G.U.I.D.E., their affiliates around the world, some regional groups such as the Los Angeles MVS Users Group, and others lost to history. Then in 1975 Arnold Casinghino established the CBT Tape (CBT was the SHARE acronym for the Connecticut Bank and Trust Company where Arnie worked). Arnie collected open-source software for MVT, then MVS, and OS/390, creating 321 versions of the CBTTAPE. In 1980 Sam Golob took over for Arnie and the rest is history – the CBTTAPE expanded from round tape reels to square tapes, and then to the web (https://www.cbttape.org) where we find it today. It also grew from OS/390 to the most recent release of z/OS.

There are two advantages to having access to the CBTTAPE. The first is that there are 100’s of very useful tools that can help system programmers, developers, and other z/OS users to enhance their productivity and effectiveness. The second is the wealth of source code that can be used as examples of how to write code (Assembler, C, C++, PL/1, Cobol, REXX, plus).

When someone wanted to research what was available on the CBTTAPE the most common technique was to download FILE001, which is a directory of the ‘tapes’ contents. Yes – the CBTTAPE is still managed in a ‘tape’ structure where each set of contributions is maintained in a single file with a file number from 001 through whatever is the most recent contribution (FILE 1018 as of the date this blog was written). Each ‘file’ contains from 1 to dozens of tools and utilities, or in some cases articles about different topics from SMP/E to TSO.

The files on the ‘tape’ are available in zip format to conserve disk space and reduce the download requirements. Once the file is unzip’d the results must be uploaded to z/OS in binary format using an LRECL of 80 and Record Format (RECFM) of FB and a Block size (BLKSIZE) of 32720. That is because the files within the zip file are in the EBCDIC character set. If the file has a .XMI, or .XMIT, suffix then after uploading it must be processed using the TSO RECEIVE command to reconstitute the z/OS partitioned dataset (PDS).

The challenge is that reading/searching FILE001 is not the most efficient way to research the contents of the CBTTAPE contributions.

There is a better way – using the recently released Official CBT ISPF Dialog found in File 043 on the CBTTAPE. For CBTTAPE version 501, this file can be found on the Updates page (note – always check the Updates page as the file you want may have been recently updated by the author).

The CBTTAPE consists of two different ‘tapes’. The CBTTAPE is the primary ‘tape’ and is the active set of files. The Overflow ‘tape’ is an archive of older files that have not been updated in several years and which may not work. The Overflow is retained and available for research.

The Official CBT ISPF Dialog (aka OCD)

This ISPF dialog is something that has been discussed, dreamed about, requested, and thought about for years. It provides a very easy interface to research the contents of the ‘tape’, and then to download the file directly into a z/OS dataset without having to do the download, unzip, upload, TSO Receive dance for the files you want to work with.

There are two key requirements to use this dialog after it is downloaded, unzip’d, uploaded, processed by TSO RECEIVE, and the CBTINSTL (installation program) have completed:

  1. FILE001 must be available under the same high-level-qualifier (hlq) as the installation target PDS
  2. The ability to use FTP to access cbttape.org from your z/OS system

If (2) is not available, then the OCD can still be used for research but without the ability to use FTP.

If FTP is available, then each time that OCD starts a check will be performed for any file updates since the last use. These will be flagged so that the user will know immediately what files have been updated. Another useful flag indicates those files that are already available on the z/OS system under the installation HLQ.

Another check each time OCD starts is a check for an updated CBTTAPE version. While this only happens once or twice a year, it is helpful to know when a new version is posted as some file updates will be incorporated into the new version that arrived when the new tape was being built and thus never made it into the Updates directory.

The first time that OCD is executed, CBTTAPE FILE001 is downloaded if it has not already been downloaded, and then it is processed to extract the longer file description from FILE001 into individual members in the hlq.FILEIDX.PDS.

Let’s look at the OCD display:

  • Is the version of the Official CBT ISPF Dialog
  • If there are updated files, then this short message will be presented
  • The long message is presented when the short message (2) appears and the F1 key is pressed
  • This column is the CBTTAPE file number
  • The Description column is the short description found in the FILE001 section that has a summary of all files
  • The + flag indicates that there is an update to the file in the Updates directory
  • The * flag indicates that the file is available in a z/OS dataset
  • The Date is either the date the file was updated, or the CBTTAPE version which indicates that the file has not been updated since the tape version was posted

The OCD has a reasonable ISPF tutorial available using the F1 key that provides more information the dialog.

OCD Primary Commands

There are 20 primary commands (abbreviation is in caps)

Command Explanation
DSlist List all of the CBTTAPE files that are available on the z/OS system
ES Invoke the Enhanced Search dialog (Thanks to Willy Jensen)
Find

RFIND

Finds the requested string in the description
Flip Switch between the CBTTAPE and the Overflow ‘tape’
History Display the Change History for OCD
Info Display information about the OCD installation and configuration
LOcal Display only the files available on z/OS
Locate Scroll the table to the requested file number
New Display on new files
Only Display all files that have the requested string in the file description
REBuild Rebuilds the OCD index from FILE001. This is used after a new CBTTAPE has been posted
Refresh Recreates the ISPF table after a Only or Search operation
Search Display on those files that have the requested string in the extended file description (as found in FILE001)
SET Used to set the default action when a file is selected using S
SOrt Sorts the file by file number, date, or both
UPDate Download and make available under z/OS all files from the Update directory that have not already been downloaded
CUrrent Switch to the Current CBT Files (see Flip)
OVerflow Switch to the Overflow Files (see Flip)
/ Display a popup menu of primary commands

 

The popup primary command menu has point-and-shoot enabled. For those commands that require a parameter (e.g. Find, Sort) there is an input field available.

OCD Selection Options

Entering a / for a file selection will bring up the popup menu (point-and-shoot enabled):

Searching

Searching is a powerful tool to help find files with just what you’re looking for. You may need to be creative with your wording as this search is not as powerful as Google/Bing/etc. as it looks for the exact string (case insensitive).

Some examples.

Files with SMF

Doing a search for all files that reference SMF (S SMF) results in 101 files:

Next searching these results for just those files with SMF exits (S EXIT) results in 55 hits:

Now we want to find the files from these results that mention CICS (S CICS) results in 10 hits:

That does not mean that there are 10 files with CICS SMF Exits but there are 10 files that have the string SMF, EXIT, and CICS.

From these results you can select the file to view the FILE001 summary or, if the file has been downloaded and is available in a z/OS dataset, you can open the dataset for Browse/Edit/View to see the contents.

Files with IEFACTRT

IEFACTRT is a common SMF Exit that most, probably all, z/OS installations have installed. If we do a search for IEFACTRT (S IEFACTRT) we find 12 files that mention it.:

If we then select file 1018 with the B selection, the file is opened in ISPF Browse. We can see that the file is available in a z/OS dataset and that it was last updated on August 20, 2021.

  1. This is a member that is created when the file is generated with the CBTTAPE file creation process – it can be ignored 😊
  2. This is what is found in the FILE001 in the file specific details section and is also included with each file (either @FILEnnn or @FILnnnn). It has useful information, instructions, etc. about the contents of the other members.
  3. This is sample JCL Procedure (PROC) used by (4)
  4. This is the assembler source for the SMF Exit with JCL that references the JCL Procedure (see 3)
  5. This is a sample job report. In this case it is in TSO Transmit format because a job report has records that are longer than the 80 characters in this PDS. From the @FIL1018 information we know that $$NOTE01 is a sample CLIST to do the TSO RECEIVE to create a usable dataset of this member.
  6. These are notes with additional information about the PDS contents.

Highlights

What can you expect to find on the CBTTAPE?

Here is a list, not in any particular order, from which I’m sure you will find at least one file that would be beneficial to your installation, or to you:

  • The PDS Command (file 182)
  • The REVIEW command (file 134)
  • Sam Golob’s SMP/E Introduction Tutorial (File 014)
  • SMP/E Tutorial – SHARE Presentations (File 1002)
  • PDSEGEN – work with PDSE Member Generations (File 969)
  • CBT Usermods Collection for ISPF (File 967)
  • ZIGI – z/OS ISPF Git Interface (File 997)
  • RACFADM – Easy RACF Admin Dialog (File 417)
  • Over a dozen different automation packages
  • COBOL Analyzer (File 321)
  • FTPBatch – FTP Put, Get, Sync (File 312)
  • XMITIP – z/OS E-Mail (File 314)
  • ZSYNC – Sync two partitioned datasets (File 314)
  • Stand-Alone IPL – ZZSA (File 437, 538)
  • ZZSA Tutorial Package (File 979)
  • SHARE JES2 Song Book (File 033)
  • Assembler Structured Macros (File 1010)
  • ISPF Developer Tips and Tricks (File 990)
  • TSO Command Prompt for HLASM (File 966)
  • Remote SYSLOG Logging Facility (File 955)
  • STEMEDIT (File 895)
  • IMON z/OS System Monitor (File 10)
  • MXI z/OS System Info Display (Files 409-410)
  • Dynamic STEPLIB (File 452)
  • Dynamic Concatenation – ADDTO (File 452)
  • z/OS Rescue System – 4 different files
  • Several Catalog cleanup tools
  • Perl Compatible Regular Expressions – PCRE2 (File 939)
  • XEPHON articles – MVS, CICS, SNA, VSAM, VM, VSE
  • SHOWzOS (File 492 and 614)
  • Numerous SMF Exits
  • Several Disassembler tools
  • Several storage display tools
  • A 3270 based game called Klingon (File 38)
  • Utilities for MVS 3.8 (File 77)
  • A complete security system (File 165)
  • FSE – Full Screen Editor (File 207)
  • REXX function package for VSAM access (File 268)
  • SAS programs to work with SMF (File 374 and 375)
  • The Complete ISPF GUIDE Tape (Files 460-471)
  • REXX to Download Text file via HTTP (File 556)
  • MVS 3.8 Utilities (File 574)
  • Several DB2 tools
  • REXX Global Variables, VSAM Access, etc. (File 669)

Lionel B. Dyck is the Co-Author of ZIGI (z/OS ISPF Git Interface), Author of dozens of open-source z/OS tools, including FTPBatch, XMITIP, and PDSEGEN. Contributor to the CBTTAPE (www.cbttape.org) and an advocate for z/OS ISPF. Host of https://www.lbdsoftware.com and https://github.com/lbdyck sites. Learn more about Open Mainframe Project’s CBT Tape here. Or, watch this CBT Tape video.