Tuesday, July 7, 2026

My Introduction To Computer Graphics

Boeing's PDP-7/340
Most of my career has been involved in various ways with computer graphics. Below the fold I recount the story of how I got started in the field just as it was getting started. To give you some idea of just how early my introduction was the Mother of all Demos had been the year before. The displays I got to work with drew lines in monochrome, not rasters in color. You created the image by writing a loop of instructions in the "display processor" instruction set. These told it the lines to draw at each refresh cycle. There was no mouse.

Haberdashers' Aske's School
From age 11 to 18 I was extraordinarily fortunate to attend the Haberdashers' Aske's School, one of the London Guild schools:
The school was founded in 1690 by a Royal Charter granted to the Worshipful Company of Haberdashers to establish a hospital for 20 boarders with £32,000 from the legacy of Robert Aske (equivalent to approximately £5m in 2019).
In those days it was a "direct grant" public (i.e. private) school. Typically about half the puplis paid fees and about half were creamed off from the state system, as in my case. At that time many of the top academic schools were direct grant, including the famous Manchester Grammar School. Wikipedia notes that they:
varied greatly in size and composition, but, on average, achieved higher academic results than either maintained grammar schools or private schools.
By Lucaseverini66 - IBM Archives
CC BY-SA 4.0, Link
In my last two years at Haberdashers' I was introduced to programming, which I immediately loved. We wrote FORTRAN on coding forms which were mailed to the local technical college where they were punched on to 80-column cards and fed to the college's IBM 1401. The output was mailed back, arriving a week later. Debugging the code with a one-week turn-round taught great care and thought, which subsequent developments gradually eroded.

So when I arrived at Trinity College, Cambridge in 1968 I was disappointed to learn that undergraduate programming courses didn't exist. But I eventually discovered that members of The Archimedeans, the mathematical society, could use the machines in the Mathematical Laboratory after midnight. By Cambridghe standards my mathematical abilities were sorely lacking, but they allowed me to join anyway.

By Kenneth Lu - Spacewar!
CC BY 2.0, Link
Sometime in my second year, a friend and I discoverd that in the basement of the Mathematical Laboratory there was a DEC PDP-7 with a 340 display. It was linked to the University's Titan time-sharing system to be used as a graphics peripheral, but we never figured out how to do that.

There were more interesting things to do. At first we spent our time playing Spacewar! and Lunar Lander. But these inspired us to try writing our own game, based on Piet Hein's Hex.

The PDP-7 had 8K 18-bit words into which we had to squeeze the code for the game, the data for the game, and the program for the 340's display processor. So as well as spending time at the machine in the early hours, we spent a lot of time when we could have been studying racking our brains trying to use as many of the 8K words as we could as at least two of these at the same time, if not all three.

We managed to get the game to be sort-of playable provided you let the machine win. It you tried to win the machine would cheat, and we ran out of time to find the bug.

Titan by University of Cambridge
CC BY 2.0, Link
When we returned for our final year two things prevented us returning to work with the PDP-7/340. First, finals loomed and our studies had to take priority. Second, we were both studying physics. For the first time that year final year physics undergraduates were given accounts on Titan which could be used during the day. And, wonder of wonders, one of the choices for a final-year project was to implement numerical integration. The instructor expected a conventional program written in Fortran.

But after my PDP-7 experience I loved programming Titan in machine language (NB not assembler, writing the instructions in octal). And Titan had a bank of 128 fast half-word index registers that could be addressed indirectly, IIRC built out of tunnel diodes. I turned in a machine language implementation of Newton's method that kept the stack for the recursion in the index registers. It was blazingly fast but the instructor couldn't understand it. So I got marked down and had to write a Fortran version.

CDC274 User Guide Fig 3.2
But this experience meant that the year we graduated my friend and I were likely the only UK graduates who knew anything at all about computer graphics. My friend, who had done better than I through not being arrogant about his final-year project, went on to study physics for real. And I got to do a Mechanical Engineering Ph. D. at Imperial which was funded by the UK Atomic Energy Authority. It involved writing a graphics program that ran on the University of London's CDC 6600 linked by a 40Kbaud line to a CDC 274 display. The 274 was a big round CRT with a line-drawing display processor, conceptually similar to but more powerful than the 340.

1 comment:

  1. “… which subsequent developments gradually eroded.”

    *chuckle*
    Wrote the piece around that line?

    ReplyDelete