Wednesday 8 May 2019

Confessions of a teenage 903 user

(The original version of this reminiscence was written for the Centre for Computing History, which occasionally runs demonstrations of its working Elliott 903.)

In 1972, for a school to have a computer was something extraordinary. Computers then were huge and expensive things, owned mainly by universities, large corporate businesses and banks, such as The National Girobank whose TV advertisements made a big deal of the fact that it used a computer to manage its customers’ accounts. So imagine my excitement on starting secondary school that year to discover that we had a computer. And that excitement was undimmed by my first sight of the Elliott 903: a modest metal box the size of a desk, with a few smaller boxes standing on it and a teleprinter to one side. This was a long way short of the rooms full of steel cabinets with chattering line printers and whirring magnetic tape drives which I had been expecting. It was even further short of the talking and intelligent computers we knew from ‘Star Trek’ and ‘2001: A Space Odyssey’. But still, it was a real and actual computer, and that meant that it could be programmed to do things. The only question was how.

Fortunately I was friends with the top mathematician in my year, who had already been using the computer for some time, and he showed me how to write my first program in FORTRAN. Other pupils showed me how to use the Teletype in the outer computer room to type out my program onto punched paper tape, which was the 903’s medium for high-speed data input (high speed here meaning 250 characters per second). Making paper tapes was itself pretty exciting: each keystroke produced a row of up to eight holes representing a character in ASCII, with a complete set of holes being a null character to be ignored, enabling you to correct typing errors. (Backspacing the tape and typing Delete punched out any holes already there). Printing out the text encoded in a tape, and realising that we could use it for sending private messages, was also exciting. But of course the main thing was to get access to the 903 and to run a program.

So I went to see the teacher in charge of the computer, who solemnly signed a card authorising me to use it for up to an hour per week. (One hour! And kids today complain about limits on their screen time!) However, I was still a long way from getting my program to run. The computer wasn’t large enough to interpret high-level FORTAN programs directly; what I had to do was to load and run the FORTRAN compiler, one of the massive rolls of paper tape hanging from a pegboard beside the computer, and get it to read in my program and convert it to machine code. It took many efforts before it would do that successfully, because it kept finding syntax errors in my FORTRAN, which I had to find and correct and then remake my tape. Only when I had no syntax errors would it produce a new lot of paper tape containing my program in machine code, which I could load and run in its turn. I can’t now recall what my first program did, but I suspect it was something worthy but dull, probably solving quadratic equations using the standard formula. Whatever it was, certainly it was unmemorable and hardly worth all that effort.

You see there was what we were supposed to do with the computer and there was what we actually did with the computer, and these were two very different things. Our maths curriculum, devised by the School Mathematics Project or SMP, included computer programming, breaking calculations down into simple steps and using a made-up programming language called SMPOL to perform basic arithmetic operations on numbers in registers. The SMP textbooks featured an imaginary computer called Simon (SMPOL Simon, geddit?), but so that we could use our actual computer the maths teachers wrote a SMPOL compiler. We did try programming in SMPOL, but it was dreadful: painfully slow and deeply dull in its limited operations. Even the school’s administrative applications were more interesting: from time to time the computer was used for working out exam timetables, which was fun because it produced desk labels for each exam venue with pupils’ names spelled out on punched paper tape, and also for processing the marks from the scholarship entrance exams – which became exciting when one of my friends found paper tape containing the confidential raw marks in a waste paper bin. (He now works in data security!) We weren’t going to be limited to the curriculum; we took our inspiration from the very camp, very brilliant maths teacher who had first set up the 903 for the school and had actually been a pioneer computer scientist in the post-war years. Think about it: we were reasonably bright teenage pupils, and we had access to a computer. What do you suppose we did with it?

Of course, we wrote games. The tone was set by one of my friends, who wrote a program called Dork: the computer asked you quiz questions and called you a dork if you got the answer wrong. Not exactly Fortnite, but we thought it was funny. I followed this up with a program to write random sentences, picking words at random from a deliberately surreal vocabulary list to fit one of a number of grammatical forms: “the zombizical policeman urgently requires the fried egg” was a typical result. Then I wrote a game called Bath, which was a silly variant on one of the few games in the school’s program library. The original version was a (very simple) simulation of a moon landing; you had to set the level of thrust so as to land softly, but if you slowed too early in your descent you would run out of fuel and crash. In my version, you had to set the flow rate of hot and cold water to run a bath of a specified depth and temperature; I made it still more silly by having this be a giant’s bathtub, so the depth was measured in feet rather than inches, and there were appropriate in-game messages (“Fee, fi, fo, fum… (splash)”).

Between us, we also tried writing a game called Animal, of which we’d heard: the computer tries to guess the animal you’re thinking of by asking yes-or-no questions, such as “Can it fly?” The computer obviously has a limited number of questions and the trick is to get it to expand its capability by asking you for more information if you think of an animal it doesn’t already know. We never got that game working properly; I’m fairly sure the logic was flawed. We had more success with a program to play the colour pattern guessing game Mastermind, which was very popular at that time. To get the computer to guess your colour pattern as quickly as possible was a good challenge: the clever bit was to have it work out what guess would give it the most information. (The best first move, by the way, assuming the target pattern is chosen at random, is two pegs of one colour plus two pegs of another colour.) For the other half of the game, in which you try to guess the computer’s pattern, we sneakily made the computer cheat: as you made your guesses, it would change its target pattern so that its answer, while consistent with the answers it had given previously, would give you the least possible information to keep you guessing as long as possible.

By this time, the school had given up on trying to regulate our time using the computer. (The start and finish times we entered in the computer room Day Book were complete fiction anyway; we called it “fudging time”.) We had also given up on high-level languages such as FORTRAN and ALGOL; the compiled code was inefficient, and given the slow speed of the processor we needed all the efficiency we could get. Instead, we ended up programming exclusively in the 903’s assembler language, called Symbolic Input Routine, or SIR, which gave us the efficiency of working at the level of machine code and its 16 basic operations, but with the advantages of defined variable names which made our code comprehensible. So although we got some of our games ideas from the helpful American book 101 BASIC Computer Games, we recreated them all in SIR – partly because we didn’t have a BASIC compiler, but mainly for reasons of speed. Even using SIR, our efforts to get the computer playing draughts, let alone chess, were ultimately frustrated by the length of time the computer took to produce a move – 30 minutes or more, in the case of our chess program. Being inexperienced in systematic testing and debugging, we did not know how to deal with the long cycle time for seeing a problem, identifying its cause and making a change, so we never got these programs working properly. This did not, however, prevent us from mounting displays about them at the exhibitions of the computer room which we started putting on for school open days.

Our computer room exhibitions also featured some more serious mathematical work, given a fun visual twist. My friend the top mathematician, having read that the highest known prime number (at that time) was 2 to the power of 11213 minus 1, set out to calculate and print out that number. Of course this was more complicated than simply instructing the computer to multiply 2 by itself repeatedly; after only a few iterations the number would have been too big for the computer’s usual way of representing numbers, so he had to write a subroutine for handling numbers with very many digits. When printed out, the number took up a very long piece of paper (the teleprinter used continuous rolls), equivalent to three or four sheets of A4. Of course, we had no way of knowing whether the calculation was correct or not, so adapting a song from a much-played album of the time we used to sing:

(To the tune of ‘(Jesus Christ) Superstar’)
Powers of 2, superstar!
Do you think you’re what we say you are?

My mathematician friend also wrote a routine for plotting graphs on the teleprinter – the only kind of output we had in those pre-screen days – by printing Xs on the paper. A spectacular application of this was his graphing of a step function as a Fourier synthesis – in other words, representing it as a combination of sine waves, using more and more sine waves to get closer and closer to the square wave’s cliff edge shape. He scaled the graph so that the top part of the step was on one sheet of paper, which we mounted near the ceiling, with the straight line increasing fluctuating as it approached the cliff edge, eventually plunging downwards towards a second sheet of paper near the floor, where the bottom part of the wave continued. It was a great display; we showed how maths was fun.

What else did we show in our computer room exhibitions? Two programs from the school’s library made use of the computer’s sound generator. One tested your reaction time: after a random interval, the tone would change and you had to press a button as quickly as possible, and the computer would output on punched paper tape the time you took. The other used the sound generator to play tunes; for the exhibitions I programmed it to play Scott Joplin’s ‘The Entertainer’, which was very popular at that time because of its use in the film The Sting. We also had a program, written by our computer scientist maths teacher, to produce labels in punched tape by punching hole patterns in the shape of letters; I wrote an extended version which could also produce lower case letters and small caps, and also Greek letters for good measure.


Visually, the most striking thing we produced was a poster-sized pin-up of Joanna Lumley in her first famous role as Purdey in The New Avengers, rendered as teleprinter art. We had several examples of teleprinter art in our library, in which a picture was formed by characters of different densities printed from paper tape, greater degrees of darkness achieved through overprinting or double-overprinting; but most of these, and certainly the much-reproduced picture of Winston Churchill, had been produced by some kind of optical scanning to create the subtle shading. I produced my picture of Purdey manually, by tracing the magazine image, ruling a grid over it, and assigning a number representing one of four levels of darkness to each cell, then using a program to take this data and print the corresponding character combinations.

But the star attractions at the computer room exhibition in our final year at school was our implementation of the Star Trek resource management game SPACWR (don’t you just love six-character variable names?) which we adapted from 101 Basic Computer Games. The basic idea is that you command the USS Enterprise, engaging enemy ships in battle, the sector of space around you represented on an ASCII plot with your own ship represented by <*>, the enemy ships by +++, and stars by *. Phasers generally lock on target automatically, but cost you energy; photon torpedoes need to be aimed by setting a directional angle. You can replenish energy and weapons at starbases, represented by >!<, which you can locate with long-range sensors. I think pretty much every large computer installation in the Western world must have had a version of this game, but the beautiful thing about our implementation was that it was genuinely collaborative: one person wrote the shell, and the rest of us wrote various subroutines. I made two contributions: the first was to give the enemies a random name, phonemes being selected from a range biased towards hard and aggressive-sounding consonants, on the model of “Klingon”. (Some of the results were satisfactory, such as “Groshtak”, but others were just silly, such as “Bungon” or “Plibdad”.) My other contribution was to give the enemies a secret weapon, named from a buzzword generator which made a random choice from three sets of impressive words, giving for example “inter-phasing neutronic de-energiser”). One of the junior pupils, who we were treating as a coding apprentice, contributed a self-destruct function: if the final few enemy ships were in the same sector as yourself, you could activate your self-destruct and all the ships would be replaced by stars.

The other good thing about our implementation of this game was that we wrote it for a proper computer screen, the school at last having agreed to supplement the 903 with a visual display unit. This meant that instead of having to print out successive versions of the changing game map on the teleprinter, it could be displayed on screen and constantly refreshed. For the computer room exhibition, it also meant that we could demonstrate the game to a larger audience by connecting the VDU to an old television set in the outer room. I vividly remember, in the quieter period towards the end of the afternoon, sitting in the outer room with a couple of elderly ladies, as they watched the game in fascination, keeping up a running commentary on its progress. It was one of my happiest memories of the computer room.

Looking back at it all now, part of me regrets the things we didn’t do. We didn’t, for example, invent the text adventure, which would have been perfectly possible with the technology; Will Crowther and Don Woods developed the original Colossal Cave Adventure in 1976-77 (using FORTRAN!), though given the limited memory of the 903 we might only have managed a Very Small Cave Adventure. We didn’t write an implementation of Dungeons and Dragons, whose rules were first published by TSR in 1974 but which didn’t become well-known in the UK till a few years later; however, two of my friends did write a role-playing game called Rule the World, in which you managed money and armies to increase your political control over country after country. (I don’t know what they’re doing now, but it’s quite possible that they’re at the top of one of the international companies or financial institutions which really do rule the world.) And we didn’t have the greater speed and memory of microprocessors, which would change the world of computing completely. It was while stopping at a motorway service station during a post-A-levels school trip in the hot summer of 1976 that we saw and played our first micro-powered arcade machines – the tank battle, the dogfight and the cowboy gunfight; it was a glimpse of the future, and we were blown away.

But much more than that, I’m glad for what we did do and grateful that we had the chance to do it: grateful to the benefactor whose bequest enabled the school to buy the computer, grateful to the teachers who inspired us and then left us to get on with it, grateful to my friends with whom I learned and laughed. I’m grateful that I learned to operate computers in an era when you could appreciate the physicality of the technology: an era when you acquired the reflex of touching a radiator before handling the machine to avoid disrupting it with a static shock, when you patched the tape reader with small pieces of Sellotape to overcome its mechanical shortcomings. I’m grateful that I became a “digital native” decades before the concept was coined, and so was unthreatened by the idea that a younger generation might have a computer-facility that I lacked. But above all, I’m grateful that I learned to treat computers with familiarity, instead of with awe and reverence, or fear and terror, as did most people at the time. When I saw the film Alien in 1980, I was astonished to see Sigourney Weaver operating her computer while drinking coffee and resting a foot on the console; never before had a computer in a science fiction film been treated so casually, as literally part of the furniture. That, I had learned, was the proper attitude to take to computers. They were there; sometimes they worked, often they didn’t, and you just had to get along with them. That attitude has served me well in later life.

No comments:

Post a Comment