diff --git a/lua/wire/zvm/zvm_core.lua b/lua/wire/zvm/zvm_core.lua index 2119637..db1fe38 100644 --- a/lua/wire/zvm/zvm_core.lua +++ b/lua/wire/zvm/zvm_core.lua @@ -265,11 +265,13 @@ end -------------------------------------------------------------------------------- -- Emit interrupt call +-- intNo can only be numeric or "$1" +-- intParam can only be numeric or "IDX" function ZVM:Dyn_EmitInterrupt(intNo,intParam) self:Dyn_EmitState() self:Emit("VM.IP = %d",(self.PrecompileIP or 0)) self:Emit("VM.XEIP = %d",(self.PrecompileTrueXEIP or 0)) - self:Dyn_Emit("VM:Interrupt(%d,%d)",intNo,intParam) + self:Dyn_Emit("VM:Interrupt(%s,%s)",intNo,intParam) self:Dyn_EmitBreak() end diff --git a/lua/wire/zvm/zvm_opcodes.lua b/lua/wire/zvm/zvm_opcodes.lua index ad8a235..b70dbaf 100644 --- a/lua/wire/zvm/zvm_opcodes.lua +++ b/lua/wire/zvm/zvm_opcodes.lua @@ -234,11 +234,11 @@ ZVM.OpcodeTable[28] = function(self) --SPG self:Dyn_Emit("end") end ZVM.OpcodeTable[29] = function(self) --CPG - self:Dyn_Emit("$L idx = math.floor($1 / 128)") + self:Dyn_Emit("$L IDX = math.floor($1 / 128)") self:Dyn_Emit("$L PAGE = VM:GetPageByIndex(IDX)") self:Dyn_EmitInterruptCheck() - self:Dyn_Emit("if VM.CurrentPage.RunLevel <= VM.Page[idx].RunLevel then") + self:Dyn_Emit("if VM.CurrentPage.RunLevel <= PAGE.RunLevel then") self:Dyn_Emit("PAGE.Read = 1") self:Dyn_Emit("PAGE.Write = 1") self:Dyn_Emit("VM:SetPageByIndex(IDX)")