Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

bioskey

bioskey


Функция            Интерфейс с клавиатурой при помощи функций BIOS.

Синтаксис          #include<bios.h>
                   int bioskey(int cmd);

Файл, содержащий   bios.h
прототип

Описание           bioskey посредством прерывания BIOS 0x16 выполняет
                   различные операции  c  клавиатурой.  Параметр   cmd
                   определяет операцию.

Возвращаемое       Значение, возвращаемое функцией bioskey, зависит от
значение           выполняемой операции, которая определяется
                   аргументом cmd:

                   ---------------------------------------------------
                   cmd    Операция
                   ---------------------------------------------------
                   0      Если младшие 8 бит не нулевые, bioskey
                          возвращает код   ASCII   следующей   нажатой
                          клавиши, ожидающей в очереди. Если младшие 8
                          битов  равны 0,  то старшие 8 битов содержат
                          расширенные   коды   клавиатуры,    описание
                          которых   вы   можете   найти   в  документе
                          "Техническое справочное руководство  по  IBM
                          PC".

                   1      Производится проверка, имело ли место
                          нажатие клавиши.    Если    при     проверке
                          возвращается значение 0,  это означает,  что
                          клавиша не была нажата.  В противном  случае
                          возвращается   значение   очередной  нажатой
                          клавиши.  Сам  же  код   очередной   нажатой
                          клавиши  сохраняется  и  будет возвращен при
                          следующем   вызове   функции   bioskey   при
                          значении параметра cmd, равном нулю.

                   2      Запрашивает  текущий  статус клавиш типа
                          SHIFT. Значение  получается  при  логическом
                          сложении следующих кодов (операции "ИЛИ")
                   
                          Бит 7  0x80     INSERT  нажат
                          Бит 6  0x40     CAPS нажат
                          Бит 5  0x20     NUM LOCK нажат
                          Бит 4  0x10     SCROLL LOCK нажат
                          Бит 3  0x08     ALT  нажат
                          Бит 2  0x04     CTRL  нажат
                          Бит 1  0x02     LEFT SHIFT нажат
                          Бит 0  0x01     RIGHT SHIFT нажат

Переносимость      bioskey поддерживается только на компьютерах IBM PC
                   или совместимых с ними.

Пример:

#include <stdio.h>
#include <bios.h>
#include <ctype.h>

#define RIGHT 0x0001
#define LEFT  0x0002
#define CTRL  0x0004
#define ALT   0x0008

int main(void)
{
  int key, modifiers;

  /* Функция 1 возвращает 0, пока не будет
  нажата клавиша. Ожидание  ввода. */;                                                                           /* now use function 0 to get return value of
  while (bioskey(1) == 0);

  /* Теперь используем функцию 0, чтобы получить
  значение клавиши  */
  key = bioskey(0);

  /* Используем функцию 2, чтобы определить,
  используются ли клавиши типа SHIFT */.
  modifiers = bioskey(2);
  if (modifiers) {
     printf("[");
     if (modifiers & RIGHT) printf("RIGHT ");
     if (modifiers & LEFT ) printf("LEFT ");
     if (modifiers & CTRL ) printf("CTRL ");
     if (modifiers & ALT  ) printf("ALT ");
     printf("] ");
}
/* вывести символ нажатой клавишу */
if (isalnum(key & 0xFF))
   printf("'%c'\n",key);
else
   printf("%#02x\n",key);
}

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог