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