Hallo,
hab jetzt mal die Vesa-Infos nach 0x30000 geladen (die aufteilung wie die meisten: Kernel 0x10000 = kernel,...) nur hab ich ein kleines Prob:
Das sollte doch funzen und einen teil des Bildschirms (fast eine Zeile) weiß einfärben oder? (1024x768x24) hat da jemand nen tipp? (es bleibt halt einfach schwarz)
hab jetzt mal die Vesa-Infos nach 0x30000 geladen (die aufteilung wie die meisten: Kernel 0x10000 = kernel,...) nur hab ich ein kleines Prob:
Code: [Auswählen]
typedef struct VesaModeInfoBlock
{
unsigned int VbeModeModeAttributes;
unsigned char VbeModeWinAAttributes;
unsigned char VbeModeWinBAttributes;
unsigned int VbeModeWinGranularity;
unsigned int VbeModeWinSize;
unsigned int VbeModeWinASegment;
unsigned int VbeModeWinBSegment;
unsigned long VbeModeWinFuncPtr;
unsigned int VbeModeBytesPerScanLine;
unsigned int VbeModeXResolution;
unsigned int VbeModeYResolution;
unsigned char VbeModeXCharSize;
unsigned char VbeModeYCharSize;
unsigned char VbeModeNumberOfPlanes;
unsigned char VbeModeBitsPerPixel;
unsigned char VbeModeNumberOfBanks;
unsigned char VbeModeMemoryModel;
unsigned char VbeModeBankSize;
unsigned char VbeModeNumberOfImagePages;
unsigned char VbeModeReserved_page;
unsigned char VbeModeRedMaskSize;
unsigned char VbeModeRedMaskPos;
unsigned char VbeModeGreenMaskSize;
unsigned char VbeModeGreenMaskPos;
unsigned char VbeModeBlueMaskSize;
unsigned char VbeModeBlueMaskPos;
unsigned char VbeModeReservedMaskSize;
unsigned char VbeModeReservedMaskPos;
unsigned char VbeModeDirectColorModeInfo;
unsigned long VbeModePhysBasePtr;
unsigned long VbeModeOffScreenMemOffset;
unsigned int VbeModeOffScreenMemSize;
unsigned int VbeModeLinBytesPerScanLine;
unsigned char VbeModeBnkNumberOfPages;
unsigned char VbeModeLinNumberOfPages;
unsigned char VbeModeLinRedMaskSize;
unsigned char VbeModeLinRedFieldPos;
unsigned char VbeModeLinGreenMaskSize;
unsigned char VbeModeLinGreenFieldPos;
unsigned char VbeModeLinBlueMaskSize;
unsigned char VbeModeLinBlueFieldPos;
unsigned char VbeModeLinRsvdMaskSize;
unsigned char VbeModeLinRsvdFieldPos;
unsigned long VbeModeMaxPixelClock;
unsigned long VbeModeReserved[ 190 ];
}VesaModeInfoBlock;
void InitVideo()
{
VesaModeInfoBlock *VbeModeInfoBlock = ( VesaModeInfoBlock * ) 0x30000;
unsigned char *VideoMemory = ( unsigned char * ) VbeModeInfoBlock->VbeModePhysBasePtr;
int i;
for( i = 0; i < 3000; i ++)
{
VideoMemory[ i ] = 0xff;
}
}
Das sollte doch funzen und einen teil des Bildschirms (fast eine Zeile) weiß einfärben oder? (1024x768x24) hat da jemand nen tipp? (es bleibt halt einfach schwarz)

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert