3.0e terminfo

Vernon Schryver vjs at calcite.UUCP
Mon Oct 31 12:42:44 AEST 1988


Vnews, from news 2.11.14, does not work very will with the Microport
3.0e/DOS Merge at386 terminfo entry and kernel drivers.  In particular,
control-P and control-N mess up the screen, at least when vnews has been
compiled with STATOP to put the status at the top.

After spending far more hours than the end (vnews) justified, I've found the
following problems with the capabilities in the 3.0e/DM at386 terminfo entry:

vpa     is broken in the driver.  The sequence ^[[0d gets you to the 2nd
	line of the screen, as does ^[[1d, while ^[26d gets you to line 25.
	One might use %?.  vpa=\E[%i%p1%d;H is an easy work around, costing
	1 char.

csr	is broken in the driver.  ^[x;yr fails the test on page 17 of
	terminfo(4) as a 'destructive scrolling region (line the VT100)'.
	It fails because ^[S does not blank the bottom of the region,
	just as the bad things in vnews should have told me hours ago.  I
	think it is necessary to delete csr from the terminfo entry.
	This may not help someone trying to emulating VT100's.

is1     may be broken.  It leaves garbage on the screen.  It seems possible
	that it was meant to be is2=\E7\E[r\E8\E[?6l\E[?7l instead of
	is2=\E7\E[r\E8\E[?6;?7l  At least that fixes the cruft.

rs1	has an extra ';' after the '\Ec' that makes a screen dropping.
	rs[123] will not restore all possible bad states (see below).

rs2	is simply crazy, or I can't read.  Page 14 of terminfo(4) implies
	rs{1,2,3} do not get any parameters.  However, the 3.0e version
	uses both %p1 and %p2.

??	one of the reset or initializing strings should include \E[4l.  It
	is a puzzle to escape the \E[4h mode, unless you cheat and read
	ansi(7).  None of the existing [ir]s[123] seem to do it.  You can
	get things total confused by echoing garbage.  Resetting is not
	useful unless it starts with \E13l, since nothing works until ESC
	does.  It seems useful to have is1=\E[13l\E[3l\E[4l\E[10m\E[=h
	to clear ALL wierd modes.  Similarly, rs1 should start with \E13l

cub1, cud1, rms0, rmul are longer than necessary, which does not matter
	unless you use cu(1) to talk to a remote machine, which you have
	told to use a terminfo/termcap entry matching your screen.  In
	those circumstances, extra bytes=extra time=lost performance.

If you use infocmp to unpack the standard version, beware that infocmp
will change kdch1 from \177 to ^?, which tic will convert to ^_.  That is,
infocmp and tic are not inverses of each other.  You have to edit the
result of infocmp to restore kdch1=\177.  (It looks to me like a bug in tic.)

I tried this in B&W.  I will not guess what these changes might do to color.
As always, you should read the manuals and check it out yourself before
doing as I say; don't trust bozos in the netnews.  Start with terminfo(4),
ansi(7), and display(7).  Use the TERMINFO enviroment variable so you don't
have to change the real stuff in /usr/lib.

Vernon Schryver
vjs at calcite.uucp  or   {decwr,pyramid,sun}!sgi!calcite!vjs



More information about the Comp.unix.microport mailing list