На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 4 / Ловушка для Int 9 Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Ловушка для Int 9

Другим обращением к управлению клавиатурой является Int 9. При нажатии или освобождении клавиши аппаратные средства генерируют прерывание Int 9. Новая ISR Int 9 вызывает ISR ROM клавиатуры и использует Int 16h для просмотра первого символа буфера клавиатуры. Недостатком этого обращения является то, что непустой буфер клавиатуры скрывает горячий ключ. Если Вы можете обеспечить, что ни одна TSR не будет впоследствии загружена в буфер, Вы можете использовать этот метод, сканируя буфер целиком при каждом нажатии клавиши.


TSR, которые расширяют буфер клавиатуры, используются довольно широко. Они замещают ISR int 9 и int 16h. Их код int 9 вызывает старую ISR int 9 для обслуживания прерывания от клавиатуры и затем вызывает старую ISR int 16h для просмотра буфера клавиатуры. Новая ISR int 9 запоминает эти символы в своем собственном буфере. Замещенная ISR int 16h удаляет символы из этого нового буфера.


TSR, которые переопределяют или привязывают к клавишам макроопределения, также используют этот метод. Если Ваша TSR загружает перед собой другую TSR, которая пересылает буфер клавиатуры, Ваша TSR всегда будет находить буфер пустым. Это не лучший способ написания TSR, корректность работы которого зависит от порядка загрузки.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz