## Imagine a computer harnessing the natural behavior of natural systems and utilizing their behaviors to solve equations.

Every one knew how laborious the usual method is of attaining to arts and sciences; whereas, by his contrivance, the most ignorant person, at a reasonable charge, and with a little bodily labour, might write books in philosophy, poetry, politics, laws, mathematics, and theology, without the least assistance from genius or study. ~

### Color Computer

Non-electronic computers that work when you color them according to a simple set of rules. The booklet contains three series of computers: computers that compare, computers that count, and computers that play. From a technical standpoint they are all NOR-based logic circuits designed by using truth tables, karnaugh maps, and maxterm expansions.

From a social, political, and environmental perspective, these computers are an exploration of computation without electricity and semiconductors, an attempt to reinvent digital systems away from efficiency and productivity, and a hopeful prototype to expose the inner workings of computers.~

### Nomograms

A nomogram is a graphical calculating device, a two-dimensional diagram designed to allow the approximate graphical computation of a function. Each variable is marked along a scale, and a line drawn through known scale values (or a straightedge placed across them) will cross the value of the unknown variable on its scale. See also, slide rules.

### Visual Multiplication

The stick method of multiplication involves properly placing and crossing sticks. You simply lay out sticks consistent with the place values of the digits being multiplied. Then, you count the places where the sticks cross.

Example: 62 x 21 = 1302

### Lattice Multiplication

Lattice multiplication is a method of multiplication that uses a lattice to multiply two multi-digit numbers.

Example: 64 x 17 = 1088

### Genaille-Lucas Rods

The right side of the triangle covers the unit digits of a partial product added to a possible carry from the right. The left corner of the triangle is placed in height corresponding to the tens figure of the partial product. Multiplication is done by arranging the rods for the numbers needed, then following the arrows from right to left to read out the result.

### Sliding Blocks

One of the intriguing properties of this strange, nondeterministic kind of logic is that signals can flow both forwards and backwards, and in fact don't even need to respect normal notions of input and output.

Consider the AND mini-puzzle. Suppose the goal is to slide the upper protruding block into the box? The answer is that first the left block and the bottom block must both be slid out one unit. This will let the internal blocks slide to free up space for the upper block to slide in. So, this puzzle does indeed have an AND-like property: both the left and the bottom blocks must slide out before the top one may slide in. The light gray blocks are spacers, which don't ever need to move. ~

### Paper Microfluidics

Fluidics is the construction of computing systems using fluids. Paper microfluidics don't require external pumps or power sources, they can be small, portable, disposable, easy to distribute and operate, low-cost, technically simple to make, and they only need tiny amounts of sample fluid. A minimal setup can be as simple as heating the lines drawn by wax crayon on extra absorbent paper, like cellulose paper and using droplets with food colouring.

- Nomographie
- Deadreckonings
- Paper Phone
- Paper Camera
- Cardtalk Player
- Alligator Calculus
- Sadako
- Sliding Blocks Computers
- Wang Tiles
- Computer Science Unplugged
- Cut & Fold Templates

## The design for a simple portable computer that only requires a pen and a piece of paper.

The computer consists of a sheet of paper that contains both the program as well as a number of data registers, that will be used to represent the contents of the registers.

To begin, the pen, representing the program counter, is positioned at the line `00`

of a program. The instruction in that line is then processed by the user by either moving the pen(program counter), modifying the value of a data register or by checking if a data register has become “empty”(zeroed).

### Primitives

Most models contain a few arithmetic operations and at least one conditional operation. Three base models, each using three instructions, are drawn from the following collection. In addition, a machine usually has a HALT instruction, which stops the machine.

**CLR**(r): CLeaR register r. (Set r to zero.)**INC**(r): INCrement the contents of register r.**DEC**(r): DECrement the contents of register r.**CPY**(rj, rk): CoPY the contents of register rj to register rk leaving the contents of rj intact.**JZ**(r, z): IF register r contains Zero THEN Jump to instruction z ELSE continue in sequence.**JE**(rj, rk, z): IF the contents of register rj Equals the contents of register rk THEN Jump to instruction z ELSE continue in sequence.

The following three counter machine models have the same computational power since the instructions of one model can be derived from those of another:

**INC**(r),**DEC**(r),**JZ**(r, z) —*Minsky (1961, 1967), Lambek (1961)***CLR**(r),**INC**(r),**JE**(rj, rk, z) —*Ershov (1958), Peter (1958)***INC**(r),**CPY**(rj, rk),**JE**(rj, rk, z) —*Elgot-Robinson (1964), Minsky (1967)*

### WDR Instruction Set

The WDR paper computer or Know-how Computer is an educational model of a computer consisting only of a pen, a sheet of paper, and individual matches in the most simple case. The instruction set of five commands is small but Turing complete and therefore enough to represent all mathematical functions: incrementing ("inc") or decrementing ("dec") a register, unconditional jump ("jmp"), conditional jump ("isz", skips next instruction if a register is zero), and stopping program execution ("stp").

Opcode | Description |
---|---|

END | Aborts the execution of your program, so that you can examine the contents of your data registers. |

SKP(r) | Checks if the data register r is zero. If it is zero, the program counter is increased by 2, otherwise the program counter is increased only by 1. |

JMP(z) | Sets the program counter to line number z. |

INC(r) | Increments the contents of the data register r and increases the program counter by 1. |

DEC(r) | Decrements the contents of the data register r and increases the program counter by 1. |

### CARDIAC Instruction Set

CARDIAC (CARDboard Illustrative Aid to Computation) is a learning aid developed for Bell Telephone Laboratories in 1968 to teach high school students how computers work. 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.

Opcode | Instruction | Description |
---|---|---|

INP | Input | take a number from the input card and put it in a specified memory cell. |

CLA | Clear and add | clear the accumulator and add the contents of a memory cell to the accumulator. |

ADD | Add | add the contents of a memory cell to the accumulator. |

TAC | Test accumulator contents | performs a sign test on the contents of the accumulator; if minus, jump to a specified memory cell. |

SFT | Shift | shifts the accumulator x places left, then y places right, where x is the upper address digit and y is the lower. |

OUT | Output | take a number from the specified memory cell and write it on the output card. |

STO | Store | copy the contents of the accumulator into a specified memory cell. |

SUB | Subtract | subtract the contents of a specified memory cell from the accumulator. |

JMP | Jump | 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. |

HRS | Halt and reset | move bug to the specified cell, then stop program execution. |

### Punched card

To encode a WDR program into a 8-bits punched card, we could use 3 bits of space to encode the operation, which leaves 5 bits for the value. This computer's programs uses only 5 operations out of a possible 8, leaving 3 unused.

Binary | Opcode | ||
---|---|---|---|

0 | 0 | 0 | END |

0 | 0 | 1 | SKP |

0 | 1 | 0 | JMP |

0 | 1 | 1 | ADD |

1 | 0 | 0 | SUB |

1 | 0 | 1 | unused |

1 | 1 | 0 | unused |

1 | 1 | 1 | unused |

The following program subtracts from `R1`

and adds to `R0`

until the value of `R1`

is zero. The result of the addition of `R0`

and `R1`

will be stored in `R0`

.

Line | Opcode | Value | Opcode | Hex | ||||||
---|---|---|---|---|---|---|---|---|---|---|

00 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | JMP 03 | $43 |

01 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | ADD R0 | $60 |

02 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | SUB R1 | $82 |

03 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | SKP R1 | $22 |

04 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | JMP 01 | $41 |

05 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | END | $00 |

The binary expression of the operation and value of the previous program can be encoded vertically as the following punched card:

v v v v v v • • • • • • • • • • •

### Ref. 5-bits Table

The following table show the binary table for 32 addressable lines of a program.

00 | 00000 | 08 | 01000 | 10 | 100000 | 18 | 11000 |

01 | 00001 | 09 | 01001 | 11 | 100001 | 19 | 11001 |

02 | 00010 | 0A | 01010 | 12 | 100010 | 1A | 11010 |

03 | 00011 | 0B | 01011 | 13 | 100011 | 1B | 11011 |

04 | 00000 | 0C | 01100 | 14 | 100000 | 1C | 11100 |

05 | 00001 | 0D | 01101 | 15 | 100001 | 1D | 11101 |

06 | 00010 | 0E | 01110 | 16 | 100010 | 1E | 11110 |

07 | 00011 | 0F | 01111 | 17 | 100011 | 1F | 11111 |

## Paper data storage refers to the use of paper as a data storage device.

This includes writing, illustrating, and the use of data that can be interpreted by a machine or is the result of the functioning of a machine.

### Punched Cards

Punched cards would encode alphanumeric characters vertically, the IBM 12-row/80-column punched card format came to dominate the industry. It encoded 960 bits of memory.

### Hex Codes

You can get 3.5 kilobytes per A4 page (font size 12pt, font Inconsolata) and OCR it with gocr at 400DPI.

24x24 ICN Sprite | |
---|---|

0003 6331 397b 77f8 c0f0 f7ff fff0 8003 1c7e feff 0f07 078e f860 0c07 0300 301f 071f 7cf8 f007 7fff dcc0 c000 70f8 f8b0 0f07 4143 677f 7f3e ffe3 87cf cfcf 8703 84c4 8406 0efe fcf8 |

### MICR

E-13B is a magnetic ink character recognition(MICR) code of 14 character, comprising the 10 decimal digits. Westminster is a printing and display typeface inspired by the machine-readable numbers printed on cheques. It's akin to encoding QR code in typography.

### Hamiltonian Cards

The Hamiltonian Cards are generative coloring puzzles where on follows the instructions to reveal their messages. They consist in a grid of squares, each with an arrow of either two types, pointing to another square in a type of sequence called Hamiltonian Path.

Following the path of arrows and coloring each cell that you encounter you will color the whole grid and reveal the hidden picture.

**incoming** noton