How I Became Digital
1 Oct. 2009
I was analog until the end of 1970. Starting at age 12 when I received an unanticipated gift of a partially-used correspondence course in radio and TV repair, I lived in the analog domain as far as electronics went. Audio was something I could do, and repair radios, but digital, well, in the late 1950's it hadn't progressed to the level of microelectronics and the only transistors I could buy were feeble, noisy little 2N107's that would burn out on the flimsiest pretext. Big, hot, fragile vacuum tubes made computers go, when they went at all.
Remington-Rand had their Univac division in Philadelphia, where I grew up, and I got an after-hours tour of the plant from my instructor at the community center electronics club who was an engineer there. He sat at the console of a Univac I computer and did things I did not understand, but I could see that it was complicated.
In high school my brother, 3 years older, formed the Central High School Computer Club when I was a freshman and he a senior, in 1959. He was interested in software, and got books dating to the 1940's from the public library describing the earliest computers. In these books were cryptic schematic diagrams of electronic circuits, with no specific values of components, which might be helpful for qualified electronic engineers but were nothing that I could use.
“Can you build these?” he would ask, thrusting the diagrams at me. Our relationship was such that it was unthinkable for me to say no. So I said yes, or rather, “I think so”. That was good enough, so he made me Chief Engineer.
With a few friends I tried to build “flip-flop” circuits using vacuum tubes. These were supposed to latch data and count in binary when hooked up right. Unfortunately, our method of creating single, crisply defined pulses – flicking a wire against a metal contact - was one of the few ways guaranteed to generate long strings of random pulses. So our flip-flops worked about 50 percent of the time.
We could have used some professional assistance, and our faculty sponsor should have helped us find it. But apparently computers were so intimidating at the time that the faculty kept silent, and being a lot of frantic overachievers we would never consider doing anything that would make us look ignorant. So we went onward, through the fog.
It's a pity, too. I recently spoke with the son of the legendary John Mauchly, one of the designers of ENIAC and of the UNIVAC I. John lived in Philadelphia at the time, and was a very down-to-earth and helpful person, according to his son. We could have looked up his phone number and called him up, and he would have been willing to help or find someone to help us. Alas, so strong was our instinct to show how “smart” we were that this possibility never entered our minds. One of our teachers could have provided the necessary encouragement, but it was not to be.
I emerged from that experience having sworn off computers and all things digital. One little error didn't count for much in analog electronics, being nothing but a little noise, but in digital it could bring the whole edifice to a crashing halt. Ten years later I had no choice than to embrace it.
One day in 1970 at Ampex we were locked out of the cafeteria at lunchtime - it had been commandeered for an emergency stockholders' meeting. The rumors began circulating – the banks were now running the company, and There Would Be Layoffs. In the fall the first round hit, spreading fear throughout the company. As a $6.00-per-hour Junior Engineer I shouldn't have been too concerned, as they wouldn't have saved much money by canning me. Still, there was a task to be done and no one left to do it but me, and it involved my writing software.
I had to put together a test-bed implementation of the basic elements of our newest “Pyramid” system and write code to make it perform. The hardware wasn't so bad – an array of 12-key keypads, some headphones and some pieces of the demo room system like master tape units and buffer tape units, with cables to interconnect them. Sitting at the center of the web, like a spider, was the Data General Nova 1200 minicomputer. And I had to tell it what to do, and how.
I dug through the manuals and found out about the rudiments of programming this beast. Access to it was through a teletype Model 33 ASR teleprinter, with paper tape punch and reader (the “A” of ASR). You typed and the punch recorded what you typed on paper tape. When you read that tape through the reader it would either be fed into the computer or to the printer, depending upon a switch setting. With the switch in the “remote” position the printer was controlled by signals from the computer.
The first exercise was to get the printer to type one letter. They used “self-modifying code”, which meant that the program section (called a subroutine) was written to command the printing of a character defined by a byte in a particular place – for instance, six locations from the starting point of the subroutine. As written, there was nothing but a string of zeroes (the “NUL” character) in that location, so not much happened when the subroutine was activated.
However, this subroutine was embedded in another subroutine that caused the desired character byte code (passed to that subroutine by others) to be written down the line into the memory location otherwise occupied by the NUL character. This is not considered good programming practice these days – it's not smart to go around overwriting code – you might change something in the wrong place and then you crash.
With my heart in my mouth I ran the paper tapes through the assembler program, converting the mnemonic codes and data bytes into the binary bits that actually worked the computer. Then I pushed the “RUN” switch. The intended character was an”A” (20 hexadecimal, or 0010 0000 in binary).
“CHUNK!” went the Teletype and an “A” appeared on the paper, with the print head obediently moving one space to the right. My God - it had worked! It was a transcendental experience – I recalled the words to a satirical song I had heard about the Pope - “..he don't even have to take dope”. And there was no operating system, no interpreter, no layer upon layer of software to interfere with it. I had written code in simple symbols, assembled it into binary code which I could, with enough effort, understand, and made the computer run that code directly. And it had worked!
With that as reinforcement I forged ahead writing an increasingly elaborate program to run the batch of components I had wired together. Eventually I could do a simple demonstration, using the keypad to order up a program from the master tape to be copied off to the buffer tape unit for that keyboard's position, then to be played back to the headphones from the buffer unit.
I heard that there was to be another round of layoffs. Some time around the year-end holidays, after I had worked over a weekend, the head of the division came back to see what I had to show, and I showed him. He muttered “I'm impressed” and slunk back to his office. He looked back at me and repeated “I am... impressed”, and I had reason to hope that I would survive the layoff. I did.
Thus I crossed the threshold to the digital world. It took ten years, within which computers had shrunk from roomful to table-top size, a generation of transistor circuits had shrunk into digital chips and a computer could be supported and operated by one person. But my transcendental experience was probably no different from that experienced by generations of my predecessors, and hopefully by generations of successors. If, however, it's gotten so easy that it's no thrill at all I'll do something to let people experience it the way I did.