diff options
author | smf- <smf-@users.noreply.github.com> | 2014-01-10 16:24:51 +0000 |
---|---|---|
committer | smf- <smf-@users.noreply.github.com> | 2014-01-10 16:24:51 +0000 |
commit | 45f17e9c0f92f3a3b229320b99c1283b8efccd70 (patch) | |
tree | 3ffe123e7f82faddfcffc7798d8117f841f6ca13 | |
parent | 68125fe084d0987e30152aadfda38b0e06c98bf3 (diff) |
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]
-rw-r--r-- | src/emu/imagedev/midiin.c | 2 | ||||
-rw-r--r-- | src/emu/imagedev/midiout.c | 2 | ||||
-rw-r--r-- | src/emu/machine/mos6551.c | 4 | ||||
-rw-r--r-- | src/emu/machine/z80dart.c | 4 |
4 files changed, 6 insertions, 6 deletions
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); } |