|
|
|
Date: Sat, 27 Oct 90 15:59:27 -0400
|
|
|
|
From: tihor@acf4.NYU.EDU (Stephen Tihor)
|
|
|
|
Message-Id: <9010271959.AA10105@acf4.NYU.EDU>
|
|
|
|
To: tihor@acf4.NYU.EDU
|
|
|
|
Subject: Re: VT100/52/ANSI et.al. Escape codes
|
|
|
|
Newsgroups: comp.os.vms
|
|
|
|
In-Reply-To: <9010240014.AA10730@ucbvax.Berkeley.EDU> 23 Oct 90 16:00 EDT
|
|
|
|
|
|
|
|
/* acf4:comp.os.vms */
|
|
|
|
/* 20950709@VUVAXCOM.BITNET (Jim McRee [Merlin]) / 4:00 pm Oct 23, 1990 */
|
|
|
|
|
|
|
|
Villanova University
|
|
|
|
Campus Computing - Terminal Emulation
|
|
|
|
Includes VT100 and VT52 Terminal and Control Codes
|
|
|
|
|
|
|
|
This file contains control and terminal codes for the VT100 terminals,
|
|
|
|
ANSI terminals, and VT52 terminals. Many of the codes were derived from PC/
|
|
|
|
Intercomm, from Mark of the Unicorn Software. I have researched some of them
|
|
|
|
and added some of my own.
|
|
|
|
|
|
|
|
Thank you,
|
|
|
|
Jim McRee (209507097@VUVAXCOM.BITNET)
|
|
|
|
|
|
|
|
(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
|
|
|
|
|
|
|
|
CONTROL SEQUENCE SUMMARY
|
|
|
|
|
|
|
|
* For additional information on the DEC VT100 and VT102 terminals, please
|
|
|
|
consult the VT100 USER GUIDE and VT102 USER GUIDE, published by Digital
|
|
|
|
Equipment Corporation as part numbers EK-VT100-UG and EK-VT102-UG.
|
|
|
|
|
|
|
|
|
|
|
|
CONTROL CHARACTERS:
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Character
|
|
|
|
Name Decimal Action Taken
|
|
|
|
---------------------------------------------------------------
|
|
|
|
NUL 0 Fill character; ignored on input.
|
|
|
|
ENQ 5 Transmit answerback message.
|
|
|
|
BEL 7 Ring the bell.
|
|
|
|
BS 8 Move cursor left.
|
|
|
|
HT 9 Move cursor to next tab stop.
|
|
|
|
LF 10 Line feed; causes print if in autoprint.
|
|
|
|
VT 11 Same as LF.
|
|
|
|
FF 12 Same as LF.
|
|
|
|
CR 13 Move cursor to left margin or newline.
|
|
|
|
SO 14 Invoke G1 character set.
|
|
|
|
SI 15 Invoke G0 character set.
|
|
|
|
XON 17 Resume transmission.
|
|
|
|
XOFF 19 Halt transmission.
|
|
|
|
CAN 24 Cancel escape sequence and display checkerboard.
|
|
|
|
SUB 26 Same as CAN.
|
|
|
|
ESC 27 Introduce a control sequence.
|
|
|
|
DEL 127 Fill character; ignored on input.
|
|
|
|
|
|
|
|
* All characters less than 32 decimal which are not listed above are ignored.
|
|
|
|
|
|
|
|
(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
|
|
|
|
|
|
|
|
ANSI MODE SUMMARY:
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
*In ANSI sequences, parameters are given as a string of ASCII digits
|
|
|
|
('0' - '9') seperated by semicolons. Pn refers to a number whose value
|
|
|
|
used directly. Ps refers to a number used as a selector.
|
|
|
|
|
|
|
|
CURSOR MOVEMENT:
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Cursor Up: Esc [ Pn A
|
|
|
|
Cursor Down: Esc [ Pn B
|
|
|
|
Cursor Left: Esc [ Pn C
|
|
|
|
Cursor Right: Esc [ Pn D
|
|
|
|
|
|
|
|
Direct Addressing : Esc [ Pn(row);Pn(col);H or
|
|
|
|
Esc [ Pn(row);Pn(col);f
|
|
|
|
|
|
|
|
ie. (Pascal)
|
|
|
|
Writeln (Esc,'[',Row:1,';',col:1,';','H');
|
|
|
|
|
|
|
|
Index: Esc D
|
|
|
|
New Line: Esc E
|
|
|
|
Reverse Line: Esc M
|
|
|
|
|
|
|
|
Save cursor & Attributes: Esc 7
|
|
|
|
Restore cursor & attributes: Esc 8
|
|
|
|
|
|
|
|
ERASING:
|
|
|
|
-------
|
|
|
|
|
|
|
|
Cursor to end of line Esc [ K
|
|
|
|
Beginning of line to cursor Esc [ 1 K
|
|
|
|
Entire line Esc [ 2 K
|
|
|
|
Cursor to end of screen Esc [ J
|
|
|
|
Beginning of screen to cursor Esc [ 1 J
|
|
|
|
Entire screen Esc [ 2 J
|
|
|
|
|
|
|
|
(Some programs expect Esc [ J to always clear the entire
|
|
|
|
screen, but this does not conform to the standard.)
|
|
|
|
|
|
|
|
MODES:
|
|
|
|
-----
|
|
|
|
|
|
|
|
Set with Esc [ Ps h
|
|
|
|
Reset with Esc [ Ps l
|
|
|
|
|
|
|
|
Mode name Ps Set Reset
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
Keyboard action 2 Locked Unlocked
|
|
|
|
Insertion 4 Insert Overwrite
|
|
|
|
Send - Receive 12 Full Echo
|
|
|
|
Line feed/New line 20 New line Line feed
|
|
|
|
Cursor key ?1 Application Cursor
|
|
|
|
ANSI/VT52 ?2 ANSI VT52
|
|
|
|
Column ?3 132 80
|
|
|
|
Scrolling ?4 Smooth Jump
|
|
|
|
Screen ?5 Reverse Normal
|
|
|
|
Origin ?6 Relative Absolute
|
|
|
|
Wraparound ?7 Wrap Truncate
|
|
|
|
Auto key repeat ?8 Repeating No repeat
|
|
|
|
Print form feed ?18 Yes No
|
|
|
|
Print extent ?19 Full screen Scrolling region
|
|
|
|
|
|
|
|
Keypad application Esc =
|
|
|
|
Keypad numeric mode Esc >
|
|
|
|
|
|
|
|
EDITING:
|
|
|
|
-------
|
|
|
|
|
|
|
|
Insert line Esc [ Pn L
|
|
|
|
Delete line Esc [ Pn M
|
|
|
|
Delete character Esc [ Pn P
|
|
|
|
Scrolling region Esc [ Pn(top);Pn(bot) r
|
|
|
|
|
|
|
|
PRINTING:
|
|
|
|
--------
|
|
|
|
|
|
|
|
Print screen or region Esc [ i
|
|
|
|
Print cursor line Esc [ ? 1 i
|
|
|
|
Enter auto print Esc [ ? 5 i
|
|
|
|
Exit auto print Esc [ ? 4 i
|
|
|
|
Enter print controller Esc [ 5 i
|
|
|
|
Exit print controller Esc [ 4 i
|
|
|
|
|
|
|
|
LINE SIZE:
|
|
|
|
---------
|
|
|
|
|
|
|
|
The following is a list of the available styles of printing on the
|
|
|
|
screen. "Yes" in any column means that the option is supported by the escape
|
|
|
|
code on that line. "No" means that the option is not supported by the escape
|
|
|
|
code on that line; however, it may, and almost certainly is, supported by
|
|
|
|
another escape sequence.
|
|
|
|
|
|
|
|
Double-height and double-width double the size of the characters in their
|
|
|
|
respective ways (ie. Double-height is twice as tall as usual). _Line
|
|
|
|
designates underlining. Blink is for blinking characters. Side is the
|
|
|
|
orientation of the character. Normal means that there is no orientation.
|
|
|
|
|
|
|
|
Top and bottom refers to the position of the character in order to make a
|
|
|
|
complete character. The top and bottom sequences will be important if you use
|
|
|
|
the double height option. You will need to print the line twice to get a
|
|
|
|
complete line. The first printing will print the top part of the characters
|
|
|
|
and the second printing will print the bottom part.
|
|
|
|
|
|
|
|
Inverse refers to the condition of the character. "No" indicates that the
|
|
|
|
character will be printed in the color it normally is printed in with its usual
|
|
|
|
backround. "Yes" means that the character will be printed in the backround
|
|
|
|
color and the character's backround will be the color it is usually printed in.
|
|
|
|
Shade refers to the brightness of the character. Normal is the standard
|
|
|
|
brightness of the character. Bright is bold type. Dark is a darker brightness
|
|
|
|
than usual.
|
|
|
|
|
|
|
|
The escape code is the command you would type before the text you want to print
|
|
|
|
to get the indicated effects. This section was greatly expanded in version 1.1
|
|
|
|
of this file.
|
|
|
|
|
|
|
|
Double Double
|
|
|
|
Height Width _Line Blink Side Inverse Shade Escape Code
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
No No No No Normal No Normal <ESC>[0m
|
|
|
|
Yes Yes No No Top No Bright <ESC>#3<ESC>[1m
|
|
|
|
Yes Yes No No Bottom No Bright <ESC>#4<ESC>[1m
|
|
|
|
Yes Yes No No Top No Dark <ESC>#3<ESC>[2m
|
|
|
|
Yes Yes No No Bottom No Dark <ESC>#4<ESC>[2m
|
|
|
|
Yes Yes No No Top No Normal <ESC>#3<ESC>[3m
|
|
|
|
Yes Yes No No Bottom No Normal <ESC>#4<ESC>[3m
|
|
|
|
Yes Yes Yes No Top No Normal <ESC>#3<ESC>[4m
|
|
|
|
Yes Yes Yes No Bottom No Normal <ESC>#4<ESC>[4m
|
|
|
|
Yes Yes No Yes Top No Normal <ESC>#3<ESC>[5m
|
|
|
|
Yes Yes No Yes Bottom No Normal <ESC>#4<ESC>[5m
|
|
|
|
Yes Yes No No Top Yes Normal <ESC>#3<ESC>[7m
|
|
|
|
Yes Yes No No Bottom Yes Normal <ESC>#3<ESC>[7m
|
|
|
|
No Yes No No Normal No Normal <ESC>#6<ESC>[0m
|
|
|
|
No Yes No No Normal No Bright <ESC>#6<ESC>[1m
|
|
|
|
No Yes No No Normal No Dark <ESC>#6<ESC>[2m
|
|
|
|
No Yes Yes No Normal No Normal <ESC>#6<ESC>[4m
|
|
|
|
No Yes No Yes Normal No Normal <ESC>#6<ESC>[5m
|
|
|
|
No Yes No No Normal Yes Normal <ESC>#6<ESC>[7m
|
|
|
|
No No No No Normal No Bright <ESC>#7<ESC>[1m
|
|
|
|
No No No No Normal No Dark <ESC>#7<ESC>[2m
|
|
|
|
No No Yes No Normal No Normal <ESC>#7<ESC>[4m
|
|
|
|
No No No Yes Normal No Normal <ESC>#7<ESC>[5m
|
|
|
|
No No No No Normal Yes Normal <ESC>#7<ESC>[7m
|
|
|
|
|
|
|
|
* Some codes have been eliminated due to a repetition of effects. To the best
|
|
|
|
of my knowledge, these codes are complete and correct. If you should find
|
|
|
|
any errors, or you find some new sequences/effects, please inform me.
|
|
|
|
|
|
|
|
* <ESC>#3 and <ESC>#4 behave in the same way as <ESC>#3[3m and <ESC>#4[4m.
|
|
|
|
|
|
|
|
CHARACTER SETS:
|
|
|
|
--------------
|
|
|
|
|
|
|
|
Character set G0 G1
|
|
|
|
-----------------------------------------------------
|
|
|
|
United Kingdom (UK) Esc ( A Esc ) A
|
|
|
|
United States (US) Esc ( B Esc ) B
|
|
|
|
Graphics Esc ( 0 Esc ) 0
|
|
|
|
Default ROM Esc ( 1 Esc ) 1
|
|
|
|
Alternate ROM Esc ( 2 Esc ) 2
|
|
|
|
|
|
|
|
Switch to G0/G1 Esc O Esc N
|
|
|
|
|
|
|
|
TAB STOPS:
|
|
|
|
---------
|
|
|
|
|
|
|
|
Set tab at current column Esc H
|
|
|
|
Clear tab at current column Esc [ g
|
|
|
|
Clear all tabs Esc [ 3 g
|
|
|
|
|
|
|
|
MISCELLANEOUS:
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Hard Reset Esc c
|
|
|
|
|
|
|
|
Character attributes Esc [ Ps m
|
|
|
|
or Esc [ Ps ; Ps ; Ps m
|
|
|
|
0 - All attributes off
|
|
|
|
1 - Bold on
|
|
|
|
4 - Underscore on
|
|
|
|
5 - Blink on
|
|
|
|
7 - Reverse on
|
|
|
|
|
|
|
|
Programmable LEDs Esc [ Ps q
|
|
|
|
0 - All LEDs off
|
|
|
|
(1 - 4) - Turn respective LED on
|
|
|
|
|
|
|
|
Fill screen with "E"s (test) Esc # 8
|
|
|
|
|
|
|
|
(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
|
|
|
|
|
|
|
|
NON-VT100 CONTROL SEQUENCES:
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
*Some VT100 terminal programs also understand a few other escape
|
|
|
|
sequences than the standard VT100. I cannot guarantee that any of
|
|
|
|
these nonstandard codes will work with any particular terminal, but
|
|
|
|
they may be useful if they do work.
|
|
|
|
|
|
|
|
Transmit a file Esc { T filenameCR ---> CR = Carriage Return
|
|
|
|
Receive a file Esc { R filenameCR ---> CR = Carriage Return
|
|
|
|
Append to a file Esc { A filenameCR ---> CR = Carriage Return
|
|
|
|
Save collected text Esc { S
|
|
|
|
Save collected text Esc S
|
|
|
|
|
|
|
|
* These sequences will probably be most useful in developing a micro
|
|
|
|
version of a VT100 emulator or in adapting an existing one.
|
|
|
|
|
|
|
|
(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *)
|
|
|
|
|
|
|
|
VT52 MODE SUMMARY:
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Cursor up Esc A
|
|
|
|
Cursor down Esc B
|
|
|
|
Cursor right Esc C
|
|
|
|
Cursor left Esc D
|
|
|
|
Graphics character set Esc F
|
|
|
|
ASCII character set Esc G
|
|
|
|
Home cursor Esc H
|
|
|
|
Reverse line feed Esc I
|
|
|
|
Erase to end of screen Esc J
|
|
|
|
Erase to end of line Esc K
|
|
|
|
Print cursor line Esc V
|
|
|
|
Enter print controller Esc W
|
|
|
|
Exit print controller Esc X
|
|
|
|
Cursor address Esc Y row col
|
|
|
|
Identify Esc Z
|
|
|
|
Print screen Esc ]
|
|
|
|
Enter auto print Esc ^
|
|
|
|
Exit auto print Esc -
|
|
|
|
Alternate keypad Esc =
|
|
|
|
Numeric keypad Esc >
|
|
|
|
Enter ANSI mode Esc <
|
|
|
|
|
|
|
|
* Row and column numbers are single characters with a bias of 31.
|
|
|
|
E.g., "$" means row/column 5.)
|
|
|
|
|
|
|
|
KEYPAD AND FUNCTION KEY SUMMARY:
|
|
|
|
-------------------------------
|
|
|
|
|
|
|
|
CURSOR CONTROL KEYS:
|
|
|
|
-------------------
|
|
|
|
Vt52 ANSI and Cursor Key modes
|
|
|
|
Arrow Key Mode Reset Set
|
|
|
|
---------------------------------------------------
|
|
|
|
Up Esc A Esc [ A Esc O A
|
|
|
|
Down Esc B Esc [ B Esc O B
|
|
|
|
Right Esc C Esc [ C Esc O C
|
|
|
|
Left Esc D Esc [ D Esc O D
|
|
|
|
|
|
|
|
AUXILLIARY KEYPAD:
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
VT52 Mode ANSI Mode
|
|
|
|
Key Numeric Application Numeric Application
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
0 0 Esc ? p 0 Esc O p
|
|
|
|
1 1 Esc ? q 1 Esc O q
|
|
|
|
2 2 Esc ? r 2 Esc O r
|
|
|
|
3 3 Esc ? s 3 Esc O s
|
|
|
|
4 4 Esc ? t 4 Esc O t
|
|
|
|
5 5 Esc ? u 5 Esc O u
|
|
|
|
6 6 Esc ? v 6 Esc O v
|
|
|
|
7 7 Esc ? w 7 Esc O w
|
|
|
|
8 8 Esc ? x 8 Esc O x
|
|
|
|
9 9 Esc ? y 9 Esc O y
|
|
|
|
- - Esc ? m - Esc O m
|
|
|
|
, , Esc ? l , Esc O l
|
|
|
|
. . Esc ? n . Esc O n
|
|
|
|
ENTER ^M Esc ? M ^M Esc O M
|
|
|
|
PF1 Esc P Esc P Esc O P Esc O P
|
|
|
|
PF2 Esc Q Esc Q Esc O Q Esc O Q
|
|
|
|
PF3 Esc R Esc R Esc O R Esc O R
|
|
|
|
PF4 Esc S Esc S Esc O S Esc O S
|
|
|
|
|
|
|
|
VT100 CURRENT STATES:
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Esc [ c DA:Device Attributes
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
Esc Z DECID:Identify Terminal (ANSI mode)
|
|
|
|
|
|
|
|
* For PC/Intercomm and some other emulators,
|
|
|
|
irrespective of the parameter(s) present, the
|
|
|
|
response is always
|
|
|
|
|
|
|
|
Esc [ ? 6 c
|
|
|
|
|
|
|
|
(i.e., a VT102) Other DEC terminals will respond
|
|
|
|
according to their configuration and mode.
|
|
|
|
|
|
|
|
Esc Z Identify (VT52 mode)
|
|
|
|
|
|
|
|
* The sequence Esc / Z is always returned.
|
|
|
|
|
|
|
|
Esc [ <sol> x DECREQTPARM: Request Terminal Parameters
|
|
|
|
|
|
|
|
* <sol> values other than 1 are ignored. Upon
|
|
|
|
receipt of a <sol> value of 1, the following
|
|
|
|
response is sent:
|
|
|
|
|
|
|
|
Esc[3;<par>;<nbits>;<xspeed>;<rspeed>;1;0x
|
|
|
|
|
|
|
|
* Where <par>, <nbits>, <xspeed>, and <rspeed>
|
|
|
|
are as for VT100s with the following
|
|
|
|
exceptions:
|
|
|
|
|
|
|
|
<nbits> Values of 5 and 6 bits per
|
|
|
|
character are sent as 7 bits.
|
|
|
|
|
|
|
|
<xspeed>,<rspeed>
|
|
|
|
These two numbers will always
|
|
|
|
be the same. 9600 baud is
|
|
|
|
sent for 7200 baud.
|
|
|
|
|
|
|
|
Esc [ Ps n DSR: Device Status Report
|
|
|
|
|
|
|
|
* Parameter values other than 5, 6, are ignored.
|
|
|
|
If the parameter value is 5, the sequence
|
|
|
|
Esc [ O n is returned. If the parameter value is
|
|
|
|
6, the CPR: Cursor Position Report sequence
|
|
|
|
Esc [ Pn ; Pn R is returned with the Pn set to
|
|
|
|
cursor row and column numbers.
|
|
|
|
/* ---------- */
|
|
|
|
|