The machine's EEPROM stores 256 nyckles (groups of 5 bits) which comprise the computer's commands. These nyckles are called in order and are handled by the command parser, which stores the commands and arguments in temporary registers. Once the registers have been properly filled, the ALU performs some operation on the data and stores the result in the RAM or another special register. The RAM contains 16 nybbles (groups of 4 bits), and is read by the command parser.
The machine's output is an 8 by 8 matrix of LED's. The display is driven by VRAM, which contains 8 bytes (groups of 8 bits). The machine's input is a set of 4 buttons. The current implementation of the architecture allows the input to be expanded to include as many as 64 buttons.
= SYNTAX =Commands are composed of either 3 or 4 nyckles, and are stored sequentially in the EEPROM. The first nyckle is the command name and determines the command to execute. The first bit of this nyckle is called the conditional bit. If the conditional bit is set to 1, and if the boolean bit (a register modified by various commands) is set to 0, then the command will be skipped.
The command name nybble determines which action to perform and how many arguments will follow. Each argument consists of a call bit and a data nybble. If the call bit is set to 0, then the data nybble itself is used as the argument. If the call bit is set to 1, then the nybble is used to access data in RAM which in turn is used as the argument.
= COMMANDS =
0000- EQUAL (number) (number)
If the arguments are equal, then the boolean bit is set to 1; else, it is set to 0.
0001- UNEQUAL (number) (number)
If the arguments are equal, then the boolean bit is set to 0; else, it is set to 1.
0010- GREATER (number) (number)
If the first argument is greater than the second argument, then the boolean bit is set to 1; else, it is set to 0.
0011- GOTO (address) (address)
Skips command execution to the given address.
0100- WRITE (data) (destination)
Writes data to the given location in RAM.
0111- INPUT (device input address) (destination)
Outputs the device input address and writes the device input at the given RAM address.
1000- OUTPUT (data) (data) (device output address)
Writes the data at the given device output address.
1100- ADD (number) (number) (destination)
Adds the numbers and stores the result in the given RAM address.
1101- BITON (nybble) (bit address) (destination)
Sets the bit at the address in the nybble to 1, then stores the result in the given RAM address. Note: the digit addresses are ordered from most significant to least significant.
1110- BITOFF (nybble) (bit address) (destination)
Sets the bit at the address in the nybble to 0, then stores the result in the given RAM address.
1111- BITGET (nybble) (bit address) (destination)
Retrieves the bit at the address in the nybble, then stores the bit in the given RAM address.