From: Toni Wilen Date: Sun, 19 Feb 2023 15:55:45 +0000 (+0200) Subject: SERDATR() fix X-Git-Tag: 5.0.0~141 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=b7d4344bdfe04bfb9aaca16e6b3217f6d1403b2e;p=francis%2Fwinuae.git SERDATR() fix --- diff --git a/od-win32/serial_win32.cpp b/od-win32/serial_win32.cpp index 33597757..448ea8d7 100644 --- a/od-win32/serial_win32.cpp +++ b/od-win32/serial_win32.cpp @@ -597,7 +597,7 @@ static void checksend(void) } #ifdef RETROPLATFORM if (rp_ismodem()) { - rp_writemodem(serdatshift & 0xff); + rp_writemodem((uae_u8)serdatshift_masked); } #endif if (serempty_enabled && !serxdevice_enabled) { @@ -892,7 +892,7 @@ static void SERDAT_send(uae_u32 v) uae_u16 SERDATR(void) { serdatr &= 0x03ff; - if (!data_in_serdat || (ser_accurate && get_cycles() >= data_in_serdat_delay)) { + if (!data_in_serdat && (!ser_accurate || (ser_accurate && get_cycles() >= data_in_serdat_delay))) { serdatr |= 0x2000; // TBE (Transmit buffer empty) } if (!data_in_sershift && (serdatr & 0x2000)) { @@ -1240,6 +1240,7 @@ void serial_close(void) serxdevice_enabled = false; serper_set = false; ser_accurate = false; + data_in_serdat_delay = 0; } void serial_init(void)