RO / EN

Chapter 18

Estimated time of reading: 4-5 minutes

“The next day I solved his dump fairly quickly.”

Later on, when I came to work on machines from the PDP-11 family (and on its clones), I encountered an Assembler that bore, in all seriousness, the name: MACRO-11.

Why “MACRO,” if it was still Assembler all the same?

Because it was not merely an Assembler; it was an Assembler with “rubber stamps.”

MACRO-11 allowed you to define macros: that is, to write once a sequence of instructions you used repeatedly — save registers, prepare parameters, call, restore, return — give it a name, and then invoke it with a single word. On the surface it looked like a new instruction. Underneath, it expanded, in disciplined fashion, into an entire block of code.

It was not magic. It was an economy of repetition.

And in that era, repetition was a real cost: time, paper, errors. A good macro was like a good line in a play: it said a great deal, quickly, and spared you the explanations.

That is why it was perceived as Assembler (because, in essence, you were still writing machine instructions), yet it was called MACRO (because it let you tailor your own layer of “comfort” above the instructions, without forgetting for a single moment what lay beneath).

In 1972, when I found myself with the dump on my desk and asked for “a reprieve until tomorrow,” the folder of notes and routines was no longer an archive. It was a toolkit.

I open a parenthesis:

And in this line of work, the toolkit makes the difference between “I don’t know” and “give me a day.”

It was an arithmetic operation that had collided with the contents of its operands — the kind of error that makes a human blink once, and makes a machine fall to its knees, with dignity.

I gave him my conclusion, showed him the spot, and the man looked at me with that discreet gratitude of someone who has just been spared a public humiliation. Within the following week, word had spread.

“There’s a fellow who knows his way around dumps.”

To be entirely fair: before I appeared on the scene, the researchers at the institute would turn to the specialists at the CFR Computing Centre to have their dumps “unravelled.” And they were genuine specialists: men of thirty to forty, with experience in railway operations, who built and implemented complex computing systems for the Romanian Railways. I did not “dethrone” anyone; I merely saved the occasional trip carrying the dump to the Station, and gained the odd working day.

They were very good researchers, exceptional engineers; they knew FORTRAN excellently, mathematics “by the cartload,” but they could not — or would not — cross the barrier and learn Assembler, program linkage, and the way a dump was structured. And I understood them: learning Assembler solely to read dumps is rather like learning anatomy solely to apply a plaster to yourself. It can be done, but you need a better reason.

I had my reason. I liked to understand “why.” And, I confess, I also liked the side effect: there was something satisfying about watching a stack of paper covered in hexadecimals — which to others meant panic — turn, for you, into a story with a happy ending. I was not saving the world. But I was saving the occasional program. And on the scale of 1972, that was quite enough.

- End of Chapter 18 -