2.5. Средства ms-dos для работы с клавиатурой
К сожалению, MS-DOS не предоставляет программам каких-либо существенных дополнительных возможностей по сравнению с функциями прерывания BIOS INT 16h. Поэтому многие программы работают с клавиатурой через BIOS.
Однако, если ваша программа пользуется клавиатурными функциями MS-DOS, то ей доступно средство переназначения ввода операционной системы. Это возможно благодаря тому, что клавиатурные функции MS-DOS являются функциями, работающими со стандартным вводом MS-DOS, а стандартный ввод может быть переназначен.
Кроме того, некоторые клавиатурные функции автоматически посылают введенные символы на устройство стандартного вывода. По умолчанию это дисплей, но устройство стандартного вывода может быть переназначено для вывода в файл, на принтер или другое устройство.
Вообще говоря, клавиатурные функции MS-DOS больше всего подходят для тех программ, которые ведут с оператором "построчный" диалог. Для таких программ при использовании средств переназначения ввода/вывода возможна организация автоматического "пакетного" выполнения, когда все сообщения выводятся в файл, а все данные, которые обычно вводятся с клавиатуры, считываются из заранее подготовленного файла "ответов".
Некоторые клавиатурные функции MS-DOS отслеживают комбинации клавиш Ctrl-C и Ctrl-Break. Если оператор ввел такую комбинацию клавиш, вызывается прерывание INT 23h, завершающее работу текущей программы. Если ваша программа не должна завершаться при нажатии этих комбинаций клавиш, можно либо создать и подключить собственный обработчик для INT 23h, либо использовать те клавиатурные функции MS-DOS, которые не выполняют проверку указанных выше комбинаций клавиш.
Приведем подробное описание клавиатурных функций прерывания MS-DOS INT 21h.
2.5.1. Буферизованный ввод с эхо-выводом
2.5.2. Буферизованный ввод без эхо-вывода
2.5.3. Нефильтрованный ввод без эхо-вывода
2.5.4. Ввод/вывод на консоль
2.5.5. Ввод строки символов
2.5.6. Проверка состояния стандартного ввода
2.5.7. Сброс буфера клавиатуры
- Клавиатура
- 2.1. Принципы работы клавиатуры
- 2.2. Порты для работы с клавиатурой
- 2.3. Аппаратное прерывание клавиатуры
- 2.4. Средства bios для работы с клавиатурой
- 2.4.1. Чтение символа с ожиданием
- 2.4.2. Проверка буфера на наличие в нем символов
- 2.4.3. Получение состояния переключающих клавиш
- 2.4.4. Установка временных характеристик клавиатуры
- 2.4.5. Запись символов в буфер клавиатуры
- 2.4.6 Чтение символа с ожиданием для 101-клавишной клавиатуры
- 2.4.7. Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры
- 2.4.8. Получение состояния переключающих клавиш для 101-клавишной клавиатуры
- 2.5. Средства ms-dos для работы с клавиатурой
- 2.5.1. Буферизованный ввод с эхо-выводом
- 2.5.2. Буферизованный ввод без эхо-вывода
- 2.5.3. Нефильтрованный ввод без эхо-вывода
- 2.5.4. Ввод/вывод на консоль
- 2.5.5. Ввод строки символов
- 2.5.6. Проверка состояния стандартного ввода
- 2.5.7. Сброс буфера клавиатуры
- 2.6. Клавиатурные функции библиотеки Microsoft c
- 2.6. Драйвера режима ядра для ps/2 клавиатуры Стек драйверов для системных устройств ввода
- Стек драйверов для Plug and Play ps/2-клавиатуры
- Стек устройств для Plug and Play ps/2-клавиатуры
- Обработка клавиатурного ввода приложениями Поток необработанного ввода (получение данных от драйвера)
- Обработка сообщений конкретным окном
- Массивы состояния клавиш клавиатуры
- Клавиатурные ловушки
- Общая схема обработки
- Модель прямого ввода (Raw Input)