Драйвер

Имя константы режима и ее значение

Разрешение экрана (в точках)

Палитра

Число видеостраниц

CGA

CGAC0 = 0 CGAC1 = 1 CGAC2 = 2 CGAC3 = 3 CGAHi = 4

320x200 320x200 320x200 320x200 640x200

4 цвета 4 цвета 4 цвета 4 цвета 2 цвета

MCGA

MCGAC0 = 0 MCGAC1 = 1 MCGAC2 = 2 MCGAC3 = 3 MCGAMed=4 MCGAHi = 5

320x200 320x200 320x200 320x200 640x200 640x480

4 цвета 4 цвета 4 цвета 4 цвета 2 цвета 2 цвета

EGA

EGALo = 0 EGAHi = 1

640x200 640x350

16 цветов 16 цветов

2

- 413 -

EGA64

EGA64Lo = 0 EGA64Hi = 1

640x200 640x350

16 цветов 4 цвета

EGAMono

EGAMonoHi = 3

640x350

2 цвета

1 (2)

Herc

HercMonoHi = 0

720x348

2 цвета

ATT400

ATT400C0 = 0 ATT400C1 = 1 ATT400C2 = 2 ATT400C3 = 3 ATT400C4 = 4 ATT400Hi = 5

320x200 320x200 320x200 320x200 640x200 640x200

4 цвета 4 цвета 4 цвета 4 цвета 2 цвета 2 цвета

VGA

VGALo = 0 VGAMed = 1 VGAHi = 2

640x200 640x350 640x480

16 цветов 16 цветов 16 цветов

PC3270

PC3270Hi = 0

720x350

2 цвета

IBM8514

IBM8514Lo = 1 IBM8514 = 1

640x480 1024x768

256 цветов 256 цветов

Как видно из таблицы, наиболее качественная «картинка» получается при использовании адаптера IBM8514. Однако он редко встречается у нас в стране, и поэтому в дальнейшем мы не будем о нем упоминать.

В мире производится огромное количество различных адаптеров, которые являются модификациями основных адаптеров, приведенных в таблице. Каждая модификация решает задачи, связанные, например, с увеличением быстродействия, разрешения или совместимости с каким-нибудь другим типом адаптера. При этом в таком адаптере всегда сохраняется стандартный блок, позволяющий работать в любом из режимов, указанных в таблице для него. Для того чтобы полностью использовать возможности установленного в ПЭВМ адаптера, необходимо воспользоваться инструкцией по работе с ним.

19.2.3.1. Процедура DetectGraph. Для тестирования графического адаптера в модуле Graph объявлена процедура:

DetectGraph( VAR GraphDriver, GraphMode : Integer )

- 414 -

Эта процедура может быть вызвана до инициализации графики. Через формальный параметр GraphDriver возвращается значение из первого столбца таблицы 19.4, а через параметр GraphMode — обычно последнее значение из соответствующего раздела второго столбца. Эти значения и рекомендуется подставлять в качестве фактических параметров в процедуру InitGraph. Если на ПЭВМ не установлена графическая плата, то функция GraphResult будет возвращать значение grNotDetected. После определения GraphDriver автоматически становится доступным диапазон графических режимов, реализуемых адаптером ПЭВМ. Дело в том, что по мере развития индустрии ПЭВМ возникали новые уровни возможностей графики (рис. 19.2).

Рис. 19.2

Адаптер Hercules несколько отличается от остальных, но тем не менее «перекрывается» старшим уровнем — адаптером VGA. Таким образом, имея адаптер VGA, можно имитировать практически все режимы, возможные на платах EGA, CCA, Hercules и т.д., имея плату

- 415 -

EGA, можно то же, кроме режимов VGA. В результате получается так называемая совместимость «снизу вверх». Поясним это на примере (рис. 19.3).

| USES Graph; { используется Graph }

| VAR

| gDriver : Integer; { для графического адаптера }

| gMode : Integer; { для графического режима }

| ErrorCode : Integer; { для кода ошибки }

| BEGIN

| DetectGraph(gDriver, gMode); { Опрос наличия и }

| ErrorCode := GraphResult; { типа адаптера. }

| if ErrorCode <> grOk then

| begin { если ошибка, то... }

| WriteLn(GraphErrorMsg( ErrorCode ));

| Halt( 1 )

| end; {if}

| if gDriver in [EGA, EGA64, VGA] { Если адаптер }

| then begin { старше CGA, то }

| gDriver := CGA; { возможен режим }

Перейти на страницу:

Поиск

Похожие книги