[Coco] DW and 6551
Aaron Wolfe
aawolfe at gmail.com
Tue Feb 10 22:37:10 EST 2015
If you use the dw virtual terminals on /nX, you will never drop a character
no matter what else is happening, and can have (theoretically) 15 terminals
via telnet sharing a 230,000bps link.
However, Drivewire does monopolize the CPU when doing i/o. There is no
choice about it, with the bitbanger at least. The best we can do is get
our I/o over with ASAP and do it as infrequently as possible.
When using terminals over drivewire, it does use adaptive polling and a
simple traffic shaping technique to ensure no one terminal goes too long
without being serviced. The adaptive polling attempts to keep interactive
sessions at a response time under 100ms by giving these sessions priority
over bulk transfers such as files and increasing the poll rate when someone
is actively typing and then slowing it down when you're not typing. However
it is not able to balance this with the needs of the outside os9 system, so
if you have a separate serial port that isn't managed by the DW driver, DW
may cause that serial port to be serviced less often than it would like to
be, and that could definitely cause lost characters on the outside serial
port.
On Feb 10, 2015 8:30 PM, "Allen Huffman" <alsplace at pobox.com> wrote:
> > On Feb 10, 2015, at 5:35 PM, Aaron Wolfe <aawolfe at gmail.com> wrote:
> >
> > There was a driver at one point, but I don't think anyone maintains it
> and
> > so I don't think it was converted to the modular system we started using
> a
> > while back. In the time since that document was written I think it's
> > realistically changed to "not supported". Writing a driver for the 6551
> > would not be very difficult but since it's so limited in speed compared
> to
> > the bitbanger I think there is little interest.
>
> At a reduction of speed, would we get better responsiveness by using the
> hardware, though? I was stunned to find that I could use 9600 baud on /t1 a
> few nights ago. If I typed real fast it would glitch a character, but it
> was working. I knew this was easy in RS-DOS, but thought the bitbanger code
> was limited to like 1200 or so.
>
> BUT, it really chewed up the system and made everything hang and pause. I
> note that bitbanger DW does the same thing, which is fine if you aren’t
> multitasking but I tend to always be doing something. I wonder if the RS232
> pak would be a good tradeoff — less IRQ masking but slower disk transfers.
>
> One of the big myths back in the day was the limit of the bitbanger. It
> was rare to see terminal programs that went very fast, but Ultimaterm (and
> probably Sockmaster’s) proved it could be done. We used a remote drive
> written by Ken Johnson (Johnston?) who wrote Ultimaterm and it went to a
> higher baud rate than anything we knew about - - complete with a typeahead
> buffer in BASIC.
>
> I was very impressed /t1 could do that kind of stuff now — I am guessing
> it got upgraded because of new knowledge gained from DW? Or has it always
> worked and we were just told it was impossible so we never tried?
>
> — A
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>
More information about the Coco
mailing list