CARDboard Illustrative Aid to Computation

CARDIAC (CARDboard Illustrative Aid to Computation) is a learning aid developed by David Hagelbarger and Saul Fingerman for Bell Telephone Laboratories in 1968 to teach high school students how computers work. The kit consists of an instruction manual and a die-cut cardboard "computer".

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

Hardware

Front of CARDIAC device

The “CPU” of the computer consists of 4 slides that move various numbers and arrows to have the flow of the real CPU (the user's brain) move the right way. They have one flag (+/-), affected by the result in the accumulator.

Memory consists of the other half of the cardboard cutout. There are 100 cells. Cell 0 is “ROM”, always containing a numeric "1"; cells 1 to 98 are “RAM”; available for instructions and data; and cell 99 can best be described as “EEPROM”.

Memory cells hold signed decimal numbers from 0 to ±999 and are written with a pencil. Cells are erased with an eraser. A “bug” is provided to act as a program counter, and is placed in a hole beside the current memory cell.

Programming

CARDIAC has a 10 instruction machine language. An instruction is three decimal digits (the sign is ignored) in the form OAA. The first digit is the op code (O); the second and third digits are an address (AA). Addressing is one of accumulator to memory absolute, absolute memory to accumulator, input to absolute memory and absolute memory to output.

High level languages have never been developed for CARDIAC as they would defeat one of the purposes of the device: to introduce concepts of assembly language programming.

Programs are hand assembled and then are penciled into the appropriate memory cells.

Instruction Set

CARDIAC Instruction Set
OpcodeMnemonicInstructionDescription
0INPInput take a number from the input card and put it in a specified memory cell.
1CLAClear and add clear the accumulator and add the contents of a memory cell to the accumulator.
2ADDAdd add the contents of a memory cell to the accumulator.
3TACTest accumulator contents performs a sign test on the contents of the accumulator; if minus, jump to a specified memory cell.
4SFTShift shifts the accumulator x places left, then y places right, where x is the upper address digit and y is the lower.
5OUTOutput take a number from the specified memory cell and write it on the output card.
6STOStore copy the contents of the accumulator into a specified memory cell.
7SUBSubtract subtract the contents of a specified memory cell from the accumulator.
8JMPJump jump to a specified memory cell. The current cell number is written in cell 99. This allows for one level of subroutines by having the return be the instruction at cell 99 (which had '8' hardcoded as the first digit.
9HRSHalt and reset move bug to the specified cell, then stop program execution.

Operation

Programs are run by first sliding three slides so that the number in the instruction register equals the number in the memory cell the bug is sitting in. Once that is done the bug is moved to the next memory cell. The user then follows an arrow which will then tell them what to do next. This continues for all of program execution.

User Group

There are user groups for the CARDIAC on Facebook, Google+ and Yahoo

gollark: 100 is the average IQ. Anyone above a tiny age is likely to have access.
gollark: Besides, that's likely to result in massive censorship.
gollark: Also against.
gollark: i̶ ͠w̍ảt̓c̆h̨ȅd̎ ͪt͋h҉eͤ ̫a̔c̸t̥u̼àl̰ ̕r̩e̯w̠ịnͬd̵ ̒a̲n͡d̠ ͮḓi̋d̕ ̇n͗òtͧ ͣg̕ḛt͢ ͠h̰ów̓ ̂i̒t̮ ̄m͠a̤n̡åg̨e͌d̀ ̥tͩo̘ ͗g̎e̠t̑ ͠t̲h̨ät͕ ̳m̟uͧc͢h̍ ̉d͋iͩsͯl̝i̔k̤e̺s̀.̔ ̳i͐ ̷dͫǐs͕l͒ḯk͙e̊d̀ ͦi͜tͪ ͙b̒e̽c͒ḁuͪs̸e̽ ̇i̍t̞ ̸w͆aͧš ̔c̄r̴ȉn̿g͉eͮy͠ ̻a̒n͜dͦ ̽o̫b̪nͨo͑x̀ỉōǘs͕ ͥb̨u̖t̳ ͊p̒e̍o̧p̆ĺe͜ ͦṃuͫst have liked it because mainstream people like fortnite and other cringey stuff in this video.many comm҉ents say "i do not kn҉ow any of these gu҉ys" but i think featuring creators from all over the world is quite a good idea (executed awfully). if all rewinds had always the same people it would not be interesting at all.and guess what҉ is worse and more cringey than the actual rewind? the ҉pewdiepie one!
gollark: Because you're STOOPID.

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.