Answers to Cal-TSS 20th Anniversary Trivia Quiz

Dave Redell

September 2015

The quiz is here.

The System

  1. Microseconds since the birth of Charles Babbage.
  2. Static were for ECS objects, Dynamic for higher level. Howard wanted to call the static ones "ECS Goodies".
  3. Directory chains were mostly because directories were too small. Scan lists were like scan order for Unix directories (e.g., $PATH).
  4. Zero level files were used for directories, weren't they?
  5. Class codes were random strings used to name subprocesses uniformly across processes.
  6. The ECS system put code into the pointer blocks and jumped to them.
  7. The Bead ghost was a representative of the Bead in the path. The real Bead was off to the side to avoid hogging too much of the address space. The Fake Bead ghost was a stripped down version installed to provide debug facilities for the system portion of the process. See [Sturgis 1973].
  8. Nudging an ECS file put it on an even boundary so you could access it directly. The hardware was missing six low order address bits (see page 3-47 of Control Data 6400/6500/6600 Computer Systems Reference Manual).
  9. Error meant an error. Failure meant some higher level extension got a crack at it.
  10. Duplicate event checking meant that an event sent to an event channel that matched one that was already there was discarded. It was optional.
  11. I think every accounting block was finded by a parent and the root funded itself. Or something like that.
  12. Fixed parameters were useful when an extension was handling an freturn, as I recall.
  13. Pseudo-close reclaimed the extra space for dirty copies of disk file blocks without closing the file.
  14. Mapping read-only meant if the code of a buggy program clobbered itself, it would heal at the next swap, making debugging almost impossible.

The Machine

  1. 1. CEJ toggled back and forth between user mode and system mode. Only system mode allowed the code doing the CEJ to specify the state to load.
  2. It could be done, but only using the silly RJ instruction to save the first register.
  3. The CE's tapped the memory modules with a rubber hammer while the diagnostics ran. Testing the core modules was critical becuase they had no parity bits!
  4. The logic signal were funny because
    1. In a chassis, they alternated in a chain of gates between normal and inverted. (The logic diagrams tried to make this readable by using alternating circles and squares for normal and inverted gates.)
    2. The signals between chassis were pulses instead of level.
  5. The RJ instruction modified the first word of the subroutine, so shared or reentrant code couldn't use it.
  6. 12.
  7. The two spindles each had two stacks of platters, one using each head positioner, so you had 2 x 2 = 4 logical disk units in terms of timing.

The Computer Center

  1. The number 100 was a wild-ass guess -- and then some. I bumped into Jim Gray with a draft of the memo that said 1000 student users. I told him we had no grounds for such a claim and he said he would fix it, which he did by whiting-out the last zero!
  2. The pipe carrying the water from the 6400 to the outside cooler ran the length of the machine room and was not very well insulated. As a result, it dumped a significant fraction of its heat into the room by the time it left the building.
  3. The operators had learned that if they stood by a particular corner of the controller and gave it a swift kick, the printer would start running again.

The People

  1. At one point, Karl claimed that the Bead (or the Scope Simulator? or both?) was "polished with jeweler's rouge".
  2. I [Dave Redell] wrote a TRAC interpreter. Bill Bridge's BASIC had versions running on both Cal-TSS and SCOPE. And Jay Earley had VERS.
  3. Tovar was an annoying undergrad who hung around and at one point, found our passwords in discarded printouts and logged in to Cal-TSS as various ones of us.
  4. The Cal-TSS Consultant was a cardboard cutout, based on the idea that if you explained your problem to him, you would answer your own question in the process.
  5. Velvel Kahan.
  6. Jim broke a hideous hack in which Karl implemented the Bead's Display Subprocess Stack command by saving the stack in a local buffer and passing the address of that buffer as a string constant to the Display Memory command.
  7. We stopped at 1:45 AM because that gave us time to run to GrossBurger and order just before it closed at 2:00 AM.