AVM opcodes
- EXEC(0x0010), exec statement
- EXIT(0x0020), exit statement
- IN(0x0030), in on port with value, blocking
- IN_SF(0x0031), in on port with value, success and failure alternatives
- IN_F(0x0032), in on port with value, failure only branch
- IN_S(0x0033), in on port with value, success only branch
- IN_NV(0x0034), in on port, signal, blocking
- IN_SF_NV(0x0035), in on port, signal, success and failure alternatives
- IN_F_NV(0x0036), in on port, signal, failure only branch
- IN_S_NV(0x0037), in on port, signal, success only branch
- JUMP(0x0040), jump to label
- LOOP_INF(0x0050), infinite loop
- LOOP_COND(0x0051), loop with conditional statement
- NULL(0x0060), null instruction
- OUT(0x0070), out on port with value, blocking
- OUT_SF(0x0071), out on port with value, success and failure alternatives
- OUT_F(0x0072), out on port with value, failure only branch
- OUT_S(0x0073), out on port with value, success only branch
- OUT_NV(0x0074), out on port, signal, blocking
- OUT_SF_NV(0x0075), out on port, signal, success and failure alternatives
- OUT_F_NV(0x0076), out on port, signal, failure only branch
- OUT_S_NV(0x0077), out on port, signal, success only branch
- PROC(0x0080), proc without conditional statement
- PROC_G(0x0081), proc with conditional statement
- SELECT(0x0090), select instruction
- START(0x00a0); start instruction
- ADD(0x1000), add operands
- SUB(0x1001), subtract operands
- MUL(0x1002), multiply operands
- DIV(0x1003), divide operands
- HEAD(0x1004) get head of a list
- TAIL(0x1005) get tail of a list
- INS(0x1006), insert element in list at the beginning
- APP(0x1007), append element to list
- AND(0x1008), logical and
- OR(0x1009), logical or
- NOT(0x100a); logical not
Bytecode format
Header and complete code