Page 18 - 4875
P. 18
Використання портів вводу/виводу для роботи з клавіатурою
Для роботи з клавіатурою використовують порти 60h (при
зчитуванні містить ScanCode останньої натиснутої клавіші) та 61h
(здійснює управління клавіатурою і не тільки). Порт 61h доступний як
для читання, так і для запису, його старший біт дозволяє заблокувати
або розблокувати клавіатуру. Для успішної роботи слід зберегти
попередній стан бітів цього порту, попередньо зчитавши його, потім
змінити і записати нове значення в регістр. Якщо старший біт дорівнює
”1” клавіатура блокується, а “0” – розблоковується.
in al,61h
or dl,80h
out 61h,al
Для розширення керування клавіатурою використовують порт
60h в режимі запису. Байт записаний в даний порт інтерпретується як
команда. Деякі команди складаються з більше як один байт – тоді слід
дочекатися обнулення даного біту перш ніж посилати наступний біт
(деякі стандартні команди подані в таблиці 3.1).
Таблиця 3.1 – Стандартні команди для порта 60h
Функція Значення
Змінити стан світодіодів клавіатури (другий
0EDh
байт цієї команди визначає новий стан).
Ехо-запит (клавіатура відповідає скан-кодом
0ЕЕh
ЕЕh).
0F3h Встановлення параметрів режиму автоповтору.
0F4h Включення клавіатури.
0F5h Виключення клавіатури.
0F6h Встановлення параметрів по замовчуванню.
0FЕh Послати останні скан-код ще раз.
0FFh Виконати самотестування.
17