When I joined IBM in 1963 as a new college graduate from Stanford, I was joining as the only
programmer in a group responsible for the software of what was to become IBM’s Small
Engineering Computer (aka 1130). I had essentially no programming experience save for two
summer internships with IBM. In fact, at that time there was no Computer Science department
at Stanford. The others in the department had no computer experience. They were all ex-
salesmen whose background was selling IBM punched card equipment. As the only
programmer, I was told that my assignment was to write the software for the new system
(FORTRAN, Assembler, utilities, and some type of supervisor). With this background, I
basically spent the first six months not knowing where to start. Finally, IBM transferred an
experienced (and very bright) programmer from Endicott, NY, and now I had a mentor.
Meanwhile development of the new system was proceeding, but with complication. As was
often the case at the time, there was another team in Poughkeepsie, NY pushing competitive
architecture. For a time, when their design had more favor, we were looking at what I think was
an 18-bit architecture. Then San Jose would gain favor and we’d go back to 16-bit architecture.
As you know, the 1130 did not have floating point arithmetic hardware, so one of the metrics
used to evaluate the competitive designs was to code routines for floating point arithmetic and
evaluate how much storage was used and what the operation execution time. My job at this
point was to code the floating-point routines for the San Jose design and a counterpart in
Poughkeepsie would code the routines using their design.
Finally, the decision was made for the San Jose design, and I began working on a bootstrap
assembler that team (now including a group developing FORTRAN) could use to build the code
to be tested on an actual 1130. The bootstrap assembler was written for an IBM 1401,
assembled punched card segments of the software and punched out program decks to be
loaded and executed on the 1130.
Before starting on the Assembler, it had to be decided what the language would look like, what
opcodes and pseudo-opcodes would be used. Since it would use punch card input, the layout
of a card had to be chosen (length of labels, format indicator, designation of index register, etc.)
As the Assembler design proceeded it was decided that it was to be a two-pass assembler and
what tasks would be accomplished in each pass.
Challenges:
1. The paper tape only version (literally rolls of paper tape to be read each time a test case
was run)
2. Debugging with a printout of core storage
After my work on DM2 I moved to Boca Raton to manage the Test and Release group.
Returning to California following three years in Boca Raton to coordinate the release of 1130
DSP and the incorporation of other languages such as RPG, COBOL, and APL. All in all, I was
involved with the 1130 for the first ten years of my time at IBM. It was a great experience!