Need termcap for vt100 and vt220

Doug Gwyn gwyn at smoke.BRL.MIL
Thu Jun 7 02:11:28 AEST 1990


In article <1990Jun6.010609.5797 at gtisqr.uucp> roger at gtisqr.UUCP (Roger Droz) writes:
>What is the "standard" termcap/terminfo description for a vt100 number
>pad in "application mode"?  

There is no "standard" mapping; indeed, while modern terminfo/termcap
supports something like a hundred possible kinds of function key, it
does not cover VT100-like adding-machine-labeled keys (distinct from PF
keys), other than "ENTER".

>Of course, I know I can map it almost any way I want, but we may some
>day purchase an application from a third party (such as WordPerfect)
>that depends on the application pad operating in some de-facto
>standard way.

The best tactical approach for such a situation is to define a distinct
terminal type to which you set TERM before invoking such an application.
(Of course, the termcap/terminfo descriptio for that terminal type would
be set up appropriately for the application's expectations.)  For
example, TERM might be set to "vt100-wp" for WordPerfect.

>Also, the cursor arrow keys can operate in "normal" or
>"application" mode.  How are these typically treated?

I found the most useful setting to be the one realized in the
termcap description that I've appended to this article.

>A vt100 has function keys PF1 - PF4, so I'm sure one tactic is to
>generate more function keys.   Also, the vt100 doesn't have keys labeled
>next/previous screen, etc.  Another tactic would be to give the number
>pad keys specific meaning -- something like simulating the IBM PC number pad.

If you have one of the EDT rubber keypad condoms or some other way
to label the keypad keys (even a diagram taped to the right of the
screen), then you could do that.  However, I've found it more useful
to leave the mapping up to the application, using whatever key binding
mechanisms are provided.  For example, the Jove text editor's ~/.joverc
file can map the keypad key sequences into Jove commands:

bind-to-key Prefix-2 ^[O
bind-to-key Prefix-2 ^[[
bind-to-key previous-line ^XA
bind-to-key next-line ^XB
bind-to-key forward-char ^XC
bind-to-key backward-char ^XD
bind-to-key beginning-of-file ^XH
bind-to-key write-modified-files ^XM
bind-to-key clear-and-redraw ^XP
bind-to-key clear-and-redraw ^XQ
bind-to-key clear-and-redraw ^XR
bind-to-key clear-and-redraw ^XS
bind-to-key grow-window ^Xl
bind-to-key forward-word ^Xm
bind-to-key buffer-position ^Xn
bind-to-key next-window ^Xp
bind-to-key scroll-up ^Xq
bind-to-key scroll-down ^Xr
bind-to-key shrink-window ^Xs
bind-to-key i-search-reverse ^Xt
bind-to-key i-search-forward ^Xu
bind-to-key split-current-window ^Xv
bind-to-key i-search-reverse ^Xw
bind-to-key i-search-forward ^Xx
bind-to-key backward-word ^Xy

Here is the best generic VT100 termcap entry that I've been able to
come up with over the years:

#
# DEC VT100 with variations for Advanced Video Option and screen width.
# The following SET-UP modes are assumed for normal operation:
#	ANSI_MODE	AUTO_XON/XOFF_ON	NEWLINE_OFF	80_COLUMNS
#	WRAP_AROUND_ON
# Other SET-UP modes may be set for operator convenience or communication
# requirements; I recommend
#	SMOOTH_SCROLL	AUTOREPEAT_ON	BLOCK_CURSOR	MARGIN_BELL_OFF
#	SHIFTED_3_#
# Unless you have a graphics add-on such as Digital Engineering's VT640
# (and even then, whenever it can be arranged!) you should set
#	INTERLACE_OFF
# Hardware tabs are assumed to be set every 8 columns; they can be set up
# by the "reset", "tset", or "tabs" utilities (use vt100-x, 132 columns, for
# this).  I have included some compatible code in "rs" for the VT640 if you
# have one.  No delays are specified; use "stty ixon -ixany" to enable DC3/DC1
# flow control!
# Thanks to elsie!ado (Arthur David Olson) for numerous improvements.
d0|vt100|DEC VT100 with AVO:\
	:ae=^O:as=^N:bl=^G:cd=\E[J:ce=\E[K:cm=\E[%i%d;%dH:co#80:cr=^M:\
	:cs=\E[%i%d;%dr:ct=\E[3g:DO=\E[%dB:do=^J:ho=\E[H:is=\E<\E)0:it#8:\
	:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
	:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:LE=\E[%dD:\
	:le=^H:li#24:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:ms:nd=\E[C:\
	:nw=\EE:rc=\E8:RI=\E[%dC:\
	:rs=^X\E<\E2\E[?9h^]\E^L^X\E[20l\E[?3;9;6l\E[r\E[m\E[q\E(B^O\E)0\E>:\
	:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ti=\E[?7l:\
	:te=150\E[?7h:ue=\E[m:UP=\E[%dA:up=\EM:us=\E[4m:vt#3:xo:\
	:cl=\E[H\E[J:\
	:bs:kn#4:pt:
dv|vt100-v|DEC VT100 without AVO:\
	:ue@:us@:\
	:tc=vt100:
d8|vt100-w|DEC VT100 with AVO in 132-column mode:\
	:co#132:ct=\E[?3h\E[g:\
	:rs=^X\E<\E2\E[?9h^]\E^L^X\E[20l\E[?9;6l\E[?3h\
\E[r\E[m\E[q\E(B^O\E)0\E>:\
	:tc=vt100:
d9|vt100-x|DEC VT100 without AVO in 132-column mode:\
	:ct=\E[?3h\E[g:li#14:ll=\E[14H:ue@:us@:\
	:tc=vt100-w:



More information about the Comp.unix.questions mailing list