summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/coco/dragon_jcbsnd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/coco/dragon_jcbsnd.cpp')
-rw-r--r--src/devices/bus/coco/dragon_jcbsnd.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/devices/bus/coco/dragon_jcbsnd.cpp b/src/devices/bus/coco/dragon_jcbsnd.cpp
index 29f664a9a77..c193e72eb80 100644
--- a/src/devices/bus/coco/dragon_jcbsnd.cpp
+++ b/src/devices/bus/coco/dragon_jcbsnd.cpp
@@ -54,9 +54,6 @@ dragon_jcbsnd_device::dragon_jcbsnd_device(const machine_config &mconfig, const
void dragon_jcbsnd_device::device_start()
{
- install_write_handler(0xfefe, 0xfefe, write8smo_delegate(FUNC(ay8910_device::address_w), (ay8910_device *)m_ay8910));
- install_readwrite_handler(0xfeff, 0xfeff, read8smo_delegate(FUNC(ay8910_device::data_r), (ay8910_device *)m_ay8910), write8smo_delegate(FUNC(ay8910_device::data_w), (ay8910_device *)m_ay8910));
-
set_line_value(line::CART, line_value::Q);
}
@@ -104,5 +101,18 @@ const tiny_rom_entry *dragon_jcbsnd_device::device_rom_region() const
READ8_MEMBER(dragon_jcbsnd_device::cts_read)
{
- return m_eprom->base()[offset & 0x1fff];
+ if (offset == 0x3eff)
+ return m_ay8910->data_r();
+ else
+ return m_eprom->base()[offset & 0x1fff];
+}
+
+//-------------------------------------------------
+// cts_write
+//-------------------------------------------------
+
+WRITE8_MEMBER(dragon_jcbsnd_device::cts_write)
+{
+ if ((offset & ~1) == 0x3efe)
+ m_ay8910->address_data_w(offset & 1, data);
}