diff options
Diffstat (limited to 'app/xterm/ctlseqs.ms')
-rw-r--r-- | app/xterm/ctlseqs.ms | 348 |
1 files changed, 312 insertions, 36 deletions
diff --git a/app/xterm/ctlseqs.ms b/app/xterm/ctlseqs.ms index 25e58e5e1..5af46fac0 100644 --- a/app/xterm/ctlseqs.ms +++ b/app/xterm/ctlseqs.ms @@ -1,6 +1,6 @@ .\"#! troff -ms $1 -*- Nroff -*- .\" "Xterm Control Sequences" document -.\" $XTermId: ctlseqs.ms,v 1.612 2021/03/24 00:41:44 tom Exp $ +.\" $XTermId: ctlseqs.ms,v 1.633 2021/09/11 23:17:26 tom Exp $ .\" .\" .\" Copyright 1996-2020,2021 by Thomas E. Dickey @@ -69,8 +69,8 @@ .\" .ds XT XTerm .ds xt xterm -.ds LF Patch #367 -.ds RF 2021/03/23 +.ds LF Patch #369 +.ds RF 2021/09/11 .\" .if n .pl 9999v \" no page breaks in nroff .ND @@ -373,7 +373,7 @@ Individual values for the parameters are listed with \*(Ps . .IP \*(Pt A text parameter composed of printable characters. . -.Sh "Control Bytes, Characters, and Sequences" +.Ss "Control Bytes, Characters, and Sequences" .LP ECMA-48 (aka \*(``ISO 6429\*('') documents C1 (8-bit) and C0 (7-bit) codes. Those are respectively codes 128 to 159 and 0 to 31. @@ -453,7 +453,7 @@ string mode if it decodes a common control character such as carriage return before the string terminator. .RE . -.Sh "C1 (8-Bit) Control Characters" +.Ss "C1 (8-Bit) Control Characters" .LP The \fI\*(xt\fP program recognizes both 8-bit and 7-bit control characters. It generates 7-bit controls (by default) or 8-bit if S8C1T is enabled. @@ -514,7 +514,7 @@ Application Program Command (\*(AP is 0x9f). .LP These control characters are used in the vtXXX emulation. . -.Sh "VT100 Mode" +.Ss "VT100-related terminals" .LP In this document, \*(``VT100\*('' refers not only to VT100/VT102, but also to the succession of upward-compatible terminals produced @@ -535,7 +535,7 @@ since the only way X provides for this will affect all windows. .LP There are additional control sequences to provide \fI\*(xt-\fPdependent functions, such as the scrollbar or window size. -Where the function is specified by DEC or ECMA-48, the code assigned +Where the function is specified by DEC or ECMA-48, the mnemonic assigned to it is given in parentheses. .LP The escape codes to designate and invoke @@ -545,6 +545,7 @@ discussion of character sets). Many of the features are optional; \fI\*(xt\fP can be configured and built without support for them. . +.Sh "VT100 Mode" .Ss Single-character functions .St .IP \\*(Be @@ -1320,7 +1321,7 @@ This may be disabled by the \fBtiteInhibit\fP resource. \*(Ps = \*6\*7 \(-> Backarrow key sends backspace (DECBKM), VT340, VT420. This sets the \fBbackarrowKey\fP resource to \*(``true\*(''. \*(Ps = \*6\*9 \(-> Enable left and right margin mode (DECLRMM), VT420 and up. - \*(Ps = \*8\*0 \(-> Enable \fISixel Scrolling\fP (DECSDM). + \*(Ps = \*8\*0 \(-> Disable \fISixel Scrolling\fP (DECSDM). \*(Ps = \*9\*5 \(-> Do not clear screen when DECCOLM is set/reset (DECNCSM), VT510 and up. \*(Ps = \*1\*0\*0\*0 \(-> Send Mouse X & Y on button press and release. @@ -1455,7 +1456,7 @@ This is normally disabled by a compile-time option. This sets the \fBbackarrowKey\fP resource to \*(``false\*(''. \*(Ps = \*6\*9 \(-> Disable left and right margin mode (DECLRMM), VT420 and up. - \*(Ps = \*8\*0 \(-> Disable \fISixel Scrolling\fP (DECSDM). + \*(Ps = \*8\*0 \(-> Enable \fISixel Scrolling\fP (DECSDM). \*(Ps = \*9\*5 \(-> Clear screen when DECCOLM is set/reset (DECNCSM), VT510 and up. \*(Ps = \*1\*0\*0\*0 \(-> Don't send Mouse X & Y on button press and @@ -1947,6 +1948,11 @@ Set Scrolling Region [top;bottom] (default = full size of window) Restore DEC Private Mode Values (XTRESTORE), \*(xt. The value of \*(Ps previously saved is restored. \*(Ps values are the same as for DECSET. +.iP +Like Restore Cursor (DECRC), this uses a one-level cache. +Unlike Restore Cursor, +specific settings can be saved and restored independently. +Only those modes listed as parameters are restored. . .iP .IP \\*(Cs\\*(Pt\\*s\\*;\\*(Pl\\*s\\*;\\*(Pb\\*s\\*;\\*(Pr\\*s\\*;\\*(Ps\\*s\\*$\\*r @@ -1983,6 +1989,11 @@ which is \*0. .IP \\*(Cs\\*?\\*(Pm\\*s\\*(cs Save DEC Private Mode Values (XTSAVE), \*(xt. \*(Ps values are the same as for DECSET. +.iP +Like Save Cursor (DECSC), this uses a one-level cache. +Unlike Save Cursor, +specific settings can be saved and restored independently. +Only those modes listed as parameters are saved. . .iP .IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*t @@ -2395,7 +2406,8 @@ Since XFree86-3.1.2Ee (August 1996), \*(xt has accepted \*(ST \*(``\fIprop\fP\*('' to delete the property. \*(Ps = \*4\*;\fIc\fP\*s\*;\fIspec\fP \(-> Change Color Number \fIc\fP to the color specified by \fIspec\fP. -This can be a name or RGB specification as per \fIXParseColor\fP. +.sP +The \fIspec\fP can be a name or RGB specification as per \fIXParseColor\fP. Any number of \fIc\fP/\fIspec\fP pairs may be given. The color numbers correspond to the ANSI colors 0-7, their bright versions 8-15, @@ -2409,9 +2421,12 @@ be given in one control sequence, \fI\*(xt\fR can make more than one reply. .sP \*(Ps = \*5\*;\fIc\fP\*s\*;\fIspec\fP \(-> Change Special Color Number \fIc\fP to the color specified by \fIspec\fP. -This can be a name or RGB specification as per \fIXParseColor\fP. +.sP +The \fIspec\fP parameter can be a name or RGB specification +as per \fIXParseColor\fP. Any number of \fIc\fP/\fIspec\fP pairs may be given. The special colors can also be set by adding the maximum number of colors +(e.g., 88 or 256) to these codes in an \*(Os\*4 control: .sP .in +2n @@ -2427,6 +2442,8 @@ The second parameter tells \fI\*(xt\fP to enable the corresponding color mode if nonzero, disable it if zero. \*(Os\*6 is the same as \*(Os\*1\*0\*6. .sP +If no parameters are given, this control has no effect. +.sP The 10 colors (below) which may be set or queried using \*1\*0 through \*1\*9 are denoted \fIdynamic colors\fR, since the corresponding control sequences @@ -2488,7 +2505,7 @@ These controls may be disabled using the \fBallowWindowOps\fP resource. The parameter \*(Pt is parsed as .br \*(Pc\*s\*;\*(Pd -.br +.sP The first, \*(Pc, may contain zero or more characters from the set \*c, \*p, \*q, \*(cs, \*0, \*1, \*2, \*3, \*4, \*5, \*6, and \*7. It is used to construct a list of selection parameters for @@ -2496,10 +2513,10 @@ clipboard, primary, secondary, select, -or cut buffers 0 through 7 respectively, +or cut-buffers 0 through 7 respectively, in the order given. If the parameter is empty, \fI\*(xt\fP uses \*(cs\*0, -to specify the configurable primary/clipboard selection and cut buffer 0. +to specify the configurable primary/clipboard selection and cut-buffer 0. .sP The second parameter, \*(Pd, gives the selection data. Normally this is a string encoded in base64 (RFC-4648). @@ -2531,6 +2548,8 @@ These parameters correspond to the special colors which can be set using an \*(Os\*5 control (or by adding the maximum number of colors using an \*(Os\*4 control). .sP +If no parameters are given, all special colors will be reset. +.sP \*(Ps = \*1\*0\*6\*;\fIc\fP\*s\*;\fIf\fP \(-> Enable/disable Special Color Number \fIc\fP. The second parameter tells \fI\*(xt\fP to enable the corresponding color mode if nonzero, disable it if zero. @@ -2544,6 +2563,8 @@ mode if nonzero, disable it if zero. \*(Pc = \*5 \(<- resource \fBcolorAttrMode\fP (Override ANSI). .in -2n .sP +If no parameters are given, this control has no effect. +.sP The \fIdynamic colors\fR can also be reset to their default (resource) values: \*(Ps = \*1\*1\*0 \(-> Reset VT100 text foreground color. \*(Ps = \*1\*1\*1 \(-> Reset VT100 text background color. @@ -2576,7 +2597,32 @@ Sun shelltool, CDE dtterm. \*(Pt need not be printable characters. .Ed . -.Sh "Alt and Meta Keys" +.Sh "Special Keyboard Keys" +.LP +Terminal keyboards have two types of keys: +.bP +ordinary keys, which you would use as data, +e.g., in a text file, and +.bP +special keys, which you would use to tell \fI\*(xt\fP to perform some action. +.LP +\fI\*(XT\fP detects all of these keys via X key-press and key-release events. +It uses the \fBtranslations\fP resource to decide what to do with these events. +.bP +Ordinary keys are handled with the +\fBinsert-seven-bit\fP or +\fBinsert-eight-bit\fP action. +.bP +Special keys may be handled with other resources. +However, \fI\*(xt\fP also has built-in logic to map commonly-used +special keys into characters which your keypress sends to the application +running in \fI\*(xt\fP. +.LP +Special keyboard keys send control characters or escape sequences. +This is a convention, +making it convenient for applications to detect these keys, +rather than a standard. +.Ss "Alt and Meta Keys" .LP Many keyboards have keys labeled \*(``Alt\*(''. Few have keys labeled \*(``Meta\*(''. @@ -2654,7 +2700,6 @@ This assumes \fBaltIsNotMeta\fP is set: .TS H center; lf3w(2c) lf3w(2c) lf3w(2c) lf3w(2c) . -_ .TH .T& l | l | l | l . @@ -2678,7 +2723,7 @@ Alt-x ON ON \*(Es x Alt+Meta-x ON ON \*(Es x _ .TE -.Sh "PC-Style Function Keys" +.Ss "PC-Style Function Keys" .LP If \fI\*(xt\fP does minimal translation of the function keys, it usually does this @@ -2884,7 +2929,7 @@ is not readily apparent, and .bP the scheme is not extensible, i.e., it is an \fIad hoc\fP assignment limited to two modifiers (\fIshift\fP and \fIcontrol\fP). -.Sh "VT220-Style Function Keys" +.Ss "VT220-Style Function Keys" .LP However, \fI\*(xt\fP is most useful as a DEC VT102 or VT220 emulator. Set the \fBsunKeyboard\fP resource to true to force a Sun/PC keyboard @@ -2985,7 +3030,7 @@ F19 \*(Cs\*3\*3\*~ F20 \*(Cs\*3\*4\*~ _ .TE -.Sh "VT52-Style Function Keys" +.Ss "VT52-Style Function Keys" .LP A VT52 does not have function keys, but it does have a numeric keypad and cursor keys. @@ -3040,7 +3085,7 @@ PF4 \*(Es\*S \*(Es\*S no = (equal) \*= \*(Es\*?\*(XX no _ .TE -.Sh "Sun-Style Function Keys" +.Ss "Sun-Style Function Keys" .LP The \fI\*(xt\fP program provides support for Sun keyboards more directly, by a menu toggle that causes it to send Sun-style function key codes @@ -3052,10 +3097,50 @@ For example, their wrap-margin behavior differs. Only function keys are altered; keypad and cursor keys are the same. The emulation responds identically. See the xterm-sun terminfo entry for details. -.Sh "HP-Style Function Keys" +.Ss "HP-Style Function Keys" .LP Similarly, \fI\*(xt\fP can be compiled to support HP keyboards. See the xterm-hp terminfo entry for details. +.Ss "Non-Function Keys" +.LP +On a DEC terminal keyboard, some of the keys which one would expect +to see labeled as function keys had special names. +The keys actually send character sequences as if they were the +expected function keys, but the special names are used in documentation. +Because other keyboards may use those names, +\fI\*(xt\fP maps the X key symbols which have the corresponding names +into the character sequences which the original DEC keyboard would send. +.LP +These mappings are used for the DEC (VT220) and other keyboards: +.TS H +center; +lf3w(2c) lf3w(2c) lf3w(2c) lf3w(2c) lf3w(2c) . +Label DEC SUN HP SCO +_ +.TH +.T& +l | l | l | l | l . +Up \*(S3\*A \*(S3\*A \*(Es\*A \*(Cs\*A +Down \*(S3\*(cB \*(S3\*(cB \*(Es\*(cB \*(Cs\*(cB +Right \*(S3\*C \*(S3\*C \*(Es\*C \*(Cs\*C +Left \*(S3\*D \*(S3\*D \*(Es\*D \*(Cs\*D +Clear - - \*(Es\*J - +Find \*(Cs\*1\*~ \*(Cs\*1\*z \*(Es\*h - +Insert \*(Cs\*2\*~ \*(Cs\*2\*z \*(Es\*Q \*(Cs\*L +Delete \*(Cs\*3\*~ \*(Cs\*3\*z \*(Es\*P - +Keypad Insert \*(Cs\*2\*~ \*(Cs\*2\*z \*(Es\*Q \*(Cs\*L +Keypad Delete \*(Cs\*3\*~ \*(Cs\*3\*z \*(Es\*P - +Remove \*(Cs\*3\*~ \*(Cs\*3\*z \*(Es\*P - +Select \*(Cs\*4\*~ \*(Cs\*4\*z \*(Es\*F - +Prior \*(Cs\*5\*~ \*(Cs\*2\*1\*6\*z \*(Es\*T \*(Cs\*I +Next \*(Cs\*6\*~ \*(Cs\*2\*2\*2\*z \*(Es\*S \*(Cs\*G +Help \*(Cs\*2\*8\*~ \*(Cs\*1\*9\*6\*z - - +Menu \*(Cs\*2\*9\*~ \*(Cs\*1\*9\*7\*z - - +Home - \*(Cs\*2\*1\*4\*z \*(Es\*h \*(Cs\*H +End - \*(Cs\*2\*2\*0\*z \*(Es\*F \*(Cs\*F +Begin - \*(Cs\*2\*1\*8\*z - \*(Cs\*E +_ +.TE .Sh "The Alternate Screen Buffer" .LP \fI\*(XT\fP maintains two screen buffers. @@ -3268,8 +3353,8 @@ Release events for the wheel buttons are not reported. .LP By default, the wheel mouse events (buttons 4 and 5) -are translated to \fIscroll-back\fP -and \fIscroll-forw\fP actions, respectively. +are translated to \fBscroll-back\fP +and \fBscroll-forw\fP actions, respectively. Those actions normally scroll the whole window, as if the scrollbar was used. .LP @@ -3467,7 +3552,8 @@ it is not an improvement over 1006. Use the same mouse response format as the 1006 control, but report position in \fIpixels\fP rather than character \fIcells\fP. . -.Sh "Sixel Graphics" +.Sh "Graphics" +.Ss "Sixel Graphics" .LP If \fI\*(xt\fP is configured as VT240, @@ -3512,7 +3598,7 @@ following the \*q with sixel data. \*(Ps \(-> sixel data .Ed . -.Sh "ReGIS Graphics" +.Ss "ReGIS Graphics" .LP If \fI\*(xt\fP is configured as VT125, @@ -3554,7 +3640,8 @@ with four possible values: \*(Pm = 3 \(-> start new command, use command display mode. .Ed . -.Sh "Tektronix 4014 Mode" +.Sh "Non-VT100 Modes" +.Ss "Tektronix 4014 Mode" .LP Most of these sequences are standard Tektronix 4014 control sequences. Graph mode supports the 12-bit addressing of the Tektronix 4014. @@ -3704,7 +3791,7 @@ Alpha Mode (Ctrl-_). .Ed . . -.Sh "VT52 Mode" +.Ss "VT52 Mode" .LP Parameters for cursor movement are at the end of the \*(Es\*Y escape sequence. Each ordinate is encoded in a single character as \fIvalue\fP+32. @@ -3816,7 +3903,7 @@ EK-VT420-RM-002, EK-VT520-RM A01, EK-VT100-TM-003, and EK-VT102-UG-003. -The remaining documents were found on the bitsavers site. +In addition, several documents were found on the bitsavers site. .bP .\" http://www.bitsavers.org/pdf/dec/terminal/vt52/EK-VT5X-OP-001_DECscope_Users_Manual_Mar77.pdf \fIDECscope User's Manual\fP. @@ -3868,7 +3955,7 @@ Digital Equipment Corporation Digital Equipment Corporation (EK-VT3XX-TP-001, March 1987). .bP -.\" https://vt100.net/docs/vt3xx-gp/ +.\" http://www.bitsavers.org/pdf/dec/terminal/vt340/EK-VT3XX-GP-001_VT330_VT340_Graphics_Programming_Mar87.pdf \fIVT330/VT340 Programmer Reference Manual\fP .br \fIVolume 2: Graphics Programming\fP. @@ -3876,6 +3963,30 @@ Digital Equipment Corporation Digital Equipment Corporation (EK-VT3XX-GP-001, March 1987). .bP +.\" https://vt100.net/docs/vt3xx-gp/ +\fIVT330/VT340 Programmer Reference Manual\fP +.br +\fIVolume 2: Graphics Programming\fP. +.br +Digital Equipment Corporation +(EK-VT3XX-GP-002, May 1988). +.bP +.\" https://vt100.net/dec/ek-vt382-rm-001.pdf +\fIVT382 Kanji Display Terminal\fP +.br +\fIProgrammer Reference Manual\fP. +.br +Digital Equipment Corporation +(EK-VT382-RM-001). +.bP +.\" https://vt100.net/dec/ek-vt38t-ug-001.pdf +\fIVT382 Thai Display Terminal\fP +.br +\fIInstalling and Using Manual\fP. +.br +Digital Equipment Corporation +(EK-VT38T-UG-001, August 1989). +.bP .\" http://www.bitsavers.org/pdf/dec/terminal/vt420/EK-VT420-UG-001_Installing_and_Using_The_VT420_Video_Terminal_Nov89.pdf \fIInstalling and Using\fP .br @@ -3916,6 +4027,15 @@ Digital Equipment Corporation Digital Equipment Corporation (EK-PPLV2-PM B01, August 1994). .bP +.\" http://www.bitsavers.org/pdf/ibm/pc/dos/6936752_DOS_2.00_Jan83.pdf +\fIDisk Operating System\fP +.br +DOS 2.00 +.br +Microsoft, Inc. +.br +First edition, January 1983. +.bP .\" https://vt100.net/manx/details/5,5479 \fI4014 and 4014-1 Computer Display Terminal\fP .br @@ -3929,6 +4049,28 @@ The DEC terminal family (VT100 through VT525) is upward-compatible, using standards plus \fIextensions\fP, e.g., \*(``private modes\*(''. Not all commonly-used features are standard. For example, scrolling regions are not found in ECMA-48. +On the other hand, ECMA-48 was not intended to all-encompassing. +Quoting from the second edition: +.in +4n +.sp +.ft C +Full conformance to a standard means that all its requirements are met. +For such conformance to be unique the standard must contain no options. +This is typically the case for hardware standards, for instance Standard +ECMA-10 for data interchange on punched tapes. +.sp +This Standard ECMA-48 is of a different nature and as a result, +it is only practicable to envisage limited conformance to it, +as defined hereunder. +.sp +This Standard addresses a whole class of devices which can vary greatly +from each other depending on the application for which a device has +been specifically designed. Obviously, a +product which implements all facilities described in this standard \[en] +thus being in \*(``full conformance\*('' with it \[en] whilst theoretically +possible, would be technically and economically unthinkable. +.ft R +.in -4n .LP Again, it is possible to find discrepancies in the standards: .bP @@ -3943,14 +4085,104 @@ but the documentation and dates are lacking). ECMA created a new PDF in April 2003 which changed that detail to use \*T, and later in 2008 provided PDFs of the earlier editions which used \*T. .bP +The first edition of ECMA-48 has not been available, to compare. +As of September 2021, +ECMA's website provides a copy of ECMA-\fB46\fP in its place. +.IP +Earlier versions of ISO 6429 have never been available. +The first three editions of ISO 6429 were issued in 1983, 1988, and 1992. +.bP +\fIANSI X3.64-1979\fP +does not list color as a feature of the SGR sequence (page 49). +.IP +In Appendix A, it mentions ECMA-48: +.in +4n +.ft C +.sp +(8) This document represents a coordinated effort to develop a single technical +standard in the United States and Europe (see ECMA-48 standard entitled +\fIAdditional Controls for Character Imaging Input/Output Devices\fP). +.in -4n +.IP +.ft R +Appendix H clarifies the relationship between these documents somewhat +though it confuses the first two editions of ECMA-48. +The typo for \*(``work\*('' versus \*(``owkr\*('' +appears in the original document: +.in +4n +.hy 0 +.sp +.ft C +ANSI X3.64-1979, and ECMA-48, +\fIAdditional Controls for Character-Imaging I/O Devices\fP, +were developed in parallel, with close liaison. +ISO DP 6429, Additional Control Functions for Character-Imaging +Devices, was developed as a synthesis of X3.04 and ECMA-48. +During this process, +some control functions as well as additional selective parameters were added. +Except for point 1 below, X3.64 is a subset of ISO 6429. +Although the two standards use different language, +the intent is that the subset is technically identical. +X3.64 was balloted and forwarded prior to the final resolution of ISO 6429 +and does not incorporate the \fIowkr\fP of IS0/TC97/SC2 in completing ISO 6429. +Revision of X3.64 will attempt to incorporate those elements +and assumptions of X3.64. +.in -4n +.ft R +.IP +ANSI X3.64 goes on to say that the SGR codes 8, 30-47 are in ISO 6429. +It includes 38 and 39, but omits 48 and 49. +At the time, ISO 6429's first edition was still four years in the future. +The writer probably was referring to the ongoing process of making +ECMA-48 second edition into the ISO standard. +.bP The VT320, VT420, VT520 manuals claim that DECSCL does a hard reset (RIS). .IP Both the VT220 manual and DEC STD 070 (which documents levels 1-4 in detail) state that it is a soft reset, e.g., DECSTR. +.bP +The VT330/VT340 reference manual for graphics programming +documents sixel scrolling in some detail in chapter 14. +The VT382 Kanji and Thai manuals provide less information, +but differ in their comment about the private mode +DECSDM (\*(Cs\*?\*8\*0\*h), +which each manual agrees should \fIset\fP the Sixel Scrolling feature. +However, the VT330/VT340 manual says +.RS +.IP +When sixel display mode is set, the Sixel Scrolling feature is enabled. +.RE +.IP +while the VT382 Kanji manual (page 6-6) says +.RS +.IP +Disable sixel scroll +.RE +.IP +and the VT382 Thai manual (page C-30) says +.RS +.IP +No Sixel scrolling +.RE +.IP +The standard (DEC STD 070) in chapter 9 (August 3, 1990) +states on page 17 that video devices will scroll +when advancing the Sixel active position past the bottom margin, +but on page 19, in the section on deviations, +states that VT125 and VT240 did not scroll in this situation. +The standard does not mention VT330/VT340 or VT382. +Nor does it document DECSDM. .LP Here are the relevant standards: .bP +.\" https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub86.pdf +\fIAdditional Controls for Use with American National Standard Code for Information Interchange, ANSI X3.64-1979\fP +.br +FIPS Publication 86. July 18, 1979. +.br +American National Standards Institute, Inc. +.bP .\" https://www.ecma-international.org/publications/standards/Ecma-035.htm \fIECMA-35: Character Code Structure and Extension Techniques\fP .br @@ -4024,7 +4256,7 @@ and added a few new ones. .TS l l l l l _ _ _ _ _ -l c c c l. +l | c | c | c | l. \fBCode\fR \fBSun\fR \fBCDE \*(XT Description\fP \*(Cs\*1\*t yes yes yes de-iconify \*(Cs\*2\*t yes yes yes iconify @@ -4057,6 +4289,7 @@ l c c c l. \*(Os\*I\*(ST yes yes yes set icon to file \*(Os\*l\*(ST yes yes yes set window title \*(Os\*L\*(ST yes yes yes set icon label +_ .TE .br Besides the Sun-derived OSC controls for setting window title and icon label, @@ -4066,18 +4299,20 @@ The \fICDE\fP source was unavailable for inspection until 2012, so that clarification of the details of the window operations relied upon \fIvttest\fP. .bP -The control sequences for saving/restoring the cursor and -for saving/restoring \*(``DEC Private Mode Values\*('' may appear to be +The SCOSC/SCORC control sequences for saving/restoring the cursor and +for saving/restoring \*(``DEC Private Mode Values\*('' +(XTSAVE and XTRESTORE) +may appear to be related (since the \*(``save\*('' controls both end with \*(cs), but that is coincidental. -The latter was introduced in X10.4: +The latter was introduced in X10.4 (December 1986): .iP .RS .ft C .na -Most Dec Private mode settings can be saved away internally using \\E[?ns, -where n is the same number to set or reset the Dec Private mode. The -mode can be restored using \\E[?nr. This can be used in termcap for vi, for +Most Dec Private mode settings can be saved away internally using \\E[?\fIn\fPs, +where \fIn\fP is the same number to set or reset the Dec Private mode. The +mode can be restored using \\E[?\fIn\fPr. This can be used in termcap for \fBvi\fP, for example, to turn off saving of lines, but restore whatever the original state was on exit. .ad @@ -4086,6 +4321,47 @@ state was on exit. .IP while the SCOSC/SCORC pair was added in 1995 by XFree86 (and documented long afterwards). +.IP +The SCO \fIANSI\fP console terminal descriptions did not use these controls +(they used the VT100-compatible SC/RC pair). +SCOSC/SCORC were an artifact of DOS 2.00 (January 1983), +by Microsoft and later supported by SCO and other vendors. +.IP +The SCOSC/SCORC pair is considered a \fIprivate mode\fP because the final +characters (\*(cs and \*u) fall in the range from \*(``\`\*('' to \*(``~\*('' +(octal 0140 to octal 0176). +Other \fIprivate\fP control sequences can be constructed by using +octets 074 to 077 (characters +\*(``<\*('', +\*(``=\*('', +\*(``>\*('', or +\*(``?\*('') at the beginning of the parameter string. +The XTSAVE and XTRESTORE controls use \*(``?\*('') in this manner. +.IP +Because the XTSAVE and XTRESTORE controls are private, +other terminals may behave differently. +For example, DEC (a contributor to the early \fI\*(xt\fP as well as +a manufacturer of terminals) used an incompatible +private control in one of its terminals more than five years later +(for the VT420 PCTerm, announced in February 1992). +.IP +In that model of the VT420, +\*(Cs\*?\*(Pm\*;\*(Pc\*s\*r +selects the \fIPC TERM\fP emulation mode. +When this mode is enabled, the keyboard sends \fIscan codes\fP +rather than characters (analogous to X keyboard events). +The first parameter of this private control +enables or disables \fIPC TERM\fP mode, +while the second selects a character set. +An ambiguity arises if an application omits the second parameter. +In that special case, it cannot be distinguished from XTRESTORE. +DEC did not take this into account when designing the feature. +.IP +If there were potential users, \fI\*(xt\fP could accommodate this +by a resource setting. +In retrospect (thirty years later), +there have been no uses of \fIPC TERM\fP, +while the XTRESTORE feature is still in use. .bP The \fIaixterm\fP manual page gives the format of the control sequence for foreground and background colors 8-15, |