Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matrunchik_-_Shpory1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
463.25 Кб
Скачать

Буфер клавиатуры.

Буфер может накапливать до 15 нажатий на клавишу независимо от того, являются ли они однобайтовыми кодами ASCII или двухбайтовыми расширенными кодами. Таким образом, буфер должен отвести два байта памяти для каждого нажатия на клавишу.

Буфер устроен как циклическая очередь, которую называют также буфером FIFO (первый вошел - первый ушел). Он занимает непрерывную область адресов памяти. Однако определенной ячейки памяти, которая хранит "начало строки" в буфере нет. Вместо этого два указателя хранят позиции головы и хвоста строки символов, находящихся в буфере в текущий момент. Новые нажатия клавиш сохраняются в позициях, следующих за хвостом (в более старших адресах памяти), и соответственно обновляется указатель хвоста буфера. После того, как израсходовано все буферное пространство, новые символы продолжают вставляться, начиная с самого начала буферной области; поэтому возможны ситуации, когда голова строки в буфере имеет больший адрес, чем хвост. Когда буфер заполнен, новые вводимые символы игнорируются, при этом прерывание клавиатуры выдает гудок через динамик.

Байты статуса

Два байта, расположенные в ячейках памяти 0040:0017 и 0040:0018, содержат биты, отражающие статус клавиш сдвига и других клавиш переключателей следующим образом:

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

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

Пример программы

10 REM Лабораторная работа

20 DEFSEG=&H40

30 STAT=PEEK(&H17)

40 STAT=STAT OR 96

50 STAT=STAT AND 239

60 POKE &H17,STAT

70 END

27.Управление графическим озу микроэвм системы intel. Организация видеопамяти (регистр маркирования растра, регистр битовой маски, регистры-защелки) Организация видеопамяти

Рассмотрим подробнее организацию памяти EGA/VGA с учетом двух режимов: алфавитно-цифрового и графического.

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

7

6 5 4

3

2 1 0

мерцание

цвет фона

яркость

цвет символа

Рис. 9.1

В графическом режиме память используется для хранения цвета каждой растровой точки (пикселя). Распределение памяти, по растровым точкам зависит от вида графического режима и размера памяти. Для случая работы с VGA используется такое же распределение памяти, как и для EGA с объемом памяти 256К. Во всех режимах пиксели размещаются слева - направо и сверху - вниз в соответствии с увеличением адресов памяти.

В новом режиме работы по отношению к CGA соотношение дисплей/память представляет один байт на пиксель, что позволяет использовать до 256 цветов.

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

Прочие новые режимы, поддерживаемые EGA/VGA, имеют более простую организацию, чем CGA, однако при этом усложняется запись различных цветов.

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

Вывод точки кодируется "1", а отсутствие - "0" в соответствующих разрядах байта. Получается, что с помощью одного бита как бы описывается 16 цветов. Объясняется это своеобразной организацией EGA/VGA.

Битовые матрицы (плоскости) - Память организована в виде 1 битовых матриц (bit planes). Матрицы могут размещаться по одному и тому же адресу: для 4-цветных режимов требуется две матрицы (22 = 4), а для 16-цветных - четыре матрицы (24 = 16). Матрицы можно наглядно представить в виде блоков памяти, которые помещаются один над другим. Это позволяет каждой адресуемой ячейке памяти ставить в соответствие 4 бита по одному из каждой матрицы, значит, каждая точка экрана описывается 4-мя битами. Каждая комбинация матриц определяет цвет (выбранный из 64 возможных цветов), при этом любые комбинации матриц могут быть изменены одновременно с помощью одного из трех режимов записи на основании одного байта данных, формируемого процессором.

Регистр Маскирования Растра - Предназначен не для определения матриц, в которые записывается "1", а для определения изменяемых матриц. Использование этого регистра - это первый метод. Каждый раз при изменении цвета в регистр Маскирование Растра должно записываться новое значение. Для записи чистых цветов необходимо записать "0" во все битовые матрицы (для очистки немодифицированных матриц перед записью новых значений).

Регистр Битовой Маски. - Может быть использован для выборки отдельных пикселей из байта. Если бит Маски имеет значение "1", то возможно изменение значения соответствующего бита каждого байта из 4-х и, следовательно, модифицирование пикселя может быть выполнено установкой только одного бита в Маске. Следует отметить, что пиксель может быть "включен" или "выключен" путем установки значения соответствующего бита в "1" и "0" самим ЦП (это говорит о том, что установка пикселя в "1" не выполняется принудительно регистром Битовой Маски).

Использование регистра Маскирования Растра для определения цветов является принятой по умолчанию технологией ВIOS и может рассматриваться как запись в режиме 0, так как большинство функций ВIOS работает с символьными данными.

Регистры-защелки. - Служат для загрузки текущего содержимого памяти адаптера с целью сохранения немодифицируемых битов. Количество регистров-защелок соответствует количеству битовых матриц. Загрузка в регистры-защелки выполняется путем перемещения данных из памяти адаптера в ЦП. При записи из ЦП в память данные ЦП комбинируются с данными в регистре-защелке и в АЛУ, после чего данные сохраняются в памяти адаптера. Регистры-защелки связаны с АЛУ. По большей части эта операция скрыта от пользователя, но несколько регистров дают возможность управлять описанным процессом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]