Note: Anything described as (Experimental) has not yet been debugged and should be avoided until no longer marked as experimental.
Cmd | Name | Stack (Bot->Top) | Result (Stack) / Description |
---|---|---|---|
SPC | Space | Empty Cell | |
! | Not | a | Push 0 if a is non-zero, 1 otherwise. |
" | Stringmode | Toggle "Stringmode" | |
# | Bridge | 'jumps' over next command | |
$ | Pop | a | Does nothing |
% | Modulo | a b | a % b |
& | Input Int | value inputted | |
* | Multiply | a b | a * b |
+ | Add | a b | a + b |
, | Output Char | a | Output a as char. |
- | Subtract | a b | a - b |
. | Output Int | a | Output a as int. |
/ | Divide | a b | a / b (int div) |
0-9 | 0-9 | Push decimal value 0-9 to thread stack. | |
: | Dup | a | a a |
< | Left | PC -> Left | |
> | Right | PC -> Right | |
? | Random | PC -> Up, down, left, or right. | |
@ | End Thread | Ends any thread that touches it. If no threads are left, the program quits with a return code of 0. | |
\ | Swap | a b | b a |
^ | Up | PC -> Up | |
_ | Horizontal If | a | PC -> Left if a is non-zero, PC -> Right if a is zero |
` | Greater | a b | 1 if a > b , 0 otherwise |
a-f | a-f | Push decimal value 10-15 to thread stack. | |
g | Get | x y | value at grid(x,y) |
h | Hex | a b | Push a*16+(b%16) to thread stack. |
i | Push to Common Stack | a b | Push a to common stack b%16. |
j | Jump | d x y | move to location x,y on grid, use d as delta in format deg/90. |
k | Keep At | a | Do Nothing, not even move, until there are no 'threads' with label value a. |
l | Label | a | (Re-)Label 'thread' with value a. |
m | Clear a Common Stack | a | Clear Common Stack (a%16). |
n | Clear Stack | Clears thread stack. | |
o | Pop from Common Stack | b | Pop a from common stack b%16, and then Push a to thread stack. |
p | Put | a x y | puts a at grid(x,y) |
q | Quit | r | Quit the program with a return code of abs(r)%256. |
r | Reflect | Reverses Delta (180 degree turn). | |
s | Load Grid and Restart | (Experimental) Read xmax*ymax bytes from input and store to playfield, and reinitialize program. | |
t | Split | Start a new thread traveling in the direction 180 degrees from current. | |
u | Get Delta | Push delta to thread stack in format deg/90. | |
v | Down | PC -> Down | |
w | Wait | a | Do Nothing, not even move, until there are at most (a+1) threads. |
x | Hex with 8-bit output | a b | Push (a%16)*16+(b%16) to thread stack. |
y | Set Delta | a | Set delta to a in format deg/90. |
z | No Op | Does Nothing except use up a cycle. | |
| | Vertical If | a | PC -> Up if a is non-zero, PC -> Down if a is zero |
~ | Input Char | Char entered. |