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!