diff options
Diffstat (limited to 'src/devices/cpu/mcs40/mcs40.h')
-rw-r--r-- | src/devices/cpu/mcs40/mcs40.h | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/src/devices/cpu/mcs40/mcs40.h b/src/devices/cpu/mcs40/mcs40.h index 337e171736b..a56a1813f34 100644 --- a/src/devices/cpu/mcs40/mcs40.h +++ b/src/devices/cpu/mcs40/mcs40.h @@ -5,6 +5,9 @@ #pragma once +#include <memory> +#include <utility> + /*********************************************************************** CONSTANTS @@ -29,24 +32,6 @@ enum mcs40_cpu_device_base::bus_cycle_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, (cls *)nullptr) -#define MCFG_I4004_ROM_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_ROM, map) - -#define MCFG_I4004_RAM_MEMORY_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_RAM_MEMORY, map) - -#define MCFG_I4004_ROM_PORTS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_ROM_PORTS, map) - -#define MCFG_I4004_RAM_STATUS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_RAM_STATUS, map) - -#define MCFG_I4004_RAM_PORTS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_RAM_PORTS, map) - -#define MCFG_I4004_PROGRAM_MEMORY_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4004_cpu_device::AS_PROGRAM_MEMORY, map) - #define MCFG_I4004_BUS_CYCLE_CB(obj) \ downcast<i4004_cpu_device &>(*device).set_bus_cycle_cb((MCS40CB_##obj)); @@ -75,24 +60,6 @@ enum devcb = &downcast<i4004_cpu_device &>(*device).set_4289_f_l_cb(DEVCB_##obj); -#define MCFG_I4040_ROM_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_ROM, map) - -#define MCFG_I4040_RAM_MEMORY_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_RAM_MEMORY, map) - -#define MCFG_I4040_ROM_PORTS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_ROM_PORTS, map) - -#define MCFG_I4040_RAM_STATUS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_RAM_STATUS, map) - -#define MCFG_I4040_RAM_PORTS_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_RAM_PORTS, map) - -#define MCFG_I4040_PROGRAM_MEMORY_MAP(map) \ - MCFG_DEVICE_ADDRESS_MAP(i4040_cpu_device::AS_PROGRAM_MEMORY, map) - #define MCFG_I4040_BUS_CYCLE_CB(obj) \ downcast<i4040_cpu_device &>(*device).set_bus_cycle_cb((MCS40CB_##obj)); @@ -152,6 +119,12 @@ public: typedef device_delegate<void (phase step, u8 sync, u8 data)> bus_cycle_delegate; // configuration helpers + template <typename... T> void set_rom_map(T &&... args) { set_addrmap(AS_ROM, std::forward<T>(args)...); } + template <typename... T> void set_ram_memory_map(T &&... args) { set_addrmap(AS_RAM_MEMORY, std::forward<T>(args)...); } + template <typename... T> void set_rom_ports_map(T &&... args) { set_addrmap(AS_ROM_PORTS, std::forward<T>(args)...); } + template <typename... T> void set_ram_status_map(T &&... args) { set_addrmap(AS_RAM_STATUS, std::forward<T>(args)...); } + template <typename... T> void set_ram_ports_map(T &&... args) { set_addrmap(AS_RAM_PORTS, std::forward<T>(args)...); } + template <typename... T> void set_program_memory_map(T &&... args) { set_addrmap(AS_PROGRAM_MEMORY, std::forward<T>(args)...); } template <typename Obj> void set_bus_cycle_cb(Obj &&cb) { m_bus_cycle_cb = std::forward<Obj>(cb); } template <typename Obj> devcb_base &set_4289_pm_cb(Obj &&cb) { return m_4289_pm_cb.set_callback(std::forward<Obj>(cb)); } template <typename Obj> devcb_base &set_4289_f_l_cb(Obj &&cb) { return m_4289_f_l_cb.set_callback(std::forward<Obj>(cb)); } |