This is retired content. This content is outdated and is no
longer being maintained. It is provided as a courtesy for
individuals who are still using these technologies. This content
may contain URLs that were valid when originally published, but now
link to sites or pages that no longer exist.
The Japanese keyboard definition is more complex than other
keyboards because of the language complexities. What follows is the
information required to create a Japanese 106 keyboard layout. An
example of a Japanese 106 keyboard can be found in the \CEPC
platform directory.
The following table shows the scan key to virtual key
mapping.
Scan code
VK_ key
00
_none_
01
ESCAPE
02
1
03
2
04
3
05
4
06
5
07
6
08
7
09
8
0A
9
0B
0
0C
OEM_MINUS
0D
OEM_7
0E
BACK
0F
TAB
10
Q
11
W
12
E
13
R
14
T
15
Y
16
U
17
I
18
O
19
P
1A
OEM_3
1B
OEM_4
1C
RETURN
1D
LCONTROL
1E
A
1F
S
20
D
21
F
22
G
23
H
24
J
25
K
26
L
27
OEM_PLUS
28
OEM_1
29
DBE_SBCSCHAR
2A
LSHIFT
2B
OEM_6
2C
Z
2D
X
2E
C
2F
V
30
B
31
N
32
M
33
OEM_COMMA
34
OEM_PERIOD
35
OEM_2
36
RSHIFT
37
MULTIPLY
38
LMENU
39
" "
3A
DBE_ALPHANUMERIC
3B
F1
3C
F2
3D
F3
3E
F4
3F
F5
40
F6
41
F7
42
F8
43
F9
44
F10
45
NUMLOCK
46
OEM_SCROLL
47
HOME
48
UP
49
PRIOR
4A
SUBTRACT
4B
LEFT
4C
CLEAR
4D
RIGHT
4E
ADD
4F
END
50
DOWN
51
NEXT
52
INSERT
53
DELETE
54
SNAPSHOT
55
_none_
56
_none_
57
F11
58
F12
59
CLEAR
5A
NONAME
5B
NONAME
5C
NONAME
5D
EREOF
5E
_none_
5F
NONAME
60
_none_
61
_none_
62
_none_
63
_none_
64
F13
65
F14
66
F15
67
F16
68
F17
69
F18
6A
F19
6B
F20
6C
F21
6D
F22
6E
F23
6F
_none_
70
DBE_HIRAGANA
71
_none_
72
_none_
73
OEM_102
74
_none_
75
_none_
76
F24
77
_none_
78
_none_
79
CONVERT
7A
_none_
7B
NONCONVERT
7C
TAB
7D
OEM_5
7E
ABNT_C2
7F
OEM_PA2
E01C
RETURN
E01D
RCONTROL
E033
_none_
E035
DIVIDE
E037
SNAPSHOT
E038
RMENU
E042
_none_
E043
_none_
E044
_none_
E046
CANCEL
E047
HOME
E048
UP
E049
PRIOR
E04B
LEFT
E04D
RIGHT
E04F
END
E050
DOWN
E051
NEXT
E052
INSERT
E053
DELETE
E05B
LWIN
E05C
RWIN
E05D
APPS
E05E
POWER
E05F
SLEEP
E0F1
_none_
E0F2
_none_
E11D
PAUSE (See Below)
The BREAK key is sent as the sequence E1, left CTRL, NUMLOCK.
The keyboard driver must convert the E1+left CTRL sequence to the
BREAK key and ignore the NUMLOCK.
The next part of the Japanese keyboard is the virtual key to
character mapping. This mapping is dependent upon the state of
other modifier keys. Some characters are shown as symbol names,
which are described after these tables. The processing of virtual
keys should be performed in the order in which the following tables
are laid out. The following table shows the characters that should
be generated for each virtual key, both alone and in combination
with modifier keys.
Virtual key
CAPLOCK/ KANALOCK
Character
SHIFT
KANA
KANA+SHIFT
0
KANALOK
0
WCH_NONE
WCH_WA
WCH_WO
1
KANALOK
1
!
WCH_NU
WCH_NU
3
KANALOK
3
#
WCH_A
WCH_AA
4
KANALOK
4
$
WCH_U
WCH_UU
5
KANALOK
5
%
WCH_E
WCH_EE
7
KANALOK
7
0x27
WCH_YA
WCH_YAA
8
KANALOK
8
(
WCH_YU
WCH_YUU
9
KANALOK
9
)
WCH_YO
WCH_YOO
A
CAPLOK| KANALOK
a
A
WCH_TI
WCH_TI
B
CAPLOK | KANALOK
b
B
WCH_KO
WCH_KO
C
CAPLOK | KANALOK
c
C
WCH_SO
WCH_SO
D
CAPLOK | KANALOK
d
D
WCH_SI
WCH_SI
E
CAPLOK | KANALOK
e
E
WCH_I
WCH_II
F
CAPLOK | KANALOK
f'
F
WCH_HA
WCH_HA
G
CAPLOK | KANALOK
g
G
WCH_KI
WCH_KI
H
CAPLOK | KANALOK
h
H
WCH_KU
WCH_KU
I
CAPLOK | KANALOK
i
I
WCH_NI
WCH_NI
J
CAPLOK | KANALOK
j
J
WCH_MA
WCH_MA
K
CAPLOK | KANALOK
k
K
WCH_NO
WCH_NO
L
CAPLOK | KANALOK
l
L
WCH_RI
WCH_RI
M
CAPLOK | KANALOK
m
M
WCH_MO
WCH_MO
N
CAPLOK | KANALOK
n
N
WCH_MI
WCH_MI
O
CAPLOK | KANALOK
o
O
WCH_RA
WCH_RA
P
CAPLOK | KANALOK
p
P
WCH_SE
WCH_SE
Q
CAPLOK | KANALOK
q
Q
WCH_TA
WCH_TA
R
CAPLOK | KANALOK
r
R
WCH_SU
WCH_SU
S
CAPLOK | KANALOK
s
S
WCH_TO
WCH_TO
T
CAPLOK | KANALOK
t
T
WCH_KA
WCH_KA
U
CAPLOK | KANALOK
u
U
WCH_NA
WCH_NA
V
CAPLOK | KANALOK
v
V
WCH_HI
WCH_HI
W
CAPLOK | KANALOK
w
W
WCH_TE
WCH_TE
X
CAPLOK | KANALOK
x
X
WCH_SA
WCH_SA
Y
CAPLOK | KANALOK
y
Y
WCH_NN
WCH_NN
Z
CAPLOK | KANALOK
z
Z
WCH_TU
WCH_TUU
OEM_1
KANALOK
":"
*
WCH_KE
WCH_KE
OEM_2
KANALOK
/
?
WCH_ME
WCH_MD
OEM_3
KANALOK
@
"`"
WCH_VS
WCH_VS
OEM_7
KANALOK
^
~
WCH_HE
WCH_HE
OEM_8
0
WCH_NONE
WCH_NONE
WCH_NONE
WCH_NONE
OEM_COMMA
KANALOK
","
<
WCH_NE
WCH_IC
OEM_PERIOD
KANALOK
"."
>
WCH_RU
WCH_IP
OEM_PLUS
KANALOK
";"
+
WCH_RE
WCH_RE
TAB
0
\t
\t
\t
\t
ADD
0
+
+
+
+
DECIMAL
0
"."
"."
"."
"."
DIVIDE
0
/
/
/
/
MULTIPLY
0
*
*
*
*
SUBTRACT
0
-
-
-
-
Note CAPSLOK and KANALOK
indicate that a key is affected by the state of the CAPS LOCK and
KANA LOCK keys.
Virtual key
CAPSLOCK / KANALOCK
Char
SHIFT
KANA
KANA+SHIFT
BACK
0
\b
\b
\b
\b
CANCEL
0
0x03
0x03
0x03
0x03
ESCAPE
0
0x1b
0x1b
0x1b
0x1b
OEM_4
KANALOK
[
{
WCH_SVS
WCH_OB
OEM_5
KANALOK
\\
|
WCH_PS
WCH_PS
OEM_102
KANALOK
\\
_
WCH_RO
WCH_RO
OEM_6
KANALOK
]
}
WCH_MU
WCH_CB
RETURN
0
\r
\r
\r
\r
SPACE
0
" "
" "
" "
" "
VK_key
CTRL
KANA+CTRL
BACK
0x7f
0x7f
CANCEL
0x03
0x03
ESCAPE
0x1b
0x1b
OEM_4
0x1b
0x1b
OEM_5
0x1c
0x1c
OEM_102
0x1c
0x1c
OEM_6
0x1d
0x1d
RETURN
\n
\n
SPACE
0x20
0x20
Virtual key
CAPSLOCK / KANALOK*
Char
SHIFT
KANA
KANA+SHIFT
2
KANALOK
2
"
WCH_HU
WCH_HU
6
KANALOK
6
&
WCH_O
WCH_OO
OEM_MINUS
KANALOK
-
=
WCH_HO
WCH_HO
Virtual key
CTRL
KANA+CTRL
SHIFT+CTRL
KANA+SHIFT+
CTRL
2
WCH_NONE
WCH_NONE
0x00
0x00
6
WCH_NONE
WCH_NONE
0x1e
0x1e
OEM_MINUS
WCH_NONE
WCH_NONE
0x1f
0x1f
VK_
CAPLOK / KANALOK
Char
SHIFT
KANA
KANA+SHIFT
NUMPAD0
0
0
WCH_NONE
0
WCH_NONE
NUMPAD1
0
1
WCH_NONE
1
WCH_NONE
NUMPAD2
0
2
WCH_NONE
2
WCH_NONE
NUMPAD3
0
3
WCH_NONE
3
WCH_NONE
NUMPAD4
0
4
WCH_NONE
4
WCH_NONE
NUMPAD5
0
5
WCH_NONE
5
WCH_NONE
NUMPAD6
0
6
WCH_NONE
6
WCH_NONE
NUMPAD7
0
7
WCH_NONE
7
WCH_NONE
NUMPAD8
0
8
WCH_NONE
8
WCH_NONE
NUMPAD9
0
9
WCH_NONE
9
WCH_NONE
The following table defines the character symbols used in the
previous table.