#[repr(u8)] pub enum Operations { NOP = 0, ADD = 1, SUB = 2, MUL = 3, DIV = 4, MOD = 5, AND = 6, OR = 7, XOR = 8, NOT = 9, // LOADs a memory address/constant into a register LOAD = 15, // STOREs a register/constant into a memory address STORE = 16, MapPage = 17, UnmapPage = 18, // SHIFT LEFT 16 A0 Shift = 20, JUMP = 100, JumpCond = 101, RET = 103, EnviromentCall = 255, } pub enum PageMapTypes { // Have the host make a new VMPage VMPage = 0, // Ask the host to map a RealPage into memory RealPage = 1, } pub enum MathOpSubTypes { Unsigned = 0, Signed = 1, FloatingPoint = 2, } pub enum MathOpSides { RegisterConstant = 0, RegisterRegister = 1, ConstantConstant = 2, ConstantRegister = 3, } pub enum RWSubTypes { AddrToReg = 0, RegToAddr, ConstToReg, ConstToAddr, } pub enum JumpConditionals { Equal = 0, NotEqual = 1, LessThan = 2, LessThanOrEqualTo = 3, GreaterThan = 4, GreaterThanOrEqualTo = 5, }