A project in lieu of coursework

My friend Tom Lyon just dug up a piece put out by the University of Essex in 1970 to describe their new PDP-10. It also mentions that they were acquiring a PDP-15 for “research and teaching”. And that reminded me of an interesting project.

I applied to Essex in the spring of 1968, intending to study economics under Richard Lipsey. Lipsey was something of an enfant terrible in the field of “math-econ”, and I was really interested in his work on mathematical modelling. So I ignored the advice of my teachers at RGS to try for Cambridge, and was accepted at Essex. Rather than going straight up, I decided to do a “gap year” working at AERE Harwell, which introduced me to what was going to be my life-long work: computing. This meant that when I arrived at Essex in September 1969, I wasn’t too disappointed when I learned that Lipsey had resigned and decamped to his native Canada.

The academic structure at Essex was interesting. During my first year, I divided my time between mathematics, economics, and computer science. At the end of that year, I was required to pick a major, which would dictate my studies over the remaining two years. Obviously, I chose computing, which led to another decision. The computer science program included an “industrial experience” segment, which meant that the second year would comprise two terms at Essex followed by five months of work in “industry” (which would be graded).

In September 1970, I returned from my summer job at the Ministry of Technology to begin my second year. As I wrote elsewhere, there were several of us students who had almost as much experience as the academic staff, and in several of the courses it was going to be difficult to accommodate the wide range of abilities and experiences. Creativity ensued.

As mentioned above, Essex had just acquired a PDP-15. This was, perhaps, a poor choice. The department had several PDP-8s, and probably saw the PDP-15 as a nice step up from the limitations of a 12 bit architecture. In practice, the PDP-15 turned out to be a dead end. It was a TTL-based evolution of the family that included the PDP-1, PDP-4, PDP-7 and PDP-9. (IIRC, the electrical engineering department had a PDP-7 or PDP-9.) However, in 1970 DEC introduced the PDP-11, which spelt the end of the 18-bit architecture.

Nevertheless, the PDP-15 was chosen as the design which would be used to teach hardware architecture and machine language programming to undergraduates. And almost immediately a problem arose. The number of students studying computer science was growing rapidly, and it was going to be difficult for them all to get hands-on time on the PDP-15. So one of the staff (probably Dave Lyons) cornered several of us more experienced students and made a proposal. Rather than taking the machine language programming and hardware architecture courses, we could work together to develop a PDP-15 emulator to run on the PDP-10, so that future students would be able to use a virtual PDP-15 for their studies. Naturally, we would need accounts on the PDP-10 to do this work, and we’d be the only undergraduates with full access.

Four of us agreed enthusiastically. We carved up the project – TTY-based console UI, hardware emulation, resource management, and so forth. Everything was written in MACRO-10. I implemented the instruction set emulation, using the PDP-10’s elegant byte manipulation mechanisms to decode PDP-15 instructions. I don’t remember all of the details, but I think we hit our goal of booting up the DECsys operating system on the emulator in February 1971.

In April 1971, we all headed off to our “industrial experience” gigs. (I returned to Harwell, but that’s another story.) I think a couple of grad students were given the job of turning our project into a usable service for students. I hope it served them well.