--- bochs-2.2.6/iodev/serial.cc 2005-07-11 09:24:47.000000000 -0700 +++ bochs-2.2.6.patch/iodev/serial.cc 2006-05-28 16:41:33.278938000 -0700 @@ -245,8 +245,13 @@ BX_SER_THIS s[i].io_mode = BX_SER_MODE_TERM; BX_DEBUG(("com%d tty_id: %d", i+1, BX_SER_THIS s[i].tty_id)); tcgetattr(BX_SER_THIS s[i].tty_id, &BX_SER_THIS s[i].term_orig); - bcopy((caddr_t) &BX_SER_THIS s[i].term_orig, (caddr_t) &BX_SER_THIS s[i].term_new, sizeof(struct termios)); - cfmakeraw(&BX_SER_THIS s[i].term_new); + memcpy((caddr_t) &BX_SER_THIS s[i].term_new, (caddr_t) &BX_SER_THIS s[i].term_orig, sizeof(struct termios)); + BX_SER_THIS s[i].term_new.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP + |INLCR|IGNCR|ICRNL|IXON); + BX_SER_THIS s[i].term_new.c_oflag &= ~OPOST; + BX_SER_THIS s[i].term_new.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); + BX_SER_THIS s[i].term_new.c_cflag &= ~(CSIZE|PARENB); + BX_SER_THIS s[i].term_new.c_cflag |= CS8; BX_SER_THIS s[i].term_new.c_oflag |= OPOST | ONLCR; // Enable NL to CR-NL translation #ifndef TRUE_CTLC // ctl-C will exit Bochs, or trap to the debugger --- bochs-2.2.6/iodev/serial.h 2005-07-10 09:51:09.000000000 -0700 +++ bochs-2.2.6.patch/iodev/serial.h 2006-05-28 16:39:03.757839000 -0700 @@ -40,7 +40,7 @@ #define SERIAL_ENABLE #endif -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__APPLE__) +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__APPLE__) || defined(__sun__) #define SERIAL_ENABLE extern "C" { #include