public BlockPythonEngine(Machine mach, ICPUWithBlockBeginHook cpu, string script) { Script = script; CPU = cpu; Machine = mach; InnerInit(); Hook = (pc) => { Scope.SetVariable("pc", pc); Source.Value.Execute(Scope); }; HookWithSize = (pc, size) => { Scope.SetVariable("pc", pc); Scope.SetVariable("size", size); Source.Value.Execute(Scope); }; }
public static void AddHook(this ICPUWithBlockBeginHook cpu, [AutoParameter] Machine m, uint addr, string pythonScript) { var engine = new BlockPythonEngine(m, cpu, pythonScript); cpu.AddHook(addr, engine.Hook); }
public static void SetHookAtBlockBegin(this ICPUWithBlockBeginHook cpu, [AutoParameter] Machine m, string pythonScript) { var engine = new BlockPythonEngine(m, cpu, pythonScript); cpu.SetHookAtBlockBegin(engine.HookWithSize); }