
- •1.Эвм и ее архитектура. Назначение аппаратных средств.
- •2.Принцип работы компьютера(принцип Неймона)
- •3.Системный блок и его предназначение
- •4, 5. Принтеры и их классификация. Ударные и безударные принтеры.
- •6. Мониторы. Классификация дисплеев
- •7, 23. Клавиатура. Технологии реализации клавиатур. Клавиатура и принципы ее работы.
- •8. Микропроцессор и его основные характеристики.
- •9, 10, 11 Математический сопроцессор. Основные команды сопроцессора. Типы данных.
- •12.Программирование вычислений с вещественными числами
- •13. Программирование вычислений с целыми числами
- •14.Прерывания
- •15. Аппаратные и программные прерывания
- •16. Маскируемые и немаскируемые прерывания
- •17. Прерывания bios
- •18. Прерывания dos
- •19. Старт компьютера
- •20. Функции прерывания dos int 21h.
- •21. Управление вводом-выводом
- •22. Резидентные программы
- •23. Клавиатура и принципы ее работы
- •24. Ввод символов с клавиатуры
- •25.26. Таймер. Установка даты и времени
- •27. Параллельный порт.
- •28. Последовательный порт
- •29. Вывод символа на печать
- •30, 31, 32 Программирование диска. Создание файла, его переименование. Удаления файла. Создание каталога и его удаление. Установка текущего каталога
- •33. Контроллер прерываний. Приоритеты опоздания источника прерывания.
22. Резидентные программы
Существует ряд распространенных фирменных программ, таких как Prokey, Superkey, Homebase и др., которые находятся в памяти во время работы других программ. Такие программы называются резидентными. Их можно активизировать нажатием определенных клавиш. Они загружаются в память сразу же после загрузки DOS перед выполнением обычных программ.
Для того чтобы оставить резидентную программу в памяти, необходимо вместо команды RET или INT 20Н для выхода использовать команду INT 27Н или функцию DOS 31Н. Для INT 27Н следует передать системе в регистре DX размер программы:
mov DX, prog_size
int 27H
При выполнении программы инициализации DOS резервирует в старших доступных адресах блок памяти и загружает в него резидентную программу. Это наиболее простая часть создания резидентной программы.
Программирование механизма активизации резидентной программы - это более сложная часть. Резидентная программа присоединена к DOS, тем не менее, она не является его внутренней программой, как, например, DIR, COPY и др. Для того, чтобы она получила управление при нажатии определенных клавиш или их комбинации, необходима соответствующая модификация векторов. Обычно резидентная программа состоит из следующих частей:
секции, переопределяющей адреса в таблице векторов прерываний;
процедуры, выполняющейся только один раз при загрузке программы
процедуры, которая остается резидентной и активизируется, например, по вводу с клавиатуры или по сигналу таймера.
Процедура инициализации создает необходимые условия для работы резидентной программы, после чего она удаляется из памяти.
23. Клавиатура и принципы ее работы
Специализированный процессор - контроллер клавиатуры - находится непосредственно в ее корпусе рядом с клавишами. Он постоянно анализирует состояние клавиш, поочередно подавая сигналы на каждый из горизонтальных проводов (входов матрицы) и проверяя состояния вертикальных (ее выходов). Следует заметить, что при одновременном нажатии нескольких клавиш могут образоваться ложные цепи, приводящие к ошибкам в определении нажатых клавиш. Это самый главный недостаток матричной схемы, с которым борются либо, включая последовательно с контактами диоды, исключающие образование ложных цепей, либо усложняя алгоритм работы контроллера.
Обнаружив, что клавиша нажата, контроллер вычисляет ее код (последний часто называют скэн-кодом; от англ. глагола to scan - просматривать, сканировать) и выдает его в порт А микросхемы интерфейса с периферией, расположенной на системной плате.
Скан-код - это однобайтовое число, младшие 7 бит которого представляют идентификационный код, присвоенный каждой клавише. Старший бит кода говорит о том, нажата ли клавиша (бит=1).
Если удерживать клавишу нажатой, то вступает в действие так называемая функция автоповтора - через определенное время передача кода периодически повторяется. При отпускании клавиши передается код F0, за которым следует тот же код, что и при ее нажатии. Коды клавиш, для которых предполагается выполнение компьютером одинаковых функций (например, левой и правой клавиш "Ctrl"), различаются тем, что один из них дополняется "префиксом" Е0. Это позволяет компьютеру при необходимости считать клавиши разными, учитывая префикс, либо не различать их, игнорируя его.
Особое положение занимают клавиши "Print Screen" (печать экрана) и "Pause" (пауза). Им соответствуют довольно длинные последовательности скэн-кодов, имитирующие одновременное нажатие нескольких клавиш. Это необходимо для совместимости с ранними вариантами компьютера, в которых для выполнения аналогичных функций требовалось нажимать такие комбинации клавиш.
Данные передаются негативной логикой: логической 1 соответствует низкий, а логическому 0 - высокий уровень сигнала (в обоих случаях имеются в виду уровни ТТЛ). Период повторения импульсов синхронизации равен примерно 64 мкс, но может значительно отличаться от этого значения. Выходы контроллера выполнены по схеме с открытым коллектором. Это позволяет объединить несколько источников сигнала и организовать по одним и тем же проводам двусторонний обмен данными.
Когда скан-код выдается в порт А, вызывается прерывание клавиатуры (INT 9). Процессор моментально прекращает свою работу и выполняет процедуру, анализирующую скан-код. При поступлении кода от клавиш сдвига или переключения изменение статуса записывается в память. Во всех остальных случаях скан-код трансформируется в код символа и помещается в буфер клавиатуры, который является областью памяти, способной запомнить до 15 вводимых символов.