Предыдущий раздел | УПРАВЛЕНИЕ УСТРОЙСТВАМИ БЕЗ ПРЕРЫВАНИЙ | Следующий раздел |
Принцип асинхронного вывода с общей памятью заключается в том, что ЦП и ИУ имеют доступ к общей области памяти, используя ее в качестве буфера для информационного обмена между ними. При этом операции записи и чтения с общей памятью ЦП и ИУ производят асинхронно, то есть независимо друг от друга. Данный принцип широко используется для управления экраном (дисплеем).
Вспомним (см. п.18.1), что часть адресного пространства ОП (112 К начиная с адреса А0000h) используется для адресации видеопамяти. Она является той самой областью памяти, с которой ЦП и ИУ работают асинхронно. Видеопамять входит в состав ИУ экрана, называемого видеоадаптером. Конструктивно такой адаптер представляет собой печатную плату, вставляемую в разъем расширения компьютера. Среди сотен существующих видеоадаптеров нами будет рассматриваться только один – CGA (Color Graphic Adapter). Являясь одним из первых видеоадаптеров (создан в 1981 году), CGA имитируется аппаратно многими другими, более современными видеоадаптерами.
Видеоадаптер (в том числе и CGA) имеет два принципиально разных режима работы – текстовый и графический. Для каждого из этих режимов CGA имеет несколько форматов. Примером формата для текстового режима является формат 80*25 – 25 строк по 80 символов в каждой строке.
Центральным модулем CGA является контроллер экрана CRT. Он устанавливает и поддерживает режим работы экрана, выполняет основную работу по интерпретации кодов ASCII, а также управляет курсором. Кроме контроллера экрана, CGA имеет порты ввода-вывода, ПЗУ с матрицей знаков, видеопамять, а также 18 регистров управления (рис.70).
В зависимости от выполняемых функций все 18 управляющих регистра контроллера можно разделить на две группы:
1) регистры, фиксирующие горизонтальные и вертикальные параметры экрана;
2) регистры визуализации.
Рис. 70. Структура адаптера дисплея
К первой группе относятся первые десять регистров с номерами от 0 до 9. Они устанавливаются один раз при задании режима работы экрана. Это делает BIOS при включении ЭВМ в сеть. Кроме того, программа может сама обратиться к BIOS с просьбой задать для экрана требуемый режим. Для этого следует использовать системный вызов “int 10h” (функция 00h). Прежде, чем выполнить данный системный вызов, программа должна занести в AL код видеорежима. Для 80x25 это 03h. Далее будем считать, что к началу выполнения любых программ на ЦП экран установлен в текстовый режим 80*25.
Регистры визуализации приведены в таб.6. Они 8-битные. Некоторые из них связаны в пары, чтобы хранить 16-битовые величины. Все регистры визуализации можно разделить на три группы:
1) регистры управления курсором;
2) регистры светового пера;
3) регистры начального адреса сканирования. Этот адрес представляет собой порядковый номер в видеопамяти того символа, который будет выводиться в верхнем левом углу экрана. Например, это может быть номер 0.
Т а б л и ц а 6. Регистры визуализации
Что касается портов, то их в CGA два (см. рис.70):
1) порт с адресом 3D4h, называемый также индексным регистром RI;
2) порт с адресом 3D5h, называемый также регистром данных RD.
Регистр RI используется для задания требуемого управляющего регистра. А регистр RD используется для записи нового содержимого того управляющего регистра, на который указывает RI. Ниже будет рассмотрено применение этих портов для управления курсором.
Предыдущий раздел | В начало | Следующий раздел |