Буфер клавиатуры


Главная / ЭКВМ / Техническая информация / Функции

4. Буфер клавиатуры

   

4.1. Описание

Функции буфера клавиатуры выполняются только в программе пользователя. Использование буфера дает возможность обрабатывать нажатия клавиш ЭВМ (кроме клавиши "С/П", вызывающей останов) в прикладных программах.

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

 

4.2. Функции буфера клавиатуры

 

4.2.1. Чтение кода нажатой кнопки (R9029)

Операция производится при выполнении команды чтения из регистра памяти с адресом 9029. Если буфер заполнен, в регистр X стека заносится код первой нажатой кнопки, а счетчик нажатий декрементируется. При последующих чтениях, в регистр X стека считывается код второй нажатой кнопки, третьей и т.д. Когда счетчик нажатий обнуляется, то в регистр X стека всегда считывается код 255. Коды кнопок приведены в приложении Б.

При нажатии на кнопку клавиатуры счетчик нажатий инкрементируется, код нажатой кнопки ставится в конец очереди.

 

4.2.2. Очистка буфера клавиатуры (R9029)

Операция производится при выполнении команды записи в регистр памяти с адресом 9029 любого числа, при этом счетчик нажатий обнуляется. Обнуление счетчика производится также при запуске программы пользователя.

 

4.2.3. Чтение состояния клавиатуры (R9028)

Операция производится при выполнении команды чтения из регистра памяти с адресом 9028. Если в момент выполнения операции нажата одна из кнопок клавиатуры, в регистр X стека считывается код этой кнопки. Если ни одна из кнопок клавиатуры не нажата, в регистр X стека считывается код 255. Коды кнопок приведены в приложении Б. Чтение состояния не влияет на счетчик нажатий буфера клавиатуры.




Приложение Б

 

Коды кнопок клавиатуры

Клавиша Код
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
, (запятая) 10
/-/ 11
ВП 12
Cx 13
B↑ 14
+ 15
- 16
× 17
÷ 18
19
F 20
K 21
P 22
ШГ вправо 23
ШГ влево 24
В/О 25
С/П 26
ИП 27
П 28
БП 29
ПП 30
Р-ГРД-Г 31
Выход 32
Ввод 33
34
35
36
37


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)