diff options
author | Volker Ruppert <info@vruppert.de> | 2003-02-11 19:17:59 +0000 |
---|---|---|
committer | Volker Ruppert <info@vruppert.de> | 2003-02-11 19:17:59 +0000 |
commit | a0154ee941433e9c04ffc058cf54eaa513eaf34c (patch) | |
tree | 8b3e70fcf5b8bceb3601a5ff8e26e3ef21bd0f11 | |
parent | 8231ecb7576d3a3f5f82fedb29624159b3714957 (diff) | |
download | vgabios-a0154ee941433e9c04ffc058cf54eaa513eaf34c.tar.gz |
- VBE mode search rewritten
* improved function mode_info_find_mode() is now used by the VBE functions
0x4F01 and 0x4F02
* removed all mode list entries with the LFB bit set. LFB detection is now
present in the function mode_info_find_mode()
-rw-r--r-- | vbe.c | 65 | ||||
-rw-r--r-- | vbetables.h | 648 |
2 files changed, 31 insertions, 682 deletions
@@ -246,8 +246,8 @@ static Bit16u dispi_get_virt_height() // ModeInfo helper function -static ModeInfoListItem* mode_info_find_mode(mode) - Bit16u mode; +static ModeInfoListItem* mode_info_find_mode(mode, using_lfb) + Bit16u mode; Boolean using_lfb; { ModeInfoListItem *cur_info=&mode_info_list; @@ -255,12 +255,25 @@ static ModeInfoListItem* mode_info_find_mode(mode) { if (cur_info->mode == mode) { - return cur_info; + if (!using_lfb) + { + return cur_info; + } + else if (cur_info->info.ModeAttributes & VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE) + { + return cur_info; + } + else + { + cur_info++; + } + } + else + { + cur_info++; } - - cur_info++; } - + return 0; } @@ -477,26 +490,20 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI; Bit16u result=0x0100; Bit16u ss=get_SS(); ModeInfoBlock info; - ModeInfoListItem *cur_info=&mode_info_list; - Boolean found=0; + ModeInfoListItem *cur_info; + Boolean using_lfb; #ifdef DEBUG printf("VBE vbe_biosfn_return_mode_information ES%x DI%x CX%x\n",ES,DI,CX); #endif - while ((cur_info->mode != VBE_VESA_MODE_END_OF_LIST) && (!found)) - { - if (cur_info->mode == CX) - { - found=1; - } - else - { - cur_info++; - } - } + using_lfb=((CX & VBE_MODE_LINEAR_FRAME_BUFFER) == VBE_MODE_LINEAR_FRAME_BUFFER); + + CX = (CX & 0x1ff); - if (found) + cur_info = mode_info_find_mode(CX, using_lfb, &cur_info); + + if (cur_info != 0) { #ifdef DEBUG printf("VBE found mode %x\n",CX); @@ -538,8 +545,7 @@ Bit16u *AX;Bit16u BX; Bit16u ES;Bit16u DI; { Bit16u ss = get_SS(); Bit16u result; - ModeInfoListItem *cur_info = &mode_info_list; - Boolean found = 0; + ModeInfoListItem *cur_info; Boolean using_lfb; using_lfb=((BX & VBE_MODE_LINEAR_FRAME_BUFFER) == VBE_MODE_LINEAR_FRAME_BUFFER); @@ -562,18 +568,9 @@ Bit16u *AX;Bit16u BX; Bit16u ES;Bit16u DI; result = 0x4f; } - while ((cur_info->mode != VBE_VESA_MODE_END_OF_LIST) && (!found)) - { - if (cur_info->mode == BX) - { - found = 1; - } - else - { - cur_info++; - } - } - if (found) + cur_info = mode_info_find_mode(BX, using_lfb, &cur_info); + + if (cur_info != 0) { #ifdef DEBUG printf("VBE found mode %x, setting:\n", BX); diff --git a/vbetables.h b/vbetables.h index d3c712e..2f2e5c5 100644 --- a/vbetables.h +++ b/vbetables.h @@ -159,75 +159,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_640X400X8 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | -#ifdef VBE_HAVE_LFB - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | -#endif - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | - VBE_WINDOW_ATTRIBUTE_WRITEABLE, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinASegment*/ VGAMEM_GRAPH, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 640, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 640, - /*Bit16u YResolution*/ 400, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 8, - /*Bit8u NumberOfBanks*/ 4, // 640x400/64kb == 4 - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 0, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 0, - /*Bit8u GreenFieldPosition*/ 0, - /*Bit8u BlueMaskSize*/ 0, - /*Bit8u BlueFieldPosition*/ 0, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above -#ifdef VBE_HAVE_LFB - /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, -#else - /*Bit32u PhysBasePtr*/ 0, -#endif - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 640, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 0, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 0, - /*Bit8u LinGreenFieldPosition*/ 0, - /*Bit8u LinBlueMaskSize*/ 0, - /*Bit8u LinBlueFieldPosition*/ 0, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_640X480X8, { /*typedef struct ModeInfoBlock @@ -297,75 +228,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_640X480X8 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | -#ifdef VBE_HAVE_LFB - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | -#endif - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | - VBE_WINDOW_ATTRIBUTE_WRITEABLE, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinASegment*/ VGAMEM_GRAPH, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 640, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 640, - /*Bit16u YResolution*/ 480, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 8, - /*Bit8u NumberOfBanks*/ 5, // 640x480/64kb == 5 - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 0, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 0, - /*Bit8u GreenFieldPosition*/ 0, - /*Bit8u BlueMaskSize*/ 0, - /*Bit8u BlueFieldPosition*/ 0, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above -#ifdef VBE_HAVE_LFB - /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, -#else - /*Bit32u PhysBasePtr*/ 0, -#endif - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 640, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 0, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 0, - /*Bit8u LinGreenFieldPosition*/ 0, - /*Bit8u LinBlueMaskSize*/ 0, - /*Bit8u LinBlueFieldPosition*/ 0, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_800X600X4, { /*typedef struct ModeInfoBlock @@ -498,75 +360,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_800X600X8 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | -#ifdef VBE_HAVE_LFB - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | -#endif - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | - VBE_WINDOW_ATTRIBUTE_WRITEABLE, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinASegment*/ VGAMEM_GRAPH, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 800, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 800, - /*Bit16u YResolution*/ 600, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 8, - /*Bit8u NumberOfBanks*/ 8, // 800x600/64kb == 8 - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 0, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 0, - /*Bit8u GreenFieldPosition*/ 0, - /*Bit8u BlueMaskSize*/ 0, - /*Bit8u BlueFieldPosition*/ 0, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above - #ifdef VBE_HAVE_LFB - /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, -#else - /*Bit32u PhysBasePtr*/ 0, -#endif - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 800, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 0, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 0, - /*Bit8u LinGreenFieldPosition*/ 0, - /*Bit8u LinBlueMaskSize*/ 0, - /*Bit8u LinBlueFieldPosition*/ 0, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_1024X768X8, { /*typedef struct ModeInfoBlock @@ -635,75 +428,6 @@ static ModeInfoListItem mode_info_list[]= } }, - { - VBE_VESA_MODE_1024X768X8 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | -#ifdef VBE_HAVE_LFB - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | -#endif - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ VBE_WINDOW_ATTRIBUTE_READABLE | - VBE_WINDOW_ATTRIBUTE_WRITEABLE, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinSize*/ VBE_DISPI_BANK_SIZE_KB, - /*Bit16u WinASegment*/ VGAMEM_GRAPH, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 1024, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 1024, - /*Bit16u YResolution*/ 768, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 8, - /*Bit8u NumberOfBanks*/ 12, // 1024x768/64kb == 12 - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 0, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 0, - /*Bit8u GreenFieldPosition*/ 0, - /*Bit8u BlueMaskSize*/ 0, - /*Bit8u BlueFieldPosition*/ 0, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above -#ifdef VBE_HAVE_LFB - /*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS, -#else - /*Bit32u PhysBasePtr*/ 0, -#endif - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 1024, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 0, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 0, - /*Bit8u LinGreenFieldPosition*/ 0, - /*Bit8u LinBlueMaskSize*/ 0, - /*Bit8u LinBlueFieldPosition*/ 0, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - #ifdef LIST_UNSUPPORTED_MODI { VBE_VESA_MODE_640X480X565, @@ -768,68 +492,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_640X480X565 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 640*2, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 640, - /*Bit16u YResolution*/ 480, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 16, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 5, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 6, - /*Bit8u GreenFieldPosition*/ 5, - /*Bit8u BlueMaskSize*/ 5, - /*Bit8u BlueFieldPosition*/ 11, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 640*2, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 5, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 6, - /*Bit8u LinGreenFieldPosition*/ 5, - /*Bit8u LinBlueMaskSize*/ 5, - /*Bit8u LinBlueFieldPosition*/ 11, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_800X600X565, { /*typedef struct ModeInfoBlock @@ -892,68 +554,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_800X600X565 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 800*2, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 800, - /*Bit16u YResolution*/ 600, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 16, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 5, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 6, - /*Bit8u GreenFieldPosition*/ 5, - /*Bit8u BlueMaskSize*/ 5, - /*Bit8u BlueFieldPosition*/ 11, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 800*2, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 5, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 6, - /*Bit8u LinGreenFieldPosition*/ 5, - /*Bit8u LinBlueMaskSize*/ 5, - /*Bit8u LinBlueFieldPosition*/ 11, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_640X480X888, { /*typedef struct ModeInfoBlock @@ -1016,68 +616,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_640X480X888 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 640*3, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 640, - /*Bit16u YResolution*/ 480, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 24, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 8, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 8, - /*Bit8u GreenFieldPosition*/ 8, - /*Bit8u BlueMaskSize*/ 8, - /*Bit8u BlueFieldPosition*/ 16, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 640*3, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 8, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 8, - /*Bit8u LinGreenFieldPosition*/ 8, - /*Bit8u LinBlueMaskSize*/ 8, - /*Bit8u LinBlueFieldPosition*/ 16, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_VESA_MODE_800X600X888, { /*typedef struct ModeInfoBlock @@ -1140,68 +678,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_VESA_MODE_800X600X888 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 800*3, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 800, - /*Bit16u YResolution*/ 600, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 24, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 8, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 8, - /*Bit8u GreenFieldPosition*/ 8, - /*Bit8u BlueMaskSize*/ 8, - /*Bit8u BlueFieldPosition*/ 16, - /*Bit8u RsvdMaskSize*/ 0, - /*Bit8u RsvdFieldPosition*/ 0, - /*Bit8u DirectColorModeInfo*/ 0, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 800*3, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 8, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 8, - /*Bit8u LinGreenFieldPosition*/ 8, - /*Bit8u LinBlueMaskSize*/ 8, - /*Bit8u LinBlueFieldPosition*/ 16, - /*Bit8u LinRsvdMaskSize*/ 0, - /*Bit8u LinRsvdFieldPosition*/ 0, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_OWN_MODE_800X600X8888, { /*typedef struct ModeInfoBlock @@ -1264,68 +740,6 @@ static ModeInfoListItem mode_info_list[]= }, { - VBE_OWN_MODE_800X600X8888 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 800*4, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 800, - /*Bit16u YResolution*/ 600, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 32, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 8, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 8, - /*Bit8u GreenFieldPosition*/ 8, - /*Bit8u BlueMaskSize*/ 8, - /*Bit8u BlueFieldPosition*/ 16, - /*Bit8u RsvdMaskSize*/ 8, - /*Bit8u RsvdFieldPosition*/ 24, - /*Bit8u DirectColorModeInfo*/ VBE_DIRECTCOLOR_RESERVED_BITS_AVAILABLE, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 800*4, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 8, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 8, - /*Bit8u LinGreenFieldPosition*/ 8, - /*Bit8u LinBlueMaskSize*/ 8, - /*Bit8u LinBlueFieldPosition*/ 16, - /*Bit8u LinRsvdMaskSize*/ 8, - /*Bit8u LinRsvdFieldPosition*/ 24, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, - - { VBE_OWN_MODE_1024X768X8888, { /*typedef struct ModeInfoBlock @@ -1386,68 +800,6 @@ static ModeInfoListItem mode_info_list[]= /*} ModeInfoBlock;*/ } }, - - { - VBE_OWN_MODE_1024X768X8888 + 0x4000, - { -/*typedef struct ModeInfoBlock -{*/ -// Mandatory information for all VBE revisions - /*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE | - VBE_MODE_ATTRIBUTE_COLOR_MODE | - VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE | - VBE_MODE_ATTRIBUTE_GRAPHICS_MODE, - /*Bit8u WinAAttributes*/ 0, - /*Bit8u WinBAttributes*/ 0, - /*Bit16u WinGranularity*/ 0, - /*Bit16u WinSize*/ 0, - /*Bit16u WinASegment*/ 0, - /*Bit16u WinBSegment*/ 0, - /*Bit32u WinFuncPtr*/ 0, - /*Bit16u BytesPerScanLine*/ 1024*4, -// Mandatory information for VBE 1.2 and above - /*Bit16u XResolution*/ 1024, - /*Bit16u YResolution*/ 800, - /*Bit8u XCharSize*/ 8, - /*Bit8u YCharSize*/ 16, - /*Bit8u NumberOfPlanes*/ 1, - /*Bit8u BitsPerPixel*/ 32, - /*Bit8u NumberOfBanks*/ 1, - /*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR, - /*Bit8u BankSize*/ 0, - /*Bit8u NumberOfImagePages*/ 3, - /*Bit8u Reserved_page*/ 0, -// Direct Color fields (required for direct/6 and YUV/7 memory models) - /*Bit8u RedMaskSize*/ 8, - /*Bit8u RedFieldPosition*/ 0, - /*Bit8u GreenMaskSize*/ 8, - /*Bit8u GreenFieldPosition*/ 8, - /*Bit8u BlueMaskSize*/ 8, - /*Bit8u BlueFieldPosition*/ 16, - /*Bit8u RsvdMaskSize*/ 8, - /*Bit8u RsvdFieldPosition*/ 24, - /*Bit8u DirectColorModeInfo*/ VBE_DIRECTCOLOR_RESERVED_BITS_AVAILABLE, -// Mandatory information for VBE 2.0 and above - /*Bit32u PhysBasePtr*/ VBE_PHYSICAL_BASE_ADDRESS, - /*Bit32u OffScreenMemOffset*/ 0, - /*Bit16u OffScreenMemSize*/ 0, -// Mandatory information for VBE 3.0 and above - /*Bit16u LinBytesPerScanLine*/ 1024*4, - /*Bit8u BnkNumberOfPages*/ 0, - /*Bit8u LinNumberOfPages*/ 0, - /*Bit8u LinRedMaskSize*/ 8, - /*Bit8u LinRedFieldPosition*/ 0, - /*Bit8u LinGreenMaskSize*/ 8, - /*Bit8u LinGreenFieldPosition*/ 8, - /*Bit8u LinBlueMaskSize*/ 8, - /*Bit8u LinBlueFieldPosition*/ 16, - /*Bit8u LinRsvdMaskSize*/ 8, - /*Bit8u LinRsvdFieldPosition*/ 24, - /*Bit32u MaxPixelClock*/ 0, -/*} ModeInfoBlock;*/ - } - }, #endif /** END OF THE LIST **/ |