Работа видеоадаптеров.
Из-за того, что создание исчезающих и иерархических меню требует прямого управления экраном, важно понимание адаптеров дисплея. Три основных типа адаптеров - это одноцветный адаптер, цветной/графический адаптер (CGA) и усовершенствованный графический адаптер (EGA). CGA и EGA могут иметь несколько режимов работы, включая 40- или 80- символьный текст или графические операции. Эти режимы показаны в таблице 1-1. Программы меню, разработанные в этой главе, разработаны для использования режима 80-символьного текста, который является наиболее общим режимом для общецелевых применений. Это значит, что видео режим системы должен быть 2, 3 или 7. Независимо от используемого режима - координаты левого верхнего угла - 0,0.
Таблица 1-1.
Режим
Тип
Размеры
Адаптеры
0
1
2
3
4
5
6
7
8
9
10
13
14
15
-------
текст,ч/б
текст 16 цветов
текст ч/б
текст 16 цветов
графика 4 цвета
графика 4 серых тона
графика ч/б
текст ч/б
графика 16 цветов
графика 16 цветов
графика 4 или 16 цв.
графика 16 цветов
графика 16 цветов
графика 4 цвета
----------------------
40*25
40*25
80*25
80*25
320*200
320*200
640*200
80*25
160*200
320*200
640*200
320*200
640*200
640*350 -------------
CGA,EGA
CGA,EGA
CGA,EGA
CGA,EGA
CGA,EGA
CGA,EGA
CGA,EGA монохромный
PCjr
PCjr
PCjr,EGA
EGA
EGA
EGA ------
Символы, выводимые на экран, содержатся в некоторой зарезервированной области памяти на адаптере дисплея. Адрес одноцветной информации В0000000H. И CGA, и EGA хранят информацию, начиная с B80000000H. (Они различны для того, чтобы позволить использовать раздельно текстовый и графический экран - но на практике это делается редко.) Хотя функции CGA и EGA различны в разных режимах, они одинаковы в режимах 2 и 3.
Каждый символ, выводимый на экран, требует два байта видео памяти. Первый байт содержит собственно символ, второй содержит аттрибуты экрана. Для цветного экрана байт аттрибутов интерпретируется так, как показано в таблице 1-2. Если у вас EGA или CGA, то по умолчанию принимается режим 3, и символы выводятся с байтом аттрибутов 7. Это значение включает три основных цвета, производя для символа белый цвет. Для переключения в инверсный