Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site denelcor.UUCP Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!houxm!houxz!vax135!cornell!uw-beaver!tektronix!hplabs!hao!denelcor!lmc From: lmc@denelcor.UUCP (Lyle McElhaney) Newsgroups: net.info-terms Subject: vt100 termcap (yes, once again....) Message-ID: <494@denelcor.UUCP> Date: Thu, 5-Jul-84 19:43:40 EDT Article-I.D.: denelcor.494 Posted: Thu Jul 5 19:43:40 1984 Date-Received: Sun, 8-Jul-84 01:06:09 EDT Organization: Denelcor, Aurora, CO Lines: 150 I have been interested getting a definitive termcap set up for the vt100 terminal (ignore all variations for the moment; just 80 col vanilla, no Advanced Video vt100). I've cadged a number of possibilities from the net and have written a program to compare them. I'm anticipating a lot of termcap/ terminfo work in the near future, and so I'm going to present my vt100 termcap here, with comments, as a sort of sanity check and to get some questions answered. Please reply by mail; I'll summarize to the net. Generally, this is the longest vt100 termcap I've seen. This is so because I've put everything in it. In particular, the status-line implementation is included, along with variables for defining a set of line-drawing characters (I've used these in a version of the Rand Editor). Anyway, here it is. Criticisms invited. dj|vt100|vt100 with status line on size: 903 Long enough. -------------------- Bj=v * Bl=m * Br=j * Line-drawing stuff proposed by Cj=n * negaard@aerospace. Gs & Ge intro Ge=1^O * and end sequences, others are (in Gs=1^N * order): Bottom join, bottom left Hl=q * corner,bottom right, cross, horiz Lj=t * line, left join, right join, top Rj=u * join,top left, top right, vertical Tj=w * line, and other unique character. Tl=l * This implementation assumes the Tr=k * init setup below. Tr=k * Vl=x * Xc=\140 * ae=1^O as=1^N start alternate char set. See is below bl=1^G Shouldn't this default to ^G? bs cd=45\E[J ce=2\E[K cl=45\E[2J (non status-line) cl=50\E7\E[23;80H\E[1J\E8 Erase lines 1-23. cm=1\E[%i%d;%dH co#80 cr=1^M cs=1\E[%i%d;%dr do=30^J I will use the shorter form whenever possible. The long delay is used whereever a scroll is possible. ds= Can't disable status line. es= I've seen this as enable status line and as escapes safe in status line. What's it to be? fs=1\E8 ho=1\E[H Description says home cursor (if no CUP). Is it not used otherwise? hs if=/usr/lib/tabset/vt100 is=\E>\E[?1;3;4l\E[?7;8h\E[1;24r\E( (overridden by:) B\E)0 is=\E>\E[?1;3;4l\E[?7;8h\E[1;23r\E( init: set scroll region (set line 24 B\E)0 aside); select cursor key mode, jump scrolling, 80 col, wraparound on, auto repeat on, USASCII character set, and line-drawing chars in shifted set. Set scroll must follow option sets. k1=\EOP k2=\EOQ k3=\EOR k4=\EOS ks=1\E= Not sure what "keypad transmit" is; ke=1\E> used here to set keypad for function keys, rather than numeric keypad. kb=^H Is this default? kd=\E[B A lot of people say kd=\E0B, but kl=\E[D thats only in applications mode, kr=\E[C which I reset and leave reset. ku=\E[A l1=PF1 l2=PF2 l3=PF3 l4=PF4 le=1^H li#24 (overridden by:) li#23 23 lines, 24th is status line. ll=1\E[24H (overridden by:) ll=1\E[23H mb=1\E[5m md=1\E[1m me=1\E[m mr=1\E[7m ms nd=1\E[C nl=30^J pt rc=1\E8 rf=/usr/lib/tabset/vt100 rs=\E>\E[?1;3;4l\E[?7;8h\E[1;23r\E( Same reset as init. B\E)0 rs=\E>\E[?1;3;4l\E[?7;8h\E[1;24r\E( B\E)0 sc=1\E7 se=1\E[m sf=30\ED so=1\E[7m sr=30\EM ta=1^I is this defaulted? te=1\E> Used by the Rand editor. Would ks/ke ti=1\E= a more appropriate choice? ts=4\E7\E[24;H\E[1K ue=1\E[m up=1\E[A us=1\E[4m vt#3 Where does this come from? ws#80 Padding - I assumed 9600 baud, and used the advertized padding. Its quite different from the padding I've seen in the other termcaps; Is there some empirical evidence that it should be different? Note lack of am and xn; a fellow from NADC wrote this about that: The reason that VT100s and their clones do not work with automargins enabled is that, regardless of whether :xn: is specified or not, the cursor is still in column 80 when the software has presumed it has wrapped. Thus, the software may decide that the best way to get to column 1 a couple of lines down is to use line feeds rather than cursor motion; this puts the VT100 cursor several lines down, but still in column 80, and it has by then forgotten that it should be in column 1. Here at NADC we religiously shun auto margins on all VT100 like terminals. Instead, we let the :is=...: string set up the terminal with wraparound enabled (for general use), but do not specify :am: in termcap. This way, the software makes no incorrect assumptions. However, I still have a problem. I can send the following sequence to my vt100: start with y in first and last cols, row 6; x in first and last cols of other rows; \E[6;80Hx\E[7;80Hy\E[6;1Hx (ignoring padding characters) (put x in last col, row 6; put y in last col row 7; put x in first col, row 6) This results in all x's in col 80, and y's in col 7 and 8 of col 1. Do I have a bad crt, or can others do this too? Oh, well, enough allready. Send me comments. -- Lyle McElhaney (hao,brl-bmd,nbires,csu-cs,scgvaxd)!denelcor!lmc