Reconstructed CPU from my old account

I saw this photo from my old account, @Mark_LucasIII.

This inspired me to somehow reconstruct it, but with my current Snap! knowledge.
You can report bugs here, as always

bugs

Value isn’t in the context of the list with the command definitions
OUT spills output to all items of column

I have worked hard and waited hard i think? T^:
AND NOW, \textcolor{#ff0000}{\mathscr{THE\ PROJECT}}

Command list:

Command Description
NOP Does nothing.
RTT X Puts register number X into temp.
TTR X Puts temp in register number X.
VLT X Puts a value in temp.
ADD X Adds a value to temp.
SUB X Subtracts a value from temp.
MUL X Multiplies temp by X
DIV X Divides temp by X.
ADR X Adds register number X into temp.
SBR X Subtracts register number X from temp.
MLR X Multiplies temp by register number X.
DVR X Divides temp by register number X.
JMP X Jumps X-16 commands (so JMP 0 jumps back -16 commands and JMP 31 jumps forward 15 commands).
BRN X Jumps X-16 commands if temp is negative.
BRZ X Jumps X-16 commands if temp is 0.
BRO X Jumps X-16 commands if temp is greater than 32.
INP Gets input from 5 buttons (up, down, left, right, and middle).
OUT Outputs a character that may be shifted on the current position of the text cursor.
CSH Toggles the shiftedness of characters (so character 15 unshifted is 0 and character 15 shifted is ]).
POS X Y Set position of text cursor to (X,Y).
PUT X Input X into the peripheral.
GET Get the last output from the peripheral.
AND X Set temp to the bitwise AND of it and register number X.
NOT Set temp to the bitwise NOT of itself.
OR X Set temp to the bitwise OR of it and register number X.
XOR X Set temp to the bitwise XOR of it and register number X.
SHL Bitwise shifts left temp by 1 bit, without adding anything to the right. (Equivalent to temp*2.)
SHR Bitwise shifts right temp by 1 bit, without adding anything to the left.
SLC Bitwise shifts left temp by 1 bit, but adds the overflow flag (from BRO) to the right.
SRC Bitwise shifts right temp by 1 bit, but adds the overflow flag (from BRO) to the left.
SWT X Y Switches the contents of registers numbers X and Y.
HLT Halts the program.

You should probably add a “condition” parameter to JMP so you don’t have to have four variants

If i had a parameter for that only 4 inputs values will be used and I don’t like that empty space

Empty space is good! Empty space is there so you don’t have to worry about screwing yourself over in the future.

Maybe I could change the inputs in the jumps to 10 bits(-512\text{\ to\ }511) so that you’re not limited to -16\text{\ to\ }16.