BIOS
Cookie-Jar
XBRA-Verfahren
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:
Die VT52 Emulation von TosWin2 unterstützt ausserdem folgende
Steuercodes:
Code |
Name |
Bedeutung |
ESC 3 <c> |
ANSI foreground color |
ANSI Vordergrundfarbe setzen. |
ESC 4 <c> |
ANSI background color |
ANSI Hintergrundfarbe setzen. |
ESC F |
Enter graphics mode |
Alternativen Zeichensatz benutzen. |
ESC G |
Exit graphics mode |
Normalen Zeichensatz benutzen. |
ESC R <cols,rows> CR |
Set window size |
Fenstergröße setzen. |
ESC S <s> CR |
Set title bar |
Fenstertitel setzen. |
ESC Z |
Identify |
Antwortet mit ESC / Z |
ESC a |
Delete character |
Zeichen unter Cursor löschen. |
ESC h |
Enter insert mode |
Einfügemodus starten. |
ESC i |
Exit insert mode |
Einfügemodus beenden. |
ESC u |
Original colors |
Originalfarben wieder herstellen. |
ESC y <c> |
Set text effects |
Text-Effekte setzen. |
ESC z <c> |
Clear text effects |
Text-Effekte löschen. |
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
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
BIOS
Cookie-Jar
XBRA-Verfahren