Answers to Cal-TSS 20th Anniversary Trivia Quiz
The quiz is here.
- Microseconds since the birth of Charles Babbage.
- Static were for ECS objects, Dynamic for higher level. Howard wanted to call the static ones "ECS Goodies".
- Directory chains were mostly because directories were too small. Scan lists were like scan order for Unix directories (e.g., $PATH).
- Zero level files were used for directories, weren't they?
- Class codes were random strings used to name subprocesses uniformly across processes.
- The ECS system put code into the pointer blocks and jumped to them.
- 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].
- 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).
- Error meant an error. Failure meant some higher level extension got a crack at it.
- Duplicate event checking meant that an event sent to an event channel that matched one that was already there was discarded. It was optional.
- I think every accounting block was finded by a parent and the root funded itself. Or something like that.
- Fixed parameters were useful when an extension was handling an freturn, as I recall.
- Pseudo-close reclaimed the extra space for dirty copies of disk file blocks without closing the file.
- Mapping read-only meant if the code of a buggy program clobbered itself, it would heal at the next swap, making debugging almost impossible.
- 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.
- It could be done, but only using the silly RJ instruction to save the first register.
- 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!
- The logic signal were funny because
- 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.)
- The signals between chassis were pulses instead of level.
- The RJ instruction modified the first word of the subroutine, so shared or reentrant code couldn't use it.
- 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
- 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!
- 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.
- 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.
- At one point, Karl claimed that the Bead (or the Scope Simulator? or both?) was "polished with jeweler's rouge".
- 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.
- 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.
- 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.
- Velvel Kahan.
- 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.
- 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.