BOX-256 is a game played by writing assembly code to pass graphics tests.
BOX-256 was released for Windows and as an in-browser game by Juha Kiili in April 2016. The first release includes 4 puzzles. v1.1 adds another 8 puzzles and two new opcodes.
The BOX-256 virtual CPU supports 13 instructions:
|MOV A B C||copy C cells from A to B|
|PIX A B||display a pixel of colour B in location A|
|FLP A B C||exchange C cells at A and B|
|ADD A B C||Set C = A + B|
|SUB A B C||Set C = A - B|
|MUL A B C||Set C = A * B|
|DIV A B C||Set C = A / B|
|MOD A B C||Set C = A % B (added in v1.1)|
|JMP A||jump to the instruction at A|
|JEQ A B C||jump to the instruction at C if A = B|
|JNE A B C||jump to the instruction at C if A != B (added in v1.1)|
|JGR A B C||jump to the instruction at C if A > B|
|THR A||start a new thread at A|
There are three different addressing modes:
The instruction pointer is stored in address @FF. The instruction pointer for any additional threads is stored at @FE, @FD, etc.
The following example displays a checkerboard pattern:
FLP @16 @17 001 PIX 000 @17 000 ADD 010 @05 @05 JGR @05 00F @00 ADD 001 @05 @05 JMP @04 002 003