data stack: used for arguments in functions and arithmetic operations call stack: remembers in what class execution is in right now example: root /\ main /\ print (func) database stack: contains maps which contain all local variables in the current class variables map: stores all global variables code stack: stores the code instruction set: 0x00 add add the 2 numbers on the data stack and pushes the result onto the data stack 0x01 sub subtract the 2 numbers on the data stack and pushes the result onto the data stack 0x02 mul multiply the 2 numbers located on the data stack and pushes the result onto the data stack 0x03 div divide the 2 numbers located on the data stack and pushes the result onto the data stack 0x04 loadl load local variable into data stack 0x05 savel save top of data stack into local variable 0x06 goup goes out of the current attribute 0x07 godown goes into an attribute of the current selected class 0x08 goroot goes to the root of the program 0x09 call call a function (also works for module classes), the function must be first on the data stack, the operand says how many arguments are given to function which in turn decides how many things are poped off the stack 0x0A load loads the specified attribute from the current class into the data stack 0x0B save saves the top of the data stack into the specified attribute of the current class 0x0C loadg loads the specified global variable into the data stack 0x0D saveg saves the top of the data stack into the specified global variable 0x0E loado loads operand on top of the data stack 0x0F copy copy top of the data stack onto specified attribute of current 0x10 ret exits out of the current function 0x11 equal compares the 2 values on the data stack for equality and outputs the result onto the data stack 0x12 less compares the 2 numbers on the data stack if the top one is bigger than the first one and outputs the result onto the data stack 0x13 bigr compares the 2 numbers on the data stack if the top one is lesser than the first one and outputs the result onto the data stack 0x14 bism compares the 2 numbers on the data stack for either equality or if the top one is lesser than the first one and outputs the result onto the data stack 0x15 lesm compares the 2 numbers on the data stack for either equality or if the top one is bigger than the first one and outputs the result onto the data stack 0x16 not inverts value on data stack and outputs on data stack (only integer accepted) 0x17 and and's 2 values on the data stack and outputs on data stack (only integer accepted) 0x18 or or's 2 values on the data stack and outputs on data stack (only integer accepted) 0x19 xor xor's 2 values on the data stack and outputs on data stack (only integer accepted) 0x20 nor nor's 2 values on the data stack and outputs on data stack (only integer accepted) 0x21 callif if number on datastack is 1, call specified function 0from current class (only integer on stack accepted) operand specifying: 0x00 = integer, 4 units 0x01 = float, 8 units split in 2, first 4 units are before comma, and rest are after comma 0x02 = string, units, with a terminating character at the end 0x03 = empty class 0x04 = list, ends with 0xFF byte 0x05 = dictionary, ends with 0xFF byte 0x06 = bytecode, , end indicator state 0 = end, 1 = continue 0xFF = special, shows end of list/dictionary