public static void SetHookBeforeWrite(this SystemBus sysbus, IBusPeripheral peripheral, string pythonScript, Range? subrange = null) { var runner = new BusHooksPythonEngine(sysbus, peripheral, null, pythonScript); sysbus.SetHookBeforeWrite<uint>(peripheral, runner.WriteHook, subrange); sysbus.SetHookBeforeWrite<ushort>(peripheral, (valueToWrite, offset) => (ushort)runner.WriteHook(valueToWrite, offset), subrange); sysbus.SetHookBeforeWrite<byte>(peripheral, (valueToWrite, offset) => (byte)runner.WriteHook(valueToWrite, offset), subrange); }
public static void SetHookAfterRead(this SystemBus sysbus, IBusPeripheral peripheral, string pythonScript, Range? subrange = null) { var runner = new BusHooksPythonEngine(sysbus, peripheral, pythonScript); sysbus.SetHookAfterRead<uint>(peripheral, runner.ReadHook, subrange); sysbus.SetHookAfterRead<ushort>(peripheral, (readValue, offset) => (ushort)runner.ReadHook(readValue, offset), subrange); sysbus.SetHookAfterRead<byte>(peripheral, (readValue, offset) => (byte)runner.ReadHook(readValue, offset), subrange); }