From 2e0cacd3adc1af6ae49e11abc6a87bbb4c0e4e2a Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 3 Jun 2023 12:02:00 +0200 Subject: mcs51: add rxb8 to uart reset --- src/devices/cpu/mcs51/mcs51.cpp | 5 +++-- src/devices/cpu/mcs51/mcs51.h | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/devices/cpu/mcs51/mcs51.cpp b/src/devices/cpu/mcs51/mcs51.cpp index 0b874abe784..eabc3f16c29 100644 --- a/src/devices/cpu/mcs51/mcs51.cpp +++ b/src/devices/cpu/mcs51/mcs51.cpp @@ -1015,7 +1015,7 @@ void mcs51_cpu_device::do_sub_flags(uint8_t a, uint8_t data, uint8_t c) SET_OV((result1 < -128 || result1 > 127)); } -void mcs51_cpu_device::transmit(bool state) +void mcs51_cpu_device::transmit(int state) { if (BIT(SFR_A(ADDR_P3), 1) != state) { @@ -1143,7 +1143,7 @@ void mcs51_cpu_device::transmit_receive(int source) if (GET_REN) { // directly read RXD input - bool const data = BIT(m_port_in_cb[3](), 0); + int const data = BIT(m_port_in_cb[3](), 0); switch (m_uart.rxbit) { @@ -2464,6 +2464,7 @@ void mcs51_cpu_device::device_reset() m_uart.tx_clk = 0; m_uart.txbit = SIO_IDLE; m_uart.rxbit = SIO_IDLE; + m_uart.rxb8 = 0; m_uart.smod_div = 0; m_recalc_parity = 0; diff --git a/src/devices/cpu/mcs51/mcs51.h b/src/devices/cpu/mcs51/mcs51.h index 4dd8fb125f5..f145e20d4df 100644 --- a/src/devices/cpu/mcs51/mcs51.h +++ b/src/devices/cpu/mcs51/mcs51.h @@ -132,7 +132,7 @@ protected: uint8_t data_in; uint8_t txbit; uint8_t rxbit; - bool rxb8; + uint8_t rxb8; int smod_div; /* signal divided by 2^SMOD */ int rx_clk; /* rx clock */ @@ -147,7 +147,7 @@ protected: virtual void sfr_write(size_t offset, uint8_t data); virtual uint8_t sfr_read(size_t offset); - void transmit(bool state); + void transmit(int state); /* Memory spaces */ memory_access<16, 0, 0, ENDIANNESS_LITTLE>::cache m_program; -- cgit v1.2.3