Big Iron

The three computers here were selected more from personal experience than from their historical significance. Still, the RAMAC was revolutionary for its time and signaled among other things a transition from batch processing to real-time computing. The ALWAC III-E was a fairly typical example of vacuum tube computers although it was designed less for the commercial market and more for the scientific and engineering market. The IBM 7094 was in many ways the quentessential mainframe and the fastest computer of its time, although that time was brief and it was soon to be replaced by the IBM System/360.

Looking back, what seems genuinely remarkable is the rapid development of computer technology in just two decades—from electro-mechanical machines with their roots in punched card equipment, to much faster machines using vacuum tubes and employing more advanced storage techniques, to fully transitorized computers, and a few years later, the microprocessors that fueled the introduction of the personal computer and various mobile devices.

photograph of the cover of an IBM 704 Operations Manual
1959: IBM RAMAC 350

When I was a junior in high school, my father, always interested in automation and an ardent fan of IBM, took me and a schoolmate to see the RAMAC 350. I didn't realize at the time that I was looking at the world's first disk drive.

RAMAC 350 DISK STORAGE
photograph of the cover of an IBM 704 Operations Manual
1961: ALWAC III-E COMPUTER

When I was a senior in high school, another schoolmate discovered the nearby university's first computer, an ALWAC III-E, tucked away in the basement of one of the oldest buildings on campus. It ran on paper tape punched with hexadecimal instructions.

ALWAC III-E COMPUTER
photograph of the cover of an IBM 704 Operations Manual
1962: IBM 7094 COMPUTER

When I was a college freshman in Calculus I, near the end of the semester the professor gave a basic introduction to something called FORTRAN, a new mathematical programming language, and required each of us to try it out with a simple program.

IBM 7094 COMPUTER

The RAMAC 350

A series of three computer cabinets, approximately 7 feet tall by 30 feet long overall.
                             A man is standing in front of the disk storage unit.

The IBM RAMAC 350 was often sold as part of the IBM 305 computer. The RAMAC 350 is the cabinet to the left with its 50 platters stacked on top of one another.


The IBM RAMAC 350 was the world's first disk drive storage device. Although primitive by today's standards, it was a game changer. The two most common storage media at the time—punched cards and magnetic tape—were both sequential. To find an item in storage, you needed to read through all the preceding cards in the stack, or you needed to read over all the preceding tape on the tape drive. The RAMAC 350 allowed you to find any piece of data stored on it in less than a second. In CS50 week 3 terms, the RAMAC 350 began to shift the computing world from sequential search to random access search, from O(n) to O(1).

That may seem hyperbole, at least at the level of coding. Even today we need to search arrays and other data structures, and efficiency can be important. But in the 1960s, the shift in storage approach began a shift in how users interacted with computers. In the sequential world, the common approach was batch processing. Given the size and expense of computers, there would be but one computer, and it would be shared by queuing up jobs and running them sequentially. If you had a payroll to process, you would sort all the relevant cards into order, mount the appropriate magnetic tapes on their drives, and process everything on the computer in sequence. Employee by employee, the computer would print out checks and either punch cards or record on tape the information needed for taxes, business records and the like. After that job was finished, the computer could be used for another batch job, perhaps updating inventory or a sales report. It wasn't until later in the 1960s that computers could be used by multiple users simultaneously running their own programs.

The RAMAC 350 was not a computer; it was a storage device, often sold with the IBM 305, an early vacuum tube computer. However, the RAMAC itself was afforded a degree of control using plug boards which were "programmed" in a limited sense by running jumper wires between sockets. These plug boards were part of punched card technology and had been used for many years to control card punches, card sorters, and card-based accounting machines.

RAMAC 350 by the numbers
  • Storage capacity: 62,500 punch cards, or 5 million 6-bit characters, equivalent to about 3.75 Mb
  • Cost: $650 per month; $34,500 to buy ($9,200 per Mb if purchased)
  • Medium: 50 2-sided, 24-inch magnetic coated disks
  • Access time: 0.6 seconds average (0.8 seconds worst case), about 1.7 Hertz.
The disk storage unit with housing removed showing the disks and the read/write arm that
        `               would move up and down to access the correct disk, then in and out across the disk surface to
                        access the data.

The RAMAC 350 disk stack consisted of 50 disks, both sides read/write, spinning at 1200 rpm.

The RAMAC storage unit on a palette being lifted by a forklift out of an access door on
                        the side of a Pan American Airways aircraft.

The world's first portable hard drive weighed about one ton.

The complete IBM 305 computer included a printer, card punch, processing unit, card reader, operator console, and of course, the 350 disk storage unit. It was one of the last of IBM's vacuum tube computers.

A RAMAC 350 control board. The jumper wires allowed control of some aspects of the storage system, but usually worked in conjunction with stored-program instructions on an attached computer, most often the IBM 305, one of the last vacuum tube computers built by IBM.

The ALWAC III-E

A photograph of a bare-bones ALWAC III-E. The operator desk in the foreground holds the
                         Flexowriter used for input and out, the control console, and an oscilloscope. In the background
                         are four cabinets housing storage and processor units.

The ALWAC III-E was a medium size, medium cost vacuum tube computer intended more for intensive computational applications than for commercial uses.


The ALWAC III-E

The ALWAC III-E was usually found in universities and research facilities. It was one of a number of early stored-program computers that were replacing punched card machines, machines that could be "programmed" only in a limited sense using plug boards. While the ALWAC III-E usually lacked the input/output capabilities of commercial machines, it emphasized computational sophistication and speed. It could only be programmed using its own machine code, and thus required a fair knowledge of how the machine worked, how data was stored, how to work with hexadecimal numbers, and so on. Here is an example from one of the several manuals that came with the machine, giving a general idea of how the code worked.

For example, suppose we wish to multiply 9975.00 by 0.04 and divide the product by 12. If 9975.00 is in storage location 40, 0.04 is in location 42, and 12 is in location 44, the resulting code would be 4140E742EB4430--4940:

  • 41 40 Copy the contents of word 40 (9975.00) to the B register.
  • E7 42 Multiply the B register by the contents of word 42 (.04).
  • EB 44 Divide double length AB by the contents of word 44 (12).
  • 30 --  Exchange A and B (remainder and quotient); the quotient is now in register A.
  • 49 40 Copy the A register into word 40. (Replaces the 9975.00 in 40 with the result, 33.2500.)

The programming process would start out, as it still does, with a definition of the problem and an approach to it, the algorithm. Then, unless it was an extremely simple solution, would come the flowchart, a diagram showing the logic of the program: decision points, conditional branches, loops and loop bounds, program flow, etc. The flowchart would be translated into a kind of symbolic representation of machine code that would include numeric or alphabetic instruction codes mixed with symbolic representations of storage locations, essentially variable names. Then that semi-symbolic code would be rendered into numerical machine instructions and hard-coded addresses. At the same time, the programmer would be attempting to maximize limited storage by reusing memory locations when possible and to optimize speed and efficiency by the deft use of arithmetic registers and instruction packing tricks. Virtually every computer sold came with its own preprinted forms for this step. The forms would reflect the word length for the computer (32 bits, or four bytes, for the ALWAC III-E) as well as how words were subdivided into instruction codes, addresses, and data storage.

ALWAC III-E by the numbers
  • Magnetic drum storage: 4,096 32-bit words, or about 128Kb.
  • Cost: $60,000 to $80,000
  • Technology: About 250 vacuum tubes and 5,000 silicon diodes
  • Instruction execution time: about 5-20 milliseconds, depending on operation (about 0.5 - 2 kHz).
Six plug-in component boards, with wires and electronic components soldered to the surfaces.
                     Two or three vacuum tubes are mounted on three of the boards.

These six plug-in units made up more than 90 per cent of the components in an ALWAC III-E. These units are, left to right, input circuit, flip-flop, resistor board, one-shot, diode board, and driver. Note the vacuum tubes on boards two, four, and six.

A disagram of an oscilloscope display with peaks a valleys in groups of eight, each one a byte
                    in a four-byte computer word. There is a parity bit at one end and a sign bit at the other end
                    of the display.

An oscilloscope, included with the ALWAC III-E, could be used to read memory and check timing. This display shows the decimal number 1,000,000,000 encoded in shorter(0) and longer(1) peaks in binary.

A line drawing of a complete ALWAC III-E computer, including IBM input/output devices.

The basic ALWAC III-E could be supplemented with IBM input/output devices, including a line printer, a card reader/punch, and a tape drive. Logistics Research supplied the interfaces needed.

A roll of punched paper table and a schematic diagram of how the punch pattern across the width
                of the tape is interpreted as different characters.

On the basic ALWAC III-E, punched paper tape was used for all input and output and non-volatile storage of programs and data. The tape could be created or printed out on the attached Flexowriter.

The IBM 7094

A man standing in front of the console of an IBM 7094 computer. There are six
                                 tape drives behind the console, a card punch/reader to his right, and a large
                                 line printer to his left.

The 7094 was the fastest of IBM's first series of transistorized computers and the fastest scientific and engineering computer of its time.


The IBM 7094

The IBM 7094 is a prime example of computing's days of "Big Iron," large mainframes that weighed tons and occupied large air-conditioned rooms. The 7094 provided the computing power for NASA's Mercury and Gemini missions and for the beginning stages of the Apollo program. The U.S. Air Force used it for its Early Warning System into the 1980s. It was the platform for the first time-sharing system, developed by MIT, which allowed multiple users to run programs on a mainframe simultaneously. And it was the first computer to sing, providing a distinctly robotic version of "Daisy Bell" which was the inspiration for the scene in Stanley Kubrick's 2001: A Space Odyssey where the HAL 9000 sings "Daisy Bell" as it gradually devolves into a non-threatening simpleton. Coincidentally, an IBM 7090, a slightly less powerful version of the 7094 provided background and a telling plot point in Kubrick's earlier Dr. Strangelove. The 7094 also makes an appearance in the 2016 film about NASA's human computers, Hidden Figures.

The 7094 was one of a new generation of computers that did not require you to know machine code to use it. It came with an assembler, a COBOL compiler (for business oriented programming), and a FORTRAN compiler (for scientific and engineering programming). The 7094 was large and expensive, and thus became the queen bee and central focus of a complex of auxiliary machines. In a university environment, there would usually be a separate room with several card punches, perhaps some verifiers (used to double-check the punched cards), perhaps a card sorter and a printer that could provide a printout of the cards for proofing data and code. The 7094 would occupy its own air-conditioned space and usually ran 24/7 attended by a group of technicians and operators. Computational time was expensive (about $15 per minute in 2024 dollars), too expensive to waste waiting on slower input and output machinery. So the 7094 was usually accompanied by an IBM 1401, a smaller computer that would transfer information from cards onto faster magnetic tape, queuing up a series of jobs. The tape would be transferred to the 7094, which would process the jobs and send output back to tape. The output tape would then be used by the 1401 to create printed or punched card output.

If you were a student, there would be a "job desk" where you would submit your rubber-banded card stack to be processed. Usually within 24 hours you would get your cards and any printed output back. (Sometimes, by cleverly scheduling when you turned in your cards, say around midnight or 1 a.m., you might be able to get in two runs in a day.) If you were submitting a FORTRAN program for its first run, you could count on getting back a compiler printout full of syntax errors, some of which were real and some which were simply the result of an earlier error cascading through the code. You would fix those problems and make another run, and possibly another, until the program finally ran. Then would come addressing any logic errors and more runs. Sometimes your code might produce an infinite loop, which would earn you a stern look from the computer operator because the only way to detect an infinite loop was for the operator to notice reduced input/output activity or the console lights flickering in a repeating pattern. The only defensive programming lay in the operating system's loading all memory with STR machine code instructions before your program was loaded. Thus any memory not occupied by code or data would contain an STR code: store location and trap. If the computer encountered an STR as an operation, it would go to the second storage location in computer memory, where it would find a routine that made note of the offending location in your program, ended the job, and went on to the next job in the queue. You would get back a printout telling you your program had jumped bounds somewhere and it was up to you to figure out where. The only debugging tools available to you were a computer memory map and liberal use of the print statement.

IBM 7094 by the numbers
  • Storage: Magnetic core storage comprised of 32,768 36-bit words, totalling 128 Kb.
  • Cost: About $3 to $3.5 million to purchase, or $63,500 per month to rent.
  • Technology: Transistorized circuits, magnetic core storage.
  • Instruction execution time: 2 microseconds (0.5 MHz).
A lattice of small interlaced wires running through small round metal donuts.

An extreme close-up of core memory, created by small ferrite rings threaded with fine wires. Each ring represented a bit and could be magnetized in opposing directions to represent ones and zeros.

A large cabinet with its exterior panels removed, holding many layers of vertically oriented
                    thin cards, each one holding a fragment of core memory.

The core memory cabinet, stripped of its exterior panels. Core memory was non-volatile and relatively stable. The stability was improved if the thermal environment was also stable, and the core memory for the 7094 was immersed in transformer oil so it could be carefully controlled at about 104 F.

A line drawing of a chart with rectangular, oval, and diamond shaped elements connected
                        with various arrows showing flow of control among the elements.

Flowchart for part of a NASA FORTRAN subroutine to calculate planetary orbits on the 7094.

A still image of Peter Sellers from the film Dr. Strangelove. Sellers is sitting at a
                        computer console talking on a multiline dial telephone.

Peter Sellers as Group Captain Lionel Mandrake at the console of an IBM 7090 in Stanley Kubrick's classic, Dr. Strangelove, or: How I Learned to Stop Worrying and Love the Bomb.

Colophon
This page is constructed using Bootstrap 5.3 and features several offcanvas elements, including this footer. Page layout is managed via Bootstrap grid and flex features, including breakpoints for screen size. Buttons for the main panel navigation are modified to work better with the page graphics.