Assembler для начинающих


         

Данные клавиатуры


    Поле данных программ клавиатуры начинается у смещения 17H в
    сегменте DATA.  Две флаговых переменных, KB_FLAG и KB_FLAG_1, имеют
    битовое значение и отслеживают текущее положение регистровых
    клавиш.  За определением этих переменных следуют выражения,
    показывающие назначение их битов.  Например, бит 3 переменной
    KB_FLAG следит за состоянием клавиши ALT.  Если она нажата, этот
    бит равен 1.  Если клавиша ALT не нажата, бит равен 0.  Биты
    переменной KB_FLAG определяют текущее состояние всех регистровых
    клавиш, обычных и триггерных.  Триггерные клавиши управления
    регистрами используют биты переменной KB_FLAG_1.  Эти клавиши
    изменяют состояние клавиатуры всякий раз, когда нажимаются.
    Например, клавиша CAPS LOCK переключает клавиатуру с больших букв
    на маленькие и наоборот каждый раз, когда нажимается.
 
      BIOS использует биты переменной KB_FLAG_1 для того, чтобы
    отслеживать, нажата ли в текущий момент клавиша CAPS LOCK (а также
    другие триггерные клавиши). BIOS должна отслеживать их из-за того,
    что все клавиши клавиатуры имеют встроенную функцию автоповторения
    по прошествии некоторого времени. Если бы BIOS переключала бит
    CAPS_STATE каждый раз, когда получала код "нажатия" от клавиши CAPS
    LOCK, автоповторение клавиши сделало бы невозможным для оператора
    определение текущего состояния клавиатуры. BIOS переключает бит
    клавиши CAPS_STATE, когда поступает первый код нажатия. Затем
    программа BIOS игнорирует все коды нажатия до тех пор, пока он не
    получит код отпускания от клавиши CAPS LOCK, означающий, что
    клавиша отпущена.
 
      BIOS использует переменную ALT_INPUT для обеспечения
    специального режима ввода в альтернативном регистре. Когда нажата
    клавиша альтернативного регистра, можно ввести десятичное число с
    помощью цифровой клавиатуры. Когда клавиша альтернативного регистра
    отпускается, программа клавиатуры возвращает символ кода ASCII,
    соответствующий этому десятичному числу. Такая техника позволяет



Содержание  Назад  Вперед