CARDIAC:
Cardboard Illustrative Aid To Computation

A learning tool from Bell Telephone Laboratories.
cardiac logo

My experience with CARDIAC

In 1971 I was in high school, and was very interested in irrational numbers, therefore I was also interested in computers as a research tool. As a result I took a nonrequired summer school course in computer programming, which was my first exposure to computers. In that class we learned the BASIC language, HP version, using punch cards with light reddish print that we marked by pencil, cards we submitted daily for batch processing on an off-campus computer that we never saw. As an aside to this routine activity, our instructor Mr. Smith gave everyone a free CARDIAC learning package early in the course, though he never discussed it and we weren't required to know anything about it. It interested me, however, and after the course was over, when I finally had some free time away from programming, I experimented with it. Until then I didn't know what it was about, and hadn't even assembled the device yet, which came in a large white envelope with the CARDIAC logo and Bell Labs address in the return address area.

After assembling the device I ran through a number of programs in the manuals until I understood its operation. Although I didn't run every program, I did read the entire manual. It gave me a good feeling to have learned something valuable on my own time, and to be on top of an academic topic--something that rarely happened then or now. This learning package had various influences on me, too. For one, it may have motivated my fantasy then about building my own computer called Logatron that would perform ultra high precision mathematical operations, centered on logarithms. For another, it gave me the impression that the low-level mechanics of computers was very tedious! By college I had somehow gained the impression that such low-level programs were all that paid computer programmers wrote, which eventually made me decide I didn't want to be a programmer, so I switched my major from computer science to math. But many years later when I finally learned assembly language I believe I found it easier than I normally would have, because I'd already seen the essence of it in operation through this learning device.

This seemingly out-of-print learning device now sells in the $40-$50 range on eBay, where it is occasionally seen once or twice a year. However, a Google search on the Internet under "cardiac" and "bell" will turn up the name and address of Comspace Corporation, which is still selling these kits! (I just ordered one, myself.) It appears there have never been any revisions to this kit in its 36 years of existence. Although we got copies in 1971, the booklet scanned here was copyrighted in 1968, reprinted in 1969, and new copies look identical to the old ones to me in every way.

ride off into the sunset... on a computer

For me, 1971 in Southern California was a year full of great people, great recreation, and much new interesting academic knowlege, especially in the summer when I owned and played with this device, so many of the illustrations of CARDIAC have very positive associations for me. In general the early 1970s was a time of national optimism that had a high-tech Tomorrowland-like Zeitgeist that anticipated a future filled with computers and other technology that would make our lives better, as reflected in Disneyland attractions like the Carousel of Progress and Adventure Thru Inner Space. In fact, the CARDIAC manual's illustration above even looked like the futuristic city in the Carousel of Progress photo below, and the Bell Telephone exhibit at Disneyland in 1971 had tic-tac-toe playing machines, a version of whose program one student in our class wrote in BASIC that summer. This integration of academics with Disneyland attractions contributed to the sense of being a part of the future, a connection which no longer exists since in the 1980s Disneyland strayed from having an educational undercurrent.


Futuristic model city in Disneyland's Carousel of Progress.
http://www.yesterland.com/progress.html (4-19-05)

The early 1970s was also a time of cradle-to-grave employers, such as Bell, Xerox, and Monsanto, which unconsciously gave new graduates a sense of security that no longer exists. Nowadays, IT jobs commonly last only as long as a 1-year contract, which keeps software people constantly changing jobs and residences, which in turn has an overall effect on employees' ability to master any one topic, to publish, to have stable friends, or to live in a meaningful house or neighborhood. This is just one of many ways in which society has provably declined across the board in the past three decades.

Bell System logo Monsanto logo

Since at least two Internet sites already have scans of the cardboard device itself, I thought I'd complement those sites' scans with scans of this booklet. Currently I do not own this device, only this booklet, although I recently ordered the entire kit from Comspace Corporation. If anybody is particularly interested in larger scans of certain pages or details, I'd be happy to make and post such additional scans. Maybe someday I will have time to make a virtual version of Cardiac online, with user-controlled moving sliders.

YOU =


The device



See the links section of this page for the links to the above photos.

The CARDIAC device had to be assembled from a kit of cardboard pieces, though it was easy to assemble. The sliders had to be inserted into the appropriate slots in the cardboard frame. The completed unit folded over once like a book, with the working device on the interior face. Both "book covers" were doubled over cardboard with the sliders inside the covers, showing through windows on the face of the device. I believe the outer edges of the book were not sealed: the scans of the device here show user-supplied tape that must've held the edges shut. The lower edge of the book might have needed to be glued. I remember the device was difficult to store intact because the sliders stuck out and tended to get bent, and the "book" puffed out so it wouldn't lie very flat.

If I recall correctly, at least one of the sliders was flared so that it caught another slider to pull alongside for certain operations in certain directions. I remember being impressed at the overall cleverness of the device, and thinking how it would be uncomfortably intricate to design.

The central part of the device had a top level flow diagram that the user followed, ending in a stop sign when the program stopped, whereas the sliders told specific commands to follow, with specific locations. There were several cardboard ladybugs that served as markers for the program, each containing a stem so that the "bug" would fit into a hole at the proper memory cell. Once started, the instructions were self-explanatory, and directed the user where to place the ladybugs, which sliders to move and how far, when to (manually) add, and what to write and where to write it.

The user was supposed to write numbers into the spaces for the accumulator, memory cells, and program on the face of device, though of course such pencil markings would have to be erased if more than one simulation were ever to be run. I wrote lightly in pencil in those spaces so as to not deface the device too much. The glossy surface of the cardboard made it difficult to write on, anyway. A CARDIAC program was supposed to be written onto the leftmost slider, whose elements were illustrated to suggest miniature punched cards.


The instructional manual

Here is the complete instructional manual for CARDIAC.
The term "SIMCO" is used in the manual to mean "simple computer."

front cover, exterior
front cover, interior
page i
page ii
page iii
page iv
page v (Table of Contents)
page vi
page vii (Prefix)
page viii
page 1 (What CARDIAC Is... And Isn't)
page 2 (Basic Units Of a Simple Computer)
page 3
page 4 (Communicating with Computers)
page 5
page 6
page 7 (Flow Charts)
page 8
page 9
page 10 (Instructions, Data, and Addresses)
page 11
page 12 (Converting SIMCO to the Stored-Program Mode)
page 13
page 14
page 15
page 16 (Introducing CARDIAC)
page 17
page 18
page 19
page 20 (The First Program)
page 21
page 22 (Loops)
page 23
page 24
page 25
page 26 (Getting Out of Loops)
page 27
page 28
page 29 (Multiplication)
page 30
page 31 (Shifting Digits)
page 32
page 33 (Bootstraps and Loading Programs)
page 34
page 35 (Subroutines)
page 36
page 37
page 38 (Developing Programs)
page 39
page 40
page 41
page 42
page 43
page 44
page 45
page 46
page 47
page 48
page 49 (Assemblers and Compilers... Programs for Writing Programs
page 50
page 51
page 52 (Selected General Bibliography on Computers)
page 53 (The Authors)
page 54
page 55
page 56
rear cover, inner
rear cover, outer


Links

There seem to be quite a few fans of this vintage learning tool! It also seems, however, that the fans are just few enough in number and their communications spread over enough time that no "critical mass" of interest accumulates.

Bell Telephone Laboratories

Bell System Memorial
Some nice photos. CARDIAC was just one of several Bell Labs Science Experiment Kits.
http://www.bellsystemmemorial.com/belllabs_kits_cardiac.html (4-26-05)

The Wanted Page
Response to a question about where to find CARDIAC. Several photos and modern ordering info!
http://www.larkfarm.com/cardiac_answers.htm (4-26-05)

cinc
A software emulator for CARDIAC! Free download of the zip file, though I've been unable to unzip it so far.
http://sourceforge.net/projects/cinc (4-26-05)


Modern ordering information!

Incredibly, CARDIAC is still available through an obscure company that only recently obtained e-mail service and a webpage:

Comspace Corporation
117 Engineers Drive
Hicksville, NY 11801
tel: (516) 942-8191
fax: (516) 942-8193 (send requests for CARDIAC here)
http://hometown.aol.com/comspace/ (4-26-05)
comspace@aol.com (send requests for CARDIAC here)

The kit is no longer free, however. As of 4-26-05, the price was $19.95 + $7.50 shipping. Here is their price list in Word format: Bell_Labs_Kits_Price_Sheet.doc


Comments about assembly language

Assembly language is the lowest level and therefore the most tedious level in which humans ordinarily program computers. Despite this drawback, there are some interesting questions that come to mind when thinking about assembly language, which lead to cool ideas and great insights into computers and their languages. When designing my own special-purpose computer language for Logatron, for example, I found I had to think about most of these questions:

CARDIAC's assembly language instructions are quite similar to real-life assembly language instructions, as shown by the following table of examples that shows the closest analogous instructions in other languages. Note that real assembly languages typically have several variations of what would be handled by only one type of CARDIAC instruction. These instruction variations typically arise from variations in condition flags or operand types. Also, not shown, is that real assembly languages usually have more instructions that don't quite match anything in CARDIAC's instruction set, like stack operations (PUSH, POP), bit operations (AND, OR, NOT, XOR), swap, NO OP, cyclic shift, and higher level math operators (multiply, divide). Also note that the language VVM isn't a real assembly language, only a CARDIAC-like assembly language for learning purposes.

CARDIAC
op code
CARDIAC
instruction
VVM
instruction
PDP-11
instruction
Z80
instruction
1750A
instruction
CARDIAC
instruction
meaning & effect
0
INP nn IN . IN A,(n)
IN r,(C)
INR d, s INPUT
(nn) <- (input card)
1
CLA nn LDA nn CLR nn
ADD s, d
MOV s, d
LD dst,src
LD A,i
LDD
LDDR
LDI
LDIR
LR d, s
LRI d
CLEAR AND ADD
(CLEAR / LOAD / MOVE)

(acc) <- 0
(acc) <- (acc) + (nn)
2
ADD nn ADD nn ADD s, d ADC A,s
ADC HL,ss
ADD A,s
ADD HL,ss
ADD IX,pp
ADD IY,rr
ADD d, s
ADDC d, s
AB d, s
ADDU d, s
ADD
(acc) <- (acc) + (nn)
3
TAC nn BRZ nn
BRP nn
BMI nn CP s
JP M, nn
BR c, l
JC c, s
TEST ACCUMULATOR CONTENTS
(BRANCH / BRANCH ON MINUS /
COMPARE / JUMP CONDITIONAL)

if (acc) < 0 go to nn
else go to next instruction
4
SFT xy . ASR b
ASL b
ASH r, d
ASHC r, d
SLA m
SRA m
SRL m
SLR d, s
SAR d, s
SHIFT
(acc) <- (acc) left-shifted x places
(acc) <- (acc) right-shifted y places
5
OUT nn OUT . OTDR
OTIR
OUT (C),r
OUT (n),A
OUTD
OUTI
OTR d, s OUTPUT
(output card) <- (nn)
6
STO nn STO nn MOV s, d . STR d, s
STRI d
STORE
(MOVE)

(nn) <- (acc)
7
SUB nn SUB nn SUB s, d SUB s SUB d, s
SUBB d, s
SB d, s
SUBTRACT
(acc) <- (acc) - (nn)
8
JMP nn BR nn JMP nn JP nn BR nn JUMP
(BRANCH)

go to nn
9
HRS nn HLT HALT
WAIT
RESET
HALT . HALT AND RESET
halt
(PC) = nn
Comparison of CARDIAC to other assembly languages.

Notation:
(...) = contents of ...
acc = accumulator
nn = memory address
PC = program counter
See the references below for more detailed descriptions of other operand abbreviations.

References for the above table:
VVM:
http://www.cba.uri.edu/faculty/vvm/coding.html (4-21-05)
PDP-11:
http://www.dgp.toronto.edu/~ajr/258/pdp11.pdf (4-29-05)
Z80:
http://www.ticalc.org/pub/text/z80/z80iss.txt (4-21-05)
http://www.worldofspectrum.org/Z80.html (4-29-05)
http://www.doc.ic.ac.uk/~mjg103/mirrors/www.hszk.bme.hu_~pg429_z80guide/part2.htm (4-29-05)
http://www.z80.info/z80inst.txt (4-29-05)
1750A:
http://wwwold.utmc.com/products/1750riscassy.pdf (4-27-05)
http://mssls7.mssl.ucl.ac.uk/sw/mil-std-1750a.txt (4-29-05)

The CARDIAC manual has some shortcomings regarding some CARDIAC instructions: