From c766c8bc60cf1e38a41da4ca6b4e8770e10a419a Mon Sep 17 00:00:00 2001 From: Chris Odorjan Date: Fri, 5 Jun 2020 14:51:33 -0400 Subject: [PATCH] DUART: fix detection of SC26C92 devices for some reason MR0[3] is always 1 when read; mask this out since all we want to know is if bit 1 was set or not --- Source/HBIOS/duart.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/HBIOS/duart.asm b/Source/HBIOS/duart.asm index dda23fa2..7b03fd93 100644 --- a/Source/HBIOS/duart.asm +++ b/Source/HBIOS/duart.asm @@ -693,8 +693,8 @@ DUART_DETECT: LD A,DUART_CR_MR0 ; SET POINTER TO MR0 DUART_OUTP(DUART_CR) ; POINTER IS STILL MR2 ON OTHER CHIPS DUART_INP(DUART_MR) ; GET VALUE OF MR0 IN A - CP 1 ; CHECK FOR TEST VALUE - JR Z,DUART_DETECT_26C92 ; YES, MUST BE A '92 WITH MR0 + AND 1 ; MASK TEST VALUE IN BIT 1 + JR NZ,DUART_DETECT_26C92 ; IF IT'S SET, THIS MUST BE A '92 WITH MR0 JR DUART_DETECT_XR88C681 ; ASSUME WE HAVE A FANCY EXAR CHIP ;