I had a summer job operating and programming 1401 and 7070 in 1962 and 63 at Universal Oil Products Company in Des Plaines, Illinois. UOP was in the oil business, although you couldn't fill your tank with UOP gas: what they owned and made was patents. They owned the patent on Fluid Catalytic Cracking, and every drop of gasoline anybody burned had been processed through a refinery embodying a UOP patent. I got the job through Mr. David M. Boyd, who was chief instrumentation engineer at UOP.
The 7070 had a machine word of ten decimal digits, plus a sign that could be positive, negative, or alphabetic. Each digit was represented by five bits, coded so that two out of the five were on and three off; if the machine encountered any digit that didn't have two-out-of-five, it halted immediately. Instead of the 650's drum memory, the 7070 had core, 10,000 words of it. Alphabetic information was coded as two decimal digits, so a word could hold five characters.
The front of the programmer's reference card lists the machine opcodes. The back lists the character set, the two-out-of-five code, and the special functions of some memory locations. The 7070 had three accumulators, which you could access with normal load and store operations, and also as addresses 9991, 9992, and 9993. The program counter was visible as location 9995. And the 99 index registers were also locations 0001 through 0099; each word had an indexing portion and a limit portion, and the indexing instructions compared the index to the limit and branched in various directions when the limit was hit.
The 7070 had the ability to overlap computation with I/O. You could start a tape operation and keep computing, and the machine would take an interrupt when the I/O completed. Data structures called RDWs, Record Definition Words, specified memory extents to be transmitted, and programs could chain these together to perform scatter-gather I/O.
Physically, the machine was imposing. It filled a large air-conditioned room with six-foot high boxes for the CPU and memory, and we also had six tape drives and an online card reader and card punch.
Printing, card reading, and punching were usually done on the 1401 though, since its unit record equipment was faster. Tape was 200 or 556 BPI Model 729 tape drives. The machine operator sat at the 7150 console, a desk with a built-in typewriter and a small panel of lights and switches, and sequenced jobs through the machine. The machine logic was transistors, all right, mounted on SMS cards (Standard Modular System), with two transistors and a few other components per card, very similar to the flip-flops I was wiring in Mr. Boyd's basement.
Basic 7070 instructions took 36 microseconds, so that would be about 27 KIPS. But the machine had some very powerful instructions that took a lot longer than one cycle; for example, there were table lookup instructions that searched a whole table defined by an RDW.
Reliability of core was a concern when the machine was first introduced; that's the reason for the elaborate two-out-of-five coding. One summer, our machine began halting with a memory parity check at the same location in the same program. Everything else ran fine, and the CE diagnostics showed nothing. The problem was taken very seriously by IBM, who sent out more and more guys in ties and blue suits, until finally the machine designers were sent. They discovered that one of the power supplies was a little under specification, and that if the machine was reading cards, punching, and running multiple tape drives at the same time, there wasn't quite enough power to drive one particular core plane.
Bob Bemer wrote the story of the accidental genesis of the IBM 7070 in his story "Birth of an Unwanted IBM Computer."
Copyright (c) 1996 by Tom Van Vleck