Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

KEYBOARD(HW)

��������
keyboard - ���������� ������������� ����������.

��������
���������� ������������� ���������� ������������ ��� ����� ������, ������������ ������� � ����������� ��������� ����������� �������� ����������. ������� UNIX ��������� �������� ������ � ���������� ��������� � ��� ���� ��������� ������ �� ��������� ��������� ������ � �� ����������. ��� ������� � �� ���������� ����� ����������� ��������, ������� ��������� � ������� UNIX � ����� ���������������, � ����� � �� ��������������� ������ ������ �� ����� ����������. ��� ������� ����� ������� �����.

����� �� ��������� �������, ���������� ���� �� ��������� �������:

����� ���������� �������, ���������� �������� ���������� ����-���, ������� ���������������� ��������� ����������. ������������� ����� ������ ����� ���� �������� ���, ��� ������� ����� ������ ��������������� �� �������, ������� �� �� ��������� �� ���������.

��������� ��� ��������� ������� ��� ������� ������:

������������ ������� (������������� �����)
��� ������������ �� ��������� ����� ������� Ctrl-PrtSc, ��������� ������� Ctrl � PrtSc. ����� �������� ����� ����� ���� ������ �������� alt-Fn, ��� Fn - ���� �� �������������� ������. F1 ��������� � ������� ���������� (/dev/tty01).

�������
������� ��������� ����������� �� ������� ��� ��������� ���������. ��������� �������� �������� Ctrl-d (����� ����� � ����� �� ��������), Ctrl-\ (���������� ��������), Ctrl-s ( ��������� ������ �� �����) � Ctrl-q (������������� ������).

������ ������� �������� � ������������ �������� � ������� stty(1). ������������ ������ ��������� ������ � ������������ �������� ����� ���������� stty.

��������� �������� ������� ������
�������������� ���, ���������� �������� ����������, ����� ���� ������� � ������� ���������� ��������� ������. ��������, ������� SHIFT ������ �������� �������� ASCII ��������-�������� ������. ����������� ������� Ctrl ��� ������� ������ ������ ���������� ����������� ���� (Ctrl-d, Ctrl-s, Ctrl-q � ��.).

����������� �������
��� ���������� ��������� ����������� ������ � ��������� ������� �������� ������������ ������ �������� ������� ������ ������� UNIX. � ���� ������� �������� (-) ����� ���������� ������ �������� "����������� ������ �������, ������� �� ������".
�������� � ������� XENIX����� �� ������������������
INTRDel������������� ������� �������� � ���������� � ��������. ��� ������� ���������� ����� RUB OUT ��� INTERRUPT.
BACKSPACE<-������� ������ ������ ����� �� �������. ��������, ��� ������� "�������� ������� �����" ����� ����� ����� "������� �����", �� ��� �� ������� �������.
Ctrl-dCtrl-d������������� � ����� ����� � ����������; ����� ���� ������������ ����� �� ������� ��������.
Ctrl-hCtrl-h������� ������ ������ ����� �� �������. ���������� ����� ERASE.
Ctrl-qCtrl-q������������ ������ ����� �� ��������� � ������� ������� Ctrl-s.
Ctrl-sCtrl-s������������� ������ �� ����� (������ ��������� �� ������������).
Ctrl-uCtrl-u������� ��� ������� �� ������� ������. ���������� ����� KILL.
Ctrl-\Ctrl-\���������� ���������� ������� ������� � ������� core-����, ���� ��� ���������. (������������� ������ ��� �������.)
ESCAPEEsc����������� ��� ��� ��������� ��������. � ��������� ��������� vi(C) ����������� ����� ������� � ��������� �����.
RETURN(down-left arrow or ENTER)��������� �������� ��������� ������ � ����������� �������� ��������.
FnFn�������������� ������� n. F1-F12 ������������ ��� ������� SHIFT. F13-F24 ������������ � ������� SHIFT. F25-F36 ������������ � ������� Ctrl-F1 ����� F12, F37-F48 ������������ � ������� Ctrl-Shift-F1 ����� F12.

��������� ������� Fn (F49-F60) ��������� �� �������������� �������� ������ (Shift �� ������������): F49 - '7'
F55 - '6'
F50 - '8'
F55 - '+'
F51 - '9'
F55 - '1'
F52 - '-'
F55 - '2'
F53 - '4'
F55 - '3'
F54 - '5'
F55 - '0'

������������ �������� F61-F96 �������� � ����� /usr/lib/keyboard/strings. ��� �������������� ����� �������� �� �� ���� �����������, �� �� ������ ��������� �� � ������������ ������ �������.

���������� ������ ���������� ����������� � ������� ���������, ������������ � ����� /usr/include/sys/keyboard.h. ������ ������� ����� ����� ������ ���������. ������ ������ ������:

��� �������������� ��������� ������������ ����� ������������ �������. ������ �������� ������ "������������ ���������", ���� �������� ���������, �������� �� ������ ���� "�����������" � ����� ��� ���������� �� ������ ������ ���������.

������ ����� ���� ����� �� ������� �������� (C, N, B, O), ����������� �� ��, ��� ��������� ������� �������� ��������� ������ �� ���.

������ ����������
����������� ��������� ������ ��������� � ������ XT, �� ��������� �� ��� ����� ���� ����������� � ����� AT. ��� ����������� ����, ������������ �� ���������� ����� AT, ������� ������� kbmode(8), ������� ����� ���� ����� ������������ ��� ������������ ���������� � ����� AT ����� ��������� ������������ �������. ����� ���������� ��������� ������������ ���������� �� ����� AT � ������� ������� configure(8).

���������� � ������������ ������������� ��������������� � ������ AT ����� �����, � ������� ������������ ����� �� ��� ������� Ctrl � Alt.

����-����
� ��������� ������� ����������� ���������� ����� /usr/lib/keyboard/keys, ��������������� �� ���������. ��� �������� ��������� ��������� �������:

SCAN CODE - ����-���, ������������ ���������� ������ ���������� ��� ������� �������. ������������ �� ����� ������� � ����-����, ������������� �� ������� �������.

BASE - ���������� ��������, ������������ ��� ������� �������.

SHIFT - ��������, ������������ ��� ������� ������� ��� ������� ������� SHIFT.

LOCK - ���������, ��� ��������� ������� �������� �������� ������������ �� ��� �������:

������� ���� C, N � B ���������� ��������� �������� ����-���� � ���������, ����� ��� ��������� ������� ��������. ���� ��� ���� ����� ������ ������� Shift, �� �������� ����-���� ����� ����������� �������.

������ ������� ������� ������������ ��������, ������������ ��� ������� ������ ������� � ���������� � ������������� ��������� CTRL, ALT � SHIFT.

��� ��� ��������, �� ����������� �������� ����, ������������ ����� ������� ASCII. �������� ����� ��������� � ����������� �������������� ��������.

SCAN CODEBASESHIFTCTRLCTRL SHIFTALTALT SHIFTALT CTRLALT CTRL SHIFTLOCK
0nopnopnopnopnopnopnopnopO
1escescnopnopescescnopnopO
2'1''!'nopnop'1''!'nopnopO
3'2''@'nopnop'2''@'nopnopO
4'3''#'nopnop'3''#'nopnopO
5'4''$'nopnop'4''#'nopnopO
6'5''%'nopnop'5''%'nopnopO
7'6''^'rsrs'6''^'rsrsO
8'7''&'nopnop'7''&'nopnopO
9'8''*'nopnop'8''*'nopnopO
10'9''('nopnop'9''('nopnopO
11'0'')'nopnop'0'')'nopnopO
12'-''_'nsns'-''_'nsnsO
13'=''+'nopnop'=''+'nopnopO
14bsbsdeldelbsbsdeldelO
15htbtabnopnophtbtabnopnopO
16'q''Q'dc1dc1'q''Q'dc1dc1C
17'w''W'etbetb'w''W'etbetbC
18'e''E'enqenq'e''E'enqenqC
19'r''R'dc2dc2'r''R'dc2dc2C
20't''T'dc4dc4't''T'dc4dc4C
21'y''Y'emem'y''Y'ememC
22'u''U'naknak'u''U'naknakC
23'i''I'htht'i''I'hthtC
24'o''O'sisi'o''O'sisiC
25'p''P'dledle'p''P'dledleC
26'[''{'escesc'[''{'escescO
27']''}'gsgs']''}'gsgsO
28crcrnlnlcrcrnlnlO
29ctrlctrlctrlctrlctrlctrlctrlctrlO
30'a''A'sohsoh'a''A'sohsohC
31's''S'dc3dc3's''S'dc3dc3C
32'd''D'eoteot'd''D'eoteotC
33'f''F'ackack'f''F'ackackC
34'g''G'belbel'g''G'belbelC
35'h''H'bsbs'h''H'bsbsC
36'j''J'nlnl'j''J'nlnlC
37'k''K'vtvt'k''K'vtvtC
38'l''L'npnp'l''L'npnpC
39';'':'nopnop';'':'nopnopO
40'\''"'nopnop'\''"'nopnopO
41'`''~'nopnop'`''~'nopnopO
42lshiftlshiftlshiftlshiftlshiftlshiftlshiftlshiftO
43'\\''|'fsfs'\\''|'fsfsO
44'z''Z'subsub'z''Z'subsubO
45'x''X'cancan'x''X'cancanC
46'c''C'etxetx'c''C'etxetxC
47'v''V'synsyn'v''V'sinsinC
48'b''B'stxstx'b''B'stxstxC
49'n''N'soso'n''N'sosoC
50'm''M'crcr'm''M'crcrC
51',''<'nopnop',''<'nopnopO
52'.''>'nopnop',''>'nopnopO
53'/''?'nopnop'/''?'nopnopO
54rshiftrshiftrshiftrshiftrshiftrshiftrshiftrshiftO
55'*''*'nscrnscr'*''*'nscrnscrO
56altaltaltaltaltaltaltaltO
57' '' '' '' '' '' '' '' 'O
58clockclockclockclockclockclockclockclockO
59fkey1fkey13fkey25fkey37scr1scr11scr1scr11O
60fkey2fkey14fkey26fkey38scr2scr12scr2scr12O
61fkey3fkey15fkey27fkey39scr3scr13scr3scr13O
62fkey4fkey16fkey28fkey40scr4scr14scr4scr14O
63fkey5fkey17fkey29fkey41scr5scr15scr5scr15O
64fkey6fkey18fkey30fkey42scr6scr16scr6scr16O
65fkey7fkey19fkey31fkey43scr7scr7scr7scr7O
66fkey8fkey20fkey32fkey44scr8scr8scr8scr8O
67fkey9fkey21fkey33fkey45scr9scr9scr9scr9O
68fkey10fkey22fkey34fkey46scr10scr10scr10scr10O
69nlocknlockdc3dc3nlocknlockdc3dc3O
70slockslockdeldelslockslockdeldelO
71fkey49'7''7''7''7''7''7''7'N
72fkey50'8''8''8''8''8''8''8'N
73fkey51'9''9''9''9''9''9''9'N
74fkey52'-''-''-''-''-''-''-'N
75fkey53'4''4''4''4''4''4''4'N
76fkey54'5''5''5''5''5''5''5'N
77fkey55'6''6''6''6''6''6''6'N
78fkey56'+''+''+''+''+''+''+'N
79fkey57'1''1''1''1''1''1''1'N
80fkey58'2''2''2''2''2''2''2'N
81fkey59'3''3''3''3''3''3''3'N
82fkey60'0''0''0''0''0''0''0'N
83del'.'deldeldeldeldeldelN
84nopnopnopnopnopnopnopnopO
85fkey11fkey23fkey35fkey47scr11scr11scr11scr11O
86fkey12fkey24fkey36fkey48scr12scr12scr12scr12O

��������� ����-���� ������������ ������ �� �����������, ������� ������������ � ��������� � ������ AT.

SCAN CODEBASESHIFTCTRLCTRL SHIFTALTALT SHIFTALT CTRLALT CTRL SHIFTLOCK
87fkey11fkey23fkey35fkey47scr11scr11scr11scr11O
88fkey12fkey24fkey36fkey48scr12scr12scr12scr12O
89nopnopnopnopnopnopnopnopO
90nopnopnopnopnopnopnopnopO
91nopnopnopnopnopnopnopnopO
92nopnopnopnopnopnopnopnopO
93nopnopnopnopnopnopnopnopO
94nopnopnopnopnopnopnopnopO
95nopnopnopnopnopnopnopnopO
96fkey50fkey50fkey50fkey50fkey50fkey50fkey50fkey50O
97fkey53fkey53fkey53fkey53fkey53fkey53fkey53fkey53O
98fkey58fkey58fkey58fkey58fkey58fkey58fkey58fkey58O
99fkey55fkey55fkey55fkey55fkey55fkey55fkey55fkey55O
100fkey49fkey49fkey49fkey49fkey49fkey49fkey49fkey49O
101fkey51fkey51fkey51fkey51fkey51fkey51fkey51fkey51O
102fkey57fkey57fkey57fkey57fkey57fkey57fkey57fkey57O
103fkey59fkey59fkey59fkey59fkey59fkey59fkey59fkey59O
104fkey60fkey60fkey60fkey60fkey60fkey60fkey60fkey60O
105deldeldeldeldeldeldeldel0
106nopnopnopnopnopnopnopnopO
107nopnopnopnopnopnopnopnopO
108nopnopnopnopnopnopnopnopO
109nopnopnopnopnopnopnopnopO
110nopnopnopnopnopnopnopnopO
111nopnopnopnopnopnopnopnopO
112nopnopnopnopnopnopnopnopO
113nopnopnopnopnopnopnopnopO
114nopnopnopnopnopnopnopnopO
115nopnopnopnopnopnopnopnopO
116nopnopnopnopnopnopnopnopO
117nopnopnopnopnopnopnopnopO
118nopnopnopnopnopnopnopnopO
119nopnopnopnopnopnopnopnopO
120nopnopnopnopnopnopnopnopO
121nopnopnopnopnopnopnopnopO
122nopnopnopnopnopnopnopnopO
123nopnopnopnopnopnopnopnopO
124nopnopnopnopnopnopnopnopO
125nopnopnopnopnopnopnopnopO
126nopnopnopnopnopnopnopnopO
127nopnopnopnopnopnopnopnopO
128rctrlrctrlrctrlrctrlrctrlrctrlrctrlrctrlO
129raltraltraltraltraltraltraltraltO
130fkey60fkey60fkey60fkey60fkey60fkey60fkey60fkey60O
131deldeldeldeldeldeldeldel0
132fkey49fkey49fkey49fkey49fkey49fkey49fkey49fkey49O
133fkey57fkey57fkey57fkey57fkey57fkey57fkey57fkey57O
134fkey51fkey51fkey51fkey51fkey51fkey51fkey51fkey51O
135fkey59fkey59fkey59fkey59fkey59fkey59fkey59fkey59O
136fkey53fkey53fkey53fkey53fkey53fkey53fkey53fkey53O
137fkey55fkey55fkey55fkey55fkey55fkey55fkey55fkey55O
138fkey50fkey50fkey50fkey50fkey50fkey50fkey50fkey50O
139fkey58fkey58fkey58fkey58fkey58fkey58fkey58fkey58O
140'/'nopnopnop'/'nopnopnopO
141crcrnlnlcrcrnlnlO

� ��������� ������� ������������� "��������" ����������� �������� ���� � ����� /usr/lib/keyboard/keys (� � ���������� �������). mapkey(ADM) �������� "��������" ��������� ����� � ����� ���������� ������/������� �� ����� ���������� ������. ��� �������� ����� ������������ ������ � ����� ����-����� /usr/lib/keyboard/keys ��� ��������� ��� ������.

������������������������
nop0�������� ��� - "������" ������� �������
lshift2����� ������� shift
rshift3������ ������� shift
clock4�������� Capslock
nclock5�������� Numlock
slock6�������� Scroll lock
alt7������� Alt
btab8���� �������� ��������� - ���������� ������������� ������������������ (esc [ Z)
ctrl9������� Ctrl
nscr10������������ �� ��������� �����
scr111������������ �� ����� #1
...
scr1626������������ �� ����� #16
fkey127�������������� ������� #1
...
fkey96122�������������� ������� #96
rctl128*������ ������� Ctrl
ralt129*������ ������� Alt
* ������ � ������ AT

� ��������� ������� ������������� �������� �������� ���� � �� ���������� ��������, ������� ����� ���������������� � ����� mapkey. ��� �������� ������������ ������ ��������������� ��������� �������� ��� ���������� ������ ������� ����-�����. �� � ����� ���������� ������/������� ���������� ������ ���������� ��������. ��� ������� �� ascci(5).

��������������������������������
nul0dc117
soh1dc218
stx2dc319
etx3dc420
eot4nak21
enq5syn22
ack6etb23
bel7can24
bs8em25
ht9sub26
nl10esc27
vt11fs28
np12gs29
cr13rs30
so14ns31
si15del127
dle16  

���������� ������ ����������
������������ ������������ ������ ���������� �������� ��������� ������ �������� ���������. ��� ��������� ����������� ������ ��� ���������� ����������, �� �� ��� ��������� ����������. ��� ��������� ������� ������������ ������ ����������� ������� mapkey. ����� �������� ��� ������� ��� ��������� ������� (������� � ������������� ������) ����������� ��������� mapchan(5).

��������� ������������ ������ ���������� ����� ���� ����� ��������� � ������� ioctl. ��������� - ��� ��, ��� � ��� ������������ �������������� ������ � ���������� �������.

��� ��������� ������������ ������ ���������� �������� cmd=GIO_KEYMAP ����������� ������� ������� ������������, � cmd=PIO_KEYMAP �������� ������� ����� �� �����.

���������� �������������� ������
��� ���������� �������������� ������ ����������� ������� mapstr (��. mapkey(8)). mapstr ������������ ������� ������������ �������������� ������, � ������� ��� ������� ������������.

������� ������������ �������������� ������ ������������ ����� ������ �� 512 ������ (typedef strmap_t - ��� ���������), ���������� ������, ��������������� ����� � ���������������� �������������� �������. ������ ������ ������������� ������ �������������� �������, ������ - ������ � �.�.

�� ���������� ����������� �� ����� ������, ����� ������� ����� �������, 512 ������, ������� ����. ������ ���������� ��������� �������������� ������� ��������.

����� �������� ������ �������� �������������� ������, ��������������� �� ���������:

�������� �������������� ������ �� ���������
������� #�������Shift
�������
Ctrl
�������
Ctrl
Shift
�������
1ESC[MESC[YESC[kESC[w
2ESC[NESC[ZESC[lESC[x
3ESC[OESC[aESC[mESC[y
4ESC[PESC[bESC[nESC[z
5ESC[QESC[cESC[oESC[@
6ESC[RESC[dESC[pESC[[
7ESC[SESC[eESC[qESC[\
8ESC[TESC[fESC[rESC[]
9ESC[UESC[gESC[sESC[^
10ESC[VESC[hESC[tESC[_
11ESC[WESC[iESC[uESC['
12ESC[XESC[jESC[vESC[{

HomeESC[HEndESC[F
Up arrowESC[ADown arrowESC[B
Page upESC[IPage downESC[G
Left arrowESC[D5ESC[E
Right arrowESC[CInsertESC[L

�� ������ ��������� �������������� ������� � ������� ioctl(2). ��������� ����� ���:

   #include <sys/keyboard.h>
   ioctl(fd,cmd,buf)
   int fd,cmd;
   char *buf;
   ...

��� ��������� ������������ ������ ���������� �������� cmd=GIO_KEYMAP ����������� ������� ������� ������������, � cmd=PIO_KEYMAP ������������� ����� ������� �� �����.

�����

  /usr/lib/keyboard/keys
  /usr/lib/keyboard/strings

��. �����
mapchan(3), mapchan(5), mapkey(8), multiscreen(5), screen(HW), setkey(1), stty(1), kbmode(8), configure(8)
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT