KFL@MC.LCS.MIT.EDU ("Keith F. Lynch") (03/02/86)
From: Jeff Siegal <JBS%DEEP-THOUGHT@EDDIE.MIT.EDU> 1) The ESC key is dead. It is an unmanagable concept. If you don't know why, I'll be glad to explain it. Please do. The escape key is necessary for lots of software, from Emacs to VisiCalc. On virtually every ASCII keyboard it is in a prominent place, and since ESC is very seldom a part of any text or numeric input to a program, it makes a very useful command key or command prefix key. I have used programs which use ESC under VMS, UNIX, TOPS-10, TOPS-20, CP/M, MS/DOS, Apple-DOS, and ITS. Most major programs that I write use the ESC key for something. The only ASCII keyboards I can recall ever seeing that don't have it are the VT200 and MicroVAX keyboards made by DEC. Even the stripped down Apple II keyboard has an ESC key. These days, with screen editors, spreadsheets, database programs, and other screen oriented software all the rage, the ESC key is more important than ever. Especially on ANSI terminals, as they use ESC sequences for virtually everything. 2) C-S, C-Q are too commonly used in the communcations protocol to be useful in applications. I hurts me to say this, since I'm generally an EMACS fan too. ^S ^Q flow control is an idea whose time has passed. With international networks, the line delays are too long. When I used a VT100 terminal to log onto a VMS VAX 3000 miles away, I had to turn smooth scroll off, as the delay on the line was causing the terminal buffer to overflow before the host got the ^S, resulting in garbage on the screen. The only reason for ^S ^Q flow control is because the terminal can't keep up with the data coming in. At speeds less than 19,200 baud, I don't think there is any excuse for that. My H19 terminal, costing less than half the cost of a VT100 at the time I got it, can keep up with any and all data and ESC sequences even at 9600 baud. There is not reason why DEC terminals should not be able to. One reason for a terminal being unable to keep up is smooth scroll. Smooth scroll was never a terribly good idea. We encourage our VMS users not to use it since processing all the ^Ss and ^Qs eats up a significant percentage of our VAX-11/785. And because sending a broadcast message to a user who is ^Sd can cause the broadcasting process to freeze. I think that smooth scroll was intended to make text easier to read as it scrolls. Text can be difficult to read if it scrolls at a variable rate. However, this problem was solved years ago. The solution is for the host to send one screen of information at a time and to wait for the user or the terminal to request another screen. The new text then overwrites the old text from the top, and nothing ever scrolls. Note that no amount of network delay can result in any data being lost or garbled, since nothing is sent until the terminal says it is ready for another screenful. I was dismayed to discover that DEC is apparently unaware of this. As demonstrated by the fact that the NO-SCROLL key on the VT100 does not switch the terminal from scroll mode to wrap mode as I had guessed the first time I saw it, but simply freezes the screen, preventing any new text from being displayed. ^S ^Q flow control is not incompatible with other uses for ^S and ^Q. Many terminals, including the VT100, will use ^S and ^Q for flow control and will allow the user to type those characters for use with applications programs, such as Emacs, that use them. The VT200, however, simply ignores ^S and ^Q when typed by the user. This is not reasonable behavior. Neither is it reasonable that, while the VT200 has dozens of keys that send ESC followed by several characters, it has no key that simply sends an ESC. Fortunately, it is easy to have Emacs interpret the backquote key (which is where the ESC key belongs) as an ESC, at the expense of having a hard time sending a real backquote character. But this is no solution, since most programs that require an ESC as input do not allow users to rebind keys in this way. Neither should terminals or computers be set up such that users have to fight against them, and have to do obscure and complicated rebindings, to be able to use features that most users have now been taking advantage of for years. In particular, it is not reasonable for a terminal to not let the user send all 128 ASCII codes, or to not be able to do so without some sort of rebinding or reprogramming of the terminal. The trend, in fact, is away from keyboards with missing codes, such as the Apple II, and towards keyboards that allow users to send all 256 possible 8 bit codes. DEC is not causing the problem. The problem is applications which have not evolved to co-exist with modern terminal/communications standards. It looks to me like DEC *IS* causing the problem. No other modern computers or terminals that I am aware of have these misfeatures. Please tell me how Emacs should 'evolve' to compensate for this lossage. If TPU is an 'evolved' Emacs, I will choose the old way any day of the week. ...Keith
JBS%DEEP-THOUGHT@EDDIE.MIT.EDU (Jeff Siegal) (03/02/86)
1) The ESC key is dead. It is an unmanagable concept. If you don't know why, I'll be glad to explain it. Please do. [lots of flamage about VisiCalc, etc. All keyboards have ESC keys (paraphrased)] Especially on ANSI terminals, as they use ESC sequences for virtually everything. Exactly the point. My concept of unmanageable comes from the fact the the ESC code is used as the lead-in for ANSI character sequences (most common ones start with ESC-[, which has an 8-bit equiv. I can't remember; some others start with ESC-O, still others with ESC-P). These codes are used by the terminal to report the use pressing the function or other special keys, to report the cursor position, to report mouse position, and mouse button activation, etc. Giving the single code (27 - ESC) a meaning of its own prevents these other functions from being used. An aside: I complained a while ago to RMS about GNUemacs not having support for ANSI sequences (on the input side) and even offered to write the code and make the appropriate mods to the keyboard interface code. His response was that he did not want to eliminate the traditional Emacs command ESC-[, since he used that and did not use ANSI terminals. I tried to explain that ESC was just a kludge for the lack of a Meta key, and that Meta would be implemented by another prefix key on ANSI terminals (Gold key on a VT100, perhaps), but I was ignored (how dare you speak out against the ESC key and other religious nonsense). 2) C-S, C-Q are too commonly used in the communcations protocol to be useful in applications. I hurts me to say this, since I'm generally an EMACS fan too. ^S ^Q flow control is an idea whose time has passed. With international networks, the line delays are too long. When I used a VT100 terminal to log onto a VMS VAX 3000 miles away, I had to turn smooth scroll off, as the delay on the line was causing the terminal buffer to overflow before the host got the ^S, resulting in garbage on the screen. Non-broken applications of XON/XOFF use it only for flow control over a single comm line (e.g. EIA RS-212). For example, between the terminal and the computer (or terminal concentrator) or between the computer and a printer on an async. line. There is no out-of-band data path for communications over an EIA line with 4 conductor wire. If people are willing to use 6 conductor cable, there is hardware flow control, but in most cases this is not done, and all hardware does not support it. It will also not work over a modem. As you say, using XON/XOFF over a network is likely to fail horribly. Over network lines, the network protocol should (and does) provide out-of-band flow control. In any case, the use over any part of the link between the user and the computer of the C-S and C-Q chars prevent their use by applications programs. The only reason for ^S ^Q flow control is because the terminal can't keep up with the data coming in. At speeds less than 19,200 baud, I don't think there is any excuse for that. How about a graphics command sequence to rotate a figure x degress in three dimensions (or even to fill a large region on the screen)? How about terminals with optional hard-copy of the recieved characters? How about a terminal in SET-UP mode? How about a LONG sequnce of configuration codes? My H19 terminal, costing less than half the cost of a VT100 at the time I got it, can keep up with any and all data and ESC sequences even at 9600 baud. There is not reason why DEC terminals should not be able to. See above. One reason for a terminal being unable to keep up is smooth scroll. Smooth scroll was never a terribly good idea. We encourage our VMS users not to use it since processing all the ^Ss and ^Qs eats up a significant percentage of our VAX-11/785. Nonsense. If you are going to make such outrageous claims, please provide either a reference or a way for someone else to demonstrate it. (BTW: Do you use smooth scroll or not; above you said that you had to "turn off smooth scroll", implying that it was normally on) And because sending a broadcast message to a user who is ^Sd can cause the broadcasting process to freeze. Yes, this is a VMS bug. I think that smooth scroll was intended to make text easier to read as it scrolls. Text can be difficult to read if it scrolls at a variable rate. However, this problem was solved years ago. The solution is for the host to send one screen of information at a time and to wait for the user or the terminal to request another screen. The new text then overwrites the old text from the top, and nothing ever scrolls. Note that no amount of network delay can result in any data being lost or garbled, since nothing is sent until the terminal says it is ready for another screenful. This is strictly your preference. I perfer jump scroll to both smooth scroll and non scrolling. If someone prefers smooth scroll, why should they be prevented from using it by the lack of flow control? [flame about vt100 no-scroll key] ^S ^Q flow control is not incompatible with other uses for ^S and ^Q. Many terminals, including the VT100, will use ^S and ^Q for flow control and will allow the user to type those characters for use with applications programs, such as Emacs, that use them. This is only the case if auto-flow-control is turned off. If it is on, the C-S and C-Q keys change the internal "screen-frozen" state bit. The terminal only sends XON/XOFF's when the internal buffer reaches certain documented states (i.e. number of characters in buffer, etc.) The VT200}, however, simply ignores ^S and ^Q when typed by the user. This is not reasonable behavior. The VT220 behavior is the same as the VT100. Turn XON/XOFF off on the "comm" setup menu, and C-S and C-Q will generate the control chars, but the terminal will not use those codes for flow control. Neither is it reasonable that, while the VT200 has dozens of keys that send ESC followed by several characters, it has no key that simply sends an ESC. This is exactly the point. If the terminal sends an escape, the application has no way to know if there are more characters following. Assuming that an ESC is a command by itself prevents the other features from being used. Fortunately, it is easy to have Emacs Depends on your version of Emacs. interpret the backquote key (which is where the ESC key belongs) This may be your position, and others may share it (I may share it), but the vt200 keyboard is based on an international standard. as an ESC, at the expense of having a hard time sending a real backquote character. But this is no solution, since most programs that require an ESC as input do not allow users to rebind keys in this way. I will make one small concession in my position; new terminals probably should have an ESC key so as to not break existing software (a temporary violation of the standard) but... Neither should terminals or computers be set up such that users have to fight against them, and have to do obscure and complicated rebindings, to be able to use features that most users have now been taking advantage of for years. applications should be running (not walking) away from the use of ESC as a command on its own. In particular, it is not reasonable for a terminal to not let the user send all 128 ASCII codes, or to not be able to do so without some sort of rebinding or reprogramming of the terminal. The trend, in fact, is away from keyboards with missing codes, such as the Apple II, What the hell did the Apple ][ keyboard have to do with proper designs of keyboards/terminals? The international extension of ASCII (ISCII :-)), uses all eight bits. and towards keyboards that allow users to send all 256 possible 8 bit codes. OK. There are the missing 128 characters. DEC is not causing the problem. The problem is applications which have not evolved to co-exist with modern terminal/communications standards. It looks to me like DEC *IS* causing the problem. No other modern computers or terminals that I am aware of have these misfeatures. Please tell me how Emacs should 'evolve' to compensate for this lossage. Partly explained above. Any arbitrary sequence of characters should be able to set the meta flag for the next character. If TPU is an 'evolved' Emacs, I will choose the old way any day of the week. Not being experienced in TPU, I'll just say that your logic is defective (if Emacs is old, and TPU is new, and TPU is worse than Emacs, than anything new must be worse than the old way) ...Keith Jeff -------
KFL@MC.LCS.MIT.EDU ("Keith F. Lynch") (03/03/86)
From: Jeff Siegal <JBS@DEEP-THOUGHT.MIT.EDU> Giving the single code (27 - ESC) a meaning of its own prevents these other functions from being used. If you are familiar with Emacs, as you say you are, you should know that ESC is not a command, but is a command prefix, just like in the ANSI escape sequence set. My point here was that it is often necessary to key in one of these ANSI escape sequences, to give the terminal a command. If there is no ESC key on the terminal, how can this be done? An aside: I complained a while ago to RMS about GNUemacs not having support for ANSI sequences (on the input side) ... I am not sure what you mean. I'm not certain of ITS Emacs, but I know that with the Emacs we have on our VAX, it is easy to make ESC-[ act like ESC. I have long since done this, so that VT100 arrow keys can move the cursor in Emacs. ... I tried to explain that ESC was just a kludge for the lack of a Meta key, and that Meta would be implemented by another prefix key on ANSI terminals (Gold key on a VT100, perhaps), ... Not always. What about the meta-ESC command? How do you do that with just a meta key. (It is easy with just an ESC key, it becomes ESC-ESC). Most terminals don't have a meta key. The VT100 and VT200 don't. Meta is implemented in ASCII by toggling the 8th bit. But DEC precludes this by using the 8th bit for its multinational character set. This set is another halfway DEC idea. The problem with it (other than it eliminates use of the 8th bit for meta) is that the foreign alphabetic characters it implements are not treated like letters by any DEC software. Foriegners do not regard those as funny characters, but as regular letters. And it can cause no end of confusion when they are not treated as letters in DEC word processing programs, editors, compilers, assemblers, spreadsheets, database programs, or any other DEC or third party software I am aware of. This just means that foriegners have to carefully concentrate on each letter to try to decide whether it is in the English alphabet or not. It would be a lot easier on them if these unusable letters were simply unavailable, then they wouldn't waste time trying to use them. The only reason for ^S ^Q flow control is because the terminal can't keep up with the data coming in. At speeds less than 19,200 baud, I don't think there is any excuse for that. How about a graphics command sequence to rotate a figure x degress in three dimensions (or even to fill a large region on the screen)? How about terminals with optional hard-copy of the recieved characters? How about a terminal in SET-UP mode? How about a LONG sequnce of configuration codes? Good point. But I was pointing out that the VT100 and VT200 need to send ^S a lot more often than that, and just for reception of plain text. That isn't reasonable. As for graphics, etc, once more the terminal should send something to request the next page (or however much) of data, rather than telling the host to stop when the terminal buffer gets too full. The latter is much more likely to lead to lost and garbled data. The trend is definitely away from ^S and ^Q and towards what I describe. All the modern graphics standards implement it. You cannot rely on the existance of out-of-band signalling. When I was logged into the VAX 3000 miles away, I was not going through any network, but was dialing direct. ^S ^Q was the only protocol DEC made available for such a phone call, and it failed horribly. Also, ^S ^Q is very sensitive to line noise, and to flakey connections. And what if your terminal or local host crashes? With my protocol, no data will be sent until it comes up again. With your protocol, since it isn't sending any ^Ss, data will continue to flow in an unbroken stream, to be lost into the ether. (BTW: Do you use smooth scroll or not; above you said that you had to "turn off smooth scroll", implying that it was normally on) The time I had to turn it off on the 3000 mile call was when we were just starting to learn how bad it was. It wasn't until a few months later that we decided it should always be off on all terminals. If someone prefers smooth scroll, why should they be prevented from using it by the lack of flow control? I still think smooth scroll is a bad idea, for many reasons (not the least of which is that long use of it has been known to cause users dizziness, nausea, and a strong feeling that the text is standing still and the building is sinking) but it is perfectly compatible with rational protocols. The VT200, however, simply ignores ^S and ^Q when typed by the user. This is not reasonable behavior. The VT220 behavior is the same as the VT100. Turn XON/XOFF off on the "comm" setup menu, and C-S and C-Q will generate the control chars, but the terminal will not use those codes for flow control. And it also disables smooth scroll, even though smooth scroll is perfectly compatible with use of ^S and ^Q as commands, as can be seen on the VT100. One of many VT200 misfeatures. One of many reasons we decided not to buy any. ... the vt200 keyboard is based on an international standard. I wish they would stop with the international standards already. The only way they could have made the keyboard harder to use would be to place some of the keys on the bottom. [In Emacs] Any arbitrary sequence of characters should be able to set the meta flag for the next character. I agree. I also think that any character or sequence of characters should be able to be bound to any command. This has been the case for years. This is NOT possible for DEC's new TPU editor which will not allow you to use ^S for search (or for anything else). I think it a major win that when a friend of mine from Stanford visited recently, that even though he had no experience with VMS, once I put him into Emacs, he was completely at home. He was able to use the Emacs commands, including ^S for searching, and various ESC commands, despite the fact that to VMS these characters have very different meanings. If I had put him into TPU, even one that I had made as much like Emacs as possible, as soon as he had tried to search for something with ^S, the screen would have frozen, and if he did not realize this, no amount of trying anything (unless he happened to hit ^Q) would have helped him. I think it is a major win that an applications program can work the same way on many different operating systems. That in any Emacs anywhere, ^S will search. That in any Emacs anywhere, ^G will get me out of a funny state. But if Emacs was to be rebuilt to your specifications, on any VMS system ^S would freeze the screen and ^G would NOT get you out of that mode. I think that would be a major lose. ...Keith
JBS%DEEP-THOUGHT@EDDIE.MIT.EDU (Jeff Siegal) (03/03/86)
If you are familiar with Emacs, as you say you are, you should know that ESC is not a command, but is a command prefix, just like in the ANSI escape sequence set. Oh really? How about the ESC-ESC (or M-ESC) command you speak of? ESC is a real command in this usage. ESC is also a command in the sense that it tells Emacs to set the Meta bit for the next character. I repeat: If Emacs receives an ESC, should it set the Meta bit (on the next character)? Common usage says yes, but what if the ESC was only the lead-in to an ANSI sequence? My point here was that it is often necessary to key in one of these ANSI escape sequences, to give the terminal a command. If there is no ESC key on the terminal, how can this be done? As I agreed before (perhaps not in a message sent to you), one should be able to send all 256 8-bit codes from the keyboard for obscure occasions like this. Applications should not depend on it any more than they depend on a 66 line screen; it is (should be) a luxury. I am not sure what you mean. I'm not certain of ITS Emacs, but I know that with the Emacs we have on our VAX, it is easy to make ESC-[ act like ESC. How, my I ask, do you go to beginning-of-paragraph? If ESC-[ acts like ESC, than M-A, M-B, M-C, M-D are up, down, right, and left, which is certainly not what they do in traditional Emacs. I have long since done this, so that VT100 arrow keys can move the cursor in Emacs. Then you have broken your Emacs. ... I tried to explain that ESC was just a kludge for the lack of a Meta key, and that Meta would be implemented by another prefix key on ANSI terminals (Gold key on a VT100, perhaps), ... Not always. What about the meta-ESC command? Exactly my point. ESC should not be a command (or a user-entered prefix). How do you do that with just a meta key. (It is easy with just an ESC key, it becomes ESC-ESC). Most terminals don't have a meta key. The VT100 and VT200 don't. VT100 has no excuse. VT200 uses 8-bit codes for other things. Meta is implemented in ASCII by toggling the 8th bit. But DEC precludes this by using the 8th bit for its multinational character set. ...and the 8-bit ANSI control codes. This set is another halfway DEC idea. The problem with it (other than it eliminates use of the 8th bit for meta) is that the foreign alphabetic characters it implements are not treated like letters by any DEC software. Foriegners do not regard those as funny characters, but as regular letters. And it can cause no end of confusion when they are not treated as letters in DEC word processing programs, editors, compilers, assemblers, spreadsheets, database programs, or any other DEC or third party software I am aware of. They work just fine in EDT. I've never tried to use them with other DEC software. If the DEC software doesn't work, that's DEC's software developers' fault, not the fault of the codes used to represent the characters. This just means that foriegners have to carefully concentrate on each letter to try to decide whether it is in the English alphabet or not. I fail to see how this follows from 8-bit codes. It may follow from broken DEC software. It would be a lot easier on them if these unusable letters were simply unavailable, then they wouldn't waste time trying to use them. (1 more time) The characters should be both there and usable. As it is, they can be output by applications (and by the VT200 setup mode) to make things easier to read by non-english speaking users. How about a graphics command sequence to rotate a figure x degress in three dimensions (or even to fill a large region on the screen)? How about terminals with optional hard-copy of the recieved characters? How about a terminal in SET-UP mode? How about a LONG sequnce of configuration codes? Good point. But I was pointing out that the VT100 and VT200 need to send ^S a lot more often than that, and just for reception of plain text. That isn't reasonable. The VT220 does not. The VT100 does, but only if equiped with the AVO. This is, of course, broken. As for graphics, etc, once more the terminal should send something to request the next page (or however much) of data, rather than telling the host to stop when the terminal buffer gets too full. What you describe will only work in a half-duplex environment. With data flowing in both directions, this becomes unreasonable. Example: what do you do when the "send-next-page" commands come in too fast (on a split speed line, for example). You cannot rely on the existance of out-of-band signalling. When I was logged into the VAX 3000 miles away, I was not going through any network, but was dialing direct. Was it really direct (i.e. terminal-->modem-->phone-line-->modem-->VAX 3000 miles away) or was there something in between to introduce buffering delays? ^S ^Q was the only protocol DEC made available for such a phone call, and it failed horribly. Also, ^S ^Q is very sensitive to line noise, and to flakey connections. Not really. This may be the function of your terminal. Most good implementations of XON/XOFF will repeat the XOFF several times if the output does not stop (i.e. XOFF at buffer-half-full, XOFF at buffer-3/4-full, XOFF at buffer-nearly-full), and will send XONs after a certain amount of time if output does not resume. The vt100's and vt200's implement the multiple XOFF, but not the multiple XON. The time I had to turn it off [smooth scroll] on the 3000 mile call was when we were just starting to learn how bad it was. It wasn't until a few months later that we decided it should always be off on all terminals. I still think smooth scroll is a bad idea, for many reasons (not the least of which is that long use of it has been known to cause users dizziness, nausea, and a strong feeling that the text is standing still and the building is sinking) but it is perfectly compatible with rational protocols. I maintain that it should be on if the user wants it on, and off if the user wants it off. It should neither be always on, nor always off. The VT220 behavior is the same as the VT100. Turn XON/XOFF off on the "comm" setup menu, and C-S and C-Q will generate the control chars, but the terminal will not use those codes for flow control. And it also disables smooth scroll, even though smooth scroll is perfectly compatible with use of ^S and ^Q as commands, as can be seen on the VT100. One of many VT200 misfeatures. One of many reasons we decided not to buy any. On the vt100, if one uses smooth scroll without flow control, lost data results; it (smooth scroll) is NOT perfectly compatible with using ^S and ^Q as commands. Again, I never said that I liked vtXXX terminals; only that there XON/XOFF is too widely used to be ignored. I can hardly see why you wouldn't buy vt220's baased on this; you said you never used smooth scroll (and that it was off on all your terminals). [In Emacs] Any arbitrary sequence of characters should be able to set the meta flag for the next character. I agree. I also think that any character or sequence of characters should be able to be bound to any command. This has been the case for years. This is NOT possible for DEC's new TPU editor which will not allow you to use ^S for search (or for anything else). But the point is you shouldn't want to use ^S for search because it won't work well universally. I think it a major win that when a friend of mine from Stanford visited recently, that even though he had no experience with VMS, once I put him into Emacs, he was completely at home. He was able to use the Emacs commands, including ^S for searching, and various ESC commands, despite the fact that to VMS these characters have very different meanings. Ah, but if Emacs didn't make assumptions about what form of flow control would be used (if any), than there would be a (universally accepted command) other than ^S, ^Q, ESC, NUL, etc. for searching which could be used on ANY system, even if XON/XOFF was implememted in hardware (and could not be turned off). If I had put him into TPU, even one that I had made as much like Emacs as possible, as soon as he had tried to search for something with ^S, the screen would have frozen, and if he did not realize this, no amount of trying anything (unless he happened to hit ^Q) would have helped him. Which means TPU is probably not for people who want to use Emacs. If they want to use Emacs, let them use Emacs. I think it is a major win that an applications program can work the same way on many different operating systems. That in any Emacs anywhere, ^S will search. That in any Emacs anywhere, ^G will get me out of a funny state. But if Emacs was to be rebuilt to your specifications, on any VMS system ^S would freeze the screen and ^G would NOT get you out of that mode. I think that would be a major lose. I agree that the commands should be universal. However, consider how inconsistant using C-S, C-Q, etc. for commands in an environment which uses them for flow control. The biggest win in human interfaces is consistency. Take a look at the Mac. Well written software on the Mac needs very little documentation. The user interface is the same as other software. Take a user (on VMS, for example) who is used to the conventions used by all of the other utilities (e.g. TYPE, DIRECTORY, SORT, ACCOUNTING) utilities. If he wants to stop the output, he presses ^S, or the HOLD-SCREEN (or no-scroll) key. When he wants it to resume, he either presses ^Q or the HOLD-SCREEN key again. Put him in Emacs, and other software which ignores consistency, and watch him lose. My gripe is with software (like Emacs) which when put into an environment which makes assumptions (very common ones) about flow control, forces an inconsistant user-interface. ...Keith Jeff -------
daemon@ucbvax.BERKELEY.EDU (The devil himself) (03/03/86)
> This may be your position, and others may share it (I may share it), > but the vt200 keyboard is based on an international standard. > Jeff What standard? I have heard and challenged this claim before, and have never gotten a reference to a real live standards-body type document. Just because the keyboard is weird doesn't mean it's internationally kosher. By the way, I like the LK201, except for the stupid <> key. Note that the LK201 keyboard doesn't generate anything even remotely resembling ASCII; it's up to the box at the other end of the coiled cord (VT220, VT240, VT241, Pro-350, Rainbow, VAXstation-II, etc.) to turn what the keyboard sends into ASCII (or whatever). My Rainbow has a key labelled ESC (F11) that actually sends 033 (or causes the software to see an 033, which amounts to the same thing). If the box your LK201 talks to is programmable (i.e., anything except VT2xx) you can cause the keyboard to look like anything. Dvorak, anyone? But back to my original question: *what* international standard?
Bakin@HI-MULTICS.ARPA (Jerry Bakin) (03/11/86)
As long as we are running away from the discussion at hand, ...vi is quite capable of understanding special-key sequences beginning with ESC, even though hitting ESC in command mode by itself just sounds the bell (or flashes the screen if the terminal is thus capable). I bet you all wonder how vi can make this distinction. Well, it's simple. vi waits for a short period after getting an ESC to see what else it gets right afterward. If the ESC was immed- iately followed by the rest of a special-key sequence, vi obeys it. If the ESC is NOT followed by the remainder of a special-key sequence, or something else which should be valid in command mode, during that wait, vi beeps or flashes to indicate an error. I used to have to dial up this multics system from 2000 miles away. Gee I had a lot of noise (no GTE :). Anyway, I noticed that most (> 95%) of the noise were pairs of <ESC>-{ or {-<ESC>. I wrote an extension to the Emacs (in MacLisp) which sensed the time between time of program execution and the next character. If the program timed out, or the next character was neither an <ESC> nor a {, the character(s) was inserted. Otherwise, the two characters were eaten up -- yum. I bound this extension to the <ESC> and { keys. This got rid of almost all of the noise and almost never ate (or even visibly slowed insertion of) <ESC>s or {s. Jerry.