Продвижение сайта стоимость самая доступная.
Лучшие книги интернета
Материалы предоставлены только для просмотра. Любое использование материалов в коммерческих целях запрещено

Справочник программиста на персональном компьютере фирмы IBM42



    пользователем символьные строки (макроопределения клавиатуры).
    Эти программы используют факт, что весь ввод с клавиатуры посту-
    пает поступает через функцию 0 прерывания 16H BIOS [3.1.3]. Все
    прерывания ввода с клавиатуры DOS вызывают прерывание BIOS для
    получения символа из буфера клавиатуры. Поэтому необходимо моди-
    фицировать лишь прерывание 16H, таким образом, чтобы оно служило
    шлагбаумом для макроопределений, после чего любая программа будет
    получать макроопределения, независимо от того, какое прерывание
    ввода с клавиатуры она использует.
    Конечно, модифицировать прерывания BIOS и DOS непросто, пос-
    кольку BIOS расположена в ПЗУ, а DOS поступает без листинга и они
    ограничены размерами отведенной для них памяти. Но Вы можете
    написать процедуру, которая предшествует и/или следует за соот-
    ветствующим прерыванием, и эта процедура может вызываться при
    вызове прерывания DOS или BIOS. Например, в случае прерывания
    16H, Вам нужно написать процедуру и указать на нее вектором пре-
    рывания для 16H. Оригинальное значение вектора 16H тем временем
    переносится в какой-либо неиспользуемый вектор, скажем, 60H.
    Новая процедура просто вызывает прерывание 60H, чтобы использо-
    вать оригинальное прерывание 16H; поэтому когда программа вызы-
    вает прерывание 16H, управление передается Вашей процедуре, кото-
    рая затем вызывает оригинальное прерывание 16H, которая по завер-
    шении опять возвращает управление Вашей процедуре, а из нее уже
    Вы возвращаетесь в то место программы, из которого был вызов
    прерывания 16H. После того как это сделано, в новой процедуре
    может содержаться любой код, как до, так и после вызова прерыва-
    ния 60H. На рис. 1-3 показана диаграмма этой процедуры. Вот крат-

Предыдущая страница    42    Следующая страница




2037449075