Cal TSS Archive

Paul McJones, editor
paul@mcjones.org

11 January 2024

Cal TSS Developers at the 1980 reunion

April 19, 1980 reunion. Left to right: Dave Redell, Bill Bridge, Paul McJones, Gene McDaniel, Bruce Lindsay, Vance Vaughan, Howard Sturgis.

Cal TSS Developers at the 1991 reunion

December 14, 1991 reunion. Left to right: Dave Redell, Jim Gray, Vance Vaughan, Gene McDaniel, Bruce Lindsay, Paul McJones, Charles Simonyi, Butler Lampson.

Abstract

This is an archive of scanned copies of most of the known records from the CAL Timesharing System project, which took place in the Computer Center of the University of California, Berkeley, between 1968 and 1971. The system ran on a Control Data Corporation 6400 with Extended Core Storage and Central Exchange Jump. For a history of the project, see [MR2023].

The physical records were donated to the Computer History Museum, Lot #2022.0154. Their organization is described in [McJ2022].

Contents

  1. Project plans and proposals
  2. Reports and announcements
  3. Design memos
    1. Prehistory
    2. ECS system
    3. Final system
      1. Architecture
      2. Disk files
      3. Directories
      4. Executive
  4. Documentation
    1. ECS system
    2. Bead
    3. SCOPE simulator
    4. User subsystems
    5. Programming languages
    6. Final system
    7. System operation
  5. Humor
  6. Chronological
    1. "A basic time sharing system"
    2. Designing the ECS system
    3. The ECS system begins to run
    4. Designing the disk system
    5. The disk system begins to run
    6. Development is discontinued
    7. Afterward
  7. Source code
  8. Theses
  9. Papers
  10. Hardware
  11. People
  12. Photos
  13. References
  14. Citations

    1 Project plans and proposals

  1. Sturgis. May 4, 1967. "This paper is a general description of what I think needs to be done to produce a time sharing operating system for our CDC 6400 with ECS, that will be commensurate with the capabilities of the machine." 670504-timesharing-hes
  2. 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." 680220-mhg-to-hes
  3. [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 ? 70-batch-proposal-km
  4. [Vaughan.] "Evaluation of work yet to be done on the ECS system as of 30 March 70." Last page of memo dated April 13, 1970; followed by 4 pages on allocation block operations, file page dirty bits, deliver of interrupt datum, change unique name issues, and allocator issues. March 30, 1970. 700330-evaluation-vv
  5. [Vaughan.] "September system." [June 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. 7006-sept-sys-vv
  6. [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'." Apparently distributed with a copy of the first page of 700330-evaluation-vv attached. 700601-reconstituted-list-vv
  7. [Malbrain?] "Batch system." [June 1970?] "It is planned to have a running TSS BATCH system by August 15, 1970, running under the TSS 'September' system." 7006-batch-system-km
  8. [Malbrain.] "Peripheral Device Processor: Preliminary Specifications." December 1, 1970. Proposal for a batch system handling card reader, printer, job queues, tape, and operator console. 701201-pdp-km
  9. [Vaughan.] "General Discussion of the Initial User Version of CAL-TSS, Available around 15 March '71." March 9, 1971. "The whole project could conceivably be canceled because of computer center funding difficulties, but on the assumption that it is not cancelled, we proceed to discuss its availability, pas, present, and future." 710309-initial-user-version-discussion-vv
  10. [Sturgis.] "Immediate mopping up." March 15, 1971. 710315-mopping-up-hes
  11. [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." 710317-major-problems-hes
  12. [Vaughan.] "Considerations concerning CAL TSS support of users during spring quarter of '71." March 18, 1971. Lots of things still weren't ready but Vaughan was looking ahead to logistics for user support. 710318-support-considerations-vv
  13. [Sturgis.] "Projects related to command processor." May 5, 1971. "I) Errors will be interpreted and fancy messages printed. ..." Section VI)C) says "Implement Pauls subprocess descriptor object. Use my specifications of Feb 24, 1971. Old style, as just a file will also be retained." 710505-cmmd-projects-hes
  14. [Vaughan]. "Proposed charges for TSS. October 8, 1971. "Effective Monday, 25 Oct 71." CPU $130/hour; ECS $0.29/1000 words-hour, temporary disk $0.47 per 1000 sector-hours; connect time $2/hour; permanent disk space $9.30/1000-sector-month. 711008-proposed-charges-vv
  15. 2 Reports and announcements

  16. Gray. "Progress Report on 6400 CAL Time-Sharing System." October 11, 1969. 691011-progress-jng
  17. Gray. "(Lack of Visible) Progress Report: CAL-6400-TSS." January 15, 1970. 700115-progress-jng
  18. Gray. "CAL Progress Report." April 15, 1970. 700415-progress-jng
  19. 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 is replacing me. The job is thankless, draining, mundane, and unpleasant." 700601-progress-jng
  20. Sturgis. "About Cal TSS." January 6, 1971. Sturgis's first status report as project director. 710106-about-hes
  21. Subcommittee on Time Sharing. "Report to: Chancellor's Advisory Committee on Computing." February 27, 1971. 710227-subcommittee-on-time-sharing-elw
  22. [Vaughan.] "Facilities available." March 15, 1971. Status report on readiness of various subsystems. 710315-facilities-avail-vv
  23. [Vaughan.] "Where ECS space is going." July 22, 1971. Measurements. 710722-ecs-usage-vv-hes
  24. Sturgis. CAL TSS Report. August 1, 1971. "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." 710801-cal-tss-report-hes
  25. [Vaughan.] August 1, 1971. Measurements of sizes of subprocesses in a "disk process". 710801-disk-proc-vv
  26. —. CAL Time-Sharing System: Status and Information. August 13, 1971. "CAL TSS is currently available weekdays from 2-6 PM." [Room 227 has been changed to 223.] 710813-status-and-info-vv.pdf
  27. [Vaughan.] Memo to users of CAL TSS. Circa September 10, 1971. Announces coming end of free use, new SYSMES feature, and "Introduction to CAL TSS" document; includes forms: Application for Use of CAL TSS; CAL TSS User Survey. 710910-memo-to-users-vv
  28. —. [System status.] November 1, 1971. "1 NOV 71 COMMAND PROCESSOR NEWU COMMAND; 20 OCT 71 CHARGING FOR CAL TSS" 711101-status-vv
  29. —. CAL Time-Sharing System: Status and Information." October 19, 1971. "CAL TSS will be run from 10:00 a.m. to 10:00 p.m. on weekdays. The hours from 12 to 6:00 will be reserved for customers." 711019-status-and-info-vv
  30. [Vaughan or Sturgis.] "CAL TSS Rates: Effective 25 Oct '71." October 20, 1971. From the SYSMES file. 711020-rates-vv
  31. —. CAL Time-Sharing System Status. November 29, 1971. "CAL TSS has been discontinued pursuant to a decision formulated in the Chancellor's office." 711129-status-vv
  32. Vaughan. "System staff et al." November 30, 1971. 711130-future-vv
  33. Sturgis. File system throughput. December 6, 1971. "On Saturday I conducted some timing tests. I wrote a BCPL program to do one word IO." 711206-file-system-timing-hes
  34. Kenneth J. Hebert "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
  35. Richard Colman. "Computer System Cut." Daily Californian, December 10, 1971. 711210-cut-dc
  36. M. Stuart Lynn. "CDC 6400 Departure". September 3, 1982. "The CDC 6400 is no more." 820903-cdc-6400-departure-msl

    3 Design memos

    Design: Prehistory

  37. Sturgis. November 15, 1967."What follows is a description of a basic time sharing system, as seen by a knowledgeable user." Last two pages are hand-drawn diagrams of process interactions, dated November 17, 1967. 671115-basic-timesharing-hes
  38. [Sturgis.] February 27, 1968. Early disk file system notes. 680227-filesystem-hes
  39. [Sturgis.] February 28, 1968. More early disk file system notes. 680228-more-filesystem-hes
  40. [Sturgis.] February 29, 1968. Capabilities, basic objects. 680229-basic-objects-hes
  41. [Sturgis.] February 29, 1968. Calculations based on size of 6638 disk. 680229-disk-size-calculations-hes
  42. [Sturgis.] March 3, 1968. Notes on disk file representation. 680303-disk-file-rep-hes
  43. [Sturgis.] March 4, 1968. More notes on disk file representation. 680304-more-disk-file-rep-hes
  44. Design: ECS system

  45. [Sturgis.] July 14, 1968. Map, operation, capability, objects. 680714-map-oper-capab-hes
  46. [Sturgis.] July 16, 1968. Process, subprocess. 680716-proc-subproc-hes
  47. [Lampson.] July 18, 1968. "Allocate ECS as follows: ..." 680718-alloc_ecs-bwl
  48. [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 per character. 68-scope-compat-bwl
  49. [Sturgis.] July 18, 1968. "Allocate fixed peripherals by list scheme ..." 680718-alloc-fixed-periphs-hes
  50. [Sturgis.] August 22, 1968. Timing estimates. 680822-timing-estimates-hes
  51. [Sturgis.] "Sensitive code versus interrupt routines." September 3, 1968. 680903-blocking-interrupts-hes
  52. [Sturgis.] "PPU interrupt procedure." September 3, 1968. 680903-ppu-interrupt-hes
  53. [Sturgis.] "Event channels." September 3, 1968. 680903-event-channels-hes
  54. [Sturgis.] "ECS System structure." September 5, 1968. 680905-ecs-system-struct-hes
  55. [Sturgis.] "Modification of operation; atomic action." September 10, 1968. "See 7/14/68." 680910-modify-oper-hes
  56. [Lindsay.] "Subprocess error handler." September 11, 1968. 680911-error-handler-bgl
  57. [Sturgis.] "Error handling." September 11, 1968. 680911-error-handler-hes
  58. [Lampson.] "Swapping and charge for ECS." September 11, 1968. 680911-swapping-charge-ecs-bwl
  59. [Sturgis.] "Process." September 19, 1968. 680919-process-hes
  60. [Sturgis.] "Stack now contains." September 27, 1968. Determination of new top of full path when a call or interrupt is being pushed onto the stack. 680927-top-of-full-path-hes
  61. [Sturgis.] Event channel algorithms. October 3, 1968. 681003-get-put-event-hes
  62. [Lindsay.] Implementation notes on processes, allocation blocks, etc. October 8, 1968. Second page lists task assignments, listing Malbrain and Simonyi for the first time. 681008-process-alloc-block-etc-bgl
  63. [Sturgis.] ECS layer specification. November 1, 1968. Suddenly the ECS system as we know it appears in a series of specifications for the various principal objects. The specifications are typewritten, unsigned (but by Howard?), and follow a similar numbered outline format. Numbers 4, 5, and 7 have not been found. 681101-ecs-layer-spec-hes
  64. [Lindsay.] Design notes. August–December 1968. 46 pages covering a variety of topics. 68-notes-bgl
  65. [Lindsay.] Blank compaction. January 9[, 1969?] Various aspects of text file representation; notes "approved". 690109-blank-compaction-bgl
  66. [Sturgis.] Speed freaks. January 15[, 1969?] "When speed freaks are running they will be permitted to only read files, write files, put an event on an EC, hang on an EC." 690115-speed-freaks-hes
  67. [Lindsay.] "Scope Sim[ulator]." Undated, circa January 1969? "Be able to run Compass & Fortran and load them with Fortran library." Also describes a simple directory for ECS files (with a file type indicating SCOPE or "system standard text") and a command processor apparently integrated with SCOPE simulator. Instead, this became the Bead. In a different hand is written "DO THE SIMPLE THING." 6901-scope-simulator-bgl
  68. [Lindsay.] ECS system data structure diagrams. Undated, circa winter 1969. Process, subprocess, event channel, clocks, process in ECS. 69-ecs-sys-data-structures-bgl
  69. [McJones.] "Operations". Undated, circa winter 1969. Operation data structure diagram. 69-operations-prm
  70. [Lindsay.] Design notes. January–February 1969. 5 pages covering various topics. 69-notes-bgl
  71. —. "Controlling Extended Core Storage Access Limits." August 20, 1969. Explains why direct user access to ECS is hobbled by 64-word granularity of ECSRA and ECSFL. 690820-ecs-access-limits
  72. [Standiford?] "Option bit assignments." August 20, 1969. Table of option bit assignments for the various object types. 690820-opt-bit-assign
  73. [Gray.] "[Addendum to] Systext standard." 1970? 70-systext-changes-jng
  74. [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
  75. [Sturgis.] "Tentative changes to ECS system." March 5, 1970. Design notes for return parameter authorization. Vaughan's copy notes: "He settled for return with parameters." 700305-new-sys-calls-hes
  76. [Sturgis.] "New ECS facility (version 3)." March 12, 1970. Design notes for capability-creating authorizations. 700312-cca-hes
  77. [Sturgis.] "New ECS facility." March 12, 1970. More design notes for return parameter authorization and block data and capability parameters. 700312-new-sys-calls-hes
  78. [Vaughan, Lindsay, and Redell.] "ECS-List." March 30, 1970. List of changes (bug fixes, additions, etc.) to ECS system. 700330-ecs-list-vv
  79. [Gray.] "Disk meeting." April 1, 1970. Scheme for blocking interrupts for a period of time. 700401-blocking-interrupts-jng
  80. [Vaughan.] "Interrupts." 1970? Notes for redesign. 70-interrupt-redesign-vv
  81. [Vaughan.] "Interrupts." April 2, 1970. 700402-interrupts-vv
  82. [Vaughan.] April 20, 1970. Notes on various ECS system redesign issues: dirty bit, ECS compaction, bent files, CPU time accunting, global interrupt inhibit, direct access to ECS, reallocation of ECS. 700420-ecs-sys-issues-vv
  83. [Vaughan.] "2 CP disaster sheet." Undated, circa early 1970? 70-2-cp-disaster-vv
  84. [Vaughan.] "Speed phreaques, scheduling, compactification, ECS code, DAE, & other theological questions made simple." Undated, circa early 1970? 70-speed-freaks-vv
  85. [McJones.] "Operations." June 3, 1970. Operation data structure diagram. 700603-operations-prm
  86. [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
  87. [Sturgis.] "Proposal: Observable states of a subprocess." November 18, 1970. Proposal for redesign of return to a subprocess. 701118-observable-states-hes
  88. [Sturgis.] "Actions in the event of a panic." November 24, 1970. "Bead 4.1 stuff. Later (4.2?) errors replaced with 'return with interrupt.'" 701124-bead-41-panic-hes
  89. [Sturgis.] "A proposal for the values of a call stack entry and their manipulation by the return operations." November 30, 1970.
  90. [Sturgis.] "Interrupt handling code at the command level in the new system." December 4, 1970. 701204-interrupt-handling-hes
  91. [Lindsay.] 1970? Proposal for interrupt priorities based on magnitude of high-order part of class code. 70-interrupt-proposal-bgl
  92. [Vaughan.] "Chapter XXimvldc of the continuing interrupt hassle." December 7, 1970. 701207-interrupts-vv
  93. [Vaughan.] "ECS operation timing." December 7, 1970. For display user clocks and write file. 701207-ecs-action-timing-vv
  94. [Lindsay.] "User direct ECS access." Undated, circa 1970. 70-direct-ecs-access-bgl
  95. [Vaughan.] "Questions on which you are invited to express opinions in the next few days." February 1, 1971. Includes updated version of 700601-reconstituted-list-vv. 710201-ecs-system-questions-vv
  96. [Vaughan.] "AB's Mark III." February 1971. 7102-ab-mk-iii-vv
  97. [Vaughan.] "New stack logic." February 22, 1971. Call stack manipulation changes based on 701118-observable-states-hes. 710222-new-stack-logic
  98. [Vaughan.] Block gone from file in map problem. February 22, 1971. Originally distributed with 710222-new-stack-logic. 710222-latest-on-maps-vv
  99. [Vaughan.] "Control of CPU time." February 22, 1971. A process is now descheduled when its CPU time runs out. Originally distributed with 710222-new-stack-logic. 710222-control-of-cpu-time-vv
  100. [Redell.] "CP time cutoff." Undated, circa February 1971? Describes a mechanism similar to 710222-control-of-cpu-time-vv. Did this precede or follow? 71-cp-time-cutoff-ddr
  101. [McDaniel.] "ECS global register and protection." July 22, 1971. Cover note from Vaughan and proposal from McDaniel for storing some process state bits in ECS global register. 710722-global-register-gam
  102. [Sturgis.] "Line collector." Undated, circa 1971. Vaughan: "debeaded" line collector. "This line collector uses code copied from GREYCODE,XTEXT the same as the old Bead. 71-debeaded-line-coll-hes
  103. [Sturgis.] "Calls on the TTY line collector." November 8, 1971. 711108-line-coll-hes
  104. [McDaniel.] "Modified scheduler."
  105. [McDaniel?] "Proposal for Modification of ECS System Timed Event Channels (TEVS)." November 4, 1971. 711104-timed-event-proposal-gam
  106. Design: Final system

    Design: Final system: architecture

  107. [Sturgis.] "Disk representation of file." May 1, 1969. 690501-file-rep-hes
  108. [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, subprocess descriptor." 700122-directories-hes
  109. [Sturgis.] "Subprocess descriptor." February 19, 1970. 700219-subproc-desc-hes
  110. [Sturgis.] "Directory object descriptions." February 19, 1970. "Implementation algorithms another time." 700219-dir-objs-hes
  111. [Sturgis.] April 23, 1970. "Open and close, general; directories; disk files; subprocess descriptors; access keys; global ECS object; ECS goodie." 700423-disk-sys-objects-hes
  112. [Sturgis.] "[Global] ECS object implementation." March 5, 1970. Design notes for representing ECS objects in disk system directories. 700305-ecs-goodie-api-hes
  113. [Sturgis.] "ECS goodie implementation." March 5, 1970. 700305-ecs-goodie-impl-hes
  114. [Sturgis.] "'Disk process' structure." March 19, 1970. 700319-disk-proc-struc-hes
  115. [Sturgis.] "General description of actions with respect to directories." April 17, 1970. 700417-directory-actions-hes
  116. [Sturgis.] "Directory structure." April 17, 1970. 700417-directory-structure-hes
  117. [Sturgis.] "Specific actions for directories." April 17, 1970. 700417-directory-action-specifics-hes
  118. [Sturgis.] "Subprocess descriptors." April 30, 1970. 700430-subproc-desc-hes
  119. [Sturgis.] "Dump-load." June 1, 1970. 700601-dump-load-hes
  120. Design: Final system: disk files

  121. [Redell.] "Disk Driver Buffer File." November 2, 1969. Hand-drawn diagram; compare with later 700728-disk-driver-spec-ddr. 691102-disk-driver-buffer-file-ddr
  122. [Vaughan.] Pseudo-close. Undated; circa spring 1970? Table of good and bad properties of "magic" and manual pseudo-close. 70-magic-pseudo-close-vv
  123. [Vaughan.] Notes on new disk system. Undated, circa March 12, 1970. 7003-disk-system-notes-vv
  124. [Redell.] 3-D rendering of swappable file. Undated, circa spring 1970. Pointer blocks, active blocks in ECS and on disk, and backup blocks on disk. 70-3d-swapped-file-drawing-ddr
  125. [Redell.] "Disk allocation routines." Undated, circa 1970? Internal procedures to get or free disk space for file header blocks, pointer blocks, and data blocks; register-based parameter-passing conventions; and diagrams of disk allocation tables. 70-disk-allocation-ddr
  126. [Redell.] Disk allocation register-based parameter passing conventions? Undated, circa 1970? This is very similar to the corresponding page of 70-disk-allocation-ddr; presumably it is an earlier or later version. 70-disk-allocator-interface-ddr
  127. [Redell.] "Free DDS Block." Undated, circa 1970? Diagram of free chain for DDS (Disk Data Structure) blocks. 70-free-dds-block-ddr
  128. [Lindsay.] "File Claim." Undated, circa mid 1970? Complete design document for a per-file shared/exclusive "advisory" lock. Includes introduction, programming interface, internal data structure, and flow charts. 70-file-claim-bgl
  129. [Lindsay.] Notes and flowchart for exchanging contents of two files ("shazam"). Undated, circa mid 1970? See 700716-new-low-level-disk-file-actions-ddr. 70-shazam-notes-flowchart-bgl
  130. [Redell and Lindsay.] "Page Switch and Pointer Pages." July 5, 1970. Diagram of ECS version (Disk Data Structure) of a pointer block, with detail views showing various data-block and pointer-block situations. 700705-page-switch-and-ptr-pages-ddr-bgl
  131. Redell and Lindsay. "Low Level Disk System Actions." July 9, 1970. This copy has Lindsay's annotations. 700709-low-level-disk-actions-ddr-bgl
  132. [Redell.] "New low-level disk file actions." July 16, 1970 Exchange contents of two files ("shazam"); fix current content of file (flush to disk). 700716-new-low-level-disk-file-actions-ddr
  133. [Redell?] "Disk driver specifications." July 28, 1970. Describes format of disk driver buffer file, request events, and response events, as well as the protocol for using them. 700728-disk-driver-spec-ddr
  134. [Lindsay.] File display actions. Undated, circa mid 1970? Display disk file status, status of n-th open disk file, and n-th attached block of file. Includes diagram of returned data, and copy of FHR record on which this was based. 70-file-display-actions-bgl
  135. [Lindsay.] File open flowchart. Undated, circa mid 1970? Rough handwritten flowchart; compare with 70-file-action-flowcharts-bgl. 70-file-open-flowchart-bgl
  136. [Lindsay.] File action flowcharts. Undated, circa mid 1970? Careful handwritten flowcharts for create, open, create data block, attach, and FRETURN read. Includes list of low level disk system actions, diagram of Local File Table. 70-file-action-flowcharts-bgl
  137. [Lindsay.] Extract of file creation source code; some test cases. Original coding sheets for portion of file creation action. Compare with this label "create21" with label "CREATE20" on page 14 of CREATE. 70-create-code-and-tests-bgl
  138. [Redell.] Flowcharts for disk system TERMINATOR process. Undated, circa 1970? Flowcharts of Central TERMINATOR and Local/Driver interface for each of: header block write and read, pointer block read, data block read and write; also local/driver interface for header block write and read, pointer block read. Also register-based calling conventions and some data structure diagrams. 70-disk-sys-terminator-ddr
  139. [Redell.] "HELPER Internals." Undated, circa 1970? Processing of pointer blocks for close and pseudo-close in Disk Data Structures (DDS). 70-helper-internals-ddr
  140. [Lindsay.] Design notes. April–August 1970. 19 pages covering various topics, mostly disk system related. 70-notes-bgl
  141. [Lindsay.] Design notes. 1970–1971. 79 pages covering various aspects of the disk system. 71-notes-bgl
  142. [Redell.] "Load; Recovery." November 9, 1970. Enumerates steps to load file system from tape and to recover an inconsistent state of the file system. 701109-load-recovery-steps-ddr
  143. [Redell.] "Destroy in User-disk-service subproc." November 29, 1970. Enumerates 7 steps, ending with sending an event to CLOSER daemon process to finish the work. 701129-destroy-file-ddr
  144. [Lindsay and Redell.] Dump tape management. Undated, circa late 1970? First page is Lindsay's description of daily/weekly/monthly file system dumps (backups); second page is Redell's diagram of the procedure. 70-dump-tape-mgmt-bgl-ddr
  145. [Redell.] New disk file actions. Undated, circa early 1971? Audit, declare accounting file, disk contents ready. 71-new-disk-file-actions-ddr
  146. [Redell.] Disk system data structure diagrams. Mostly undated; one dated February 16, 1970 and one February 9, 1971. Disk system global data overview, FHR (file header record), DAR (disk accounting record), LFH (local file header), FHB (file header block), pointer block, and in-disk data structure. 7102-disk-sys-data-structures-ddr
  147. [Redell.] "Response event from TERMINATOR; I/O Table Entry; HELPER Request Event." February 9, 1971. Diagrams of three one- or two-word structures. On this copy Redell has added ACCOUNTANT request event and USER-INDEX field of disk-driver request event. 710209-terminator-helper-events-ddr
  148. [Redell.] "Disk Accounting Record; Disk System Internal Accounting Calls." February 9, 1971. Disk accounting record diagram is hand-drawn; compare with (later?) 71-disk-accounting-record-ddr. Calls are OPENDAR, CLODAR, DARSPA (adjust space). 710209-disk-acctng-records-and-calls
  149. [Redell.] "DAR: Disk Accounting Record." Undated, circa 1971. Diagrams of Disk Accounting Record layouts.
  150. Redell. "Creation and destruction of accounting blocks." February 9, 1971. 710209-accounting-blocks-ddr
  151. [Redell.] "DABUF: Disk Accounting Block/Record Buffer." February 18, 1971. Assembly language declarations. 710218-dar-buf-ddr
  152. [Redell and Lindsay.] "Proposed actions relating to accounting."
  153. [Redell.] "To remove Allocator from FRETRW." Undated, circa 1971? Enumerates steps to perform some restructuring of disk system code. 71-remove-allocator-from-fretrw-ddr
  154. [Redell.] "Notes: Pseudo-close; Exchange contents." Undated, circa 1971? Proposes centralizing pseudo-close code in user subprocess to avoid deadlock with TERMINATOR daemon; describes implementation of "Exchange contents of two files." 71-pseudo-close-and-exchange-notes-ddr
  155. Redell. Closing down a disk process. March 3, 1971. 710303-disk-proc-end-ddr-bgl
  156. Redell and Lindsay. Accounting block services.
  157. [Redell or Lindsay.] "Declare process swapped-ECS cross-section." Undated, circa 1971. Description of disk file action. 71-decl-proc-swapped-ecs-xsec
  158. [Lindsay.] Notes on forced swapping of a process. Undated, circa 1971? 71-swapping-bgl
  159. Design: Final system: directories

  160. [McJones.] "Directory." June 29, 1970. Preliminary interface specification and internal data structure.
  161. [McJones.] "Name tag system." December 10, 1970. Design for static and dynamic name tag implementation; only the latter was implemented. 701210-name-tag-system-prm
  162. [McJones.] October 19, 1971. Instructions for building the directory system. 711019-maintaining-dir-sys-prm
  163. Design: Executive system

  164. [Sturgis.] "System and system part of user process initialization."
  165. [Sturgis.] "Tentative basic command processor." September 11, 1970. 700911-tent-basic-cmmd-hes
  166. [Sturgis.] "Syntax of parameters [for new command processor.]" December 5, 1970. "Read gently." 701205-param-syntax-hes
  167. [Sturgis.] "WARNING: New syntax for commands." Undated, but after 701205-param-syntax-hes. 70-new-cmmd-syntax-hes
  168. [Sturgis.] "Bead naming conventions; Bead calls (directory actions)." December 7, 1970. Simulating Bead calls in the new system. 701207-bead-sim-hes
  169. [Sturgis.] "Proposal for proprietary subprocesses." February 24, 1971. 710224-prop-subp-hes
  170. [Sturgis.] "Current root directory structure." February 24, 1971. Subdirectories OPERATE, CLASS, S ("soon to be called PUBLIC"), and TDLIST; also PUB.KEY (access key). 710224-current-rootd-hes
  171. Sturgis. "Preliminary proposal for testing system subprocesses of user processes." June 8, 1971. 710608-testing-sys-subprocs-hes
  172. [Sturgis.] Multiprocess test framework: BCPL source code. Undated, circa summer 1971. Coordination framework for running a command in multiple processes and retrieving the reports. Written in BCPL, but probably not finished. 71-test-runner-hes
  173. Sturgis, “A note on charging.” August 17, 1971.
  174. [Vaughan.] "User Profile." Undated, circa 1971? Diagram of user profile data structure recording user information including accounting. Includes note from Bridge to Vaughan proposing staffing for dumping the dayfile (accounting information). 71-user-profile-vv-whb.pdf
  175. —. "List of privileged operations." November 3, 1971. Covers ECS system and higher layers; line printer listing (edited on the system). 711103-priv-ops
  176. [Standiford.] "Proposed change to Builder." November 9, 1971. New interpretation of scratch-file size. 711109-builder-proposal-kps
  177. 4 Documentation

    Documentation: ECS system

  178. [Bentley, Gray, Lindsay, Redell, Sturgis.] Overview of the CAL Time Sharing System. Unpublished draft, superseded by 691010-overview-bwl.
  179. Lampson. "An Overview of the CAL Time-Sharing System." October 10, 1969. Reprint of [Lam69], with a progress report (similar to 691011-progress-jng) appended. 691010-overview-bwl
  180. —. "CAL Time-Sharing System Users Guide." November 1969. Actually, this is the programming reference manual.
  181. —. "CAL-TSS Internals Manual." November 1969.
  182. [Sturgis.] TS Interrupt System. September 2, 1969. Interface between peripheral processor code (device drivers) and user processes. Probably originally for inclusion in Internals Manual.
  183. [Sturgis.] "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. 691105-s-dev-hes
  184. [Standiford.] "TSS Display Driver - Revision A." July 6, 1970. 700706-disp-driv-rev-a-kps
  185. Vaughan. "Change to indirect C-list specifications." July 20, 1970. 700720-new-indir-clist-vv
  186. Vaughan. August 10, 1970. Updates for ECS system documentation: capability-creating operations, return with parameters, block data and capability parameters, indirect capability parameters. 700810-ecs-sys-updates-vv
  187. [Vaughan.] Undated; circa fall 1970? Jump Call, Special Return, Find Nth Son of a given Subprocess, Zero a capability.
  188. [Vaughan.] Internal Changes. Undated. SUBPROC dostk, CAPAB error modifier conventions, ECSACT,XTEXT conventions. 70-internal-changes-vv
  189. Vaughan. "Allocation blocks." January 4, 1971. "Proposed User's Manual sections for allocation blocks." 710104-alloc-block-vv
  190. McDaniel. "The Cal TSS interrupt system." Circa spring 1971. 71-int-sys-gam
  191. Documentation: Bead

  192. [Malbrain.] "The Bead." Undated, circa summer 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." 69-bead-km
  193. —. The BEAD Users Guide. December 18, 1969. 691218-bead-ug-km
  194. [Malbrain.] "Interim system version 3.0." Undated, circa 1970. "The primary changes occur in the BEAD and IPROC. Space is tightly controlled to alleviate garbage collection problem. ... The BEAD has two new commands: 'SPACE, n' and 'TRIM'". 70-interim-system-30-km
  195. [Sturgis.] "Bead 4.0." Undated, circa 1970. "Differences from Bead 3.1 (those that I can think of)." Document apparently edited on Cal TSS and printed on TTY. 70-bead-40-hes
  196. [Sturgis.] "How to make a new system tape for Bead 4.0." Undated, circa 1970. All-caps listing on TTY; edited on the system. First mention of Builder? 70-make-sys-tape-bead-40
  197. [McDaniel.] Bead error classes and numbers. Undated, circa 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???" 70-bead-errors-gam
  198. [Sturgis.] "Errors in BEADS." Undated, circa 1971. 71-errors-in-beads-hes
  199. [Vaughan.] "BEADS Errors." Undated, circa 1971? 71-beads-errors-vv
  200. Documentation: SCOPE simulator

  201. —. "Preliminary SCOPE Manual." November 5, 1969. The SCOPE simulator made it possible to run programs designed for CDC's SCOPE batch system. 691105-scope-prelim-km
  202. —. "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." 700121-scope-km
  203. [Malbrain.] "SCOPE 3.0." Undated, circa 1970. 70-scope-30-km
  204. Documentation: User subsystems

  205. [Gray.] Line collector key bindings. Undated, circa 1969. Key bindings for backing up, copying or skipping by various amounts. 69-line-collector-key-bindings-jng
  206. Morris. "Editor Commands." Undated, circa 1969. Handwritten; has Substitute rather than Change. 69-ed-cmmds-jhm
  207. [Morris.] Handwritten editor documentation. Undated, circa summer 1969? Subtitute is crossed out and replaced with Change. 69-editor-jhm
  208. —. Quick start guide. Undated, circa summer 1969? "This is a preliminary description of the use of SNOBOL4 under the Time Sharing System." Three-page guide to use of Bead, Editor, and SCOPE simulator to prepare and run a SNOBOL4 program . 69-short-guide
  209. [Standiford.] "TSS Printer Driver." November 5, 1969.
  210. [Standiford.] "TSS Display Driver." Late 1969? 69-disp-driv-kps
  211. [Sturgis.] "Interim Disk System: Preliminary Manual." Undated, circa January 1970. 7001-interim-disk-sys-hes
  212. [Standiford.] "TSS display driver: Programming considerations—an amendment to previous document of late 1969." Undated. Distributed with an attached copy of 69-disp-driv-kps. 70-disp-driv-amend-kps
  213. [Standiford.] "TSS Display Driver: Operators Guide." Undated. 70-disp-op-guide-kps
  214. [Standiford?] "TSS PP DUMP and TSS PP DUMP-TAPE SCANNER." Undated, circa 1970? 70-pp-dump-kps
  215. [Morris.] "The Text Editor." July 9, 1970. 700709-ed-jhm
  216. Morris. "The Idiot's Guide to TSS." Fall 1970? 7009-idiots-guide-jhm
  217. [Standiford.] "Savetss." Undated, late 1971? "Savetss is a Fortran program for retrieving files from a TSS DISK DUMP TAPE." Written after TSS was cancelled? 71-savetss-kps
  218. Documentation: Programming languages

  219. [Malbrain and McJones.] "COOL-AID." 1969? Reference manual for unfinished PL/360-like assembler. 69-cool-aid-km-prm
  220. [Bridge.] "BASIC." May 1971. Section E of Part 4 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide. BASIC ran interactively under TSS and in batch mode on SCOPE. 7105-cal-basic-whb
  221. J. H. Morris[, Jr]. BCPL Users Guide. Computer Center, University of California, Berkeley. December 1969. This initial port ran only under SCOPE; see also 7105-cal-bcpl-jhm. 6912-bcpl-users-guide-jhm
  222. [Morris, borrowing from Canady and Ritchie.] "BCPL." May 1971. Section F of Part 4 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide. This version ran natively under TSS. 7105-cal-bcpl-jhm
  223. Bridge, McDaniel, and McJones. "CAL Lisp: Preliminary Description." June 1971? Incomplete design for a LISP 1.5 implementation for CAL TSS (class project). 7106-cal-lisp-whb-gam-prm
  224. Earley and Caizergues. "VERS Manual: Version 4". October 1971.
  225. Documentation: Final system

  226. Sturgis. "Command processor preliminary document." 1971?
  227. [Redell.] Command processor complex preliminary document. 1971?
  228. [Sturgis.] Grammar for command language. Undated, circa 1971. 71-cmmd-grammar-hes
  229. [McJones.] Documentation of basic directory actions. Undated, circa January 1971. Open, close, access, access via scan list, create disk file, create directory, move space, increment charge meter, set accounting tag, display disk accounting record, return clocks. 7101-dir-actions-prm
  230. [McJones.] Documentation of directory display actions. February 9, 1971. Display: n-th entry, named entry, access pairs, successor pointer. 710209-dir-actions-prm
  231. [Vaughan.] "Portrait of a subprocess descriptor." Spring 1971? 71-portrait-subproc-desc-vv
  232. —. "Summary documents." Brief summaries: Idiot's Guide, Editor, BASIC; appendices: getting back to command processor; using line collector.
  233. [Sturgis.] "SPACE command in CMMD." May 5, 1971. Command for controlling swapped ECS space, fixed ECS space, MOT slots, and temporary disk space. 710505-space-cmmd-hes
  234. [Sturgis.] "New version of CMMD." May 17, 1971. 710517-new-cmmd-hes
  235. [Gould.] Instructions for running BASIC on the CAL Time-Sharing System. May 1971. Prepared for her spring 1971 CS1 course. Covered finding a teletype, logging in, editing, interpreting error messages, etc. 7105-instructions-for-basic-leg
  236. —. Time-Sharing System Manual. Part 3 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide.
  237. [Sturgis.] "New facilities available from command processor." June 6, 1971. New operations available to subsystems. 710606-new-cmmd-facilities-hes
  238. [Sturgis. "New commands in SERVICES." June 11, 1971. New commands: SHAZAM, CHAIN, UNCHAIN, and SOFTL. 710611-new-services-cmmds-hes
  239. [Bentley and Vaughan, editors.] "Introduction to CAL TSS." July 1971; updated October and November 1971. General concepts, examples, and subsystem summaries for Editor, BASIC, SCOPE simulator, and command processor Services and Bead Ghost. Early drafts evolved out of Chapter 1 of 7105-tss-manual (see first section of 71-cookbook-vv). 7111-intro-mab-vv
  240. [Vaughan.] Assorted CAL TSS files. 1970-1971.
  241. [McJones.] Documentation of bulk directory actions. October 27, 1971. Access multiple owned objects, get/put multiple disk addresses. Were these to optimize LOAD/DUMP/RECOVER? 711027-dir-actions-prm
  242. [Sturgis.] "New features in CMMD." October 27, 1971. TEST mode; TTYON, TTYSON, TTYOFF, NEWMASTER, SYSDOWN, FORCEOUT commands. 711027-new-cmmd-features-hes
  243. [McJones.] "Option bits". November 3, 1971. Directory option bit assignments. 711103-dir-option-bits-prm
  244. Documentation: System operation

  245.  [?] ECS deadstart dump programs. Undated, circa early 1969. A deadstart program was entered into a 12x12 array of toggle switches on the 6400. This one apparently loaded a program from tape that would dump the contents of ECS to the printer. 69-ecs-dead-start-dump-info
  246. [Vaughan.] List of various documents in reverse chronological order. August 26, 1971. 710826-doc-list-vv
  247. Vaughan. System Maintenance. October 15, 1971. "Currently the naive TSS systems programmer is unable to contruct arbitrary parts of the operating system or user subsystems unless he has ritten some or all of the code for that system." 711015-system-maintenance-vv
  248. [Vaughan.] "Accounting info." November 1, 1971. Annotated TTY listing showing how to dump accounting information. 711101-actng-info-vv
  249. [Vaughan.] "SaveDF prior to load." Accompanied 711101-actng-info-vv? 711101-savedf-notes-vv
  250. [Sturgis.] "To be done on Sunday 8pm." Undated, presumably before Sunday, November 24, 1971? Outlines steps to create new user directories with funds, based on list from Jim Markison in the Computer Center Accounting Department. 7111-accounting-setup-hes
  251. —. CAL-TSS operator's manual. Initial version was September 10, 1970; various updates through November 1971. Includes short procedures and trouble-shooting information, deadstart tape log (one-page form for each time a system programmer wrote, tested, and installed a new deadstart tape), and bug list/failure log (one-page form for each system crash). 71-operators-manual
  252. 5 Humor

  253. Richard Brautigan. All Watched Over by Machines of Loving Grace. April 27, 1970. Photocopied and distributed to the staff by Vaughan. 700427-brautigan-vv
  254. Redell. "Cal-TSS 20th Anniversary Trivia Quiz." December 14, 1991. 911214-trivia-quiz-ddr
  255. Redell. "Answers to Cal-TSS 20th Anniversary Trivia Quiz." September 2015. 201509-trivia-answers-ddr

    6 Chronological order

    This section repeats all the documents in the previous section in a single chronological sequence.

    6.i "A basic time sharing system"

    The earliest 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 or (multilevel) operations.

  1. [Sturgis.] May 4, 1967. "This paper is a general description of what I think needs to be done to produce a time sharing operating system for our CDC 6400 with ECS, that will be commensurate with the capabilities of the machine. 670504-timesharing-hes
  2. [Sturgis.] November 15, 1967. "What follows is a description of a basic time sharing system, as seen by a knowledgeable user." Last two pages are hand-drawn diagrams of process interactions, dated November 17, 1967. 671115-basic-timesharing-hes
  3. [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." 680220-mhg-to-hes
  4. [Sturgis.] February 27, 1968. Early disk file system notes. 680227-filesystem-hes
  5. [Sturgis.] February 28, 1968. More early disk file system notes. 680228-more-filesystem-hes
  6. [Sturgis.] February 29, 1968. Capabilities, basic objects. 680229-basic-objects-hes
  7. [Sturgis.] February 29, 1968. Calculations based on size of 6638 disk. 680229-disk-size-calculations-hes
  8. [Sturgis.] March 3, 1968. Notes on disk file representation. 680303-disk-file-rep-hes
  9. [Sturgis.] March 4, 1968. More notes on disk file representation. 680304-more-disk-file-rep-hes
  10. 6.ii Designing the ECS system

    In May 1968 Professor Martin Graham, (then Associate Director of the Computer Center) and Howard Sturgis met with Butler Lampson to discuss his involvement in the timesharing project that they were about to initiate. [Graham to Vice-Chancellor Sammet, May 16, 1968, Chancellor's Office Records, Bancroft Library, CU-149. Box 121, folder 9]

    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, subbprocesses, errors and interrupts, and more.

  11. [Sturgis.] July 14, 1968. Map, operation, capability, objects. 680714-map-oper-capab-hes
  12. [Sturgis.] July 16, 1968. Process, subprocess. 680716-proc-subproc-hes
  13. [Lampson.] July 18, 1968. "Allocate ECS as follows: ..." 680718-alloc_ecs-bwl
  14. [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 per character. 68-scope-compat-bwl
  15. [Sturgis.] July 18, 1968. "Allocate fixed peripherals by list scheme ..." 680718-alloc-fixed-periphs-hes
  16. [Sturgis.] August 22, 1968. Timing estimates. 680822-timing-estimates-hes
  17. [Sturgis.] "Sensitive code versus interrupt routines." September 3, 1968. 680903-blocking-interrupts-hes
  18. [Sturgis.] "PPU interrupt procedure." September 3, 1968. 680903-ppu-interrupt-hes
  19. [Sturgis.] "Event channels." September 3, 1968. 680903-event-channels-hes
  20. [Sturgis.] "ECS System structure." September 5, 1968. 680905-ecs-system-struct-hes
  21. [Sturgis.] "Modification of operation; atomic act[ion]." September 10, 1968. "See 7/14/68." 680910-modify-oper-hes
  22. [Lindsay.] "Subprocess error handler." September 11, 1968. 680911-error-handler-bgl
  23. Sturgis. "Error handling." September 11, 1968. 680911-error-handler-hes
  24. [Lampson.] "Swapping and charge for ECS." September 11, 1968. 680911-swapping-charge-ecs-bwl
  25. [Sturgis.] "Process." September 19, 1968. 680919-process-hes
  26. [Sturgis.] "Stack now contains." September 27, 1968. Determination of new top of full path when a call or interrupt is being pushed onto the stack. 680927-top-of-full-path-hes
  27. [Sturgis.] Event channel algorithms. October 3, 1968. 681003-get-put-event-hes
  28. [Sturgis.] ECS layer specification. November 1, 1968. Suddenly the ECS system as we know it appears in a series of specifications for the various principal objects. The specifications are typewritten, unsigned (but by Howard?), and follow a similar numbered outline format. Numbers 4, 5, and 7 have not been found. 681101-ecs-layer-spec-hes
  29. Next the focus shifted to detailed design. Malbrain joined the group, and Simonyi attended a few meetings, but did not join the project, nominating his CAL SNOBOL partner McJones in his stead. Around the same time Gray and Morris began contributing. In the spring of 1969, Standiford joined. That summer Redell joined.

  30. [Lindsay.] Implementation notes on processes, allocation blocks, etc. October 8, 1968. Second page lists task assignments, listing Malbrain and Simonyi for the first time. 681008-process-alloc-block-etc-bgl
  31. [Lindsay.] Design notes. August–December 1968. 46 pages covering a variety of topics. 68-notes-bgl
  32. [Lindsay.] Blank compaction. January 9[, 1969?] Various aspects of text file representation; notes "approved". 690109-blank-compaction-bgl
  33. [Sturgis.] Speed freaks. January 15[, 1969?] "When speed freaks are running they will be permitted to only read files, write files, put an event on an EC, hang on an EC." 690115-speed-freaks-hes
  34. [Lindsay.] "Scope Sim[ulator]." Undated, circa January 1969? "Be able to run Compass & Fortran and load them with Fortran library." Also describes a simple directory for ECS files (with a file type indicating SCOPE or "system standard text") and a command processor apparently integrated with SCOPE simulator. Instead, this became the Bead. In a different hand is written "DO THE SIMPLE THING." 6901-scope-simulator-bgl
  35. [Lindsay.] ECS system data structure diagrams. Undated, circa winter 1969. Process, subprocess, event channel, clocks, process in ECS. 69-ecs-sys-data-structures-bgl
  36. [McJones.] "Operations". Undated, circa winter 1969. Operation data structure diagram. 69-operations-prm
  37.  [?] ECS deadstart dump programs. Undated, circa early 1969. A deadstart program was entered into a 12x12 array of toggle switches on the 6400. This one apparently loaded a program from tape that would dump the contents of ECS to the printer. 69-ecs-dead-start-dump-info
  38. [Lindsay.] Design notes. January–February 1969. 5 pages covering various topics. 69-notes-bgl
  39. [Sturgis.] "Disk representation of file." May 1, 1969. 690501-file-rep-hes
  40. —. "Controlling Extended Core Storage Access Limits." August 20, 1969. Explains why direct user access to ECS is hobbled by 64-word granularity of ECSRA and ECSFL. 690820-ecs-access-limits
  41. [Standiford?] "Option bit assignments." August 20, 1969. Table of option bit assignments for the various object types. 690820-opt-bit-assign
  42. 6.iii The ECS system begins to run

    By the summer of 1969 enough of the ECS system existed to allow a public demonstration exhibiting editing, compiling and execution of Fortran programs from two teletypes simultaneously.

  43. [Malbrain.] "The Bead." Undated, circa summer 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." 69-bead-km
  44. [Gray.] Line collector key bindings. Undated, circa 1969. Key bindings for backing up, copying or skipping by various amounts. 69-line-collector-key-bindings-jng
  45. [Morris.] "Editor Commands." Undated, circa 1969. Handwritten; has Substitute rather than Change. 69-ed-cmmds-jhm
  46. [Morris.] Handwritten editor documentation. Undated, circa summer 1969? Subtitute is crossed out and replaced with Change. 69-editor-jhm
  47. —. Quick start guide. Undated, circa summer 1969? "This is a preliminary description of the use of SNOBOL4 under the Time Sharing System." Three-page guide to use of Bead, Editor, and SCOPE simulator to prepare and run a SNOBOL4 program . 69-short-guide
  48. [Sturgis.] "TS Interrupt System." September 2, 1969. Interface between peripheral processor code (device drivers) and user processes. Probably originally for inclusion in Internals Manual.
  49. [Redell.] "Disk Driver Buffer File." November 2, 1969. Hand-drawn diagram; compare with later 700728-disk-driver-spec-ddr. 691102-disk-driver-buffer-file-ddr
  50. [Bentley, Gray, Lindsay, Redell, Sturgis.] Overview of the CAL Time Sharing System. Unpublished draft, superseded by 691010-overview-bwl.
  51. Lampson. "An Overview of the CAL Time-Sharing System." October 10, 1969. Reprint of [Lam69], with a progress report (similar to 691011-progress-jng) appended. 691010-overview-bwl
  52. Gray. "Progress Report on 6400 CAL Time-Sharing System." October 11, 1969. 691011-progress-jng
  53. —. "CAL Time-Sharing System Users Guide." November 1969. Actually, this is the programming reference manual.
  54. —. "CAL-TSS Internals Manual." November 1969.
  55. —. "Preliminary SCOPE Manual." November 5, 1969. The SCOPE simulator made it possible to run programs designed for CDC's SCOPE batch system. 691105-scope-prelim-km
  56. [Standiford.] "TSS Printer Driver." November 5, 1969.
  57. [Standiford.] "TSS Display Driver." Late 1969? 69-disp-driv-kps
  58. [Sturgis.] "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. 691105-s-dev-hes
  59. —. "The BEAD Users Guide." December 18, 1969. 691218-bead-ug
  60. [Malbrain and McJones.] "COOL-AID." 1969? Reference manual for unfinished PL/360-like assembler. 69-cool-aid-km-prm
  61. J. H. Morris[, Jr]. BCPL Users Guide. Computer Center, University of California, Berkeley. December 1969. This initial port ran only under SCOPE; see also 7105-cal-bcpl-jhm. 6912-bcpl-users-guide-jhm
  62. —. "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." 700121-scope-km
  63. [Sturgis.] "Interim Disk System: Preliminary Manual." Undated, circa January 1970. 7001-interim-disk-sys-hes
  64. Gray. "(Lack of Visible) Progress Report: CAL-6400-TSS." January 15, 1970. 700115-progress-jng
  65. [Standiford.] "TSS display driver: Programming considerations—an amendment to previous document of late 1969." Undated. Distributed with an attached copy of 69-disp-driv-kps. 70-disp-driv-amend-kps
  66. [Standiford.] "TSS Display Driver: Operators Guide." Undated. 70-disp-op-guide-kps
  67. [Standiford?] "TSS PP DUMP and TSS PP DUMP-TAPE SCANNER." Undated, circa 1970? 70-pp-dump-kps
  68. [Malbrain.] "Interim system version 3.0." Undated, circa 1970. "The primary changes occur in the BEAD and IPROC. Space is tightly controlled to alleviate garbage collection problem. ... The BEAD has two new commands: 'SPACE, n' and 'TRIM'". 70-interim-system-30-km
  69. [Malbrain.] "SCOPE 3.0." Undated, circa 1970. 70-scope-30-km
  70. [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 ? 70-batch-proposal-km
  71. [Lindsay.] 1970? Proposal for interrupt priorities based on magnitude of high-order part of class code. 70-interrupt-proposal-bgl
  72. [Gray.] "[Addendum to] Systext standard." 1970? 70-systext-changes-jng
  73. 6.iv Designing the disk system

    In the fall Vaughan and McDaniel joined the project, completing the core team.

  74. [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
  75. [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, subprocess descriptor." 700122-directories-hes
  76. [Sturgis.] "Subprocess descriptor." February 19, 1970. 700219-subproc-desc-hes
  77. [Sturgis.] "Directory object descriptions." February 19, 1970. "Implementation algorithms another time." 700219-dir-objs-hes
  78. [Sturgis.] "Tentative changes to ECS system." March 5, 1970. Design notes for return parameter authorization. Vaughan's copy notes: "He settled for return with parameters." 700305-new-sys-calls-hes
  79. [Sturgis.] "[Global] ECS object implementation." March 5, 1970. Design notes for representing ECS objects in disk system directories. 700305-ecs-goodie-api-hes
  80. [Sturgis.] "ECS goodie implementation." March 5, 1970. 700305-ecs-goodie-impl-hes
  81. [Sturgis.] "New ECS facility (version 3)." March 12, 1970. Design notes for capability-creating authorizations. 700312-cca-hes
  82. [Sturgis.] "New ECS facility." March 12, 1970. More design notes for return parameter authorization and block data and capability parameters. 700312-new-sys-calls-hes
  83. [Vaughan.] Notes on new disk system. Undated, circa March 12, 1970. 7003-disk-system-notes-vv
  84. [Sturgis.] "'Disk process' structure." March 19, 1970. 700319-disk-proc-struc-hes
  85. [Vaughan, Lindsay, and Redell.] "ECS-List." March 30, 1970. List of changes (bug fixes, additions, etc.) to ECS system. 700330-ecs-list-vv
  86. [Vaughan.] "Evaluation of work yet to be done on the ECS system as of 30 March 70." Last page of memo dated April 13, 1970; followed by 4 pages on allocation block operations, file page dirty bits, deliver of interrupt datum, change unique name issues, and allocator issues. March 30, 1970. 700330-evaluation-vv
  87. [Gray.] "Disk meeting." April 1, 1970. Scheme for blocking interrupts for a period of time. 700401-blocking-interrupts-jng
  88. [Vaughan.] "Interrupts." 1970? Notes for redesign. 70-interrupt-redesign-vv
  89. [Vaughan.] "Interrupts." April 2, 1970. 700402-interrupts-vv
  90. Gray. "CAL Progress Report." April 15, 1970. 700415-progress-jng
  91. [Sturgis.] "General description of actions with respect to directories." April 17, 1970. 700417-directory-actions-hes
  92. [Sturgis.] "Directory structure." April 17, 1970. 700417-directory-structure-hes
  93. [Sturgis.] "Specific actions for directories." April 17, 1970. 700417-directory-action-specifics-hes
  94. [Vaughan.] April 20, 1970. Notes on various ECS system redesign issues: dirty bit, ECS compaction, bent files, CPU time accunting, global interrupt inhibit, direct access to ECS, reallocation of ECS. 700420-ecs-sys-issues-vv
  95. [Vaughan.] "2 CP disaster sheet." Undated, circa early 1970? 70-2-cp-disaster-vv
  96. [Vaughan.] "Speed phreaques, scheduling, compactification, ECS code, DAE, & other theological questions made simple." Undated, circa early 1970? 70-speed-freaks-vv
  97. [Sturgis.] April 23, 1970. "Open and close, general; directories; disk files; subprocess descriptors; access keys; global ECS object; ECS goodie." 700423-disk-sys-objects-hes
  98. Richard Brautigan. All Watched Over by Machines of Loving Grace. April 27, 1970. Photocopied and distributed to the staff by Vaughan. 700427-brautigan-vv
  99. [Sturgis.] "Subprocess descriptors." April 30, 1970. 700430-subproc-desc-hes
  100. [Vaughan.] Pseudo-close. Undated; circa spring 1970? Table of good and bad properties of "magic" and manual pseudo-close. 70-magic-pseudo-close-vv
  101. [Redell.] 3-D rendering of swappable file. Undated, circa spring 1970. Pointer blocks, active blocks in ECS and on disk, and backup blocks on disk. 70-3d-swapped-file-drawing-ddr
  102. [Vaughan.] "September system." [June 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. 7006-sept-sys-vv
  103. [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'." Apparently distributed with a copy of the first page of 700330-evaluation-vv attached. 700601-reconstituted-list-vv
  104. [Malbrain?] "Batch system." [June 1970?] "It is planned to have a running TSS BATCH system by August 15, 1970, running under the TSS 'September' system." 7006-batch-system-km
  105. 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 is replacing me. The job is thankless, draining, mundane, and unpleasant." 700601-progress-jng
  106. [Sturgis.] "Dump-load." June 1, 1970. 700601-dump-load-hes
  107. [McJones.] "Operations." June 3, 1970. Operation data structure diagram. 700603-operations-prm
  108. [McJones.] "Directory." June 29, 1970. Preliminary interface specification and internal data structure.
  109. [Standiford.] "TSS Display Driver - Revision A." July 6, 1970. 700706-disp-driv-rev-a-kps
  110. Morris. "The Text Editor." July 9, 1970. 700709-ed-jhm
  111. [Redell.] "Disk allocation routines." Undated, circa 1970? Internal procedures to get or free disk space for file header blocks, pointer blocks, and data blocks; register-based parameter-passing conventions; and diagrams of disk allocation tables. 70-disk-allocation-ddr
  112. [Redell.] Disk allocation register-based parameter passing conventions? Undated, circa 1970? This is very similar to the corresponding page of 70-disk-allocation-ddr; presumably it is an earlier or later version. 70-disk-allocator-interface-ddr
  113. [Redell.] "Free DDS Block." Undated, circa 1970? Diagram of free chain for DDS (Disk Data Structure) blocks. 70-free-dds-block-ddr
  114. [Lindsay.] "File Claim." Undated, circa mid 1970? Complete design document for a per-file shared/exclusive "advisory" lock. Includes introduction, programming interface, internal data structure, and flow charts. 70-file-claim-bgl
  115. [Lindsay.] Notes and flowchart for exchanging contents of two files ("shazam"). Undated, circa mid 1970? See 700716-new-low-level-disk-file-actions-ddr. 70-shazam-notes-flowchart-bgl
  116. [Redell and Lindsay.] "Page Switch and Pointer Pages." July 5, 1970. Diagram of ECS version (Disk Data Structure) of a pointer block, with detail views showing various data-block and pointer-block situations. 700705-page-switch-and-ptr-pages-ddr-bgl
  117. Redell and Lindsay. "Low Level Disk System Actions." July 9, 1970. This copy has Lindsay's annotations. 700709-low-level-disk-actions-ddr-bgl
  118. [Redell.] "New low-level disk file actions." July 16, 1970 Exchange contents of two files ("shazam"); fix current content of file (flush to disk). 700716-new-low-level-disk-file-actions-ddr
  119. Vaughan. "Change to indirect C-list specifications." July 20, 1970. 700720-new-indir-clist-vv
  120. [Redell?] "Disk driver specifications." July 28, 1970. Describes format of disk driver buffer file, request events, and response events, as well as the protocol for using them. 700728-disk-driver-spec-ddr
  121. [Lindsay.] File display actions. Undated, circa mid 1970? Display disk file status, status of n-th open disk file, and n-th attached block of file. Includes diagram of returned data, and copy of FHR record on which this was based. 70-file-display-actions-bgl
  122. [Lindsay.] File open flowchart. Undated, circa mid 1970? Rough handwritten flowchart; compare with 70-file-action-flowcharts-bgl. 70-file-open-flowchart-bgl
  123. [Lindsay.] File action flowcharts. Undated, circa mid 1970? Careful handwritten flowcharts for create, open, create data block, attach, and FRETURN read. Includes list of low level disk system actions, diagram of Local File Table. 70-file-action-flowcharts-bgl
  124. [Lindsay.] Extract of file creation source code; some test cases. Original coding sheets for portion of file creation action. Compare with this label "create21" with label "CREATE20" on page 14 of CREATE. 70-create-code-and-tests-bgl
  125. [Redell.] Flowcharts for disk system TERMINATOR process. Undated, circa 1970? Flowcharts of Central TERMINATOR and Local/Driver interface for each of: header block write and read, pointer block read, data block read and write; also local/driver interface for header block write and read, pointer block read. Also register-based calling conventions and some data structure diagrams. 70-disk-sys-terminator-ddr
  126. [Redell.] "HELPER Internals." Undated, circa 1970? Processing of pointer blocks for close and pseudo-close in Disk Data Structures (DDS). 70-helper-internals-ddr
  127. Vaughan. August 10, 1970. Updates for ECS system documentation: capability-creating operations, return with parameters, block data and capability parameters, indirect capability parameters. 700810-ecs-sys-updates-vv
  128. [Vaughan.] Undated; circa fall 1970? Jump Call, Special Return, Find Nth Son of a given Subprocess, Zero a capability.
  129. [Vaughan.] Internal Changes. Undated. SUBPROC dostk, CAPAB error modifier conventions, ECSACT,XTEXT conventions. 70-internal-changes-vv
  130. [Sturgis.] "Bead 4.0." Undated, circa 1970. "Differences from Bead 3.1 (those that I can think of)." Document apparently edited on Cal TSS and printed on TTY. 70-bead-40-hes
  131. [Sturgis.] "How to make a new system tape for Bead 4.0." Undated, circa 1970. All-caps listing on TTY; edited on the system. First mention of Builder? 70-make-sys-tape-bead-40
  132. [Lindsay.] Design notes. April–August 1970. 19 pages covering various topics, mostly disk system related. 70-notes-bgl
  133. [Lindsay.] Design notes. 1970–1971. 79 pages covering various aspects of the disk system. 71-notes-bgl
  134. [McDaniel.] Bead error classes and numbers. Undated, circa 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???" 70-bead-errors-gam
  135. Morris. "The Idiot's Guide to TSS." Fall 1970? 7009-idiots-guide-jhm
  136. [Sturgis.] "Tentative basic command processor." September 11, 1970. 700911-tent-basic-cmmd-hes
  137. [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
  138. [Sturgis.] "System and system part of user process initialization."
  139. [Redell.] "Load; Recovery." November 9, 1970. Enumerates steps to load file system from tape and to recover an inconsistent state of the file system. 701109-load-recovery-steps-ddr
  140. [Lindsay and Redell.] Dump tape management. Undated, circa late 1970? First page is Lindsay's description of daily/weekly/monthly file system dumps (backups); second page is Redell's diagram of the procedure. 70-dump-tape-mgmt-bgl-ddr
  141. [Sturgis.] "Proposal: Observable states of a subprocess." November 18, 1970. Proposal for redesign of return to a subprocess. 701118-observable-states-hes
  142. [Sturgis.] "Actions in the event of a panic." November 24, 1970. "Bead 4.1 stuff. Later (4.2?) errors replaced with 'return with interrupt.'" 701124-bead-41-panic-hes
  143. [Redell.] "Destroy in User-disk-service subproc." November 29, 1970. Enumerates 7 steps, ending with sending an event to CLOSER daemon process to finish the work. 701129-destroy-file-ddr
  144. [Sturgis.] "A proposal for the values of a call stack entry and their manipulation by the return operations." November 30, 1970. 701130-call-stack-with-vv-notes-hes
  145. [Malbrain.] "Peripheral Device Processor: Preliminary Specifications." December 1, 1970. Proposal for a batch system handling card reader, printer, job queues, tape, and operator console. 701201-pdp-km
  146. [Sturgis.] "Interrupt handling code at the command level in the new system." December 4, 1970. 701204-interrupt-handling-hes
  147. [Sturgis.] "Syntax of parameters [for new command processor.]" December 5, 1970. "Read gently." 701205-param-syntax-hes
  148. [Sturgis.] "WARNING: New syntax for commands." Undated, but after 701205-param-syntax-hes. 70-new-cmmd-syntax-hes
  149. [Vaughan.] "Chapter XXimvldc of the continuing interrupt hassle." December 7, 1970. 701207-interrupts-vv
  150. [Vaughan.] "ECS operation timing." December 7, 1970. For display user clocks and write file. 701207-ecs-action-timing-vv
  151. [Sturgis.] "Bead naming conventions; Bead calls (directory actions)." December 7, 1970. Simulating Bead calls in the new system. 701207-bead-sim-hes
  152. [McJones.] "Name tag system." December 10, 1970. Design for static and dynamic name tag implementation. 701210-name-tag-system-prm
  153. [Lindsay.] "User direct ECS access." Undated, circa 1970. 70-direct-ecs-access-bgl
  154. Sturgis. "Command processor preliminary document." 1971?
  155. [Redell.] Command processor complex preliminary document. 1971?
  156. [Sturgis.] Grammar for command language. Undated, circa 1971. 71-cmmd-grammar-hes
  157. [Sturgis.] "Errors in BEADS." Undated, circa 1971. 71-errors-in-beads-hes
  158. [Vaughan.] "BEADS Errors." Undated, circa 1971? 71-beads-errors-vv
  159. [Sturgis.] "Line collector." Undated, circa 1971. Vaughan: "debeaded" line collector. "This line collector uses code copied from GREYCODE,XTEXT the same as the old Bead. 71-debeaded-line-coll-hes
  160. Vaughan. "Allocation blocks." January 4, 1971. "Proposed User's Manual sections for allocation blocks." 710104-alloc-block-vv
  161. Sturgis. "About Cal TSS." January 6, 1971. Sturgis's first status report as project director. 710106-about-hes
  162. [McJones.] Documentation of basic directory actions. Undated, circa January 1971. Open, close, access, access via scan list, create disk file, create directory, move space, increment charge meter, set accounting tag, display disk accounting record, return clocks. 7101-dir-actions-prm
  163. [Vaughan.] "Questions on which you are invited to express opinions in the next few days." February 1, 1971. Includes updated version of 700601-reconstituted-list-vv. 710201-ecs-system-questions-vv
  164. [Vaughan.] "AB's Mark III." February 1971. 7102-ab-mk-iii-vv
  165. [Redell.] New disk file actions. Undated, circa early 1971? Audit, declare accounting file, disk contents ready. 71-new-disk-file-actions-ddr
  166. [Redell.] Disk system data structure diagrams. Mostly undated; one dated February 16, 1970 and one February 9, 1971. Disk system global data overview, FHR (file header record), DAR (disk accounting record), LFH (local file header), FHB (file header block), pointer block, and in-disk data structure. 7102-disk-sys-data-structures-ddr
  167. [Redell.] "Response event from TERMINATOR; I/O Table Entry; HELPER Request Event." February 9, 1971. Diagrams of three one- or two-word structures. On this copy Redell has added ACCOUNTANT request event and USER-INDEX field of disk-driver request event. 710209-terminator-helper-events-ddr
  168. [Redell.] "Disk Accounting Record; Disk System Internal Accounting Calls." February 9, 1971. Disk accounting record diagram is hand-drawn; compare with (later?) 71-disk-accounting-record-ddr. Calls are OPENDAR, CLODAR, DARSPA (adjust space). 710209-disk-acctng-records-and-calls
  169. [Redell.] "DAR: Disk Accounting Record." Undated, circa 1971. Diagrams of Disk Accounting Record layouts.
  170. Redell. "Creation and destruction of accounting blocks." February 9, 1971. 710209-accounting-blocks-ddr
  171. [Redell.] "DABUF: Disk Accounting Block/Record Buffer." February 18, 1971. Assembly language declarations. 710218-dar-buf-ddr
  172. [Redell and Lindsay.] "Proposed actions relating to accounting."
  173. [McJones.] Documentation of directory display actions. February 9, 1971. Display: n-th entry, named entry, access pairs, successor pointer. 711027-dir-actions-prm
  174. [Vaughan.] "New stack logic." February 22, 1971. Call stack manipulation changes based on 701118-observable-states-hes. 710222-new-stack-logic
  175. [Vaughan.] Block gone from file in map problem. February 22, 1971. Originally distributed with 710222-new-stack-logic. 710222-latest-on-maps-vv
  176. [Vaughan.] "Control of CPU time." February 22, 1971. A process is now descheduled when its CPU time runs out. Originally distributed with 710222-new-stack-logic. 710222-control-of-cpu-time-vv
  177. [Redell.] "CP time cutoff." Undated, circa February 1971? Describes a mechanism similar to 710222-control-of-cpu-time-vv. Did this precede or follow? 71-cp-time-cutoff-ddr
  178. [Sturgis.] "Proposal for proprietary subprocesses." February 24, 1971. 710224-prop-subp-hes
  179. [Sturgis.] "Current root directory structure." February 24, 1971. Subdirectories OPERATE, CLASS, S ("soon to be called PUBLIC"), and TDLIST; also PUB.KEY (access key). 710224-current-rootd-hes
  180. 6.v The disk system begins to run

  181. Subcommittee on Time Sharing. "Report to: Chancellor's Advisory Committee on Computing." February 27, 1971. 710227-subcommittee-on-time-sharing-elw
  182. [Redell.] "To remove Allocator from FRETRW." Undated, circa 1971? Enumerates steps to perform some restructuring of disk system code. 71-remove-allocator-from-fretrw-ddr
  183. [Redell.] "Notes: Pseudo-close; Exchange contents." Undated, circa 1971? Proposes centralizing pseudo-close code in user subprocess to avoid deadlock with TERMINATOR daemon; describes implementation of "Exchange contents of two files." 71-pseudo-close-and-exchange-notes-ddr
  184. Redell. Closing down a disk process. March 3, 1971. 710303-disk-proc-end-ddr-bgl
  185. [Vaughan.] "General Discussion of the Initial User Version of CAL- TSS, Available around 15 March '71." March 9, 1971. "The whole project could conceivably be canceled because of computer center funding difficulties, but on the assumption that it is not cancelled, we proceed to discuss its availability, pas, present, and future." 710309-initial-user-version-discussion-vv
  186. [Vaughan.] "Facilities available." March 15, 1971. Status report on readiness of various subsystems. 710315-facilities-avail-vv
  187. [Sturgis.] "Immediate mopping up." March 15, 1971. 710315-mopping-up-hes
  188. [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." 710317-major-problems-hes
  189. [Vaughan.] "Considerations concerning CAL TSS support of users during spring quarter of '71." March 18, 1971. Lots of things still weren't ready but Vaughan was looking ahead to logistics for user support. 710318-support-considerations-vv
  190. McDaniel. "The Cal TSS interrupt system." Circa spring 1971. 71-int-sys-gam
  191. [Vaughan.] "Portrait of a subprocess descriptor." Spring 1971? 71-portrait-subproc-desc-vv
  192. —. "Summary documents." Brief summaries: Idiot's Guide, Editor, BASIC; appendices: getting back to command processor; using line collector.
  193. Redell and Lindsay. Accounting block services.
  194. [Gould.] Instructions for running BASIC on the CAL Time-Sharing System. May 1971. Prepared for her spring 1971 CS1 course. Covered finding a teletype, logging in, editing, interpreting error messages, etc. 7105-instructions-for-basic-leg
  195. —. Time-Sharing System Manual. Part 3 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide.
  196. [Bridge.] "BASIC." May 1971. Section E of Part 4 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide. BASIC ran interactively under TSS and in batch mode on SCOPE. 7105-cal-basic-whb
  197. [Morris, borrowing from Canady and Ritchie.] "BCPL." May 1971. Section F of Part 4 of Volume III (The 6400 Computer System) of the Cal Computer Center Users Guide. This version ran natively under TSS. 7105-cal-bcpl-jhm
  198. [Sturgis.] "Projects related to command processor." May 5, 1971. "I) Errors will be interpreted and fancy messages printed. ..." 710505-cmmd-projects-hes
  199. [Sturgis.] "SPACE command in CMMD." May 5, 1971. Command for controlling swapped ECS space, fixed ECS space, MOT slots, and temporary disk space. 710505-space-cmmd-hes
  200. [Sturgis.] "New version of CMMD." May 17, 1971. 710517-new-cmmd-hes
  201. [Sturgis.] "New facilities available from command processor." June 6, 1971. New operations available to subsystems. 710606-new-cmmd-facilities-hes
  202. Sturgis. "Preliminary proposal for testing system subprocesses of user processes." June 8, 1971. 710608-testing-sys-subprocs-hes
  203. [Sturgis.] "New commands in SERVICES." June 11, 1971. New commands: SHAZAM, CHAIN, UNCHAIN, and SOFTL. 710611-new-services-cmmds-hes
  204. [Sturgis.] Multiprocess test framework: BCPL source code. Undated, circa summer 1971. Coordination framework for running a command in multiple processes and retrieving the reports. Written in BCPL, but probably not finished. 71-test-runner-hes
  205. Bridge, McDaniel, and McJones. "CAL Lisp: Preliminary Description." June 1971? Incomplete design for a LISP 1.5 implementation for CAL TSS (class project). 7106-cal-lisp-whb-gam-prm
  206. [Redell or Lindsay.] "Declare process swapped-ECS cross-section." Undated, circa 1971. Description of disk file action. 71-decl-proc-swapped-ecs-xsec
  207. [Lindsay.] Notes on forced swapping of a process. Undated, circa 1971? 71-swapping-bgl
  208. [Bentley and Vaughan, editors.] "Introduction to CAL TSS." July 1971; updated October and November 1971. General concepts, examples, and subsystem summaries for Editor, BASIC, SCOPE simulator, and command processor Services and Bead Ghost. Early drafts evolved out of Chapter 1 of 7105-tss-manual (see first section of 71-cookbook-vv). 7111-intro-mab-vv
  209. [Vaughan.] "Where ECS space is going." July 22, 1971. Measurements. 710722-ecs-usage-vv-hes
  210. [McDaniel.] "ECS global register and protection." July 22, 1971. Cover note from Vaughan and proposal from McDaniel for storing some process state bits in ECS global register. 710722-global-register-gam
  211. [Vaughan.] August 1, 1971. Measurements of sizes of subprocesses in a "disk process". 710801-disk-proc-vv
  212. Sturgis. "CAL TSS Report." August 1, 1971. "The purpose of this report is two-fold: first, to make available detailed information 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." 710801-cal-tss-report-hes
  213. —. CAL Time-Sharing System: Status and Information. August 13, 1971. "CAL TSS is currently available weekdays from 2-6 PM." [Room 227 has been changed to 223.] 710813-status-and-info-vv.pdf
  214. Sturgis, “A note on charging.” August 17, 1971.
  215. [McDaniel.] "Modified scheduler."
  216. [Vaughan.] List of various documents in reverse chronological order. August 26, 1971. 710826-doc-list-vv
  217. [Vaughan.] "User Profile." Undated; circa 1971? Diagram of user profile data structure recording user information including accounting. Includes note from Bridge to Vaughan proposing staffing for dumping the dayfile (accounting information). 71-user-profile-vv-whb.pdf
  218. [Vaughan.] Memo to users of CAL TSS. Circa September 10, 1971. Announces coming end of free use, new SYSMES feature, and "Introduction to CAL TSS" document; includes forms: Application for Use of CAL TSS; CAL TSS User Survey. 710910-memo-to-users-vv
  219. Earley and Caizergues. "VERS Manual: Version 4". October 1971.
  220. [Vaughan]. "Proposed charges for TSS. October 8, 1971. "Effective Monday, 25 Oct 71." CPU $130/hour; ECS $0.29/1000 words-hour, temporary disk $0.47 per 1000 sector-hours; connect time $2/hour; permanent disk space $9.30/1000-sector-month. 711008-proposed-charges-vv
  221. Vaughan. System Maintenance. October 15, 1971. "Currently the naive TSS systems programmer is unable to contruct arbitrary parts of the operating system or user subsystems unless he has ritten some or all of the code for that system." 711015-system-maintenance-vv
  222. —. CAL Time-Sharing System: Status and Information." October 19, 1971. "CAL TSS will be run from 10:00 a.m. to 10:00 p.m. on weekdays. The hours from 12 to 6:00 will be reserved for customers." 711019-status-and-info-vv
  223. [McJones.] October 19, 1971. Instructions for building the directory system. 711019-maintaining-dir-sys-prm
  224. [Vaughan or Sturgis.] "CAL TSS Rates: Effective 25 Oct '71." October 20, 1971. From the SYSMES file. 711020-rates-vv
  225. [McJones.] Documentation of bulk directory actions. October 27, 1971. Access multiple owned objects, get/put multiple disk addresses. Were these to optimize LOAD/DUMP/RECOVER? 711027-dir-actions-prm
  226. [Sturgis.] "New features in CMMD." October 27, 1971. TEST mode; TTYON, TTYSON, TTYOFF, NEWMASTER, SYSDOWN, FORCEOUT commands. 711027-new-cmmd-features-hes
  227. —. [System status.] November 1, 1971. "1 NOV 71 COMMAND PROCESSOR NEWU COMMAND; 20 OCT 71 CHARGING FOR CAL TSS" 711101-status-vv
  228. [Vaughan.] "Accounting info." November 1, 1971. Annotated TTY listing showing how to dump accounting information. 711101-actng-info-vv
  229. [Vaughan.] "SaveDF prior to load." Accompanied 711101-actng-info-vv? 711101-savedf-notes-vv
  230. [McJones.] "Option bits". November 3, 1971. Directory option bit assignments. 711103-dir-option-bits-prm
  231. —. "List of privileged [disk system] operations." November 3, 1971. All-caps line printer listing; edited on the system. 711103-priv-ops
  232. [McDaniel?] "Proposal for Modification of ECS System Timed Event Channels (TEVS)." November 4, 1971. 711104-timed-event-proposal-gam
  233. [Sturgis.] "Calls on the TTY line collector." November 8, 1971. 711108-line-coll-hes
  234. [Standiford.] "Proposed change to Builder." November 9, 1971. New interpretation of scratch-file size. 711109-builder-proposal-kps
  235. [Vaughan.] Assorted CAL TSS files. 1970-1971.
  236. —. CAL-TSS operator's manual. Initial version was September 10, 1970; various updates through November 1971. Includes short procedures and trouble-shooting information, deadstart tape log (one-page form for each time a system programmer wrote, tested, and installed a new deadstart tape), and bug list/failure log (one-page form for each system crash). 71-operators-manual
  237. [Sturgis.] "To be done on Sunday 8pm." Undated, presumably before Sunday, November 24, 1971? Outlines steps to create new user directories with funds, based on list from Jim Markison in the Computer Center Accounting Department. 7111-accounting-setup-hes
  238. 6.vi Development is discontinued.

  239. —. CAL Time-Sharing System Status. November 29, 1971. "CAL TSS has been discontinued pursuant to a decision formulated in the Chancellor's office." 711129-status-vv
  240. Vaughan. "System staff et al." November 30, 1971. 711130-future-vv
  241. Sturgis. File system throughput. December 6, 1971. "On Saturday I conducted some timing tests. I wrote a BCPL program to do one word IO." 711206-file-system-timing-hes
  242. Kenneth J Hebert. "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
  243. Richard Colman. "Computer System Cut." Daily Californian, December 10, 1971. 711210-cut-dc
  244. [Standiford.] "Savetss." Undated, late 1971? "Savetss is a Fortran program for retrieving files from a TSS DISK DUMP TAPE." Written after TSS was cancelled? 71-savetss-kps
  245. 6.vii Afterward

  246. M. Stuart Lynn. "CDC 6400 Departure". September 3, 1982. "The CDC 6400 is no more." 820903-cdc-6400-departure-msl
  247. Redell. "Cal-TSS 20th Anniversary Trivia Quiz." December 14, 1991. 911214-trivia-quiz-ddr
  248. Redell. "Answers to Cal-TSS 20th Anniversary Trivia Quiz." September 2015. 201509-trivia-answers-ddr

7 Source code

See source.

8 Theses

Three of the participants based their Ph.D. theses on aspects of CAL TSS:

9 Papers

A report ([GLLS72]) and several papers ([Lam69] and [LS76]) were eventually published.

10 Hardware

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.

11 People

12 Photographs

13 References

[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. 7207-control-structure-jng
[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 / 71-reliable-os-Infotech-bwl
[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
[Lin77]
Lindsay. Exception Processing in Computer Systems. 1977. 77-thesis-bgl
[McJ2022]
Paul McJones. CAL Timesharing System Collection. October 2022; updated January 2024. 20221023-labels-prm
[MR2023]
Paul McJones and David Redell. History of the CAL Timesharing System. IEEE Annals of the History of Computing, Volume 45, Issue 3, July-September 2023, pages 80-91. IEEE (open access)
[Red74]
David D. Redell. Naming and protection in extendible operating systems. Technical Report MAC TR-140, Massachusetts Institute of Technology Project MAC, November 1974. 7409-thesis-ddr / 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. 7401-thesis-hes / PDF at bitsavers.org

14 Citations

Last updated October 12, 2022.