www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik VT100 Beschreibung der Grenzen und Angaben


Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat mal jemand eine wirklich lesbare und verständliche beschreibung der 
vt100 escape sequenzen?

ich werde warscheinlich eh nur die sequenzen nutzen um einen cursor zu 
versetzten:

ESC [ x A
ESC [ x B
ESC [ x C
ESC [ x D

ich habe hier und auch bei google einige dokumente gefunden, und leider 
war in keinem beschrieben wie groß x werden darf...kann.
Zum glück war zumindest in einem beschrieben das es sich bei der Angabe 
der Cursor bewegungen um eine ascii zahl als string handelt, sprich:

1B 5B 32 32 41

ESC [  2  2  A

verschiebt den cursor um 22 zeilen nach oben.

wie groß kann x werden, wo findet man mal ausführliche beschreibungen 
des vt100 standards ohne kram drum her...

d.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ohne jetzt Detail zur Hand zu haben...
VT100 steuert ein Terminal an. Auf dessen Bildschirm ist nur begrenzt 
Platz, als Beispiel 24 Zeilen zu je 80 Zeichen. Dieser Wert ist 
letztlich Deine sinnvolle Grenze, deshalb haben Mailboxen auch immer 
erst abgefragt, wieviel Zeichen und Zeilen dargestellt werden können.
Vermutlich habe die Werte auch in der VT100-Spezifikation irgendwo 
Grenzen, ich bin mir aber sicher, daß die merklich außerhalb der 
tatsächliche nutzbaren Werte liegen.

Es wird also kaum Sinn machen, auf einem 24 Zeilen Terminal mit 
Cursor-Position in der 3. Zeile um 10 Zeilen nach oben zu schicken oder 
um 30 Zeilen nach unten...

Gruß aus Berlin
Michael

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soviel war schon klar,

nur sind diese terminals ja nicht mehr 24 zeilig, siehe terra term.

um systemrecourcen anzeigen zu können, und nicht immer wieder das bild 
neu zu schicken, will ich quasi die neuen infos über die alten 
schreiben, nichts aufregendes, eigentlich standard, dabei ist mir 
aufgefallen, das die beschreibungen doch immer recht kryptisch ausfallen 
- so empfinde ich das zumindest...

naja, über hinweise zu einem "guten" script dazu, wäre ich jedenfalls 
immer noch dankbar.

d.

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..mir ist auch klar das ich ansonsten ja 2 sequenzen hintereinander 
schicken kann, mache ich momentan ja auch so, doch es muss doch eine 
beschreibung für grenzen und darstellungen geben...

d.

Autor: ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://en.wikipedia.org/wiki/VT100 schreibt:
"The VT100 was a video terminal made by Digital Equipment Corporation 
(DEC) which became the de facto standard..."
Also mehr als das Ding im Original konnte ist dann kein VT100 mehr...
http://www.cs.utk.edu/~shuford/terminal/dec.html

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis wrote:
> ..mir ist auch klar das ich ansonsten ja 2 sequenzen hintereinander
> schicken kann, mache ich momentan ja auch so, doch es muss doch eine
> beschreibung für grenzen und darstellungen geben...
>
> d.

Das stand noch nicht mal in der Original-Doku von Dec
drinnen.

Ich denke mal 2-stellig wird immer gehen. VT100 hatte
doch auch einen 132 oder 135 oder so Spalten Modus.
Von daher wird 3 stellig wohl auch gehen. Alles darüber:
kann, muss aber nicht. Verlassen würde ich mich nicht
drauf.

Aus rein praktischer Überlegung heraus:
Die Zahl muss ja beim Empfang geparst werden. 2-stellig
könnte man die Angabe in einem Byte speichern. 3-stellig
würde auch bis 255 gehen. Wenn der Terminalprogrammierer
dafür ein Byte genommen hat, dann sind das die Grenzen.
Das nächste Beste wäre ein Word. Und dann gehts hoch
bis 655.. (na du weist schon).

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, so siehts aus, dahin gingen auch meine überlegungen, es scheint 
nicht festgelegt zu sein, da die grenzen zur vt100 zeit durch den 
bildschirm selbst beschrieben wurden.

nun gut, für meine belange reicht es. ich habe für mich rausgefunden das 
ich in meinem bereich bis 39 39 gehen kann, und würde, wenn ich ein 
terminal emulieren will/werde auch ein byte als maximum annehmen.

es wird selten vorkommen das jemand tabellen auf die art refrescht die 
größer als 99 zeilen sind, da findet eh keiner mehr durch.

dank euch,
d.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Zahlen in den VT100/ANSI-Sequenzen sind nicht mit fester Stellenzahl 
konstruiert. "ESC[2A" ist ebenso möglich wie "ESC[200A", sofern 200 auf 
dem Device Sinn ergibt. Die Syntax dieser Sequenzen ist ja bewusst so 
gewählt worden, dass sie von der Länge der Zahl(en) unabhängig ist.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon.
Die Frage ist nur: Wenn ich dem Device
ESC[200000000000000000000000000000000000000A
schicke. Was passiert dann?
Hängt es sich auf? Darf es sich aufhängen?
Scrollt es bis zum St. Nimmerleinstag? Muss es
soweit scrollen können?

Zugegeben: In der Praxis stellt sich die Frage
nicht mit dieser Zahl. Von daher etwas weltfremd.
Aber wo liegt dann die Grenze?

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-) ist eigentlich das was ich wissen wollte, und eigentlich auch 
wichtig!

ich habe jetzt eben einen kleinen praxistest mit einer kleinen nullmodem 
brücke und 2 unterschiedlichen terminal programmen gemacht.

tera term unterstützt u.a. vt100 und das Hterm die ein und ausgabe u.a. 
von ascii zeichen, das ist in beide richtungen ganz interessant.

so findet man noch schneller escape sequenzen....

ich habe eine geschickt die im terminal mit vt100 eine scala von 0 bis 
300 anlegt für die zeilen, zuvor habe ich tera term auf 400 zeilen 
eingestellt.

und siehe da, die escape sequenz:

1b 5d 32 37 30 41 wird genommen, der Kursor rauscht 270 zeilen nach 
oben!
ESC [  2  7  0 up

d.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Frage ist nur: Wenn ich dem Device
> ESC[200000000000000000000000000000000000000A
> schicke.

Das gibt mit Sicherheit einen Überlauf, weil totsicher nicht mit 
beliebiger Genauigkeit gerechnet wird.

Ob das in irgendeinem Standard mal festgelegt ist oder nicht (allenfalls 
bei ANSI-Terminal, sicherlich nicht bei DEC-VT100), ist irrelevant. Denn 
letztlich zählt die tatsächliche Implementierung, mit der du es zu tun 
kriegst.

Und die realen Implementierungen werden üblicherweise 8-, 16- oder 
32-bittig rechnen, je nach Architektur und Notwendigkeit. Mehr als 
16-bit würde ich lieber nicht voraussetzen, bei realen Terminals mit 
entsprechender Beschränkung nicht mehr als 8-bit.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.