Daily Archives: September 23, 2010

Real programmers

This story came up in a conversation today, and I thought I’d post the link: The Story of Mel. Many years ago I made a little poster with a quote from this story:

If a program can’t rewrite its own code, what good is it?

I’ve kept it on my bulletin board ever since.

A similar story my father told me: the IBM System/360 model 30 implemented the S/360 architecture through microcode, and by changing the microcode it could also emulate an IBM 1401. This way shops that had a 1401 could get a model 30 and still run their old programs while they were rewriting them for the System/360: shut it down, switch the microcode, and restart it in 1401 mode. (And it ran those programs twice as fast as a real 1401.) The microcode was on copper-clad punch cards; the instructions were sensed based on the capacitance.

My father, who was an IBM Systems Engineer at the time, was working with a customer (I think it was Lockheed) that had customized 1401’s with an extra instruction. (Yes, back then computer companies would customize the instruction set on your computer if requested.) To use their old programs on their new model 30, they needed IBM to customize the 1401 emulation, so IBM flew out a microcode guru. He asked them what the instruction code was, and they told him, so he sat down, did some calculating, and said, “That would make the tape drive rewind and unload the tape.”

“Yes,” they said, “that’s what happens.”

“What do you want it to do?” he asked.

They told him, and he sat back down, did some more calculations, pulled some copper-clad cards and a hole punch out of his briefcase, punched a bunch of holes in the cards, and stuck them in the machine.

“Now try it,” he said, and it worked.