Математика | ||||
Фролов Л. В., Фролов Г. В. 1 Программирование пидеоадаптсроп. - М.: ДИАЛОГ-МИФИ, 1995. -272 с. - (Библиотека системного программиста; Т. 21) ISBN 5-86404-066-5 (Т. 21) Книга представляет собой новую редакцию третьего тома "Библиотеки системного программиста" и посвящена программированию видеоадаптеров. D ней рассмотрены различные типы современных видеоадаптеров, в том числе адаптеры SVGA, описаны их регистры, организация видеопамяти. Представлены основные приемы программирования видеоадаптеров. Книга предназначена для специалистов по вычислительной технике, системных и прикладных про]раммистов, студентов и преподавателей вузов, специализирующихся на вычислительной технике. | ||||
ВЕДЕНИЕ В третьем томе "Библиотеки системного программиста", который называется "Программирование видеоадаптеров CGA. EGA и VGA", мы уже рассказывали вам о видеоадаптерах. За несколько лет, прошедших с момента выхода в свет этого тома, появилось много новых моделей видеоадаптеров, обеспечивающих высокую разрешающую' способность и большее количество одновременно отображаемых цветов. Сегодня видеоадаптеры MDA, CGA, Hercules и EGA вытеснены различными моделями адаптеров VGA и SVGA. Поэтому мы убрали материал, относящийся к старым видеоадаптерам, и добавили информацию о видеоадаптерах SVGA. В частности, нами описан стандарт VESA, которому соответствуют многие адаптеры SVGA. Благодаря стандарту VESA вы сможете легко программировать видеоадаптеры в режимах с высоким разрешением и большим количеством цветов. Нами подробно описана архитектура видеоадаптеров, совместимых с VGA, их регистры. Воспроизводится формат регистров и описывается их назначение. В наиболее интересных случаях представлены программы, использующие непосредственный доступ к регистрам. Вы сможете получить на экране своего компьютера видеоэффекты, недоступные при использовании только функций BIOS или функций библиотек трансляторов языков высокого уровня. В книге подробно рассмотрены стандартные режимы работы видеоадаптеров, структура видеопамяти в этих режимах. Знание структуры видеопамяти позволяет создавать программы, отображающие информацию на экране путем непосредственного доступа к видеопамяти. А это, в свою очередь, важно для быстрых видеопрограмм, в частности динамичных игр и графических редакторов. В качестве примера рассмотрены два нестандартных режима видеоадаптера VGA. Они не поддерживаются функциями BIOS и позволяют отображать 256 цветов с высокой разрешающей способностью. ¦ Далее в книге излагаются традиционные методы управления видеоадаптерами. Приведен обзор всех прерываний и функций BIOS, предназначенных для работы с видеоадаптерами. Описываются наиболее важные функции стандартной библиотеки трансляторов Borland C++. Применение каждой группы функций иллюстрируется примерами программ. Большое количество программ, составленных с использованием таких распространенных языков программирования, как Си и ассемблер, значительно облегчают понимание материала, изложенного в книге. Дополнительно к книге можно купить дискету, содержащую исходные тексты всех разработанных программ, описанных в книге. Как связаться с авторами АвтоРЫ имеют почтовый адрес в се»ти GlasNet. Все свои замечания и предложения к держанию книг серий "Библиотека системного программиста" и "Персональный ютер - шаг за шагом" можно присылать по следующему адресу: lov@gl as.ape.ora ОГЛАВЛЕНИЕ ВВЕДЕНИЕ......................................................................................................3 1. ВИДЕО ПОДСИСТЕМА КОМПЬЮТЕРА................................................5 Мониторы...................................................................................................8 2. РЕЖИМЫ РАБОТЫ ВИДЕОАДАПТЕРОВ..........................................12 Режимы 0 и 1...........................................................................................14 Режимы 0* и 1*........................................................................................15 Режимы 0+ и 1+......................................................................................16 Режимы 2 и 3...........................................................................................16 Режимы 2* и 3*........................................................................................16 Режимы 2+ и 3+......................................................................................16 Режимы 4 и 5...........................................................................................17 Режим 6....................................................................................................17 Режим 7.................................................................................................... 17 Режим 7+......................................................¦............................................17 Режимы 8, 9 и OAh...................................................................................18 Режим ODh...............................................................................................18 Режим OEh................................................................................................18 Режим OFh................................................................................................19 Режим 10h................................................................................................. 19 Режим lib.................................................................................................20 Режим 12h.................................................................................................20 Режим 13h.................................................................................................20 3. АРХИТЕКТУРА ВИДЕОАДАПТЕРОВ...................................................21 Монитор...................................................................................................22 Видеопамять.............................................................................................23 Текстовые режимы..............................................,............'...............................24 Видеопамять в графических режимах............................................................35 Графический контроллер................................................................................43 Последовательный преобразователь...............................................................45 . Контроллер атрибутов...............,....................................................................45 \ Контроллер ЭЛТ.............................................................................................47 | Синхронизатор................................................................................................47 * Системы с двумя видеоадаптерами........................................................49 4. РЕГИСТРЫ ВИДЕОАДАПТЕРОВ...........................................................50 Краткий обзор..........................................................................................50 Внешние регистры...................................................................................53 Регистр определения различных режимов работы (Miscellaneous Output Register - MOR)............................................................53 Регистр управления дополнительным устройством (Feature Control Register - FCR).....................................................................54 Регистр состояния 0 (Input Status Register 0 - 1SR0)......................................55 Регистр состояния 1 (Input Status Register 1 - 1SR0)......................................57 Регистр разрешения работы системы VGA (VGA Enable Register - VGA_ER)....................................................................61 Регистр сброса триггера-защелки светового пера (Light Pen Latch Reset Register - LPLRR)........................................................61 Регистр установки триггера-защелки светового пера (Light Pen Latch Set Register - LPLSR)............................................................61 Регистры контроллера ЭЛТ....................................................................61 Общая длина линии горизонтальной развертки (Horizontal Total Register - HTR)....................................................................66 Длина отображаемой части горизонтальной развертки (Horizontal Display Enable End Register - HDER)..........................................66 Начало импульса гашения луча горизонтальной развертки (Start Horizontal Blank Register - SHBR) ......................................66 Конец импульса гашения луча горизонтальной развертки (End Horizontal Blank Register- EHBR)..........................................................66 Начало импульса горизонтального обратного хода луча (Start Horizontal Retrace Register - SHRR)......................................................67 Конец импульса горизонтального обратного хода луча (End Horizontal Retrace Register- EHRR).......................................................67 Число горизонтальных линий растра (Vertical Total Register - VTR).............67 Дополнительный регистр (Overflow Register - OVR).......................................68 Предварительная установка горизонтальной развертки (Preset Row Scan Register - PRSR)..................................................................68 Высота символов текста (Max Scan Line Register - MSLR)............................69 Начальная линия курсора (Cursor Start Register - CSR).................................70 Конечная линия курсора (Cursor End Register - CER)..................................70 Регистры начального адреса...........................................................................73 Регистры, определяющие положение курсора...............................................74 Начало обратного вертикального хода луча (Vertical Retrace Start Register - VRSR)............................................................75 Конец обратного вертикального хода луча (Vertical Retrace End Register - VRER)............................................................76 Регистр адреса светового пера (Light Pen Address Register - LPAR)...............76 Завершение отображения вертикальной развертки (Vertical Display End Register - VDER)............................................................76 Логическая ширина экрана (Offset Register - OFR).......................................77 Положение подчеркивания симвела (Underline Location Register - ULR)... '-.I Начало импульса гашения вертикальной развертки (Start Vertical Blank Register- SVBR)........................................................ il Конец импульса гашения вертикальной развертки (End Vertical Blank Register - EVBR)...................................................S] Управление режимом (Mode Control Register- MCR)............... ........&± Регистр сравнения линий (Line Compare Register - LCR).......................S3 /swof-mm Регистры синхронизатора.......................................................................88 Регистр сброса синхронизатора (Reset Register - RR)....................................88 Регистр режима синхронизации (Clock Mode Register - CMR).....................89 Регистр разрешения записи цветового слоя (Color Plane Write Enable - CPWE).................................................................89 Регистр выбора знакогенератора (Character Generator Select Register - CGSR)..................................................91 Регистр определения структуры памяти (Memory Mode Register - MMR)....92 Регистры графического контроллера.....................................................92 Регистр установки/сброса (Set/Reset Register- SRR).....................................95 Регистр разрешения установки/сброса (Set/Reset Enable Register - SRER) ...95 Регистр сравнения цветов (Color Compare Register - CCR)...........................97 Регистр циюшческого сдвига и выбора функции (Data Rotate & Function Select - DRFS).........................................................98 Регистр выбора читаемого слоя (Read Plane Select Register - RPSR).............99 Регистр режима работы (Mode Register - MDR)..........................................100 Регистр смешанного назначения (Miscellaneous Register - MIR).....,...........103 Регистр маскирования цветовых слоев (Color Don't Care Register - CDCR)..............................................................103 Регистр битовой маски (Bit Mask Register- BMR)......................................104 Чтение таблиц знакогенератора....................................................................105 Регистры контроллера атрибутов..........................................................112 Регистры цветовой палитры (0-15) (Color Palette Register's - CPR).............112 Регистр упраатения режимом (Mode Control Register - MCR)....................113 Регистр цвета рамки экрана (Screen Border Color Register - SBCR)............114 Регистр разрешения цветового слоя (Color Plane Enable Register- CPER)............................................................114 Регистр горизонтальной свертки (Horizontal Panning Register - HPR)........115 Регистр выбора цвета (Color Select Register- CSR)......................................123 Регистры цифро-аналогового преобразователя VGA..........................123 Регистр маскирования пикселов (Pixel Mask Register - PMR).....................124 Регистр состояния ЦАП (DAC State Register - DAC_SR)............................124 Индекс читаемого регистра таблицы цветов (Look-up Table Read Index Register - LTRIR)...."...........................................125 Индекс записываемого регистра таблицы цветов (Look-up Table Write Index Register - LTWIR)..............................................125 Регистр данных таблицы цветов (Look-up Table Data Register - LTDR)......125 Нестандартные режимы видеоадаптера VGA.......................................130 Организация видеопамяти............................................................................131 Режим 320x400 пикселов, 256 цветов...........................................................132 Режим 360x480 пикселов, 256 цветов...........................................................141 5. ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ BIOS ДЛЯ РАБОТЫ С ВИДЕОАДАПТЕРАМИ............................................................................150 Выбор режима работы - функция OOli..................................................151 Изменение формы курсора - функция 01h..........................................152 Изменение положения курсора - функция 02h...................................152 Определение положения и формы курсора - функция 03h................153 Использование светового пера - функция 04h....................................153 Выбор активной страницы видеопамяти - функция 05h....................153 Свертка окна вверх - функция 06h.......................................................154 Свертка текстового окна вниз - функция 07h......................................155 Чтение символа и его атрибутов - функция 08h..................................155 Запись символа с атрибутами в текущей позиции курсора - функция 09h...........................................................................156 Запись символа в текущей позиции курсора - функция OAh............159 Установка цветовой палитры (режимы 4, 5, 6) - функция OBh........159 Вывод пиксела - функция ОСЬ..............................................................160 Чтение пиксела - функция ODh............................................................162 Запись символа в режиме телетайпа - функция OEh..........................162 Определение текущего режима работы видеоадаптера - функция OFh............................................................,...............................163 Управление регистрами палитры - функция 10h.................................163 Установка регистра палитры - подфункция 00h..........................................164 Установка цвета рамки - подфункция 01h...................................................165 Установка всех регистров палитры - подфункция 02h................................166 Управление атрибутом мигания и атрибутом интенсивности - подфункция 03h................................................................166 Чтение регистра палитры - подфункция 07h...............................................167 Чтение регистра цвета рамки - подфункция 08h.........................................167 Чтение всех регистров патитры - подфункция 09п.....................................167 Установка регистра таблицы цветов (регистров ЦАП) - подфункция 1 Oh..168 Установка нескольких регистров таблицы цветов (регистров ЦАП) - подфункция 121i............................................................................................168 Выбор подмножества цветов - подфункция 13h..........................................169 Чтение регистра таблицы цветов - подфункция 15h....................................169 Чтение нескольких регистров таблицы цветов (регистров ЦАП) - подфункция 17h............................................................170 Определение режима подмножества цветов - подфункция lAh..................170 Установка палитры из градаций серого цвета - подфункция lBh...............171 Загрузка таблиц знакогенератора - функция llh.................................174 Загрузка набора символов пользователя - подфункция 00h........................174 Загрузка набора символов из BIOS - подфункция 01h...............................175 Загрузка набора символов из BIOS - подфункция 02h...............................175 Выбор активных таблиц знакогенератора - подфункция 03h......................175 Загрузка набора символов из BIOS - подфункция 04h...............................176 Установка вектора прерывания lFh - подфункция 20h...............................176 Установка набора символов для графических режимов - подфункция 2Ш............................................................................................176 Установка набора символов 8x14 из ПЗУ BIOS..........................................177 Установка набора символов 8x8 из ПЗУ BIOS............................................177 Установка набора символов 8x16 из ПЗУ BIOS..........................................177 Получение информации об активном наборе символов - подфункция 30h............................................................................................178 Определение конфигурации и выбор программы распечатки экрана - функция 12h.........................................................178 Определение конфигурации видеоадаптера - подфункция 10h...................179 Выбор программы печати экрана - подфункция 20h..................................179 Выбор количества линий развертки в текстовом режиме - подфункция ЗОп............................................................................180 Запрещение переустановки палитры - подфункция 31h.............................180 Управление доступом к видеоадаптеру - подфункция 32h..........................180 Управление преобразованием серого цвета - подфункция 33h...................180 Эмуляция курсора CGA - подфункция 34h.................................................181 Выбор активного монитора - подфункция 35п.............................................1S1 Гашение экрана монитора - подфункция 36h.............................................182 Вывод текстовой строки - функция 13h...............................................182 Чтение/запись конфигурации видеосистемы - функция 1Ап...........183 Чтение конфигурации видеосистемы - подфункция 00h............................ 1S3 Запись конфигурации видеосистемы - подфункция Olh.............................184 Получение данных о состоянии VGA - функция lBh.........................184 Сохранение/восстановление состояния видеоадаптера - функция ICh.........................................................................................:. 187 Определение размера буфера - подфункция ООп.........................................188 Сохранение текущего состояния видеоадаптера - подфункция Olh...............188 Восстановление текущего состояния видеоадаптера - подфункция 02п.....188 Русификация видеоадаптеров................................................................189 6. ОБЛАСТЬ ДАННЫХ ВИДЕОФУНКЦИЙ BIOS...................................202 Переменные в младших адресах памяти.................,..............................202 Таблица окружения................................................................................205 Таблица параметров......................................................................................205 Область сохранения...................................................................................„.208 Таблица символов текстового режима..........................................:...............208 Таблица символов графического режима.....................................................209 Дополнительная таблица окружения....................................................209 Вторая таблица символов текстового режима..............................................210 Таблица кодов комбинаций мониторов.......................................................210 Таблица настройки палитры..........................................................................210 7. ВИДБОАДАПТЕРЫ SVGA......................................................................214 Видеопамять SVGA.................................................................................214 Слоеный пирог.............................................................................................215 Увидеть весь мир через замочную скважину...............................................215 Больше цветов - больше бит........................................................................216 Стандарт VESA........................................................................................218 Получить информацию о реализации VBE и видеоадаптере......................218 Получить информацию о режиме видеоадаптера........................................220 Установить режим видеоадаптера.................................................................229 Определить текущий режим видеоадаптера.................................................231 Сохранить/восстановить состояние видеоадаптера......................................231 Управление адресацией видеопамяти...........................................................231 Установить/определить длину строки развертки.........................................24' Установить/определить видимую область экрана........................................24f Установить/определить разрядность регистров ЦАП..................................24: Управление монитором..........................................................................24( Определение возможностей управления......................................................24' Включить режим сохранения электроэнергии.............................................24" Определить состояние монитора..................................................................24! Графические акселераторы....................................................................251 8. ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ MS-DOS ДЛЯ УПРАВЛЕНИЯ ВИДЕОАДАПТЕРАМИ............................................25: Вывод символов - функция 02h............................................................25: Вывод строки на экран монитора - функция 09h................................25: 9. СТАНДАРТНЫЕ ФУНКЦИИ ВЫВОДА ЯЗЫКА СИ.........................25' Функции putchar и putc..........................................................................25' Функция puts...........................................................................................25: Функция printf.........................................................................................25: Функция putch........................................................................................25' Функция cputs.................-........................................................................25! Функция cprintf.......................................................................................25! ПРИЛОЖЕНИЯ.............................................................................................25! Таблицы ASCII-кодов символов...........................................................25' Порты ввода/вывода видеоадаптеров EGA и VGA..............................26i Регистры контроллера ЭЛТ...................................................................26 Регистры синхронизатора......................................................................26: Регистры графического контроллера....................................................26 Регистры контроллера атрибутов..........................................................26 Регистры цифро-аналогового преобразователя VGA..........................26 ЛИТЕРАТУРА...............................................................................................26 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ.....................................................................26 Цена: 100руб. |
||||