Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Q: what terminal emulations would you want supported?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
carlson  
View profile  
 More options Apr 9 1997, 3:00 am
Newsgroups: comp.terminals, comp.arch.embedded
From: carl...@xylogics.com
Date: 1997/04/09
Subject: Re: Q: what terminal emulations would you want supported?

In article <5ie3v9$...@baygull.rtd.com> d...@rtd.com (Don Yuniskis) writes:
> >Timeouts on the ESC characters?  I hope you're referring to possibly
> >adding a longish delay after sending ESC from the keyboard "Esc" key
> >for compatibility with broken curses implementations.

> Typically, ESC must be followed by the remaining characters (well, at least
> the *next* character) in a multicharacter escape sequence within a one second
> window to be recognized as an ESCape sequence as opposed to the ESCape
> key itself.  I haven't seen many (small) embedded systems that implement
> a "complete" tty driver with support for things like MIN and TIME.

I haven't seen any terminals or terminal emulators that do this.  This
is generally a necessary function on the *host* side, not the
*terminal* side of communications.  The data sent to terminals is
quite a bit different from the data sent to hosts.  The worst part of
the data sent to hosts is that ESC is unfortunately used by a number
of applications, and this makes 7-bit C1 sequences ambiguous without a
timer.  No such ambiguity exists on the terminal side of things.

> >Otherwise, this would be a bad thing to do.  VT-series terminals
> >operate by running a single state machine over the input, not by doing
> >a read-character/call-function type of implementation.  If you can't

> Yes, but will (for example) a VT-100 wait "forever" after receiving
> an ESC for the balance of the escape sequence?   Hmmm... I guess it
> *could* since it doesn't have anything *else* to use the ESC for...
> (which is different from curses trying to distinguish ESC from,
> for example, KEY_LEFT)

Yes, it does wait forever.  There's no reason for the host system to
send a "bare" escape to a terminal -- ever.  It would have no meaning.

> >handle a LF in the middle of a CSI, then the implementation is broken.

> Hmmm... I didn't realize LF was ignored in a CSI.  I had assumed
> that *all* characters (except flow control) were expected *literally*
> in these sequences!

No, it's not at all ignored, nor is it treated as a literal.  If you
send, for example, the sequence "ESC [ LF C", then the terminal will
move the cursor down one line (scrolling if necessary) and then to the
right one position (stopping at the right margin if necessary).

That's why you have to implement it with a centralized state machine,
rather than distributed read routines.  The C0 sequences are still
active in the middle of an ANSI control sequence.

(And ignoring this fact is why so many of the PC-based emulators that
are available are very poorly done and not quite compatible.  If the
implementors at least tested against "vttest," this common bug would
be caught.)

Flow control is done at a conceptually lower layer.  It can appear
anywhere in the "data," and should be handled separately by the input
driver.  (Though I suppose a careful implementation could also do it
in the central state machine.)

--
James Carlson <carl...@xylogics.com>, Prin Engr   Tel:  +1 508 916 4351
Bay Networks - Annex I/F Develop. / 8 Federal ST        +1 800 225 3317
Mail Stop BL08-05 / Billerica  MA  01821-3548     Fax:  +1 508 916 4789


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.