z80scc: implement local loopback

This commit is contained in:
Patrick Mackinlay 2021-05-24 12:30:06 +07:00
parent 646938cf96
commit 8a2de2875a

View File

@ -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();