The IBM Card Programmed Electronic Calculator Model A1
Left to right: Type 941 Storage Unit, Type 412-418 Accounting Machine,
Type 605 Electronic Calculator, Type 527 High-Speed Punch.
Photo: IBM CPC Principles of Operation, 22-8686-3 (1954); CLICK
IMAGE to magnify.
At an IBM-sponsored computation forum in 1946, and at another one in 1947,
Columbia Professor Wallace Eckert described
his Watson Lab setup in which "we have two small
relay calculators which are experimental; one is being tied in with an accounting machine and a special control box to operate as
a baby sequence calculator with instructions on punched cards" 1. In 1948 the people at
Northrop Aircraft hooked up a 603 calculator and a
405 accounting machine (PHOTO) in much the same
way [4,57]2 (it is not
unlikely that they knew of Eckert's setup3), in
which the "sequence of operation is controlled by a set of program cards fed
through the 405. These cards contain x or digit punchings to pickup
selectors to call for the required transfers, etc. These cards may also
contain factors to be used in computations." Northrop called this device
their "poor man's ENIAC" .
In 1949 IBM released a commercial product that combined the 604 calculator with the 402
Electronic Accounting Machine (or 417) and an external relay memory to
form the Card Programmed Calculator (CPC), pictured at left , which sold 2500 units. Later CPC models
such as the Model A1 (1954) pictured above substituted different accounting
machines (e.g. 412, 418, 407) and the Type 605
605-based CPC models were popularly known as CPC-II; this was the CPC
configuration at Watson Lab shown in the Watson Lab Gallery.
The CPC could accommodate larger programs than the 604 (or 605) by itself, by
having them stored on punched cards; hence the name. In fact, there was no
limit to the length of the program. Needless to say, the ability to
program a calculator with a deck of cards rather than (literally)
hardwiring the program onto a panel was a rather significant
development. The CPC was not, however, a stored-program computer like
the 650 or 701; it was an
"externally programmed automatic calculator," meaning that instructions were
executed directly from cards. It was possible, however, to store up to 10
instructions in memory and execute them repeatedly in a loop.
The CPC units could be configured in various combinations; e.g. zero, one,
or more 941 storage units for the desired amount of memory. Here are the
general specs for the five models ("Types"):
While card programming was a major breakthrough, it was a bit different from
what you might think. Since the instruction field on the card referred to a
"microprogram" on the 604 or 605 plugboard,
the same deck of cards would produce entirely
different results with differently wired plugboards; thus it was not possible
to tell what a program did just by "reading" it. Within a few years, once
general-purpose stored-program computers such as the
650 and 701 became available,
programming languages such as SOAP and FORTRAN appeared that did, indeed, "say
what they did" (and vice versa!).
Brennan  confirms: "...an
experimental model of a fast arithmetic processor, which Eckert attached to
an accounting machine. Instead of being programmed through wiring on the
control panel, the machine was controlled by coded punches on cards. The
result as an early form of sequence calculator that anticipated IBM's famed
Card Programmed Calculator."
Bashe  says the original Northrop
contraption was based on a 601 but Grosch
, who was involved in this episode
(Bashe did not come to IBM until 1957), confirms it was a 603.
Northrop might well have attended the 1946 and '47 forums. In any case,
Eckert's 1946 and '47 presentations were printed in the proceedings for those
years, which Northrop almost certainly received. Northrop had their own
presentation on this subject printed in the 1948 Proceedings (Reference 3
below), in which they acknowledged Eckert's earlier
work. Eckert's "baby sequence
calculator" reference :
refers not to the
Aberdeen machines, but to two truly custom,
one-off machines built specially for Watson Lab, dubbed
Virginia and Nancy.
The IBM Card-Programmed Electronic Calculator Model A1 Using Machine
Types 412-418, 605, and 941: Principles of Operation,
International Business Machines: Third Edition, Form 22-8696-3 (1954).
Eckert, W.J., "Facilities of the Watson Scientific Computing Laboratory",
Proceedings of the Research Forum, IBM, Endicott NY (1946),
Eckert, W.J., "The IBM Department of Pure Science and the Watson
Scientific Computing Laboratory", Education Research Forum
Proceedings, IBM, Endicott NY (1947)
Fenn, George S. (Northrop Aircraft), "Programming and Using the Type
603-405 Combination Machine in the Solution of Differential Equations" in
Grosch, H.R.J. (ed.), Proceedings of the Scientific Computation
Forum, IBM (1948).
Hamming, R.W., "A 101 Control Panel for Testing General Purpose CPC
Cards", IBM Technical Newsletter, No.9, IBM, New York (Jan 1955),
Hurd, Cuthbert, "The IBM Card-Programmed Electronic Calculator",
Proceedings, Scientific Computation Forum, IBM, New York
MacMillan, Donald B., and Richard H. Stark,
"'Floating Decimal' Calculation on the IBM Card Programmed Electronic
Calculator", Mathematical Tables and Other Aids to
Computation, Vol.5, No.34 (Apr 1951), pp.86-92.
Pendery, D.W., "604 Wiring Chart for Multiply, Divide, and Square Root
on the Card-Programmed Electronic Calculator", IBM Technical
Newsletter, No.1, IBM, New York (1950).
Sheldon, John W., and Liston Tatum, "The IBM Card-Programmed Electronic
Calculator", Review of Electronic Digital Computers, Joint AIEE-IRE
Computer Conference, American Institute of Electrical Engineers,
New York (Feb 1952), pp.30-36.
Verzuh, Frank M., "Description of THE M.I.T. CPC Board No. V, A 13-
Digit Floating-Point Decimal Board", Report S-14, MIT Office of Statistical
Services, Cambridge MA (25 Jun 1953), 17pp. Also similar Reports S-10 and
Woodbury, William W., "The 603-405 Computer", Proceedings of a
Second Sysmposium on Large-Scale Digital Calculating Machinery, Annals of
the Computation Laboratory of Harvard University, Vol.26, Harvard
University Press (1951), pp.316-320.
IBM Scientific Computing Forum Proceedings and Technical Newsletters
from the 1950s are full of articles describing CPC applications