diff options
Diffstat (limited to 'src/devices/machine/z80scc.cpp')
-rw-r--r-- | src/devices/machine/z80scc.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/devices/machine/z80scc.cpp b/src/devices/machine/z80scc.cpp index 4978ff66d32..1a1dc0a3eda 100644 --- a/src/devices/machine/z80scc.cpp +++ b/src/devices/machine/z80scc.cpp @@ -1243,6 +1243,9 @@ void z80scc_channel::tra_callback() LOGTX("%s: transmit data bit %d m_wr5:%02x\n", FUNCNAME, db, m_wr5); // transmit data out_txd_cb(db); + + if (m_wr14 & WR14_LOCAL_LOOPBACK) + write_rx(db); } else { @@ -2298,6 +2301,10 @@ void z80scc_channel::do_sccreg_wr14(uint8_t data) m_brg_counter = 0; #endif } + + if (!(m_wr14 & WR14_LOCAL_LOOPBACK) && (data & WR14_LOCAL_LOOPBACK)) + receive_register_reset(); + // TODO: Add info on the other bits of this register m_wr14 = data; update_serial(); |