Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Проблемы доступа к регистрам видеоадаптеров (ликбез).

Проблемы доступа к регистрам видеоадаптеров (ликбез).

Регистры видеоадаптеров EGA, VGA и SVGA, и др. используются при написании программ управления видеосистемой компьютеров на «физическом» уровне, например, программ BIOS. Программирование видеоадаптеров на уровне регистров позволяет увеличить скорость работы программ и и даже решить некоторые задачи, которые нельзя было решить при помощи функций BIOS. Но непосредственное использование регистров может вызвать ряд проблем при переносе ваших программ на другие компьютеры. Дело в том, что не все адаптеры совместимы на уровне регистров. Например, оригинальный видеоадаптер CGA был создан на основе микросхемы Motorola 6845, а видеоадаптеры EGA и VGA использовали более совершенный аналог этой микросхемы. Некоторые регистры CGA располагаются по другим адресам и могут выполнять какие-либо дополнительные функции, чем регистры EGA и VGA. Кроме того, в каждом новом видеоадаптере SVGA расширяется набор используемых регистров. Некоторые модели видеоадаптеров EGA, VGA и SVGA, поддерживают режим совместимости, когда они эмулируют адаптеры более низкого уровня (например MDA, Hercules, CGA). Эмуляция обычно происходит на уровне регистров, что гарантирует полную их совместимость. Режимы совместимости, если они поддерживаются, описаны в руководстве данного видеоадаптера.

Но на практике, для управления видеоадаптерами, специалисты рекомендуют преимущественно использовать программы-функции BIOS. Это избавит вас от неприятных минут, когда ваша работающая программа, при переносе на другую машину перестанет правильно выполняться.

Все видеоадаптеры EGA, VGA и SVGA и др. имеют большое количество регистров. Например, адаптер EGA имел уже около шестидесяти регистров, а VGA и SVGA еще больше. Но большая часть регистров EGA была доступна только для записи, что создавало определенные проблемы, особенно для мультизадачных систем. Некоторые фирмы-изготовители видеоадаптеров выпускали платы видеоадаптеров совместимые с EGA, для регистров которых разрешена также и операция чтения. А в адаптерах VGA и SVGA практически все регистры были доступны как для записи, так и для чтения (в тех случаях, когда видеоадаптеры SVGA и VGA имели отличия от EGA, на это специально указывали в документации).

Как правило, доступ к большинству регистров видеоадаптеров осуществляется в два этапа: через один порт ввода/вывода выбирается номер интересующего вас регистра, а затем через другой порт ввода/вывода осуществляется обмен данными. Такая организация регистров позволяет сэкономить большое количество портов центрального процессора. Остальные регистры адресуются непосредственно через соответствующие порты ввода/вывода - каждому регистру соответствует один порт ввода/вывода. Но нужно иметь в виду, что в различных режимах работы видеоадаптера, его регистры могут иметь различные адреса.




Лицензия