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.
TSDSUTIL V1.0.1 — actual RAND test listing
● ● ●
TSDSUTIL Data Set Utility (c) 2026 Tommy Sprinkle Version 1.0.1 2026-09-07 16:58:08
1 ***********************************************************************
2 * $RAND TEST
3 ***********************************************************************
4
5 RANDTAB DS 20F
6 RANDTAB_LEN EQU *-RANDTAB
7
8 START , DS 0H
9
10 LA R2,RANDTAB
11 LA R10,20
12
13 RANDLOOP $RAND
14 ST R1,0(R2)
15 LA R2,4(R2)
16 BCT R10,RANDLOOP
17 $DUMP RANDTAB,RANDTAB_LEN
18 $EOJ ,
19
20 END
DIAGNOSTIC SUMMARY
No Statements Flagged
SYMBOL TABLE
LINE ADDRESS TYPE LENGTH SYMBOL
13 F00006 CODE 0 RANDLOOP
5 001000 DATA 4 RANDTAB
6 000050 EQU 0 RANDTAB_LEN
STORAGE USAGE
REGION START SIZE USED HIGH-WATER
LOWMEM 000000 001000 000000 000000
DATA 001000 001000 000050 001050
CONTROL 002000 000400 000000 002000
LITERAL 002400 000400 000000 002400
GETMAIN 002800 EFD800 000000 002800
CODE F00000 100000 000010 F00010
...
RUNTIME OUTPUT
00001000 CECF 5E73 5E40 274A 604D EBCE CB66 7DD6 ??;?; .?-(????'O ..^s^@'J`M...f}.
00001010 1D21 5321 B238 9993 147A C90F DEF6 909F .?????rl?:I.?6?? .!S!.8...z......
00001020 9A02 695C 4A5B 56B3 F93D E60A F72E 502F ?.?*?$??9.W?7.&. ..i\J[V..=....P/
00001030 18B6 C8E9 20C0 D59E F2E3 25BF 1172 CA05 .?HZ?{N?2T.?.??. .... .....%..r..
00001040 EE5E A68E 1BB3 BD6D 968E 7AA6 55F4 B229 ?;w????_o?:w?4?? .^.....m..z.U..)
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.