Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
biosequip---------------------------------------------------------------- Назначение Контроль оборудования. Синтаксис int biosequip (void) Прототип в bios.h Замечания Эта функция возвращает целое число, описывающее оборудование, связанное с системой. Для этого используется прерывание BIOS - 0x11. Возращаемое Возвращаемое значение интерпретируется как значение набор битовых полей. Для IBM PC эти значения таковы: бит 14-15 количество принтеров бит 13 не используется бит 12 наличие игрового адаптера бит 9-11 количество портов передачи данных бит 8 признак наличия DMA 0 - есть DMA, 1 - нет DMA, например - модель PC Jr бит 6-7 количество дисководов 1 дисковод = 00, 2 дисковода = 01, 3 дисковода = 10, 4 дисковода = 11, только если 0-ой бит равен 1 бит 4-5 видео-режим 00 = не используется 01 = 40*25 черно-белый с цветным виде- оконтроллером 10 = 80*25 черно-белый с цветным виде- оконтроллером 11 = 80*25 черно-белый с монохромным видеоконтроллером бит 2-3 объем ОЗУ 00 = 16К 01 = 32К 10 = 48К 11 = 64К бит 1 сопроцессор с плавающей запятой бит 0 загрузка с дискеты Переносимость Эта функция работает только на IBM PC и совместимых моделях. ---------------------------------------------------------------- bioskey---------------------------------------------------------------- Назначение Интерфейс клавиатуры. Синтаксис int bioskey (int cmd) Прототип в bios.h Замечания Эта функция выполняет различные операции с клавиатурой, используя при этом прерывание 0х16 BIOS. Параметр cmd полностью определяет опера- цию. Возвращаемое Значение, возвращаемое функцией, зависит от значение выполняемых ею действий, которые, в свою очередь, определяются параметром cmd: ----------------------------------------------- cmd ¦ Действия, выполняемые функцией _______________________________________________ 0 возвращает следующую клавишу, нажатую на клавиатуре. Если младшие 8 бит отличны от нуля, то в них передается символ в коде ASCII. Если же младшие 8 бит - нуль, то в старших 8 битах передаются расширенные ко- ды клавиатуры, приведенные в техническом описании IBM PC. 1 Производится проверка наличия символа для чтения. Если возвращаемое значение равно 0, считывать нечего. В противном случае возвращается значение следующего символа. Сам же символ сохраняется для возвращения при следующем вызове bioskey со значением cmd равном 0. 2 Получает текущий статус shift - клавиш. Возвращаемая величина получается с помощью логической операции OR для следующих зна- чений: 0x80 Установлен режим Insert (вставка) 0x40 Установлен режим Caps (прописные буквы) 0x20 Установлен режим NumLock (клавиши кальку- ляторного поля используются как цифры) 0x10 Установлен режим Scroll Lock (используется прикладными программами) 0x08 Нажата клавиша Alt 0x04 Нажата клавиша Ctrl 0x02 Нажата левая клавиша Shift 0x01 Нажата правая клавиша Shift Переносимость Эта функция работает только на IBM PC и совмес- тимых моделях. Пример #include #include #include #define RIGHT 0x0001 #define LEFT 0x0002 #define CTRL 0x0004 #define ALT 0x0008 main () { int key;int modifiers; /* Функция 1 возвращает 0 пока не будет нажата клавиша. Ожидание ввода c помощью повторяющейся проверки нажатия клавиши */ while (bioskey (1) == 0); /* Теперь функция О используется для получения значения нажатой клавиши. */ key = bioskey (0); printf("Была нажата клавиша: " ); /* Используется функция 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)) print ("'%c'\n",key); else printf ("%c02x\n",key); } Результат выполнения программы Была нажата клавиша :[LEFT] 'T' ----------------------------------------------------------------- |