Математика

Физика

Химия

Биология

Техника и    технологии

Фролов А.В., Фролов Г.В. 91 Программирование видеоадаптеров CGA, EGA и VGA.— М.: "ДИАЛОГ-МИФИ", 1992.-288 с- (Библиотека системного программиста; Т. 3) ISBN 5-86404-027-4 (Т. 3) Книга содержит подробное описание архитектуры и программирования видеоадаптеров CGA/EGA/VGA. Описано использование регистров видеоадаптера, стандартные режимы работы и структура видеопамяти в них. Приведен обзор прерываний и функций BIOS для обслуживания видеоадаптеров. Приведены основные графические функции стандартных библиотек трансляторов Microsoft QC 2.5 и С 6.0. Книга содержит большое количество примеров, составленных на языках ассемблера и Си. Дополнительно можно приобрести дискету с примерами программ.
ПРЕДИСЛОВИЕ
В этой книге рассмотрены три наиболее распространенные в настоящее время типа видеоадаптеров - CGA, EGA и VGA. Подробно описана архитектура этих видеоадаптеров, их регистры. Для каждого регистра воспроизводится его формат и описывается назначение. В наиболее интересных случаях представлены программы, использующие непосредственный доступ к регистрам. Благодаря этому читатель сможет получить на экране своего компьютера видеоэффекты, недоступные при использовании только функций BIOS или функций библиотек трансляторов языков высокого уровня.
Читателю предоставляется возможность подробно рассмотреть стандартные режимы работы видеоадаптеров, структуру видеопамяти в этих режимах. Знание структуры позволяет создавать программы, отображающие информацию на экране путем непосредственного доступа к видеопамяти. А это, в свою очередь, важно при создании быстрых видеопрограмм, в частности динамических игр и графических редакторов.
В качестве примера рассмотрены два нестандартных режима видеоадаптера VGA. Они не поддерживаются функциями BIOS и позволяют в режиме с 256 цветами иметь большую разрешающую способность.
Далее в книге излагаются традиционные методы управления видеоадаптерами. Приведен обзор всех прерываний и функций BIOS для работы с видеоадаптерами. Описываются наиболее важные функции стандартных библиотек трансляторов Microsoft Quick С 2.5 и С 6.0. Применение каждой группы функций иллюстрируется примерами программ.
Большое количество программ, составленных с использованием таких распространенных языков программирования, как Си и ассемблер, значительно облегчают понимание материала, изложенного в книге.
Книга предназначена для специалистов по вычислительной технике, системных и прикладных программистов, студентов вузов, специализирующихся на вычислительной технике.
Для лучшего понимания материала, изложенного в книге, желательно знакомство с языками Си и ассемблер.
ОГЛАВЛЕНИЕ
Предисловие......................................................'.................................................. 3
Глава 1
ВВОДНЫЕ ЗАМЕЧАНИЯ ...................................................................................... 4
Шва 2
ТИПЫ ДИСПЛЕЕВ................................................................................................ 5
2.1. Монохромный дисплей............................................................................... 6
2.2. Цветной дисплей ........................................................................................ 6
2.3. Улучшенный цветной дисплей................................................................... 6
2.4. Многочастотный цветной дисплей............................................................. 6
2.5. Дисплей VGA.............................................................................................. 7
Глава 3
РЕЖИМЫ РАБОТЫ ВИДЕОАДАПТЕРОВ......................................................... 8
3.1. Режимы 0 и 1.............................................................................................. 8
3.2. Режимы 0* и 1* ........................................................................................ 10
3.3. Режимы 0+ и 1+........................................................................................ 10
i 3.4. Режимы 2 и 3 ............................................................................................ 10
| 3.5. Режимы 2* и 3* ........................................................................................ 11
! 3.6. Режимы 2+иЗ+.............................'........................................................... 11
I 3.7. Режимы 4 и 5............................................................................................ 12
; 3.8. Режим 6.................................................................................................... 12
| 3.9. Режим 7 .................................................................................................... 12
\ ЗЛО. Режим 7+................................................................................................... 13
. 3.11. Режимы 8, 9 и OAh................................................................................... 13
13.12. Режим ODh................................................................................................ 13
\3.13. Режим ОЕп ................................................................................................ 14
13.14. Режим OFh ................................................................................................ 14
13.15. Режим 10h................................................................................................ 14
13.16. Режим llh ................................................................................................ 15
13.17. Режим 12h ................................................................................................ 15
f 3.18. Режим 13h ................................................................................................ 15
14 рСТЕМЫ С ДВУМЯ ВИДЕОАДАПТЕРАМИ ................................................. 16
|ХИТЕКТУРА ВИДЕОАДАПТЕРА CGA ........................................................ 18
5.1. Текстовые режимы CGA .......................................................................... 18
Знакогенератор (19)
19
S.2. Видеопамять в графических режимах CGA
Режимы 4 и 5 (19). Режим 6 (23). Организация видеопамяти адаптера Hercules (26)
Глава 6
АРХИТЕКТУРА ВИДЕОАДАПТЕРОВ EGA И VGA ......................................... 28
6.1. Электронно-лучевая трубка...................................................................... 2q
6.2. Видеопамять............................................................................................... Зп
Текстовый режим (30). Видеопамять в графических режимах (44). Графический контроллер (50). Последовательный преобразователь (52). Контроллер атрибутов (52). Контроллер ЭЛТ (54). Синхронизатор (54)
Глава 7
РЕГИСТРЫ ВИДЕОАДАПТЕРА CGA ............................................................... 56
7.1. Краткий обзор.......................................................................:................... 56
7.2. Регистры контроллера ЭЛТ ...................................................................... 56
Общая длина линии горизонтальной развертки (57). Длина отображаемой части горизонтальной развертки (58). Положение горизонтальной синхронизации (58). Ширина горизонтального синхросигнала (58). Число горизонтальных линий растра (58). Выравнивание растра (58). Длина отображаемой части вертикальной развертки (58). Положение вертикальной синхронизации (58). Режим соединения (58). Высота символов текста (58). Начальная линия курсора (59). Конечная линия курсора (59). Регистры начального адреса (61). Регистры, определяющие положение курсора (62). Регистр адреса светового пера (64)
7.3. Регистр выбора режима............................................................................. 64
7.4. Регистр выбора цвета................................................................................ 65
7.5. Регистр состояния...................................................................................... 65
7.6. Регистр сброса триггера-защелки светового пера.................................... 66
7.7. Регистр установки триггера-защелки светового пера.............................. 66
Глава 8
РЕГИСТРЫ ВИДЕОАДАПТЕРОВ EGA И VGA ........................................•«...... 67
8.1. Краткий обзор........................................................................................... 67
8.2. Внешние регистры ..................................................................................... 69
Регистр определения различных режимов работы (69). Регистр управления дополнительным устройством (71). Регистр состояния 0 (71). Регистр состояния 1 (73). Регистр разрешения работы системы VGA (76). Регистр сброса триггера-защелки светового пера (76). Регистр установки триггера-защелки светового пера (77)
8.3. Регистры контроллера ЭЛТ ......................................................................
Общая длина линии горизонтальной развертки (78). Длина отображаемой части горизонтальной развертки (79). Начало импульса гашения луча горизонтальной развертки (79). Конец импульса гашения луча горизонтальной развертки (79). Начал импульса горизонтального обратного хода луча (80). Конец и
пульса горизонтального обратного хода луча (81). Число горизонтальных линий растра (81). Дополнительный регистр (81). Предварительная установка горизонтальной развертки (82). Вы-j сота символов текста (83). Начальная линия .курсора (84). Ко-
, нечная линия курсора (85). Регистры начального адреса (87).
Регистры, определяющие положение курсора (87). Начало обратного вертикального хода луча (88). Конец обратного вертикального хода луча (88). Регистр адреса светового пера (89). Завершение отображения вертикальной развертки (89). Логическая ширина экрана (89). Положение подчеркивания символа (90). Начало импульса гашения вертикальной развертки (93). Конец импульса гашения вертикальной развертки (93). Управление режимом (94). Регистр сравнения линий (95)
8.4. Регистры синхронизатора ......................................................................... 99
Регистр сброса синхронизатора (100). Регистр режима синхронизации (100). Регистр разрешения записи цветового слоя (101). Регистр выбора знакогенератора (102). Регистр определения структуры памяти (103)
8.5. Регистры графического контроллера....................................................... 103
Регистр установки/сброса (104). Регистр разрешения установки/сброса (105). Регистр сравнения цветов (106). Регистр циклического сдвига и выбора функции (107). Регистр выбора читаемого слоя (109). Регистр режима работы (ПО). Регистр многоцелевого назначения (113). Регистр маскирования цветовых слоев (113). Регистр битовой маски (114)
8.6. Регистры контроллера атрибутов ............................................................ 114
Регистры цветовой палитры (0-15) (115). Регистр управления режимом (116). Регистр цвета рамки экрана (116). Регистр разрешения цветового слоя (117). Регистр горизонтального панорамирования (117). Регистр выбора цвета (124)
8.7. Регистры цифро-аналогового преобразователя VGA............................. 124
Регистр маскирования пикселов (125). Регистр состояния ЦАП (125). Индекс читаемого регистра таблицы цветов (126). Индекс записываемого регистра таблицы цветов (126). Регистр данных таблицы цветов (127)
8.8. Нестандартные режимы видеоадаптера VGA ...............................,.......... 131
Организация видеопамяти (131). Режим 320x400 пикселов, 256 цветов (133). Режим 360x480 пикселов, 256 цветов (142) ава 9 -НОВНЫЕ СРЕДСТВА BIOS ДЛЯ РАБОТЫ С ВИДЕОАДАПТЕРАМИ ... 151
9.1. Выбор режима работы - функция 00h.................................................... 151
9-2. Изменение формы курсора - функция 01h............................................. 151
9-3. Изменение положения курсора - функция 02h ...................................... 152
9-4. Определение положения и формы курсора - функция 03h ................... 152
9.5. Использование светового пера - функция 04h ..................................... 152
9.6. Изменение активной страницы видеопамяти - функция 05п............... 153
9.7. Свертка текстового окна вверх - функция 06h .................................... 153
9.8. Свертка текстового окна вниз - функция 07h...................................... 154
9.9. Чтение символа и его атрибутов - функция 08h .................................. 155
9.10. Запись символа с атрибутами в текущей позиции курсора -
функция 09h ........................................................................................... 155
9.11. Запись символа в текущей позиции курсора - функция ОАп .............. 157
9.12. Установка цветовой палитры (режимы 4, 5, 6) - функция ОВп .......... 158
9.13. Вывод пиксела - функция OCh .............................................................. 158
9.14. Чтение пиксела - функция ODh............................................................. 160
9.15. Запись символа в режиме телетайпа - функция OEh ........................... 160
9.16. Определение текущего режима работы видеоадаптера -
функция OFh........................................................................................... 161
Глава 10
ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА BIOS ДЛЯ УПРАВЛЕНИЯ EGA И VGA 162
10.1. Управление регистрами палитры - функция 10h ................................. 162
Установка одного регистра палитры - подфункция 00h (162). Установка цвета рамки - подфункция Olh (163). Установка всех регистров палитры - подфункция 02h (164). Управление атрибутом мигания и атрибутом интенсивности - подфункция 03h (164). Чтение регистра палитры - подфункция 07h (165). Чтение регистра цвета рамки - подфункция 08h (165). Чтение всех регистров палитры - подфункция 09h (165). Установка одного регистра таблицы цветов (регистров ЦАП) - подфункция 10h (166). Установка нескольких регистров таблицы цветов (регистров ЦАП) - подфункция 12h (166). Выбор подмножества цветов - подфункция 13h (167). Чтение регистра таблицы цветов - подфункция 15п (167). Чтение нескольких регистров таблицы цветов (регистров ЦАП) - подфункция 17h (168). Определение режима подмножества цветов - подфункция lAh (168). Установка палитры из градаций серого цвета - подфункция lBh (168)
10.2. Загрузка таблиц знакогенератора - функция llh ................................169
Загрузка набора символов пользователя - подфункция 00h (169). Загрузка монохромного набора символов - подфункция Olh (170). Загрузка стандартного набора символов видеоадаптера CGA - подфункция 02h (170). Выбор активных таблиц знакогенератора (EGA) - подфункция 03h (170). Загрузка стандартного набора символов видеоадаптера VGA - подфункция 04h (171). Установка вектора прерывания lFh - подфункция 20h (171). Использование графического режима для отображения символов пользователя - подфункция 21h (17D-
Использование набора символов 8x14 из ПЗУ (171). Использование набора символов 8x8 из ПЗУ (172). Использование набора символов 8x16 из ПЗУ (172). Получение информации об используемом наборе символов - подфункция 30п (172)
10.3. Определение конфигурации и выбор программы распечатки экрана -функция 12h ........................................................................................... 173
Определение конфигурации EGA/VGA - подфункция 10п (173). Выбор программы печати экрана - подфункция 20п (174). Выбор количества линий развертки в текстовом режиме - подфункция 30h (174). Запрещение переустановки палитры - подфункция 31h (174). Управление доступом к VGA -подфункция 32h (175). Управление преобразованием серого цвета - подфункция ЗЗп (175). Эмуляция курсора CGA - подфункция 34h (176). Выбор активного дисплея - подфункция 35h (176). Гашение экрана - подфункция 36h (177)
10.4. Вывод текстовой строки - функция 13h ............................................... 177
10.5. Чтение/запись конфигурации видеосистемы - функция lAh................178
Чтение конфигурации видеосистемы - подфункция 00h (178). Запись конфигурации видеосистемы - подфункция Olh (178)
10.6. Получение данных о состоянии VGA - функция lBh.......................... 178
10.7. Сохранение/восстановление состояния видеоадаптера -
функция ICh .......................................................................................... 182
Определение размера буфера - подфункция 00h (182). Сохранение текущего состояния видеоадаптера - подфункция Olh (183). Восстановление текущего состояния видеоадаптера -подфункция 02h (183)
Глава 11
ОБЛАСТЬ ДАННЫХ ВИДЕОФУНКЦИЙ BIOS ............................................... 184
11.1. Переменные в младших адресах памяти............................................... 184
11.2. Таблица окружения................................................................................ 184
Таблица параметров (185). Область сохранения (187). Вспомогательная таблица символов текстового режима (187). Вспомогательная таблица символов для графического режима (187) Глава 12
ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ MS-DOS ДЛЯ УПРАВЛЕНИЯ ВИДЕОАДАПТЕРАМИ ....................................................................................... 188
12.1. Вывод символов - функция 02h ............................................................ 188
12.2. Вывод строки на экран дисплея - функция 09h................................... 188
Глава 13
СТАНДАРТНЫЕ ФУНКЦИИ ВЫВОДА ЯЗЫКА Си...................................... 188
13.1. Вывод на дисплей через стандартный выходной поток........................ 188
Функции putcharO и putc() (188). Функция puts() (190). Функция printfO (190)
13.2. Вывод символов на консоль................................................................. 192
Функция putchO (192). Функция cputsO (192). Функция cprintfO (193)
Глава 14
ОПРЕДЕЛЕНИЕ КОНФИГУРАЦИИ - ФУНКЦИЯ _getvideoconfig()............ 194
Глава 15
ФУНКЦИИ УПРАВЛЕНИЯ ВИДЕОАДАПТЕРОМ.......................................... 197
15.1. Функция _displaycursor() .....................................................................197
15.2. Функция _gettextcursor() ......................................................................197
15.3. Функция _settextcursor()......................................................................198
15.4. Функция _gettextposition() ...................................................................199
15.5. Функция _settextposition() ................................................................... 199
15.6. Функция _getbkcolor() .........................................................................200
15.7. Функция _setbkcolor() ........................................................................201
15.8. Функция _getlextcolor() ......................................................................202
15.9. Функция _settextcolor() ........................................................................202
15.10. Функция _outtext() ...............................................................................203
15.11. Функции _setactivepage(), _setvisualpage(), _getactivepage()
и _getvisualpage() ..................................................................................203
15.12. Функция _setvideomode() .....................................................................205
15.13. Функция _clearscreen() ........................................................................207
15.14. Функция _settextwindow0 ...................................................................208
Глава 16
ОСНОВНЫЕ ГРАФИЧЕСКИЕ ФУНКЦИИ......................................................209
16.1. Функция _setpixel() ..............................................................................209
16.2. Функция JinetoO.................................................................................209
16.3. Функция _moveto() ..............................................................................209
16.4. Функция _rectangle() ...........................................................................210
16.5. Функция _ellipse()...............................................................................211
16.6. Функция _агс() .....,...............................................................................212
16.7. Функция _pie() .....................................................................................213
16.8. Функция _setcolor() ............./...............................................................213
16.9. Функция _selectpalette() .......................................................................214
16.10. Функция _setlinestyle() .......................................................................• 214
16.11. Функция _setviewport() ........................................................................215
16.12. Функция _setvieworg() .........................................................................215
16.13. Функция _setvideomoderows() .............................................................215
16.14. Функция _getimage() ............................................................................216
16.15. Функция _putimage() ............................................................................217
16.16. Функция _imagesize() ...........................................................................217
Приложение 1
ТАБЛИЦЫ ASCII-КОДОВ СИМВОЛОВ ....................................................:......219
Приложение 2
РУСИФИКАЦИЯ ВИДЕОАДАПТЕРОВ............................................................221
Приложение 3
УСТАНОВКА ПЕРЕКЛЮЧАТЕЛЕЙ НА ПЛАТЕ ВИДЕОАДАПТЕРА EGA . 253
Приложение 4
РЕЖИМЫ РАБОТЫ ВИДЕОАДАПТЕРОВ ......................................................255
Приложение 5
ОБЛАСТЬ ДАННЫХ BIOS ДЛЯ CGA/EGA/VGA ..'.........................................260
Приложение 6
ПОРТЫ ВВОДА/ВЫВОДА ВИДЕОАДАПТЕРА CGA .....................................262
Приложение 7
РЕГИСТРЫ КОНТРОЛЛЕРА ЭЛТ
Motorola 6845 ................................................................................................... 262
Приложение 8
ПОРТЫ ВВОДА/ВЫВОДА ВИДЕОАДАПТЕРОВ EGA И VGA ......................263
Приложение 9
РЕГИСТРЫ КОНТРОЛЛЕРА ЭЛТ EGA/VGA.................................................264
Приложение 10
РЕГИСТРЫ СИНХРОНИЗАТОРА EGA/VGA..................................................265
Приложение 11
РЕГИСТРЫ ГРАФИЧЕСКОГО КОНТРОЛЛЕРА EGA/VGA ..........................266
Приложение 12
РЕГИСТРЫ КОНТРОЛЛЕРА АТРИБУТОВ EGA/VGA ..................................266
Приложение 13
РЕГИСТРЫ ЦИФРО-АНАЛОГОВОГО ПРЕОБРАЗОВАТЕЛЯ VGA..............267
Приложение 14
ВКЛЮЧАЕМЫЙ ФАЙЛ SYSP.H .......................................................................268
Приложение 15 4fc.
ВКЛЮЧАЕМЫЙ ФАЙЛ SYSGRAPH.H.............................................................277
Приложение 16
ВКЛЮЧАЕМЫЙ ФАЙЛ VGA_NEW.H ..............................................................278
Приложение 17
СЛОВАРЬ ТЕРМИНОВ И ИНОСТРАННЫХ СЛОВ........................................279
СПИСОК ЛИТЕРАТУРЫ...................................................................................280

Цена: 100руб.

Назад

Заказ

На главную страницу

Hosted by uCoz