summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/c140.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/c140.cpp')
-rw-r--r--src/devices/sound/c140.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/devices/sound/c140.cpp b/src/devices/sound/c140.cpp
index c6e5a05271e..b04a35a0f31 100644
--- a/src/devices/sound/c140.cpp
+++ b/src/devices/sound/c140.cpp
@@ -478,8 +478,10 @@ inline u8 c140_device::keyon_status_read(u16 offset)
u8 c140_device::c140_r(offs_t offset)
{
offset &= 0x1ff;
- if ((offset & 0xf) == 0x5)
+
+ if ((offset & 0xf) == 0x5 && offset < 0x180)
return keyon_status_read(offset);
+
return m_REG[offset];
}
@@ -552,9 +554,14 @@ void c140_device::c140_w(offs_t offset, u8 data)
u8 c219_device::c219_r(offs_t offset)
{
+ offset &= 0x1ff;
+
// assume same as c140
// TODO: what happens here on reading unmapped voice regs?
- return c140_r(offset);
+ if ((offset & 0xf) == 0x5 && offset < 0x100)
+ return keyon_status_read(offset);
+
+ return m_REG[offset];
}