diff options
author | Robbbert <robbbert@users.noreply.github.com> | 2014-04-21 11:23:25 +0000 |
---|---|---|
committer | Robbbert <robbbert@users.noreply.github.com> | 2014-04-21 11:23:25 +0000 |
commit | 4ff2daf1bff9b6dba0e438c3d266888b0333951f (patch) | |
tree | 93dcef022a9a057c3eccfa0660fb40a987fc0b3f /src/mess/drivers/alphatro.c | |
parent | 2f33e6c41326337438f0dbcb1a6a5a91f161108e (diff) |
(MESS) ensure cassette-save timer is synchronised to cpu.
Diffstat (limited to 'src/mess/drivers/alphatro.c')
-rw-r--r-- | src/mess/drivers/alphatro.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mess/drivers/alphatro.c b/src/mess/drivers/alphatro.c index f585d235a51..785a4b3d09d 100644 --- a/src/mess/drivers/alphatro.c +++ b/src/mess/drivers/alphatro.c @@ -86,6 +86,7 @@ private: UINT8 m_timer_bit; UINT8 m_cass_data[4]; bool m_cass_state; + bool m_cassold; emu_timer* m_sys_timer; virtual void video_start(); virtual void machine_start(); @@ -434,6 +435,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::alphatro_c) { m_cass_data[3]++; + if (m_cass_state != m_cassold) + { + m_cass_data[3] = 0; + m_cassold = m_cass_state; + } + if (m_cass_state) m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz else @@ -494,7 +501,7 @@ static MACHINE_CONFIG_START( alphatro, alphatro_state ) MCFG_DEVICE_ADD("usart", I8251, 0) MCFG_I8251_TXD_HANDLER(WRITELINE(alphatro_state, txdata_callback)) - MCFG_DEVICE_ADD("usart_clock", CLOCK, 19225) + MCFG_DEVICE_ADD("usart_clock", CLOCK, 19200) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(alphatro_state, write_usart_clock)) MCFG_CASSETTE_ADD("cassette", alphatro_cassette_interface) |