SCPL 4.1 vm instructions: opcode tier name description 0x00 move copies operand 1 to operand 2 0x01 1 call runs sysfunc of operand 0x02 goout goes out of current object 0x03 goin goes into operand 0x04 pop pops top of datastack 0x05 3 callif runs sysfunc of operand if .Cgetattr("content") is true 0x06 rem stores value on datastack onto secondary stack 0x07 recall loads value from secondary stack onto datastack 0x08 4 while executes operand while top of datastack is 1. --UNAVAIL 0x09 2 try executes operand and pushes an VMSTAT object onto datastack 0x0A ret exits out of code which has the same or greater tier than specified 0x0B exec executes given bytecode --UNAVAIL 0x0C throw throws exception with given string as message 0xFF DEBUG Used by tests. logs .Cgetattr("content") -- UNAVAIL: Tier system currently unavailable. operands: 0x00 getempty returns an plain variable 0x01 int creates an integer variable 0x02 float creates an float variable 0x03 string creates an string variable (null terminated) 0x04 list creates an list variable 0x05 map creates an map variable 0x06 bytearray creates an bytearray variable 0x10 llvar loads specified local variable 0x11 slvar same as llvar except if it doesnt exist, creates one 0x12 lgvar loads specified global variable 0x13 sgvar same as lgvar except if it doesnt exist, creates one 0x20 ntdata loads new empty variable ontop of datastack (and returns it) 0x21 tdata loads top of datastack 0x22 tpdata loads top of datastack and pops it off 0x30 lattr loads specified attribute of current variable 0x31 sattr same as lattr except if it doesnt exist, creates the attribute 0xFF marker special marker for map, list and bytearray (cant be used with instructions.) operand specification: operand handler must return SCPLVARPTR operand handler must be registered to work handler must register with an op_handler ptr. bytecode file (scbc) header specification: at beginning of an scbc file normal string, simply null terminated. everything is treated as an string until 0xFF comes up. last string needs to be null terminated before 0xFF can be used. headers normally included: SCPL_VM_TARGET_VERSION SCPL_VM_MIN_VERSION