diff options
author | Christophe Bothamy <cbothamy@users.sourceforge.net> | 2002-08-23 20:58:39 +0000 |
---|---|---|
committer | Christophe Bothamy <cbothamy@users.sourceforge.net> | 2002-08-23 20:58:39 +0000 |
commit | 70ba8d55b2edf333dc8261e3e795a77bd2aa5cd5 (patch) | |
tree | f4ea38a55e95520e59cecc25dc24ad1a43d18ba5 | |
parent | da2581f009c972bd561a9000e601084e38024c40 (diff) | |
download | vgabios-70ba8d55b2edf333dc8261e3e795a77bd2aa5cd5.tar.gz |
- added lfb-mode numbers (patch from mathis)
-rw-r--r-- | vbe.c | 10 | ||||
-rw-r--r-- | vbetables.h | 718 |
2 files changed, 693 insertions, 35 deletions
@@ -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 |