Re: serial performance

Trifle Menot
2010-03-13T05:12:48Z

On Fri, 12 Mar 2010 15:57:44 +0000, Trifle Menot
<triflemenot@beewyz.com> wrote:

>If I start dosemu -s with this:
>
>> $_ports = "fast range 0x3F8,0x3FF"
>> $_irqpassing = "4"
>
>A speed of 57600 looks fast, like it should be. But if I omit the
>direct hardware access, and try this:
>
>> $_com1 = "/dev/ttyS0 irq 4"
>
>57600 still works, but looks much slower on the remote side of a null
>modem cable. Seems like I read where the code traps serial port writes
>and buffers data to /dev/ttyS0. Is the trapping causing the slowdown?
>Is there a cure?

Digging deeper, I noticed that my PCBoard BBS recognized a 16550 when
using direct hardware access, but only a 16450 with /dev/ttyS0.

I looked at the dosemu source to try and understand why. Being new to
the code, I'm not 100% sure of what I'm saying here, but it looks like
FIFO mode is turned on according to whatever bits are poked into the
virtual UART. So then I looked closer my PCBoard configuration, and I
noticed a setting to "Force 16550A usage" and I turned it on.

With that setting, PCBoard now sees a 16550 when using /dev/ttyS0, and
my remote output looks fast, like 57600 should. So poking the necessary
bits into the dosemu virtual UART fixed things up.