Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: thetrue am 21. July 2006, 16:05

Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: thetrue am 21. July 2006, 16:05
moin,

also unter PMode gibt mal ja so etwas auf den Bildschirm aus ...


mov 0xB8000, byte 'A'

aber wie kann man den Ü, Ä, Ö und ß ausgeben??? also die Umlauten ...
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: Osbios am 21. July 2006, 17:37
Also, der Textmodus benutzt standardmässig ASCII. Du musst also nur in eine ASCII-Tabelle schauen welchen Wert das Zeichen hat.

Wenn du in deinem Editor Umlaute benutzt und bei der Textausgabe andere Zeichen herauskommen dann benutzt dieser einen anderen Zeichensatz.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: maumo am 21. July 2006, 18:28
das dürte aber nicht passieren, weil der assembler ja alles in ASCII zeichen umwandelt, glaub ich jedenfalls
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: kevin am 21. July 2006, 20:10
Der Assembler macht damit gar nichts, sondern nimmt es einfach so, wie es da im Code steht (und somit, wie es im Editor gespeichert wurde). Solange man sich auf ASCII (also 7 Bit) beschränkt, dürfte es sowieso keine Probleme geben, aber da sind dummerweise keine Umlaute enthalten.

Ich bin mir nicht sicher, ob standardmäßig ein Zeichensatz benutzt wird, in dem es Umlaute gibt, da müßtest du einfach mal alle Zeichen ausgeben lassen und durchschauen. Wenn ja, Glückwunsch, du mußt einfach den entsprechenden Wert nehmen.

Wenn es dort keinen Umlaut gibt, dürfte dein Problem im wesentlichen darin bestehen, der Grafikkarte Bitmaps für einen anderen Zeichensatz unterzujubeln. Wie man das genau macht, überlasse ich dann aber wieder dir, denn das weiß ich momentan selbst auch nicht.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: thetrue am 21. July 2006, 20:23
nja, erst will ich ohne vesa etc auskommen, erst nur textmode ...
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: kevin am 21. July 2006, 20:28
Von VESA redet hier auch niemand. Trotzdem willst du irgendwie einen Text anzeigen. Und daher wird jedem Zeichen eine Bitmap zugeordnet, die dann angezeigt wird, wenn an der entsprechenden Stelle das Zeichen steht. Wo sollten die Buchstaben sonst herkommen?
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: thetrue am 21. July 2006, 20:57
nee, ich will es nur mit dem VideoRam die Umlauten ausgeben ...
also ab 0xB8000 ...
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: bluecode am 21. July 2006, 21:08
davon redet taljeth auch. Man kann den font des textmodes anpassen. Und dass macht man imho indem man nem bios interrupt ne bitmap an die Hand gibt. Imho gibts aber beim textmode auch so die umlaute, aber ich weiß auch nicht welchen code die haben. Auf jeden Fall nicht den den ein gcc/g++ den umlauten gibt, dass hab ich auch schon versucht.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: kevin am 21. July 2006, 23:06
Deswegen habe ich als allererstes gesagt, er soll sich mal eine Tabelle ausgeben lassen, um zu schauen, ob es die Umlaute nicht doch irgendwo gibt. Mit gcc hat das übrigens herzlich wenig zu tun, der nimmt die Datei eben so, wie sie kommt. Das hängt allein vom Texteditor ab, mit dem du den Umlaut eingefügt hast.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: __OS_coder am 22. July 2006, 02:17
Aaaaalso:
Der erweiterte ASCII-Zeichensatz hat die Umlaute und die kann man auch im Textmode 0x3 ausgeben... Benutze einfach die folgenden Codes:


Ä 0x8E   ä 0x84
Ö 0x99   ö 0x94
Ü 0x9A   ü 0x81


In NASM sieht das dann so aus:

msg0 db "Ich bin ein String mit den Umlauten:", 0x84, 0x94, 0x81,"." 0


Das würde dann, wenn du's ausgibst, so aussehen:

Ich bin ein String mit den Umlauten äöü.


Ich hoffe das hat dir geholfen...[/code]
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: Osbios am 22. July 2006, 11:01
Die Frage ist nur ob es eine Standard Erweiterung ist, die auf allen PCs benutzt wird oder ob diese je nach Land variiert.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: __OS_coder am 22. July 2006, 12:47
Hmm... das weiß ich leider nicht genau... es ist kein Standard... der Standard umfasst nur 7bit, glaube ich... allerdings wird des auf einigermaßen jedem PC laufen... denke ich... wenn dir des net sicher genug ist, und du wirklich möchtest, dass es auf JEDEM PC 100%ig läuft.. dann nimm halt Unicode XD Aber dafür kannste den Textmodus 3 dann vergessen...
Eine andere möglichkeit ist, du stellst sicher, dass die VGA 8x16 Fonts an diesen 6 Codepositionen ( 0x81, 0x84, 0x8E, 0x94, 0x99, 0x9A ) wirklich den Bitmaps für die Umlaute entsprechen... wenn nicht überschreibst du sie halt mit deinen eigenen bitmaps für die umlaute
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: thetrue am 22. July 2006, 13:14
unicode ist gut, doch wie kann man es benutzen???
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: bluecode am 22. July 2006, 13:33
im textmode garnicht. Erst wenn du deine eigene gui machst und deine eigenen Fonts renderst, dann macht unicode sehr viel Sinn. Aber das ist für dich noch ein __sehr__ __sehr__ langer weg. Also find dich vorerst mal damit ab, dass du zwar die Umlaute verwenden kannst, aber evtl. nur in Europa oder deutschsprachigen Ländern.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: thetrue am 22. July 2006, 13:42
hmm, ok ^^
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: __OS_coder am 22. July 2006, 21:19
Wie ich schon sagte du könntest die Umlaute auf ALLEN rechnern benutzen, wenn du vorher die Bitmaps für die Umlaute im VGA Font überprüfst und gegebenenfalls mit deinen eigenen Bitmaps überschreibst, wenn diese net den Umlauten entsprechen.
Titel: Text Ausgabe unter PMode ...(umlauten)
Beitrag von: bitmaster am 24. July 2006, 10:56
OK, hier sollte aber noch erwähnt werden das dies nichts mit dem PM zu tun hat. Im RM ist das genau das selbe mit den ASCII-Zeichen. Ja, ich weiß das dies hier sowieso jeder weiß. Aber der Vollständigkeit her. ^^

bitmaster