Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Спецификация функции bioskey




Протип функции bioskey() находится в файле bios.h. Режимы работы функции определяются значениями параметра.

int bioskey(int cmd),

где cmd может иметь следующие значения:

  • 0 – чтение с ожиданием ввода кода из буфера клавиатуры; в точке вызова функции программа приостанавливается до считывания символа из буфера клавиатуры; в качестве результата возвращается, - в младшем байте ASCII-код, в старшем байте скэн-код клавиши, или возвращается 0, в младшем байте, и расширенный скэн-код в старшем (для клавиш для которых нет ASCII-кода или клавиш нажатых в комбинации с Right-Shift, Left-Shift, Alt, Ctrl),
  • 1 – чтение без ожидания из буфера клавиатуры; возвращается в качестве результата 0, если буфер пуст,
  • 2 – возвращается содержимое шифт- и триггерных клавиш, например такие состояния клавиш как Numlock или ScrollLock включен или выключен и т.п.

Необходимо знать, что состояния шифт- и триггерных клавиш могут быть проанализированы и другим способом, поскольку им соответствует содержимое ОЗУ по адресу 40:17h.

В качестве примера ниже приводится фрагмент программы сканирования клавиатуры в процессе отображения меню и контроля за сделанным выбором:

for(;;)

{

while (!bioskey(1)); // цикл на клавиатуре до ожидания выбора

c.i = bioskey(0);

………………………………..

if(c.ch[0]) // ASCII-код

{

…………………………………

switch(c.ch[0])

{

case ‘\r’:……………..; // была нажата клавиша ввода

case ‘ ‘:………………; // был введен пробел

case ESC:…………….; // была нажата ESC-клавиша

…………………………………………….

}

}

else // не отображаемая спец-клавиша

{

switch(c.ch[1])

{

case 72:……………..; // была нажата клавиша стрелка вверх

case 80:………………; // была нажата клавиша стрелка вниз

…………………………………………….

}

}

}

Кодирование клавиш, информацию о скэн-кодах, шифт- и триггерных клавишах можно найти в книге Касаткина, а детали программирования меню для Турбо-С в книге «Язык С для профессионалов». Информацию по ASCII-кодам можно посмотреть, напрмер, в книге Фигурнова В.Э. «IBM PC для пользователя». В программе выше используется переменная c типа union inkey{ char ch[2]; int i;}, содержащая комбинацию – «ASCII-код – скэн-код клавиатуры».

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных