Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Клавиатура. Байты статуса. Основные шаги обработки прерывания от клавиатуры
Нажатие/отпускание любой клавиши вызывает сигнал аппаратного (внешнего) прерывания. • Это заставляет ПР прервать выполняемую программу и перейти на программу обработки прерывания от клавиатуры. • Процессор вместе с сигналом прерывания получает еще и номер вектора прерывания – 09h.
Программа INT 09h, получив управление в рез-те прерывания от клавиатуры, считывает из порта 60h скэн-код и анализирует его значение. Если скэн-код принадлежит одной из управляющих клавиш и, к тому же, представляет собой код нажатия, в байте статуса клавы устанавл-ся бит (флаг), соответ-ющий нажатой клавише.
При нажатии любой клавиши программа INT 09h считывает из порта 60h её скэн-код нажатия и по таблице трансляции в коды ASCIформирует двухбайтовый код, старший байт кот-го содержит скэн-код, младший - ASCI
После передачи одного позиционного кода, клава ожидает от компа подтерждения готовности принять след.код. Если до получ-я сигнала подтверждения нажаты др.клавиши, клава записывает их позиционные коды в буфер
Кроме кодов ASCII существуют расширенные коды, присвоенные клавишам или комбинациям клавиш, которые не имеют представляющего их символа ASCII, такие как функциональные клавиши или комбинации с клавишей Alt. ОС предост-ет неск-ко способов ввода данных с клав: 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 Некот-ые режимы работы видеоадаптеров
При изменении 11 и 12 строки может получить такое: Все видеосистемы ПК, кроме 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):
|
Последнее изменение этой страницы: 2019-05-08; Просмотров: 340; Нарушение авторского права страницы