summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorGravatarGravatar smf- <smf-@users.noreply.github.com>2014-01-10 16:24:51 +0000
committerGravatarGravatar smf- <smf-@users.noreply.github.com>2014-01-10 16:24:51 +0000
commit45f17e9c0f92f3a3b229320b99c1283b8efccd70 (patch)
tree3ffe123e7f82faddfcffc7798d8117f841f6ca13 /src
parent68125fe084d0987e30152aadfda38b0e06c98bf3 (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]
Diffstat (limited to 'src')
-rw-r--r--src/emu/imagedev/midiin.c2
-rw-r--r--src/emu/imagedev/midiout.c2
-rw-r--r--src/emu/machine/mos6551.c4
-rw-r--r--src/emu/machine/z80dart.c4
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);
}