Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!security!genrad!decvax!cca!z From: z...@cca.UUCP (Steve Zimmerman) Newsgroups: net.emacs Subject: EMACS vs. reverse video Message-ID: <6020@cca.UUCP> Date: Tue, 1-Nov-83 09:09:54 EST Article-I.D.: cca.6020 Posted: Tue Nov 1 09:09:54 1983 Date-Received: Fri, 4-Nov-83 00:11:43 EST Lines: 31 Although most terminals with reverse video are handled properly by the various EMACSes, there are two types of reverse video that cause problems. The first is that used by the hp's, which is denoted by the "xs" capability. As Warren Montgomery pointed out, the only way to clear out reverse video from a location on such a terminal is to send a "clear line" sequence somewhere in the line before that location. This is a side effect of the fact that in these terminals reverse video is an attribute associated with the screen location, not with the character as in most terminals. Another side effect of this is that if the terminal also supports character insert, inserting a character on a line somewhere in front of a reverse video character (such as a highlighted mark) will cause the following characters to shift down normally, but the reverse video mark will stay firmly rooted, thereby highlighting the previous character. The solution is not to use character insert on these terminals when there is a reverse video character farther down the line, but instead to clear out the rest of the line and redisplay it with the reverse video character properly positioned. The second type of problem terminal is typified by the Televideo; these terminals all have the "sg" capability. The terminal automatically inserts one or two spaces on the screen whenever it turns reverse video on or off; these spaces are actually used to store the information that the display mode is changing as of the next character, and it is impossible to get around their presence. As most programs cannot tolerate extraneous spaces in the display like this, the reverse video mode on these terminals is essentially useless. Generally, the proper thing to do is simply for programs not to use reverse video on terminals where "sg" is present. Steve Zimmerman {decvax,linus}!cca!z
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site umcp-cs.UUCP Path: utzoo!linus!philabs!seismo!rlgvax!cvl!umcp-cs!chris From: ch...@umcp-cs.UUCP Newsgroups: net.emacs Subject: Re: EMACS vs. reverse video Message-ID: <3505@umcp-cs.UUCP> Date: Tue, 1-Nov-83 12:22:47 EST Article-I.D.: umcp-cs.3505 Posted: Tue Nov 1 12:22:47 1983 Date-Received: Fri, 4-Nov-83 02:04:49 EST References: <6020@cca.UUCP> Organization: Univ. of Maryland, Computer Science Dept. Lines: 41 On the :xs: type terminals with which I have had experience (Tek 4025 in workspace & HP 262x/264x) inserting a character *does* push the attribute over in the screen. The Tek (and probably the HP) uses something called a "display tracker" which wanders through screen memory, interpreting special codes. One of these is for "start enhancement mode <x>". When you insert a character, the insertion moves the "start enhancement" code one space to the right, moving the attribute on the screen. Also, (again at least on the Tek & HP) you can get rid of the highlighting without using clear to end of line. Just write a new highlight code at the same position as the old one. This is how my windows driver for HPs works. The easiest way to get around the Televideo type "magic cookie" glitch is (as Steve Zimmerman said) to not use standout. However, it is possible to deal with this kind of inverse video, as long as you aren't trying to mix inverse video and normal characters on the same line, by noting that one or two "spaces" are there and that cursor motion must be adjusted, and that the line is shorter than it would be normally. (If you're in the market for terminals, beware the magic cookie type. There's an Intel display controller (I can't remember which one) which seems to be the major reason for the existence of the magic cookie glitch.) (Speaking of glitches: the 4025 also has codes for "no-op" and "anti-no-op" and jump instructions. It's very easy to load up enough JUMP instructions to get the display all screwed up because the tracker can't keep up. If you get the long sequence behind a NOP or ANOP the screen starts to bounce up and down. If you're on a 4025, try (<R> = return): !wor 10 h<R>!att e-s<R>a!att s-e<R>b!att e-s<R>c!att s-e<R>d (etc) With enough of those the screen will start to jiggle about and you may get cursors on every line. Fun, eh?) -- In-Real-Life: Chris Torek, Univ of MD Comp Sci UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris.umcp-cs@CSNet-Relay