Forum: Projekte & Code VT100-Terminal (VGA+PS2)


von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

VT100-Terminal (VGA+PS2)

In einigen Mikrokontrollerprojekten (CP/M) erfolgt eine 
Datenausgabe/Eingabe über eine serielle Schnittstelle. Anbei ein 
passendes VT-100 Terminal mit VGA-Ausgabe und PS-2 Tastatur.
Die Videoaufbereitung und Tastaturabfrage erfolgt über einen Propeller. 
Die Terminalschnittstelle wahlweise über USB oder RS232.
Alle Unterlagen liegen hier:
http://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/VT100/?sortdir=down

Die derzeit realisierten Steuercodes sind im Dokument VT100-Code.pdf zu 
finden. Wordstar oder Turbo Pascal laufen vollständig.
Schaltungen im Verzeichnis /docs
der Quellcode im Verzeichnis /source

In der Version 1.0 war noch ein Hardwarebug. Im Schaltungsteil der 
Signalquellenumschaltung muss etwas manuell nachgebessert werden. 
Ansonsten ist die LP vollständig funktionsfähig. Ich würde alle noch 
vorhandenen Platinen (derzeit 10 Stück) jeweils bei Erstattung des 
Portos an Interessenten versenden. Außerdem gibt es eine Neuauflage mit 
korrekter Signalquellenumschaltung. Wer daran Interesse hat, meldet sich 
einfach per PM bei mir.

von Ronny S. (phoenix-0815)


Lesenswert?

Hallo,
schönes Projekt.

Gruß Ronny

von Holm T. (Gast)


Lesenswert?

Ich würde mal so eine Platine nehmen wollen, evtl. auch gleich den 
Propeller dazu. Ich würde das Ding mit gängigen Editoren an einer PDP11 
mal testen wollen und ich bin mir sicher das da noch etliche VT100 
Sachen noch nicht so laufen werden wie es eine DEC PDP11 erwartet :-)
Wie sieht es mit der Fuktion der Gold - Taste aus?

Gruß,

Holm

von Christian J. (Gast)


Lesenswert?

Hallo Joe,

es wäre gut, wenn hier eine kleine Spec stehen würde, was das Ding genau 
macht und wie und wofür man es verwenden kann. Nicht jeder hat denn 
Thread von Anfang an mit verfolgt.

Darüber hinaus kann nicht jeder einen propeller programmieren, liegt der 
dann dabei?.

von Sinus T. (micha_micha)


Lesenswert?

Holm Tiffe schrieb:
> Wie sieht es mit der Fuktion der Gold - Taste aus?

Du solltest aber wissen, dass für die "besondere" Funktion der 
Gold-Taste die Software auf deiner PDP11 zuständig ist und nicht das 
Terminal. Da kommt - wie bei anderen Funktionstasten - nur ein ESC-Code 
raus.

Außerdem hat er ja geschrieben:
> Die derzeit realisierten Steuercodes sind im Dokument VT100-Code.pdf zu
> finden.

von Leo C. (rapid)


Lesenswert?

Holm Tiffe schrieb:
> Ich würde das Ding mit gängigen Editoren an einer PDP11
> mal testen wollen und ich bin mir sicher das da noch etliche VT100
> Sachen noch nicht so laufen werden wie es eine DEC PDP11 erwartet :-)

Schätze auch, daß da einiges fehlt z.B. Umschaltung des keypad mode 
application/numeric), da der bisherige Benutzerkreis eher keine 
DEC-Computer daran anschließt. Aber du könntest die fehlenden Funktionen 
ja dann gerne beisteuern.

> Wie sieht es mit der Fuktion der Gold - Taste aus?

Das VT100 an sich hat keine Gold-Taste. ;)
http://vt100.net/docs/vt100-ug/chapter1.html#F1-2

Die Terminalplatine ist für den Anschluß einer PS/2-Tastatatur 
vorgesehen. Deren numerisches Keypad hat leider eine Taste zu wenig. 
Auch wenn man die obere Reihe mit PF1 - PF4 belegt, wird sich z.B. EDT 
damit nicht blind bedienen lassen.

Christian J. schrieb:
> es wäre gut, wenn hier eine kleine Spec stehen würde, was das Ding genau
> macht und wie und wofür man es verwenden kann. Nicht jeder hat denn
> Thread von Anfang an mit verfolgt.

Die "kleine Spec" findest Du tausendfach im Netz. Und den von Joe 
geposteten Link anschauen, oder mal im 
Beitrag "CP/M auf ATmega88" blättern, ist wirklich 
zuviel verlangt?

> Darüber hinaus kann nicht jeder einen propeller programmieren, liegt der
> dann dabei?.

Doch, das kann jede/r, die/der Buchstaben und Zahlen auf Bildschirm und 
Tastatur unterscheiden kann, und beim Versuch, ein Kabel in eine Buchse 
zu stecken, auch mal trifft.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ich gebe zu, mein Einführungstext war mehrdeutig.

Allgemeines
Wer die alte Version haben möchte, sende mir bitte nochmals eine Mail 
mit dem Hinweis „alte Version“. Wer lieber auf die neue Version warten 
möchte, den Hinweis „neue Version“.
Die alte Version ist sofort verfügbar (10 Stück), die neue Version würde 
ich erst in Auftrag geben (8AT + Versand aus China). Propeller IC’c habe 
ich derzeit noch 10 Stück a 8.09 €. Für den Signalquellenumschalter 
benötigt man noch einen 74LV4053 (noch 8 Stück vorrätig). Als Gehäuse 
dient ein AKG 71 24 100 ME von Fischer.

Propeller
Die Software liegt als Quellcode und Bin-File im SVN. Die Programmierung 
kann sehr einfach über das zugehörige Propeller-Tool und die 
USB-Schnittstelle erfolgen. Da die Hardwareversion 1.0 den Mux direkt 
mit dem Propeller verbindet, kann man sich prima durch 
Fehlprogrammierung aussperren :-( In der Version 1.1 gibt es nun einen 
Jumper der dies verhindert.

V24
Realisiert ist ein DTE an einem 9 poligen Stecker. Von der Software wird 
derzeit nur Rx und Tx unterstützt. Ich werde jedoch noch eine 
„Vollverdrahtung“ realisieren. Da es aber ein DTE ist, kann kein 
USB-Seriell-Adapter direkt angeschlossen werden. Dieser Stecker ist also 
tatsächlich für ein Nullmodemkabel vorgesehen.

von Harald N. (haraldn)


Lesenswert?

Joe G. schrieb:
> In der Version 1.0 war noch ein Hardwarebug. Im Schaltungsteil der
> Signalquellenumschaltung muss etwas manuell nachgebessert werden.
> Ansonsten ist die LP vollständig funktionsfähig.

Hi!

Ich hab grad die Doku durchgesehen. Was muss nachgebessert werden? Ich 
habe dazu nichts gesehen.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Harald Nagy schrieb:
> Was muss nachgebessert werden?

Der Unterschied wird zwischen den Varianten Version 1.0 und Version 1.1 
deutlich. In der Version 1.0 ist der Multiplexer leider falsch 
beschaltet. Der Fehler läßt sich leich mit einigen kleinen Drähtchen 
korregieren. Ich hatte die Steuereingänge mit den Datenausgängen 
vertauscht :-(
Als Quarz muß ein 5 Mhz Quarz bestückt werden, der Pieper muß entgegen 
der aufgeführten Bestückungsvariante um 180 Grad gedreht eingelötet 
werden.

In der Ver. 1.1 ist nun zusätzlich die RS232 voll beschaltet, also mit 
DTR,DSR,RTS,CTS.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

So, Platine ist angekommen.

Obwohl ich doch reichlich gesucht habe - aber einen Schaltplan und/oder 
Teileliste habe ich nicht gefunden. Von daher weiß ich gerade nicht 
weiter...

Die "Idee" kann ich mir sicher aus der schon existierenden 
CPM/VGA-Platine ableiten. Daher würde ich annehmen, dass ich mindestens 
den FT232 und MAX232 weglassen kann und RX/TX von einem AVR direkt auf 
den Propeller geben kann, wenn ich kein USB oder RS232 haben will.
Zum USB-Anschluss habe ich auch noch eine Verständisfrage: Wozu ist der 
gut? Ist das ein USB-Host, an den man den CPM-Stick anschließen könnte 
oder...? Dann könnte ich aber auch direkt die RX/TX drauf geben.

Danke euch!

von Leo C. (rapid)


Lesenswert?

> Obwohl ich doch reichlich gesucht habe - aber einen Schaltplan und/oder
> Teileliste habe ich nicht gefunden.

Wo denn?

Joe G. schrieb:
> Alle Unterlagen liegen hier:
> http://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/VT100/?sortdir=down

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
>> Obwohl ich doch reichlich gesucht habe - aber einen Schaltplan und/oder
>> Teileliste habe ich nicht gefunden.
>
> Wo denn?
>
> Joe G. schrieb:
>> Alle Unterlagen liegen hier:
>> http://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/VT100/?sortdir=down

genau hier - aber im DOC-Verzeichnis liegen ja nur die Layouts und ein 
Bestückungsplan ohne Werte und kein Schaltplan - oder bin ich blind?

von Leo C. (rapid)


Lesenswert?


von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> dass ich mindestens
> den FT232 und MAX232 weglassen kann und RX/TX von einem AVR direkt auf
> den Propeller geben kann, wenn ich kein USB oder RS232 haben will.

In der Tat, wenn du keinen Pegelwandler benötigst oder nicht auf eine 
virtuelle COM-Schnittstelle umsetzen möchtest, kannst du diese IC's 
(auch den (MUX) weglassen. Allerdings müßte dann der Propeller extern 
programmiert werden.
Der USB-Anschluss ist nicht nur ein virtueller COM-Port sondern auch so 
beschaltet, dass darüber der Propeller programmiert werden kann.

von Marcel A. (dl1ekm)


Lesenswert?

Stimmt - dafür wäre es schon sinnvoll. Vielleich kann ich doch den FT232 
geben einen billigen China-Stick austauschen...

@Leo: Mea Culpa. Ich war tatsächlich blind... Danke :-)

von Peter Z. (flexopete)


Lesenswert?

Moin,

@ Joe
alles angekommen, vielen Dank.

@ all
die Platine läuft auch schon bei mir,allerdings
habe ich 2 Fragen:

1. Wie soll die Umschaltung zwischen FTDI und RS232
   denn gehen? Dazu müsste der Prop an P0 ein HIGH ausgeben,
   P0 bleibt aber auf LOW.
   Und wenn JP1 offen ist, würde das auch nicht gehen.
   Oder habe ich was übersehen?

2. CTS, RTS, DSR und DTR gehen direkt vom Prop an die RS232.
   Da liegen normalerweise ca +- 10V, wie beim TX vom MAX.

Gruss
Peter

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Peter Zabel schrieb:
> 2. CTS, RTS, DSR und DTR gehen direkt vom Prop an die RS232.
>    Da liegen normalerweise ca +- 10V, wie beim TX vom MAX.

Bitte die Doku VT100_sheet.pdf verwenden NICHT VT100_sheet_V1_1.pdf

> 1. Wie soll die Umschaltung zwischen FTDI und RS232
>    denn gehen? Dazu müsste der Prop an P0 ein HIGH ausgeben,
>    P0 bleibt aber auf LOW.
>    Und wenn JP1 offen ist, würde das auch nicht gehen.
>    Oder habe ich was übersehen?

JP1 existiert nicht in deiner Version.
P0 = Low -> USB
P0 = High -> RS232
Der Pulldown sorgt dafür, dass bei nicht programmiertem Propeller die 
Pogrammierung an USB liegt.

P0 auf High, in der Software F5, ist noch nicht realisiert.

: Bearbeitet durch User
von Peter Z. (flexopete)


Lesenswert?

Moin Joe,

habe ich doch schon längst auf V 1.1 vom 10.1.2015
hochgerüstet (mit JP1).

Gruss
Peter

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Peter Zabel schrieb:
> habe ich doch schon längst auf V 1.1 vom 10.1.2015
> hochgerüstet (mit JP1).

Na dann selber in der Software Hand anlegen oder bis zum WE warten :-)
Ich werde es dann integrieren.

von Peter Z. (flexopete)


Lesenswert?

bin leider kein Progammierer, werde dann
erstmal ne Brücke legen.

Peter

von Harald N. (haraldn)


Lesenswert?

Falls jemand zufälligerweise eine Reichelt-Bestellliste zusammengestellt 
hat möge er sie hier online stellen. Danke

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Peter Zabel schrieb:
> Dazu müsste der Prop an P0 ein HIGH ausgeben, P0 bleibt aber auf LOW.

Ist jetzt eingebaut. F5 schaltet nun von USB auf RS232 und wieder 
zurück.

von Peter Z. (flexopete)


Lesenswert?

@ Joe
Gerade ausprobiert und geht bei mir.
Buzzer auch.
Vielen Dank.

Gruss
Peter

von Harald N. (haraldn)


Lesenswert?

Hi! Bin gerade am Zusammenstellen der Stückliste. Einige Fragen taten 
sich auf:

1) die vier Kondensatoren am MAX3232 sind 100n Kerkos? (lt. DB ist das 
ok)
2) die Widerstände, Kerkos und LEDs sind alle Größe 1206?
3) den LP2950 finde ich bei meinen üblichen Versendern nicht. Ginge da 
auch der TS2937CP33?
https://www.reichelt.de/TS-2937-CP33/3/index.html?&ACTION=3&LA=446&ARTICLE=115972&artnr=TS+2937+CP33&SEARCH=TS+2937+CP33
4) der Buzzer sollte ja eher unkritisch sein. Ich hätte mir den hier 
ausgesucht
https://www.reichelt.de/SUMMER-CPM-121/3/index.html?&ACTION=3&LA=446&ARTICLE=35924&artnr=SUMMER+CPM+121&SEARCH=piezosignalgeber


Danke für's drüberschauen!

von Marcel A. (dl1ekm)


Lesenswert?

Harald Nagy schrieb:
> Hi! Bin gerade am Zusammenstellen der Stückliste. Einige Fragen taten
> sich auf:
>
> 1) die vier Kondensatoren am MAX3232 sind 100n Kerkos? (lt. DB ist das
> ok)
> 2) die Widerstände, Kerkos und LEDs sind alle Größe 1206?
> 3) den LP2950 finde ich bei meinen üblichen Versendern nicht. Ginge da
> auch der TS2937CP33?

Was ist denn mit dem hier - oder muss es SMD sein?
http://www.reichelt.de/index.html?ACTION=3;ARTICLE=122756;SEARCH=LP%202950%20ACZ3,3

> 
https://www.reichelt.de/TS-2937-CP33/3/index.html?&ACTION=3&LA=446&ARTICLE=115972&artnr=TS+2937+CP33&SEARCH=TS+2937+CP33
> 4) der Buzzer sollte ja eher unkritisch sein. Ich hätte mir den hier
> ausgesucht
> 
https://www.reichelt.de/SUMMER-CPM-121/3/index.html?&ACTION=3&LA=446&ARTICLE=35924&artnr=SUMMER+CPM+121&SEARCH=piezosignalgeber
>
>
> Danke für's drüberschauen!

von Harald N. (haraldn)


Lesenswert?

Jep SMD

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Harald Nagy schrieb:
> 1) die vier Kondensatoren am MAX3232 sind 100n Kerkos? (lt. DB ist das
> ok)

Dürte Ok sein, das Datenblatt sagt dazu:
The capacitor type used for C1–C4 is not critical for proper operation; 
polarized or nonpolarized capacitors can be used.

> 2) die Widerstände, Kerkos und LEDs sind alle Größe 1206?
Ja

> 3) den LP2950 finde ich bei meinen üblichen Versendern nicht. Ginge da
> auch der TS2937CP33?
Ja, aber nur im TO-252 Gehäuse

> 4) der Buzzer sollte ja eher unkritisch sein. Ich hätte mir den hier
> ausgesucht
passt

Beim Quarz bitte einen 5 MHz verwenden!

: Bearbeitet durch User
von Harald N. (haraldn)


Lesenswert?

Danke!

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

V1.1 realisiert zwei Kanäle (USB und RS232) mit Full-Null-Modem 
Beschaltung.
Der Multiplexer ist dabei auch gleich weggefallen.

Es können nun drei Varianten realisiert werden.
1.  USB und RS232
2.  nur USB
3.  nur RS232
Die Programmierung des Propeller kann über RS232 oder USB erfolgen.

von Harald N. (haraldn)


Lesenswert?

Auch dieses Projekt muss ich für mich als gescheitert erklären 
(vorläufig). Alles zusammen gelötet, alles durchgemessen. Angesteckt. 
USB Fehlermeldung wegen Gerätebeschreibung. Am Spannungsregler liegt nur 
rund 1 Volt an....
Hab heute keine Lust mehr...

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Harald Nagy schrieb:
> Auch dieses Projekt muss ich für mich als gescheitert erklären

Gescheitert ist es erst, wenn du vor dem ziel aufgibst ;-)

USB / FTDI ist ja eine Standardbeschaltung. Die 5Volt von der USB 
Schnittstelle sollten also immer anliegen. Wenn der Festspannungsregler 
korrekt arbeitet, sollten hinter ihm 3.3V sein.

: Bearbeitet durch User
von Harald N. (haraldn)


Lesenswert?

Und das ist nicht der Fall (beides). Es liegt nur 1 Volt an. Hinter dem 
Regler 0.8 was verständlich ist.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Es gibt eigentlich keinen Grund, warum die Spannung zusammenbrechen 
sollte. Es sei denn, es gibt einen satten Kurzschluss auf der 3.3V 
Seite. Löte doch mal den 3.3V Regler aus und schaue ob dann die 5V 
stabil anliegen.

von Harald N. (haraldn)


Lesenswert?

Werde ich machen und doch nochmal alle Verbindungen überprüfen. Aber 
sollte dann nicht irgendwas rauchen oder zumindest warm werden? Der USB 
Port trennt ja auch nicht, sagt nur er erkennt das Gerät nicht. Trennung 
kommt nur wenn ich versuche die Spannung direkt an der USB Buchse zu 
messen. Da dachte ich mir das sei normal....

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Sobald die 5 Volt anliegen, sollte der FT323 sofort als USB Gerät 
erkannt werden. Wenn der entsprechende Treiber (virtual COM Port) noch 
nicht installiert ist, sollte dieser nun noch eingerichtet werden. Einen 
Einfluss auf die 5V hat es jedoch nicht. Solange nicht mehr als 90mA 
fließen, schaltet der USB-Port nicht ab.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die Version 1.1 ist aufgebaut und programmiert. Alle neuen Funktionen 
hatte ich schon hier
Beitrag "Re: VT100-Terminal (VGA+PS2)"
beschrieben. Die Software wie immer im SVN. Derzeit gibt es 10 Platinen 
dazu.

von Muessigb (Gast)


Lesenswert?

Hallo,
ich besitze eine 1.0er Platine.
Leider würde es keinen Sinn machen, mir alle SMD Teile einzeln zu 
bestellen, da ich absolut keine SMD Teile besitze (nur Through Hole).
Hat jemand vielleicht diese Teile übrig und würde sie mir gegen eine 
kleine Spende schicken? ;)

von Peter T. (pitt)


Lesenswert?

Gibt es noch Platinen und Spezialteile ?
mfg Pitt

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Peter T. schrieb:
> Gibt es noch Platinen und Spezialteile ?

Ja, Platinen und Propeller IC's sind noch verfügbar.

von Marcel A. (dl1ekm)


Lesenswert?

Ich glaube, ich brauche auch bald noch einen 2. Satz.
Was kosten die?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

zur Info

Leiterplatte Version 1.1 2,30€/Stück, noch 9 Stück vorhanden
Propeller 8.09€/Stück, noch 6 Stück vorhanden
Porto+Polsterumschalg 1.65
Summe 12€/Satz

@Pitt
Dein Brief geht dir heute noch zu.

von Marcel A. (dl1ekm)


Lesenswert?

Ich nehme auch noch eine Platine + Propeller

von Michael S. (dg7mdu) (Gast)


Lesenswert?

Hallo Joe,
hast du noch eine VT100-Terminal (VGA+PS2) V1.1 Leerplatine und bereits 
programmierten Propeller?
falls Du alle Bauteile vorrätig hättest würde ich auch gerne einen 
Komplettbausatz nehmen
Nenn mir doch bitte die Zahlungsmöglichkeiten.

Vielen Dank
Michael

von Michael S. (dg7mdu)


Lesenswert?

Hallo Joe,
hast du noch eine VT100-Terminal (VGA+PS2) V1.1 Leerplatine und bereits
programmierten Propeller?
falls Du alle Bauteile vorrätig hättest würde ich auch gerne einen
Komplettbausatz nehmen
Nenn mir doch bitte die Zahlungsmöglichkeiten.

Vielen Dank
Michael

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Michael S. schrieb:
> hast du noch eine VT100-Terminal (VGA+PS2) V1.1 Leerplatine und bereits
> programmierten Propeller?

Eine Platine und ein Propeller-IC (unprogrammiert) ist verfügbar. Die 
Programmierung kann sehr einfach direkt über USB oder RS232 auf dem 
VT100 Board erfolgen. Die Software liegt sowol als Quelltext als auch 
als Binärfile vor. Die Zahlung erfolgt einfach nach Lieferung.
Gruß Joe

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ich habe mal hier [1] versucht alle Informationen zum Aufbau des VT100 
zu bündeln. Vielleicht macht es den Nachbau etwas einfacher :-)

[1] http://www.openmechatronics.de/?Home

: Bearbeitet durch User
von Uwe S. (de0508)


Lesenswert?

Danke Joe G,

wow, da steckt in vielen Schubladen viel Arbeit drin !

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Hier ist eine neue Test - Software für das Terminal.

Da die Unterschiede zwischen der AVR-CP/M- und der Standalone-Version 
des Terminals gering sind, wurden die beiden Varianten zusammen gelegt. 
Es gibt in Zukunft also nur noch eine Software für beide Varianten (von 
mir).

Mich würde nun interessieren, ob die Erkennung überall zuverlässig 
funktioniert. Außerdem würde ich mich freuen, wenn einige Leute weitere 
Funktionen testen würden, und Ihre Meinung/Kritik dazu abgeben würden.

1. Synchronisiert der Monitor zuverlässig?
   Mein LS-8 von Pollin ist etwas zickig und tat es mit den
   ursprünglichen Werten nicht. Inzwischen habe ich bemerkt, daß das
   Display mit den aktuellen Einstellungen auch nicht immer richtig
   synchronisiert. In der Datei 'vgacolour.spin' sind verschiedene
   Parametersätze zum Ausprobieren.

2. Welchen Font sollen wir nehmen?
   In der Test-Version sind 3 verschiedene Fonts eingebaut, die über das
   Setup-Menü (F7) gewechselt werden können. Mit der ESC-Sequenz
   'ESC # 9' kann ein "Testbild" mit dem kompletten Font auf dem
   Bildschirm dargestellt werden. Inzwischen habe ich Terminus entdeckt.
   Der ist auch noch einen Versuch wert.

3. Farben?
   Ich habe versucht, die Farbpalette auf die Werte der Tabelle in [1]
   zu ändern. Die Zahlenwerte in Spalte 1,  'Standard VGA colors',
   (0, 85, 170, 255) entsprechen genau den Möglichkeiten unserer,
   Hardware, und die alte Palette paßt nicht in das ECMA-48, bzw.
   ISO-6429 Schema.
   Leider sieht das Ergebnis auf meinem Display sehr bescheiden aus.
   Helle und dunkle Farben sind kaum voneinander zu unterscheiden. Wie
   sieht das bei Euch aus? Zum Testen kann man z.b. die angehängte Datei
   'colors.vt' auf das Terminal ausgeben.

4. Attribute
   Was braucht man denn noch, bzw. was wäre wünschenswert?
   Wir haben Farben, bright, und invers.
   Zusätzlich möglich wären Unterstreichen, bold, blinken (nur wenn man
   mich zwingt). Problem ist der Textspeicher Z.Zt. belegt jedes Zeichen
   2 Byte. 8 Bit für das Zeichen und je 4 Bit für Vorder- und Hinter-
   grund-Farbe. Wenn man sich auf einen Font mit 127 Zeichen einigen
   könnte wäre ein Bit für ein Attribut frei. Zur Zeit ist das so für
   die Fonts 0 und 1 zum Unterstreichen realisiert. Ein Bit könnte man
   gewinnen, wenn man sich auf 8 Hintergrund-Farben beschränkt.
   Man könnte auch den Textspeicher um ein oder 2 Byte pro Zeichen
   erweitern. Dann hätte man genügend Platz um alle Attribute zu
   realisieren. Wahrscheinlich reicht dann aber der Platz für den
   Programmcode nicht mehr aus. ;-)

Das reicht mal für den Anfang.
Happy Testing


[1] https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Für alle Tester unter Windows, bitte in der Keyb-de.spin den Quellcode 
an dieser Stelle korregieren. Hier hat die Umlautkonvertierung Mist 
gemacht.

{{ for keyboard-de start }}

                        cmp     data,#de_ae     wz      'replace ae
        if_z            mov     data,#"ä"
                        cmp     data,#de_oe     wz      'replace oe
        if_z            mov     data,#"ö"
                        cmp     data,#de_ue     wz      'replace ue
        if_z            mov     data,#"ü"

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kurze Rückkopplung.
Super Arbeit!

Auf dem PC-Monitor sieht Font 2 trotz fehlenden Abstand bei einigen 
Zeichen optisch am besten aus. Auf dem Pollin Teil Font 1. Font 0 sieht 
bei beiden Monitoren nicht so schön aus.

Bei der Synchronisation sieht es bei beiden Bildschirmen am besten bei ' 
--> fH: 31,3 KHz  fV 59,5 Hz aus. Sie synchronisieren sehr sauber.

Zu den Farben kann nicht noch nichts sagen, das erfordert mehr Arbeit. 
Doch das angefügte Bild auf dem Pollin Bildschirm (10,4  Zoll) wollte 
ich dir nicht vorenthalten. Es ist tatsächlich ein Foto vom Bildschirm. 
Ein wirklich super Bild!

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> {{ for keyboard-de start }}

Das Properller-Tool tut so, als könnte es utf-8 verarbeiten, kann es 
aber nicht, im Gegensatz zu BST. Ich bin auch erst auf utf-8 
umgestiegen, nachdem ich mich vergewissert hatte, daß man die Dateien 
problemlos auf utf-16 zurück konvertieren kann. Z.B. mit recode oder 
iconv.

Ich habe das "Problem" jetzt so gelöst:
1
                        cmp     data,#de_ae     wz      'replace ae
2
        if_z            mov     data,#$E4
3
                        cmp     data,#de_oe     wz      'replace oe
4
        if_z            mov     data,#$F6
5
                        cmp     data,#de_ue     wz      'replace ue
6
        if_z            mov     data,#$FC

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Auf dem PC-Monitor sieht Font 2 trotz fehlenden Abstand bei einigen
> Zeichen optisch am besten aus.

Mich stört der fehlende Abstand. Man müßte zwischen je 2 Zeichen eine 
zusätzliche Punktspalte einfügen. Mit der bestehenden Scanroutine ist 
das aber nicht zu machen. Wenn man 2 weitere Cogs spendieren würde, 
könnte es gehen. Ist aber verhältnismäßig viel Aufwand, und mit den Cogs 
habe ich eigentlich noch anderes vor.

> Auf dem Pollin Teil Font 1.

Was für eine Auflösung hat das Display denn?
Auf meinem Pollin (LS-8, 1024x768) ist der Font zu dünn. Schräge Linien 
sehen etwas angefressen aus.

> Font 0 sieht bei beiden Monitoren nicht so schön aus.

Kein Wunder, das ist ein 8x8 Font, bei dem jede Zeile doppelt 
dargestellt wird.

> Bei der Synchronisation sieht es bei beiden Bildschirmen am Besten bei
> ' --> fH: 31,3 KHz  fV 59,5 Hz aus. Sie synchronisieren sehr sauber.

Ich glaube, daß geht bei mir auch am Besten. Die Parameter sind von 
hier:
http://tinyvga.com/vga-timing/640x480@60Hz

Die Werte in der "-->" Zeile sind das, was mein "richtiger" Monitor 
anzeigt.

Dein Bild ist aber wirklich super. Damit meine ich jetzt nicht die 
Qualität des Videosignals. Ich kriegs so (mit meinem Händi) nicht hin. 
Entweder habe ich starke Spiegelungen, oder die Bildpunkte sind total 
überstrahlt.

> Zu den Farben kann nicht noch nichts sagen, das erfordert mehr Arbeit.
> Doch das angefügte Bild auf dem Pollin Bildschirm (10,4  Zoll) wollte
> ich dir nicht vorenthalten. Es ist tatsächlich ein Foto vom Bildschirm.
> Ein wirklich super Bild!

Bei mir sieht das Grün auf dem LS-8 viel heller aus. Inzwischen habe ich 
auch noch mal auf dem PC-Monitor geschaut. Da geht es ganz gut.

Aber jetzt bin ich dabei, die Palette einstellbar zu machen. 
(Steuersequenzen, und später auch über Setup). Aber sinnvolle Defaults 
braucht man trotzdem.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Jetzt habe ich es doch noch geschafft.

Der HD-Monitor ist so eingestellt, daß das Bild nicht skaliert, sondern 
jeder Punkt 1:1 in der Bildschirmmitte dargestellt wird.

In der unteren Hälfte (Bright Forground) sollten alle Zahlen zu sehen 
sein. Das ist auf dem LS-8 nicht der Fall. Weiß und Hellgrau 
(Hintergrund der letzten Spalte und der Schrift)  sind praktisch nicht 
zu unterscheiden.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Leo C. schrieb:
> 4. Attribute
>    Was braucht man denn noch, bzw. was wäre wünschenswert?
>    Wir haben Farben, bright, und invers.
Ich kann wunderbar mit Font 1 (127 Zeichen) leben. Es muss nicht 
Codepage 850 sein. Font 1 enthält im unteren Bereich auch ganz nützliche 
Rahmensymbole. Die zweiten 127 Zeichen würde ich dem unterstrichenen 
Font spendieren, so wie es jetzt gemacht ist. Bold und blinken muss 
nicht sein. Bold kann ja individuell mit einer anderen Farbe belegt 
sein.

> Was für eine Auflösung hat das Display denn?
Genau 640x480, also optimal. Laut Pollindatenblatt ist es ein G104V1-T01 
[1].

> Dein Bild ist aber wirklich super.
Spiegelreflexkamera, dunkel, kurze Belichtungszeit, offene Blende :-)

Bei mir zeigen beide Monitore das gleiche Farbverhalten (siehe Fotos, 
links Pollin, rechts Monitor). Das Pollindisplay ist sogar etwas besser 
im Kontrast. Die Streifen resultieren irgendwie aus der Überlagerung 
Display - Kamera.

[1] 
http://www.display-solution.com/en/products/tft_displays/chimei_innolux_cmi_lcd/G104V1-T01_en.html

von Marcel A. (dl1ekm)


Lesenswert?

Welche Pollin-Displays verwendet ihr denn genau?
Dann könnte ich mir mal eins bestellen.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Welche Pollin-Displays verwendet ihr denn genau?

Leo C. schrieb:
> Mein LS-8 von Pollin ist etwas zickig und tat es mit den

Leo C. schrieb:
> Auf meinem Pollin (LS-8, 1024x768) ist der Font zu dünn. Schräge Linien

Leo C. schrieb:
> Bei mir sieht das Grün auf dem LS-8 viel heller aus. Inzwischen habe ich

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Joe G. schrieb:
> Laut Pollindatenblatt ist es ein G104V1-T01

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Ich kann wunderbar mit Font 1 (127 Zeichen) leben. Es muss nicht
> Codepage 850 sein. Font 1 enthält im unteren Bereich auch ganz nützliche
> Rahmensymbole.

So wirds wohl werden.

> Die zweiten 127 Zeichen würde ich dem unterstrichenen
> Font spendieren, so wie es jetzt gemacht ist.

Unterstreichen habe ich jetzt im Treiber hinbekommen. D.h, man kann 
Speicher für die 128 unterstrichenen Zeichen einsparen. Pro Font sind 
das 2048 Byte.

> Bold und blinken muss nicht sein.

> Bold kann ja individuell mit einer anderen Farbe belegt
> sein.

Das haben wir ja jetzt. Aber solange Platz ist, werde ich weiterhin 
verschiedene Fonts zum Umschalten einbauen. Es scheint ja so zu sein, 
daß je nach Display ein Font mit schmaleren oder fetteren Strichen 
besser aussieht.

Ladbare Farbpalette habe ich jetzt auch hinbekommen.
Ich hatte die Idee, eine Hintergrundfarbe durch Unterstreichen zu 
ersetzen. Aber das funktioniert natürlich nicht, da das unterstrichene 
Zeichen dann ja keine Hintergrundfarbe mehr hätte...

>> Laut Pollindatenblatt ist es ein G104V1-T01

Beim Pollin war's aber mit Controller, oder? Und es ist wohl nicht mehr 
lieferbar. Ich meine, das ist das Display, das ich auch mal kaufen 
wollte. Aber ich hatte das zu lange aufgeschoben.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Beim Pollin war's aber mit Controller, oder?

Es waren damals 4 Baugruppen. Display, VGA-Board, CCFL Inverter und 
Bedienpanel. Die Bestellnummer lautete 007-074-03. Keine Ahnung ob es 
das noch gibt.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Im SVN ist ein Update, das die VT100 character sets unterstützt. Wenn 
wir Umlaute haben wollen, und bei 128 Zeichen bleiben wollen, müßten 
einige der Zeichen unter "DEC Special graphics and line drawing" 
ausgetauscht werden. Auf welche Zeichen könnten wir denn verzichten?

Edit: Auf dem Foto ist noch ein Fehler zu sehen. Im SVN ist er aber 
korrigiert.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Mir ist der Aufruf noch nicht ganz klar, ESC ( oder ) wählen G0 oder G1 
und A, B oder 0 dann das jeweilige Set, doch bei mir passiert nichts.

von Leo C. (rapid)


Lesenswert?

Es gibt 2 Sets, zwischen denen man umschalten kann:
1
Shift out SO 0x0E   Selects G1 character set
2
Shift in  SI 0x0F   Selects G0 character set

G0 und G1 sind aber nicht fest, sondern können mit verschiedenen 
Zeichensätzen belegt werden:
1
Character Set                         G0 Designator   G1 Designator
2
-------------------------------------------------------------------
3
United Kingdom (UK)                   ESC ( A         ESC ) A
4
United States (US)                    ESC ( B         ESC ) B
5
Special chars and line drawing set    ESC ( 0         ESC ) 0
6
Alternate char ROM                    ESC ( 1         ESC ) 1
7
Alternate char ROM - special chars    ESC ( 2         ESC ) 2

Nach Start/Reset sind sowohl G0, als auch G1 mit US ASCII belegt. Man 
kann dann z.B. mit "ESC ) 0" den Zeichensatz mit den Spezial- und 
Liniensymbolen auf G1 legen, und anschließend mit SI und SO zwischen 
ASCII (G0) und "Special characters and line drawing set" (G1) 
umschalten.

Die Alternate character ROMs haben wir nicht.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Im Anhang ist eine Liste aller derzeit unterstützten Steuerzeichen und 
-Sequenzen.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Shift out SO 0x0E   Selects G1 character set
> Shift in  SI 0x0F   Selects G0 character set

Danke! Das war der entscheidende Hinweis. Ich muss natürlich mit SI und 
SO umschalten. Außerdem geht es nur mit FONT 0 oder oder 2. Ich hatte es 
mit Font 1 versucht :-(

> Im Anhang ist eine Liste aller derzeit unterstützten Steuerzeichen und
> -Sequenzen.

Das deckt sich ja fast mit den Kommentaren im Quelltext ;-) Ich werde in 
der Doku im Anhang diese Tabelle übernehmen.

> Auf welche Zeichen könnten wir denn verzichten?
Was so für lustige Zeichen existieren :-) Spontan würde ich sagen 
96,98,99, 100,101,104,105 und 127. Die habe ich wirklich noch nie 
benötigt. Wobei ich mir nicht sicher bin ob bei 127 nicht noch ein 
Fehler ist. Die Tabelle mit der ich es verglichen habe [1] hat bei 127 
das gleiche Zeichen wie bei 32.
Für die deutschen Umlaute, also äöüÄÖÜ und ß würden wird 7 Zeichen 
benötigen. Lassen wir 127 weg, reicht es gerade ;-)

[1] http://support.attachmate.com/techdocs/1184.html

von Leo C. (rapid)


Lesenswert?

> SO umschalten. Außerdem geht es nur mit FONT 0 oder oder 2. Ich hatte es
> mit Font 1 versucht :-(

Es gibt nur noch Font 0 und 1. Vorher waren das 1 und 2. Ich habe 
vergessen das Setup-Menu anzupassen.

> Das deckt sich ja fast mit den Kommentaren im Quelltext ;-)

Drapier ein paar CASE-Statements um die Listeneinträge, und Du hast 
wieder ein Programm. ;-)

> 96,98,99, 100,101,104,105 und 127. Die habe ich wirklich noch nie

Auf welche Tabelle bezieht sich Deine Numerierung?

> benötigt. Wobei ich mir nicht sicher bin ob bei 127 nicht noch ein
> Fehler ist. Die Tabelle mit der ich es verglichen habe [1] hat bei 127
> das gleiche Zeichen wie bei 32.

127 ist ein Steuerzeichen und kann im Grunde ignoriert werden.


> [1] http://support.attachmate.com/techdocs/1184.html

Da sind die verschiedenen Character Sets mal recht kompakt auf einer 
Seite.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Auf welche Tabelle bezieht sich Deine Numerierung?

Auf DEC Special Graphic Character Set (VT Emulation), bei dir Special 
chars and line drawing set.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Im SVN ist ein Update, das die VT100 character sets unterstützt. Wenn
> wir Umlaute haben wollen, und bei 128 Zeichen bleiben wollen, müßten
> einige der Zeichen unter "DEC Special graphics and line drawing"
> ausgetauscht werden. Auf welche Zeichen könnten wir denn verzichten?

Deine Frage verstehe ich nicht. Warum willst Du die Umlaute in den 
Graphic-Character-Zeichensatz knallen? Dafür gibt es doch den German 
Character Set im VT102-Standard, auswählbar mit <ESC>(K (G0) bzw <ESC>)K 
(G1). Dabei werden die Zeichen \|{[]}~ durch die deutschen Umlaute bzw. 
das ß ersetzt.

Oder ist dafür nicht mehr genügend Speicherplatz?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Joe G. schrieb:
> Auf DEC Special Graphic Character Set (VT Emulation), bei dir Special
> chars and line drawing set.

Ich war zu schnell mit der Enter-Taste :-(
Mit der Nummerierung meine ich den ASCII-Code (dezimal).

von Leo C. (rapid)


Lesenswert?

Frank M. schrieb:
> Dafür gibt es doch den German Character Set im VT102-Standard,
> auswählbar mit <ESC>(K (G0) bzw <ESC>)K (G1).

National replacement character (NRC) sets
Finde ich erst ab VT200, ist aber egal.

> Oder ist dafür nicht mehr genügend Speicherplatz?

Im Bildwiederholspeicher ist nur für 127 verschiedene Zeichen Platz, 
wenn wir ein Bit für ein Attribut nutzen. Also können wir nicht mehr 
Zeichen gleichzeitig darstellen. Mit NRC hätte man zwar die Spezial- und 
Graphik-Zeichen, aber \|{[]}~ nicht mehr. Und auf letztere will 
zumindest ich nicht verzichten.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Im Bildwiederholspeicher ist nur für 127 verschiedene Zeichen Platz,
> wenn wir ein Bit für ein Attribut nutzen. Also können wir nicht mehr
> Zeichen gleichzeitig darstellen. Mit NRC hätte man zwar die Spezial- und
> Graphik-Zeichen, aber \|{[]}~ nicht mehr. Und auf letztere will
> zumindest ich nicht verzichten.

Meines Erachtens geht das schon.

In den 80ern hatte ich unter UNIX die Aufgabe, eine 8-Bit-fähige 
Curses-Bibkliothek zu schreiben, die sowohl Graphikzeichen als auch 
Umlaute als auch französische Sonderzeichen (und noch andere exotische 
Zeichen) auf den Bildschirm zu bringen, obwohl nur 7-Bit-fähige 
VT102-Terminals eingesetzt wurden.(*)

Die Lösung war folgende:

Als Basiszeichensatz wurde ISO8859-1 gewählt (weitestgehend identisch 
mit dem DEC-Multicharacter-Zeichensatz), also ein 8-Bit-Zeichensatz. Die 
DEC-Graphikzeichen wurden in den ungenutzten Bereich 0x80-0x9F 
"eingelagert".

Ausgabe der 8-Bit-Zeichen

In G0 wurde mittels <ESC>(B der USASCII-Zeichensatz geladen, damit hat 
man schon mal die halbe Miete.

Solte jetzt ein nationales Sonderzeichen (obere 8-Bit-Hälfte von 
ISO8859-1) ausgegeben werden, wurde über eine Lookup-Tabelle mit

      "\033)K"                 /* GERMAN           */
      "\033)A"                 /* United Kingdom   */
      "\033)E"                 /* DANISH           */
      "\033)R"                 /* FRENCH           */
      "\033)Z"                 /* SPANISH          */
      "\033)0"                 /* GRAPHIC          */

G1 mit dem jeweiligen nationalen Zeichensatz geladen, per SO auf G1 
umgeschaltet, das 7-Bit-Zeichen ausgegeben und anschließend - wenn 
wieder ASCII ausreichte - wieder auf G0 per SI umgeschaltet.

So konnte fast der komplette ISO8-Zeichensatz über 7-Bit-Output 
ausgegeben worden. Ein simples addch('ä') löste also den obigen Prozess 
automatisch aus.

(Jetzt magst Du Dich fragen, wie ich das 'ä' überhaupt in den Editor auf 
einem 7-Bit-Terminal eingeben konnte. Ganz einfach: ich hab mir mit 
meiner eigenen Curses-Bibliothek als erstes einen 8-Bit-fähigen Editor 
für 7-Bit-Terminals geschrieben ;-) )

Die damalige Curses-Lib hatte aus Optimierungsgründen ein Abbild des 
kompletten Terminal-Bildschirmspeichers selbst im Speicher - inkl. der 
Attribute und Farben. Diese wurden pro Zeichen in einem separaten Byte 
gespeichert, nämlich

    1 Bit für Unterstreichen
    1 Bit für Fett
    1 Bit für Blinkend
    1 Bit für Invers
    1 Bit für Rot
    1 Bit für Grün
    1 Bit für Gelb
    1 Bit für Weissichnichtmehr

Mit 3 Bit für die Farben (RGB) hat man insgesamt 8 mögliche Farben. 
Genau diese konnten damals auch damalige 
VT100/VT200-Terminal-Emulationen.

> Im Bildwiederholspeicher ist nur für 127 verschiedene Zeichen Platz,
> wenn wir ein Bit für ein Attribut nutzen.

Frage: Was ist das für ein Attribut, was Du in dem Bit ablegst?

Meines Erachtens ist diese ganze Hampelei mit den nationalen 
Zeichensätzen ziemlich aufwendig und kompliziert - auch wenn es geht. 
Wäre es nicht möglich, den kompletten ISO8859-1 (oder ISO8859-15) zu 
nutzen und die Attribute anderweitig abzulegen? Müsstest Du doch auch 
schon so machen, denn schließlich kann das Terminal doch mehr als nur 1 
Attribut?!?

--------------------------------------
(*) Ich habe das Ganze damals in der iX als Artikelreihe mit dem Namen 
"Zeichensalat" veröffentlicht.

: Bearbeitet durch Moderator
von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Auf DEC Special Graphic Character Set (VT Emulation), bei dir Special
> chars and line drawing set.

Ich nehme an, Du meinst die Numerierung in dem angehängten Bild. Den 
Diamond würde ich gerne behalten.

Was wir zur Zeit haben, sieht man mit ESC # 9. Auf 0x02 und 0x7f sind 
zwei ähnliche Schachbrettmuster, von denen man eins vielleicht weglassen 
könnnte. Ausserdem könnte man auf das Zeichen auf Position 0 verzichten.

Also hätte man 0, 2 oder 0x7F, 3, 4, 5, 6, 9 und 0x0A.

Braucht jemand einen '§'?

von Leo C. (rapid)


Lesenswert?

Frank M. schrieb:
> Frage: Was ist das für ein Attribut, was Du in dem Bit ablegst?

Unterstreichen.

Ich muß jetzt leider weg. Auf den Rest werde ich heute Abend eingehen.


Nachtrag hier, da ich den Artikel davor nicht mehr ändern kann:

> Was wir zur Zeit haben, sieht man mit ESC # 9.

Nur die erste Hälfte ist relevant. Auf die 2. Hälfte wird nicht mehr 
zugegriffen, da das Unterstreichen im Videogenerator erledigt wird 
(vgacolor.spin).

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Also hätte man 0, 2 oder 0x7F, 3, 4, 5, 6, 9 und 0x0A.

Genau diese Zeichen Zeichen meinte ich, ich hatte den ASCI-Code notiert 
und nicht die Position im Zeichensatz. Ich würde dann lieber die 2 statt 
0x7F weglassen, dann sind alle Umlaute in etwa im gleichen Bereich.
Der '§' darf ruhig wegfallen. Er wird eh viel zu oft mißbraucht ;-)

von Leo C. (rapid)


Lesenswert?

Frank M. schrieb:
> Als Basiszeichensatz wurde ISO8859-1 gewählt (weitestgehend identisch
> mit dem DEC-Multicharacter-Zeichensatz), also ein 8-Bit-Zeichensatz. Die
...
> So konnte fast der komplette ISO8-Zeichensatz über 7-Bit-Output
> ausgegeben worden.

Eben. Das Terminal selbst hatte ca. 256 Zeichen direkt im Zugriff. Nur 
der Übertragungskanal war auf 7 Bit beschränkt.

> Meines Erachtens ist diese ganze Hampelei mit den nationalen
> Zeichensätzen ziemlich aufwendig und kompliziert - auch wenn es geht.

Das sehe ich auch so. Und wenn wir Platz für ISO8859-15 hätten, würde 
ich das auch realisieren, und die Umschalterei allenfalls noch aus 
Kompatibiltätsgründen einbauen.

> Wäre es nicht möglich, den kompletten ISO8859-1 (oder ISO8859-15) zu
> nutzen und die Attribute anderweitig abzulegen? Müsstest Du doch auch
> schon so machen, denn schließlich kann das Terminal doch mehr als nur 1
> Attribut?!?

Außer diesem einen Attribut haben wir noch 2 mal 4 Bit für je 16 
Vordergrund- und Hintergrundfarben. Invers geht dann, indem man Vorder 
und Hintergrund tauscht. Statt Bold kann man auch auf eine helle Farbe 
(Bright) umschalten. Blinken nervt nur, und scheint zum Glück niemand zu 
wollen.

Der Bildwiederholspeicher ist also 16 Bit breit und 80x30 Zeichen groß. 
(4800 Byte). Der Propeller hat 32 KByte RAM, in die Programm und Daten 
passen müssen. Ein Byte mehr pro Zeichen für Attribute wäre aber 
wahrscheinlich noch möglich. Allerdings könnte die derzeitige 
Scanroutine, die das Bild zum VGA-Ausgang schaufelt, nichts damit 
anfangen. In die Ausgabeschleife paßt kein einziger Befehl mehr. Es 
reicht schon, Befehle zu verschieben, damit das Bild instabil wird.

Man könte sich auch mit 8 Hintergrundfarben begnügen, um ein Bit frei zu 
bekommen. Das ist dann nicht mehr mit Xterm und der Linux-Console 
kompatibel, Invers und Bold (Highlight) sind möglicherweise nicht mehr 
verlustfrei umkehrbar, aber vielleicht wäre das doch der bessere 
Kompromiss.

Mal sehn, was wir noch an Propeller-Resourcen frei haben, wenn das 
Programm vollständig ist. Zur Zeit fehlen noch Flußsteuerung, eine 
bessere Tastaturunterstützung und vielleicht ein erweitertes Setup.
Vielleicht kann man die Videoausgabe auf 3 oder 4 COGs (Prozessorkerne) 
verteilen, und das Videoram auf 32 bit erweitern. Dann hätte man Platz 
für je 6 Bit Vorder- und Hitergrundfarbe. Die Hardware hat für RGB 
jeweils 2 Bit. Man könnte also jede Farbe dierekt ansteuern und wäre 
nicht mehr auf eine Palette angewiesen. Für sonstige Attribute hätte man 
dann noch 4 Bit.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Außer diesem einen Attribut haben wir noch 2 mal 4 Bit für je 16
> Vordergrund- und Hintergrundfarben.

Komisch, ich dachte, der Standard würde nur je 8 Hintergrund- und 8 
Vordergrundfarben vorsehen.

> Invers geht dann, indem man Vorder und Hintergrund tauscht.

Ja.

> Statt Bold kann man auch auf eine helle Farbe (Bright) umschalten.

Ja.

> Blinken nervt nur, und scheint zum Glück niemand zu wollen.

Ja,

> Ein Byte mehr pro Zeichen für Attribute wäre aber
> wahrscheinlich noch möglich.

Gut.

> Allerdings könnte die derzeitige
> Scanroutine, die das Bild zum VGA-Ausgang schaufelt, nichts damit
> anfangen. In die Ausgabeschleife paßt kein einziger Befehl mehr. Es
> reicht schon, Befehle zu verschieben, damit das Bild instabil wird.

Ließe sich das optimieren?

> Man könte sich auch mit 8 Hintergrundfarben begnügen,

Keine Vordergrundfarben mehr? Dann finde ich das eigentlich nicht so 
prickelnd.

> Mal sehn, was wir noch an Propeller-Resourcen frei haben, wenn das
> Programm vollständig ist. Zur Zeit fehlen noch Flußsteuerung, eine
> bessere Tastaturunterstützung und vielleicht ein erweitertes Setup.

Ich finde das echt klasse, was Ihr da leistet.

Ich hätte da einen Vorschlag: Ich könnte mittels der 
MCURSES-Bibliothek, die ich mal verbrochen und hier auf µC.net 
abgelegt habe, eine Test-Suite erstellen. Dann kann man bestimmete 
Funktionalitäten wie Scrolling-Regions etc. direkt testen und zum 
Beispiel mit dem Output, welchen PuTTY oder die Linux-Console 
produzieren, direkt vergleichen. Wenn auf beiden Terminals immer das 
gleiche Bild entsteht, hat Euer Terminal den Test bestanden ;-)

> Vielleicht kann man die Videoausgabe auf 3 oder 4 COGs (Prozessorkerne)
> verteilen, und das Videoram auf 32 bit erweitern. Dann hätte man Platz
> für je 6 Bit Vorder- und Hitergrundfarbe. Die Hardware hat für RGB
> jeweils 2 Bit. Man könnte also jede Farbe dierekt ansteuern und wäre
> nicht mehr auf eine Palette angewiesen. Für sonstige Attribute hätte man
> dann noch 4 Bit.

Ich muss mir den Source-Code mal näher anschauen, muss aber gestehen, 
dass ich von Propeller momentan keine Ahnung habe.

: Bearbeitet durch Moderator
von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

> Komisch, ich dachte, der Standard würde nur je 8 Hintergrund- und 8
> Vordergrundfarben vorsehen.

Nach ISO 6429 gibt es 8 Farben in "Normal" und "Hell" (Bright). Die 
hellen Farben kann man nicht direkt auswählen, sondern über ein Attribut 
wie Bold oder "high intensity". Direkte Auswahl ist eine Erweiterung, 
die von aixterm kommt. Ein Link sagt mehr als 1000 Worte: ;)
https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

>> Man könte sich auch mit 8 Hintergrundfarben begnügen,
> Keine Vordergrundfarben mehr? Dann finde ich das eigentlich nicht so
> prickelnd.

8 statt 16 Hintergrund- und weiterhin 16 Vordergrundfarben. Im 
Attributspeicher hätte man dann 3 Bit für Hinter- und 4 Bit für 
Vordergrund. So wars gemeint.

> Ich hätte da einen Vorschlag: Ich könnte mittels der
> MCURSES-Bibliothek, die ich mal verbrochen und hier auf µC.net
> abgelegt habe,

Kenne ich natürlich. Ich spiele mit dem Gedanken, Dein MCURSES für das 
Z180-Stamp-Projekt zu verwenden. Dort gibt es einen Monitor, der auf 
einem AVR läuft und über eine serielle Console bedient wird. Der Monitor 
kann auf dem Z180 ein Programm (z.B. CP/M) starten, und dessen Console 
transparent über die eingene Terminalschnittstelle zum User 
durchreichen. Nun wäre es praktisch, wenn man im AVR-Monitor ein 
Split-Screen machen könnte, damit die Ausgaben von beiden Systemen immer 
schön getrenn bleiben. Bisher habe ich das nicht realisiert, weil 
MCURSES die Fenstergröße zur Laufzeit nicht ändern kann. Das brauche 
ich, weil ich auf die Möglichkeit, das Xterm-Fenster den momentanen 
Platzverhältnissen auf meinem Monitor anzupassen, nicht verzichten will.
Mein Versuch, MCURSES dafür zu erweitern, ist vor einer Weile kläglich 
gescheitert. (Ich schicke "ESC [ 6 n" (Cursor position report) ans 
Terminal und versuche die Antwort aus dem Input-Stream herauszufischen.)

> eine Test-Suite erstellen. Dann kann man bestimmete
> Funktionalitäten wie Scrolling-Regions
                       ^^^^^^^^^^^^^^^^^
Gerade die fehlt noch. (Wenn überhaupt, dann nur eine)

> etc. direkt testen und zum
> Beispiel mit dem Output, welchen PuTTY oder die Linux-Console
> produzieren, direkt vergleichen. Wenn auf beiden Terminals immer das
> gleiche Bild entsteht, hat Euer Terminal den Test bestanden ;-)

Davon wird Dich sicher niemand abhalten. :)
Zur Zeit teste ich mit vttest. Das läuft nur auf Unix/Linux (irgendwo 
gibt es einen veralteten Cygwin Port) und leider nur dann richtig, wenn 
das zu testende Terminal auch die Login-Console ist. Wenn ich die 
Ausgabe auf eine serielle Schnittstelle umleite, wird statt CR/LF nur 
noch LF ausgegeben. Außerdem taugt das Programm nur für geht/geht nicht 
Tests. Die fehlerhafte Stelle zu finden, ist damit recht schwierig. Der 
Fehler im angehängten Bild kommt allerdings durch das CR/LF-Problem.

> Ich muss mir den Source-Code mal näher anschauen, muss aber gestehen,
> dass ich von Propeller momentan keine Ahnung habe.

Ging mir vor ein paar Wochen auch so. ;)
Der Propeller hat einen eingebauten Bytecode-Interpreter für die 
Programmiersprache Spin. Das ist eine Art Basic-Dialekt. Der Spin-Teil 
des Terminalprogramms ist sicher leicht zu verstehen. Zeitkritische 
Teile wie die Videosignalerzeugung müssen aber in Assembler programmiert 
werden. Und der Assembler ist schon sehr gewöhnungsbedürftig.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leo C. schrieb:
>> Komisch, ich dachte, der Standard würde nur je 8 Hintergrund- und 8
>> Vordergrundfarben vorsehen.
>
> Nach ISO 6429 gibt es 8 Farben in "Normal" und "Hell" (Bright). Die
> hellen Farben kann man nicht direkt auswählen, sondern über ein Attribut
> wie Bold oder "high intensity".

Dann meinten wir beide dasselbe: 8/8 Farben in Bold und Normal.

> Direkte Auswahl ist eine Erweiterung,  die von aixterm kommt.

Kenne ich von früher :-)

> Ein Link sagt mehr als 1000 Worte: ;)
> https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

Netter Link, danke.

> 8 statt 16 Hintergrund- und weiterhin 16 Vordergrundfarben.

Achso, okay. Wäre dann nicht sooo schlimm. "Fetter" Hintergrund
(also in Bold) muss wirklich nicht sein. ;-)

> Nun wäre es praktisch, wenn man im AVR-Monitor ein
> Split-Screen machen könnte, damit die Ausgaben von beiden Systemen immer
> schön getrenn bleiben.

Scrolling-Region einbauen, die Du einmal in die obere Hälfte, das andere 
Mal in die untere Hälfte legst - je nachdem, wo Du Zeichen ausgeben 
möchtest ;-)

> Bisher habe ich das nicht realisiert, weil
> MCURSES die Fenstergröße zur Laufzeit nicht ändern kann.

Ja, das ist ein Nachteil, den ich aber nicht sooo gravierend finde. Eine 
feste Maximal-Zahl von Zeilen/Spalten (z.B. 35/135) reicht Dir nicht?

> Mein Versuch, MCURSES dafür zu erweitern, ist vor einer Weile kläglich
> gescheitert. (Ich schicke "ESC [ 6 n" (Cursor position report) ans
> Terminal und versuche die Antwort aus dem Input-Stream herauszufischen.)

Schaue ich mir mal an.

>> eine Test-Suite erstellen. Dann kann man bestimmete
>> Funktionalitäten wie Scrolling-Regions
>                        ^^^^^^^^^^^^^^^^^
> Gerade die fehlt noch. (Wenn überhaupt, dann nur eine)

Aber die finde ich enorm wichtig. Ohne Scrolling Regions auch kein 
(simpler) Monitor bzw. Editor.

> Davon wird Dich sicher niemand abhalten. :)

Ich bau da mal was, lauffähig auf Linux & µC.

> Zur Zeit teste ich mit vttest.

Kenne ich nicht.

> Das läuft nur auf Unix/Linux (irgendwo
> gibt es einen veralteten Cygwin Port) und leider nur dann richtig, wenn
> das zu testende Terminal auch die Login-Console ist. Wenn ich die
> Ausgabe auf eine serielle Schnittstelle umleite, wird statt CR/LF nur
> noch LF ausgegeben. Außerdem taugt das Programm nur für geht/geht nicht
> Tests. Die fehlerhafte Stelle zu finden, ist damit recht schwierig. Der
> Fehler im angehängten Bild kommt allerdings durch das CR/LF-Problem.

Ich sehe das genau umgekehrt: Das Programm an der Linux-Console läuft 
verkehrt. Denn hier wird \n vom TTY-Treiber auf \r\n gemappt. Bei 
Umleitung auf die serielle Schnittstelle geht alles 1:1 durch und \n 
bleibt \n.

vttest scheint also nur ein \n zu schicken, weil es auf das Mapping des 
TTY-Treibers vertraut. Dann arbeitet es aber nicht transparent.

Tipp: Wenn Du umlenkst und dasselbe Mapping-Verhalten wie auf der 
Console haben möchtest:

    stty onlcr </dev/ttyxxx

Damit schaltest Du das NL -> CR Mapping ein.

> Der Propeller hat einen eingebauten Bytecode-Interpreter für die
> Programmiersprache Spin. Das ist eine Art Basic-Dialekt. Der Spin-Teil
> des Terminalprogramms ist sicher leicht zu verstehen. Zeitkritische
> Teile wie die Videosignalerzeugung müssen aber in Assembler programmiert
> werden. Und der Assembler ist schon sehr gewöhnungsbedürftig.

Hm. Was zeichnet den Propeller aus, dass er gegenüber einem STM32 den 
Vorzug bekommen würde?

von Leo C. (rapid)


Lesenswert?

> MCURSES

Dazu habe ich jetzt im MCURSES-Thread geantwortet:
Beitrag "Re: MCURSES - Mini Curses Bibliothek für Mikrocontroller"

> Aber die finde ich enorm wichtig. Ohne Scrolling Regions auch kein
> (simpler) Monitor bzw. Editor.

Ja, Ja. Aber die CP/M-Programme, für die das Terminal in erster Linie 
gedacht ist, machen keinen Gebrauch davon. Ich habe Scrolling Regions 
auch deshalb zurückgestellt, weil sie auf die Performance gehen, die eh 
(noch) zu wünschen übrig läßt. Wenn der Rest mal läuft, will ich die 
Routinen, die den Bildspeicher manipulieren (scrolling) in Assembler in 
einen eigenen Prozessorkern verlagern.

> vttest scheint also nur ein \n zu schicken, weil es auf das Mapping des
> TTY-Treibers vertraut. Dann arbeitet es aber nicht transparent.

So ist es.

> Tipp: Wenn Du umlenkst und dasselbe Mapping-Verhalten wie auf der
> Console haben möchtest:

>     stty onlcr </dev/ttyxxx

> Damit schaltest Du das NL -> CR Mapping ein.

Danke, ich wußte, das es so etwas gibt, hatte es aber nicht gefunden.
Inzwischen ausprobiert: Funktioniert leider nicht. vttest setzt die 
tty-Parameter selber.

> Hm. Was zeichnet den Propeller aus, dass er gegenüber einem STM32 den
> Vorzug bekommen würde?

Das es ihn schon viel länger gibt? Den Chip gibts schon sehr lange und 
ist bei Hobbyisten sehr beliebt. Zu den Features zählen eingebauter 
Bootloader, einfache, Basic-artige Programmiersprache, eingebauter 
Video-Generator für VGA- und Composite-Signale. Fertige (Assembler-) 
Module für Video, Serielle Schnittstelle, PS/2-Keyboard und -Maus gibts 
auch fertig.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Danke, ich wußte, das es so etwas gibt, hatte es aber nicht gefunden.
> Inzwischen ausprobiert: Funktioniert leider nicht.

Sorry, opost muss auch noch gesetzt werden, damit post processing 
überhaupt aktiviert ist.

Also:

  stty opost onlcr </dev/ttyxxx

> vttest setzt die tty-Parameter selber.

Dann hätte es sich aber auf dem seriellen TTY als auch auf der Console 
gleich verhalten müssen?!?

Jetzt war ich doch gespannt und hab mir vttest mal runtergeladen. Hm, 
sieht so aus, als ob nur Input-Flags manipuliert werden und die 
Output-Flags unangetastet bleiben. Daher sollte obiger stty-Befehl vor 
dem Ausführen von vttest durchaus funktionieren.

Nichtsdestotrotz denke ich über eine Test-Suite nach ;-)

> Das es ihn schon viel länger gibt? Den Chip gibts schon sehr lange und
> ist bei Hobbyisten sehr beliebt. Zu den Features zählen eingebauter
> Bootloader, einfache, Basic-artige Programmiersprache, eingebauter
> Video-Generator für VGA- und Composite-Signale. Fertige (Assembler-)
> Module für Video, Serielle Schnittstelle, PS/2-Keyboard und -Maus gibts
> auch fertig.

Hört sich wirklich gut an, gerade der Video-Generator.

: Bearbeitet durch Moderator
von Leo C. (rapid)


Lesenswert?

Frank M. schrieb:
>   stty opost onlcr </dev/ttyxxx

Danke, so gehts tatsächlich.


>> vttest setzt die tty-Parameter selber.
> Dann hätte es sich aber auf dem seriellen TTY als auch auf der Console
> gleich verhalten müssen?!?

Ich habe vttest inzwischen mit DEBUG-Log laufen lassen und gemerkt, daß 
es daran nicht liegt.

> Jetzt war ich doch gespannt und hab mir vttest mal runtergeladen. Hm,
> sieht so aus, als ob nur Input-Flags manipuliert werden und die
> Output-Flags unangetastet bleiben. Daher sollte obiger stty-Befehl vor
> dem Ausführen von vttest durchaus funktionieren.

Kann ich jetzt bestätigen. :)

> Nichtsdestotrotz denke ich über eine Test-Suite nach ;-)

Gerne. ;)

> Hört sich wirklich gut an, gerade der Video-Generator.

Es ist eigentlich nur ein Schieberegister mit nachgeschaltetem 
Multiplexer. Der Prozessor kann auf den Ladezeitpunkt des 
Schieberegisters synchronisiert werden (d.h. angehlten, befehl 
'waitvid'). Wenn er zu spät kommt, weil er zu lange braucht um die 
nächsten Bildpunkte aufzubereiten, gibts Bildsalat. Da der Chip aber 8 
Kerne hat, die alle gleich ausgestattet sind, also auch 8 
Videogeneratoren, können ein oder mehrere Kerne die nächsten Bildzeilen 
berechnen, während ein Kern die aktuelle Zeile ausgibt. Theoretisch 
könnte man also nahezu beliebig komplexe Videosignale generieren, wenn 
man nur genügend Kerne auf das Problem wirft. Leider ist der Speicher 
pro Kern auf 512 Worte a 32 bit beschränkt.
Und die werden bei längeren Bildzeilen, vielen Farben oder komplexer 
Attributaufbereitung schnell voll.

von Petr (Gast)


Lesenswert?

Hallo!

Wäre noch 1 Platine, bzw. 1 Set da?

Danke!

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> In die Ausgabeschleife paßt kein einziger Befehl mehr. Es
> reicht schon, Befehle zu verschieben, damit das Bild instabil wird.

Man könnte noch den Propeller mit 6 MHz übertakten. Mein Versuchsaufbau 
macht das gerade mit. Ob es jedoch für eine breite Anwendung 
reproduzierbar ist, müsste gestestet werden.


Petr schrieb:
> Wäre noch 1 Platine, bzw. 1 Set da?

Ja, eine Platine und 1 Propeller IC sind verfügbar.

von Petr (Gast)


Lesenswert?

Joe G. schrieb:
>
>
> Petr schrieb:
>> Wäre noch 1 Platine, bzw. 1 Set da?
>
> Ja, eine Platine und 1 Propeller IC sind verfügbar.

Ich würde beides gerne nehmen, heute Abend melde ich mich per PN (bin 
noch nicht registriert hier...)

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Man könnte noch den Propeller mit 6 MHz übertakten. Mein Versuchsaufbau
> macht das gerade mit. Ob es jedoch für eine breite Anwendung
> reproduzierbar ist, müsste gestestet werden.

Nach dem, was man so im Netz findet, scheint das gut zu funktionieren. 
Aber im Moment reichen die 5MHz ja gerade. Aber gut zu wissen.

von Marcel A. (dl1ekm)


Lesenswert?

Hallo Joe,

ich baue mir gerade die V1.1 für den Z180-Rechner zusammen.

Zwei Dinge sind mir bislang aufgefallen:
Könnte man in einer V1.2 auch vorsehen, die 5V extern zuzuführen? Also 
wie bei der AVR Stamp per Jumper schaltbar? So bliebe der 5V Anschluss 
nutzbar, auch wenn die Spannung von ECB kommmt.
Hast du einen guten Vorschlag, wie ich das auf der V1.1 am besten mache? 
Die 5V_USB gehen ja zu vielen Stellen...

Und ich bin bei der Anleitung nicht ganz durchgestiegen, welche 
Bedeutung die Jumper 1-4 haben. Wann sind sie für die Programmierung 
notwendig, wann für die Quellen-Umschaltung etc...
Kannst du das noch mal bitte etwas aufdröseln?


Danke und Gruß
Marcel

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Wenn du das Terminal über die RS232 anschließt, so benötigst du ja USB 
nicht. Damit kann die 5V über ein einfaches 5V USB Netzteil an der USB 
Buchse angelegt werden.

JP2 und JP3 können offen bleiben.
JP4 je nachdem über welche Schnittstelle du den Propeller programmierst. 
Also entweder über USB, dann JP4 auf USB oder RS232 dann JP4 auf RS232. 
Hier wird lediglich festgelegt, woher der Propeller sein Resetimpuls 
bekommt.
JP1 muss geschlossen sein. Damit kann per Software von RS232 auf USB und 
umgekehrt geschaltet werden.
Nach erfolgreicher Programmierung sollte der Jumper von JP4 ganz gezogen 
werden, damit die Schnittstelle über DSR oder RTS kein Reset auslöst.

von Marcel A. (dl1ekm)


Lesenswert?

Habe jetzt den Propeller bestückt und er wird auch von der IDE erkannt.
Was mich wundert: Die rote und blaue (eigentlich grüne) LED leuchten 
immer. Nur die blau/grüne LED1 flackert beim Einstecken.
Ist das normal?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Ist das normal?

Nein. Die LED's sollten nur beim Senden oder Empfangen (über USB) 
leuchten.

von Marcel A. (dl1ekm)


Lesenswert?

Erfolg! Platine läuft (wie üblich ein Kontaktproblem und die Vergessene 
Drahtbrücke am MAX).
Kann es sein, dass ich trotz 100facher Prüfung die LEDs verkehrt heraum 
eingebaut habe? Jedenfalls klappt die Umschaltung RS232/USB Port (LEDs 
gehen aus beim Umschalten auf RS232).

Drei Fragen/Hinweise habe ich noch:
Bei meiner WS3.0-Version stürzt der VT100-Stamp ab, sobald das Menü 
angezeigt werden soll. Es ist auf VT100 eingestellt. Im Terminal 
erscheint alles richtig mit gelben Codes und grünem Text.
Vielleicht habe ich noch eine zu veraltete Firmware drauf? Habe die 
unter source, V1_1 (Rev 172, 6 Monate alt) genommen.
Vielleicht sollte ich die aus dem Work-Verzeichnis nehmen?

Wie ist denn der letzte Stand eurer Diskussion zum Thema Farbe?
Hier steht in der Doku etwas von "Farbmodell der VGA Grafik (nicht full 
color mode). Jedem Zeichen wird ein Farbbyte zugeordnet mit den 
folgenden Aufbau zugeordnet. RRGGBB00. Damit sind pro Farbe drei 
Abstufungen möglich."
Ich hatte bisher angenommen, dass für den ganzen Bildschirm nur eine 
Front- und eine Background-Farbe eingestellt werden kann?

Ihr habt weiter oben so schön über Zeichensätze diskutiert. Gerade an 
den "Rahmensymbolen" hätte ich Interesse. Wie ist denn da der aktuelle 
Stand und ist schon irgendwo beschrieben, wie man diese Zeichensätze 
nutzt?

Vielen Dank und Gruß
Marcel

von Leo C. (rapid)


Lesenswert?

> Vielleicht sollte ich die aus dem Work-Verzeichnis nehmen?

Unbedingt. ;-)

Marcel A. schrieb:
> Wie ist denn der letzte Stand eurer Diskussion zum Thema Farbe?

Für jedes Zeichen kann die Vorder- und Hintergrundfarbe getrennt aus 
Palette mit 16 Farben gewählt werden. Die Palette kann in der Datei 
'VGA_640.spin' angepaßt werden. Escape-Sequenzen dafür fehlen noch.

> Ich hatte bisher angenommen, dass für den ganzen Bildschirm nur eine
> Front- und eine Background-Farbe eingestellt werden kann?

Das ist aber schon sehr lange veraltet.

> Ihr habt weiter oben so schön über Zeichensätze diskutiert. Gerade an
> den "Rahmensymbolen" hätte ich Interesse. Wie ist denn da der aktuelle
> Stand und ist schon irgendwo beschrieben, wie man diese Zeichensätze
> nutzt?

Klar, im VT100-Handbuch [1]. Wie das mit den Farben funktioniert, ist in 
[2] ganz gut beschrieben. Und in [3] ist eine Liste der derzeit 
unterstützten Steuer-Sequenzen.

[1] http://vt100.net/docs/vt100-ug/
[2] https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
[3] 
https://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/VT100/source/work/control-codes.md?view=markup

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Kann es sein, dass ich trotz 100facher Prüfung die LEDs verkehrt heraum
> eingebaut habe?

Das sieht ganz so aus :-( Du kannst es jedoch sehr einfach prüfen. Es 
gibt ein sehr nützliches Tool [1] um die Pinkonfiguration des FDTI zu 
ändern.

[1] http://www.ftdichip.com/Support/Utilities.htm#FT_PROG

von Marcel A. (dl1ekm)


Lesenswert?

Ich schau mal - aber eigentlich kann das doch nicht...
Auf einer Seite hängen die LEDs an +3,3V.
Der FTDI kann CBUS auf High oder LOW setzen - bei HIGH dürfte die LED 
aus sein, bei LOW an (Spannungsdifferenz).
Wenn ich sie anders herum einbaue, dürfte sie ja nie angehen wegen 
Sperr-Richtung?

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

So,

Thema 1: FTDI und die LEDs. Habe mit dem FTProg-Tool mal geschaut und da 
stimmten tatsächlich die Konfigurationen der Ausgänge nicht (siehe 
Bilder). Da der FT232 so Auslieferungszustand war - vielleicht sollte da 
irgendwo ein Hinweis rein, dass dieser umkonfiguriert werden muss.

Thema 2: Firmware. Habe auf die Version in "work" (meldet sich mit 
"1.7.2 test serial 3") umgestellt. Die Schrift sieht besser aus - aber 
es werden keine Tastatureingaben angenommen (bzw. werden diese direkt 
zum USB-Port geschickt, da blinkt es dann)  - folglich kann ich auch das 
Config-Menü nicht aufrufen oder mit F5 die Quelle umschalten. Komisch.

Generell zum Menü: Könnte man statt F10-Speicherung und Schließen 
vielleicht auch F9 - nur schließen einbauen?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Da der FT232 so Auslieferungszustand war - vielleicht sollte da
> irgendwo ein Hinweis rein, dass dieser umkonfiguriert werden muss.

Eigentlich nicht.
"CBUS0  Factory default configuration is TXLED#. See CBUS Signal 
Options, Table 3.99."
Das war bei mir bisher auch immer so.

> aber es werden keine Tastatureingaben angenommen
Ist JP1 gesteckt und R3, 10k bestückt? Dieser Widerstand dient der 
Firmware u.a. der Hardwareerkennung.

> Könnte man statt F10-Speicherung und Schließen
> vielleicht auch F9 - nur schließen einbauen?
Ja

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

Das Setup befindet sich im Umbau.
-----------------------------------------------------------------------
Ich habe angefangen, das Setup umzubauen. Sieht zwar noch gleich  aus, 
funktioniert aber anders. Man muß es erst aktivieren, bevor man etwas 
einstellen kann. Hinein kommt man nun mit Ctrl-PrintScreen. Eigentlich 
sollte es Alt-PrintScreen sein, wie bei neueren DEC Terminals mit 
PC-Keyboard Layout. Aber bei unserem Keyboard-Treiber kommt bei 
Alt-PrintScreen nix. Raus kommt man z. Zt. mit nochmal Ctrl-PrintScreen, 
ESC oder F10. Nur bei F10 werden die Daten im EEPROM gespeichert.
-----------------------------------------------------------------------

von Marcel A. (dl1ekm)


Lesenswert?

Danke Leo, das war es - neuer Menü-Einstieg. Sehr schön gemacht!

TP und WS sehen nun auch viel besser aus ("farbige" Hinterlegung).
Sobald ich in WS aber einen Text lade, stürzt das VT100 aber wieder ab.

Auch ist zumindest bei mir kein "CRTL" möglich -> CRTL-K wird wie 
SHIFT-K interpretiert - es kommen Großbuchstaben. Damit kommt man weder 
aus TP noch was WS raus :-)

von Marcel A. (dl1ekm)


Lesenswert?

Joe G. schrieb:
> "CBUS0  Factory default configuration is TXLED#. See CBUS Signal
> Options, Table 3.99."
> Das war bei mir bisher auch immer so.
Komisch - na, vielleicht ein Produktionsfehler bei mir - so kam er 
jedenfalls aus der Reichelt-Tüte :-)
Falls also noch mal jemand das Problem haben sollte - damit gehts dann.

von Marcel A. (dl1ekm)


Lesenswert?

Vielleicht mache ich auch etwas grundsätzlich falsch (z.B. den richten 
Zeichensatz nicht laden), aber es gehen auch keine Umlaute oder wichtige 
Sonderzeichen wie {[]} ...?
Oben lese ich zwar, wie Zeichensätze mit ESC-Codes umgeschaltet werden 
können, aber da sehe ich nur US und DECT. Auch frage ich mich, wie ich 
ESC-Sequenzen außerhalb von Software an das System schicken soll?

von Leo C. (rapid)


Lesenswert?

> Auch ist zumindest bei mir kein "CRTL" möglich -> CRTL-K wird wie
> SHIFT-K interpretiert - es kommen Großbuchstaben. Damit kommt man weder

Kann es sein, daß dann nur noch Großbuchstaben kommen, egal ob CRTL oder 
SHIFT gedrückt ist, oder nicht? Den Fehler habe ich jedenfalls, wenn ich 
das Terminal als Linux-Console verwende. Wann der Fehler genau auftritt, 
habe ich noch nicht herausgefunden, aber vielleicht kannst Du ihn ja 
weiter eingrenzen.

von Leo C. (rapid)


Lesenswert?

> Oben lese ich zwar, wie Zeichensätze mit ESC-Codes umgeschaltet werden
> können, aber da sehe ich nur US und DECT.

Die Umlaute sind immer noch nicht im Zeichensatz. Vielleicht schnappst 
Du Dir mal einen Zeichensatzeditor...

> Auch frage ich mich, wie ich
> ESC-Sequenzen außerhalb von Software an das System schicken soll?

$ echo ... >/dev/tty...
> pip auxout:=con:

von Marcel A. (dl1ekm)


Lesenswert?

Nein, die CRTL-Taste wirkt wie die SHIFT Taste - lasse ich sie los, ist 
auch alles wieder klein.
ALTGR-Ö gibt mir derzeit ] aus.
Hm...
Ich lade noch mal die 1.6er und prüfe das nach.

...

So. mit der 1.6er gibt es auch keine Umlaute. Aber {[]} klappt (über 
ALTGR -7/8/9/0). Auch ALTGR-< gibt (links unten) gibt mir dann einen | 
aus.
In der 1.7.2 ist kommen keine {[]} und ALTGR-< gibt ~ aus.

Alles getestet mit V24 an der AVR Console

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:

>> Auch frage ich mich, wie ich
>> ESC-Sequenzen außerhalb von Software an das System schicken soll?
>
> $ echo ... >/dev/tty...
>> pip auxout:=con:
Ähm, klar, wenn ich statt des AVR/Z180 Stamps meine Linux-Kiste 
anschließen würde. Ich meine, wenn ich den VT100 am Z180/AVR habe, dann 
kann ich das ja nur z.B. im Rahmen eines TurboPascal-Programms 
(writeln...) an das Terminal senden, aber nicht wenn ich mich einfach 
auf der AVR Console befinde.

von Leo C. (rapid)


Lesenswert?

>>> pip auxout:=con:
> Ähm, klar, wenn ich statt des AVR/Z180 Stamps meine Linux-Kiste
> anschließen würde.

Also PIP ist ein CP/M-Kommando.
Du kannst auch einfach Steuerzeichen am CCP-Prompt eingeben und dann 
Enter drücken.

Im Debugger eine kleine Ausgabe-Schleife eintippen, geht schneller als 
ein TP-Programm.

Mit Debugger Steuerzeichen in Speicher schreiben und als Datei 
speichern. Anschließend mit TYPE oder PIP ausgeben.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Also PIP ist ein CP/M-Kommando.

Stimmt :-)

Hast du eine Idee, warum die {[]} nicht mehr kommen? Sind die im neuen 
Zeichensatz an eine andere Stelle gerutscht?
Oder sind die genau wie Umlaute in den beiden Schriftarten noch nicht 
eingebettet?
EDIT: Nach meinem Verständnis sind die Daten in der spin für diese 
Sonderzeichen drin (5B, 5D, 7B, 7D)

Die beiden Schriftarten liegen offenbar in der Datei fonts-lin.spin - 
wie habt ihr die erstellt?

Mit dem Malen von Umlauten ist es ja nicht allein getan, die müssen ja 
auch da stehen, wo sie von Programmen (German Character Set) 
üblicherweise erwartet werden, oder?

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> So. mit der 1.6er gibt es auch keine Umlaute. Aber {[]} klappt (über
> ALTGR -7/8/9/0). Auch ALTGR-< gibt (links unten) gibt mir dann einen |
> aus.

Version 1.6 finde ich bei mir nicht.

Marcel A. schrieb:
> Die beiden Schriftarten liegen offenbar in der Datei fonts-lin.spin -
> wie habt ihr die erstellt?

Copy&Paste.
Wenn Du nach VGA_HiRes_Text.spin und vgacolour.spin, bzw. 
vgademo-0.0.4.zip
suchst, findest Du die Quellen.

Marcel A. schrieb:
> Mit dem Malen von Umlauten ist es ja nicht allein getan, die müssen ja
> auch da stehen, wo sie von Programmen (German Character Set)
> üblicherweise erwartet werden, oder?

Die kommen da hin wo Platz ist, bzw. geschaffen wird. Vom 
Terinalprogramm werden sie dann je nach Einstellung an die passende 
Position gemappt. Das wurde weiter oben ab ca. 22.9. diskutiert.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Marcel A. schrieb:
>> So. mit der 1.6er gibt es auch keine Umlaute. Aber {[]} klappt (über
>> ALTGR -7/8/9/0). Auch ALTGR-< gibt (links unten) gibt mir dann einen |
>> aus.
>
> Version 1.6 finde ich bei mir nicht.

Das ist die Version aus dem SVN unter Doku/VT100/source/V1_1

> Die kommen da hin wo Platz ist, bzw. geschaffen wird. Vom
> Terinalprogramm werden sie dann je nach Einstellung an die passende
> Position gemappt. Das wurde weiter oben ab ca. 22.9. diskutiert.

Ich weiß, habe ich bisher nur nicht verstanden :-)

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

So, habe am Terminal mal etwas weitergemacht.
Ich nutze am BastelPC dazu TeraTerm.

Das mit den ESC-Sequenzen habe ich durchschaut - das klappt in TP als 
auch auf der CCP Console.
Nur ESC # 9 - da passiert nichts.

Bei der Farbe ist mir noch aufgefallen, dass die Einstellung für den 
Hintergrund in die 2. Zeile mitwandert.

Hier mal zwei Outputs von Joes und meine Testprogramm.
1
     writeln('Start der Darstellung');
2
3
     write(esc + '[34m');   {Text blau}
4
     writeln('Blauer Text');
5
6
     write(esc + '[47m');   {Hintergrund weiss}
7
     writeln('mit weissem Hintergrund');
8
9
     reset; {ESC [ m}
10
11
     writeln('wieder normal');
12
     writeln('genau');

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Das ist die Version aus dem SVN unter Doku/VT100/source/V1_1

Gibts nicht. Meinst Du vielleicht 'trunk/VT100/source/V1_1'?

Marcel A. schrieb:
> Nur ESC # 9 - da passiert nichts.

Gerade ausprobiert. Bei mir gehts.
Ansonsten habe ich gerade nicht viel Zeit für das Terminal. Die 
Tastaturprobleme schau ich mir aber auf jeden Fall demnächts an.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Marcel A. schrieb:
> Bei der Farbe ist mir noch aufgefallen, dass die Einstellung für den
> Hintergrund in die 2. Zeile mitwandert.

Das macht z.B. XTerm auch, also das gehört so. :)
Beim Scrollen wird die neue leere Zeile mit dem aktuellen Hintergrund 
gefüllt.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Das macht z.B. XTerm auch, also das gehört so. :)

Scheinbar aber nicht immer so?

zum VT100:
Leider habe ich von SPIN-Programmierung so gar keine Ahnung und ich 
wollte als nächstes eigentlich tiefer in die Z80-Programmierung 
einsteigen. Meine Herausforderung für die Feiertage ist die 
BIOS-Anpassung des NDR-NKCs zur Unterstützung von 3 Disketten-Laufwerken 
(habe dort einen mit HxC2001-Firmware erweiterten Gotek-Floppy-Emulator 
drin).

Mein Hauptproblem ist es, dass ich mich immer wieder in vielen kleinen 
Baustellen verzettel (-> NDR, TRS-80, MFA, Apple, C128...). Nach der 
ganzen Löterei würde ich jetzt gerne wieder mehr SW machen.

von Marcel A. (dl1ekm)


Lesenswert?

Neue Erkenntnisse:

Am PC-Terminal:
- wenn der ESC-Reset vor einem Writeln kommt, dann ist die Ausgabe ok
- Die Umschaltung SO/SI klappt bei mir nur mit TeraTerm unter Windows. 
Weder Putty unter Windows/Linux noch minicom schalten hier irgendetwas 
um
- ESC # 8 geht (alles voller E), aber ESC # 9 macht nichts

Am VT100 (1.7.2):
- SO/SI zeigt keine Wirkung
- CRTL wirkt wie Shift
- Shift keine Funktion in TP (wohl aber im AVR Monitor)


Generell Z180/AVR: PageDown/Up, Insert etc. erzeugen bei mir neben dem 
ESC-Code immer ein Tilde-Zeichen ~
Dieses wird dann nach einem PageDown in den Quelltext geschrieben.

von Leo C. (rapid)


Lesenswert?

> Scheinbar aber nicht immer so?

Doch. Wenn Zeichen gelöscht werden (müssen), gibt es 3 Möglichkeiten, 
wie der Hintergrund gefüllt werden kann:
1. mit dem Defaultwert
2. mit der Hintergrundfarbe, die vorher an der entspechenden Stelle war
3. mit der aktuell gesetzten Hintergrundfarbe

Unser Propeller-Terminal, XTerm und die meisten anderen machen es nach 
3. Beim Scrollen z.B. geht 2. nicht, da ja von unten eine neue Zeile, 
die keine alte Hintergrundfarbe haben kann, ins Bild geschoben wird. Auf 
meinem Bildschirmfoto oben sind die beiden ersten Ausgaben ohne 
scrollen, die dritte mit.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Am PC-Terminal:
> - wenn der ESC-Reset vor einem Writeln kommt, dann ist die Ausgabe ok

eben.

> - Die Umschaltung SO/SI klappt bei mir nur mit TeraTerm unter Windows.

Zwischen was wird denn da umgeschaltet?

> Weder Putty unter Windows/Linux noch minicom schalten hier irgendetwas
> um

Lies diesen Beitrag nochmal aufmerksam durch:
Beitrag "Re: VT100-Terminal (VGA+PS2)"

> - ESC # 8 geht (alles voller E), aber ESC # 9 macht nichts

ESC # 9 ist ja auch ein Hack, den es nur bei unserem Teminal gibt.

> Am VT100 (1.7.2):
> - SO/SI zeigt keine Wirkung

Wahrscheinlich das gleiche, wie bei Putty und co.

> - CRTL wirkt wie Shift
> - Shift keine Funktion in TP (wohl aber im AVR Monitor)

Ja, da sind offensichtlich schwere Fehler drin, die ich noch nicht 
gefunden habe.

> Generell Z180/AVR: PageDown/Up, Insert etc. erzeugen bei mir neben dem
> ESC-Code immer ein Tilde-Zeichen ~
> Dieses wird dann nach einem PageDown in den Quelltext geschrieben.

Die Tilde gehört mit zu der ESC-Sequenz und muß entsprechend ausgewertet 
werden.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:

> ESC # 9 ist ja auch ein Hack, den es nur bei unserem Teminal gibt.
Erleuchtung :-) Da geht es natürlich.

> Die Tilde gehört mit zu der ESC-Sequenz und muß entsprechend ausgewertet
> werden.

Hm... Ok, damit kommt aber TP nicht klar.
z.B. ist PgDwn/PgUp als "ESC [ 5" (oder 6) bei TINST eingestellt. TINST 
akzeptiert aber "ESC [ 5 ~" nicht..."
"Damals" gab es solche Tasten ja auch noch nicht :-)
Somit funktionieren zwar Insert, Home, End, PageUp/Dn - aber werfen 
immer ein ~ Zeichen in den Quelltext.
Werde ich mir halt die CTRL-Codes angewöhnen müssen.

TeraTerm:
- hier reicht es, SO zu senden, dann werden statt Kleinbuchstaben schöne 
Rahmen-Symbole dargestellt - ideal für GUIs

Putty:
- hier passiert bei SO/SI und ESC ) 0 gar nichts - normale Zeichen

Betrieb Z180 an VT100-Stamp:

- Der Quelltext eines TP-Programms sieht sehr wüst aus - überall 
ESC-Sequenzen drin...
Ich bin mir recht sicher, dass ich TP für VT100 eingestellt habe, da es 
bei allen anderen Terminals (Win/Linux) gut aussieht.

- Senden von SO/SI und ESC ) 0 zeigt nun auch dort anstelle der 
Kleinbuchstaben Sonderzeichen an - "Skatzeichen", Geschlechtssymbole, 
Paragraphen usw.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Somit funktionieren zwar Insert, Home, End, PageUp/Dn - aber werfen
> immer ein ~ Zeichen in den Quelltext.

Beschreibst du bitte noch mal den Fehler genau.
Die Tasten PgUp, PgDn usw. der PS2-Tastatur am Propeller VT100 sollten 
eigentlich überhaupt keine ESC Sequenzen ausgeben.  Hier kommt nur der 
Code des Tastaturtreibers zurück. (siehe keyb-DE.spin) Natürlich könnte 
man entsprechende ESC-Sequenzen noch programmieren. Oder habe ich dich 
gänzlich falsch verstanden?

von Marcel A. (dl1ekm)


Lesenswert?

Hallo Joe,

stimmt. das gehört eigentlich in den Z180-Thread. Das VT100 Terminal 
macht mit den Sondertasten natürlich (noch) nichts.
Den Effekt habe ich daher nur im Terminal am PC (Windows/Linux, 
minicom/putty/teraterm).
PageDn/Up führt zu "ESC [ 5 ~" und "ESC [ 6 ~"
TINST nimmt aber nur ESC[5 bzw. ESC[6 an (ohne ~). Bei PageDn springt es 
direkt (ohne Return) in die nächste Zeile des Konfig-Menüs (zeigt aber ~ 
an). Das "~" wird aber nicht abgespeichert.

Ich meine, das wäre bei den alten AVRCPM-Varianten nicht so gewesen...

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Ich meine, das wäre bei den alten AVRCPM-Varianten nicht so gewesen...

Hab es gerade mal ausprobiert. Es war schon immer so. Da ich die 
CTRL-Codes nutze, ist mir das nie aufgefallen. In unserem VT100-Terminal 
könnte man es jedoch ohne Tilde einbauen.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> PageDn/Up führt zu "ESC [ 5 ~" und "ESC [ 6 ~"
> TINST nimmt aber nur ESC[5 bzw. ESC[6 an (ohne ~). Bei PageDn springt es
> direkt (ohne Return) in die nächste Zeile des Konfig-Menüs (zeigt aber ~
> an). Das "~" wird aber nicht abgespeichert.

Das habe ich mal angeschaut. Laut TINST-Doku sollten die Sequenzen 4 
Zeichen lang sein dürfen, würde also gerade so passen. Es werden aber 
nur 3 Zeichen gespeichert.

Die Sequenzen für die Tasten werden mit einem Längenbyte unmittelbar 
nacheinander im Programm (TURBO.COM) gespeichert:
1
4280   F5 7B 1A 01  0D 03 1B 5B  44 01 08 03  1B 5B 43 01  u{.....[D....[C.
2
4290   FF 01 FF 03  1B 5B 41 03  1B 5B 42 01  FF 01 FF 03  .....[A..[B.....
3
42A0   1B 5B 35 03  1B 5B 36 03  1B 4F 48 03  1B 4F 46 01  .[5..[6..OH..OF.
4
42B0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
5
42C0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
6
42D0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
7
42E0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 00  ................
8
42F0   FF 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................

Für PageUp und PageDown habe ich die Tilde mal eingefügt und die 
Sequenzlänge jeweils auf 4 geändert.
1
4290   FF 01 FF 03  1B 5B 41 03  1B 5B 42 01  FF 01 FF 04  .....[A..[B.....
2
42A0   1B 5B 35 7E  04 1B 5B 36  7E 03 1B 4F  48 03 1B 4F  .[5~..[6~..OH..O
3
42B0   46 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  F...............
4
42C0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
5
42D0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
6
42E0   FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  FF 01 FF 01  ................
7
42F0   FF 00 FF 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
8
4300   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................

Prinzipiell scheints zu funktionieren, aber sobald man eine der beiden 
Tasten drückt, wird der Anfang der Statuszeile gelöscht. Nicht tragisch, 
aber merkwürdig.

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Ich habe noch ein Problem mit der Firmware, zumindest in der "V1.7.2 
test serial 3" (andere habe ich nicht getestet): Bei hohen Datenmengen 
werden Zeichen verschluckt.
Das ist ähnlich wie bei meinem VT100 HP-Terminal, das habe ich später 
mit diversen Parametern in den Griff bekommen (Software XON / XOFF 
glaube ich).

Anbei einige Bilder. Beim "Boot" ist noch alles ok, aber bei Help oder 
bei längeren Ausgaben unter CPM kommt es ins schleudern.
Als wenn da ein Puffer überläuft.

Habe die AVR CON über MAX... mit RX/TX/GND (3-adrig) an die VT100 Stamp 
angeschlossen... Am PC/Linux Terminal alles ok.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das sieht mir tatsächlich nach einem Pufferüberlauf aus. Im Bild 
P1011427.JPG kommen 16 Zeilen a 16 Zeichen = 256 Zeichen korrekt, dann 
kommt der Fehler. Dieser Fehler trat in einer frühen Version auch auf 
und ich hatte ihn durch Vergrößerung des Puffers beseitigt. In der 
jetzigen Version ist der Puffer wieder zugunsten der Flusskontrolle 
geschrumpft. Die Baudrate reduzieren sollte erst mal Abhilfe schaffen. 
Da ich gerade kein Spincompiler zur Hand habe, kann ich nicht 
nachschauen wie viel Speicher noch für eine mögliche Puffererweiterung 
zur Verfügung steht.

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Dieser Fehler trat in einer frühen Version auch auf
> und ich hatte ihn durch Vergrößerung des Puffers beseitigt.

Beseitigen läßt er sich dadurch nicht, nur verschieben.

> In der jetzigen Version ist der Puffer wieder zugunsten der
> Flusskontrolle geschrumpft.

So könnte man es sagen. Ich habe vor ein paar Wochen angefangen, RTS/CTS 
und XON/XOFF Flußsteuerung in das Terminal und ins Z180-Stamp-Bios 
einzubauen. Leider komme ich z.Zt. kaum von der Stelle.

> Die Baudrate reduzieren sollte erst mal Abhilfe schaffen.

Füllzeichen einfügen geht auch [1]. ;-)

> Da ich gerade kein Spincompiler zur Hand habe, kann ich nicht
> nachschauen wie viel Speicher noch für eine mögliche Puffererweiterung
> zur Verfügung steht.

Es sind ca. 12 KByte frei. Sende- und Empfangspuffer lassen sich 
inzwischen getrennt einstellen (am Anfang von 'FullDuplexSerial.spin'), 
und die Größe muß auch keine 2er-Potenz mehr sein.


[1] http://vt100.net/docs/vt102-ug/chapter6.html#S6.2.7.2
    bzw. http://vt100.net/docs/vt102-ug/table6-12.html

von Marcel A. (dl1ekm)


Lesenswert?

Ich hab mich mal ran getraut...

Der Tipp mit dem Buffer hat gut geklappt. Damit sieht es "erst" mal gut 
aus:
1
CON
2
' Buffer sizes
3
  RX_SIZE = 2000                         'Receive buffer size
4
  TX_SIZE = 160                          'Transmit buffer size

Dann habe ich mal geschaut bzgl. des CTRL/SHIFT Problems und habe den 
Code aus dem Verzeichnis 1.1 (meldet sich mit 1.6) mit dem "aktuellen" 
verglichen.
Folgender Tausch in den Zeilen 204ff hat etwas gebraucht:
1
    if ch > 0
2
      'if ch & $FFC0 == $0240                          'CRTL code
3
      'ch &= !$0020                                  'redefine as CTRL+char
4
5
      if ch > 608 and ch < 635                 'CRTL code
6
         ch:=ch-608                            'redefine as CTRL+char

Was auch immer das genau macht :-)

Nun funktionieren die CTRL-Codes wieder.

Und kurios: Turbo Pascal und Wordstar laufen nun "etwas". Zumindest die 
Startmenüs kommen, aber irgendwann steigt, unreproduzierbar an welcher 
Stelle, der VT100 aus.
=> Offenbar kommt er mit einigen Codes nicht klar?

Dafür hatte ich 1 x den Effekt, dass SHIFT nicht mehr ging. Konnte ich 
aber nicht mehr reproduzieren.

Und mir ist aufgefallen, dass bei WS der Bildschirm ziemlich zappelt 
(wie mit einem Handy neben einem Röhrenmonitor :-)). Es "zuckt" in der 
Darstellung. Sonst bei keinem anderen Programm.

Ich hoffe, das hilft ein wenig.

P.S.: Gerade lief WS recht stabil...

Gruß
Marcel

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Und mir ist aufgefallen, dass bei WS der Bildschirm ziemlich zappelt
> P.S.: Gerade lief WS recht stabil...

Die Leiterführung zur VGA-Buchse ist, vorsichtig ausgedrückt, sehr 
unglücklich gewählt (tatsächlich Mist :-(. Lege mal den Quarz mit dem 
Gehäuse auf Masse (kleinen Draht anlöten).

Bei deinen "Abstürzen" ist mir die Kausalität nicht ganz klar. TP und WS 
senden doch zunächst nur an das VT100. Dabei sollten beide Programme 
doch nicht abstürzen. Fehlerhaft kann nur das VT100 reagieren, wobei 
auch dabei nichts an WS oder TP gesendet werden sollte.

von Marcel A. (dl1ekm)


Lesenswert?

Das mit den Quarz erden probiere ich aus - wobei mir das nur bei WS 
aufgefallen ist - sonst alles bestens.

Und richtig: Das VT100 stürzt ab, nicht WS/CPM. Der Bildschirm wird 
dunkel und der Monitor meldet "no signal".

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Folgender Tausch in den Zeilen 204ff hat etwas gebraucht:

Hier ist tatsächlich ein Fehler. Ersetze mal bitte die Zeile
ch &= !$0020 durch
ch := ch-$260

Dann sollten die CTRL-Codes wieder gehen.

    ch := key.key
    if ch > 0
      if ch & $FFC0 == $0240                  'CRTL code
        ch := ch-$260                         'redefine as CTRL+char

von Marcel A. (dl1ekm)


Lesenswert?

Prima, das hat geholfen!

Und auch des Erden des Quarzes hat etwas gebracht: Kein Zucken mehr und 
WS/TP laufen bisher stabil.

DANKE!

Jetzt müsste ich mal schauen, wie das mit den Umlauten geht. Die waren 
ja mal drin, sind aber aktuell ja nicht drin (es kommt v, d und |).

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Die waren
> ja mal drin, sind aber aktuell ja nicht drin (es kommt v, d und |).

Das VT100 kann derzeit keine Umlaute anzeigen. Sie sind ja nicht im 
Zeichensatz enthalten [1]. Oder meinst du das Senden von Umlauten?

[1] Beitrag "Re: VT100-Terminal (VGA+PS2)"

Nachtrag:
Gesendet werden sie korrekt, habe ich gerade getestet.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Ok, das mit den Umlauten wurde ja schon intensiv diskutiert. Ich traue 
mich da aber (noch) nicht wirklich ran.

Inzwischen habe ich die für die TP-Entwicklung wichtigen Tasten {[]} 
auch wiedergefunden.
Sie kommen bei ALTGR-I,O.K,L    - ist das so gewollt oder an die falsche 
Stelle gerutscht?

Denn laut Keyb-de.spin sind die eigentlich richtig:
1
                        '$38  ---   ---    m     j     u     7     8    ---
2
                        '    ===== ===== ===== ===== ===== ===== ===== =====
3
                        word $0000,$0000, "µ", $0000,$0000, "{" , "[" ,Sleep
4
5
                        '
6
                        '$40  ---    ,     k     i     o     0     9    ---
7
                        '    ===== ===== ===== ===== ===== ===== ===== =====
8
                        word $0000,$0000,$0000,$0000,$0000, "}",  "]", $0000

EDIT: Offenbar haben sich (wie man sieht) da einige Sonderzeichen 
eingeschlichen. Meine Parallax-Umgebung hat auch immer angemeckert 
irgendwas mit UniCode beim speichern - vermutlich sind die Windows - und 
Linux-Umgebungen nicht ganz Kompatibel im Dateiformat :-(

Ich habe einfach die Tabelle table_alt_r aus der 1.6er drüberkopiert - 
UND NUN GEHEN DIE KLAMMERN!

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Ich habe mich nun mal ziemlich durch das Thema Zeichensätze und Fonts 
durchgewühlt - der Code ist ja 1A dokumentiert...

Eines verstehe ich noch nicht:
Wir nutzen ja fonts-lin.spin - dort sind 2 Fonts a 127 Zeichen 
definiert. Ich gehe davon aus, dass das jeweils die gleichen Zeichen 
sind, aber unterschiedlich gemalt (Umschaltbar im Setup).

Dann haben wir noch 3 Zeichensätze (US, UK, Special) - wo sind die 
definiert und vor allem - wo sind z.B. die Zeichen ("Malen") für den 
Special Charakter definiert?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> vermutlich sind die Windows - und
> Linux-Umgebungen nicht ganz Kompatibel im Dateiformat

Ja, so ist es leider [1].

> Wir nutzen ja fonts-lin.spin - dort sind 2 Fonts a 127 Zeichen
> definiert.

Genau dort stehen die Fonts. Es gibt auch nur diese beiden Fonts mit dem 
Format 8x16 Pixel, a 256 mögliche Zeichen. Um das Unterstreichen zu 
ermöglichen ist jeder Zeichensatz eigentlich doppelt aufgebaut - einmal 
ohne Unterstrich und einmal mit Unterstrich. Dadurch fehlt der Platz wie 
z.b. bei der Codepage 850. Um dennoch die Umlaute einzubauen hatten wir 
Platz gesucht [2]. Hier könnten sie also rein.

Die beiden Zeichensätze unterscheiden sich übrigens durch die 
Pixelbreite. Bei Font 1 gibt es kein Leerzeichen zwischen einigen 
Zeichen. Das ist vor allem beo M oder O auffällig.

Die Grafiksymbole (Zeichnen von Rahmen) gibt es nur im Font 0. Eine 
bessere Lösung ist uns noch nicht eingefallen.


[1] Beitrag "Re: VT100-Terminal (VGA+PS2)"
[2] Beitrag "Re: VT100-Terminal (VGA+PS2)"

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Genau dort stehen die Fonts. Es gibt auch nur diese beiden Fonts mit dem
> Format 8x16 Pixel, a 256 mögliche Zeichen. Um das Unterstreichen zu
> ermöglichen ist jeder Zeichensatz eigentlich doppelt aufgebaut - einmal
> ohne Unterstrich und einmal mit Unterstrich.

Das war mal so. Die Fonts haben jetzt tatsächlich nur noch 127 Zeichen. 
Die zweite Hälfte ist auskommentiert. Trotzdem wird das 8te Bit als 
Attribut für Unterstreichen verwendet.

Marcel A. schrieb:
> Dann haben wir noch 3 Zeichensätze (US, UK, Special) - wo sind die
> definiert

In der Font-Datei sind die Pixelmuster (Glyphen) für 128 Zeichen 
abgelegt. Welche Glyphe für welche Zeichensatzposition genomen wird, ist 
aber nicht starr (1:1), sondern hängt vom aktuell ausgewählten 
Zeichensatz ab [1]. Bisher gibt es 3 Mapping-Tabellen für die 
Zeichensätze US, UK und "Special characters and line drawing". Im 
Hauptprogramm unter CS_US, CS_UK und CS_DEC zu finden.

> und vor allem - wo sind z.B. die Zeichen ("Malen") für den
> Special Charakter definiert?

Sende "ESC # 9" ans Terminal, und Du wirst es sehen.


[1] http://vt100.net/docs/vt102-ug/chapter5.html#S5.5.2.16

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Joe G. schrieb:
> ch &= !$0020 durch
> ch := ch-$260
> Dann sollten die CTRL-Codes wieder gehen.

Gestern war ich zu müde zum Nachdenken, deshalb der Schnellschuss mit 
der Subtraktion. So hier wird es auch Leo C. wieder gefallen ;-)

ch := key.key
 if ch > 0
   if ch & $FFC0 == $0240                          'CRTL code
     ch &= $001F                                   'redefine as 
CTRL+char

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Fein, ich bin nur verwirrt, dass 3 Charakter Sets auf 2 Fonts gemappt 
sind.
US und UK unterscheiden sich ja kaum.
Wenn ich also sowohl schöne Schrift (Font 1) haben will als als auch 
Grafiksymbole (aus Font 0) gleichzeitig, geht das überhaupt auf einer 
Seite?
Wie kann ich denn überhaupt Font 0 und 1 per SW umschalten, ich dachte 
das wäre eine globale Einstellung mit VT100 Setup Menü. Oder ist das 
diese SO und SI?

Derzeit sind die Umlaute ja auf Stellen wir FC und F6 gemappt, diese 
Bereiche sind ja auskommentiert. Also dann remapping auf die besagten 
Zeichen im Bereich < 127...

Ich werde da mal ein bisschen fummeln.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Fein, ich bin nur verwirrt, dass 3 Charakter Sets auf 2 Fonts gemappt
> sind.

Nein!
Die beiden Fonts haben mit dem Character-Set Mapping nichts zu tun. 
Schau Dir Die Artikel an, auf die Joe verwiesen hat oder den Link aus 
meinem letzten Posting.

> Wie kann ich denn überhaupt Font 0 und 1 per SW umschalten

Such mal in der Datei 'control-codes.md' nach font.


> Also dann remapping auf die besagten Zeichen im Bereich < 127...

Das war die Idee.
Beitrag "Re: VT100-Terminal (VGA+PS2)"

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Gestern war ich zu müde zum Nachdenken, deshalb der Schnellschuss mit
> der Subtraktion. So hier wird es auch Leo C. wieder gefallen ;-)
>
> ch := key.key
>  if ch > 0
>    if ch & $FFC0 == $0240                          'CRTL code
>      ch &= $001F                                   'redefine as

So wars wahrscheinlich gedacht. Die Zeile
1
      ch &= !$0020                                  'redefine as CTRL+char
läßt sich nur durch Blackout erklären. Alkohol wars jedenfalls nicht. 
Inzwischen bin ich nicht mehr sicher, ob das so überhaupt richtig ist. 
Warum wurde im ursprünglichen Code auf 608 < ch < 635
(0x260 < ch < 0x27B) getestet, statt auf 0x260 <= ch <= 0x27F ?

Ok, ^@ braucht kein Mensch und für {, |, }, und ~ gibt es auch auf der 
US-Tastatur keine Tasten. Trotzdem leuchtet mir nicht ein, warum man die 
entsprechenden Control-Codes ausfiltern sollte.
Aber der ganze Keyboard-Treiber ist für mich noch eine weiße Landkarte.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Warum wurde im ursprünglichen Code auf 608 < ch < 635
> (0x260 < ch < 0x27B) getestet, statt auf 0x260 <= ch <= 0x27F ?

Einfach der Bereich von CTRL-A bis CTRL-Z. Mann könnte natürlich auch 
den ganzen Bereich durchlassen.

von Marcel A. (dl1ekm)


Lesenswert?

Ich habe es geschafft, das Brett vor meinem Kopf zu durchsägen. 
Manoman...
Die 127 Glyphen sind der maximale darstellbare Zeichenvorat und die 
Character Sets sind ein Mapping darauf...
Somit ist klar, wie die Umlaute einzubauen sind. Für Font 0 hattet ihr 
ja euch schon auf die Stellen geeinigt. Ist auch wegen der Grafiksymbole 
der bessere Zeichensatz, obwohl ich Font 1 deutschlich geschmeidiger 
finde.

Mal sehen, mangels einem richtigen Editor dafür werde ich mir entweder 
was in Excel basteln oder was programmieren. Man kann AUO ... dann ja 
recht einfach anpassen.
Der Sonntag ist gerettet :-)

von Marcel A. (dl1ekm)


Lesenswert?

Es klappt...

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

So, ich habe die Zeit genutzt und mit Excel und Papier den Zeichensatz 
erweitert. Siehe Bilder.

Dazu musste ich erst einmal analysieren, wie in der fonts.spin die Daten 
aufbereitet sind:
- jede Zeile enthält Zeichen - soweit klar
- Für jedes Zeichen gibt es pro Zeile 16 Werte 0..FF (Zeilen), welche 
die 8 Bit Breite beschreiben.
- ACHTUNG 1: Die Daten sind spiegelverkehrt (Bits links erscheinen beim 
Buchstaben rechts)
- ACHTUNG 2: Die Reihenfolge ist NICHT linear:
  Block 1:
    Zeile 4
    Zeile 3
    Zeile 2
    Zeile 1
  Block 2:
    Zeile 8
    Zeile 7
    Zeile 6
    Zeile 5
  usw...


Folgende Belegungen wurden nun vorgenommen. Ich habe alles mit Kommentar 
"Marcel" versehen, so dass man die Anpassungen schnell findet und wieder 
in ein SVN etc. einpflegen kann:
1
ASCII Code
2
DEC Special                   Pos in
3
DEC      HEX      Zeichen     Zeichensatz
4
98       62       Ä           03  
5
99       63       Ö           04 
6
100      64       Ü           05
7
191      65       ä           06  
8
104      68       ö           09
9
105      69       ü           0A
10
                  ß           02

Im Moment scheitere ich aber am Matching. Einfach in der keybd-spin das 
Scancode-Mapping (z.B. für 52 - "ä") auf 03, 04 etc. zu setzen reicht 
nicht. Offenbar wird der Wert im Vorfeld mehrfach konvertiert. Ich habe 
es geschafft, dass verschiedene Zeichen angezeigt werden, aber die 
Umlaute habe ich nicht "getroffen", egal was für "Offsets" ich 
eingetragen habe - es lag immer um vielfache von 16 daneben in der der 
fonts-tabelle.
Aber Anzeige allein reicht ja eh nicht aus. Letztlich müssen diese 
Buchstaben ja auch vom Zielsystem verarbeitet werden können - und ich 
denke, da klemmt es noch. Als was werden dann die Umlaute zum CPM-System 
geschickt und so weiter.
Habt ihr eine Tipp sonst wühle ich mal weiter :-)

P.S.: Zwischendurch hatte ich immer wieder das Problem, dass im 
TP-Editor manchmal ein einigen Zeile die SHIFT-Funktion nicht geht, in 
anderen Zeilen schon... sehr kurios. Bisher habe ich das keine 
Reproduzierbarkeit gefunden.

Gruß
Marcel

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Du warst schneller mit deinem Text, ich hatte gerade den Aufbau des 
Zeichensatzes beschrieben. Hier als Anhang.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Sehr gut!

beim Mapping hast du jedoch noch einen Denkfehler ;-)
Der Tastaturtreiber arbeitet schon korrekt mit den Umlauten, hier mußt 
du nichts ändern. Die eigenen Tastatureingaben werden auch nicht an das 
Terminal gesendet, sondern nur die Zeichen die von der V24 extern 
kommen. Genau diese Zeichen müssen über das Mapping auf den korrekten 
Zeichensatz gelegt werden. Das Mapping ist übder die 3 Tabellen, im 
Hauptprogramm unter CS_US, CS_UK und CS_DEC zu finden, realisiert [1].

[1] Beitrag "Re: VT100-Terminal (VGA+PS2)"

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> So, ich habe die Zeit genutzt und mit Excel und Papier den Zeichensatz
> erweitert. Siehe Bilder.

Super.

> Folgende Belegungen wurden nun vorgenommen. Ich habe alles mit Kommentar
> "Marcel" versehen, so dass man die Anpassungen schnell findet und wieder
> in ein SVN etc. einpflegen kann:

Das kannt Du gerne auch selbst einchecken.

> Im Moment scheitere ich aber am Matching. Einfach in der keybd-spin das
> Scancode-Mapping (z.B. für 52 - "ä") auf 03, 04 etc. zu setzen reicht
> nicht.

Terminal-Input und Terminal-Output, also Bildschirm und Tastatur haben 
nichts miteinander zu tun. Deshalb kommt die Datei "keybd-spin" 
(wahrscheinlich meinst Du keyb-DE.spin) hier überhaupt nicht ins Spiel.

> Aber Anzeige allein reicht ja eh nicht aus. Letztlich müssen diese
> Buchstaben ja auch vom Zielsystem verarbeitet werden können - und ich
> denke, da klemmt es noch. Als was werden dann die Umlaute zum CPM-System
> geschickt und so weiter.

Genau.

> Habt ihr eine Tipp sonst wühle ich mal weiter :-)

Ein "National Replacement Character Set" (German) einbauen, siehe z.B.:
http://vt100.net/docs/vt220-rm/chapter2.html#S2.4.3
http://vt100.net/docs/vt220-rm/chapter4.html#S4.4.1
und hier:
Beitrag "Re: VT100-Terminal (VGA+PS2)"

Dann muß man aber auf "\|{[]}~" verzichten, bzw. muß zwischen den beiden 
Char-Sets hin und her schalten, worauf CP/M-Programme ja auch nicht 
unbedingt eingerichtet sind.

Eine andere, zusätzliche Möglichkeit, wäre ANSI, bzw DEC Multinational 
Character Set (teilweise) zu realisieren. Das wäre dann ein 8-Bit 
Zeichensatz, bei dem in unserem Fall die obere Hälfte sehr schwach 
besetzt wäre, da wir ja weiterhin nur 128 Zeichen insgesamt haben. Man 
hätte diese 128 Zeichen dann aber alle gleichzeitig im Zugriff.

> P.S.: Zwischendurch hatte ich immer wieder das Problem, dass im
> TP-Editor manchmal ein einigen Zeile die SHIFT-Funktion nicht geht, in
> anderen Zeilen schon... sehr kurios. Bisher habe ich das keine
> Reproduzierbarkeit gefunden.

Das Problem habe ich auch.

von Marcel A. (dl1ekm)


Lesenswert?

Joe G. schrieb:
> beim Mapping hast du jedoch noch einen Denkfehler ;-)

Das war mir klar, nur nicht, welcher :-) Na, jedenfalls danke für den 
Hinweis. Ich schau heute Abend mal weiter.

>Das Problem habe ich auch.
Stimmt, das hattest du ja schon mal in ähnlicher Form erwähnt. Schaun 
wir mal.

>Das kannt Du gerne auch selbst einchecken.
Puh, damit habe ich noch nie gearbeitet. In meiner bisherigen 
Programmierer-"Karriere" kam ich immer mit Copy/Paste in Verzeichnissen 
aus...
Brauche ich noch irgendwelche Berechtigungen?

von Leo C. (rapid)


Lesenswert?

> Brauche ich noch irgendwelche Berechtigungen?

Nein. Du brauchst nur einen SVN-Clienten[1] für dein OS und das 
SVN-Password. Letzteres findest Du in Deinen Benutzereinstellungen.
Hinweise gibts hier: https://www.mikrocontroller.net/articles/Hilfe:SVN

Schnellanleitung:

1. Projekt in ein genehmes Unterverzeichnis auschecken.
   Wenn Du Platz genug auf Deiner Festplatte hast, kannst Du den
   gesamten Verzeichnisbaum auschecken. Die Repository-URL wäre dann:
   svn://mikrocontroller.net/avr-cp-m
   Ansonsten nur den interressierenden Teil. z.B:
   svn://mikrocontroller.net/avr-cp-m/trunk/VT100/source/work

2. Dateien editieren, oder Deine geänderten Dateien drüber kopieren.

3. Vor dem Einchecken darauf achten, daß die geänderten oder neuen
   Dateien im utf-8 Format sind. BST hat z.B. einen Schalter in den
   IDE-Preferences: "Save as UTF8".

4. Einchecken (Checkin)
   Dabei bitte unbedingt einen Grund für die Änderungen angeben
   (Log Message). Muß kein Roman sein, aber wenigstens ein paar
   Stichworte. Die Dateien, die geändert wurden, muß man in der
   Log-Message nicht angeben, da SVN darüber ja Buch führt.


[1] z.B.Tortoise SVN (Windows) oder SVN Workbench (Linux)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Eine andere, zusätzliche Möglichkeit, wäre ANSI, bzw DEC Multinational
> Character Set (teilweise) zu realisieren.

Diese Lösung halte ich für geeigneter als immer umzuschalten. Font 0 ist 
ja schon auf dem besten Wege dahin :-)

von Marcel A. (dl1ekm)


Lesenswert?

Joe G. schrieb:
> Leo C. schrieb:
>> Eine andere, zusätzliche Möglichkeit, wäre ANSI, bzw DEC Multinational
>> Character Set (teilweise) zu realisieren.
>
> Diese Lösung halte ich für geeigneter als immer umzuschalten. Font 0 ist
> ja schon auf dem besten Wege dahin :-)

Ui, da lasse ich mal besser die Profis ran :-)
Ich scheitere schon daran, dass ich meine Änderungen nicht ins SVN 
bekomme (angeblich gibt's meinen User da nicht).

@Joe: Ich würde gerne mein TP von 25 auf 30 Zeichen umstellen. Nun fragt 
mich TINST, welchen "Screen" ich nehmen/ändern möchte (VT100 wird da ja 
nicht angeboten). Hast du hier ANSI genommen oder "31-other" und für 
VT100 alles zu Fuß eingestellt? Ich meine, bei 31  MUSS man alles neu 
eingeben oder werden mit "Enter" die aktuellen Einstellungen behalten? 
Ich will mir das nicht kaputt machen...

EDIT: MIST. Habe es gerade versucht (mit ENTER - nun ist es 
zerschossen). Habe nun ANSI genommen (war das auch vorher ...?) und auf 
30 Zeilen geändert - scheint gut zu gehen.

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Ich scheitere schon daran, dass ich meine Änderungen nicht ins SVN
> bekomme (angeblich gibt's meinen User da nicht).

Die Meldung kommt auch, wenn das Passwort nicht zum User paßt. Ich habe 
jetzt einiges ausprobiert. Mit dem Passwort, daß hier auf der 
Benutzerseite angezeigt wird, gehts nicht. Mit einem früher mal 
gespeicherten Passwort gehts.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Ich scheitere schon daran, dass ich meine Änderungen nicht ins SVN
> bekomme (angeblich gibt's meinen User da nicht).

Du hattest keine Schreibrechte, jetzt sollte es gehen.

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Ich habe mir jetzt mal einen quick&dirty fonteditor (allerdings in .NET) 
gebaut, der direkt Codezeilen erzeugt bzw. einliest
Wenn ich das ganz noch ein wenig mit Fehlerbehandlung versehen habe und 
vielleicht sogar 127 Zeichen gleichzeitig verarbeiten kann, stelle ich 
das EXE hier mal ein die Tage.

Noch eine Frage: Ich finde zwar immer noch Font1 besser als Font0, aber 
wenn Font0 sich zum Standard entwickelt, können wir dann nicht den Platz 
von Font1 für weitere Zeichen etc. nutzen?

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das sieht ja recht gut aus :-)
Doch ich glaube, dass der Schwerpunkt besser auf dem Konverter 
Spin_to_Font und Font_to_Spin liegen sollte. Der Font sollte dann in 
einem der üblichen Formate (z.B. .bdf oder .fnt) vorliegen. Dazu gibt es 
dann genug Fonteditoren wie z.B. [1,2].

[1] http://hukka.ncn.fi/?fony
[2] http://fontforge.github.io/en-US/downloads/windows/

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Ich habe mir jetzt mal einen quick&dirty fonteditor (allerdings in .NET)
> gebaut, der direkt Codezeilen erzeugt bzw. einliest

Sowas gibts schon, z.B:
http://www.rayslogic.com/Software/RaysFontEditor/RaysFontEditor.htm
Neuere Version gibts im Forum ganz unten auf Der Seite:
http://forums.parallax.com/discussion/141644/font-editor-preview-5/p3

> Noch eine Frage: Ich finde zwar immer noch Font1 besser als Font0, aber
> wenn Font0 sich zum Standard entwickelt, können wir dann nicht den Platz
> von Font1 für weitere Zeichen etc. nutzen?

Nein.

Joe G. schrieb:
> Doch ich glaube, dass der Schwerpunkt besser auf dem Konverter
> Spin_to_Font und Font_to_Spin liegen sollte. Der Font sollte dann in
> einem der üblichen Formate (z.B. .bdf oder .fnt) vorliegen. Dazu gibt es
> dann genug Fonteditoren wie z.B. [1,2].

Sehe ich auch so. Wir können dann auch ganz einfach bestehende Fonts 
einbinden. z.B. Terminus: http://terminus-font.sourceforge.net/

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Neuere Version gibts im Forum ganz unten auf Der Seite:
> http://forums.parallax.com/discussion/141644/font-editor-preview-5/p3

Mist :-) Den Link hatte ich mir die Tage schon mal angesehen, dann aber 
im Eifer des Gefechts vergessen und selber angefangen.

Export scheint das richtige Format zu unterstützen, beim Import ist er 
gerade abgestürzt - wahrscheinlich war da noch zu viel "Müll" im 
Textfile.

von Leo C. (rapid)


Lesenswert?

Marcels Umlaute jetzt können jetzt als deutsches National Replacement 
Character Set (NRC set) ausgewählt werden.
1
    ESC ( K           SCS     Select Character Set DE  --> G0
2
    ESC ) K           SCS     Select Character Set DE  --> G1

Die Platzierung im Zeichensatz erfolgt nach dieser Tabelle:
http://vt100.net/docs/vt220-rm/table2-10.html

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das ja wirklich gewöhnungsbedürftig ;-) macht aber was es soll.

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
>> Eine andere, zusätzliche Möglichkeit, wäre ANSI, bzw DEC Multinational
>> Character Set (teilweise) zu realisieren.
>
> Diese Lösung halte ich für geeigneter als immer umzuschalten. Font 0 ist
> ja schon auf dem besten Wege dahin :-)

Ist jetzt drin.

Neue Steuercodes:
1
### C1 Control Characters
2
3
            Code      Equiv.     
4
  Mnemonic  (Hex)     ESC Seq     Name
5
  ----------------------------------------------------------
6
  IND       84        ESC D       Index
7
  NEL       85        ESC E       Next line
8
  RI        8D        ESC M       Reverse index
9
  CSI       9B        ESC [       Control sequence introducer
10
  ST        9C        ESC \       String terminator
11
12
### Escape sequences
13
14
  ESC ~        LS1R    Invoke G1 into GR
15
  ESC n        LS2     Invoke G2 into GL
16
  ESC }        LS2R    Invoke G2 into GR (default)
17
  ESC o        LS3     Invoke G3 into GL
18
  ESC |        LS3R    Invoke G3 into GR
19
20
  ESC ( <      SCS     Select Character Set DEC supplemental  --> G0
21
  ESC ) <      SCS     Select Character Set DEC supplemental  --> G1
22
  ESC * A      SCS     Select Character Set UK  --> G2
23
  ESC * B      SCS     Select Character Set US ASCII  --> G3
24
  ESC * K      SCS     Select Character Set DE  --> G3
25
  ESC * <      SCS     Select Character Set DEC supplemental  --> G3
26
  ESC * 0      SCS     Select Character Set DEC special characters and line drawing set  --> G3
27
  ESC + A      SCS     Select Character Set UK  --> G4
28
  ESC + B      SCS     Select Character Set US ASCII  --> G4
29
  ESC + K      SCS     Select Character Set DE  --> G4
30
  ESC + <      SCS     Select Character Set DEC supplemental  --> G4
31
  ESC + 0      SCS     Select Character Set DEC special characters and line drawing set  --> G4

Doku dazu im VT220 Manual,
Kapitel 2 (Character Encoding) und Kapitel 4 (Received Codes)
http://vt100.net/docs/vt220-rm/contents.html

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Frohe Weihnachten!

Zum Abspielen empfehle ich 9600 Baud. Auf der VT100-Platine gehts auch 
mit 115200, wenn man RTS/CTS FLußsteuerung verwendet, aber schöner wirds 
dadurch nicht.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Frohe Weihnachten!

Danke, Dir auch!

Unglaublich was man mit so einem Zeichensatz alles erzeugen kann. Ich 
fühlte mich gerade wie bei einem Telespiel Ende der 70ziger.

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Hallo Joe,

kurze Frage die dicken SMD C's (9,11,10,6) sind das einfach nur 1206er?

Oder was spezielles?

Gruesse!

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

W3ll S. schrieb:
> Oder was spezielles?

Das sind normale SMD Elkos, also Polarität beachten!

von Welle 🧐 S. (w3llschmidt)


Lesenswert?


von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

ja, korrekt

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Hi Joe,

icke nochmal :)

Ist das die Richtige?

https://www.reichelt.de/index.html?ACTION=3;ARTICLE=52026;SEARCH=EB-DIOS

.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ja, sollte passen. Damit die Farbe auch noch zu Stecker paßt, gibt es 
die sogar in blau ;-) Best. Nr. EB-DIOS M06V

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> die sogar in blau ;-) Best. Nr. EB-DIOS M06V

Genau. blau/violett für Tastatur, grün/türkis für Maus, grau geht gar 
nicht. ;-)
https://de.wikipedia.org/wiki/PS/2-Schnittstelle

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

:) Danke!

Noch eine, hoffentlich letzte Frage. :)

Das .bin auf den Propeller flashen, muss ich mir dafür die ganze Windows 
IDE installieren?

Gibts was kleines für Linux? So ein propload.py :)

von Leo C. (rapid)


Lesenswert?

Es gibt Brad's Spin Tool (BST):
http://www.fnarfbargle.com/bst.html

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

bstl - The command line loader

Cool :)

Thx!

: Bearbeitet durch User
von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Doch noch was :)

Die 0.1 Kondensatoren, sind das 0.1 Farad?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Eigentlich gibt es nur 100nF und 10µF. 0.1F würde sehr sehr groß werden 
;-)

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Joe G. schrieb:
> (...) 10µF

Puhh, der letzte Wert den ich habe :)

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Grosser Mist, ich hab bei meiner Reicheltbestellung den BC817-25 und
den Kurzhubtaster vergessen heul

0,19 CENT Warenwert ... Versandkosten ... 5.60 EUR

Ob wohl hier jemand so nett wäre mir damit auszuhelfen?

2,50 EUR im Brief wäre ok?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ja, aber erst ab Montag wenn es reicht.

von Welle 🧐 S. (w3llschmidt)


Angehängte Dateien:

Lesenswert?

Hi Joe, super! Danke!!!

von Leo C. (rapid)


Lesenswert?

Hallo W3ll,
ich hatte Dir eine PM geschickt. Ist die nicht angekommen? Kopie war 
angekreutzt, und die kommt auch nicht. :(

Wenn Du mit einem 2N3904 statt BC817 zufrieden bist, könnte ich 
Transistor und Taster heute noch zur Post bringen.

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Hee Leo,

nee Du, nischt angekommen ?!

Ick nehm alles :)

Joe, passt das 2N3904?

: Bearbeitet durch User
von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

W3ll S. schrieb:
> Ick nehm alles :)

Dann schick mir eine PM mit Deiner Postadresse.

> Joe, passt das 2N3904?

Es ist eher ein MMST3904, und ja, der passt.
Gerade nochmal nachgemessen: Stromverstärkung reicht locker, und die 
Pinbelegung auch, auch wenn letzteres auf dem Datanblatt anders 
auszusehen scheint.


Nachtrag, gerade mal nachgeschaut:
Der Transistor sitzt auf meiner VT100-Terminal-Platine V1.1. Und die 
funktioniert.

: Bearbeitet durch User
von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Arghh, ich glaube mein FT232RL hat einen Schuss ...
1
Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.)

Spannungen habe ich geprüft.

:(

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

W3ll S. schrieb:
> Arghh, ich glaube mein FT232RL hat einen Schuss ...
>
>
1
Unbekanntes USB-Gerät (Fehler beim Anfordern einer 
2
> Gerätebeschreibung.)
>
> Spannungen habe ich geprüft.
>
> :(

So ein Mist, war eine Brücke in der USB-Buchse, ganz hinten drin :(

Naja, ein FT232RL getötet und wieder was gelernt.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

W3ll S. schrieb:
> Naja, ein FT232RL getötet und wieder was gelernt.

Ist der wirklich defekt? An welcher Stelle war den die Brücke?

von Welle 🧐 S. (w3llschmidt)


Angehängte Dateien:

Lesenswert?

Joe G. schrieb:
> W3ll S. schrieb:
> Ist der wirklich defekt? An welcher Stelle war den die Brücke?

Nachdem ich den FT232RL ausgelötet hatte, war er es :D

Hätte ich sorgfältiger gesucht, hätte ich die Brücke in der USB Buchse 
gefunden. Die war ganz hinten drin.

: Bearbeitet durch User
von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Joe, ich hätte da nochmal ein paar Fragen :)

Liegt die 1.7 als Binary irgendwo rum?

Port 0 = USB / Port 1 = SER?

Kann man RX/TX im Sourcecode einfach tauschen? Ich hab nur 
Nullmodemkabel :D

.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die letzte Version sollte die V1.7.4 sein, anbei das Bin-File.
Die PIN-Konfiguration des IC kannst du in der VT100_VGA_color.spin 
ändern. Derzeit sie sie wie folgt aus: Wenn du Rx/Tx änderst, stimmt die 
Treiberansteuerung jedoch nicht mehr.

'pin configuration
  KEY_DATA    = 26                'Keyboard Data Pin
  KEY_CLK     = 27                'Keyboard CLK Pin
  VIDEO       = 16                'Video output Pin(s)
  TXD         = 30                'Serial Transmit
  RXD         = 31                'Serial Receive

Nachtrag:
Nochmals zum Schaltungsverständnis.
RxD# ist ja mit den Treiberausgängen des MAX3241 und des FT232 
verbunden. TxD# mit dessen Eingängen. Wenn du nun RxD und TxD im 
Prozessor tauscht (was möglich ist) sind jedoch dann Ausgänge auf 
Ausgänge und Eingänge auf Eingänge geschaltet. Das möchtest du sicher 
nicht. Bei verdrehten Kabel hilft also nur Kabel drehen ;-)

: Bearbeitet durch User
von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Danke Joe!

bei 1.7.3 will mein Keyboard nicht, es reagiert nicht auf F1.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das Menü wird nicht mehr mit F1 aufgerufen sondern mit
Ctrl+PrintScreen

Die aktuellen Quellen stehen übrigens hier:
https://www.mikrocontroller.net/svnbrowser/avr-cp-m/trunk/VT100/source/work/?sortdir=down

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Läuft, super!  Danke!

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Prima, Glückwunsch!
Dann viel Freude damit :-)

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Joe G. schrieb:
> Prima, Glückwunsch!
> Dann viel Freude damit :-)

Werd ich haben, ich mach gerade eine PDP11 für mich fertig, das kommt
das dran :-)

Übringens hab ich wieder viel gelernt, ich weiss nun auch was Errata ist 
:D

Nachdem ich 2 Stunden lang Lötfehler gesucht hatte :)

: Bearbeitet durch User
von Hans-Juergen K. (hjkit)


Lesenswert?

Bin neu im Forum und hab den Beitrag erst jetzt gefunden.
Sehr interessantes Projekt !!
Gibt es vielleicht noch eine Platine und/oder Chips ?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leider sind nun alle Platinen aufgebraucht, auch Propeller IC's sind 
alle vergeben. Bei Bedarf (5-10 Stück) könnte ich jedoch eine neue Serie 
auflegen und Änderungswünsche berücksichtigen.

von Retro N. (retronerd)


Lesenswert?

Joe G. schrieb:
> alle vergeben. Bei Bedarf (5-10 Stück) könnte ich jedoch eine neue Serie
> auflegen und Änderungswünsche berücksichtigen.

Sehr schönes Projekt! Leider ist der letzte Post schon ja nun schon 
etwas älter.

Hätte auch Interesse an 2 Platinen, weil ich gerade  sowas für meine 
Retro Computer suche. Vielleicht finden sich ja noch mehr Interessenten.

von w3llschmidt (Gast)


Lesenswert?

Also 2x, dann aber bitte mit USB Anschluss würde ich nehmen :)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

w3llschmidt schrieb:
> Also 2x, dann aber bitte mit USB Anschluss würde ich nehmen :)

USB ist doch immer mit dabei, die V24 muss ja nicht bestückt werden ;-)

Jetzt sind es ja schon 4 Platinen :-) Nochmal 2 und die Bestellung lohnt 
sich.

von Marcel A. (dl1ekm)


Lesenswert?

Zur Not nehme ich noch eine - für das NDR NKC Projekt :-)

Dort läuft übrigens inzwischen ein Vinculum - für die Z180-Stamp warte 
ich da ja noch sehnsüchtig drauf :-)

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das schlechte Wetter hat heute zur Überarbeitung des VT100-Terminals 
eingeladen ;-) Ich habe folgende Änderungen implementiert:

-  zweiten EEPROM umschaltbar über JP2
-  Audioausgang (JP3 und JP4)
-  programmierbar nur noch über USB

Der zweite EEPROM bietet die Möglichkeit zwei unterschiedliche 
Softwareversionen zu implementieren oder zu testen.
Werner [1] hat einige lustige Spiele (Tetris, Sokoban, usw.) für den 
Propeller geschrieben. Da die Hardware ähnlich aufgebaut ist, würden die 
Spiele auch auf dem Terminal laufen (zweiter EEPROM). Weiterhin erfolgt 
eine Soundausgabe über die Emulation eines AY-3-8910 Chip. Also habe ich 
den Soundausgang auch gleich mit auf die Leiterplatte gebracht. Leider 
bietet das Gehäuse keinen Platz für eine 3.5mm Audiobuchse, so dass ich 
einfach nur zwei Pins dafür vorgesehen habe.

Johannes (Retro Nerd) würde die Bestellung der Leiterplatte übernehmen.

[1] http://propeller.ws-nbg.de/main.php

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Joe G. schrieb:
> w3llschmidt schrieb:
>> Also 2x, dann aber bitte mit USB Anschluss würde ich nehmen :)
>
> USB ist doch immer mit dabei, die V24 muss ja nicht bestückt werden ;-)
> sich.

Hi Joe, ich meinte als Tastaturanschluss.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

W3ll S. schrieb:
> Hi Joe, ich meinte als Tastaturanschluss.

Verstehe, USB statt PS2-Tastatur. Dazu müßte ja ein USB-Host auf dem 
Propeller impelmentiert werden. Das habe ich jedoch nicht vorgesehen.

von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Ja, PS2 Keyboards gibts irgendwie nicht mehr so schöne.

Ist aber nicht kriegsentscheidend.

von Retro N. (retronerd)


Lesenswert?


von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Retro N. schrieb:
> Würde sowas für eine USB Tastatur funktionieren?

Nur, wenn das eine bilinguale Tastatur ist, also die Tastaturhardware 
selbst sowohl das USB- als auch das PS/2-Protokoll kennt. Bei 
entsprechenden Tastaturen (und Mäusen) liegt so ein Adapter allerdings 
bei; ist so ein Adapter nicht vorhanden, kann davon ausgegangen werden, 
daß die Maus/Tastatur nicht bilingual ist, und dann funktioniert so 
ein Adapter nicht.

von Welle 🧐 S. (w3llschmidt)


Lesenswert?


: Bearbeitet durch User
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.