## Memories: first exposure to computers

07 Dec 2022

In The Life and Games of Mikhail Tal, the legendary former World Chess Champion mentioned his urge—when annotating his earliest games—to stretch out his hand to attach a question mark (indicating an error) to almost every move. That’s how I feel about my early experiments. I must have been about 15 when I first touched a computer keyboard, an ASR-33 teletype. Until then, my main hobby had been electronics: I built radios and owned a digital breadboard with a few flip-flops that could be wired together in different ways. I can’t remember which teacher pushed me in the direction of computers. Two others were involved: Mr Stanfield and Mr Hilbert. The latter taught Mathematics, but let’s be clear: I am not old enough to have met David Hilbert, and he was never a schoolteacher in the USA.

### Experiments with BASIC

BASIC is a terrible language, but there were few alternatives back then. I had dial-up access to a 32K Hewlett-Packard minicomputer, and I got so obsessed I used to slip in for five minute sessions between classes. I learned how to get something out of the computer quickly.

Perhaps my first program was an attempt to calculate $\pi$, suggested by one of my teachers, using the formula

$\pi/4 = 1−\frac{1}{3}+\frac{1}{5}−\frac{1}{7}+\cdots$

I think we used just the four terms above, which we pointlessly stored in an array before adding them, and I was disappointed with the result (about 2.9). The series converges more slowly than you can imagine. There are better methods.

As I was an avid fan of Martin Gardner’s Mathematical Games column in Scientific American, at some point I turned to the Game of Life, invented by John Conway. I decided to do this in BASIC, using a small array and lots of nested loops. Also through Gardner I came across the game of Nim, for which perfect play can be had by a simple algorithm. This may be the first decent program I ever wrote.

I loved writing code. Once I had finished a program and it could no longer be improved, my task was to find some other project. Presumably this is how I got into the frame of mind for doing research.

### Experiments with PDP-8 assembly language

The PDP-8 was a legendary minicomputer built by a legendary company, the Digital Equipment Corporation (or DEC). The University of Pennsylvania’s Moore School of Electrical Engineering had two of them slowly decaying in a basement. My mother got me access by calling people there and telling them what a genius I was for so long that they finally gave in just to get her off the line. I am eternally grateful. These machines were less capable than the Hewlett-Packard model I could use at school, but they were right in front of me, panel lights, switches and everything. There was a DEC 338 vector graphics display with a light pen. The hard disk could hold an immense 32K of 12-bit words and there was also a DECtape drive. The two machines each had 8K of 12-bit words, which corresponds to 12K bytes of memory. Its cycle time of 1.5 µs would today be described as a clock rate of 667 kHz.

Software included some sort of rudimentary operating system, a BASIC-like programming language called FOCAL-8 and minimal versions of Fortran and LISP. The luxurious MACRO-8 assembly language was also available. The machine had to be booted up manually by keying instructions through the switches, then loading software via paper tape.