PCem

changeset 93:df0c5617560a

Set transmitter shift register empty bit in serial LSR. Windows 3.1 no longer hangs when DOS mouse driver loaded.
author TomW
date Sat Mar 29 15:17:23 2014 +0000
parents c49302f432e2
children a956082bfaf9
files src/serial.c
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line diff
     1.1 --- a/src/serial.c	Sat Mar 29 14:28:13 2014 +0000
     1.2 +++ b/src/serial.c	Sat Mar 29 15:17:23 2014 +0000
     1.3 @@ -172,7 +172,10 @@
     1.4          {
     1.5                  case 0:
     1.6                  if (serial->lcr & 0x80 && !AMSTRADIO)
     1.7 -                        return serial->dlab1;
     1.8 +                {
     1.9 +                        temp = serial->dlab1;
    1.10 +                        break;
    1.11 +                }
    1.12  
    1.13                  serial->lsr &= ~1;
    1.14                  serial->int_status &= ~SERIAL_INT_RECEIVE;
    1.15 @@ -206,6 +209,8 @@
    1.16                  temp = serial->mctrl;
    1.17                  break;
    1.18                  case 5:
    1.19 +                if (serial->lsr & 0x20)
    1.20 +                        serial->lsr |= 0x40;
    1.21                  serial->lsr |= 0x20;
    1.22                  temp = serial->lsr;
    1.23                  if (serial->lsr & 0x1f)