Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Клавиатура. Байты статуса. Основные шаги обработки прерывания от клавиатуры



Нажатие/отпускание любой клавиши вызывает сигнал аппаратного (внешнего) прерывания.

• Это заставляет ПР прервать выполняемую программу и перейти на программу обработки прерывания от клавиатуры.

Процессор вместе с сигналом прерывания получает еще и номер вектора прерывания – 09h.

 

Программа INT 09h, получив управление в рез-те прерывания от клавиатуры, считывает из порта 60h скэн-код и анализирует его значение.

Если скэн-код принадлежит одной из управляющих клавиш и, к тому же, представляет собой код нажатия, в байте статуса клавы устанавл-ся бит (флаг), соответ-ющий нажатой клавише.

 

При нажатии любой клавиши программа INT 09h считывает из порта 60h её скэн-код нажатия и по таблице трансляции в коды ASCIформирует двухбайтовый код, старший байт кот-го содержит скэн-код, младший - ASCI

 


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

Кроме кодов ASCII существуют расширенные коды, присвоенные клавишам или комбинациям клавиш, которые не имеют представляющего их символа ASCII, такие как функциональные клавиши или комбинации с клавишей Alt.
Расширенные коды имеют длину 2 байта:
1) всегда ASCII = 0.
2) номер расширенного кода.
Например:
Код функциональной клавиши F1=003Bh
Проверка нажата ли F1          cmp ax,003Bh

ОС предост-ет неск-ко способов ввода данных с клав:
 – обращение к клаве как к файлу, с помощью прерывания DOS INT 21h с функцией 3Fh;
– использов-е группы ф-ций DOS INT 21h из диапазона 1h...Ch, обеспечивающих посимвольный ввод с клав-ы в разных режимах;
 – посимвольный ввод путем обращения непосредственно к драйверу BIOS с помощью прерывания INT 16h.

1. Прочитать скэн-код и послать клавиатуре
подтверждающий сигнал;

2. Установить соответствующий бит байта-статуса клавиш переключателей, если необходимо;

3. Преобразовать скэн-код в ASCII-код или;

4. Преобразовать скэн-код в номер расширенного кода, если нажата функциональная клавиша;

5. Поместить код клавиши в буфер
клавиатуры.


 















Видеосистемы

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

Самая заметная, крупная дорогая часть видеосистемы – дисплей или монитор. Он характер-ся несколькими св-вами:

· Цвет, Размер, Зерно, Максим-ое разреш-е, Вертикал.развёртка(частота смены изобр-ий (85Гц))

Основное назначение видеоадаптера – формирование сигналов, в соответствии с которыми монитор может отображать ту или иную информацию на экране.

С помощью видеоадаптера формир-ся изобр-я с различными разреше-ми: от 640 ´ 480 до 1600 ´ 1280 точек. Не меньшее знач-е имеет и глубина цвета, то есть кол-во битов, выдел-ых для кодиров-я инфо о цвете одного пикселя. В настоящ.время распространены след.стандарты на это кол-во: 8 бит (256 цветов),16 бит (65 536 цветов — так называемый High Color),24 бит (16 777 216 цветов — True Color).

Видеоадаптер состоит главным образом из

1. набора микросхем (chipset) (в настоящее время, как правило, одной интегрированной схемы).

2. цифро-аналогового преобразователя (нередко также выполняется встроенным в основную микросхему),

3. ПЗУ (так называемый BIOS видеоадаптера) и

4. самой платы с закрепленными на ней клеммами и разъемами.

На каждой видеоплате размещ-ся ОП, как правило, обладающая более высокими хар-ми, чем та, что исп-ся в составе ОП компьютера.

Блок схема видеоадаптеров EGA/VGA

Существует несколько стандартных режимов работы видеоадаптеров, определенных фирмой IBM. Любой из этих режимов можно инициировать конструкцией типа:

mov ah,00h

mov al,Mode ;Номер видеорежима

int 10h

Некот-ые режимы работы видеоадаптеров

Режим работы Тип информации  Кол-во цветов Разрешение, пиксел x пиксел
0Dh      Графический цветной     16  320x200   
0Eh      //-//-//    16  640x200    
0Fh      Графический монохромный 2    640x350    
10h Графический цветной     16  640x350    
11h //-//-//    2    640x480   
12h //-//-//    16  640x480   
13h //-//-//    256 320x200   

При изменении 11 и 12 строки может получить такое:
mov al,06h        ;номер видеорежима
mov bl,1dh        ;изменение цвета
mov al,01h        ;номер видеорежима
mov bl,4dh        ;изменение цвета  

Все видеосистемы ПК, кроме MDA, могут работать в любом из двух режимов: текстовом или графическом. Главное их различие – в способе интерпретации содержимого видеобуфера.

Структура видеопамяти режима 10 h .

 

Графический.

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

Каждая точка имеет свою координату. При этом каждая точка может быть установлена в любой цвет из числа допустимых, например, из 256 цветов (разрешение 320´200, 256 цветов – видеорежим 13h).

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

Текстовый.

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

При отображении символа на экране происходит преобразование его из формата ASCII в двумерный массив пикселей, выводимых на экран. Для этого преобразования используется таблица трансляции символов (таблица знакогенератора).

Преобразов-е кода ASCII в образ символа на экране

Текстовый режим прост и быстр, однако он сильно ограничивает возмож-ти польз-ля по выводу инфо.

Всякий цвет на экране является композицией трёх основных цветов – красного (red), зелёного (green) и синего (blue). В простейшем случае кодировка заключается в установке или сбросе соответствующего бита. Таким образом формируются восемь цветов. К используемым в этом случае трём битам добавляется четвёртый – яркость (brightness) или интенсивность (intensity). Эта комб-ция наз-ся  IRGB-цветом. Простейшие вар-ты кодиров-я цветов сведены в таблицу.

Для хранения цветовых атрибутов символа в памяти компьютера отводится один байт:

· старшие четыре бита (с 7-го по 4-й) заняты под кодирование фона символа (7-й бит – атрибут мерцания); биты 6–4 – стандартные цвета;

· младшие четыре бита (с 3-го по 0-й) заняты под кодирование переднего плана символа.

 





БАЙТ АТРИБУТА СИМВОЛА

Каждый символ, отображаемый на экране в текстовом режиме, определяется не только своим кодом ASCII, но и байтом атрибутов. Атрибуты задают цвет символа, цвет фона а также некоторые другие параметры

 - Байт атрибутов символа

D2-D0 - Цвет символа.

D3   - Интенсивность символа и выбор таблицы      знакогенератора.

D6-D4 - Цвет фона символа.

D7   - Мигание символа или интенсивность фона      символа.

Регистры видеоадаптеров EGA и VGA

Программирование видеоадаптеров на уровне регистров позволяет увеличить скорость работы программ и решить некоторые задачи, которые нельзя решить только при помощи функций BIOS

По признаку выполняемых функций можно выделить следующие группы регистров:

Внешние рег-ры, рег-ры контроллера ЭЛТ , рег-ры  синхрониз-ра, рег-ры графич.контроллера, рег-ры контроллера атриб-ов, рег-ры цифро-аналогового преобраз-ляVGA,Нестанд-ые режимы видеоадаптера VGA

Видеопамять – область оперативной памяти, предназначенная для хранения текста или графической информации, выводимой на экран.

В различных режимах работы монитора эта область имеет различный начальный адрес и разную длину, например:

*MDA – с адресаB000:0000 до B000:0FFF длиной 4К;

*CGA – от B800:0000 до B800:3FFF длиной 16К;

* E GA, VGA , sVGA – от B800:0000 до B800:7FFF длиной 32К.

Измен-е какого-либо байта в этой области приводит к измен-ю изображ-я на экране. Того же резул-та можно достичь при выводе нужной инфо на экран, но если скорость записи напрямую в видеобуфер составляет сотни тысяч байт в секунду, то дисплей воспринимает новые данные со скоростью около 1000 байт в секунду (при этом содержимое экрана меняется за 2 секунды)

Видеостраницы

Как уже упоминалось ранее, всякий экран содержит 2000 символов (например, пустой – 2000 пробелов), каждый из кот-ых характ-ся кодом в таблице ASCII (один байт), цветом фона (1/2 байта) и цветом переднего плана (1/2 байта). Т.о., для хранения всего содержимого экрана необходим V памяти в 4000 байт; именно такая часть (точнее, 4096 байт) видеопамяти называется видеостраницей. Поскольку объём видеопамяти обычно больше этого числа (например, 32К для видеоадаптеров VGA), то имеется возмож-ть организ-ть хранение данных сразу в неск-ких видеостраницах (до 8), по-прежнему демонстрируя на экране только одну из них.

В памяти компа это выглядит так:

Т.к. видеопамять компа нач-ся с адреса B800:0000, то это – адрес начала страницы № 0. След.страница нач-ся с адреса B800:0000+4096, т.е. B800:1000; страница № 2 – с адреса B800:2000 и т.д.

Нек-ые области между страницами окрашены в серый цвет – это те самые 96 байт, коты-е не исп-ся для вывода информации, а нужны только для получения более "круглых" адресов начал видеостр-ц. Содержимое этих 96 байт не испол-ся комп-ом, и польз-ль может распоряжаться ими по своему усмотрению.

Несмотря на то, что хранить и формировать можно все 8 страниц, на экран выводится только одна из них (она получает название активной). Этим можно воспользоваться для создания простых эффектов мультипликации в текстовом режиме – переключаясь между страницами (а это происходит моментально), можно "оживить" какие-нибудь изображения.

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

Внутри самой видеостраницы запись характеристик символа происходит следующим образом:

· первым байтом записывается код символа;

· во втором байте хранится информация и цветах:

· 4 бита – описание цвета фона для символа;

· 4 бита – описание цвета переднего плана символа.

Таким образом, связь между адресами видеопамяти, характеристиками символа и его экранными координатами выглядит следующим образом (здесь, как обычно, первая координата экрана – х (столбец), число в промежутке от 0 до 79; вторая координата – у (строка), число от 0 до 24):

Адрес видеопамяти: B800:0000 B800:0001 B800:0002 B800:0003
  Символ Цветá Символ Цветá
Координаты экрана:

(0,0)

(1,0)

 

     

 

 

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 340; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.023 с.)
Главная | Случайная страница | Обратная связь