= = = DUO BASIC DESCRIPTION = = =

Design by Jack EisenmannNote that blue words are listed in the glossary at the bottom of this page.

The DUO Basic is a simple 8 bit computer made from 7400 series chips. With additional registers and unbounded word size, the computer would be Turing complete. The DUO Basic is intended for educational purposes to demonstrate principles of digital logic.

The computer has 256 bytes of EEPROM for program storage. The DUO Basic also has an accumulator (A), a general purpose register (B), and a program counter (PC). The machine does not contain RAM.

= = = INSTRUCTION SYNTAX = = =

Each DUO Basic instruction is 2 bytes long and has the following format:

[2 bit operation] [3 bit source] [3 bit destination] [8 bit constant]

Operation may be 01 for MNZ (move if not zero) or 10 for ADD. MNZ will copy data from source to destination only if A register is not zero. ADD will add source and A register then store the result in destination.

Source may be 011 for A register, 101 for B register, or 110 for instruction constant.

Destination may be 100 for A register, 010 for B register, or 001 for program counter. Note that the program counter is incremented after each operation is executed, so jump instructions must be adjusted accordingly.

= = = GLOSSARY = = =

7400 series chip: A group of transistor-transistor logic and complimentary metal oxide semiconductor integrated circuits. These chips are used to perform basic digital logic operations.

8 bit computer: A computer whose word size is 8 bits.

Accumulator: A kind of register used for intermediate arithmetic operations.

Bit: The smallest indivisible unit of memory in a computer. A bit may either be a 0 or a 1.

Byte: A collection of typically 8 bits.

Digital logic: Boolean operations involving the manipulation of bits.

EEPROM: Stands for electronically erasable and programmable read only memory.

Instruction: A binary value which indicates a calculation for the computer to perform.

Jump: Write a value to the program counter so a remote instruction may be interpreted.

Program counter: Memory which points to the current instruction being executed.

RAM: A large array of memory locations.

Register: A location in a processor where a small amount of data is held.

Turing complete: Able to simulate any universal Turing machine. In practical terms, a Turing complete system can perform any calculation.

Word: The largest amount of data which a processor may handle in one operation.