Seite 1 von 2

Graphig mit deutschen Zeichensatz?

Verfasst: Do 27. Okt 2011, 20:45
von PIC18F2550
Hallo,

gibt es schon einen Tastatur und Graphigtreiber zur darstellung der deutschen Sonderzeichen?

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Do 27. Okt 2011, 21:54
von drohne235
Den Tastaturtreiber (vga-keyb.spin) hat oog hier aus dem Forum an das deutsche Layout angepasst und ist Bestandteil der Codebasis von Bellatrix im TriOS und dem Vorgänger SpinOS.

Ansonsten sind im Zeichensatz, welcher sich im ROM jedes Propellerchips befindet, auch deutsche Umlaute enthalten. Also können alle Texttreiber prinzipiell deutsche Umlaute darstellen, sofern sie den ROM-Font verwenden. Schau einfach in den TriOS-Code, der unterstützt kpl. deutsche Tastatur und Zeichenausgabe.

Als Negativbeispiel: Der HTEXT-Treiber (auch im TriOS) mit 128x64 Zeichen bei 1024x768 Pixeln verwendet einen eigenen Zeichensatz, welcher in einer DAT-Sektion im Quelltext definiert ist. Zwar gibt es in diesem Font normale und inverse Zeichen, aber keine deutschen Umlaute.

Bei den Grafiktreibern für den TV-Modus sieht es teilweise anders aus. Wenn ich mich recht entsinne setzt zum Beispiel das Graphics-Objekt von Parallax die Zeichen aus Vektorelementen zusammen und enthält ebenfalls keine Umlaute. Dafür sind diese Zeichen aber skalierbar. Einfach mal in den Quelltext anschauen oder mit dem Graphics-Demo experimentieren. Es gibt aber noch eine XOR-Version (glaube von DeSilva) ohne Doublepuffer, welche wahlweise den ROM-Font verwenden kann. Hab ich irgendwo inklusive Demo für den Hive im Archiv. Bei Bedarf melden.

Und natürlich gibt es auch für den TV-Modus einen kompatiblen reinen Texttreiber, welcher den ROM-Font verwendet und somit Umlaute darstellen kann.

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Do 27. Okt 2011, 23:12
von PIC18F2550
Hallo drohne235,
drohne235 hat geschrieben:Ansonsten sind im Zeichensatz, welcher sich im ROM jedes Propellerchips befindet, auch deutsche Umlaute enthalten. Also können alle Texttreiber prinzipiell deutsche Umlaute darstellen, sofern sie den ROM-Font verwenden. Schau einfach in den TriOS-Code, der unterstützt kpl. deutsche Tastatur und Zeichenausgabe.
"bel-keyb-de.spin" habe ich gefunden hier ist eine unterstützung für deutsch vorhanden.

nur bei den VGA-Treibern finde ich irgendwie nicht's passendes (128X64).

welcher VGA-Treiber unterstützt den ROM-Zeichensatz?

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 04:49
von E.N.D.E.
Mich würde mal interessieren, wie man selbst erstellte Zeichen benutzen bzw. die vorhandenen verändern kann.
Das wollt ich schon längst mal fragen.

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 09:44
von drohne235
nur bei den VGA-Treibern finde ich irgendwie nicht's passendes (128X64).
Das ist so. Für einen Treiber mit 128x64 Zeichen ist der Font im ROM zu groß, weshalb ihn diese Treiber nicht verwenden. Im Prinzip kann man sich die Zeichen ja auch selbst einbauen: einfach auf den inversen Teil des Zeichensatzes verzichten und dort die Umlaute einbauen.
Mich würde mal interessieren, wie man selbst erstellte Zeichen benutzen bzw. die vorhandenen verändern kann.
Das wollt ich schon längst mal fragen.
Das hängt natürlich stark vom verwendeten Treiber ab. Der HTEXT-Treiber hat seinen Font im Quelltext - einfach mal reinschauen. Allerdings sind dort die Zeichen auch sehr einfach aufgebaut und haben nur zwei Farben (Zeichenfarbe & Hintergrund).
Der Treiber von Parallax hat mehr Farben (Ich glaube es waren 4) ind ist etwas komplizierter. Im Propeller-Handbuch ist er beschrieben.
Als Beispiel könnte man im Spiel Boulder Dash (ist im TriOS) schauen, dort werden selbst definierte Zeichen bzw. Tiles für die Spielegrafik verwendet. Dazu ist auch sehr viel im Handbuch der Hydra-Konsole beschrieben - ein Link zum PDF ist hier auch im Forum.

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 10:18
von PIC18F2550
Hallo drohne235,
drohne235 hat geschrieben:einfach auf den inversen Teil des Zeichensatzes verzichten und dort die Umlaute einbauen
ist nich möglich der inverse teil wird nur logisch gedreht es existiert kein DAT bereich dafür.

Hatte heute Nacht eine Idee vieleicht kann mann den Treiber ein 2.mal starten mit anderen Zeichensatz und beim 1. die anzeige bei zeichen >127 unterdrücken(NOP) und beim 2. dafür ab 128 einschalten?
Kostet natürlich 2 weitere COG'S

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 12:10
von kuroneko
Die code box erlaubt keine Farbaenderung, deshalb benutze ich Kommentare. Die Aenderung erlaubt 256 Zeichen, allerdings geht die Invertierung floeten und Du musst die zweite Haelfte des Zeichensatzes selbst gestalten (im Moment ist es ein 3x3 Karomuster).

Code: Alles auswählen

fourline                mov     font_ptr,font_third     'get address of appropriate font section
{MTRX: 7 -> 8}          shl     font_ptr,#8+2
                        add     font_ptr,font_base
                        
                        movd    :pixa,#scanbuff-1       'reset scanbuff address (pre-decremented)
                        movd    :pixb,#scanbuff-1
                        
                        mov     y,#2                    'must build scanbuff in two sections because
                        mov     vscl,vscl_line2x        '..pixel counter is limited to twelve bits

:halfrow                waitvid underscore,#0           'output lows to let other COG drive VGA pins
                        mov     x,#cols/2               '..for 2 scan lines, ready for half a row
                        
:column                 rdbyte  z,screen_ptr            'get character from screen memory
{MTRX: 7 -> 8}          ror     z,#8                    'get inverse flag into bit 0, keep chr high
{MTRX: 7 -> 8}          shr     z,#32-8-2       wc      'get inverse flag into c, chr into bits 9..2
                        add     z,font_ptr              'add font section address to point to 8*4 pixels
Zeichensatz:

Code: Alles auswählen

long  $00000000,$00000000,$00000000,$18187000,$18181800,$18180E00,$73DBCE00,$18180000

long  $C3C3C3C3[128] ' 128-255

long  $080C7E7E,$10307E7E,$18181818,$7E181818,$81818181,$99BDBDBD,$81818181,$E7BD99BD  'middle
...
long  $1C1C3663,$66666666,$0C30627E,$180C060C,$18181818,$18306030,$00000000,$0018187E

long  $3C3C3C3C[128] ' 128-255

long  $00000000,$00000000,$00001818,$0000183C,$00003C42,$00003C42,$0000FF81,$0000FFC3  'bottom
...
long  $00006336,$1C30607C,$00007E46,$00007018,$00001818,$00000E18,$00000000,$0000007E

long  $C3C3C3C3[128] ' 128-255

{{

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 12:50
von PIC18F2550
Danke,

werd ich mal heut Abend testen.

? Reicht der Platz im COG dafür noch?

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 12:56
von kuroneko
PIC18F2550 hat geschrieben:Reicht der Platz im COG dafür noch?
Der Zeichensatz ist nicht im cog gespeichert. Die (hub) Adresse des Zeichensatzes wird in der start method dem PASM Treiber uebermittelt (font_base := @font).

Re: Graphig mit deutschen Zeichensatz?

Verfasst: Fr 28. Okt 2011, 13:07
von PIC18F2550
Danke das ist Super,

ich habe mit dem PASM noch nicht's gemacht werd mich aber wohl darauf einstellen das auch noch zu lernen. :oops: