Hey, ich habe mal wieder ein Problem
Um eine Standardauflösung für mein OS zu suchen wollte ich die EDID Infos aus dem BIOS lesen.
VESA an sich funktioniert gut, man kann alle Auflösungen auswählen und dort Bitmaps zeichnen lassen.
Das Problem ist, dass nach dem EDID call das Register AH 1 ist und AL nicht 0x4F ist (also: not supported)
Hier mein code (credits für den mode switcher gehen an Napalm)
memset((void*)®s, 0, sizeof(regs16_t));
regs.ax = 0x4F15;
regs.bx = 1;
regs.es = 0;
regs.di = 0x1000;
int32(0x10, ®s);
printf("AX: %X | ES:DI: %X:%X\n", regs.ax, regs.es, regs.di);
Getestet habe ich den Code auf QEMU 1,2 und auf VirtualBox, bei allen das selbe Ergebnis
Liegt es vielleicht an den VMs?
Vielen Dank im Vorraus!