[net.sources] Sysline on a vt100

leif@erisun.UUCP (Leif Samuelsson) (11/22/85)

Here is a csh script for running sysline on a vt100. It seems to
work with most programs, but it might interfere with editors
like GNUMACS. Put it in your .login, not .cshrc!


Leif Samuelsson

Ericsson Information Systems AB			..enea!erix!erisun!leif
Advanced Workstations Division
S-172 93  SUNDBYBERG				59 19 N / 17 57 E
SWEDEN

----Cut here------
if ($term == vt100) then

# Call tset to get TERMCAP entry
    set noglob
    eval `tset -Q -s`

# Insert some new fields in the TERMCAP entry and remove padding on
# some capabilities. Sysline can't handle them.
    set noglob
    setenv TERMCAP `echo "$TERMCAP" | sed -e 's/:/:li#23:i2=\\E[1;23r\\E[23;1H:cl=50\\E[24;1H\\E[1J\\E[1;23r:hs:es:ts=\\E7\\E[24;%dH\\E[1K:fs=\\E8:/' -e 's/=2\\E/=\\E/g'`
    unset noglob

# We want current dir on status line
    alias cd 'cd \!*; echo $cwd > ~/.who'
    cd .

# Now start sysline
    sysline -q +30
    endif

hans@erisun.UUCP (Hans Albertson) (11/22/85)

[]
Shucks, Leif, but if sysline can't handle padding, then sysline
has a bug, and, ipso facto, sysline should be corrected.

Source code for ever!

-- 
 Two's complement, but three's an int.
Hans Albertsson EIS, USENET/uucp: {decvax,philabs}!mcvax!enea!erix!erisun!hans

mark@cbosgd.UUCP (Mark Horton) (11/25/85)

A shell script to run sysline?  Wouldn't it just make sense to post
a terminfo or termcap description to handle it?

We've had sysline running on vt100's here for over 4 years - in fact,
vt100 was one of the original terminals supported back in the days
when there were separate programs called h19sys, vt100sys, and tvisys.

There are terminfo entries for the vt100 with the status line at the
bottom and at the top.  (The shell script just posted appears to put
it at the bottom.)  Experience has shown that it works better at the
top, because clearing the screen wipes it out if it's at the bottom.
(I've also found that I prefer to have my status line at the top of
the screen if I have a choice.)

Note that for status line on top, you have to increment the row numbers
on cursor addressing and changing the scrolling region.  The former is
hard in termcap, although I suspect some games with %r and %i may work.

As to padding, as I recall, sysline handles padding just fine.  I think
the 2's that are being gotten rid of are just unnecessary (since the
vt100 does xon/xoff) and the author was probably getting rid of them
for other programs (especially rain) that don't use termlib as documented.

Here's the standard terminfo for both flavors of status line on vt100.
You can easily translate this into termcap if you like.

	Mark

vt100|vt100-am|dec vt100 (w/advanced video),
	mir, msgr, cr=^M, cud1=^J, ind=^J, bel=^G, cols#80, lines#24, it#8,
	clear=\E[H\E[J$<50>, cub1=^H, am, cup=\E[%i%p1%d;%p2%dH$<5>,
	cuf1=\E[C$<2>, cuu1=\E[A$<2>, el=\E[K$<3>, el1=\E[1K$<3>, ed=\E[J$<50>,
	cud=\E[%p1%dB, cuu=\E[%p1%dA, cub=\E[%p1%dD, cuf=\E[%p1%dC, 
	smso=\E[1;7m$<2>, rmso=\E[m$<2>, smul=\E[4m$<2>, rmul=\E[m$<2>,
	bold=\E[1m$<2>, rev=\E[7m$<2>, blink=\E[5m$<2>, sgr0=\E[m^O$<2>,
	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;,
	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smkx=\E[?1h\E=, rmkx=\E[?1l\E>,
	enacs=\E(B\E)0, smacs=^N, rmacs=^O,
	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
	tbc=\E[3g, hts=\EH, home=\E[H, ht=^I, ri=\EM$<5>,
	kcuu1=\EOA, kcud1=\EOB, kcuf1=\EOC, kcub1=\EOD, kbs=^H,
	vt#3, xenl, xon, sc=\E7, rc=\E8, csr=\E[%i%p1%d;%p2%dr,
vt100-nam|vt100 w/no am (w/advanced video),
	am@, xenl@, use=vt100-am,
# Info:
#	vt100's with one of the 24 lines used as a status line.
#	We put the status line on the top.
#
vt100-s|vt100-s-top|vt100-top-s|vt100 for use with sysline,
	lines#23, is2=\E7\E[2;24r\E8, clear=\E[2;1H\E[J$<50>, home=\E[2;1H,
	dsl=\E7\E[1;24r\E8,
	cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, csr=\E[%i%i%p1%d;%p2%dr,
	hs, eslok, tsl=\E7\E[1;%p1%dH\E[1K, fsl=\E8, use=vt100-am,
# Info:
#	Status line at bottom. 
#	Clearing the screen will clobber status line.
#
vt100-s-bot|vt100-bot-s|vt100 for use with sysline,
	lines#23, is2=\E[1;23r\E[23;1H, dsl=\E7\E[1;24r\E8,
	hs, eslok, tsl=\E7\E[24;%p1%dH\E[1K, fsl=\E8, use=vt100-am,