summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/rc2014/edge.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/rc2014/edge.cpp')
-rw-r--r--src/devices/bus/rc2014/edge.cpp203
1 files changed, 203 insertions, 0 deletions
diff --git a/src/devices/bus/rc2014/edge.cpp b/src/devices/bus/rc2014/edge.cpp
new file mode 100644
index 00000000000..3776ee45a2e
--- /dev/null
+++ b/src/devices/bus/rc2014/edge.cpp
@@ -0,0 +1,203 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/***************************************************************************
+
+ RC2014 Modulare Backplane Extensions
+
+****************************************************************************/
+
+#include "emu.h"
+#include "edge.h"
+#include "modules.h"
+
+namespace {
+
+//**************************************************************************
+// SC106 - Modular Backplane (RC2014)
+// Module author: Stephen C Cousins
+//**************************************************************************
+
+class sc106_device : public device_t, public device_rc2014_rc80_card_interface
+{
+public:
+ // construction/destruction
+ sc106_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+protected:
+ sc106_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+
+private:
+ required_device<rc2014_rc80_bus_device> m_rc80_bus;
+};
+
+sc106_device::sc106_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, type, tag, owner, clock)
+ , device_rc2014_rc80_card_interface(mconfig, *this)
+ , m_rc80_bus(*this, ":bus")
+{
+}
+
+sc106_device::sc106_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : sc106_device(mconfig, RC2014_SC106, tag, owner, clock)
+{
+}
+
+void sc106_device::device_start()
+{
+}
+
+void sc106_device::device_add_mconfig(machine_config &config)
+{
+ RC2014_RC80_SLOT(config, "1", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "2", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "3", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "4", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "5", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "6", m_rc80_bus, rc2014_rc80_bus_modules, nullptr);
+ RC2014_RC80_SLOT(config, "e", m_rc80_bus, rc2014_rc80_bus_edge_modules, nullptr);
+
+}
+
+//**************************************************************************
+// SC107 - Modular Backplane (RC2014)
+// Module author: Stephen C Cousins
+//
+// TODO: Pins 37 and 38 form an interrupt daisy chain
+//**************************************************************************
+
+class sc107_device : public sc106_device
+{
+ public:
+ // construction/destruction
+ sc107_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+sc107_device::sc107_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : sc106_device(mconfig, RC2014_SC107, tag, owner, clock)
+{
+}
+
+//**************************************************************************
+// SC113 - Modular Backplane (RC2014)
+// Module author: Stephen C Cousins
+//
+// TODO: Jumpers on board
+//**************************************************************************
+
+class sc113_device : public sc106_device
+{
+ public:
+ // construction/destruction
+ sc113_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+sc113_device::sc113_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : sc106_device(mconfig, RC2014_SC113, tag, owner, clock)
+{
+}
+
+//**************************************************************************
+// SC141 - Modular Backplane (RC2014)
+// Module author: Stephen C Cousins
+//**************************************************************************
+
+class sc141_device : public device_t, public device_rc2014_card_interface
+{
+public:
+ // construction/destruction
+ sc141_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+
+private:
+ required_device<rc2014_bus_device> m_rc40_bus;
+};
+
+sc141_device::sc141_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, RC2014_SC141, tag, owner, clock)
+ , device_rc2014_card_interface(mconfig, *this)
+ , m_rc40_bus(*this, ":bus")
+{
+}
+
+void sc141_device::device_start()
+{
+}
+
+void sc141_device::device_add_mconfig(machine_config &config)
+{
+ RC2014_SLOT(config, "1", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "2", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "3", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "4", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "5", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "6", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "7", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "8", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "9", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "10", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "11", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "12", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "e", m_rc40_bus, rc2014_bus_edge_modules, nullptr);
+}
+
+//**************************************************************************
+// SC147 - Modular Backplane (RC2014)
+// Module author: Stephen C Cousins
+//**************************************************************************
+
+class sc147_device : public device_t, public device_rc2014_card_interface
+{
+public:
+ // construction/destruction
+ sc147_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+
+private:
+ required_device<rc2014_bus_device> m_rc40_bus;
+};
+
+sc147_device::sc147_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, RC2014_SC147, tag, owner, clock)
+ , device_rc2014_card_interface(mconfig, *this)
+ , m_rc40_bus(*this, ":bus")
+{
+}
+
+void sc147_device::device_start()
+{
+}
+
+void sc147_device::device_add_mconfig(machine_config &config)
+{
+ RC2014_SLOT(config, "1", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "2", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "3", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "4", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "5", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "6", m_rc40_bus, rc2014_bus_modules, nullptr);
+ RC2014_SLOT(config, "e", m_rc40_bus, rc2014_bus_edge_modules, nullptr);
+}
+
+}
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE_PRIVATE(RC2014_SC106, device_rc2014_rc80_card_interface, sc106_device, "rc2014_sc106", "SC106 - Modular Backplane (RC2014)")
+DEFINE_DEVICE_TYPE_PRIVATE(RC2014_SC107, device_rc2014_rc80_card_interface, sc107_device, "rc2014_sc107", "SC107 - Modular Backplane (RC2014)")
+DEFINE_DEVICE_TYPE_PRIVATE(RC2014_SC113, device_rc2014_rc80_card_interface, sc113_device, "rc2014_sc113", "SC113 - Modular Backplane (RC2014)")
+
+DEFINE_DEVICE_TYPE_PRIVATE(RC2014_SC141, device_rc2014_card_interface, sc141_device, "rc2014_sc141", "SC141 - Modular Backplane (RC2014)")
+DEFINE_DEVICE_TYPE_PRIVATE(RC2014_SC147, device_rc2014_card_interface, sc147_device, "rc2014_sc147", "SC147 - Modular Backplane (RC2014)")