Vesa Problem

DavidB3

Mitglied
Hallo,
ich versuche meinem Betriebssystem eine ordentliche Auflösung zuverpassen. Doch dabei bin ich auf ein kleines Problem gestoßen. Am Anfang hat alles ohne Probleme funktioniert, doch auf einmal leif garnichts mehr.
Ich hab die Pixel so in den Speicher geschrieben, wie es sonst auch bei VGA war, bloß mit einer anderen Adresse.
Code:
void SetPixel(unsigned int x, unsigned int y, UCHAR color)
{    
    VesaAdress[(y*SCREEN_WIDTH)+x] = color;
}
Doch ich versteh das Problem nicht, warum das aufeinmal nicht mehr funktioniert.
:confused::confused:
 
Hallo.

Ich versetehe nicht so ganz wie du das meinst. Hat es mit VESA-Grafik schon funktioniert oder funktioniert es nicht mehr seit du sie aktiviert ?

Im zweiten Fall würde ich nochmal Überprüfen ob du VESA auch richtig eingestellt hast.

Außerdem muss bei VESA doch immer der Bildschirm Aktualisiert werden oder?
Code:
inportb(0x3DA) & 0x08
Quelle: http://osdever.net/tutorials/GUI_tut.php <-- Ist ziemlich mittig.

Dein Code sieht erstmal richtig aus falls du im 8Bit Farbmodus bist.
Darüber muss der Pixel ja größer sein als deiner UCHAR Wert was dann zu ziemlich schrägen Ergebnissen kommt.

Gruß Anfänger.


PS:
Wenn du du Seiten nicht schon kennst, hier 2 Seiten zur OS programmierung. Beide haben auch ein Forum mit Spzeialisten zu diesem Gebiet.

http://lowlevel.brainsware.org/wiki/index.php/Hauptseite (Deutsch)

http://www.osdev.org/ (Englisch)
 
Zuletzt bearbeitet:
Es hat schon einmal alles funktioniert. Und ich denke, Vesa ist auch richtig eingestellt, es funktioniert ja in Assembler, bloß in C hat es irgendwie seine Mängel
 
Zurück