CAL Timesharing System source code

Paul McJones
Last modified 12 January 2024

Contents

Introduction

Development of CAL TSS ended rather abruptly in late 1971, and the developers were not careful to archive the machine-readable media (disk backup tapes with source code and tools; dead-start tapes), although a few tapes were kept as souvenirs and some data has been recovered from them by Paul Pierce (reading the 7-track 1/2 inch tapes) and Terry Heidelberg (deciphering their contents and succeeding in partially dead-starting and initializing the system). Another tape was read by Al Kossow and Len Shustek. Also a number of paper documents and listings, as well as one small card deck, were preserved.

Machine-readable files

Here's the source code recovered by Terry as of April 2018 (updated January 2019):

One other program was machine-readable, but not source code: a deck of cards that could be "deadstart-loaded" in order to dump the state of the system to magnetic tape after a crash:

Scanned listings

At the April 1980 CAL TSS reunion, Paul McJones put out a call for materials to be archived, and other team members gave their materials to Paul. In April 2018, Paul scanned the final CAL Timesharing System listings from 1971 or earlier. A Panasonic KV-S3065C was used, courtesy of Al Kossow. The grouping and order of the scans here corresponds to the physical binders containing the listings.

ECS system

PPU programs

XTEXT files

CPU programs

Test programs

Bead (interim user-level system)

TSS (final user-level system)

System initialization (IPROC/BUILDER)

Name files - these guide BUILDER

IPROC subprocesses (each is linked with tss/init/OPERCL)

Simulation for debugging

BUILDER - create and run subprocesses and processes at system initialization time and user process creation time

Disk file system

Code

Load maps

Development tools

XTEXT files

Directory system

Command processor / load-dump-recover / accounting / debugging

CMMD - command processor subprocess

BEADG - Bead ghost subprocess

FAKEG - Fake Bead ghost subprocess, used for disk system

BEADS - Bead and command processor services subprocess

TLINE - TTY line collector subprocess

CLNPRF - clean profile ???

TEST - subprocess for testing CMMD debugging features ???

Miscellaneous

Utility programs

Programming language systems

Development tools

Operations