Cal TSS Archives
April 2, 2021
December 14, 1991 reunion.
Left to right: Redell, Gray, Vaughan, McDaniel, Lindsay, McJones, Simonyi, Lampson.
- TSS design notes, documentation, etc.
- "A basic time sharing system"
- Designing the ECS system
- The ECS system begins to run
- Designing the disk system
- The disk system begins to run
- Development is discontinued
- Source code
1 TSS design notes, documentation, etc.
1.i "A basic time sharing system"
The first documents, by Howard Sturgis, take up various aspects of a time-sharing
system (including process scheduling, a disk-based file system, low-speed terminal i/o,
and capabilities), but don't mention subprocesses and (multilevel) operations.
Was Howard working alone, or with Butler?
- Sturgis. November 15, 1967.
"What follows is a description of a basic time sharing system,
as seen by a knowledgeable user."
- Sturgis. February 20, 1968.
"This is the proposed body of a letter from Prof. Graham to myself (HES). He wants approval or comments from Ken Hebert [and] Gene Albright. Phase 1: Design; Phase 2: Limited System; Phase III: Better System."
- Sturgis. February 27, 1968. Early disk file system notes.
- Sturgis. February 28, 1968. More early disk file system notes.
- Sturgis. February 29, 1968. Capabilities, basic objects.
- Sturgis. February 29, 1968. Calculations based on size of 6638 disk.
- Sturgis. March 3, 1968. Notes on disk file representation.
- Sturgis. March 4, 1968. More notes on disk file representation.
1.ii Designing the ECS system
In the next series of documents, by Howard Sturgis, Butler Lampson, and Bruce
Lindsay, Cal TSS begins to take shape: swapping controlled by a map, errors and
interrupts, and more...
I believe there must have been more design memos written by Howard and perhaps others.
When did the idea of multilevel operations emerge?
- Sturgis. July 14, 1968. Map, operation, capability, objects.
- Sturgis. July 16, 1968. Process, subprocess.
- Lampson. July 18, 1968. Allocate ECS as follows: ...
- Lampson. "Scope compatibility for symbolic file." 1968?
Sample code and timing for conversion from eight seven-bit ASCII characters per word
to ten six-bit Display Code characters per word. The estimate was nine microseconds
- Sturgis. July 18, 1968. "Allocate fixed peripherals by list scheme ..."
- Sturgis. August 22, 1968. "For each subprocess ..."
- Sturgis. September 3, 1968. "Sensitive code versus interrupt routines ..."
- Sturgis. "ECS System structure." September 5, 1968.
- Sturgis. "Modification of operation." September 10, 1968. "See 7/14/68."
- Lindsay. "Subprocess error handler." September 11, 1968.
- Lampson. "Swapping and charge for ECS." September 11, 1968.
- Sturgis. "Error handling." September 11, 1968.
- Sturgis. "Process." September 19, 1968.
- Sturgis. October 3, 1968. Event channel algorithms.
- Sturgis. "Disk representation of file." May 1, 1969.
- Standiford? "Option bit assignments." August 20, 1969.
Table of option bit assignments for the various object types.
1.iii The ECS system begins to run
When was the "two-teletype demo"?
- Malbrain. "The Bead." Circa Fall 1969.
"The Bead is the first subprocess created in every process when the system is initialized.
Its function is to act as an interim monitor package to coordinate file activity and naming,
elementary utilities, and be a command processor for the user."
- —. TS Interrupt System September 2, 1969. Typewritten documentation.
- Lampson. An Overview of the CAL Time-Sharing System. October 10, 1969.
Reprint of [Lam69], with a progress report
(similar to Gray, October 11, 1969) appended.
- Gray. Progress Report on 6400 CAL Time-Sharing System. October 11, 1969. 691011-progress-jng
- —. CAL Time-Sharing System Users Guide. November 1969.
Actually, this is the programmers guide.
- —. CAL-TSS Internals Manual. November 1969.
- —. Preliminary SCOPE Manual. November 5, 1969.
The SCOPE simulator made it possible to run programs designed for
CDC's SCOPE batch system.
- —. TSS Printer Driver November 5, 1969.
- Standiford. "TSS Display Driver." Late 1969?
- —. "S-device user interface." November 5, 1969.
Specification of device interface to be used for tape drives, printers, card readers,
card punches, and the console display.
- —. The BEAD Users Guide. December 18, 1969.
- Karl Malbrain and Paul McJones. COOL-AID. 1969?
Reference manual for unfinished PL/360-like assembler.
- —. SCOPE Manual. January 21, 1970.
"This document describes the SCOPE simulator under the interim system.
A knowledge of the SCOPE 3.1 manual is assumed."
- Gray. (Lack of Visible) Progress Report: CAL-6400-TSS. January 15, 1970.
- Malbrain. "SCOPE 3.0." 1970?
- Malbrain. "Proposal for batch system." Early 1970?
Early proposal for simple batch system: no tapes or job queuing;
low-level disk system to be implemented below the Bead; SNOBOL program used for ?
- Vaughan. "Interrupts." 1970? Notes for redesign.
- Lindsay. 1970?
Proposal for interrupt priorities based on magnitude of high-order part of class code.
- Vaughan. "September system." 1970.
Notes on content of September system: low-level disk system, less swapping, pseudo-close,
and space control; directory less subprocess descriptors, ECS goodies, global objects, and
accounting; disk dump and load; command processor and subprocess descriptors ("a la bead"),
line collector, login, logout, and accounting; Scope simulator; disk recovery.
- Gray. "[Addendum to] Systext standard." 1970?
1.iv Designing the disk system
- Vaughan. "User interface, command processor, human engineering." 1970?
Sets down requirements for mechanism for user to control time used by subsystem, etc. 70-user-interface-vv
- Sturgis. January 22, 1970.
"Objects in directories, note on ecs goodie, representation of files, directories,
access keys, ecs goodies, directory structure for an entry, directory operations,
- Sturgis. "Subprocess descriptor." February 19, 1970.
- Sturgis. "Directory object descriptions." February 19, 1970.
"Implementation algorithms another time."
- Sturgis. "Tentative changes to ECS system." March 5, 1970.
Design notes for return parameter authorization.
- Sturgis. "[Global] ECS objects implementation." March 5, 1970.
Design notes for representing ECS objects in disk system directories.
- Sturgis. "ECS goodie implementation." March 5, 1970.
- Sturgis. "New ECS facility (version 3)." March 12, 1970.
Design notes for capability-creating authorizations. 700312a-hes
- Sturgis. "New ECS facility." March 12, 1970.
More design notes for return parameter authorization and block data
and capability parameters.
- Sturgis. "'Disk process' structure." March 19, 1970.
- Vaughan. "Evaluation of work yet to be done on the ECS system as
of 30 March 70." March 30 and April 13, 1970.
- Gray. "Disk meeting." April 1, 1970.
- Vaughan. "Interrupts." April 2, 1970.
- Gray. CAL Progress Report. April 15, 1970.
- Sturgis. "General description of actions with respect to directories."
April 17, 1970.
- Sturgis. "Directory structure." April 17, 1970.
- Sturgis. "Specific actions for directories." April 17, 1970.
- Vaughan. April 20, 1970. Notes on various ECS system redesign issues.
- Sturgis. April 23, 1970.
"Open and close, general; directories; disk files;
subprocess descriptors; access keys; global ECS object; ECS goodie."
- Richard Brautigan. All Watched Over by Machines of Loving Grace.
April 27, 1970.
Photocopied and distributed to the staff by Vaughan.
- Sturgis. "Subprocess descriptors." April 30, 1970.
- Vaughan. "Reconstituted list of things to be done on the ECS level of Cal TSS."
June 1, 1970.
"Stuff needed for the operation of the 'September System'" 700601-vv
- Gray. Progress Report - CAL-TSS. June 1, 1970.
"I am resigning as director of CAL effective today, Howard Sturgis who, along with Butler Lampson, was the principle architect of TSS i s replacing me. The job i s thankless, draining, mundane, and unpleasant."
- Sturgis. "Dump-load." June 1, 1970.
- McJones. "Operations." June 3, 1970.
Operation data structure diagram.
- McJones. "Directory." June 29, 1970.
Preliminary interface specification and internal data structure. 700629-prm
- Standiford. "TSS Display Driver - Revision A." July 6, 1970.
- Morris. "Editor Commands." 1970? Handwritten.
- Morris. "The Text Editor." July 9, 1970.
- Malbrain? "Batch system." 1970?
"It is planned to have a running TSS BATCH system by August 15, 1970,
running under the TSS 'September' system." 70mmdd-batch-system
- Redell and Lindsay. "Low Level Disk System Actions." July 9, 1970.
- Vaughan. "Change to indirect C-list specifications." July 20, 1970.
- Vaughan. August 10, 1970.
Updates for ECS system documentation: capability-creating operations,
return with parameters, block data and capability parameters, indirect capability parameters. 700810-vv
- Sturgis? "Bead 4.0." 1970?
"Differences from Bead 3.1 (those that I can think of)."
Document apparently edited on Cal TSS and printed on TTY.
- Sturgis. Interim Disk System: Preliminary Manual. 1970?
- McDaniel. 1970?
"One of the most frequent questions heard around TSS teletypes is
34.64.95 BEAD ERROR! BEAD HERE! What the hell does THAT mean???"
Source code of Bead error classes and numbers.
- —. The Idiot's Guide to TSS. Fall 1970?
- Sturgis? "How to make a new system tape for Bead 4.0." 1970?
All-caps listing on TTY; edited on the system.
- Sturgis. "Tentative basic command processor." September 11, 1970.
- Sturgis? "System and system part of user process initialization." Undated.
- Redell and Lindsay. "EDITBIN specification file." September 22, 1970.
Diagram of file used to control editing of system tape? Also lists of module names. 700922-editbin-spec-ddr
- Vaughan. "Observable states of a subprocess." November 18, 1970.
Proposal for a redesign of call stack entries?
- Sturgis. "Actions in the event of a panic." November 24, 1970.
"Bead 4.1 stuff. Later (4.2?) errors replaced with 'return with interrupt.'"
- Sturgis. "A proposal for the values of a call stack entry and their
manipulation by the return operations." November 30, 1970.
- Malbrain. "Peripheral Device Processor: Preliminary Specifications."
December 1, 1970.
Proposal for a batch system handling card reader, printer, job queues, tape,
and operator console.
- Sturgis. "Interrupt handling code at the command level in the new system."
December 4, 1970.
- Sturgis. "Syntax of parameters [for new command processor]."
- Vaughan. "Chapter XXimvldc of the continuing interrupt hassle."
December 7, 1970. Last page gives ECS operation timings for file writes.
- Sturgis. "Bead naming conventions." December 7, 1970.
- McJones. "Name tag system." December 10, 1970.
Design for static and dynamic name tag implementation. 701210-prm
- Vaughan. "2 CP disaster sheet." Circa 1970?
em>Also notes on speed phreaques, scheduling, and compactification of ECS.
- Lindsay. "User direct ECS access." 1970?
- McDaniel. "The Cal TSS interrupt system." Circa Spring 1971.
Vaughan apparently noted "Spring '71" on the cover. But could this have been
McDaniel's class project for Computer Science 109, taught by Lampson in Spring 1970? 71-int-sys-gam
- Sturgis. "Command processor preliminary document." 1971?
- Sturgis? "Command processor preliminary document." 1971?
Typed, with many correction. cmmd-prelim
- Sturgis. "Errors in BEADS." 1971?
- Vaughan? "BEADS Errors." Year?
- Vaughan. "Allocation blocks." January 4, 1971.
"Proposed User's Manual sections for allocation blocks."
- Sturgis. About Cal TSS. January 6, 1971.
Sturgis' first status report as project director. 710106-about-hes
"Questions on which you are invited to express opinions in the next few days." February 1, 1971.
- Vaughan. "AB's Mark III." February 1971.
- Redell and Lindsay. "Proposed actions relating to accounting."
February 21, 1971.
- Vaughan. "New stack logic." February 22, 1971.
Call stack manipulation changes; problem with maps and file unique name change;
control of CPU time. 710222-vv
- Sturgis. "Proposal for proprietary subprocesses." February 24, 1971.
- Sturgis. February 24, 1971.
Diagram of proposed subprocess structure (distributed with
- Subcommittee on Time Sharing. "Report to: Chancellor's Advisory Committee on Computing."
February 27, 1971.
1.v The disk system begins to run
- Vaughan. "Facilities available." March 15, 1971.
Status report on readiness of various subsystems.
- Sturgis. "Immediate mopping up." March 15, 1971.
- Sturgis. "Major problems." March 17, 1971.
"L/D/R has error on final call; L/D/R opens too many files on dump (can't dump);
can't destroy directories."
- Redell and Lindsay. "Accounting block services." April 22, 1971.
Functional specification and implementation notes.
- [Morris, borrowing from Canady and Ritchie]. BCPL. May 1971.
Discusses using BCPL under SCOPE and TSS.
- [Bridge]. "BASIC." May 1971.
Discusses using BASIC under TSS and SCOPE. 7105-cal-basic
- —. Time-Sharing System Users Guide. May 1971.
Planned as Part Three of Volume III (The 6400 Computer System)
of overall Cal Computer Center Users Guide. 7105-users-guide
- Sturgis. "Projects related to command processor." May 5, 1971.
"I) Errors will be interpreted and fancy messages printed. ..."
- Sturgis. "SPACE command in CMMD." May 5, 1971.
Command for controlling swapped ECS space, fixed ECS space, MOT slots,
and temporary disk space.
- Sturgis. "New version of CMMD." May 17, 1971.
- Sturgis. "New facilities available from command processor." June 6, 1971.
New operations available to subsystems.
- Sturgis. "Preliminary proposal for testing system subprocesses of user processes."
June 8, 1971.
- Sturgis. "New commands in SERVICES." June 11, 1971.
New commands: SHAZAM, CHAIN, UNCHAIN, and SOFTL.
- Bridge, McDaniel, and McJones. CAL Lisp. June 1971?
Incomplete design for a LISP 1.5 implementation for CAL TSS (class project)
- Sturgis. CAL TSS Report.
"The purpose of this report is two-fold: first, to make available detailed infocmation concerning the present status of CAL TSS, and second, to provide a basis for management discussion of the future course of development for CAL TSS. Since the TSS staff is small, not all projects can be pursued at once."
- Vaughan. "Where ECS space is going." July 22, 1971. Measurements.
- McDaniel. July 22, 1971.
Cover note from Vaughan and proposal from McDaniel for storing some process state bits
in ECS global register (to exploit hardware test-and-set property?).
- Vaughan. August 1, 1971.
Measurements of sizes of subprocesses in a "disk process". 710801-disk-proc-vv
- Earley and Caizergues. "VERS Manual: Version 4". October 1971.
- McJones. October 19, 1971. Instructions for building the directory system.
- McJones. October 27, 1971. Documentation of directory actions.
- Sturgis. "New features in CMMD." October 27, 1971.
TEST mode; TTYON, TTYSON, TTYOFF, NEWMASTER, SYSDOWN, FORCEOUT commands.
- —. "[System status]." November 1, 1971.
"20 OCT 71 CHARGING FOR CAL TSS" 711101-status
- Vaughan. "Accounting info." November 1, 1971.
Annotated TTY listing showing how to dump accounting information.
- McJones. "Option bits". November 3, 1971. Directory option bit assignments.
- —. "List of privileged [disk system] operations." November 3, 1971.
All-caps line printer listing; edited on the system.
- Sturgis. "Calls on the TTY line collector." November 8, 1971.
- Sturgis. "Line collector." 1971?
Vaughan: "debeaded" line collector. "This line collector uses code
copied from GREYCODE,XTEXT the same as the old Bead.
- Redell or Lindsay. "Declare Process Swapped-ECS Cross-Section." 1971?
Description of disk file action.
1.vi Development is discontinued.
- —. CAL Time-Sharing System Status. November 29, 1971.
"CAL TSS has been discontinued pursuant to a decision formulated
in the Chancellor's office." 711129-discontinued-vv
- Vaughan. "System staff et al." November 30, 1971.
- Hebert, Kenneth J. "Staff notice." December 8, 1971.
"Effective immediately, Vance Vaughan will assume the responsibilities of Chief Programmer.
I hope that you all will give him your utmost support in this most trying position." 711208-promotion-kjh
- Colman, Richard. "Computer System Cut."
Daily Californian, December 10, 1971. 711210-cut-dc
- Vaughan. Undated.
- Standiford. "TSS display driver: Programming considerations—an amendment
to previous document of late 1969." Undated. disp-driv-amend-ks
- Standiford. TSS Display Driver: Operators Guide. Undated.
- [Vaughan]. Undated. doc-list-vv
- [Lindsay and Redell]. Undated. ecs-list
- Vaughan? Undated.
- [Vaughan]. Undated.
- [McDaniel]. "Modified scheduler." Undated.
- [Sturgis]. "WARNING: New syntax for commands." Undated.
- [Vaughan]. Undated.
Jump Call, Special Return, Find Nth Son of a given Subprocess, Zero a capability. new-ecs-actions-vv
- [Vaughan]. Undated. "SaveDF prior to load."
- [Vaughan]. "Portrait of a subprocess descriptor." 1971?
- Standiford? "TSS PP DUMP and TSS PP DUMP-TAPE SCANNER" Undated.
- Standiford. "Savetss." Late 1971?
"Savetss is a Fortran program for retrieving files from a TSS DISK DUMP TAPE."
Written after TSS was cancelled? savetss-ks
- Vaughan. "Seed phreaques, scheduling, compactification, ECS code, DAE, & other theological questions made simple." Undated.
- Lynn. "CDC 6400 Departure". September 3, 1982. "The CDC 6400 is no more."
- Redell. "Cal-TSS 20th Anniversary Trivia Quiz." December 14, 1991.
- Redell. "Answers to Cal-TSS 20th Anniversary Trivia Quiz." September 2015.
2 Source code
Three of the participants based their Ph.D. theses on aspects of CAL TSS:
- Sturgis. A Postmortem for a Time-Sharing System. May 1973.
[scanned] (via bitsavers.org)
- Redell. Naming and Protection in Extendible Operating Systems.
September 1974. thesis-ddr
- Lindsay. Exception Processing in Computer Systems. 1977.
A report ([GLLS72]) and several papers ([Lam69] and
[LS76]) were eventually published.
CalTSS ran on a standard Control Data Corporation (CDC) 6400 with Extended Core Storage (ECS)
and the Central Processor Monitor features (Monitor Address Register, Monitor Flag Bit,
and Monitor and Central Exchange Jump instructions). It used CDC controllers and
peripherals for disk, tape, card reader, and printers, but used a locally-developed terminal multiplexor.
- Control Data Corporation.
Control Data 6400/6500/6600 Computer Systems Reference Manual. February 1967. 6400-cdc
- Control Data Corporation.
Control Data 6400 Systems Central Processor Monitor. 196? cp-mon-cdc
- Control Data Corporation.
Control Data 6400/6500/6600 Computer Systems reference card. Pub. No. 60164500
CDC 6000 reference card
- David Wheeler? "6400 Multiplexor Reference Manual." 1967?
Wheeler was on sabbatical from Cambridge in the mid 1960s and designed this multiplexor,
originally used with Berkeley's 7094.
Martin H. Graham completed
the design and implementation.
[GLLS72] James N. Gray, Butler W. Lampson, Bruce G. Lindsay, and
Howard E. Sturgis. The control structure of an operating
system. Technical Report RC 3949, IBM Thomas J. Watson
Research Center, Yorktown Heights, New York 10598, July 1972.
[Lam69] Butler W. Lampson. On reliable and extendible operating systems.
In Proceedings 2nd NATO Conference on Techniques in Software Engineering,
Rome, September 1969. Reprinted in
The Fourth Generation, State of the Art Report Number 1, pages 421-444.
Infotech, 1971. Online at bwlampson.site
[LS76] Butler W. Lampson and Howard E. Sturgis. Reflections on an operating system design.
Communications of the ACM, 19(5):251-265, January 1976.
Online at bwlampson.site
ACM Digital Library
[Red74] David D. Redell. Naming and protection in extendible operating systems.
Technical Report MAC TR-140, Massachusetts Institute of Technology Project MAC, November 1974.
/ PDF at dtic.mil
[Stu74] Howard E. Sturgis. A postmortem for a time-sharing system. Technical Report CSL 74-1,
Xerox Palo Alto Research Center, Palo Alto, California, January 1974.
[Tho70] J. E. Thornton. Design of a Computer: The Control Data 6600.
Scott, Foresman and Company, Glenview, Illinois, 1970.
PDF at bitsavers.org