HomeBIOSCookie jarXBRA procedure

3.8 VT-52 terminal

The output functions of the GEMDOS or BIOS can emulate a VT52 video terminal. All control sequences are prefaced by the ESC character of the ASCII code, followed by further characters for the desired function. That is why one also speaks about Escape sequences. The ASCII code control sequences are available as well.

The VT52 emulator has the following control sequences available:

Code Name Meaning
BS Backspace Delete character to left of cursor.
BEL Bell Systemglocke.
ESC J Clear to end of screen Clear screen from cursor onwards.
ESC K Clear to end of line Clear line from cursor onwards.
ESC E Clear screen Clear screen and place cursor at top left corner.
ESC l Clear line Clear current line.
ESC o Clear to start of line Clear current line up to cursor.
ESC d Clear to start of screen Clear screen up to cursor.
ESC B Cursor down Move cursor one line downwards.
ESC H Cursor home Move cursor to the upper left corner.
ESC D Cursor left Move cursor one column to the left.
ESC C Cursor right Move cursor one column to the right.
ESC A Cursor up Move cursor one line upwards.
ESC M Delete line Remove line.
ESC Y Set cursor position Position cursor.
ESC b Foreground color Set text colour.
ESC L Insert line Insert a line.
LF Line feed Line feed.
ESC k Restore cursor position Restore cursor.
ESC c Background color Set background colour.
CR Carriage Return Move cursor to the start of the line.
ESC q Normal video Switch off inverse video text.
ESC p Reverse video Switch on inverse video text.
ESC j Save cursor position "Remember" cursor.
ESC I Cursor up and insert Move cursor one line upwards and scroll.
FF Formfeed Form feed.
HT Tabulator Horizontal tabulator.
VT Tabulator Vertical tabulator
ESC w Wrap off Disable line wrap.
ESC v Wrap on Enable line wrap.
     
ESC e Cur_on Show cursor.
ESC f Cur_off Hide cursor.
  Blink_on Switch on cursor blinking.
  Blink_off Switch off cursor blinking.
  Set_blink Set blink rate.
  Get_blink Inquire blink rate.

Note: Programs that use VT52 sequences for drawing the screen should, of course, use all of the available area. However, as this area can not be ascertained with GEMDOS, BIOS or XBIOS functions, the following conventions apply:

If the environment variables LINES (ROWS) and COLUMNS exist, then they contain the maximum number of lines or columns respectively.

In the following escape sequence entries, C macros are shown as an example. As the call of the escape sequences results in an output of the corresponding characters, the C example should be easily ported to other languages.

See also: ASCII table   Scancode table

3.8.1 Bell

Name: »Bell« - System bell or beep.
Declaration: #define Bell() Cconout('\a')
Description: Bell' makes the system bell or beep sound.
See also: Escape sequences   VT-52 terminal

3.8.2 Blink_off

Name: »Blink off« - Switch off cursor blinking.
Declaration: #define Blink_off() Cursconf ( 3, 0 )
Description: 'Blink_off' is a function macro with which the blinking of the cursor can be switched off. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.3 Blink_on

Name: »Blink on« - Switch on cursor blinking.
Declaration: #define Blink_on() Cursconf ( 2, 0 )
Description: 'Blink_on' is a function macro with which the blinking of the cursor can be switched on. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.4 Clear_down

Name: »Clear to end of screen« - Clear screen from the cursor onwards.
Declaration: #define Clear_down() Cconws("\33J")
Description: With 'Clear to end of screen' one can clear the screen from the cursor position onwards.
See also: Escape sequences   VT-52 terminal

3.8.5 Clear_eol

Name: »Clear to end of line« - Clear current line from the cursor onwards.
Declaration: #define Clear_eol() Cconws("\33K")
Description: With 'Clear to end of line' one can clear the current line from the cursor position onwards.
See also: Escape sequences   VT-52 terminal

3.8.6 Clear_home

Name: »Clear screen« - Clear the screen.
Declaration: #define Clear_home() Cconws("\33E")
Description: With 'Clear screen' the complete screen can be cleared and the TOS-cursor positioned in the upper left corner of the screen.
See also: Escape sequences   VT-52 terminal

3.8.7 Clear_line

Name: »Clear line« - Clear the current line.
Declaration: #define Clear_line() Cconws("\33l")
Description: With 'Clear line' the current line can be cleared. The following lines will not be moved up. The cursor will be placed at the start of the line.
See also: Escape sequences   VT-52 terminal

3.8.8 Clear_sol

Name: »Clear to start of line« - Clear current line up to the cursor.
Declaration: #define Clear_sol() Cconws("\33o")
Description: With 'Clear to start of line' the current line can be cleared up to the cursor position.
See also: Escape sequences   VT-52 terminal

3.8.9 Clear_up

Name: »Clear to start of screen« - Clear screen up to the cursor.
Declaration: #define Clear_up() Cconws("\33d")
Description: With 'Clear to start of screen' the screen can be cleared up to the cursor position.
See also: Escape sequences   VT-52 terminal

3.8.10 Cur_down

Name: »Cursor down« - Move cursor one line downwards.
Declaration: #define Cur_down() Cconws("\33B")
Description: With 'Cursor down' the TOS-cursor can be moved one line downwards. If the cursor is already in the lowest line then nothing happens.
See also: Escape sequences   VT-52 terminal

3.8.11 Cur_home

Name: »Cursor home« - Move cursor into the upper left corner.
Declaration: #define Cur_home() Cconws("\33H")
Description: With 'Cursor home' one can place the TOS-cursor in the upper left corner of the screen.
See also: Escape sequences   VT-52 terminal

3.8.12 Cur_left

Name: »Cursor left« - Move cursor one column to the left.
Declaration: #define Cur_left() Cconws("\33D")
Description: With 'Cursor left' the TOS-cursor can be moved one column to the left. If the cursor is already in the left-most column, then nothing happens.
See also: Escape sequences   VT-52 terminal

3.8.13 Cur_off

Name: »Hide cursor« - Switch off cursor.
Declaration: #define Cur_off() Cursconf ( 0, 0 )
Description: 'Cur_off' is a function macro, with which the cursor can be switched off. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.14 Cur_on

Name: »Show cursor« - Switch on cursor.
Declaration: #define Cur_on() Cursconf ( 1, 0 )
Description: 'Cur_on' is a function macro, with which the cursor can be switched on. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.15 Cur_right

Name: »Cursor right« - Move cursor one column to the right.
Declaration: #define Cur_right() Cconws("\33C")
Description: With 'Cursor right' one can move the TOS-cursor by one column to the right. If the cursor is already in the right-most column, then nothing happens.
See also: Escape sequences   VT-52 terminal

3.8.16 Cur_up

Name: »Cursor up« - Move cursor one line upwards.
Declaration: #define Cur_up() Cconws("\33A")
Description: With 'Cursor up' the TOS-cursor can be moved one line upwards. If the cursor is already in the top line, then nothing happens.
See also: Escape sequences   VT-52 terminal

3.8.17 Del_line

Name: »Delete line« - Remove line.
Declaration: #define Del_line() Cconws("\33M")
Description: With 'Delete line' the current line can be deleted. The following lines will be moved up, the cursor will be set at the start of the line.
See also: Escape sequences   VT-52 terminal

3.8.18 Escape sequences

C-sequence Value Character Effect
\a 0x07 BEL Bell (System bell)
\b 0x08 BS Backspace
\f 0x0C FF Formfeed (Page feed)
\n 0x0A LF Linefeed (Newline)
\r 0x0D CR Carriage return
\t 0x09 HT Tabulator (horizontal)
\v 0x0B VT Tabulator (vertical)

See also: VT-52 terminal   GEMDOS   BIOS   XBIOS

3.8.19 Get_blink

Name: »Get blink rate« - Obtain cursor blink rate.
Declaration: #define Get_blink() Cursconf ( 5, 0 )
Description: 'Get_blink' is a function macro with which the rate of the cursor blink can be established. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.20 Goto_pos

Name: »Set cursor position« - Position the cursor.
Declaration: #define Goto_pos(x,y) (Cconws("\33Y"),Cconout(' '+x),Cconout(' '+y))
Description: With 'Set cursor position' one can position the cursor in the x-th line and y-th column. Please note that the count starts at 32 (the screen has coordinates (32,32) at the upper left of the screen). That is why 32 (spaces) were added in the above macro, so that the count can start at 0 when using the macro.
See also: Escape sequences   VT-52 terminal

3.8.21 Ink

Name: »Foreground color« - Set text colour.
Declaration: #define Ink(c) (Cconws("\33b"),Cconout(c))
Description: With 'Foreground color' one can set the text colour. The number of available colours depends on the current screen resolution.
See also: Escape sequences   VT-52 terminal

3.8.22 Ins_line

Name: »Insert line« - Insert a line.
Declaration: #define Ins_line() Cconws("\33L")
Description: With 'Insert line' one can insert a line at the cursor position. The cursor will be set at the start of the new line.
See also: Escape sequences   VT-52 terminal

3.8.23 Line_feed

Name: »Line feed« - Line feed.
Declaration: #define Line_feed() Cconout('\n')
Description: 'Line feed' sets the cursor in the next line (line feed).
See also: Escape sequences   VT-52 terminal

3.8.24 Load_pos

Name: »Restore cursor position« - Restore cursor.
Declaration: #define Load_pos() Cconws("\33k")
Description: With 'Restore cursor position' the cursor can be placed again at the position it occupied earlier when "marked" with 'Save cursor position'.
See also: Escape sequences   VT-52 terminal   Save_pos

3.8.25 Paper

Name: »Background color« - Set background colour.
Declaration: #define Paper(c) (Cconws("\33c"),Cconout(c))
Description: With 'Background color' one can set the background colour. The number of available colours depends on the current screen resolution.
See also: Escape sequences   VT-52 terminal

3.8.26 Return

Name: »Carriage Return« - Move cursor to the start of the line.
Declaration: #define Return() Cconout('\r')
Description: 'Return' sets the cursor to the start of the current line.
See also: Escape sequences   VT-52 terminal

3.8.27 Rev_off

Name: »Normal video« - Switch off inverse video.
Declaration: #define Rev_off() Cconws("\33q")
Description: With 'Normal video', inverse video for the text can can be switched off again.
See also: Escape sequences   VT-52 terminal   Rev_on

3.8.28 Rev_on

Name: »Reverse video« - Switch on inverse video.
Declaration: #define Rev_on() Cconws("\33p")
Description: With 'Reverse video', one can switch on inverse video (background and text colours swapped over). This mode can be switched off again with 'Normal video'.
See also: Escape sequences   VT-52 terminal   Rev_off

3.8.29 Save_pos

Name: »Save cursor position« - "Remember" cursor position.
Declaration: #define Save_pos() Cconws("\33j")
Description: With 'Save cursor position' the current cursor position can be stored in an internal buffer. The stored cursor position can be restored later with 'Restore cursor position'.
See also: Escape sequences   VT-52 terminal   Load_pos

3.8.30 Scroll_up

Name: »Cursor up and insert« - Move cursor one line upwards and scroll.
Declaration: #define Scroll_up() Cconws("\33I")
Description: With 'Cursor up and insert' the TOS-cursor can be positioned one line upwards. If the cursor is already in the top line, then the screen contents are scrolled one line downwards and an empty line is inserted.
See also: Escape sequences   VT-52 terminal

3.8.31 Set_blink

Name: »Set blink rate« - Set cursor blink rate.
Declaration: #define Set_blink( rate ) Cursconf ( 4, rate )
Description: 'Set_blink' is a function macro with which the rate of the cursor blink can be set. The XBIOS function Cursconf is used for this.
See also: Escape sequences   VT-52 terminal

3.8.32 Tab

Name: »Tabulator« - Move cursor to next tabulator position.
Declaration: #define Tab() Cconout('\t')
Description: 'Tab' sets the cursor at the next tabulator position.
See also: Escape sequences   VT-52 terminal

3.8.33 Wrap_off

Name: »Wrap off« - Switch off line-wrapping.
Declaration: #define Wrap_off() Cconws("\33w")
Description: With 'Wrap off' one can switch off line-wrapping.
See also: Escape sequences   VT-52 terminal   Wrap_on

3.8.34 Wrap_on

Name: »Wrap on« - Switch on line-wrapping.
Declaration: #define Wrap_on() Cconws("\33v")
Description: With 'Wrap on' one can switch on line-wrapping. This has the efect that when the end of a line is reached, the cursor will jump automatically to the start of the next line.
See also: Escape sequences   VT-52 terminal   Wrap_off

HomeBIOSCookie jarXBRA procedure