Математика | ||||
Фролов А.В., Фролов Г.В. 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руб. |
||||