# The IBM 604 Electronic Calculating Punch

In April, 1997, the Computer Museum has acquired its first (and only)
electron tube-based digital machine, the IBM 604 Electronic Calculating
Punch. In fact we have only the 604 arithmetic unit (the larger
cabinet in the picture to the left), without the card reader/punch.
The machine is not in operational condition. Many
tubes and some of the cover panels are missing (colour picture, showing the power supply compartment and one of the hinged backplanes).

The 604 electronic calculator, introduced in 1948, was designed primarily
for card-processing related calculations. In [2] it is described as
'a miniature electronic calculator'. However its dimensions were roughly
2 * 2 * 1 m, and its weight was 640 kilos. In its basic
form the 604 was used with a 9000 cards/hour punch/reader (type 521?)
and a read-out panel (no details available). To make it
useful for technical calculations, the machine was combined with a
402 or 417 electronic accounting machine for printing and one to
three type 941 auxiliary memory units; this combination was
successfully sold as the CPC (Card-Programmed Electronic
Calculator): by the end of 1955, 2500 units were produced. The
price must have been close to one million of today's dollars.

The 604 clock rate was 50.000 pulses per second (or 50 Khz as it
would be stated today). Both the 402-417 and 941 were
electromechanical machines, using relais and counter wheels using
400 ms time per operation, against 0.5 ms for the 604! Downtime
(including preventive maintainance) was 10 to 15 percent. Most of
the 1400 tubes were miniature 6J6 double-triodes which were
reportedly a major source of trouble. The machine was built in
series production in the Amsterdam factory of IBM during the
50's.

Basic 604 instruction set:
`
`
- storage read in
- storage read out
- multiplier quotient read in
- multiplier quotient read out
- counter read in plus
- counter read in minus
- counter read out and reset
- multiply plus
- multiply minus
- divide
- one-half adjust
- zero test for step suppression
- column shift
- sign test for step suppression
- group suppress
- program repeat

The 604 arithmetic unit contained about 1400 electron tubes,
used to implement memory (37 decimal digits), an
counter/accumulator of 13 (decimal) positions, and control
circuits. The basic operations (listed in Table 1) could be used
under control of a hard-wired program provided by the user. The
connections were made by hand on a pluggable patch panel. Maximal
60 program steps could be wired on a single panel. For iterative
procedures, a program could be made to include loops.

A properly wired patch panel made the machine suitable for a
specific set of tasks, the details of which (and the input data)
were supplied via the card reader. In a typical application, the
panel was wired to accept 7 fixed-point numbers of 5 decimal digits
at a time, leaving one storage register free for the result of a
calculation, either addition, substraction, multiplication,
division or square-rooting. Set up otherwise, the control panel
would allow floating-point operations (using 10 digits for each
number). On the extended version of the 604, the CPC, really
complex problems could be solved, like finding the roots of a
seventh degree complex polynomial.

### References:

- H.H. Goldstine: The computer from Pascal to Von Neumann.
Princeton University Press 1972, 1993
- P.T. Nims: The IBM type 604 electronic calculating punch as a
miniature card-programmed electronic calculator. Proc Computation
Seminar August 1951 (IBM,1951) pp 37-47.
- J.W. Sheldon and L. Tatum: The IBM card- programmed
electronic calculator. Rev of Electronic Digital Computers, Joint
AIEE-IRE Computer Conf. 1952, pp 30-36.

Thanks to Jeff Bowne and John Pratt for the following 604-related advertisements: