aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Ruppert <info@vruppert.de>2003-02-11 19:17:59 +0000
committerVolker Ruppert <info@vruppert.de>2003-02-11 19:17:59 +0000
commita0154ee941433e9c04ffc058cf54eaa513eaf34c (patch)
tree8b3e70fcf5b8bceb3601a5ff8e26e3ef21bd0f11
parent8231ecb7576d3a3f5f82fedb29624159b3714957 (diff)
downloadvgabios-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.c65
-rw-r--r--vbetables.h648
2 files changed, 31 insertions, 682 deletions
diff --git a/vbe.c b/vbe.c
index 4ef4031..6a9b7f0 100644
--- a/vbe.c
+++ b/vbe.c
@@ -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 **/