Cheat Sheet
Movement
<>^v Change Cursor Direction
/\|_# Reflect the cursor direction
x Change cursor directon randomly
! Skip the next instruction, moving 2 spaces instead of 1
? Pop 1 value of the stack, if it's 0 skip the next instruction and move forward 2 spaces.
. Pop 2 values of the stack then move to that position.
Literals
0123456789 Push the number (0-9)
abcdef Push the number in hexadecimal (10-15)
+-*% Pop 2 values of the stack then perform the given operation.
, Divide the top 2 values of the stack.
= Pop 2 values of the stack, push 1 if they are equal and 0 otherwise
)( Greater than, less than. Push 1 or 0 to the stack.
'" Enable or disable string parsing mode. In string parsing mode all characters are pushed to the stack instead of executed.
Stack
: Duplicate the top item on the stack
$ Move the top element of the stack back 1
~ Delete the top element of the stack
@ Move the top element of the stack back 2
{} Shifts the entire stack left or right
r Reverse the stack
l Push the length of the stack to the stack
[ Pop N from the stack, then create a new stack containing the top N elements of the old stack.
] Go back to the previous stack, adding all elements of the top stack back to it.
IO
n output a number in decimal
i read a character
Other
& If the register is empty, pop the top element of the stack and move it to the register. Else push the value of the register to the stack.
g Pop the top 2 elements then push the code value at that position
p Pop a postion and a value from the stack, then write the character to that position in the code.
; Halt