TSC Software Tools

Tools for classic
mainframe data work.

TSCLIB and its companion utilities provide a practical set of C libraries and command-line tools for working with Hercules AWS tape images, MVS-style data, and the TSDSUTIL scripting environment.

Software overview

The project combines reusable support libraries with utilities aimed at tape-image handling, IEBCOPY-based dataset movement, testing, and small mainframe-style processing jobs. CPTTAPE and CPFTAPE are specifically intended to make it easier to move PDS-style content between IBM mainframe systems and Linux.

Library

TSCLIB

TSCLIB is the common C library used by the companion utilities and TSDSUTIL. It provides shared support for AWS tape images, virtual tape handling, EBCDIC conversion, MVS date/time formats, PDS-style structures, and other reusable services. TSCLIB is installed or built first and then used as a source/build dependency by TSDSUTIL.

Tape utility

CPTTAPE

CPTTAPE is designed around the IEBCOPY interchange format and provides a practical path for moving partitioned datasets from Linux to an IBM mainframe environment. It creates Hercules AWS tape images containing IEBCOPY-compatible unload data so source libraries and other PDS content can be transferred to a mainframe and restored there with IEBCOPY.

Tape utility

CPFTAPE

CPFTAPE provides the reverse IEBCOPY path. It reads IEBCOPY unload data from Hercules AWS tape images and restores the members to the Linux file system. Together, CPTTAPE and CPFTAPE make IEBCOPY the interchange point for moving partitioned datasets and source libraries between a mainframe and Linux.

Scripting utility

TSDSUTIL

TSDSUTIL is a scripting and test utility built around IBM-style assembler syntax and data conventions. It supports instructions, macros, DCB-style file processing, AWS virtual tape, packed and EBCDIC data, date/time services, tracing, listings, diagnostics, and other facilities useful for developing, testing, and transforming mainframe-oriented data.

Nearly fifty years in the making

The idea behind TSDSUTIL goes back to the late 1970s, when I worked at Electronic Data Systems and regularly used an assembler-inspired data set utility called WAAPDSUT. After leaving EDS, I missed the flexibility of that tool enough to recreate parts of the idea several times over the years. Those experiments eventually led to TSDSUTIL: a new scripting language built from scratch around IBM mainframe assembler concepts, System/370 instructions, and MVS-style data management.

Read the full story of TSDSUTIL

TSDSUTIL listing output

TSDSUTIL can produce a program listing containing the source statements together with diagnostics, symbol information, storage usage, cross-reference information, runtime output, and execution statistics. The excerpt below is taken from an actual TSDSUTIL V1.0.1 run of a small $RAND test program. Only portions of the full listing are shown here.

Downloads

Source archives and TSDSUTIL documentation are available directly below.

Source distribution and platform note: These packages are distributed as source code. Development and testing have been performed on Linux, specifically Fedora Linux. They are not currently designed or tested to compile natively on Microsoft Windows, and no Windows build is provided.

TSCLIB V1.0.1

Linux-oriented source distribution containing TSCLIB, CPTTAPE, CPFTAPE, and supporting utilities.

TSDSUTIL V1.0.1

Linux-oriented source distribution plus the User's Guide and Quick Reference.

Build note: TSDSUTIL requires TSCLIB. Build or install TSCLIB first, then build TSDSUTIL. A simple sibling-directory arrangement with tsclib/ beside the TSDSUTIL-1.0.1/ source directory is supported.