This kernel will test almost all DCPU-16 instructions for emulation accuracy. To facilitate the testing, the module reconstructs all instructions, such as multiplications, using other instructions, such as shifts and adds, to verify their consistency. List of exceptions: - Because the specs are ambiguous about how the EX should be set in ADX and SBX, this is only tested in an incomplete manner, - The AND and BOR instructions are assumed to work properly. Their action is not verified; only that they handle the operands properly. - If the ADD instruction is improperly implemented, almost every instruction will fail. - The program requires quite a few instructions to work, such as JSR, for its own sake. - Conditional operations (IFB, IFE and so on) are not tested yet. - HWI and IAQ are not tested. - Certain combinations of PUSH, POP, PEEK, PICK, SP, and [SP] operands are not tested. - IRQ behavior is not tested, nor any hardware. The application expects to find a monitor and hopefully also a keyboard. A clock is utilized for blinking the cursor if available. Fun fact: With this tool, I figured out a difficult-to-find bug in my own emulator. Turns out I had used the operand in RFI to select the register to write, even though it should always write to register A.