You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
5.0 KiB
124 lines
5.0 KiB
Newsgroups: comp.terminals,comp.protocols.misc |
|
Subject: ANSI X3.64 sequences (was Re: VT100 scrolling region) |
|
Summary: Escape code effects |
|
Expires: Sun, 31 Jan 1993 22:23:24 GMT |
|
References: <18623@mindlink.bc.ca> <lj3vgrINNieu@news.bbn.com> |
|
Sender: shuford@cs.utk.edu |
|
Followup-To: comp.terminals |
|
Distribution: world |
|
Organization: University of Tennessee, Knoxville--Dept. of Computer Science |
|
Keywords: VT100, scroll, control code, Escape, ANSI X3.64, terminal |
|
|
|
In article <lj3vgrINNieu@news.bbn.com> pdsmith@bbn.com (Peter D. Smith) writes: |
|
> In article <18623@mindlink.bc.ca>, Frank@mindlink.bc.ca (Frank I. Reiter) |
|
> writes: |
|
> > Part of an application I am working on includes a VT100 emulator. |
|
> > 1) Does ESC [;22r mean "scroll lines 0 through 22" or does it mean "Set |
|
> > the bottom scrolling line to 22, leave the top line as it is set already"? |
|
> |
|
> It should mean 'scroll lines 1 to 22'. |
|
|
|
The control sequences recognized by the Digital Equipment Corporation |
|
VT100, VT200, VT300, and VT400-family character-cell video terminals |
|
are an extended variant of the control sequences specified by an ANSI |
|
standard, ANSI X3.64. (ISO DP6429 is the international version.) |
|
|
|
The generic sequence introducer is a thing called CSI (Control |
|
Sequence Introducer). If you are using 8-bit communication, you |
|
can use the hexadecimal value 9B to represent this (but be sure you |
|
understand the side effects thereof). Otherwise, use the 7-bit |
|
equivalent: the Escape character (1Bh) followed by [ (the left |
|
bracket character). |
|
|
|
The canonical form of the given scroll-region command would be |
|
|
|
CSI xx ; yy r |
|
|
|
or in 7-bit style |
|
|
|
Esc [ xx ; yy r |
|
|
|
(where xx and yy are decimal digits expressed in ASCII/IA5; you do not |
|
actually use a space between sequence elements, this is for clarity. |
|
Be careful with the notation here--sometimes a space character _is_ |
|
a sequence element, as in the SR Scroll Right editing function.) |
|
|
|
In an X3.64 control sequence, the numeric arguments may default to an |
|
arbitrary value specific to the device function being controlled. Do |
|
not assume that the default always will be 0 or 1. (Or there may be |
|
no default allowed.) For example, the numeric arguments in the GSM |
|
(Graphic Size Modify) sequence have the default values 100, 100. |
|
|
|
As a private extension to X3.64, DEC defines the DECSTBM (Set Top and |
|
Bottom Margins) command as follows: |
|
|
|
CSI Pt ; Pb r |
|
|
|
Selects top and bottom margins defining the scrolling region. |
|
Pt is the line number of the first line in the scrolling region. |
|
Pb is the line number of the bottom line. |
|
If you do not select either Pt or Pb, they default to the top |
|
and bottom respectively. Lines are counted from 1. |
|
|
|
(See \VT220 Programmer Pocket Guide/, part EK-VT220-HR-002, page 37.) |
|
|
|
> Remember that these sequences |
|
> could be implemented in TTL without a microprocessor of any |
|
> kind & therefore use the simplest possible implementation. |
|
|
|
Peter must be thinking of the much simpler DEC VT52 sequences. As far |
|
as I know, terminals implementing X3.64 have ALWAYS used a built-in |
|
microprocessor. The VT100 was built around an 8-bit-bus Intel 8085. |
|
|
|
In fact, when the X3.64 document was published (circa 1978), some |
|
vendors, insisting on using discrete logic designs, objected that the |
|
standard was so complex it could not be implemented. Most of these |
|
vendors are now floating belly-up on the tide of technology. Some |
|
credit is due to The Heath Company for a pioneering microprocessor- |
|
based video terminal that implemented many of the X3.64 functions. |
|
|
|
> > 2) Should a clear screen code clear the scrolling region only, or the |
|
> > entire screen? How about a clear to end of screen? |
|
> |
|
> I think this is the whole screen regardless of the scrolling region. |
|
> Don't bet your company on it, though. |
|
|
|
Screen clearing should not depend on scrolling. |
|
|
|
Erasing parts of the display (EL and ED) in the VT100 is performed thus: |
|
|
|
Erase from cursor to end of line Esc [ 0 K or Esc [ K |
|
Erase from beginning of line to cursor Esc [ 1 K |
|
Erase line containing cursor Esc [ 2 K |
|
Erase from cursor to end of screen Esc [ 0 J or Esc [ J |
|
Erase from beginning of screen to cursor Esc [ 1 J |
|
Erase entire screen Esc [ 2 J |
|
|
|
Some brain-damaged terminal/emulators respond to Esc [ J as if it were |
|
Esc [ 2 J (here the default is 0), and _some_ versions of Microsoft's |
|
MS-DOS ANSI.SYS contain a bug requiring software to send Esc [ k |
|
(instead of the uppercase). Of course, you would never make this mistake. |
|
|
|
The VT200 and later terminals have the ECH control sequence: |
|
|
|
Esc yy X |
|
|
|
(where yy is a numeric parameter) |
|
|
|
This erases the cursor position and the next (yy-1) positions, but this |
|
is not part of the least common denominator VT100. |
|
|
|
- - - - - - |
|
|
|
There is still various video-terminal information available for |
|
anonymous FTP in "pub/shuford" from |
|
|
|
CS.UTK.EDU [128.169.94.1] |
|
|
|
- - - - - - |
|
|
|
VT, Flip Chip, DIBOL, and Rainbow are trademarks of Digital Equipment |
|
Corporation. |
|
|
|
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |
|
|
|
|