diff options
Diffstat (limited to 'src/emu/bus/msx_slot/bunsetsu.h')
-rw-r--r-- | src/emu/bus/msx_slot/bunsetsu.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/emu/bus/msx_slot/bunsetsu.h b/src/emu/bus/msx_slot/bunsetsu.h new file mode 100644 index 00000000000..d798cc52b34 --- /dev/null +++ b/src/emu/bus/msx_slot/bunsetsu.h @@ -0,0 +1,38 @@ +#ifndef __MSX_SLOT_BUNSETSU_H +#define __MSX_SLOT_BUNSETSU_H + +#include "bus/msx_slot/slot.h" +#include "bus/msx_slot/rom.h" + + +extern const device_type MSX_SLOT_BUNSETSU; + + +#define MCFG_MSX_SLOT_BUNSETSU_ADD(_tag, _startpage, _numpages, _region, _offset, _bunsetsu_region_tag) \ + MCFG_MSX_INTERNAL_SLOT_ADD(_tag, MSX_SLOT_BUNSETSU, _startpage, _numpages) \ + msx_slot_rom_device::set_rom_start(*device, _region, _offset); \ + msx_slot_bunsetsu_device::set_bunsetsu_region_tag(*device, _bunsetsu_region_tag); \ + +class msx_slot_bunsetsu_device : public msx_slot_rom_device +{ +public: + msx_slot_bunsetsu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // static configuration helpers + static void set_bunsetsu_region_tag(device_t &device, const char *tag) { dynamic_cast<msx_slot_bunsetsu_device &>(device).m_bunsetsu_region_tag = tag; } + + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read); + virtual DECLARE_WRITE8_MEMBER(write); + +private: + memory_region *m_bunsetsu_region; + const char *m_bunsetsu_region_tag; + UINT32 m_bunsetsu_address; +}; + + +#endif + |