С для профессиональных программистов


Работа видеоадаптеров.


Из-за того, что создание исчезающих и иерархических меню требует прямого управления экраном, важно понимание адаптеров дисплея. Три основных типа адаптеров - это одноцветный адаптер, цветной/графический адаптер (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. Это значение включает три основных цвета, производя для символа белый цвет. Для переключения в инверсный



Содержание раздела