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.
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
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.
..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.
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
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).
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.
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.
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?
:-) 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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.