Forum: Mikrocontroller und Digitale Elektronik Hyperterminal: Zeichen einfügen, Zeichen löschen


von Peter S. (Gast)


Lesenswert?

Hallo,

ich programmiere am µC gerade ein kleines "Terminal Interface". Der µC 
kommuniziert also über die RS232 mit Hyperterminal. Allerdings ist mir 
momentan nicht klar, wie man Hyperterminal "sagen" kann, dass ein 
Zeichen an der aktuellen Cursor Position eingefügt werden soll (so, dass 
das nachfolgende Zeichen nicht überschrieben wird, sonder um 1 nach 
rechts geschoben wird)?

Das gleiche gilt für das Löschen eines Zeichens in einem Text. Da sollen 
dann natürlich alle Zeichen nach dem Cursor um 1 nach links geschoben 
werden.

Bei meinen Suchen im Internet bin ich auf die VT-100 Escape Sequenzen 
gestoßen: http://ascii-table.com/ansi-escape-sequences-vt-100.php

Allerdings bin ich mir auch nicht sicher, ob es da eine Sequenz zum 
Einstellen des "Einfüge-Modus" gibt. Die namen der Sequenzen waren mir 
zumindest diesbezüglich nicht schlüssig.

Vielen Dank für eure Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

Peter S. schrieb:

> dass ein
> Zeichen an der aktuellen Cursor Position eingefügt werden soll

Och das ist leicht: gar nicht.

Wenn du ein Zeichen einfügen willst, dann gibst du das Zeichen aus, 
genauso wie den nachfolgenden Text der Zeile und positionierst den 
Cursor wieder zurück hinter das eingefügte Zeichen.

> Das gleiche gilt für das Löschen eines Zeichens in einem Text. Da sollen
> dann natürlich alle Zeichen nach dem Cursor um 1 nach links geschoben
> werden.

Selbes spiel: du gibst den dahinterliegenden Text um eine Stelle nach 
links verschoben erneut aus und positionierst anschliessend wieder den 
Cursor an die Löschstelle.

> Allerdings bin ich mir auch nicht sicher, ob es da eine Sequenz zum
> Einstellen des "Einfüge-Modus" gibt. Die namen der Sequenzen waren mir
> zumindest diesbezüglich nicht schlüssig.

Du traust dem Terminal zuviel zu.
Diese Terminal haben keine Vorstellung davon, was ein 'Text' ist oder 
wie damit zu verfahren ist. Denn: was soll denn zb mit dem letzten 
Zeichen einer Bildschirmzeile passieren, wenn du ein Zeichen einfügst? 
Das muss ja dann wohl in die nächste Zeile an den Anfang wandern. Oder 
auch nicht. Kann ja sein, dass du den Zeileninhalt ins Nirvana schieben 
willst.

So ein Terminal ist eine einfache Sache: Du drückst eine Taste und das 
Terminal sendet einen Code für die Taste. Das Gegenüber schickt Zeichen 
und das Teriminal stellt sie dar. Alles andere ist dein Bier.

von Peter S. (Gast)


Lesenswert?

Danke für die Antwort!

Ich hatte halt gehofft, dass dies direkt vom Terminal unterstützt 
wird... Aber dann muss ich es halt "händisch" machen.

von gnuopfer (Gast)


Lesenswert?

Hi,


Natürlich geht das:

1.) Hyperterminal, diesen Moskwitsch‎ der Terminalprogramme, löschen.

2.) Besorgen eines richitgen Terminalprogrammes, z. Zap-O-Com. Sollte 
mindestens VT100 Emulation unterstützen, besser VT220.

3.) VT100 Steuercodes auf Google suchen und ins Programm einbauen.

4.) Fertig.

von Dietrich L. (dietrichl)


Lesenswert?

gnuopfer schrieb:
> 2.) Besorgen eines richitgen Terminalprogrammes, z. Zap-O-Com. Sollte
> mindestens VT100 Emulation unterstützen,

VT100 kann HyperTerminal aber auch ...

von gnuopfer (Gast)


Lesenswert?

> VT100 kann HyperTerminal aber auch ...

Stimmt, "Insertion-Replacement Mode" geht erst ab VT102 
(http://vt100.net/docs/vt102-ug/chapter5.html#S5.5.2.22).

Das VT102 Terminal ist aber noch so neu (gebaut ca. 1980-83), da darf 
man natürlich nicht erwarten, dass Microsoft das 2007 schon im 
XP-Hyterterminal unterstützt...

von Wolfgang (Gast)


Lesenswert?

gnuopfer schrieb:
> Das VT102 Terminal ist aber noch so neu (gebaut ca. 1980-83), da darf
> man natürlich nicht erwarten, dass Microsoft das 2007 schon im
> XP-Hyterterminal unterstützt...

Inzwischen hat MS das Problem anscheinend gelöst. Mit Win8 wird 
anscheinend gar kein Terminalprogramm mehr ausgeliefert.

von A * B = B + A (Gast)


Lesenswert?

gnuopfer schrieb:
> da darf
> man natürlich nicht erwarten, dass Microsoft das 2007 schon im
> XP-Hyterterminal unterstützt...

Wolfgang schrieb:
> Inzwischen hat MS das Problem anscheinend gelöst. Mit Win8 wird
> anscheinend gar kein Terminalprogramm mehr ausgeliefert.

Weil es kein MS Produkt war sondern eines wo der Hersteller das 
Kunststück fertig gebracht hat das ganze Qualitativ noch unter dem 
Standard aus Redmond anzusiedeln.

Peter S. schrieb:
> Der µC kommuniziert also über die RS232 mit Hyperterminal.

Warum nimmst du nicht Hterm statt dieses Konsumerteil?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

A * B = B + A schrieb:
> Warum nimmst du nicht Hterm statt dieses Konsumerteil?

Der Vorschlag ist grandios. Hterm ist kein Terminalprogramm und versteht 
exakt gar nichts von irgendwelche Terminalsteuersequenzen.

von isnah (Gast)


Lesenswert?

A * B = B + A schrieb:
> Weil es kein MS Produkt war sondern eines wo der Hersteller das
> Kunststück fertig gebracht hat das ganze Qualitativ noch unter dem
> Standard aus Redmond anzusiedeln.

Die Qualität der, von DEC kreierten, VT102-SW anzuzweifeln, kann nur 
einem mausverwöhnten Tastaturmuffel einfallen. ;-)

von Jojo S. (Gast)


Lesenswert?

http://www.chiark.greenend.org.uk/~sgtatham/putty/

ist noch eine gute Alternative die Terminals emulieren kann.

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.