0813a560

Чтение символа с ожиданием


Функция 00h выполняет чтение кода символа из буфера клавиатуры, если он там есть. Если буфер клавиатуры пуст, программа переводится в состояние ожидания до тех пор, пока не будет нажата какая-нибудь клавиша. Скан-код и ASCII-код нажатой клавиши передаются программе.

Приведем формат вызова функции:

На входе: AH = 00h

На выходе: AL = ASCII-код символа или 0, если AH содержит расширенный ASCII-код символа;

AH = скан-код или расширенный ASCII-код символа, если AL=0;

Приведем таблицу скан-кодов для клавиатуры IBM PC/XT:

----------T----------T------------T-------------T---------------¬ ¦01 Esc ¦12 E ¦23 H ¦34 . > ¦45 NumLock ¦ ¦02 1 ! ¦13 R ¦24 J ¦35 / ? ¦46 ScrollLock¦ ¦03 2 @ ¦14 T ¦25 K ¦36 Shft(прав)¦47 Home [7] ¦ ¦04 3 # ¦15 Y ¦26 L ¦37 * PrtSc ¦48 Up [8] ¦ ¦05 4 $ ¦16 U ¦27 ; : ¦38 Alt ¦49 PgUp [9] ¦ ¦06 5 % ¦17 I ¦28 " ' ¦39 Пробел ¦4a K - ¦ ¦07 6 ^ ¦18 O ¦29 ` ~ ¦3a CapsLock¦4b <- [4] ¦ ¦08 7 & ¦19 P ¦2a Shft(лев)¦3b F1 ¦4c [5] ¦ ¦09 8 * ¦1a [ { ¦2b \ | ¦3c F2 ¦4d -> [6] ¦ ¦0a 9 ( ¦1b ] } ¦2c Z ¦3d F3 ¦4e K + ¦ ¦0b 0 ) ¦1c Enter¦2d X ¦3e F4 ¦4f End [1] ¦ ¦0c - _ ¦1d Ctrl ¦2e C ¦3f F5 ¦50 Dn [2] ¦ ¦0d + = ¦1e A ¦2f V ¦40 F6 ¦51 PgDn [3] ¦ ¦0e Bksp¦1f S ¦30 B ¦41 F7 ¦52 Ins [0] ¦ ¦0f Tab ¦20 D ¦31 N ¦42 F8 ¦53 Del [.] ¦ ¦10 Q ¦21 F ¦32 M ¦43 F9 ¦ ¦ ¦11 W ¦22 G ¦33 , < ¦44 F10 ¦ ¦ L---------¦----------¦------------¦-------------¦----------------

Для остальных клавиш функция 00h прерывания INT16h возвращает расширенный ASCII-код:

г--------T--------------T--------------T-------------¬ ¦ F1 3b¦ Shift-F1 54¦ Ctrl-F1 5e ¦ Alt-F1 68 ¦ ¦ F2 3c¦ Shift-F2 55¦ Ctrl-F2 5f ¦ Alt-F2 69 ¦ ¦ F3 3d¦ Shift-F3 56¦ Ctrl-F3 60 ¦ Alt-F3 6a ¦ ¦ F4 3e¦ Shift-F4 57¦ Ctrl-F4 61 ¦ Alt-F4 6b ¦ ¦ F5 3f¦ Shift-F5 58¦ Ctrl-F5 62 ¦ Alt-F5 6c ¦ ¦ F6 40¦ Shift-F6 59¦ Ctrl-F6 63 ¦ Alt-F6 6d ¦ ¦ F7 41¦ Shift-F7 5a¦ Ctrl-F7 64 ¦ Alt-F7 6e ¦ ¦ F8 42¦ Shift-F8 5b¦ Ctrl-F8 65 ¦ Alt-F8 6f ¦ ¦ F9 43¦ Shift-F9 5c¦ Ctrl-F9 66 ¦ Alt-F9 70 ¦ ¦ F10 44¦ Shift-F10 5d¦ Ctrl-F10 67 ¦ Alt-F10 71 ¦ L--------¦--------------¦--------------¦--------------



Содержание раздела