From 45f17e9c0f92f3a3b229320b99c1283b8efccd70 Mon Sep 17 00:00:00 2001 From: smf- Date: Fri, 10 Jan 2014 16:24:51 +0000 Subject: Call set_data_frame() before stc_rcv_rate() in a few more places, as since r26274 there is random behaviour if you don't [smf] --- src/emu/imagedev/midiin.c | 2 +- src/emu/imagedev/midiout.c | 2 +- src/emu/machine/mos6551.c | 4 ++-- src/emu/machine/z80dart.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/emu/imagedev/midiin.c b/src/emu/imagedev/midiin.c index 92d7baec251..e32a580bc30 100644 --- a/src/emu/imagedev/midiin.c +++ b/src/emu/imagedev/midiin.c @@ -44,9 +44,9 @@ void midiin_device::device_reset() m_xmit_read = m_xmit_write = 0; // we don't Rx, we Tx at 31250 8-N-1 + set_data_frame(8, 1, PARITY_NONE, false); set_rcv_rate(0); set_tra_rate(31250); - set_data_frame(8, 1, PARITY_NONE, false); } /*------------------------------------------------- diff --git a/src/emu/imagedev/midiout.c b/src/emu/imagedev/midiout.c index f13f7099ea8..b28e7702efa 100644 --- a/src/emu/imagedev/midiout.c +++ b/src/emu/imagedev/midiout.c @@ -38,9 +38,9 @@ void midiout_device::device_start() void midiout_device::device_reset() { // we don't Tx, we Rx at 31250 8-N-1 + set_data_frame(8, 1, PARITY_NONE, false); set_rcv_rate(31250); set_tra_rate(0); - set_data_frame(8, 1, PARITY_NONE, false); } void midiout_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) diff --git a/src/emu/machine/mos6551.c b/src/emu/machine/mos6551.c index 7c89f9e6f7c..3818f19071e 100644 --- a/src/emu/machine/mos6551.c +++ b/src/emu/machine/mos6551.c @@ -202,6 +202,8 @@ void mos6551_device::update_serial() { int brg = m_ctrl & CTRL_BRG_MASK; + set_data_frame(num_data_bits, stop_bit_count, parity_code, false); + if (brg == CTRL_BRG_16X_EXTCLK) { set_rcv_rate(m_ext_rxc / 16); @@ -233,8 +235,6 @@ void mos6551_device::update_serial() case CTRL_WL_6: num_data_bits = 6; break; case CTRL_WL_5: num_data_bits = 5; break; } - - set_data_frame(num_data_bits, stop_bit_count, parity_code, false); } if (m_cmd & CMD_DTR) diff --git a/src/emu/machine/z80dart.c b/src/emu/machine/z80dart.c index 5e31f63fefe..fe36bb6152a 100644 --- a/src/emu/machine/z80dart.c +++ b/src/emu/machine/z80dart.c @@ -1305,6 +1305,8 @@ void z80dart_channel::update_serial() { int clocks = get_clock_mode(); + set_data_frame(num_data_bits, stop_bit_count, parity_code, false); + if (m_rxc > 0) { set_rcv_rate(m_rxc / clocks); @@ -1326,8 +1328,6 @@ void z80dart_channel::update_serial() else parity_code = PARITY_ODD; } - - set_data_frame(num_data_bits, stop_bit_count, parity_code, false); } -- cgit v1.2.3