HomeBIOSCookie-JarXBRA-Verfahren

3.8 VT-52-Terminal

Die Ausgabefunktionen des GEMDOS bzw. BIOS können ein VT-52 Videoterminal emulieren. Alle Steuersequenzen werden durch das ESC Zeichen des ASCII-Codes eingeleitet, dem weitere Zeichen für die gewünschte Funktion folgen. Deshalb spricht man auch von Escape-Sequenzen. Zusätzlich stehen auch die Steuerzeichen des ASCII-Codes zur Verfügung.

Der VT-52 Emulator stellt die folgenden Steuercodes zur Verfügung:

Code Name Bedeutung
BS Backspace Zeichen links vom Cursor löschen
BEL Bell Systemglocke.
ESC J Clear to end of screen Bildschirm ab Cursor löschen.
ESC K Clear to end of line Aktuelle Zeile ab Cursor löschen.
ESC E Clear screen Bildschirm löschen.
ESC l Clear line Aktuelle Zeile löschen.
ESC o Clear to start of line Aktuelle Zeile bis Cursor löschen.
ESC d Clear to start of screen Bildschirm bis Cursor löschen.
ESC B Cursor down Cursor eine Zeile nach unten.
ESC H Cursor home Cursor in die obere linke Ecke.
ESC D Cursor left Cursor eine Spalte nach links.
ESC C Cursor right Cursor eine Spalte nach rechts.
ESC A Cursor up Cursor eine Zeile nach oben.
ESC M Delete line Zeile entfernen.
ESC Y Set cursor position Cursor positionieren.
ESC b Foreground color Textfarbe setzen.
ESC L Insert line Zeile einfügen.
LF Line feed Zeilenvorschub
ESC k Restore cursor position Cursor restaurieren.
ESC c Background color Hintergrundfarbe setzen.
CR Carriage Return Cursor zum Anfang der Zeile.
ESC q Normal video Reverse Schrift ausschalten.
ESC p Reverse video Reverse Schrift einschalten.
ESC j Save cursor position Cursor "merken".
ESC I Cursor up and insert Cursor eine Zeile nach oben und scrollen.
FF Formfeed Seitenvorschub
HT Tabulator horizontaler Tabulator
VT Tabulator vertikaler Tabulator
ESC w Wrap off Zeilenumbruch ausschalten.
ESC v Wrap on Zeilenumbruch einschalten.
     
ESC e Cur_on Cursor zeigen
ESC f Cur_off Cursor verstecken
  Blink_on Cursor-Blinken einschalten
  Blink_off Cursor-Blinken ausschalten
  Set_blink Blinkrate setzen
  Get_blink Blinkrate abfragen

Hinweis: Programme die VT-52-Sequenzen für den Bildschirmaufbau verwenden, sollten natürlich die gesamte verfügbare Fläche nutzen. Da diese Fläche jedoch nicht mit GEMDOS, BIOS oder XBIOS-Funktionen ermittelt werden kann gilt die folgende Konvention:

Wenn die Environmentvariablen LINES (ROWS) und COLUMNS existieren, enthalten sie die maximal mögliche Zeilen- bzw. Spaltenzahl.

Als Beispiel für die im folgenden vorgestellten Escape-Sequenzen wird ein C Makro gezeigt. Da der Aufruf der Escape-Sequenzen in einer Ausgabe der entsprechenden Zeichen besteht, sollte sich das C Beispiel leicht auf andere Sprachen portieren lassen.

Querverweis: ASCII-Tabelle   Scan-Code Tabelle

3.8.1 Bell

Name: »Bell« - Systemglocke.
Deklaration: #define Bell() Cconout('\a')
Beschreibung: 'Bell' läßt die Systemglocke ertönen.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.2 Blink_off

Name: »Blink off« - Cursorblinken ausschalten.
Deklaration: #define Blink_off() Cursconf ( 3, 0 )
Beschreibung: 'Blink_off' ist ein Funktionen-Makro, mit der das Blinken des Cursors ausgeschaltet werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.3 Blink_on

Name: »Blink on« - Cursorblinken einschalten.
Deklaration: #define Blink_on() Cursconf ( 2, 0 )
Beschreibung: 'Blink_on' ist ein Funktionen-Makro, mit der das Blinken des Cursors eingeschaltet werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.4 Clear_down

Name: »Clear to end of screen« - Bildschirm ab Cursor löschen.
Deklaration: #define Clear_down() Cconws("\33J")
Beschreibung: Mit 'Clear to end of screen' kann der Bildschirm ab der Cursorposition gelöscht werden.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.5 Clear_eol

Name: »Clear to end of line« - Aktuelle Zeile ab Cursor löschen.
Deklaration: #define Clear_eol() Cconws("\33K")
Beschreibung: Mit 'Clear to end of line' kann die aktuelle Zeile ab der Cursorposition gelöscht werden.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.6 Clear_home

Name: »Clear screen« - Bildschirm löschen.
Deklaration: #define Clear_home() Cconws("\33E")
Beschreibung: Mit 'Clear screen' kann der gesamte Bildschirm gelöscht und der TOS-Cursor in die obere linke Ecke des Bildschirms positioniert werden.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.7 Clear_line

Name: »Clear line« - Aktuelle Zeile löschen.
Deklaration: #define Clear_line() Cconws("\33l")
Beschreibung: Mit 'Clear line' kann die aktuelle Zeile gelöscht werden. Die nachfolgenden Zeilen werden nicht nachgeschoben. Der Cursor wird zum Anfang der Zeile gesetzt.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.8 Clear_sol

Name: »Clear to start of line« - Aktuelle Zeile ab Cursor löschen.
Deklaration: #define Clear_sol() Cconws("\33o")
Beschreibung: Mit 'Clear to start of line' kann die aktuelle Zeile bis zur Cursorposition gelöscht werden kann.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.9 Clear_up

Name: »Clear to start of screen« - Bildschirm bis Cursor löschen.
Deklaration: #define Clear_up() Cconws("\33d")
Beschreibung: Mit 'Clear to start of screen' kann der Bildschirm bis zur Cursorposition gelöscht werden.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.10 Cur_down

Name: »Cursor down« - Cursor eine Zeile nach unten.
Deklaration: #define Cur_down() Cconws("\33B")
Beschreibung: Mit 'Cursor down' kann der TOS-cursor um eine Zeile nach unten positioniert werden. Befindet sich der Cursor bereits in der untersten Zeile, passiert nichts.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.11 Cur_home

Name: »Cursor home« - Cursor in die obere linke Ecke.
Deklaration: #define Cur_home() Cconws("\33H")
Beschreibung: Mit 'Cursor home' kann der TOS-cursor in die obere linke Ecke des Bildschirms positioniert werden.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.12 Cur_left

Name: »Cursor left« - Cursor eine Spalte nach links.
Deklaration: #define Cur_left() Cconws("\33D")
Beschreibung: Mit 'Cursor left' kann der TOS-cursor um eine Spalte nach links positioniert werden. Befindet sich der Cursor bereits in der ganz linken Spalte, passiert nichts.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.13 Cur_off

Name: »Hide cursor« - Cursor ausschalten.
Deklaration: #define Cur_off() Cursconf ( 0, 0 )
Beschreibung: 'Cur_off' ist ein Funktionen-Makro, mit der der Cursor ausgeschaltet werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.14 Cur_on

Name: »Show cursor« - Cursor einschalten.
Deklaration: #define Cur_on() Cursconf ( 1, 0 )
Beschreibung: 'Cur_on' ist ein Funktionen-Makro, mit der der Cursor eingeschaltet werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.15 Cur_right

Name: »Cursor right« - Cursor eine Spalte nach rechts.
Deklaration: #define Cur_right() Cconws("\33C")
Beschreibung: Mit 'Cursor right' kann der TOS-cursor um eine Spalte nach rechts positioniert werden. Befindet sich der Cursor bereits in der ganz rechten Spalte, passiert nichts.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.16 Cur_up

Name: »Cursor up« - Cursor eine Zeile nach oben.
Deklaration: #define Cur_up() Cconws("\33A")
Beschreibung: Mit 'Cursor up' kann der TOS-cursor um eine Zeile nach oben positioniert werden. Befindet sich der Cursor bereits in der obersten Zeile, passiert nichts.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.17 Del_line

Name: »Delete line« - Zeile entfernen.
Deklaration: #define Del_line() Cconws("\33M")
Beschreibung: Mit 'Delete line' kann die aktuelle Zeile gelöscht werden. Die nachfolgenen Zeilen werden nachgeschoben, der Cursor wird an den Anfang der Zeile gesetzt.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.18 Escapesequenzen

C-Sequenz Wert Zeichen Wirkung
\a 0x07 BEL Bell (Systemglocke)
\b 0x08 BS Backspace
\f 0x0C FF Formfeed (Seitenvorschub)
\n 0x0A LF Linefeed (Newline)
\r 0x0D CR Carriage return (Wagenrücklauf)
\t 0x09 HT Tabulator (horizontal)
\v 0x0B VT Tabulator (vertikal)

Querverweis: VT-52-Terminal   GEMDOS   BIOS   XBIOS

3.8.19 Get_blink

Name: »Get blink rate« - Cursorblinkfrequenz abfragen.
Deklaration: #define Get_blink() Cursconf ( 5, 0 )
Beschreibung: 'Get_blink' ist ein Funktionen-Makro, mit der die Frequenz des Cursorblinkens abgefragt werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.20 Goto_pos

Name: »Set cursor position« - Cursor positionieren.
Deklaration: #define Goto_pos(x,y) (Cconws("\33Y"),Cconout(' '+x),Cconout(' '+y))
Beschreibung: Mit 'Set cursor position' kann der Cursor an x-te Zeile und y-te Spalte positioniert werden. Beachten Sie bitte, daß die Zählung bei 32 beginnt. Deshalb wurde in obigem Makro 32 (Leerzeichen) addiert, um bei der Verwendung des Makros mit 0 zählen zu können.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.21 Ink

Name: »Foreground color« - Textfarbe setzen.
Deklaration: #define Ink(c) (Cconws("\33b"),Cconout(c))
Beschreibung: Mit 'Foreground color' kann die Textfarbe gesetzt werden kann. Die Anzahl der verfügbaren Farben ist auflösungsabhängig.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.22 Ins_line

Name: »Insert line« - Zeile einfügen.
Deklaration: #define Ins_line() Cconws("\33L")
Beschreibung: Mit 'Insert line' kann eine neue Zeile an der Cursorposition eingefügt werden. Der Cursor wird an den Anfang der neuen Zeile gesetzt.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.23 Line_feed

Name: »Line feed« - Zeilenvorschub
Deklaration: #define Line_feed() Cconout('\n')
Beschreibung: 'Line feed' setzt den Cursor in die nächste Zeile (Zeilenvorschub).
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.24 Load_pos

Name: »Restore cursor position« - Cursor restaurieren.
Deklaration: #define Load_pos() Cconws("\33k")
Beschreibung: Mit 'Restore cursor position' kann der Cursor wieder an die Stelle positioniert werden, die vorher mit 'Save cursor position' "gemerkt" wurde.
Querverweis: Escapesequenzen   VT-52-Terminal   Save_pos

3.8.25 Paper

Name: »Background color« - Hintergrundfarbe setzen.
Deklaration: #define Paper(c) (Cconws("\33c"),Cconout(c))
Beschreibung: Mit 'Background color' kann die Hintergrundfarbe gesetzt werden. Die Anzahl der verfügbaren Farben ist auflösungsabhängig.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.26 Return

Name: »Carriage Return« - Cursor zum Anfang der Zeile.
Deklaration: #define Return() Cconout('\r')
Beschreibung: 'Return' setzt den Cursor an den Anfang der aktuellen Zeile.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.27 Rev_off

Name: »Normal video« - Reverse Schrift ausschalten.
Deklaration: #define Rev_off() Cconws("\33q")
Beschreibung: Mit 'Normal video' kann die reverse Schrift (Reverse video) wieder ausgeschaltet werden.
Querverweis: Escapesequenzen   VT-52-Terminal   Rev_on

3.8.28 Rev_on

Name: »Reverse video« - Reverse Schrift einschalten.
Deklaration: #define Rev_on() Cconws("\33p")
Beschreibung: Mit 'Reverse video' kann die reverse Schrift (Hintergrund- und Textfarbe vertauscht) eingeschaltet werden. Dieser Modus kann mit 'Normal video' wieder ausgeschaltet weden.
Querverweis: Escapesequenzen   VT-52-Terminal   Rev_off

3.8.29 Save_pos

Name: »Save cursor position« - Cursor "merken".
Deklaration: #define Save_pos() Cconws("\33j")
Beschreibung: Mit 'Save cursor' position kann die aktuelle Cursorposition in einen internen Puffer gespeichert wird. Die gespeicherte Cursorposition kann später mit Restore cursor position restauriert werden.
Querverweis: Escapesequenzen   VT-52-Terminal   Load_pos

3.8.30 Scroll_up

Name: »Cursor up and insert« - Cursor eine Zeile nach oben und scrollen.
Deklaration: #define Scroll_up() Cconws("\33I")
Beschreibung: Mit 'Cursor up' and insert kann der TOS-cursor um eine Zeile nach oben positioniert werden. Befindet sich der Cursor bereits in der obersten Zeile, wird der Bildschirminhalt um eine Zeile nach unten gescrollt und eine Leerzeile eingefügt.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.31 Set_blink

Name: »Set blink rate« - Cursorblinkfrequenz einstellen.
Deklaration: #define Set_blink( rate ) Cursconf ( 4, rate )
Beschreibung: 'Set_blink' ist ein Funktionen-Makro, mit der die Frequenz des Cursorblinkens eingestellt werden kann. Hierzu wird die XBIOS-Funktion Cursconf verwendet.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.32 Tab

Name: »Tabulator« - Cursor zur nächsten Tabulatorposition.
Deklaration: #define Tab() Cconout('\t')
Beschreibung: 'Tab' setzt den Cursor an die nächste Tabulatorposition.
Querverweis: Escapesequenzen   VT-52-Terminal

3.8.33 Wrap_off

Name: »Wrap off« - Zeilenumbruch ausschalten.
Deklaration: #define Wrap_off() Cconws("\33w")
Beschreibung: Mit 'Wrap off' kann der Zeilenumbruch (Wrap on) ausgeschaltet werden.
Querverweis: Escapesequenzen   VT-52-Terminal   Wrap_on

3.8.34 Wrap_on

Name: »Wrap on« - Zeilenumbruch einschalten.
Deklaration: #define Wrap_on() Cconws("\33v")
Beschreibung: Mit 'Wrap on' kann der Zeilenumbruch eingeschaltet werden. Dies bewirkt, daß bei Erreichen des Endes einer Zeile automatisch zum Anfang der nächsten Zeile gesprungen wird.
Querverweis: Escapesequenzen   VT-52-Terminal   Wrap_off

HomeBIOSCookie-JarXBRA-Verfahren