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

Ваш аккаунт

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

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

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

bioskey, _bios_keybrd - работа с клавиатурой

Описание

         Оба имени обозначают одну функцию. Два произношения
         нужны  для совместимости  с разными  компиляторами.
         bioskey  передает флаг для  BIOS_прерывания  0x14 -
         - прерывание от клавиатуры. Значения flag:
            0 - чтение значения ввода с клавиатуры из буфера
                ввода. Ждет ввода, если буфер пуст.
            1 - определение наличия значений нажатых  клавиш
                в буфере ввода от клавиатуры.
            2 - чтение состояния клавиш типа 'shift'.

Использование

         #include <bios.h>
         int bioskey(int flag);
         int _bios_keybrd (int flag);

Возвращаемое значение

         Если flag=0, то возвращаемое значение является рас-
         ширенным кодом клавиши. ASCII код клавиши находится
         при этом в младшем байте, а скан-код ее - в старшем
         байте.  Если младший байт нулевой,  то это не ASCII
         код (это может быть стрелка  или функциональная кла-
         виша). Если flag=1, то 0 возвращается при отсутствии
         ввода от клавиатуры в буфере ввода; в противном слу-
         чае возвращается расширенный код клавиши.  При этом,
         код клавиши остается  в буфере ввода  и еще доступен
         для чтения. Если flag=2, то возвращаемое значение ин-
         формирует о состоянии 'shift' клавиш:
            0x01 - нажата правая shift клавиша
            0x02 - нажата левая  shift клавиша
            0x04 - нажата клавиша Ctrl
            0x08 - нажата клавиша Alt
            0x10 - включен  ключ Scrolllock
            0x20 - включен  ключ Numlock
            0x40 - включен  ключ Capslock
            0x80 - включен  ключ Ins

Пример

         #include <bios.h>
         #include <stdio.h>
         main ()
         {
           int key, shift;
           int lastshift = 0;
           while (1)
           {
             shift=bioskey(2);
             if(shift!=lastshift)
                            /* Если изменился shift статус*/
               printf("shift = 0x%02x\n", shift);
                                 /* Если клавиша нажата*/
             if (bioskey(1))
             {                           /* Читаем клавишу*/
               Key=bioskey(0);
               if ((Key & 0xFF)== 'q') break;
               printf("Клавиша = 0x%04x\n", Key);
             }
             lastshift=shift;
           }
         }

оглавление

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

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