The design for a simple portable computer that only requires a pencil and a sheet of paper.

The computer consists of a sheet of paper that contains both the program as well as the state of the program during each step of the evaluation.
- A pen, or pencil
- A sheet of paper

Register Machine Emulator
The pen, representing the program counter, is positioned at the first line of the program. The instruction on that line is processed by modifying the value of a register, or checking if a register is Zero and then moving to the next instruction. The evaluation stops upon reaching a halt or empty instruction.
CLR(r)
: Set register r to Zero.INC(r)
: Add 1 to the register r.DEC(r)
: Subtract 1 from register r.CPY(a, b)
: Copy the register a in register b.JZ(r, i)
: If register r is Zero, jump to instruction i.JE(a, b, i)
: If the registers a and b are equal, jump to instruction i.

Rewriting Machine Emulator
Programs are written as a set of rules, and the initial content of a unordered bag. During evaluation, rules are tested in a sequence from the first to the last, when the bag contains a rule's left-side, the symbols are replaced by those in the right-side, and search for the next rule starts back again from the beginning.
The advantages over the register machine are that it has only one operation, and does away with textual language altogether. To find more exciting programs, see the Pocket Rewriting Computer.
LHS -> RHS
: Replace the LHS with the RHS.

Multiplication Arithmetic Unit
A visual multiplication program that relies on counting the intersection of lines to get the product from multiplication of large numbers. For digits larger than 4, lines of a different color, or folds in a different direction, can reduce clutter.

Addition Arithmetic Unit
A visual addition program that relies on nomography to get the sum from two numbers.

Random Memory Access
A key-pair database with 16 cells of memory can be made with a paku-paku(fortune teller), assigning a two-part notation with a key for each of the four outside faces, and eight inside faces, can make memory reading/writing more efficient.

Logic Gates
Functionaly logic gates can be implemented in flat origami as described by Inna Zakharevich's paper. I keep a copy of the instructions here.

Randomness Generator
Useful little trick to make a quick dice by marking the end of a six-sided pencil with the nail of your thumb or a sharp edge. As to not damage the lead, it's probably best to roll on a soft surface.
incoming hpda nibble dice paper data storage virtual machines uxn devlog