In den VGA-Modus wechseln
-
jaja, sehr lustig,
da steht ja wohl kaum was er machen will, wenns nur um grafische ausgabe geht,
dann ist das ja wohl die einfachste und portabelste lösung ...
-
Ich denke nicht, dass eine Portierung von QT für sein OS existiert
-
ja, hab das mit OS nicht gesehen, passiert ja auch nicht alle tage das jemand mit so einer frage kommt
-
QT soll irgendwann mal drauf sitzen, aber primär soll's erstmal darum gehen, die Grafikkarte überhaupt anzusteuern.
Niemand 'ne Idee?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
unter google, folgende Begriffe:
"vga programming"
"svga programming"
"vesa programming"
"graphic programming"
-
VESA funktioniert AFAIR seit Version 2.0 auch im Protected mode - ab 3.0, der schon eine Weile bei allen Grakas Standard sein sollte, eigentlich auch komplett vom PM aus - sollte also auch komplett in C++ zu machen sein. Dazu mal nach der VBE 3.0 reference suchen.
Ansonsten implementiert halt in eurem OS-Kern eine Schnittstelle zum Aufrufen von RealMode-Ints. Da kommt ihr um eine Handvoll Zeilen Assembler nicht herum, aber irgendwo werdet ihr ja wohl zumindest zum Wechsel in den PM eh ein paar Zeilen wenigstens Inline-Asm verwendet haben, oder habt ihr das komplett ausgelagert?
-
Treb schrieb:
also entweder du fragst im assembler forum, aber ich denke
das kannst du auch vergessen13h war mal, in DOS-Zeiten, ein aufruf ans bios um den grafikmodus zu wechseln, glaube kaum das das heute noch funktioniert
Nicht nur in DOS-Zeiten. Du unterschaetzt gehoerig, wie rueckwaertskompatibel PCs sind. Wenn schon nicht VESA, VGA mit den bekannten BIOS-Funktionen wirst du in wirklich jedem PC mit Standard-Graka finden. Auch heute noch.
-
Ich hatte damals ein ähnliches Problem mit meinem Hobby OS.
Zufällig habe ich ein Stück Code in C (ohne ASM) gefunden (public domain),
das den Wechsel in den Mode 13h direkt aus dem protected mode ermöglicht.Scheinbar ist das möglich, wenn man die Register direkt setzt,
anstatt dies vom BIOS erledigen zu lassen. Jedenfalls läuft es in qemu.Ich kann dir einen kurzen Beispielcode zusenden (kurze E-Mail),
falls das nicht den Bedingungen des Projekts widerspricht.Ansonsten könnte noch das hier helfen:
http://www.osdever.net/FreeVGA/home.htmGrüße
-
Hallo,
an welchem Punkt setzt denn dein OS an? Ich gehe mal davon aus, dass es von einem bestehenden Bootloader gestartet wird, wenn du kein Assembler verwenden darfst und dich bereits im Protected Mode befindest.
In diesem Fall könntest du GRUB als Bootloader verwenden, dort sind bereits die Funktionen für das Wechseln in einen VESA-Grafikmodus enthalten (vbematch/vbeset). Verwendest du zusätzlich noch diesen Patch, übergibt GRUB deinem OS relevante Informationen zum VESA-Modus in einer Multiboot-Struktur, sofern du ihm auch einen Multiboot-Header gibst.