Assemblers were once people: My aunt did it for NASA
We all owe plenty to the mainframe age's pioneers
The IT runs strong in my family.
One day -- this is more than thirty years ago -- when I pulled myself out of the code mines, I found my Aunt Anna visiting. I mentioned (proudly) that I was mastering the arcana of assembly language programming on the TRS-80, using Microsoft’s MASM macro-assembler.
“Really?” she replied. “A macro-assembler? What does that do?”
“It translate statements from assembly language into machine code. It’s called a macro-assembler because you can define semantic constructs that make it a lot easier to write complex code.”
“Hmm.” My aunt seemed impressed, and a bit thoughtful. “Things have come a long way since I was programming.”
“You were a programmer?” I’d never had any idea.
“Oh, yes, for a couple of years. Before your uncle and I started a family.”
“Wow. What kind of work were you doing? Bank settlements? Payroll systems? Data processing?”
“Oh, nothing like that. I had a mathematics degree from Tufts University, so I got hired at a research lab to do work for NASA.”
(At this point I was literally speechless. It felt a bit like suddenly learning a member of your family had been an astronaut - but had neglected to tell you.)
“This was back in the early days of the space program, and they needed to run a lot of calculations to assist with the design of the early spacecraft.”
Again, there’s the sound of my jaw hitting the floor.
“It was very interesting work, but also quite difficult. They’d give us these formulas, and we’d have to translate the mathematics into instructions for the computer. That took a lot of time.”
Today we’d call that sort of thing simulation. We have very good tools to help us with those simulations. Back in the early 1960s, not so much.
“What programming languages did you use?”
My aunt laughed. “Oh we didn’t have any programming languages. They weren’t very common back then.”
“But,” I blubbered, “how did you write your code?”
“First, we’d translate the mathematical formula into a series of instructions - this was on the IBM 704, pretty much the only computer that could handle complex math. Once we’d got the instructions written out, they’d give us a sheet of paper with row after row of boxes. We’d look up the opcode for each instruction, and write that in the corresponding box. When we’d written the entire program out as opcodes, we’d give it to an operator, who’d enter the program into the computer.”
“So you had to do the translation from instructions to opcodes yourself? You didn’t have an assembler?”
My aunt shook her head. “We were the assembler.”
“You had to keep track of everything? Every program location, every branch point, every register?”
“Yes, but there wasn’t anything else going on in the computer - this is before there were operating systems - so you had access to the whole machine. You did what you wanted, and as long as it was consistent, it worked.”
That’s when I realised there hadn’t been much of a leap from the IBM 704 to the TRS-80. The latter was far smaller, cheaper and faster, but gave you the same complete control over the hardware. Even so, I had far better tools to work with, tools written by the programmers who’d come before me - like my Aunt Anna.
That’s all I can remember of that conversation, but I’ve always remembered that my aunt was a computer programmer before most people had even seen a computer. And not just a computer programmer, but coder working for rocket scientists. How cool is that?
In retrospect, other things began to make sense. On a holiday visit to my aunt and uncle when barely a teenager - before I’d learned to program - I remember they had one of the first Magnavox Odyssey video game systems. Predecessors of the Atari 2600, the Magnavox came with a series of translucent plastic overlay screens for the television that coloured the Odyssey’s black-and-white graphics.
That was the first video game system I’d ever seen. Although my uncle had a passion for gadgets, I wonder if the reason they owned such an early device is because even after she left her career to raise my three cousins, my aunt maintained a continuing interest in computing.
That’s something my cousins inherited: The eldest has a PhD in Library Science - in the 21st century, that’s all about information design and management. The middle child is an electronic musician. And the youngest runs devops for a huge semiconductor firm. Whether they meant to or not, all three have careers in a field that was just opening up when my aunt entered it, fifty-five years ago.
The career choices we make - and the stories we tell the younger generations about our careers - influence lives in ways we might never live to see. When I recently received news of my aunt’s passing, I remembered how much I owed her a debt. Anna’s example showed me that a career in IT could be literally out of this world. ®
In memory of Anna Pesce (1938-2015)