Программирование видеоадаптеров CGA, EGA и VGA


Функция _setvideomode() - часть 2


MDA нет нет Hercules _HERCMONO _HERCMONO CGA с CD _HRESBW _MRES4COLOR CGA с MD _HRESBW _MRESNOCOLOR OCGA (фирма _ORESCOLOR _MRES4COLOR Olivetti) OCGA с CD _ORESCOLOR _ERESCOLOR EGA (256K) с CD _HRES16COLOR _HRES16COLOR EGA (64K) с CD _HRES16COLOR _HRES16COLOR EGA(256K) с ECD _ERESCOLOR _ERESCOLOR EGA (64K) с ECD _ERESCOLOR _HRES16COLOR EGA с MD _ERESNOCOLOR _ERESNOCOLOR MCGA _VRES2COLOR _MRES256COLOR VGA _VRES16COLOR _MRES256COLOR OVGA (фирма _VRES16COLOR _MRES256COLOR Olivetti)

Таблица 15.3 Режимы _MAXRESMODE и _MAXCOLORMODE.

Режимы TEXTC40, TEXTBW40 и TEXTC80, TEXTBW80 различаются только используемой цветовой палитрой. В режимах TEXTBW40 и TEXTBW80 могут отображаться только градации серого цвета.

Видеоадаптер Hercules может работать в режиме _HERCMONO. Это монохромный режим с разрешением 720x348 пикселов. Он обеспечивает отображение 25 текстовых строк по 80 символов в каждой. При этом матрица символов имеет размер 9x14 пикселов.

Перед исполнением вашей программы в режиме _HERCMONO надо установить специальный драйвер видеоадаптера Hercules - программу msherc.com. Программу msherc.com можно запустить либо перед выполнением прикладной программы, либо непосредственно из нее (напрмер запустив ее при помощи функций system или exec).

При одновременном использовании видеоадаптеров Hercules и EGA, надо запускать программу msherc.com с ключом /H (Half - половина). После этого видеоадаптер Hercules будет использовать только одну из двух страниц видеопамяти, что позволяет избежать конфликтов между видеоадаптерами.

Теперь приведем простой пример, использующий функцию _setvideomode. Программа сначала пытается перевести видеоадаптер в цветной графический режим _MRES16COLOR, а если адаптер его не поддерживает, то в режим _MRES4COLOR с такой же разрешающей способностью, но меньшим числом цветов.

// Пример использования функций _setvideomode() и _outtext().

#include <conio.h> #include <graph.h>

void main(void) {

// пытаемся установить режим _MRES16COLOR

if(_setvideomode(_MRES16COLOR)) _outtext("установлен режим _MRES16COLOR");

// пытаемся установить режим _MRES4COLOR

else if(_setvideomode(_MRES4COLOR)) _outtext("установлен режим _MRES4COLOR");

else _outtext("Адаптер не поддерживает режимы\n" "_MRES16COLOR and _MRES4COLOR mode.");

getch();

// восстанавливаем режим, используемый адаптером по умолчанию

_setvideomode( _DEFAULTMODE ); }




Начало  Назад  Вперед



Книжный магазин