aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Bothamy <cbothamy@users.sourceforge.net>2002-08-23 20:58:39 +0000
committerChristophe Bothamy <cbothamy@users.sourceforge.net>2002-08-23 20:58:39 +0000
commit70ba8d55b2edf333dc8261e3e795a77bd2aa5cd5 (patch)
treef4ea38a55e95520e59cecc25dc24ad1a43d18ba5
parentda2581f009c972bd561a9000e601084e38024c40 (diff)
downloadvgabios-70ba8d55b2edf333dc8261e3e795a77bd2aa5cd5.tar.gz
- added lfb-mode numbers (patch from mathis)
-rw-r--r--vbe.c10
-rw-r--r--vbetables.h718
2 files changed, 693 insertions, 35 deletions
diff --git a/vbe.c b/vbe.c
index 962ee31..b4a7ff2 100644
--- a/vbe.c
+++ b/vbe.c
@@ -105,18 +105,28 @@ _vbebios_mode_list:
#ifdef LIST_UNSUPPORTED_MODI
.word VBE_VESA_MODE_640X480X565
+.word VBE_VESA_MODE_640X480X565 + 0x4000
.word VBE_VESA_MODE_800X600X565
+.word VBE_VESA_MODE_800X600X565 + 0x4000
.word VBE_VESA_MODE_640X480X888
+.word VBE_VESA_MODE_640X480X888 + 0x4000
.word VBE_VESA_MODE_800X600X888
+.word VBE_VESA_MODE_800X600X888 + 0x4000
.word VBE_OWN_MODE_800X600X8888
+.word VBE_OWN_MODE_800X600X8888 + 0x4000
.word VBE_OWN_MODE_1024X768X8888
+.word VBE_OWN_MODE_1024X768X8888 + 0x4000
#endif
.word VBE_OWN_MODE_320X200X8
.word VBE_VESA_MODE_640X400X8
+.word VBE_VESA_MODE_640X400X8 + 0x4000
.word VBE_VESA_MODE_640X480X8
+.word VBE_VESA_MODE_640X480X8 + 0x4000
.word VBE_VESA_MODE_800X600X8
+.word VBE_VESA_MODE_800X600X8 + 0x4000
.word VBE_VESA_MODE_1024X768X8
+.word VBE_VESA_MODE_1024X768X8 + 0x4000
.word VBE_VESA_MODE_END_OF_LIST
#endif
diff --git a/vbetables.h b/vbetables.h
index 34dbcaf..ae208ad 100644
--- a/vbetables.h
+++ b/vbetables.h
@@ -2,10 +2,10 @@
#define vbetables_h_included
/* vbetables.h
-
+
This file contains a static mode information list containing all
bochs/plex86 "supported" VBE modi and their 'settings'.
-
+
*/
typedef struct ModeInfoListItem
@@ -28,8 +28,8 @@ static ModeInfoListItem mode_info_list[]=
// 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_COLOR_MODE |
+#ifdef VBE_HAVE_LFB
VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE |
#endif
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
@@ -52,7 +52,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 0,
@@ -65,11 +65,11 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
-#ifdef VBE_HAVE_LFB
+#ifdef VBE_HAVE_LFB
/*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS,
#else
/*Bit32u PhysBasePtr*/ 0,
-#endif
+#endif
/*Bit32u OffScreenMemOffset*/ 0,
/*Bit16u OffScreenMemSize*/ 0,
// Mandatory information for VBE 3.0 and above
@@ -88,7 +88,7 @@ static ModeInfoListItem mode_info_list[]=
/*} ModeInfoBlock;*/
}
},
-
+
{
VBE_VESA_MODE_640X400X8,
{
@@ -98,7 +98,76 @@ static ModeInfoListItem mode_info_list[]=
/*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE |
VBE_MODE_ATTRIBUTE_COLOR_MODE |
-#ifdef VBE_HAVE_LFB
+#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_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,
@@ -121,7 +190,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 4, // 640x400/64kb == 4
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 0,
@@ -134,7 +203,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
-#ifdef VBE_HAVE_LFB
+#ifdef VBE_HAVE_LFB
/*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS,
#else
/*Bit32u PhysBasePtr*/ 0,
@@ -167,7 +236,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE |
VBE_MODE_ATTRIBUTE_COLOR_MODE |
-#ifdef VBE_HAVE_LFB
+#ifdef VBE_HAVE_LFB
VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE |
#endif
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
@@ -190,7 +259,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 5, // 640x480/64kb == 5
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 0,
@@ -203,7 +272,76 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
-#ifdef VBE_HAVE_LFB
+#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 + 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,
@@ -236,7 +374,76 @@ static ModeInfoListItem mode_info_list[]=
/*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE |
VBE_MODE_ATTRIBUTE_COLOR_MODE |
-#ifdef VBE_HAVE_LFB
+#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_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,
@@ -259,7 +466,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 8, // 800x600/64kb == 8
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 0,
@@ -272,7 +479,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
- #ifdef VBE_HAVE_LFB
+ #ifdef VBE_HAVE_LFB
/*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS,
#else
/*Bit32u PhysBasePtr*/ 0,
@@ -305,7 +512,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit16u ModeAttributes*/ VBE_MODE_ATTRIBUTE_SUPPORTED |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE |
VBE_MODE_ATTRIBUTE_COLOR_MODE |
-#ifdef VBE_HAVE_LFB
+#ifdef VBE_HAVE_LFB
VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE |
#endif
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
@@ -328,7 +535,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 12, // 1024x768/64kb == 12
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_PACKED_PIXEL,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 0,
@@ -341,7 +548,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u RsvdFieldPosition*/ 0,
/*Bit8u DirectColorModeInfo*/ 0,
// Mandatory information for VBE 2.0 and above
-#ifdef VBE_HAVE_LFB
+#ifdef VBE_HAVE_LFB
/*Bit32u PhysBasePtr*/ VBE_DISPI_LFB_PHYSICAL_ADDRESS,
#else
/*Bit32u PhysBasePtr*/ 0,
@@ -364,7 +571,76 @@ static ModeInfoListItem mode_info_list[]=
/*} ModeInfoBlock;*/
}
},
-
+
+ {
+ 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,
@@ -375,7 +651,69 @@ static ModeInfoListItem mode_info_list[]=
/*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_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_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,
@@ -395,7 +733,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 5,
@@ -437,7 +775,69 @@ static ModeInfoListItem mode_info_list[]=
/*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_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_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,
@@ -457,7 +857,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 5,
@@ -499,7 +899,7 @@ static ModeInfoListItem mode_info_list[]=
/*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_LINEAR_FRAME_BUFFER_MODE |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
/*Bit8u WinAAttributes*/ 0,
/*Bit8u WinBAttributes*/ 0,
@@ -519,7 +919,69 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*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_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,
@@ -561,7 +1023,69 @@ static ModeInfoListItem mode_info_list[]=
/*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_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_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,
@@ -581,7 +1105,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 8,
@@ -623,7 +1147,7 @@ static ModeInfoListItem mode_info_list[]=
/*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_LINEAR_FRAME_BUFFER_MODE |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
/*Bit8u WinAAttributes*/ 0,
/*Bit8u WinBAttributes*/ 0,
@@ -643,7 +1167,69 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*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_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,
@@ -685,7 +1271,7 @@ static ModeInfoListItem mode_info_list[]=
/*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_LINEAR_FRAME_BUFFER_MODE |
VBE_MODE_ATTRIBUTE_GRAPHICS_MODE,
/*Bit8u WinAAttributes*/ 0,
/*Bit8u WinBAttributes*/ 0,
@@ -705,7 +1291,7 @@ static ModeInfoListItem mode_info_list[]=
/*Bit8u NumberOfBanks*/ 1,
/*Bit8u MemoryModel*/ VBE_MEMORYMODEL_DIRECT_COLOR,
/*Bit8u BankSize*/ 0,
- /*Bit8u NumberOfImagePages*/ 3,
+ /*Bit8u NumberOfImagePages*/ 3,
/*Bit8u Reserved_page*/ 0,
// Direct Color fields (required for direct/6 and YUV/7 memory models)
/*Bit8u RedMaskSize*/ 8,
@@ -737,7 +1323,69 @@ static ModeInfoListItem mode_info_list[]=
/*} ModeInfoBlock;*/
}
},
-#endif
+
+ {
+ 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 **/
{
@@ -748,4 +1396,4 @@ static ModeInfoListItem mode_info_list[]=
}
};
-#endif \ No newline at end of file
+#endif