Tesla-A4D8 Micro Micromanagement Computer
Description:
The T-A4D8 is one of the smallest computers on Powder Toy at 84x54 pixels in size.
The operations the A4D8 has available to it are limited, but it makes up for it in its small size, relatively high speed, and compact data I/O.
Physical:
The T-A4D8 has four registers, PC, A, B, and C. PC is 4-Bit, and A, B , and C are 8-Bit.
The A4D8 has one flag, the Overflow ('o') flag.
ROM:
The A4D8 has two 8-bit, 16 byte banks of embedded Read Only Memory.
The active bank switches when the Program Counter overflows, or the BS instruction is encountered.
The ROM is stored in a 16-bit format, with the low byte for bank one and the high byte for bank two.
Example:
If you wanted to store an '18' in bank 2 and an '2C' in bank 1, you would write an "182C" to the first pixel of the drive.
Pinout:
The T-A4D8 has two I/0 ports
The input port, located on the top right, takes an 8-Bit raw spectra number.
The output port, located on the bottom right, outputs an 8-Bit raw spectra number.
Commands:
The A4D8 uses only the low nybble in its instructions, leaving the high nybble mainly unused. The jp a4 opcode is an exception, using the high nybble as the parameter.
bs
Bank Switch
ld
Load a value into a register.
Add
Add a value to A. The result is stored in A.
Inv
Invert a register or flag
Inc
Increment a register's value
jp
Jump to a point in the program
Opcodes:
|Decimal
| |Hexidecimal
| | |Binary
| | | |Effects flag
| | | | |Length in bytes
| | | | | |Mneumonic
|00|0|0000|0|1|bs
|01|1|0001|1|1|ld a,Input
|02|2|0010|0|1|ld Output,b
|03|3|0011|1|2|ld a,d8
|04|4|0100|0|2|ld b,d8
|05|5|0101|1|1|ld a,b
|06|6|0110|0|1|ld b,a
|07|7|0111|0|1|ld c,a
|08|8|1000|1|1|ld a,c
|09|9|1001|o|1|add a,b
|10|A|1010|o|1|inc a
|11|B|1011|0|1|inc b
|12|C|1100|o|1|inv a
|13|D|1101|o|1|inv o
|14|E|1110|0|1|jp a4
|15|F|1111|0|1|jp no,a4
Flags:
0:Does not effect flags
o:Sets flag based on state
1:Sets defined flag