From 9eb7925be7baf8c369654a4194c36ac34982e5e4 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 1 Sep 2019 07:08:15 -0400 Subject: MT #07405 (nw) --- src/devices/bus/coco/dragon_jcbsnd.cpp | 18 ++++++++++++++---- src/devices/bus/coco/dragon_jcbsnd.h | 1 + 2 files changed, 15 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); } diff --git a/src/devices/bus/coco/dragon_jcbsnd.h b/src/devices/bus/coco/dragon_jcbsnd.h index e26e7ac429f..a22f6edd69b 100644 --- a/src/devices/bus/coco/dragon_jcbsnd.h +++ b/src/devices/bus/coco/dragon_jcbsnd.h @@ -32,6 +32,7 @@ protected: virtual memory_region* get_cart_memregion() override; virtual DECLARE_READ8_MEMBER(cts_read) override; + virtual DECLARE_WRITE8_MEMBER(cts_write) override; // internal state device_image_interface *m_cart; -- cgit v1.2.3