Set transmitter shift register empty bit in serial LSR. Windows 3.1 no longer hangs when DOS mouse driver loaded.
This commit is contained in:
parent
e737d2fa45
commit
b4bea10c06
1 changed files with 6 additions and 1 deletions
|
|
@ -172,7 +172,10 @@ uint8_t serial_read(uint16_t addr, void *p)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
if (serial->lcr & 0x80 && !AMSTRADIO)
|
if (serial->lcr & 0x80 && !AMSTRADIO)
|
||||||
return serial->dlab1;
|
{
|
||||||
|
temp = serial->dlab1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
serial->lsr &= ~1;
|
serial->lsr &= ~1;
|
||||||
serial->int_status &= ~SERIAL_INT_RECEIVE;
|
serial->int_status &= ~SERIAL_INT_RECEIVE;
|
||||||
|
|
@ -206,6 +209,8 @@ uint8_t serial_read(uint16_t addr, void *p)
|
||||||
temp = serial->mctrl;
|
temp = serial->mctrl;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
if (serial->lsr & 0x20)
|
||||||
|
serial->lsr |= 0x40;
|
||||||
serial->lsr |= 0x20;
|
serial->lsr |= 0x20;
|
||||||
temp = serial->lsr;
|
temp = serial->lsr;
|
||||||
if (serial->lsr & 0x1f)
|
if (serial->lsr & 0x1f)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue