Adjust MC6850 receive/transmit timer periods when clocks are changed. [Curt Coder]

This commit is contained in:
Curt Coder 2010-12-10 15:23:01 +00:00
parent d5ef27b951
commit 96b9776773
2 changed files with 34 additions and 2 deletions

View File

@ -728,6 +728,22 @@ void acia6850_device::rx_clock_in()
}
/*-------------------------------------------------
set_rx_clock - set receiver clock
-------------------------------------------------*/
void acia6850_device::set_rx_clock(int clock)
{
m_rx_clock = clock;
if (m_rx_clock)
{
attotime rx_period = attotime_mul(ATTOTIME_IN_HZ(m_rx_clock), m_divide);
timer_adjust_periodic(m_rx_timer, rx_period, 0, rx_period);
}
}
/*-------------------------------------------------
acia6850_set_rx_clock - Set clock frequencies
dynamically
@ -739,6 +755,22 @@ void acia6850_set_rx_clock(running_device *device, int clock)
}
/*-------------------------------------------------
set_tx_clock - set receiver clock
-------------------------------------------------*/
void acia6850_device::set_tx_clock(int clock)
{
m_tx_clock = clock;
if (m_tx_clock)
{
attotime tx_period = attotime_mul(ATTOTIME_IN_HZ(m_tx_clock), m_divide);
timer_adjust_periodic(m_tx_timer, tx_period, 0, tx_period);
}
}
/*-------------------------------------------------
acia6850_set_tx_clock - Set clock frequencies
dynamically

View File

@ -113,8 +113,8 @@ public:
void tx_clock_in();
void rx_clock_in();
void set_rx_clock(int clock) { m_rx_clock = clock; }
void set_tx_clock(int clock) { m_tx_clock = clock; }
void set_rx_clock(int clock);
void set_tx_clock(int clock);
protected:
// device-level overrides