summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/a2bus/a2arcadebd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/a2bus/a2arcadebd.cpp')
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/src/devices/bus/a2bus/a2arcadebd.cpp b/src/devices/bus/a2bus/a2arcadebd.cpp
index 169971ea3e5..219c67c4905 100644
--- a/src/devices/bus/a2bus/a2arcadebd.cpp
+++ b/src/devices/bus/a2bus/a2arcadebd.cpp
@@ -15,9 +15,15 @@
#include "emu.h"
#include "a2arcadebd.h"
+
+#include "video/tms9928a.h"
+#include "sound/ay8910.h"
+
#include "speaker.h"
+namespace {
+
/***************************************************************************
PARAMETERS
***************************************************************************/
@@ -27,10 +33,34 @@
#define SCREEN_TAG "screen"
//**************************************************************************
-// GLOBAL VARIABLES
+// TYPE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device, "a2arcbd", "Third Millenium Engineering Arcade Board")
+class a2bus_arcboard_device:
+ public device_t,
+ public device_a2bus_card_interface
+{
+public:
+ // construction/destruction
+ a2bus_arcboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ a2bus_arcboard_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;
+};
//-------------------------------------------------
// device_add_mconfig - add device configuration
@@ -127,7 +157,7 @@ void a2bus_arcboard_device::write_c0nx(uint8_t offset, uint8_t data)
}
}
-WRITE_LINE_MEMBER( a2bus_arcboard_device::tms_irq_w )
+void a2bus_arcboard_device::tms_irq_w(int state)
{
if (state)
{
@@ -138,3 +168,12 @@ WRITE_LINE_MEMBER( a2bus_arcboard_device::tms_irq_w )
lower_slot_irq();
}
}
+
+} // anonymous namespace
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_ARCADEBOARD, device_a2bus_card_interface, a2bus_arcboard_device, "a2arcbd", "Third Millenium Engineering Arcade Board")