diff options
Diffstat (limited to 'src/mame/drivers/tispeak.cpp')
-rw-r--r-- | src/mame/drivers/tispeak.cpp | 9 |
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); } |