logo search
несколько программ / bsp33

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

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

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

Регистры на входе:

AH = 00h

Регистры на выходе:

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

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

Приведем таблицу скан-кодов:

01

Esc

12

E

23

H

34

. >

45

NumLock

02

1 !

13

R

24

J

35

/ ?

46

ScrLock

03

2 @

14

T

25

K

36

Shift прав.

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

[-]

07

6 ^

18

O

29

` ~

3A

CapsLock

4B

<- [4]

08

7 &

19

P

2A

Shift лев.

3B

F1

4C

[5]

09

8 *

1A

[ {

2B

\ |

3C

F2

4D

-> [6]

0A

9 (

1B

] }

2C

Z

3D

F3

4E

[+]

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

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

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

Alt+A

1E

Alt+P

19

Alt+3

7A

Down

50

Alt+B

30

Alt+Q

10

Alt+4

7B

Left

4B

Alt+C

2E

Alt+R

13

Alt+5

7C

Right

4D

Alt+D

20

Alt+S

1F

Alt+6

7D

Up

48

Alt+E

12

Alt+T

14

Alt+7

7E

End

4F

Alt+S

21

Alt+U

16

Alt+8

7F

Home

47

Alt+G

22

Alt+V

2F

Alt+9

80

PgDn

51

Alt+H

23

Alt+W

11

Alt+-

82

PdUp

49

Alt+I

17

Alt+X

2D

Alt+=

83

Alt+J

24

Alt+Y

15

Ctrl+Left

73

Alt+K

25

Alt+Z

2C

Ctrl+Right

74

Alt+L

26

Shift+Tab

0F

Ctrl+End

75

Alt+M

32

Alt+0

81

Insert

52

Ctrl+Home

77

Alt+N

31

Alt+1

78

Delete

53

Ctrl+PgDn

76

Alt+O

18

Alt+2

79

PrintScr

72

Ctrl+PgUp

84

В следующей таблице приведены скан-коды клавиш, имеющихся только на 101-клавишной клавиатуре:

F11

85

Alt-Bksp

0e

Alt- Д /

a4

F12

86

Alt-Enter

1c

Alt- Д *

37

Shft-F11

87

Alt-Esc

01

Alt- Д -

4a

Shft-F12

88

Alt-Tab

a5

Alt- Д +

4e

Ctrl-F11

89

Ctrl-Tab

94

Alt- Д Enter

a6

Ctrl-F12

8a

Alt-F11

8b

Alt-up Up

98

Ctrl- Д /

95

Alt-F12

8c

Alt-down Dn

a0

Ctrl- Д *

96

Alt-[

1a

Alt-left <-

9b

Ctrl- Д -

8e

Alt-]

1b

Alt-right ->

9d

Ctrl- Д +

90

Alt-;

27

Alt-'

28

Alt-Delete

a3

Ctrl- Д Up [8]

8d

Alt-`

29

Alt-End

9f

Ctrl- Д 5 [5]

8f

Alt-\

2b

Alt-Home

97

Ctrl- Д Dn [2]

91

Alt-,

33

Alt-Insert

a2

Ctrl- Д Ins[0]

92

Alt-.

34

Alt-PageUp

99

Ctrl- Д Del[.]

93

Буква "Д" здесь обозначает дополнительную клавиатуру.