ВУЗ:
Составители:
Рубрика:
16
чае процедура ожидает, пока он не будет набран. Каждый символ клавиатуры возвращает-
ся в виде пары байтов, называемых главным и вспомогательным байтами. Главный байт,
возвращаемый в AL, равен либо 0 для специальных символов, соответствующих, напри-
мер, функциональным клавишам, либо коду ASCII для обычных ASCII-символов. Вспо-
могательный байт, возвращаемый в АН, представляет собой либо идентификатор специ-
ального символа, либо скэн-код стандартной клавиатуры PC для ASCII-символов (см
табл.2.17).
Таблица 2.6. Три служебных функции ROM-BIOS доступа к клавиатуре
Функция
Описание
0 Прочитать с клавиатуры следующий символ
1 Получить ответ о готовности символа
2 Получить состояние клавиши переключения регистров
Если при вызове процедуры 0 в буфере клавиатуры нет ни одного символа, то процедура ждет, пока
он не появится, что, естественно, приостанавливает программу. Следующая рассматриваемая нами проце-
дура, позволяет программе проверять ввод с клавиатуры, не приостанавливая своего исполнения. Впроти-
воположность тому, что излагается в некоторых версиях технического руководства IBM, процедуры 0 и 1
можно использовать для ввода как обычных ASCII-символов, так и специальных символов, отвечающих,
например, функциональным клавишам.
2.4 ПРОГРАММНЫЕ СРЕДСТВА ДЛЯ ОБРАЩЕНИЯ К ПРЕРЫВАНИЯМ
Для описания регистров, используемых при обращении к прерываниям, впользо-
вательской ТС-программе в библиотеке DOS.H создан специальный тип REGS.
struct WORDREGS
{ unsigned int ax,bx,cx,dx,si,di,cslag,flags;
}
struct BYTEREGS
{ unsingred char al,ah,bl,bh,cl,ch,dl,dh;
}
union REGS{
struct WORDREGS x;
struct BYTEREGS h;
}
В этом случае в пользовательских программах для применения прерываний нужно
описать переменную с указанным типом данных.
Описатель UNION означает наложение памяти при хранении переменных, пере-
численных в различных списках шаблона. Это наложение можно изобразить следующей
схемой:
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »