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


von Dennis (Gast)


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.

von Michael U. (Gast)


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

von Dennis (Gast)


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.

von Dennis (Gast)


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.

von ??? (Gast)


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

von Karl H. (kbuchegg)


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).

von Dennis (Gast)


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.

von A.K. (Gast)


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.

von Karl H. (kbuchegg)


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?

von Dennis (Gast)


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.

von A.K. (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.