diff options
Diffstat (limited to 'src/devices/bus/a2bus/ssprite.cpp')
-rw-r--r-- | src/devices/bus/a2bus/ssprite.cpp | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/src/devices/bus/a2bus/ssprite.cpp b/src/devices/bus/a2bus/ssprite.cpp index 69e12dc98dd..ec34845acd8 100644 --- a/src/devices/bus/a2bus/ssprite.cpp +++ b/src/devices/bus/a2bus/ssprite.cpp @@ -10,10 +10,16 @@ #include "emu.h" #include "ssprite.h" + +#include "sound/ay8910.h" #include "sound/tms5220.h" +#include "video/tms9928a.h" + #include "speaker.h" +namespace { + /*************************************************************************** PARAMETERS ***************************************************************************/ @@ -24,10 +30,35 @@ #define SCREEN_TAG "screen" //************************************************************************** -// GLOBAL VARIABLES +// TYPE DEFINITIONS //************************************************************************** -DEFINE_DEVICE_TYPE(A2BUS_SSPRITE, a2bus_ssprite_device, "a2ssprite", "Synetix SuperSprite") +class a2bus_ssprite_device: + public device_t, + public device_a2bus_card_interface +{ +public: + // construction/destruction + a2bus_ssprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + a2bus_ssprite_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + + // overrides of standard a2bus slot functions + virtual uint8_t read_c0nx(uint8_t offset) override; + virtual void write_c0nx(uint8_t offset, uint8_t data) override; + +private: + void tms_irq_w(int state); + + required_device<tms9918a_device> m_tms; + required_device<ay8910_device> m_ay; + required_device<tms5220_device> m_tms5220; +}; //------------------------------------------------- // device_add_mconfig - add device configuration @@ -134,10 +165,19 @@ void a2bus_ssprite_device::write_c0nx(uint8_t offset, uint8_t data) } } -WRITE_LINE_MEMBER( a2bus_ssprite_device::tms_irq_w ) +void a2bus_ssprite_device::tms_irq_w(int state) { if (state) raise_slot_irq(); else lower_slot_irq(); } + +} // anonymous namespace + + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_SSPRITE, device_a2bus_card_interface, a2bus_ssprite_device, "a2ssprite", "Synetix SuperSprite") |