Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!columbia!rutgers!sri-spam!mordor!lll-lcc!unisoft!hoptoad!academ!killer!elg
From: elg@killer.UUCP (Eric Green)
Newsgroups: comp.sources.d,comp.terminals,comp.emacs
Subject: Re: VT100's keeping up at high baud rates
Message-ID: <1021@killer.UUCP>
Date: Sat, 20-Jun-87 01:51:07 EDT
Article-I.D.: killer.1021
Posted: Sat Jun 20 01:51:07 1987
Date-Received: Fri, 26-Jun-87 03:07:28 EDT
References: <5490@think.UUCP>
Organization: Bayou Telecommunications
Lines: 36
Xref: mnetor comp.sources.d:886 comp.terminals:325 comp.emacs:1241

in article <5490@think.UUCP>, rlk@.COM (Robert Krawitz) says:
> Xref: killer comp.sources.d:841 comp.terminals:317 comp.emacs:1111
> It's amazing how easy it is to avoid externally-visible flow control
> if you really try.  The answer is buffering.  Several years ago, I was
> working on an application that received data from a 1200 bps line.
> Only problem was, this data was sent to a character-mapped screen with
> no hardware support for scrolling, and scrolling took something like
> 18 ms.  The solution?  Use another computer (these were cheap) as a
> front end whose only task was to take data from the serial port,
> buffer it, and send it to the parallel port on demand.  

AMEN!

A friend of mine wrote a TVI910 emulator for the COMMODORE 64! He used an 8k
bit-map hi res screen to emulate 80 columns (via a 4-bit-wide character set)
on a machine with only a 40 column screen. Now, it takes about half a second
for a lowly 6502 to scroll an 8k area of memory. Everything else is just as
slow, too. So you'd expect some real bad flow control when going at 1200 baud.
Yet I never encountered any problems with Emacs, after he wrote in one simple
addition to the program: AN INPUT BUFFER. The RS232 port on a C-64 is already
interrupt driven, he just dedicated 4K of RAM to a buffer. So Emacs could
re-draw the entire screen and more, and I wouldn't lose a single character. 

Of course, listing long directories or "cat"'ing things barfled things up, but
the "more" command solved that problem.... "more" could spit its stuff out at
full speed, and it'd be just filling up the buffer....

Of course, this DID make flow control and interrupts a bit... problematic. I'd
hit a control-C, and about 10 seconds later, after the buffer emptied, would I
see the  "^C  %".

   Eric Green
     {ihnp4,cbosgd}!killer!elg   elg@usl.CSNET

PS: Last I heard, he'd sold his latest Amiga program to PP&S for a hefty sum,
I guess the cream really DOES rise to the top!