扫描码占一个字节,它的低七位对应于键的数字代码,最高位1表示按下,0表示被释放。
当扫描码来自换档键或双态键时,键的状态变化就被记录在存储器里。在其它情况下,按下的键所产生的扫描码被换成字符码。然后字符被送往内存的键盘缓冲区。当例程太忙不能处理输入的字符时,字符被放在这里。
字符码有两种,ASCII码和扩充码。扩充码包括功能键和组合键。ASCII码占一个字节。扩充码占两个字节。有些组合键执行特殊功能。缓冲区必须为每个字符提供两个字节。对ASCII码第一个字节是ASCII码,第二个字节是键扫描码。对扩充码来说,第一个字节是ASCII0,第二个字节是代码,该代码一般是键的扫描码。
内存0040:0017和0040:0018两个字节的每一位,表示了换档键和双态键的状态。
|
|
位 |
键 |
当位(bit)=1时的含义 |
|
0040:0017 |
7 |
Insert |
On |
|
|
6 |
CapsLock |
On |
|
|
5 |
NumLock |
On |
|
|
4 |
ScrollLock |
On |
|
|
3 |
Alt Shift |
按下 |
|
|
2 |
Ctrl Shift |
按下 |
|
|
1 |
LeftHand Shift |
按下 |
|
|
0 |
RightHand Shift |
按下 |
|
0040:0018 |
7 |
Insert |
按下 |
|
|
6 |
CapsLock |
按下 |
|
|
5 |
NumLock |
按下 |
|
|
4 |
ScrollLock |
按下 |
|
其它没用 |
3 |
|
Ctrl_Numbock处于On(暂停程序) |
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}