Forum: Mikrocontroller und Digitale Elektronik Arduino: VT100 graphics


von ch (Gast)


Lesenswert?

Hier mal ein wenig Retro:
Das Zeichnen von Graphiken auf mit einem Arduino und einem Terminal 
Programm, welches das VT100 Protokoll versteht ( z.B. Teraterm ).

Ob wohl ein "Space-Invader" damit ginge?
1
#include <math.h>
2
// VT100 escape sequences
3
// http://www.termsys.demon.co.uk/vtansi.htm
4
// http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlvt100.html
5
6
//  '\E[C'
7
void VT100_moveRight()
8
{
9
  Serial.write(0x1B);
10
  Serial.write(0x5B);
11
  Serial.write(0x43);
12
}
13
14
//<ESC>[2J
15
void VT100_clearScreen()
16
{
17
  Serial.write(0x1B);
18
  Serial.print("[2J");  
19
}
20
//Esc[Line;ColumnH
21
void VT100_moveTo(uint16_t x, uint16_t y)
22
{
23
  Serial.write(0x1B);
24
  Serial.write('[');
25
  Serial.print(y);
26
  Serial.write(';');
27
  Serial.print(x);
28
  Serial.write('H');
29
}
30
31
void setup() 
32
{
33
  Serial.begin(115200);
34
  Serial.print("VT100 graphics demo");
35
  delay(3000);
36
  VT100_clearScreen();
37
}
38
39
#define POINTS 100
40
41
#define YPOS 20
42
#define XPOS 20
43
#define RADIUS 15
44
#define SCALEX 2.3
45
46
void loop() 
47
{
48
  static float n=0;
49
  float x,y;
50
  
51
  x=(sin(2*PI*n/POINTS)*RADIUS+XPOS)*SCALEX;
52
  y=cos(2*PI*n/POINTS)*RADIUS+YPOS;
53
  n++;
54
  VT100_moveTo(x,y);
55
  Serial.print("+");
56
57
  delay(100);
58
}

von ch (Gast)


Angehängte Dateien:

Lesenswert?

Das Ergebnis :-)

von ch (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal noch ein kleiner Test, wie eine analoges Signal dargestellt 
werden könnte. Aufgenommen ist das ADC0 Signal vom Signalgenerator.

Die Auflösung ist wie man sieht ziemlich grob. Um sie zu verdoppeln 
verwende ich für die Y-Höhe zwei Zeichen, nämlich ein Minus und ein 
Underline.

Beispiel:

-_   _-
  -_-

1
#define MAXX 80
2
#define MAXY 25
3
4
void drawFrame()
5
{
6
  int n;
7
  for(n=0;n<MAXX+1;n++)
8
  {
9
    VT100_moveTo(n,0);Serial.print("-");
10
    VT100_moveTo(n,MAXY+1);Serial.print("-");
11
  }
12
  for(n=0;n<MAXY+1;n++)
13
  {
14
    VT100_moveTo(0,n);Serial.print("|");
15
    VT100_moveTo(MAXX+1,n);Serial.print("|");
16
  }
17
}
18
19
void setup() 
20
{
21
  Serial.begin(115200);
22
  VT100_clearScreen();
23
  Serial.print("VT100 graphics demo");
24
  delay(2000);
25
  VT100_clearScreen();
26
  drawFrame();
27
}
28
29
#define MINX 2
30
int xpos=MINX;
31
32
void loop() 
33
{
34
  int value=analogRead(A0);
35
  VT100_moveTo(40,0);
36
  Serial.print(" ADC0: ");Serial.print(value);Serial.print("   ");
37
  
38
  // map(long x, long in_min, long in_max, long out_min, long out_max)
39
  int v2=map(value,0,1023,0,MAXY*2);
40
  VT100_moveTo(xpos++,MAXY-v2/2);
41
  if(v2&1)  Serial.print('-');
42
  else Serial.print('_');
43
44
  if(xpos>MAXX)
45
  {
46
    delay(1000);
47
    VT100_clearScreen();
48
    drawFrame();
49
    xpos=MINX;
50
  }
51
52
}

Man muss hier die Funktionen von oben einbinden.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Schau Dir mal MCURSES an. mcurses läuft auf ATmegas, STM32F4xx, 
STM32F10x und sogar Z80 (SDCC-Compiler) und auch unter Linux.

Es sollte nicht schwierig sein, das auf Arduino zu portieren.

Hier noch ein kleines Filmchen dazu:

http://www.mikrocontroller.net/wikifiles/e/ed/Mcurses.avi

von ch (Gast)


Lesenswert?

Danke für den Link. Gut finde ich, dass es nicht so aufgebläht ist wie 
"ncurses".

Probiert, ob die Sonderzeichen wie "Ecken" oder Farben auf meinem 
"Teraterm" VT100 funktionieren. Aber scheinbar gehen weder Farben noch 
Ecken.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

ch schrieb:
> "Teraterm" VT100

Teraterm kenne ich nicht, daher kann ich nichts dazu sagen.

Nimm PuTTY, das funktioniert sowohl mit COMx als auch mit 
Netzwerkprotokollen. Die Terminalemulation ist eine sehr solide 
VT220-Emulation mit allen Raffinessen.

> Aber scheinbar gehen weder Farben noch Ecken.

Zeig mal Deinen MCURSES-Source. Das Terminal wird abstrahiert, d.h. Du 
darfst da keine Escape-Sequenzen ausgeben, sondern Du nutzt zum 
Beispiel:
1
int main ()
2
{
3
    initscr();                            // mcurses initialisieren
4
5
    attrset (F_RED | B_CYAN);             // Vordergrund rot, Hintergrund türkis
6
    mvaddstr (11, 15, "Hello, World");    // Cursor positionieren und Text ausgeben
7
    attrset (A_NORMAL);                   // Invers- oder Farben-Darstellung ausschalten
8
9
    endwin ();                            // mcurses beenden
10
    return 0;
11
}

Und Graphikzeichen machst Du mit:

  addch (ACS_LRCORNER);   // lower left corner

usw. Siehe MCURSES: Sonder- und Graphikzeichen oder auch 
MCURSES: addch.

: Bearbeitet durch Moderator
von ch (Gast)


Lesenswert?

>Zeig mal Deinen MCURSES-Source.

Äh, ja, ich bin noch bei meinem Arduino-Script.
Jetzt geht das auch mit den Farben in Teraterm. Leider verzeiht das 
Terminal kleine Syntaxfehler nicht ....
1
#define FOREGROUND_COLOR_RED   31
2
#define FOREGROUND_COLOR_GREEN 32
3
#define FOREGROUND_COLOR_WHITE 37
4
5
//<ESC> [{attr1}; ...; {attrn} m 
6
void setAttribute(uint8_t color)
7
{
8
   Serial.write(0x1B);
9
   Serial.write('[');
10
   Serial.print(color);
11
   Serial.print("m");
12
}

von ChrisMicro (Gast)


Lesenswert?

Hallo Frank,

hier die erste Version vom "mcurses" als Arduino-Library:

https://github.com/ChrisMicro/mcurses

von S. R. (svenska)


Lesenswert?

XTerm unterstützt auch ReGIS- und Sixel-Sequenzen, wie auch modernere 
Terminals (VT240, VT340). Damit bekommst du sogar "echte" (Vektor- oder 
Pixel-)Grafik, nicht nur Pseudografik mit Textzeichen.

von Tektronix (Gast)


Lesenswert?

S. R. schrieb:
> XTerm unterstützt auch ReGIS- und Sixel-Sequenzen, wie auch modernere
> Terminals (VT240, VT340). Damit bekommst du sogar "echte" (Vektor- oder
> Pixel-)Grafik, nicht nur Pseudografik mit Textzeichen.

mmmhhh... Tek4014 Vektorgrafik... Lekker!
Sozusagen ein "serially controlled xy-scope" ;-)

von S. R. (svenska)


Lesenswert?

Stimmt, das Tek4014 kann XTerm auch simulieren. Wenn man die passende 
Escape-Sequenz hinschickt, geht ein Grafikfenster auf. ;-)

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

>XTerm unterstützt auch ReGIS- und Sixel-Sequenzen, wie auch modernere
>Terminals (VT240, VT340). Damit bekommst du sogar "echte" (Vektor- oder
>Pixel-)Grafik, nicht nur Pseudografik mit Textzeichen.

Wie kann man denn XTerm mit der seriellen Schnittstelle verbinden?
Vielleicht könntest Du ja auch ein kleines Graphik Beispiel zeigen. Z.B. 
wie man ein Dreieck zeichnet.


Jetzt habe ich mal das "screen_demo" zur Arduino Library hinzugefügt.

Im Anhang ist auch der Screen-Shot. Das Demo wirkt am besten, wenn man 
es auf einem Arduino laufen lässt, weil es sich dynamisch verändert.

Unter Arduino-Gesichtspunkten sollte man wahrscheinlich den Syntax etwas 
vereinfachen:

https://github.com/ChrisMicro/mcurses/blob/master/examples/screen_demo/screen_demo.ino

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

Menschen mit Rot-Grün-Blindheit könnten beim "temperature_demo" ein 
Problem haben.
Aus mir unbekannten Gründen läuft der Farbbalken auch aus dem Bild 
heraus.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

ChrisMicro schrieb:
> hier die erste Version vom "mcurses" als Arduino-Library:
>
> https://github.com/ChrisMicro/mcurses

Sehr schön, werde ich im MCURSES-Artikel verlinken.

ChrisMicro schrieb:
> Jetzt habe ich mal das "screen_demo" zur Arduino Library hinzugefügt.
>
> Im Anhang ist auch der Screen-Shot. Das Demo wirkt am besten, wenn man
> es auf einem Arduino laufen lässt, weil es sich dynamisch verändert.

Sehr nett.

> Unter Arduino-Gesichtspunkten sollte man wahrscheinlich den Syntax etwas
> vereinfachen:
>
> 
https://github.com/ChrisMicro/mcurses/blob/master/examples/screen_demo/screen_demo.ino

Wie meinst Du das? Ich habe mich von der API möglichst nahe am 
Curses-Original von AT&T bzw. an der ncurses-Lib gehalten.

ChrisMicro schrieb:
> Aus mir unbekannten Gründen läuft der Farbbalken auch aus dem Bild
> heraus.

Manche Terminalemulationen löschen bei clrtoeol() (Kommando: "Lösche bis 
zum Ende der Zeile") mit der aktuell eingestellten Farbe. Aus meiner 
Sicht ist das allerdings ein Bug in der Teminal-Emulation. PuTTY, 
welches in meinen Augen eine exzellente Implementation von 
VT220-Terminals ist, zeigt dieses Phänomen zum Beipiel nicht. Ist aber 
reine Spekulation. Dazu müsste ich mir nochmal den Source der 
mcurses-Demo genauer ansehen. Fixen könnte man dies, indem man in der 
clrtoeol()-Funktion die Farben sichert, auf normal zurückschaltet, den 
eigentlichen clear-Befehl durchführt und dann die aktuellen Farben 
wieder restauriert. Dasselbe müsste man vermutlich auch bei clrtobot() 
machen.

Aber wie gesagt: Der Bug ist in der Terminal-Emulation, nicht im mcurses 
:-)

: Bearbeitet durch Moderator
von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

>ChrisMicro schrieb:
>> Aus mir unbekannten Gründen läuft der Farbbalken auch aus dem Bild
>> heraus.
>Manche Terminalemulationen löschen bei clrtoeol() (Kommando: "Lösche bis
>zum Ende der Zeile") mit der aktuell eingestellten Farbe.

Hmmm ... gerade habe ich das Ganze für den Arduino DUE compiliert ( ARM 
Cortex M3 ) und dort sieht es gut aus ( Bild ).
Ursprünglich konnte ich nicht auf dem DUE compilieren, weil dort die 
AVR-PROGMEM Funktionen fehlten. Ich habe sie als MACRO eingefügt und 
jetzt sollte "mcurses" für alle Prozessoren funktionieren.
In Deinem ursprünglichen Code waren die Hardware-Treiber für die 
Prozessoren integriert. Das gehört meiner Meinung nach dort nicht hin 
sondern in eine getrennte HAL.

Deshalb habe ich das Interface durch CAll-Backs ersetzt und damit wird 
die Library universell einsetzbar:
1
void Arduino_putchar(uint8_t c)
2
{
3
  Serial.write(c);
4
}
5
6
void setup()
7
{
8
  Serial.begin(115200);
9
10
  setFunction_putchar(Arduino_putchar); // tell the library which output channel shall be used
11
12
  initscr();                  // initialize mcurses
13
14
}

Aus irgendwelchen Gründen sieht das Bild auf dem Uno aber anders aus, 
deshalb vermute ich, dass es doch etwas mit PROGMEM zu tun hat.

von S. R. (svenska)


Lesenswert?

ChrisMicro schrieb:
>>XTerm unterstützt auch ReGIS- und Sixel-Sequenzen, wie auch modernere
>>Terminals (VT240, VT340). Damit bekommst du sogar "echte" (Vektor- oder
>>Pixel-)Grafik, nicht nur Pseudografik mit Textzeichen.
>
> Wie kann man denn XTerm mit der seriellen Schnittstelle verbinden?

Indem du im XTerm ein "minicom", "picocom" oder ein beliebiges anderes 
Programm startest, welches mit der seriellen Schnittstelle sprechen kann 
und die Zeichen nicht interpretiert. ;-)

> Vielleicht könntest Du ja auch ein kleines Graphik Beispiel zeigen. Z.B.
> wie man ein Dreieck zeichnet.

Du musst folgendes an das XTerm schicken, um im Tek4014-Modus ein 
Dreieck zu zeichnen:
- 0x1B 0x5B 0x3F 0x33 0x38 0x68 (setze XTerm in Tek-Modus)
- 0x1B 0x0C 0x1B 0x1D (leere Bildschirm und wechsle zu Grafik)
- die eigentliche Grafik in ASCII, z.B. ",p,P,p/T.b.B,p,P"
- 0x1F 0x1B 0x03 (wechsle zu Text und setze XTerm in VT100-Modus)

Als Shell-Befehl tut bei mir folgendes:
1
$ echo -e "^[[?38h^[^L^[^],p,P,p/T.b.B,p,P^\^_^[^C"
wobei die ^ für Steuerzeichen stehen (also ^[ ist ESC usw.) 
Steuerzeichen kann man unter Unix mit STRG+V gefolgt vom Wunschzeichen 
eingeben, z.B. "STRG+V ESC" oder "STRG+V STRG+L".

Für ReGIS und Sixel bastle ich dir das jetzt aber nicht zusammen. Da ein 
VT220 (xterm-default) die nicht anzeigen kann, musst du xterm dafür mit 
einem Parameter starten. Infos gibt's im Netz. :-)

von W. M. (thematsche)


Lesenswert?

S. R. schrieb:
> Du musst folgendes an das XTerm schicken, um im Tek4014-Modus ein
> Dreieck zu zeichnen:
> - 0x1B 0x5B 0x3F 0x33 0x38 0x68 (setze XTerm in Tek-Modus)
> - 0x1B 0x0C 0x1B 0x1D (leere Bildschirm und wechsle zu Grafik)
> - die eigentliche Grafik in ASCII, z.B. ",p,P,p/T.b.B,p,P"
> - 0x1F 0x1B 0x03 (wechsle zu Text und setze XTerm in VT100-Modus)

So funkts auch mit copypaste. ;)
1
echo -ne "\x1B\x5B\x3F\x33\x38\x68\x1B\x0C\x1B\x1D,p,P,p/T.b.B,p,P\x1F\x1B\x03"

oder probiert mal das im xterminal aus:
1
x=300
2
y=300
3
while [ $x -lt 400 ] ; do
4
  echo -ne "\x1B\x5B\x3F\x33\x38\x68\x1B\x0C\x1B\x1D"; 
5
  x=$((($x + 5)));
6
  highX="\x$(printf '%x' $(((32 + ($x / 32)))))"
7
  lowX="\x$(printf '%x' $(((64 + ($x % 32)))))"
8
9
  d=",p${highX}${lowX},p/T.b.B,p${highX}${lowX}" 
10
  echo -ne "$d" ; 
11
  echo -ne "\x1F\x1B\x03"
12
  i=3000; while [ $i -gt 0 ]; do i=$((($i - 1))); done;
13
done;

:)

von ChrisMicro (Gast)


Lesenswert?

Das klingt sehr gut. Vielen Dank für eure Hinweise.
1
echo -ne "\x1B\x5B\x3F\x33\x38\x68\x1B\x0C\x1B\x1D,p,P,p/T.b.B,p,P\x1F\x1B\x03"

Ich habe das gerade mal im Ubuntu-Terminal ausprobiert
( GNOME Terminal 3.18.3 )
Da funktioniert es aber leider nicht.

>Indem du im XTerm ein "minicom", "picocom" oder ein beliebiges anderes
>Programm startest, welches mit der seriellen Schnittstelle sprechen kann
>und die Zeichen nicht interpretiert. ;-)

Das ging jetzt bei mir auch nicht. "minicom" konnte nicht mal Farben 
darstellen. Ob das wohl mit den Eigenschaften des Ubuntu-Terminals 
zusammenhängt?

von W. M. (thematsche)


Lesenswert?

ChrisMicro schrieb:
> Ich habe das gerade mal im Ubuntu-Terminal ausprobiert
> ( GNOME Terminal 3.18.3 )
> Da funktioniert es aber leider nicht.

Wenns't im Ubuntu-Terminal xterm eingibst (xterm musst ws. installieren)
und dort dann die echos aufrufst....

von ChrisMicro (Gast)


Lesenswert?

W. M. (thematsche)
>Wenns't im Ubuntu-Terminal xterm eingibst (xterm musst ws. installieren)
>und dort dann die echos aufrufst....

Danke, das funktioniert tatsächlich. Wieso haben die ein extra Terminal?
Jetzt wäre vielleicht noch die Frage interessant, wie man das Terminal 
mit der seriellen Schnittstelle verknüpft.

von ChrisMicro (Gast)


Lesenswert?

Kann eigentlich "telnet" das VT100 Protokoll?

Vielleicht könnte man dann MCURSES auf eine ESP8266 verwenden und mit 
"telenet" eine graphische Ausgabe machen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

ChrisMicro schrieb:
> Kann eigentlich "telnet" das VT100 Protokoll?

Kommt drauf an, welches telnet Du meinst. Unter Unix bzw. Linux schreibt 
es einfach die empfangenen Zeichen auf stdout und sendet die 
eingetippten Zeichen (stdin) übers Netzwerk. Das ursprüngliche Telnet 
kennt also keine Terminal-Emulation. Warum sollte es auch? Es wird ja in 
einer Terminal-Emulation gestartet!

Wie das beim telnet.exe unter Windows ist, weiß ich nicht. Ich vermute 
mal, da wird auch einfach alles an die Eingabeaufforderung 
weitergeleitet. Und die kann - meines Wissens nach - allenfalls 
rudmimentäres VT52. Also Computersteinzeit. Aber: telnet.exe braucht man 
nicht, siehe unten.

> Vielleicht könnte man dann MCURSES auf eine ESP8266 verwenden und mit
> "telenet" eine graphische Ausgabe machen.

Wenn Du PuTTY nimmst, geht das selbstverständlich. PuTTY kann auch 
telnet und liefert seine eingebaute VT220-Emulation direkt mit. Unter 
Linux nimmst Du telnet, welches Du aus einer geeigneten 
Terminal-Emulation startest.

Also: Es geht. Man braucht nur die richtigen Werkzeuge.

: Bearbeitet durch Moderator
von S. R. (svenska)


Lesenswert?

ChrisMicro schrieb:
> Ich habe das gerade mal im Ubuntu-Terminal ausprobiert
> ( GNOME Terminal 3.18.3 )

Wenn ich explizit "xterm" schreibe, dann meine ich auch "xterm". Die 
ganzen anderen Terminalemulatoren unterstützen alle keine Grafik.

ChrisMicro schrieb:
> "minicom" konnte nicht mal Farben darstellen.
> Ob das wohl mit den Eigenschaften des Ubuntu-Terminals zusammenhängt?

Minicom soll Bytes von der seriellen Schnittstelle empfangen und auf 
seiner Standardausgabe ausgeben, und es soll Bytes von seiner 
Standardeingabe lesen und auf die serielle Schnittstelle ausgeben. 
Telnet macht übrigens exakt das gleiche, nur statt mit der seriellen 
Schnittstelle mit einem TCP-Datenstrom.

Wie die Daten interpretiert werden, ist ausschließlich Aufgabe des 
Terminalemulators. Aktuelle Software unterstützt meist einen Teil von 
VT220 (d.h. VT100 mit Farbe), die Windows-Eingabeaufforderung dagegen 
nur VT52 (aber mit Erweiterungen für Farbe).

Grafikfähige Terminals (Tek40xx, VT240, VT340) werden leider fast nie 
emuliert, obwohl die für Mikrocontroller durchaus nützlich sein könnten.

von ChrisMicro (Gast)


Angehängte Dateien:

Lesenswert?

S. R. (svenska)
>Wie die Daten interpretiert werden, ist ausschließlich Aufgabe des
>Terminalemulators. Aktuelle Software unterstützt meist einen Teil von
>VT220 (d.h. VT100 mit Farbe), die Windows-Eingabeaufforderung dagegen
>nur VT52 (aber mit Erweiterungen für Farbe).

Danke für die Antwort.
Gerade eben habe ich das Temperaturdemo von hier
https://github.com/ChrisMicro/mcurses
und minicom im

LXterminal 0.1.11

und

xterm

ausprobiert.
Die Positionierung funktioniert dort, aber es gibt wohl keine Farben.
Gibt es ein Terminalprogramm für Ubuntu, was das grundsätzlich kann?

>Grafikfähige Terminals (Tek40xx, VT240, VT340) werden leider fast nie
>emuliert, obwohl die für Mikrocontroller durchaus nützlich sein könnten.
Der Code für das wandernde Dreieck oben funktioniert mit minicom im 
xterm.

von S. R. (svenska)


Lesenswert?

ChrisMicro schrieb:
> Die Positionierung funktioniert dort, aber es gibt wohl keine Farben.
> Gibt es ein Terminalprogramm für Ubuntu, was das grundsätzlich kann?

So ziemlich alle Terminalemulatoren können das. Wenn du "^[[33m" an dein 
Terminal schickst, siehst du das auch.

Bist du dir sicher, dass
(a) minicom alle Zeichen durchreicht und selbst nichts filtert?
(b) mcurses auch tatsächlich die Farbsequenzen verschickt?

Ich vermute, dass minicom schuld ist. Probiere mal picocom aus.
Nachtrag: Probiere mal "minicom -c on".

: Bearbeitet durch User
von ChrisMicro (Gast)


Lesenswert?

>Bist du dir sicher, dass
>(a) minicom alle Zeichen durchreicht und selbst nichts filtert?
>(b) mcurses auch tatsächlich die Farbsequenzen verschickt?

Unter Windows wird mit PuTTY und TERATERM alles richtig angezeigt. Aus 
diesem Grunde bin ich mir sicher, dass das MCURSES-Temperatur-Demo 
korrekt implementiert ist und funktioniert.
Unter Ubuntu mit MINICOM es so wie oben angezeigt.

>Ich vermute, dass minicom schuld ist. Probiere mal picocom aus.
PICOCOM macht im Gegensatz zu MINICOM nicht mal die Positionierung.

>Nachtrag: Probiere mal "minicom -c on".
Danke, damit werden die Farben jetzt korrekt angezeigt.
Allerdings: Wie man im Bild oben sieht, werden beim Temperatur-Bar-Graph 
die Striche durch andere Zeichen ersetzt.
Ich vermute, dass VT100 normalerweise den IBM-Zeichensatz CP347 benutzt

https://de.wikipedia.org/wiki/Codepage_437

Diese beinhaltet die Striche. Aber scheinbar verwendet MINICOM nur einen 
ASCII Zeichensatz.

von S. R. (svenska)


Lesenswert?

ChrisMicro schrieb:
>>Ich vermute, dass minicom schuld ist. Probiere mal picocom aus.
> PICOCOM macht im Gegensatz zu MINICOM nicht mal die Positionierung.

Dann frisst irgendwas in deinem System die Escapesequenzen, statt sie 
direkt ans Terminal zu senden. Das gesamte Terminalsystem besteht aus zu 
vielen Programmen, die zu intelligent sein wollen.

ChrisMicro schrieb:
> Ich vermute, dass VT100 normalerweise den IBM-Zeichensatz CP347 benutzt

Als das DEC VT100 rauskam, gab es den IBM-PC und dessen CP437 noch 
nicht. Die DEC-Terminals verwendeten ihren eigenen Zeichensatz, der aber 
zur Laufzeit umgeschaltet werden muss zwischen ASCII und Grafikzeichen. 
Wenn das nicht funktioniert, kriegst du Kleinbuchstaben.

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.