Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме.

В текстовом режиме на экран выводятся только - символы, а в графическом можно строить любые сложные изображения.

В текстовом режиме используется алфавитно-цифровой метод формирования изображения. Суть метода заключается в том, что изображение на экран дисплея строится из отдельных фрагментов выводимых символов (букв, цифр, математических знаков, графических элементов и др.). Каждый фрагмент представляется в виде матрицы, имеющей вид прямоугольника стандартных размеров и состоящей из определенного числа ячеек. Каждая ячейка представляет собой битовый сигнал 0 или 1

В текстовом режиме экран дисплея делится на отдельные знакоместа, в каждое из которых может быть помещен символ. Экран разбивается на 25 строк по 80 знакомест в каждой строке, чем обеспечивается вывод одновременно до 2000 символов.

В процессе работы по заданной программе записываются прообразы символьных и графических изображений, выдаваемых на экран дисплея в специальную область оперативной памяти, которая называется видеопамятью или буфером экрана. В текстовом режиме для каждого символа нужно хранить код символа и атрибут символа, т.е. указание, как изобразить символ. Поэтому каждому символу соответствуют два байта: в первом из них записывается, что следует изобразить (код символа), во втором - как это изобразить (код атрибута символа). Так как в текстовом режиме на экран одновременно выводятся 2000 символов, то для запоминания информации полного экрана требуется 4 Кбайт видеопамяти.

M R G B I R G B

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

Цвет фона Цвет символа

Мигание Интенсивность

Установка бита яркости в "1" делает цвет символа более светлым. Всего можно получить 16 цветов символа. Если бит мерцания установлен в "1", символ начинает мерцать с частотой приблизительно 4 раза в секунду.

25.Программа прерывания INT 16h (поддержка клавиатуры). Операции программы.

Команда BIOS INT 16H выполняет специальную операцию, которая в

соответствии с кодом в регистре AH обеспечивает следующие три функции

ввода с клавиатуры.

AH=00: Чтение символа. Данная функция помещает в регистр AL oчередной

ASCII символ, введенный с клавиатуры, и устанавливает скэн-код в регистре

AH. (Скэн-коды объясняются в следующем разделе). Если на клавиатуре нажата

одна из специальных клавишей, например, Номе или F1, то в регистр AL

заносится 00. Автоматическое эхо символа на экран по этой функции не

происходит.

AH=01: Определение наличия введенного символа. Данная функция

сбрасывает флаг нуля (ZF=0), если имеется символ для чтения с клавиатуры;

очередной символ и скэн-код будут помещены в регистры AL и AH

соответственно и данный элемент останется в буфере.

AH=02: Определение текущего состояния клавиатуры. Данная функция

возвращает в регистре AL состояние клавиатуры из адреса памяти шест.417:

Прерывание INТ 16Н может быть использовано программистом.

В данном примере проверяется статус клавиши «Insert» и, если режим вставки выключен, установить бит В7 в «1»:

mov ah,2 ; номер функции

int 16h ; получаем байт статуса

test al, 10000000B ; проверка бит В7

jz INSERT OFF ; если бит В7=0, то режим Insert выключен

Установка бита В7 в «1»:

INSERT OFF: mov ax, 0 ; установка сегмента данных

mov es, ax ; на начало памяти

mov al, 10000000B ; подготовка бита В7 к установке в «1»

or es:[417H] ,al ; установка бита В7 в ячейке статуса.

Рассмотрим пример составления резидентной программы, которая модифицировала бы значения, возвращаемые функцией 0 прерывания INT 16Н, следующим образом. Если на клавиатуре нажата клавиша “1” (скэн-код - 2, код символа - 31Н), то эта функция должна вернуть скэн-код 11 и код символа 30Н, т.е. параметры клавиши "0". Тогда в ПK должен быть введён символ "0", а не "1".

Пример такой программы:

.model tiny ; объявление малой модели

.code ; сегмент кола

jmp start ; новый обработчик для INT 16Н

new: jmp nach ; адрес стандартного прерывания INT 16Н

v1 dw 0

v2 dw 0

nach: sti ; установка флага прерываний

pushf ; сохранение флагов в стеке

cmp ah, 0 ; проверка типа операции прерывания

jne kon ; INT 16Н

popf

pushf ; вызов стандартного прерывания INT 16Н

call dword ptr cs:[vl]

cmp ah, 2 ; проверка скэн-кода клавиши

jne kon1

cmp al, 31 ; проверка кода символа

jne kon1

mov ax, 0B30H ; присвоение новых параметров

kon1: iret ; выход из прерывания

kon: popf ; передача управления стандартному

jmp dword ptr cs:[vl] ; прерыванию INT 16H

; замена адреса программы прерывания INT 16H

start: push cs ; объединение сегментов кода и данных

pop ds

mov ax, 3516H ; сохранение адреса стандартного

int 21H ; прерывания INT 16H в v1и v2

mov v1, bx

mov v2, es

mov ax, 2516H ; замена вектора стандартного

lea dx, new ; прерывания INT 16H на новый

int 21H ; вектор

mov dx, 30 ; закончить и остаться резидентным

mov ax, 3100H

int 21H

end

Различные программные процедуры обработки нажатия клавиш, позволяющие решить некоторые проблемы при работе с клавиатурой, приведены в работе: Джордейн Р. Справочник программиста персонального компьютера типа IBM PC, XT и AT.

26. Назначение контроллера клавиатуры ПК. (Основные функции и основные узлы).

Основными элементами схемы контроллера клавиатуры являются: регистр сдвига, схема формирования строба и D-триггер. При передаче информации от клавиатуры в контроллер данные в последовательном коде поступают на вход DI регистра сдвига. Сдвиг в этом регистре происходит при подаче импульса из схемы формирования строба. Этот импульс формируется при наличии синхроимпульсов от клавиатуры и тактовых импульсов СLК.

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

При поступлении в контроллер клавиатуры очередного скэн-кода первый маркерный бит всегда равен "1". Его появление на выходе Р регистра сдвига свидетельствует об окончании преобразования этого скэн-кода, т.е. о наличии на выходе регистра данных для передачи в CPU. Этот сигнал подается на вход D-триггера, который изменяет свое состояние, формируя сигнал запроса на прерывание в БИС 8259А.

При необходимости CPU может заблокировать передачу данных с клавиатуры в контроллер путем подачи управляющих сигналов через биты В6 и В7 порта В БИС 8255А. Данные с клавиатуры могут быть преобразованы в регистре сдвига, когда сигнал В7, подключенный ко входу разрешения #ОЕ, равен "0". Сигнал разрешения сдвига можно сформировать следующим образом (адрес порта В в ПК – 61Н):

in al, 61H ; чтение содержимогопорта В

and al, 01111111B

out 61H, al ;запись "0" в В7

Значение В6 = 1 разрешает поступление синхронизирующих импульсов с клавиатуры. Когда бит В6 равен "0", передача данных из клавиатуры будет заблокирована.

27. Основные этапы выполнения программы прерывания INT 9 (ввод данных из клавиатуры).

1. Чтение SCANCODE из порта А (in AL, 60H).

2. Выдача сигнала подтверждения приёма кода.

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

Эта процедура устанавливает D-триггер в 0-е состояние и обнуляет регистр сдвига.

3. Определение функционального назначения нажатой клавиши (символ, функция управления).

Если нажата клавиша изменяющая биты статуса (Alt, Ctrl, Shift), то информация об этих нажатиях фиксируется в ячейках по адресу 417h или 418h.

4. Проверка наличия свободного места в буфере клавиатуры (буфер представлен в виде кольца). Если место есть, то при нажатии символьной клавиши, SCANCODE пр. в код символа. В случае переполнения буфера (указатель головы «догнал» указатель хвоста) очередное слово не записывается, и подается звуковой сигнал.

5. Выход из программы int 9h.

Нажатие «системной» комбинации Ctrl+Alt+Del, кла­виши PrintScreen (SysRq) и некоторых других к записи в клавиатурный буфер не приводит, а вызывает специальные процедуры.

28. Блок-схема клавиатуры. Формирование данных для передачи в ПК. Интерфейс связи клавиатуры с ПК. Временная диаграмма передачи данных от клавиатуры в системный блок ПК.

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

рис.1

В схеме клавиатуры 2 основных узла – наборное поле и микропроцессорная схема управления. Каждой клавише присваивается № клавиши – скэнкод (9 бит, 1 бит маркерная единица). Микропроцессорная схема управления основана на базе микроконтроллера.

Функции МПУ:

1. Сканирование наборного поля.

2. Определение скэнкода нажатой клавиши.

3. Организация последовательной передачи данных скэнкода нажатой клавиши в контроллер клавиатуры.

Обнаружение нажатой клавиши определяется путем непрерывного сканирования наборного поля, которая заключается в циклической посылке сигнала “0” послед-но на каждый из столбцов и считывание кода строк. МПр считывает коды строк и при отсутствии нажатой клавиши все сигналы на линии будут =1. При нажатии соотв-ей клавиши (строки, столбца) замыкается и сигнал нуля по этой строке будет поступать в МПр-ую схему, она определяет столбец, затем N нажатой клавиши. Определив скэнкод нажатой клавиши МПр-ая схема по линии данных в последовательном коде, выдает информацию о нажатой клавише. Каждый передаваемый бит сопровождается синхроимпульсом.

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

рис.2

Код передаваемых данных начинается с одной доп-но передаваемой “1”- маркерная единица, затем в последовательном коде байт данных. ”1” сообщает контроллеру клавиатуры о начале передачи очередного байта.

Работу двунаправленного интерфейса иллюстрирует рис.2, а. В исход­ном состоянии обе линии «отпущены» выходными формирователями в состо­яние с высоким уровнем. Клавиатура может начать передачу данных в произвольный момент, когда интерфейс находится в покое. Клавиатура формирует старто­вый бит (низкий уровень) на линии KB-Data и первый импульс KB-Clock, что яв­ляется сигналом контроллеру о необходимости начала приема. После подъема KB-Clock она выводит 0-й бит данных на линию KB-Data, а затем и следующий им­пульс KB-Clock. Контроллер должен «защелкивать» принятый бит данных по спа­ду KB-Clock. Так передаются все 8 бит данных и бит паритета, дополняющий чис­ло единичных бит до нечетного. После синхроимпульса бита паритета контроллер клавиатуры должен сформировать импульс KB-Clock, подтверждающий прием байта (Ack). Если весь байт с битом паритета не будет получен контроллером за 2 мс, контроллер прекращает прием данного байта и фиксирует ошибку тайм-аута.

Формирование сигналов R, G, B для монитора при работе видеоадаптера CGA в текстовом режиме. - student2.ru

Рис. 2. Временные диаграммы интерфейса клавиатуры: а — прием посылки от клавиатуры, б — передача команды в клавиатуру.

Обратная передача — вывод команды контроллера в клавиатуру — происходит несколько сложнее (рис. 2, б). Из состояния покоя контроллер устанавливает низкий уровень KB-Clock на 250 мкс и формирует старт-бит (низкий уровень) — это сигнал клавиатуре на прием команды. На него клавиатура должна ответить серией из 11 импульсов KB-Clock. По спаду очередного синхроимпульса контрол­лер выставляет очередной бит данных, а клавиатура его «защелкивает» по фронту формируемого ею же синхроимпульса. После бита паритета (9-й импульс) и единич­ного стоп-бита (10-й) на 11-м импульсе клавиатура формирует нулевой бит под­тверждения (Ack). После этого контроллер формирует импульс KB-Clock (60 мкс), который является запросом на прием ответа клавиатуры. Контроллер ожидает окончания ответа на этот запрос не более 20 мс и, если ответ не придет за это время, сформирует ошибку тайм-аута. Ошибка будет также в случае, если клавиатура не введет первый синхроимпульс за 15 мс от начала запроса или контроллер не примет данные, включая стоп-бит, за 2 мс с момента появления синхроимпульса бита 0.

29. Классификационные характеристики стандартных интерфейсов ПК.

Стандартные интерфейсы ПК делятся на следующие группы:

по функциональному назначению:

- локальные

- системные

- внешние

- сетевые

по способу передачи:

- последовательные

- параллельные

- параллельно-последовательные

по типу соединений (передачи):

- радиальный

- одноточечный

- магистральный

по режиму обмена:

- симплексный (односторонний)

- полудуплексный

- дуплексный

- мультиплексный

по принципу обмена информацией:

- синхронный (тактируемый)

- асинхронный (нетактируемый)

Наши рекомендации