关于扫描码

扫描码占一个字节,它的低七位对应于键的数字代码,最高位1表示按下,0表示被释放。

当扫描码来自换档键或双态键时,键的状态变化就被记录在存储器里。在其它情况下,按下的键所产生的扫描码被换成字符码。然后字符被送往内存的键盘缓冲区。当例程太忙不能处理输入的字符时,字符被放在这里。

 

字符码有两种,ASCII码和扩充码。扩充码包括功能键和组合键。ASCII码占一个字节。扩充码占两个字节。有些组合键执行特殊功能。缓冲区必须为每个字符提供两个字节。对ASCII码第一个字节是ASCII码,第二个字节是键扫描码。对扩充码来说,第一个字节是ASCII0,第二个字节是代码,该代码一般是键的扫描码。

 

内存0040:00170040:0018两个字节的每一位,表示了换档键和双态键的状态

 

当位(bit)=1时的含义

00400017

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(暂停程序)

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}