Instruction | Opcode | Displacement Level | Displacement Address | Data | Effect |
start | 0xA0 | - | - | - | mark the program entry point from which execution begins |
load constant | 0xA1 | - | - | constant value | load a constant value onto the top of the stack (push) |
load data | 0xA2 | * | * | - | load a variable from given displacement level and displacement address onto the top of the stack (push) |
store data | 0xA3 | * | * | - | store the top of the stack in a variable at given displacement level and displacement address (pop) |
call intrinsic function | 0xA4 | - | function code | - / 1.0 | call/execute the intrinsic function with the given function code some instructions might need the instruction data value to be set to 1.0 |
call user function | 0xA5 | * | * | parameters | call/execute the user-defined function at given displacement level and displacement address with the given number of parameters (which must already have been pushed onto the stack) |
unconditional jump | 0xA6 | - | absolute address | - | jump to the given address |
jump if false | 0xA7 | - | absolute address | - | jump to the given address if the topmost value of the stack is "false" |
increment stack address | 0xA8 | - | elements | - | increment the current top of the stack by the number of given elements |
stop | 0xA9 | - | - | - | stop/end program run/execution |
return | 0xAA | - | return value | parameters | returns the program flow from its current function, marking if a return value is located on the stack (true/false) and the number of the function's parameters |
no operation | 0xAB | - | - | - | |
reset | 0xAC | - | - | - | resets the programm to its initial state (for restart) |
clear top of stack | 0xAD | - | - | - | remove the topmost value from the stack (pop) - equivalent to decrementing the stack address by 1 |
decrement stack address | 0xAE | - | elements | - | decrement the current top of the stack by the number of given elements |
hold process | 0xAF | - | - | - | pause program execution (only useful for debugging) |
arithmetical negation | 0xB0 | - | - | - | multiplies the topmost value of the stack with -1 |
raise to power | 0xB1 | - | - | - | raises the second value on the stack to the power of the topmost value |
division | 0xB2 | - | - | - | divides the second value on the stack by the topmost value |
multiplication | 0xB3 | - | - | - | multiplies the two topmost values on the stack |
modulo | 0xB4 | - | - | - | calculates the rest of the division of the second value on the stack by the topmost value |
addition | 0xB5 | - | - | - | adds the two topmost values on the stack |
subtraction | 0xB6 | - | - | - | subtracts the topmost value on the stack from the second value on the stack |
increment by 1 | 0xA7 | - | - | - | increment the topmost value on the stack by 1 |
decrement by 1 | 0xB8 | - | - | - | decrement the topmost value on the stack by 1 |
compare if equal | 0xB9 | - | - | - | evaluates if the two topmost values on the stack are identical (true/false) |
compare if not equal | 0xBA | - | - | - | evaluates if the two topmost values on the stack are not identical (true/false) |
compare if less than | 0xBB | - | - | - | evaluates if the second value on the stack is less than the topmost value (true/false) |
compare if less than or equal | 0xBC | - | - | - | evaluates if the second value on the stack is less than or equal to the topmost value (true/false) |
compare if greater than | 0xBD | - | - | - | evaluates if the second value on the stack is greater than the topmost value (true/false) |
compare if greater than or equal | 0xBE | - | - | - | evaluates if the second value on the stack is greater than or equal to the topmost value (true/false) |
logical exclusive or | 0xBF | - | - | - | does a logical exclusive or comparison of the two topmost values on the stack |
logical inclusive or | 0xC0 | - | - | - | does a logical inclusive or comparison of the two topmost values on the stack |
logical and | 0xC1 | - | - | - | does a logical and evaluation of the two topmost values on the stack |
logical negation | 0xC2 | - | - | - | logically inverts the topmost value on the stack |
exit | 0xC3 | - | - | - | retrieves the exit status of the program from the top of the stack (should be followed by "stop") |
create block activation record | 0xC4 | - | - | - | creates a block activation record for non-function blocks |