summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tispeak.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tispeak.cpp')
-rw-r--r--src/mame/drivers/tispeak.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mame/drivers/tispeak.cpp b/src/mame/drivers/tispeak.cpp
index 2c492a6a8e5..b177626bcbe 100644
--- a/src/mame/drivers/tispeak.cpp
+++ b/src/mame/drivers/tispeak.cpp
@@ -738,7 +738,8 @@ void tispeak_state::k28_prepare_display(u8 old, u8 data)
WRITE16_MEMBER(tispeak_state::k28_write_r)
{
// R1234: TMS5100 CTL8421
- m_tms5100->ctl_w(space, 0, bitswap<4>(data,1,2,3,4));
+ u16 r = bitswap<5>(data,0,1,2,3,4) | (data & ~0x1f);
+ m_tms5100->ctl_w(space, 0, r & 0xf);
// R0: TMS5100 PDC pin
m_tms5100->pdc_w(data & 1);
@@ -752,7 +753,7 @@ WRITE16_MEMBER(tispeak_state::k28_write_r)
// R7-R10: LCD data
k28_prepare_display(m_r >> 7 & 0xf, data >> 7 & 0xf);
- m_r = data;
+ m_r = r;
}
WRITE16_MEMBER(tispeak_state::k28_write_o)
@@ -763,8 +764,8 @@ WRITE16_MEMBER(tispeak_state::k28_write_o)
READ8_MEMBER(tispeak_state::k28_read_k)
{
- // K: TMS5100 CTL, multiplexed inputs
- return m_tms5100->ctl_r(space, 0) | read_inputs(9);
+ // K: TMS5100 CTL, multiplexed inputs (also tied to R1234)
+ return m_tms5100->ctl_r(space, 0) | read_inputs(9) | (m_r & 0xf);
}