Skip to main content

The Pyramid (#995)

Topics/tags: Autobiographical, technology

In a recent musing about my undergraduate workload, I mentioned the Pyramid computer that CS and Math shared. The Pyramid was an interesting computer; although Unix had been developed on DECs, it was beginning to be ported to other architectures. I believe that the Pyramid was one of the first attempts to run Unix on a different architecture.

I don’t know much about the underlying details of the Pyramid [1], or why we bought it instead of another DEC [5], but I do have some memories of the computer. In that earlier musing, I mentioned two: We had a weak security model and my abuse of that model got me in trouble. Here are a few more.

The Pyramid always crashed the night before OS homework was due because it couldn’t handle the load of student work. Each time, the class instructor said something like, In the real world, you plan ahead for these kinds of situations and then took off 10% if our work wasn’t in on time. I may not have reacted in the way the instructor expected. I decided that the best approach was to begin the work the day after it was due; the Pyramid crashed less often so I was much more efficient, and I often ended up with no more of a penalty than my classmates.

The Pascal compiler on the Pyramid turned case statements with ranges into way too many conditional jumps. For example, case x of 1..5000 resulted in 5000 conditional jumps rather than the two or three that it should have produced. I’m pretty sure that this design led to the Pyramid crashing regularly, since you could inadvertently fill temporary storage with an ill-designed range [6].

Like most Unix systems, the Pyramid had a version of Emacs. But it didn’t have real Emacs. Just as the Pyramid was a clone of the DEC Unix system, so was the Emacs a clone of the DEC-20 classic [7]. Hence, instead of the original Emacs or GNU Emacs, we had Gosling Emacs [8]. Since I had spent the past year or two mastering DEC-20 Emacs, I considered Gosling Emacs a sin unto Emacs and learned vi instead [10,14].

And that’s all I remember about the Pyramid at the University of Chicago.

I wonder what happened to it when it got decommissioned.

[1] I see from the Wikipedia page that they were a RISC [2] system as compared to DEC’s CISC system [3].

[2] Reduced-Instruction-Set Computer.

[3] Complex-Instruction-Set Computer. I haven’t looked at DEC assembly for at least two decades, but I recall it being surprisingly close to a high-level language [4].

[4] Or at least a high-level language for the time.

[5] We did have a DEC-20 running TOPS-20.

[6] I’m perfectly serious about that.

[7] The Wikipedia page on Emacs, says that the original was built on the PDP-10, using TECO.

[8] Yes, James Gosling. How many programmers name their programs after themselves? There’s not a Gates DOS or a StevesOS, or a Gaskins Powerpoint or even an AtkinsonCard [9]. On the other hand, there is an operating system called Linux.

[9] I really miss HyperCard.

[10] Gosling has done some important work. I would not include Gosling Emacs nor the choice to name it after himself. But what do I know? I was probably just an overly opinionated undergraduate [11,12].

[11] Is that redundant?

[12] Now I’m an overly opinionated faculty member. Some things never change.

[14] The Wikipedia page on Emacs also tells me that GNU Emacs was based on Gosling Emacs, although it likely no longer incorporates any of the code. I wonder if it’s closer to Gosling Emacs or TOPS-20 Emacs. It’s been too long since I’ve used TOPS-20 Emacs for me to venture a guess.

Version 1.0 of 2020-01-22.