нулю, а старший є скан-кодом натиснутоюклавіші. Розширений коди ASCII надходять у буфер введення і у випадку натискання комбінацій керуючих і функціональних клавіш, наприклад, /, / (На додатковій цифровій клавіатурі), / та ін У цьому випадку, однак, в старший байт розширеного коду ASCII поміщається вже не скан-код клавіші, а деякий код, спеціально призначений цієї комбінації клавіш. Природно, цього коду немає серед "звичайних" скан-кодів. Наприклад, клавіша , скан-код якої дорівнює 3Bh, може генерувати наступні розширені коди ASCII:
ЗB00h / 5E00h / 6800h / 5400h
Отже, переривання, що виникає при натисканні абовідпуску будь-якої клавіші, обробляється по відносно складного алгоритмом з системним обробником, що містяться в BIOS. Розглянемо приклади втручання в цей процес. Нижче наведено приклад прикладної програми, що виконує деяку обробку які з клавіатури даних ще до активізації системного обробника.
В В В В В В В В В В В В В В
3 . Опис програми
3.1. Опис для користувача
Наведена нижче програма здійснює перехоплення переривання від клавіатури, і робить запис скан-кодів клавіш і байта прапорів клавіатури у файл з ім'ям В«s_code & f.txt В». При цьому фіксуються тільки натискання клавіш. Запис відбувається при кожному шістнадцятому натисканні клавіші. Це зроблено, по-перше, для зменшення ймовірності втрати В«ціннихВ» натискань при екстреному виключенні комп'ютера, по-друге, для економії оперативної пам'яті, по-третє, для збереження нормальної працездатності комп'ютера. Файл В«s_code & f.txt В»Створюється в батьківському каталозі програми. Якщо при інсталяції файл вже існує, то програма, автоматично, запише в кінець поточну дату і час, після цього буде здійснюватися запис скан-кодів і прапорів у звичайному режимі після дати та часу. Програма є резидентної. Після того як вона буде успішно інстальована, на екрані з'явиться відповідний напис "Program installed". У ній передбачений захист від повторної установки. Таким чином одночасно в оперативній пам'яті комп'ютера не може знаходиться більше однієї копії програми, що практично зводить до нуля шанси не коректною роботи. При спробі запустити програму після того як вона вже була інстальована, на екрані з'явиться відповідна напис "Program already installed ". Також цю програму можна вивантажити з оперативної пам'яті після того як потреба в ній відпаде. Для цього слід запустити програму з ключем "off", тобто в командному рядку написати <ім'я програми> off. Після цього ви побачите рядок "Program is DIE", що сигналізує про успішну розвантаженні програми. При цьому вміст буфера буде записано у файл. Таким чином, у файл будуть записані всі натискання клавіш аж до вивантаження програми. Якщо дану програму записати, наприклад, в autoexec.bat, то можна буде простежити час початку роботи ко...