@@ -115,10 +115,9 @@ private enum VbeModeFlags : ushort {
115115 /// </summary>
116116 private static class VbeConstants {
117117 /// <summary>
118- /// "The current VESA version number is 1.2."
119- /// VBE 1.0 version number in BCD format (major.minor = 0x0100 = 1.0).
118+ /// VBE 1.2 version number in BCD format (major.minor = 0x0102 = 1.2).
120119 /// </summary>
121- public const ushort Version10 = 0x0100 ;
120+ public const ushort Version12 = 0x0102 ;
122121
123122 /// <summary>
124123 /// "D0 = DAC is switchable (0 = DAC is fixed width, with 6-bits per primary color,
@@ -156,13 +155,101 @@ private static class VbeConstants {
156155 /// </summary>
157156 public const ushort ModeListTerminator = 0xFFFF ;
158157
158+ /// <summary>
159+ /// VESA mode 100h: 640x400, 256 colors.
160+ /// </summary>
161+ public const ushort VesaMode640x400x256 = 0x100 ;
162+ /// <summary>
163+ /// VESA mode 101h: 640x480, 256 colors.
164+ /// </summary>
165+ public const ushort VesaMode640x480x256 = 0x101 ;
159166 /// <summary>
160167 /// "To date, VESA has defined a 7-bit video mode number, 6Ah, for the 800x600,
161168 /// 16-color, 4-plane graphics mode. The corresponding 15-bit mode number for this
162169 /// mode is 102h."
163170 /// VESA mode 102h: 800x600, 16 colors (4-plane planar).
164171 /// </summary>
165172 public const ushort VesaMode800x600x16 = 0x102 ;
173+ /// <summary>
174+ /// VESA mode 103h: 800x600, 256 colors.
175+ /// </summary>
176+ public const ushort VesaMode800x600x256 = 0x103 ;
177+ /// <summary>
178+ /// VESA mode 104h: 1024x768, 16 colors (4-plane planar).
179+ /// </summary>
180+ public const ushort VesaMode1024x768x16 = 0x104 ;
181+ /// <summary>
182+ /// VESA mode 105h: 1024x768, 256 colors.
183+ /// </summary>
184+ public const ushort VesaMode1024x768x256 = 0x105 ;
185+ /// <summary>
186+ /// VESA mode 106h: 1280x1024, 16 colors (4-plane planar).
187+ /// </summary>
188+ public const ushort VesaMode1280x1024x16 = 0x106 ;
189+ /// <summary>
190+ /// VESA mode 107h: 1280x1024, 256 colors.
191+ /// </summary>
192+ public const ushort VesaMode1280x1024x256 = 0x107 ;
193+ /// <summary>
194+ /// VESA mode 10Dh: 320x200, 15-bit (RGB 5:5:5).
195+ /// </summary>
196+ public const ushort VesaMode320x200x15 = 0x10D ;
197+ /// <summary>
198+ /// VESA mode 10Eh: 320x200, 16-bit (RGB 5:6:5).
199+ /// </summary>
200+ public const ushort VesaMode320x200x16 = 0x10E ;
201+ /// <summary>
202+ /// VESA mode 10Fh: 320x200, 24-bit.
203+ /// </summary>
204+ public const ushort VesaMode320x200x24 = 0x10F ;
205+ /// <summary>
206+ /// VESA mode 110h: 640x480, 15-bit (RGB 5:5:5).
207+ /// </summary>
208+ public const ushort VesaMode640x480x15 = 0x110 ;
209+ /// <summary>
210+ /// VESA mode 111h: 640x480, 16-bit (RGB 5:6:5).
211+ /// </summary>
212+ public const ushort VesaMode640x480x16 = 0x111 ;
213+ /// <summary>
214+ /// VESA mode 112h: 640x480, 24-bit.
215+ /// </summary>
216+ public const ushort VesaMode640x480x24 = 0x112 ;
217+ /// <summary>
218+ /// VESA mode 113h: 800x600, 15-bit (RGB 5:5:5).
219+ /// </summary>
220+ public const ushort VesaMode800x600x15 = 0x113 ;
221+ /// <summary>
222+ /// VESA mode 114h: 800x600, 16-bit (RGB 5:6:5).
223+ /// </summary>
224+ public const ushort VesaMode800x600x16Bit = 0x114 ;
225+ /// <summary>
226+ /// VESA mode 115h: 800x600, 24-bit.
227+ /// </summary>
228+ public const ushort VesaMode800x600x24 = 0x115 ;
229+ /// <summary>
230+ /// VESA mode 116h: 1024x768, 15-bit (RGB 5:5:5).
231+ /// </summary>
232+ public const ushort VesaMode1024x768x15 = 0x116 ;
233+ /// <summary>
234+ /// VESA mode 117h: 1024x768, 16-bit (RGB 5:6:5).
235+ /// </summary>
236+ public const ushort VesaMode1024x768x16Bit = 0x117 ;
237+ /// <summary>
238+ /// VESA mode 118h: 1024x768, 24-bit.
239+ /// </summary>
240+ public const ushort VesaMode1024x768x24 = 0x118 ;
241+ /// <summary>
242+ /// VESA mode 119h: 1280x1024, 15-bit (RGB 5:5:5).
243+ /// </summary>
244+ public const ushort VesaMode1280x1024x15 = 0x119 ;
245+ /// <summary>
246+ /// VESA mode 11Ah: 1280x1024, 16-bit (RGB 5:6:5).
247+ /// </summary>
248+ public const ushort VesaMode1280x1024x16Bit = 0x11A ;
249+ /// <summary>
250+ /// VESA mode 11Bh: 1280x1024, 24-bit.
251+ /// </summary>
252+ public const ushort VesaMode1280x1024x24 = 0x11B ;
166253
167254 /// <summary>
168255 /// Internal VGA mode 6Ah corresponding to VESA mode 102h (800x600x16).
@@ -201,7 +288,7 @@ private static class VbeModeInfoConstants {
201288 /// </summary>
202289 public const byte CharWidth = 8 ;
203290 /// <summary>
204- /// "The YCharSellSize ...size of the character cell in pixels" = 16
291+ /// "The YCharCellSize ...size of the character cell in pixels" = 16
205292 /// </summary>
206293 public const byte CharHeight = 16 ;
207294 /// <summary>
@@ -238,6 +325,74 @@ private static class VbeModeInfoConstants {
238325 /// "the MaskSize values for a Direct Color 5:6:5 mode would be 5, 6, 5" - green=6
239326 /// </summary>
240327 public const byte GreenMaskSize6Bit = 6 ;
328+ /// <summary>
329+ /// Number of planes for 4-plane planar modes (e.g. EGA/VGA 16-color).
330+ /// </summary>
331+ public const byte PlanarModePlanes = 4 ;
332+ /// <summary>
333+ /// Number of bits per byte, used for scanline width calculations in planar modes.
334+ /// </summary>
335+ public const byte BitsPerByte = 8 ;
336+ /// <summary>
337+ /// Bits per pixel for 4-color planar modes (EGA/VGA 16-color).
338+ /// </summary>
339+ public const byte BitsPerPixelPlanar4Bit = 4 ;
340+ /// <summary>
341+ /// Bits per pixel for 256-color packed pixel modes.
342+ /// </summary>
343+ public const byte BitsPerPixel8Bit = 8 ;
344+ /// <summary>
345+ /// Bits per pixel for 15-bit (RGB 5:5:5) direct color modes.
346+ /// </summary>
347+ public const byte BitsPerPixel15Bit = 15 ;
348+ /// <summary>
349+ /// Bits per pixel for 16-bit (RGB 5:6:5) direct color modes.
350+ /// </summary>
351+ public const byte BitsPerPixel16Bit = 16 ;
352+ /// <summary>
353+ /// Bits per pixel for 24-bit direct color modes.
354+ /// </summary>
355+ public const byte BitsPerPixel24Bit = 24 ;
356+ /// <summary>
357+ /// Bits per pixel for 32-bit direct color modes.
358+ /// </summary>
359+ public const byte BitsPerPixel32Bit = 32 ;
360+ /// <summary>
361+ /// Bytes per pixel for 15-bit and 16-bit direct color modes.
362+ /// </summary>
363+ public const byte BytesPerPixel16Bit = 2 ;
364+ /// <summary>
365+ /// Bytes per pixel for 24-bit direct color modes.
366+ /// </summary>
367+ public const byte BytesPerPixel24Bit = 3 ;
368+ /// <summary>
369+ /// Bytes per pixel for 32-bit direct color modes.
370+ /// </summary>
371+ public const byte BytesPerPixel32Bit = 4 ;
372+ /// <summary>
373+ /// Red field bit position for RGB 5:5:5 (15-bit) modes.
374+ /// </summary>
375+ public const byte RedFieldPositionRgb555 = 10 ;
376+ /// <summary>
377+ /// Red field bit position for RGB 5:6:5 (16-bit) modes.
378+ /// </summary>
379+ public const byte RedFieldPositionRgb565 = 11 ;
380+ /// <summary>
381+ /// Green field bit position for RGB 5:5:5 and RGB 5:6:5 modes.
382+ /// </summary>
383+ public const byte GreenFieldPositionRgb16 = 5 ;
384+ /// <summary>
385+ /// Blue field bit position for all direct color modes.
386+ /// </summary>
387+ public const byte BlueFieldPosition = 0 ;
388+ /// <summary>
389+ /// Red field bit position for 24-bit and 32-bit direct color modes.
390+ /// </summary>
391+ public const byte RedFieldPositionRgb24 = 16 ;
392+ /// <summary>
393+ /// Green field bit position for 24-bit and 32-bit direct color modes.
394+ /// </summary>
395+ public const byte GreenFieldPositionRgb24 = 8 ;
241396 }
242397
243398 /// <summary>
@@ -601,7 +756,7 @@ public ushort YResolution {
601756 }
602757
603758 /// <summary>
604- /// "The XCharCellSize and YCharSellSize specify the size of the character cell in
759+ /// "The XCharCellSize and YCharCellSize specify the size of the character cell in
605760 /// pixels."
606761 /// Character cell width in pixels. Offset: 0x16, Size: 1 byte.
607762 /// </summary>
@@ -611,7 +766,7 @@ public byte XCharSize {
611766 }
612767
613768 /// <summary>
614- /// "The XCharCellSize and YCharSellSize specify the size of the character cell in
769+ /// "The XCharCellSize and YCharCellSize specify the size of the character cell in
615770 /// pixels."
616771 /// Character cell height in pixels. Offset: 0x17, Size: 1 byte.
617772 /// </summary>
@@ -1417,9 +1572,9 @@ public void VbeGetControllerInfo() {
14171572
14181573 var vbeInfo = new VbeInfoBlock ( Memory , address ) ;
14191574
1420- // Fill VBE Info Block (VBE 1.0 )
1575+ // Fill VBE Info Block (VBE 1.2 )
14211576 vbeInfo . Signature = "VESA" ;
1422- vbeInfo . Version = VbeConstants . Version10 ;
1577+ vbeInfo . Version = VbeConstants . Version12 ;
14231578
14241579 // OEM String pointer - point to a location beyond the main structure
14251580 vbeInfo . OemStringOffset = ( ushort ) ( offset + VbeConstants . OemStringOffset ) ;
@@ -1443,7 +1598,7 @@ public void VbeGetControllerInfo() {
14431598 vbeInfo . WriteModeList ( vesaModes , VbeConstants . ModeListOffset ) ;
14441599
14451600 if ( _logger . IsEnabled ( LogEventLevel . Debug ) ) {
1446- _logger . Debug ( "{ClassName} INT 10 4F00 VbeGetControllerInfo - Returning VBE 1.0 info at {Segment:X4}:{Offset:X4}" ,
1601+ _logger . Debug ( "{ClassName} INT 10 4F00 VbeGetControllerInfo - Returning VBE 1.2 info at {Segment:X4}:{Offset:X4}" ,
14471602 nameof ( VgaBios ) , segment , offset ) ;
14481603 }
14491604
@@ -1488,16 +1643,14 @@ public void VbeGetModeInfo() {
14881643
14891644 // Calculate bytes per scan line
14901645 ushort bytesPerLine ;
1491- if ( bpp == 4 ) {
1492- bytesPerLine = ( ushort ) ( width / 8 ) ; // 4-bit planar
1493- } else if ( bpp == 1 ) {
1494- bytesPerLine = ( ushort ) ( width / 8 ) ;
1495- } else if ( bpp == 15 || bpp == 16 ) {
1496- bytesPerLine = ( ushort ) ( width * 2 ) ;
1497- } else if ( bpp == 24 ) {
1498- bytesPerLine = ( ushort ) ( width * 3 ) ;
1499- } else if ( bpp == 32 ) {
1500- bytesPerLine = ( ushort ) ( width * 4 ) ;
1646+ if ( bpp == VbeModeInfoConstants . BitsPerPixelPlanar4Bit || bpp == 1 ) {
1647+ bytesPerLine = ( ushort ) ( width / VbeModeInfoConstants . BitsPerByte ) ;
1648+ } else if ( bpp == VbeModeInfoConstants . BitsPerPixel15Bit || bpp == VbeModeInfoConstants . BitsPerPixel16Bit ) {
1649+ bytesPerLine = ( ushort ) ( width * VbeModeInfoConstants . BytesPerPixel16Bit ) ;
1650+ } else if ( bpp == VbeModeInfoConstants . BitsPerPixel24Bit ) {
1651+ bytesPerLine = ( ushort ) ( width * VbeModeInfoConstants . BytesPerPixel24Bit ) ;
1652+ } else if ( bpp == VbeModeInfoConstants . BitsPerPixel32Bit ) {
1653+ bytesPerLine = ( ushort ) ( width * VbeModeInfoConstants . BytesPerPixel32Bit ) ;
15011654 } else {
15021655 bytesPerLine = width ; // 8-bit packed pixel
15031656 }
@@ -1508,18 +1661,18 @@ public void VbeGetModeInfo() {
15081661 modeInfo . YResolution = height ;
15091662 modeInfo . XCharSize = VbeModeInfoConstants . CharWidth ;
15101663 modeInfo . YCharSize = VbeModeInfoConstants . CharHeight ;
1511- modeInfo . NumberOfPlanes = ( byte ) ( bpp == 4 ? 4 : 1 ) ;
1664+ modeInfo . NumberOfPlanes = ( byte ) ( bpp == VbeModeInfoConstants . BitsPerPixelPlanar4Bit ? VbeModeInfoConstants . PlanarModePlanes : 1 ) ;
15121665 modeInfo . BitsPerPixel = bpp ;
15131666 modeInfo . NumberOfBanks = VbeModeInfoConstants . SingleBank ;
15141667
15151668 // Memory model
15161669 byte memoryModel = bpp switch {
1517- 4 => VbeModeInfoConstants . MemoryModelPlanar ,
1518- 8 => VbeModeInfoConstants . MemoryModelPackedPixel ,
1519- 15 => VbeModeInfoConstants . MemoryModelDirectColor ,
1520- 16 => VbeModeInfoConstants . MemoryModelDirectColor ,
1521- 24 => VbeModeInfoConstants . MemoryModelDirectColor ,
1522- 32 => VbeModeInfoConstants . MemoryModelDirectColor ,
1670+ VbeModeInfoConstants . BitsPerPixelPlanar4Bit => VbeModeInfoConstants . MemoryModelPlanar ,
1671+ VbeModeInfoConstants . BitsPerPixel8Bit => VbeModeInfoConstants . MemoryModelPackedPixel ,
1672+ VbeModeInfoConstants . BitsPerPixel15Bit => VbeModeInfoConstants . MemoryModelDirectColor ,
1673+ VbeModeInfoConstants . BitsPerPixel16Bit => VbeModeInfoConstants . MemoryModelDirectColor ,
1674+ VbeModeInfoConstants . BitsPerPixel24Bit => VbeModeInfoConstants . MemoryModelDirectColor ,
1675+ VbeModeInfoConstants . BitsPerPixel32Bit => VbeModeInfoConstants . MemoryModelDirectColor ,
15231676 _ => VbeModeInfoConstants . MemoryModelPackedPixel
15241677 } ;
15251678 modeInfo . MemoryModel = memoryModel ;
@@ -1528,21 +1681,21 @@ public void VbeGetModeInfo() {
15281681 modeInfo . Reserved1 = VbeModeInfoConstants . Reserved ;
15291682
15301683 // Direct color fields for high-color/true-color modes
1531- if ( bpp >= 15 ) {
1532- if ( bpp == 15 || bpp == 16 ) {
1684+ if ( bpp >= VbeModeInfoConstants . BitsPerPixel15Bit ) {
1685+ if ( bpp == VbeModeInfoConstants . BitsPerPixel15Bit || bpp == VbeModeInfoConstants . BitsPerPixel16Bit ) {
15331686 modeInfo . RedMaskSize = VbeModeInfoConstants . RedGreenBlueMaskSize ;
1534- modeInfo . RedFieldPosition = ( byte ) ( bpp == 16 ? 11 : 10 ) ;
1535- modeInfo . GreenMaskSize = ( byte ) ( bpp == 16 ? VbeModeInfoConstants . GreenMaskSize6Bit : VbeModeInfoConstants . RedGreenBlueMaskSize ) ;
1536- modeInfo . GreenFieldPosition = 5 ;
1687+ modeInfo . RedFieldPosition = ( byte ) ( bpp == VbeModeInfoConstants . BitsPerPixel16Bit ? VbeModeInfoConstants . RedFieldPositionRgb565 : VbeModeInfoConstants . RedFieldPositionRgb555 ) ;
1688+ modeInfo . GreenMaskSize = ( byte ) ( bpp == VbeModeInfoConstants . BitsPerPixel16Bit ? VbeModeInfoConstants . GreenMaskSize6Bit : VbeModeInfoConstants . RedGreenBlueMaskSize ) ;
1689+ modeInfo . GreenFieldPosition = VbeModeInfoConstants . GreenFieldPositionRgb16 ;
15371690 modeInfo . BlueMaskSize = VbeModeInfoConstants . RedGreenBlueMaskSize ;
1538- modeInfo . BlueFieldPosition = 0 ;
1539- } else if ( bpp == 24 || bpp == 32 ) {
1691+ modeInfo . BlueFieldPosition = VbeModeInfoConstants . BlueFieldPosition ;
1692+ } else if ( bpp == VbeModeInfoConstants . BitsPerPixel24Bit || bpp == VbeModeInfoConstants . BitsPerPixel32Bit ) {
15401693 modeInfo . RedMaskSize = VbeModeInfoConstants . RedGreenBlueMaskSize8 ;
1541- modeInfo . RedFieldPosition = 16 ;
1694+ modeInfo . RedFieldPosition = VbeModeInfoConstants . RedFieldPositionRgb24 ;
15421695 modeInfo . GreenMaskSize = VbeModeInfoConstants . RedGreenBlueMaskSize8 ;
1543- modeInfo . GreenFieldPosition = 8 ;
1696+ modeInfo . GreenFieldPosition = VbeModeInfoConstants . GreenFieldPositionRgb24 ;
15441697 modeInfo . BlueMaskSize = VbeModeInfoConstants . RedGreenBlueMaskSize8 ;
1545- modeInfo . BlueFieldPosition = 0 ;
1698+ modeInfo . BlueFieldPosition = VbeModeInfoConstants . BlueFieldPosition ;
15461699 }
15471700 }
15481701
@@ -1552,7 +1705,7 @@ public void VbeGetModeInfo() {
15521705 }
15531706
15541707 // Return success
1555- State . AX = 0x004F ;
1708+ State . AX = ( ushort ) VbeStatus . Success ;
15561709 }
15571710
15581711 /// <inheritdoc cref="IVesaBiosExtension.VbeSetMode"/>
@@ -1601,29 +1754,29 @@ private static (ushort width, ushort height, byte bpp, bool supported) GetVesaMo
16011754 return mode switch {
16021755 // VBE 1.2 standard modes - return info for queries
16031756 // Note: Only mode 0x102 can actually be SET (has internal VGA mode support)
1604- 0x100 => ( 640 , 400 , 8 , true ) , // 640x400x256
1605- 0x101 => ( 640 , 480 , 8 , true ) , // 640x480x256
1606- 0x102 => ( 800 , 600 , 4 , true ) , // 800x600x16 (planar) - CAN BE SET via mode 0x6A
1607- 0x103 => ( 800 , 600 , 8 , true ) , // 800x600x256
1608- 0x104 => ( 1024 , 768 , 4 , true ) , // 1024x768x16 (planar)
1609- 0x105 => ( 1024 , 768 , 8 , true ) , // 1024x768x256
1610- 0x106 => ( 1280 , 1024 , 4 , true ) , // 1280x1024x16 (planar)
1611- 0x107 => ( 1280 , 1024 , 8 , true ) , // 1280x1024x256
1612- 0x10D => ( 320 , 200 , 15 , true ) , // 320x200x15-bit
1613- 0x10E => ( 320 , 200 , 16 , true ) , // 320x200x16-bit
1614- 0x10F => ( 320 , 200 , 24 , true ) , // 320x200x24-bit
1615- 0x110 => ( 640 , 480 , 15 , true ) , // 640x480x15-bit (S3 mode 0x70)
1616- 0x111 => ( 640 , 480 , 16 , true ) , // 640x480x16-bit
1617- 0x112 => ( 640 , 480 , 24 , true ) , // 640x480x24-bit
1618- 0x113 => ( 800 , 600 , 15 , true ) , // 800x600x15-bit
1619- 0x114 => ( 800 , 600 , 16 , true ) , // 800x600x16-bit
1620- 0x115 => ( 800 , 600 , 24 , true ) , // 800x600x24-bit
1621- 0x116 => ( 1024 , 768 , 15 , true ) , // 1024x768x15-bit
1622- 0x117 => ( 1024 , 768 , 16 , true ) , // 1024x768x16-bit
1623- 0x118 => ( 1024 , 768 , 24 , true ) , // 1024x768x24-bit
1624- 0x119 => ( 1280 , 1024 , 15 , true ) , // 1280x1024x15-bit
1625- 0x11A => ( 1280 , 1024 , 16 , true ) , // 1280x1024x16-bit
1626- 0x11B => ( 1280 , 1024 , 24 , true ) , // 1280x1024x24-bit
1757+ VbeConstants . VesaMode640x400x256 => ( 640 , 400 , VbeModeInfoConstants . BitsPerPixel8Bit , true ) ,
1758+ VbeConstants . VesaMode640x480x256 => ( 640 , 480 , VbeModeInfoConstants . BitsPerPixel8Bit , true ) ,
1759+ VbeConstants . VesaMode800x600x16 => ( 800 , 600 , VbeModeInfoConstants . BitsPerPixelPlanar4Bit , true ) , // CAN BE SET via mode 0x6A
1760+ VbeConstants . VesaMode800x600x256 => ( 800 , 600 , VbeModeInfoConstants . BitsPerPixel8Bit , true ) ,
1761+ VbeConstants . VesaMode1024x768x16 => ( 1024 , 768 , VbeModeInfoConstants . BitsPerPixelPlanar4Bit , true ) ,
1762+ VbeConstants . VesaMode1024x768x256 => ( 1024 , 768 , VbeModeInfoConstants . BitsPerPixel8Bit , true ) ,
1763+ VbeConstants . VesaMode1280x1024x16 => ( 1280 , 1024 , VbeModeInfoConstants . BitsPerPixelPlanar4Bit , true ) ,
1764+ VbeConstants . VesaMode1280x1024x256 => ( 1280 , 1024 , VbeModeInfoConstants . BitsPerPixel8Bit , true ) ,
1765+ VbeConstants . VesaMode320x200x15 => ( 320 , 200 , VbeModeInfoConstants . BitsPerPixel15Bit , true ) ,
1766+ VbeConstants . VesaMode320x200x16 => ( 320 , 200 , VbeModeInfoConstants . BitsPerPixel16Bit , true ) ,
1767+ VbeConstants . VesaMode320x200x24 => ( 320 , 200 , VbeModeInfoConstants . BitsPerPixel24Bit , true ) ,
1768+ VbeConstants . VesaMode640x480x15 => ( 640 , 480 , VbeModeInfoConstants . BitsPerPixel15Bit , true ) ,
1769+ VbeConstants . VesaMode640x480x16 => ( 640 , 480 , VbeModeInfoConstants . BitsPerPixel16Bit , true ) ,
1770+ VbeConstants . VesaMode640x480x24 => ( 640 , 480 , VbeModeInfoConstants . BitsPerPixel24Bit , true ) ,
1771+ VbeConstants . VesaMode800x600x15 => ( 800 , 600 , VbeModeInfoConstants . BitsPerPixel15Bit , true ) ,
1772+ VbeConstants . VesaMode800x600x16Bit => ( 800 , 600 , VbeModeInfoConstants . BitsPerPixel16Bit , true ) ,
1773+ VbeConstants . VesaMode800x600x24 => ( 800 , 600 , VbeModeInfoConstants . BitsPerPixel24Bit , true ) ,
1774+ VbeConstants . VesaMode1024x768x15 => ( 1024 , 768 , VbeModeInfoConstants . BitsPerPixel15Bit , true ) ,
1775+ VbeConstants . VesaMode1024x768x16Bit => ( 1024 , 768 , VbeModeInfoConstants . BitsPerPixel16Bit , true ) ,
1776+ VbeConstants . VesaMode1024x768x24 => ( 1024 , 768 , VbeModeInfoConstants . BitsPerPixel24Bit , true ) ,
1777+ VbeConstants . VesaMode1280x1024x15 => ( 1280 , 1024 , VbeModeInfoConstants . BitsPerPixel15Bit , true ) ,
1778+ VbeConstants . VesaMode1280x1024x16Bit => ( 1280 , 1024 , VbeModeInfoConstants . BitsPerPixel16Bit , true ) ,
1779+ VbeConstants . VesaMode1280x1024x24 => ( 1280 , 1024 , VbeModeInfoConstants . BitsPerPixel24Bit , true ) ,
16271780 _ => ( 0 , 0 , 0 , false )
16281781 } ;
16291782 }
0 commit comments