summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/z80ne.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/z80ne.cpp')
-rw-r--r--src/mame/machine/z80ne.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mame/machine/z80ne.cpp b/src/mame/machine/z80ne.cpp
index c9e1677e667..6d1251a69ee 100644
--- a/src/mame/machine/z80ne.cpp
+++ b/src/mame/machine/z80ne.cpp
@@ -276,7 +276,8 @@ MACHINE_RESET_MEMBER(z80ne_state,z80ne_base)
m_uart->write_eps(1);
m_uart->write_np(m_io_lx_385->read() & 0x80 ? 1 : 0);
m_uart->write_cs(1);
- m_uart_clock->set_unscaled_clock(m_cass_data.speed * 16);
+ m_uart->set_receiver_clock(m_cass_data.speed * 16.0);
+ m_uart->set_transmitter_clock(m_cass_data.speed * 16.0);
lx385_ctrl_w(m_maincpu->space(AS_PROGRAM), 0, 0);
@@ -510,13 +511,14 @@ WRITE8_MEMBER(z80ne_state::lx385_ctrl_w)
* 3 *TAPEA Enable (active low) (at reset: low)
* 4 *TAPEB Enable (active low) (at reset: low)
*/
- uint8_t uart_reset, uart_rdav;
+ uint8_t uart_reset, uart_rdav, uart_tx_clock;
uint8_t motor_a, motor_b;
uint8_t changed_bits = (m_lx385_ctrl ^ data) & 0x1C;
m_lx385_ctrl = data;
uart_reset = ((data & 0x03) == 0x00);
uart_rdav = ((data & 0x03) == 0x01);
+ uart_tx_clock = ((data & 0x04) == 0x04);
motor_a = ((data & 0x08) == 0x00);
motor_b = ((data & 0x10) == 0x00);
@@ -535,6 +537,10 @@ WRITE8_MEMBER(z80ne_state::lx385_ctrl_w)
if (!changed_bits) return;
+ /* UART Tx Clock enable/disable */
+ if (changed_bits & 0x04)
+ m_uart->set_transmitter_clock(uart_tx_clock ? m_cass_data.speed * 16.0 : 0.0);
+
/* motors */
if(changed_bits & 0x18)
{
@@ -551,12 +557,6 @@ WRITE8_MEMBER(z80ne_state::lx385_ctrl_w)
}
}
-WRITE_LINE_MEMBER(z80ne_state::lx385_uart_tx_clock_w)
-{
- if (BIT(m_lx385_ctrl, 2))
- m_uart->write_tcp(state);
-}
-
READ_LINE_MEMBER(z80ne_state::lx387_shift_r)
{
return BIT(m_io_modifiers->read(), 0) || BIT(m_io_modifiers->read(), 2);