Mode X

From HandWiki

Mode X is an alternative 256-color graphics display mode of the IBM VGA graphics hardware that was popularized by Michael Abrash. The primary advantage of Mode X is that it has square pixels: a resolution of 320×240 instead of the standard VGA Mode 13h which is 320×200. It is usually enabled by entering Mode 13h via an MS-DOS system call, then adjusting the resolution through VGA registers. It was first published in July 1991 in Dr. Dobb's Journal, and republished in chapters 47-49 of Abrash's Graphics Programming Black Book (now freely available online).[1] The term "Mode X" was coined by Abrash. Additionally, Abrash enabled the VGA's planar memory mode (also called "unchained mode"). Even though planar memory mode is a documented part of the VGA standard and was used in earlier commercial games,[2] it was first widely publicized in the Mode X articles, leading many programmers to consider Mode X and planar memory synonymous. It is possible to enable planar memory in standard 320×200 mode, which became known as Mode Y in the Usenet rec.games.programmer group.[3][4]

Planar memory arrangement splits the pixels horizontally into groups of four. For any given byte in video memory, four pixels on screen can be accessed depending on which plane(s) are enabled. This is more complicated for the programmer, but the advantages gained by this arrangement—primarily the ability to use all 256 KB of VGA memory for one or more display buffers, instead of only one quarter of that (64 KB)—were considered worthwhile by many.

Another advantage of the 320×240 mode is, that 3d objects don't need ratio adjustment when they rotate, because each pixel is perfectly square. And circles don't look squeezed at on a monitor with 4:3 aspect ratio in this resolution because mathematically the division of 320:240 and 4:3 give the same result, which is the reason, why the pixel are perfectly square in this mode on such monitors.

Variants

In addition to unchained 320×200 being called Mode Y, Mode Q (short for "cube") is sometimes used to refer to a 256×256 256-color mode.[5][6] The Y coordinate can simply be put in the high byte of the address, and the X coordinate in the low byte, forming the address of the pixel without a multiply.

References

  1. Abrash, Michael. Michael Abrash's Graphics Programming Black Book Special Edition. The Coriolis Group, Scottsdale Arizona, 1997. ISBN:1-57610-174-6: PDF available online [1]
  2. Abrash, Michael. Michael Abrash's Graphics Programming Black Book Special Edition. The Coriolis Group, Scottsdale Arizona, 1997. ISBN:1-57610-174-6: PDF available online [2] pg. 877
  3. "Mode Y". August 1993. http://groups.google.com/group/rec.games.programmer/browse_thread/thread/66bb2a3530af9618/1b00273db2f76620?#1b00273db2f76620. Retrieved 2007-04-05. 
  4. Roberts, Dave. PC Game Programming Explorer. The Coriolis Group, Scottsdale Arizona, 1994. ISBN:1-883577-07-1. Page 106.
  5. Robert Schmidt."tweak16b". 1993. http://gameprogrammer.com/demos/tweak16b.zip. 
  6. Bas van Gaalen. "Tweaked 256x256x256 Chained". August 1994. http://swag.outpostbbs.net/EGAVGA/0175.PAS.html. 

External links