summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/archimedes/econet/econet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/archimedes/econet/econet.cpp')
-rw-r--r--src/devices/bus/archimedes/econet/econet.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/devices/bus/archimedes/econet/econet.cpp b/src/devices/bus/archimedes/econet/econet.cpp
new file mode 100644
index 00000000000..e469b9f581d
--- /dev/null
+++ b/src/devices/bus/archimedes/econet/econet.cpp
@@ -0,0 +1,77 @@
+// license:BSD-3-Clause
+// copyright-holders:Nigel Barnes
+/**********************************************************************
+
+ Acorn Archimedes Econet Module
+
+**********************************************************************/
+
+#include "emu.h"
+#include "econet.h"
+#include "bus/econet/econet.h"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(ARC_ECONET, arc_econet_device, "arc_econet", "Acorn ADF10/AEH52 Econet Module");
+
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+void arc_econet_device::device_add_mconfig(machine_config &config)
+{
+ MC6854(config, m_adlc);
+ m_adlc->out_txd_cb().set("econet", FUNC(econet_device::host_data_w));
+ m_adlc->out_irq_cb().set(DEVICE_SELF_OWNER, FUNC(archimedes_econet_slot_device::efiq_w));
+
+ econet_device &econet(ECONET(config, "econet", 0));
+ econet.clk_wr_callback().set(m_adlc, FUNC(mc6854_device::txc_w));
+ econet.clk_wr_callback().append(m_adlc, FUNC(mc6854_device::rxc_w));
+ econet.data_wr_callback().set(m_adlc, FUNC(mc6854_device::set_rx));
+
+ ECONET_SLOT(config, "econet254", "econet", econet_devices);
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// archimedes_econet_device - constructor
+//-------------------------------------------------
+
+arc_econet_device::arc_econet_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, ARC_ECONET, tag, owner, clock)
+ , device_archimedes_econet_interface(mconfig, *this)
+ , m_adlc(*this, "mc6854")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void arc_econet_device::device_start()
+{
+}
+
+//**************************************************************************
+// IMPLEMENTATION
+//**************************************************************************
+
+u8 arc_econet_device::read(offs_t offset)
+{
+ return m_adlc->read(offset);
+}
+
+void arc_econet_device::write(offs_t offset, u8 data)
+{
+ m_adlc->write(offset, data);
+}