Ввод информации с клавиатуры

С клавиатуры информация может вводиться следующими способами:

1) средствами MS-DOS

2) средствами BIOS

Последовательность действий при вводе с клавиатуры средствами MS-DOS такова.

1) Функция прерывания 21h вызывает драйвер клавиатуры.

2) Драйверу передается запрос на ввод символа из буфера клавиатуры

3) Драйвер обращается к нужной функции прерывания 16h BIOS

4) Эта функция читает нудный символ и передает его в драйвер.

5) Драйвер возвращает байты в MS-DOS

Существуют различные функции MS-DOS, осуществляющие ввод с клавиатуры.

Например: функция АН = 01h определяет ввод с ожиданиями. При этом осуществляется "эхо" на экран вводимых символов. Функция AH = 07h осуществляет ввод без “эха”. Эти и другие функции описаны во всех руководствах по системному программированию на ПК.

Ввод средствами BIOS осуществляется через прерывание 16h, с подключением функций BIOS. Например, функция BIOS AH = 01h осуществляет чтение без ожидания из буфера клавиатуры.

Пример программы ввода символа средствами MS-DOS с использованием функции AH = 01h на языке Си будет таким

vv () { _AH = 01h;

geninterrupt (0X21);

return _AL; }

На основании использования прерывания 21h и функций MS-DOS составлены все функции языка Си для ввода информации с клавиатуры. Простейшим примером является функция intgeteh (void) и др. Все они приведены в различных руководствах языка Си. В данном случае приведем некоторые функции, используемые для управления.

Так функция

# include <conio.h>

int rbhit (void)

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

Функция # include <bios.h>

int bioskey (0)

очищает буфер клавиатуры, а функция

# include <bios.h>

int bioskey (1)

проверяет, пуст ли буфер клавиатуры.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: