My serial port investigation continues. Here's the premise again...

I've got an embedded system that dumps chars and strings to a serial
port. I've attached a Slackware 7.1 Toshiba 430 CDT laptop to the other
end of the serial cable.  When the system streams a string of chars the
linux box doesn't get anything but if I send individual chars they are
received by the linux box.

When I send 'setserial -ga /dev/ttyS0' it tells me my UART is a 16550A.
If I change this to a 16550 everything works fine. I looked at
/etc/serial.conf and it is defining the port as a 16450. Who's really
controlling this and how do I get it set properly?

As a side problem:

This code doesn't print anything until a \n is received from the
sending unit:

...
char buf[255];
...
    while (STOP==FALSE) {       /* loop for input */
        res = read(fd,buf,1);   /* returns after 1 chars have been
input */
        printf("%c", buf);
        if (buf[0]=='z') STOP=TRUE;
    }

But this code does:

...
char buf[255];
...
    while (STOP==FALSE) {       /* loop for input */
        res = read(fd,buf,1);   /* returns after 1 chars have been
input */
        printf("%c\n", buf);
        if (buf[0]=='z') STOP=TRUE;
    }

Why would the addition of a \n fix the code. It appears to flush the
print buffer.

Thanks,

-John