Opcode |
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Description |
nop |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
no operation |
<<0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
left shift 1 bit and bring in a 0 |
<<1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
left shift 1 bit and bring in a 1 |
<<msb |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
left shift 1 bit and rotate the msb into the lsb |
0>> |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
right shift 1 bit and bring in a 0 |
1>> |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
right shift 1 bit and bring in a 1 |
msb>> |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
right shift 1 bit and keep the msb the same |
lsb>> |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
right shift 1 bit and rotate the lsb into the msb |
dup |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
push a duplicate of the top of the data stack onto the data stack |
r@ |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
push a duplicate of the top of the return stack onto the data stack |
over |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
push a duplicate of the next-to-top of the data stack onto the data stack |
+c |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
push the carry bit from N+T onto the data stack |
-c |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
push the carry bit from N-T onto the data stack |
swap |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
swap the top and the next-to-top of the data stack |
+ |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
pop the stack and replace the top with N+T |
- |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
pop the stack and replace the top with N-T |
0= |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
replace the top of the stack with "0xFF" if it is "0x00" (i.e., it is zero), otherwise replace it with "0x00"
| 0<> |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
replace the top of the stack with "0xFF" if it is not "0x00" (i.e., it is non-zero), otherwise replace it with "0x00"
| -1= |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
replace the top of the stack with "0xFF" if it is "0xFF" (i.e., it is all ones), otherwise replace it with "0x00"
| -1<> |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
replace the top of the stack with "0xFF" if it is not "0xFF" (i.e., it is not all ones), otherwise replace it with "0x00"
| return |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
return from a function call |
inport |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
replace the top of the stack with the contents of the specified input port |
outport |
0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
write the next-to-top of the data stack to the output port specified by the top of the data stack |
>r |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Pop the top of the data stack and push it onto the return stack |
r> |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
Pop the top of the return stack and push it onto the data stack |
& |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
pop the stack and replace the top with N & T |
or |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
pop the stack and replace the top with N | T |
^ |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
pop the stack and replace the top with N ^ T |
nip |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |
pop the next-to-top from the data stack |
drop |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
drop the top value from the stack |
1+ |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Add 1 to T |
1- |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
Subtract 1 from T |
store |
0 | 0 | 1 | 1 | 0 | 0 | 0 | b | b |
Store N in the T'th entry in bank "bb", drop the top of the data stack |
fetch |
0 | 0 | 1 | 1 | 0 | 1 | 0 | b | b |
Exchange the top of the stack with the T'th value from bank "bb" |
store+ |
0 | 0 | 1 | 1 | 1 | 0 | 0 | b | b |
Store N in the T'th entry in bank "bb", nip the data stack, and increment T |
store- |
0 | 0 | 1 | 1 | 1 | 0 | 1 | b | b |
Store N in the T'th entry in bank "bb", nip the data stack, and decrement T |
fetch+ |
0 | 0 | 1 | 1 | 1 | 1 | 0 | b | b |
Push the T'th entry from bank "bb" into the data stack as N and increment T |
fetch- |
0 | 0 | 1 | 1 | 1 | 1 | 1 | b | b |
Push the T'th entry from bank "bb" into the data stack as N and decrement T |
jump |
0 | 1 | 0 | 0 | x | x | x | x | x |
Jump to the address "x_xxxx_TTTT_TTTT" |
jumpc |
0 | 1 | 0 | 1 | x | x | x | x | x |
Conditionally jump to the address "x_xxxx_TTTT_TTTT" |
call |
0 | 1 | 1 | 0 | x | x | x | x | x |
Call the function at address "x_xxxx_TTTT_TTTT" |
callc |
0 | 1 | 1 | 1 | x | x | x | x | x |
Conditionally call the function at address "x_xxxx_TTTT_TTTT" |
push |
1 | x | x | x | x | x | x | x | x |
Push the 8-bit value "xxxx_xxxx" onto the data stack. |