Программирование видеоадаптеров CGA,EGA и VGA


10.1. Переменные в младших адресах памяти


В младших адресах памяти 0000:0400 - 0000:0500 расположены переменные BIOS, в которых находятся основные параметры, определяющие состояние компьютера. Прикладные программы должны осторожно обращаться с этой областью памяти, так как нарушения в ней могут вызвать "зависание" системы, или другие нежелательные эффекты.

Если вы программируете видеоадаптер непосредственно через регистры, то если вы в последствии хотите вызывать функции BIOS, то рекомендуется при записи в регистры обновлять соответствующие переменные BIOS. Например если вы изменили непосредственно через регистры положение курсора, а потом хотите считать его положение при помощи функций BIOS, то надо сразу после изменения регистра изменить и соответствующую переменную BIOS (ее адрес 0000:0450). Адрес Размер Содержание 0000:0410 1 байт флаги конфигурации: биты D5 и D4 определяют тип текущего первичного дисплея: D5D4 видеоадаптер 0 0 EGA 0 1 CGA 40х25 1 0 CGA 80х25 1 1 MDA 0000:0449 1 байт текущий режим работы видеоадаптера 0000:044A слово число символов в строке 0000:044С слово размер страницы видеопамяти в байтах 0000:044E слово значение регистра начального адреса (SAR) 0000:0450 8 слов координаты курсоров для каждой страницы видеопамяти, младший байт определяет столбец, а старший строку экрана в которой находится курсор 0000:0460 слово содержимое регистров начальной и конечной линии курсора (CSR _ старший и CER _ младший байты соответственно) 0000:0462 1 байт номер активной страницы видеопамяти 0000:0463 слово адрес порта контроллера ЭЛТ (3B4 или 3D4) 0000:0465 1 байт установка регистра режима CGA (регистр MCR) 0000:0466 1 байт установка цветовой палитры CGA (регистр CSR) 0000:0484 1 байт число текстовых строк _ 1 0000:0485 слово высота символов в пикселах 0000:0487 1 байт первый байт информации о EGA: 7 6 5 4 3 2 1 0 _________________ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ _________________ _ ___ _ _ _ _ ___ если бит равен единице, то _ _ _ _ _ _ разрешена эмуляция курсора CGA; _ _ _ _ _ _ _ _ _ _ _ _____ равен единице, видеоадаптер _ _ _ _ _ подсоединен к монохрому дисплею; _ _ _ _ _ _ _ _ _ _______ единица в этом бите означает, _ _ _ _ что BIOS будет ожидать обратного _ _ _ _ вертикального хода луча для _ _ _ _ записи в видеопамять; _ _ _ _ _ _ _ _________ бит установлен, если первичным _ _ _ видеоадаптером является EGA; _ _ _ _ _ ___________ не используется; _ _ _ ______________ объем видеопамяти: _ _ 0 0 _ 64К байт, _ 0 1 _ 128К байт, _ 1 0 _ 192К байт, _ 1 1 _ 256К байт; _ _ _________________ единица означает, что последняя операция выбора режима видеоадаптера не очистила видеопамять 0000:0488 1 байт второй байт информации о EGA: 7 6 5 4 3 2 1 0 _________________ ¦ ¦ ¦ _________________ _______ _______ _ ___ положение переключателей на плате _ EGA _ ______________ значение регистра управления дополнительным устройством 0000:04A8 двойное слово адрес таблицы окружения (см. следующий раздел)

Таблица 11.1 Переменные видеофункций BIOS.









Начало    Вперед