from Gary Mokotoff
Exactly 50 years ago today—June 29, 1959—I joined IBM as a programmer in the Applied Programming Department which was then located at 425 Park Avenue in New York. I was told that I was going to write programs for a yet-unannounced computer called the IBM 1401. One of my co-workers, I think it was Bernie Silkowitz, gave me an instruction manual and made a tongue-in-cheek comment to the effect “If you have any questions, don’t ask us, we don’t understand it either.”
My first task was to write a program that dumped memory onto punched cards in a reloadable form. I hadn’t the vaguest idea how to program, and, of course, there were no schools for programmers then. Someone (Jim Toner?) had already written a machine-language program to print out memory, so I stared at the program. “Set Word Mark 008, 016. Set Word Mark 024, 032…” I simulated the instructions with a pencil and somehow understood what was being accomplished and the concept of sequential instructions.
To write the punch-dump program, I took the print dump program and changed the Print command (2) to Punch (4?). I then realized that the punch area was not in the same physical location. So I changed where the data was being moved from the print area to the punch area. Slowly I gained an understanding of how a sequential programmed computer worked.
The next task given to me was to write multiply and divide subroutines in machine language. The originally announced 1401 had multiply/divide hardware as optional equipment. I wrote two multiply subroutines; one that multiplied by repetitive addition and the other, which was faster, by using tables. Once done, I named the two Multiply subroutines “Slow Multiply” and “Fast Multiply,” and proudly presented my work to manager, Jack Palmer. Jack liked what I did but said IBM did not produce software that was “Slow” so he renamed them “Multiply I” and “Multiply II.”
I went on to author SPS-1 and SPS-2, co-author Autocoder and was on the team that created the first FORTRAN compiler.
go back to main 1401 Restoration Page