CARDboard Illustrative Aid to Computation
Encyclopedia
Cardiac was a learning aid developed by David Hagelbarger and Saul Fingerman for Bell Telephone Laboratories
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...

 in 1968 (Copyright 1966, 1968) to teach high school students how computers work. The kit consisted of an instruction manual and a die-cut cardboard "computer".

The computer "operated" by means of pencil and sliding cards. Any arithmetic was done in the head of the person operating the computer. The computer operated in base 10 and had 100 memory cells which could hold signed numbers from ±0 to ±999. It had an instruction set of 10 instructions which allowed CARDIAC to add, subtract, test, shift, input, output and jump.

Hardware

The “CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

” of the computer consisted of 4 slides that moved various numbers and arrows to have the flow of the real CPU (the user's brain
Brain
The brain is the center of the nervous system in all vertebrate and most invertebrate animals—only a few primitive invertebrates such as sponges, jellyfish, sea squirts and starfishes do not have one. It is located in the head, usually close to primary sensory apparatus such as vision, hearing,...

) move the right way. They had one flag (+/-), affected by the result in the accumulator.

Memory
Computer memory
In computing, memory refers to the physical devices used to store programs or data on a temporary or permanent basis for use in a computer or other digital electronic device. The term primary memory is used for the information in physical systems which are fast In computing, memory refers to the...

 consisted of the other half of the cardboard cutout. There were 100 cells. Cell 0 was “ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

”, always containing a numeric "1"; cells 1 to 98 were “RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

”; available for instructions and data; and cell 99 could best be described as “EEPROM
EEPROM
EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...

”.

Memory cells held signed decimal
Decimal
The decimal numeral system has ten as its base. It is the numerical base most widely used by modern civilizations....

 numbers from ±0 to ±999 and were written with a pencil. Cells were erased with an eraser. A “bug” was provided to act as a program counter, and was placed in a hole beside the current memory cell.

Programming

CARDIAC had a 10 instruction machine language. An instruction consisted of three decimal digits (the sign is ignored). The first digit was the op code (O), the second and third digits was an address (A). Addressing was one of accumulator to memory absolute, absolute memory to accumulator, input to absolute memory and absolute memory to output.

OAA

High level languages were never developed for CARDIAC, since they would defeat one of the purposes of the device, to introduce concepts of assembly language programming.

Programs were hand assembled, then written, by pencil into the appropriate memory cells.

Instruction Set

CARDIAC Instruction Set
Opcode Mnemonic Instruction Description
0 INP Input take a number from the input card and put it in a specified memory cell.
1 CLA Clear and add clear the accumulator and add the contents of a memory cell to the accumulator.
2 ADD Add add the contents of a memory cell to the accumulator.
3 TAC Test accumulator contents performs a sign test on the contents of the accumulator; if minus, jump to a specified memory cell.
4 SFT Shift shifts the accumulator x places left, then y places right, where x is the upper address digit and y is the lower.
5 OUT Output take a number from the specified memory cell and write it on the output card.
6 STO Store copy the contents of the accumulator into a specified memory cell.
7 SUB Subtract subtract the contents of a specified memory cell from the accumulator.
8 JMP Jump jump to a specified memory cell. The current cell number is written in cell 99. This allows for one level of subroutines.
9 HRS Halt and reset move bug to the specified cell, then stop program execution.

Operation

Programs were run by first sliding three slides so that the number in the instruction register equaled the number in the memory cell the bug was sitting in. Once that was done the bug was moved to the next memory cell. The user then followed an arrow which would then tell them what to do next. This would continue for all of program execution.

External links

  • http://www.sourceforge.net/projects/cinc/ - a simulator for the Java platform, with both command-line and GUI interfaces, is a Sourceforge
    SourceForge
    SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

    project called jcinc.
  • http://www.kaleberg.com/software/cardiac/ - a simulator hosted on Macintosh, Windows (untested), and Linux (untested). Simulator provides editor, simple assembler, and examples. As described on the page, opcodes 0 and 9 are interchanged. Simulator source code appears to be proprietary, free downloads.
  • http://www.youtube.com/watch?v=CW96m7R0u-s

For sale
  • http://www.porticus.org/bell/belllabs_kits_cardiac.html
  • http://www.scientificsonline.com/cardiac-illustrated-computation-aid.html
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK