| Opcode |
Assembler syntax |
Description |
| 000 |
brk |
Stop machine |
| 1xx |
ld (@label or address) |
Load value from address, push to stack |
| 2xx |
st (@label or address) |
Pop value from stack, store at address |
| 4xx |
jsr (@label or address) |
Push program counter to stack, jump to address |
| 5xx |
jmp (@label or address) |
Jump to address |
| 6xx |
jz (@label or address) |
Jump to address if stack top is zero |
| 7xx |
jlz (@label or address) |
Jump to address if stack top is negative |
| 8xx |
io (device):(device port) |
Send stack top to device |
| 800 |
out |
Print stack top as number |
| 801 |
printch |
Print stack top as ASCII character |
| 301 |
dup |
Copy stack top |
| 302 |
drop |
Remove stack top |
| 303 |
swap |
Swap two top stack values |
| 304 |
ovr |
Push to stack value before top |
| 310 |
rnd |
Push random number to stack |
| 311 |
add |
Pop 2 numbers, add, push result to stack |
| 312 |
sub |
Pop 2 numbers, subtract, push result to stack |
| 313 |
and |
Pop 2 numbers, apply logical AND, push result to stack |
| 314 |
or |
Pop 2 numbers, apply logical OR, push result to stack |
| 315 |
xor |
Pop 2 numbers, apply logical XOR, push result to stack |
| 316 |
rsh |
Pop 2 numbers, apply right bitshift, push result to stack |
| 317 |
lsh |
Pop 2 numbers, apply left bitshift, push result to stack |
| 318 |
inc |
Add 1 to stack top |
| 319 |
dec |
Subtract 1 from stack top |
| 321 |
neg |
Change stack top sign |
| 322 |
inv |
Invert stack top bits |
| 330 |
ji |
Pop address from stack, jump to address |