Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Видеопамять. Организация работы с видеопамятью.






Для работы с графическими возможностями видеоадаптера имеются в наличии специальные регистры чтения, записи, а так же спец. режимы работы. (VGA)

При использовании графического режима адрес видеобуфера начинается с адреса АООО: 000. Адресное пространство видеобуфера составляет 64 Кбайт. При этом реальный размер буфера составляет 256 Кбайт.

Содержимое видеопамяти формируется содержимым четырех битовых плоскостей. Каждая битовая плоскость отвечает за свой цвет. Байт битовой плоскости соответствует 8 пикселям экрана, таким образом, цвет каждой точки формируется 4 битами и содержит 16 цветов. 4 битовым плоскостям соответствует 4 регистра защелки. При чтении из видео памяти регистры защелки заполняются соответствующим содержимым, т.е. цветами 8 пикселей.

Основные регистры видеоадаптера:

1) Регистр 0 (регистр установки/ сброса)- позволяет установить или сбрасывать значение байта в 4х битовых плоскостях. 2) Регистр 1(разрешение установки/сброса)-управляет работой регистра установки сброса, записывая какой-либо бит этого регистра. 3) Регистр 2(регистр сравнения)- определяет цвет для режима чтения 1.

4)Регистр 3(регистр циклического сдвига данных)-регистр выбора функций, в этом регистре независимо друг от друга работают две битовые группы. Группа из трех бит (0-2) определяет циклический сдвиг байта, передаваемого из микропроцессора в видеопамять. Сдвиг осуществляется слева на право. Группа из двух битов (3 и 4) определяют логическую операцию, выполняемой, при передаче видеопамять данных микропроцессора и содержимым буфера данных видеопамяти. Если биты =0, то байт передается без изменений. Если 3=1, а 4=0, то выполняется операция «и», если 3=0, а 4=1, то выполняется операция «или», если 3=1, 4=1 «XOR»(исключающее или)

5)Регистр 4(регистр выбора битовой плоскости) - Используется для выбора битовой плоскости в операциях чтения из видеопамяти.

6)Регистр 5(предназначен для выбора режима чтения/записи)- 0 и 1 бит устанавливают режим записи, 3 бит устанавливает режим чтения.

7)Регистр 6(регистр добавочных функций)- 0 бит выбирает алфавитно-цифровой режим или графический. 1 бит – это выбор, отображаемый на экране страницы. Биты 2 и 3 определяют диапазоны адресов памяти, выводимые на экран.

8)Регистр 7 (регистр запрещения цвета)- В режиме чтения запрещает передачу цвета или набор цветов в микропроцессор.

9)Регистр 8 (регистр битовой маски)- Если бит в регистре установлен в 1цу, то соответствующий

пиксель байта видеобуфера модифицируется операцией записи.

Режим работы видеоадаптера.

1)Режим чтения 0-данный режим устанавливается по умолчанию. Во время загрузки машины процессор получает байт содержащийся в одной из битовых плоскостей. Номер битовой плоскости помещается в регистр выбора битовой плоскости.

2)Режим чтения 1- в этом режиме результат сравнения содержимого регистра сравнения цвета, каждого из восьми пикселей передается микропроцессору. Если сравнение покажет идентичность, то соответствующий бит будет =1.

3)Режим записи 0-если в регистре разрешения установки/сброса содержится 0F(H), то байт видеопамяти передается из регистра установки/сброса.

4)Режим записи 1- при этом режиме, данные передаются из регистров защелки непосредственно в видеопамять. Режим используется для передачи данных из одной области памяти в другую.

5)Режим записи 2- цвет точки передается непосредственно процессором через регистр сдвига.

6)Режим записи 3- основан на режиме записи 0 с участием байта данных от процессора, предварительно над этим байтом производится сдвиг согласно регистру сдвига. Далее над ним и байтом регистром битовой маски проводится операция «и». Результирующий байт будет байтом для маскирования пикселей. Кроме того регистр разрешения установки/сброса не влияет, т.к. его биты участвуют в формировании битовых плоскостей.

 

21. Понятие драйвера. Основные функции. 1)После загрузки ЭВМ драйверы становятся частью операционной системы, т.е. система выделяет под них и может к ним обращаться. 2)Драйверы попадают в память раньше, чем обычные программы, поэтому они могут перехватывать прерывание и раньше выделять для себя память.3) Интерфейс с загруженными драйверами можно осуществлять посредством прерываний, так и через имя, т.е. имя драйвера становится известно системе. Если имя устройства будет совпадать со стандартным именем, то загруженный драйвер заменит стандартный драйвер.

Операционная система управляет различными устройствами через драйверы, каждый драйвер содержит имя устройства, которым он управляет и операционная система находит нужный драйвер, рассматривая список установленных драйверов.

В первой списке находится драйвер IVULL с именем «нуль» и содержит указатель на следующий драйвер. Указатель в последнем драйвере содержит -1, что означает конец списка.

При Установке нового драйвера, они становятся сразу после нулевого, таким образом стандартные драйвера становятся в списке последними. И операционная система обращается к ним только после просмотра всего списка, если в нем не найдено соответствующего имени.

Драйвер должен состоять из: 1) Заголовок устройства- помещается вначале драйвера и имеет следующую структуру: Dword-указатель на следующий драйвер. 2)Атрибут. 3) Указатель на программу прерывания. 4) Символьное имя драйвера.

При этом различается два типа: драйвер символьного устройства и драйвер блокового устройства. Символьное устройство осуществляется послед. ввод/вывод. Блоковое устройство осуществляет выборочный ввод/вывод параллельных данных.

Процедура стратегии служит для передачи драйверам команд и данных, а также для получения от драйвера кода возврата данных. В процедуре стратегии через пару регистров ES и BX драйверу передаются адреса запросов. В запросе содержится команда драйверу и необходимые для выполнения команды данные. Здесь же драйвер хранит код возврата и данные, передаваемые драйверам системы. В общем случае процедура стратегии предусмотрена для использования драйвера в мультипрограммной среде.

Процедура прерывания анализирует передаваемый запрос, выполняет команду, код которой содержит в запросе и выставлен в слове состояния результат выполненной операции. Фактически процедура прерывания является точкой входа, к ней обращение происходит сразу после обращения к процедуре стратегии.

Команды выполняемые драйверами:

1)INI –инициализация (код 0)-выполняется всегда после загрузки драйвера и только один раз. Эту процедуру используют для установки векторов прерываний и вывода сообщений.

2)Check_Media –проверка диска(код 1)-используется только с блоковыми устройствами. Проверяет не менялся ли диск.

3)BPB-команда построения(код 2)используется каждый раз после сообщения о смене диска.

4)YBB-команда чтения (код 3)- используется драйвером для возвращения управляющей информацией об устройстве.

5)INPUT-чтение для блоковых и символьных устройств (код 4). Драйвер считывает данные с устройства и передает системе.

6)READ_NO_WAIT-процедура небуфирезированного чтения (код 5) используется в драйверах символьных устройств. Фактически данные в операционной системе не передаются, а система лишь получает сигнал о том, есть ли данные для ввода или нет.

7)INPUT_STATUS процедура проверки состояния(код 6). Используется только для символьного устройства, проверяет готовность устройства к работе.

8)INPUT_FLUSH процедура сброса и очистки кода(код7). Применяется для символьных устройств для очистки буфера.

9)OUTPUT-запись для блоковых и символьных устройств (код 8). Предназначен для записи данных на внешние устройства.

10)VERIFY_OUTPUT- запись с проверкой (код 9) предназначен для записи данных, а затем их считывания и проверки.

11)OUTPUT_STATUS-состояние вывода(код 10)- проверяет состояние устройства, которое используется для вывода.

12)OUTPUT_FLUSH-команда очистки вывода (код 11)-используется для сброса входной очереди на символьное устройство

13)IOCTL_OUTPUT-проверка записи (код12)- данные передаются драйверу, но не управляющему устройству.

14-15)CLOSE(код 13)OPEN(код14)-процедура открытия/закрытия.

16)REMOVE_MEDIA-процедура открытия типа диска(код 15) –функция предназначенная для блоковых устройств, возвращает типа диска.

17)OUT_IN_BUSY-вывод пока не занята(код 16)-предназначена для символьных устройств. Выводит содержимое всего буфера на управляющее устройство.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.