Browse Source

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
pull/138/head
Chris Odorjan 6 years ago
parent
commit
c766c8bc60
  1. 4
      Source/HBIOS/duart.asm

4
Source/HBIOS/duart.asm

@ -693,8 +693,8 @@ DUART_DETECT:
LD A,DUART_CR_MR0 ; SET POINTER TO MR0 LD A,DUART_CR_MR0 ; SET POINTER TO MR0
DUART_OUTP(DUART_CR) ; POINTER IS STILL MR2 ON OTHER CHIPS DUART_OUTP(DUART_CR) ; POINTER IS STILL MR2 ON OTHER CHIPS
DUART_INP(DUART_MR) ; GET VALUE OF MR0 IN A 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 JR DUART_DETECT_XR88C681 ; ASSUME WE HAVE A FANCY EXAR CHIP
; ;

Loading…
Cancel
Save