Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)

Реферат Резидентний оброблювач клавіатури (перехоплення натискань клавіш і запис у файл)





віші присвоєні два скан-коду, що відрізняються один від одного на 80h. Один скан-код (менший, код натискання) засилається контролером в порт 60h при натисканні клавіші, інший (більший, код відпускання) - при її відпусканні.

скан-код однозначно вказує на натиснуту клавішу, однак, по ньому не можна визначити, чи працює користувач на нижньому або верхньому регістрі. З іншого боку, скан-коди присвоєні всіх клавішах клавіатури, в тому числі керуючим клавішах , , , та ін Таким чином, очевидно, що визначення введеного символу має включати в себе не тільки зчитування скан-коду натиснутої клавіші, а й з'ясування того, чи не були перед цим натиснуті, наприклад, клавіші (верхній регістр) або (фіксація верхнього регістру). Усім цим аналізом займається програма обробки переривань від клавіатури. p> Як натискання, так і відпуск будь клавіші викликає сигнал апаратного переривання, що змушує процесор перервати виконувану програму і перейти на програму системного обробника переривань від клавіатури, що входить в систему BIOS. Оскільки обробник викликається через вектор 09h, його іноді називають програмою int09h.

Програма int09h, крім порту 60h, працює ще з двома областями оперативної пам'яті: кільцевим буфером введення, розташовуваним за адресами від 40h: lEh до 40h: 3Dh, куди в Зрештою поміщаються коди ASCII натиснутих клавіш, і бітом прапорів клавіатури, що знаходиться за адресою 40h: 17h, де фіксується стан керуючих клавіш (, , та ін.) p> Програма int09h, отримавши управління в результаті переривання від клавіатури, зчитує з порту 60h скан-код і аналізує його значення. Якщо скан-код належить одній з керуючих клавіш, і, до того ж, являє собою код натискання, в байті прапорів клавіатури встановлюється біт (прапор), відповідний натиснутій клавіші. Наприклад, при натисканні правої клавіші в байті прапорів встановлюється біт 0, при натисненні лівої клавіші - біт 1, при натисканні будь клавіші - біт 2 і т.д. Біти прапорів зберігають свій стан, поки клавіші (поодинці або в будь-яких комбінаціях) залишаються натисненими. Якщо керуюча клавіша відпускається, програма int09h отримує скан-код відпускання і скидає відповідний біт в байті прапорів. Крім стану зазначених клавіш, в байті прапорів фіксуються ще режими , , і (див. рис. 2.3). p> Комп'ютери PC/AT мають другий байт прапорів клавіатури, що знаходиться за адресою 40h: 18h, і відображає стан керуючих клавіш на розширеній (101-клавішною) клавіатурі. p> При натисканні звичайну, не керуючої клавіші, програма int09h зчитує з порту 60h її скан-код натискання і по таблиці трансляції скан-кодів в коди ASCII формує двобайтовий код, старший байт якого містить скан-код, а молодший код ASCII. При цьому якщо скан-код характеризує клавішу, то код ASCII визначає закріплений за нею символ.

Оскільки за кожною клавішею закріплено, як правило, н...


Назад | сторінка 12 з 23 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Планування рекламної кампанії фірми на прикладі ЗАТ &Скан-Центр&
  • Реферат на тему: Розробка програми-драйвера клавіатури
  • Реферат на тему: Сортування вводяться з клавіатури слів
  • Реферат на тему: Переклад тексту в іншу розкладку клавіатури
  • Реферат на тему: Розробка контролера матричної клавіатури на мікроконтролері К1816ВЕ48