Введение

Mode X — альтернативный 256-цветный графический режим отображения графического оборудования IBM VGA, популяризированный Майклом Абрашем. Основное преимущество Mode X заключается в наличии квадратных пикселей: разрешение 320×240 вместо стандартного VGA Mode 13h, которое составляет 320×200. Обычно он включается путем перехода в Mode 13h через системный вызов MS DOS, а затем корректировкой разрешения через регистры VGA. Впервые он был опубликован в июле 1991 года в журнале Dr. Dobb's Journal и переиздан в главах 47 и 49 книги Абраша «Black Book графического программирования». Термин «Mode X» был придуман Абрашем. Кроме того, Абраш активировал режим плоской памяти VGA (также называемый «режимом без цепочек»). Хотя режим плоской памяти является документированной частью стандарта VGA и использовался в более ранних коммерческих играх, он впервые получил широкую огласку в статьях о Mode X, что заставило многих программистов считать Mode X и плоскую память синонимами. В стандартном режиме 320×200 также можно включить плоскую память, что получило название Mode Y в Usenet группе rec.games.programmer. Расположение плоской памяти разделяет пиксели по горизонтали на группы по четыре. Для любого заданного байта в видеопамяти можно получить доступ к четырем пикселям на экране в зависимости от того, какие плоскости включены. Это усложняет работу программиста, но преимущества, полученные от такой организации — в первую очередь возможность использовать все 256 КБ видеопамяти VGA для одного или нескольких буферов дисплея, а не только четверть (64 КБ) — многие сочли оправданными. Еще одним преимуществом режима 320×240 является то, что 3D-объектам не требуется корректировка пропорций при вращении, поскольку каждый пиксель идеально квадратный. И круги не выглядят сжатыми на мониторе с соотношением сторон 4:3 в этом разрешении, потому что математически деление 320:240 и 4:3 дает один и тот же результат, что и является причиной идеальной квадратности пикселей в этом режиме на таких мониторах.

Варианты

В дополнение к режиму 320×200 без ограничений, который также называют режимом Y, режим Q (сокращение от "куб") иногда используется для обозначения 256×256 режима с 256 цветами. Координату Y можно просто поместить в старший байт адреса, а координату X — в младший байт, формируя адрес пикселя без использования умножения.