|
|
发表于 2009-11-9 23:41:12
|
显示全部楼层
查了一下CODE和PC技术内幕,呵呵
# A3 ^* ?; w6 y' ]+ l+ T3 m9 g, r
6 n2 R# _! T5 S+ x1 n+ X 如上图,举个例子 6^
$ z- I# m3 \3 p+ i, t! q$ h; V kSCAN CODE (0X36) 是6所对应的 set2 的scancode 也就是你需要填的SCANCODE
& P. ]+ I8 b# r% G. L: J4 g) R8 R& u 你只需要在 6 的位置去填0x36 就算配完这个键了 0X07 是SET1的扫描码,HOST 最终都是收到SET1的 扫描码(前提是 EC启用了 translate set2 to set1 的功能)# U$ Q# y$ |( O: \% p% N$ p& a2 D
EC的 如果启用了 translate set2 to set1 的功能,则, 会把0x36转换为 0x07丢出去,BIOS 的INT9 Service 不管你 是否按下shift ,都会收到0x07, l( p m6 F& X) n# c( v' J
只不过Shift 按下的时候BIOS会在其数据区(BDA里)置一个shift 的FLAG,根据这个 FLAG 是否 置位, BIOS 的Service 会返回不同的ASCII 码而已,比如按下shift +6 产生的scancode 是0x07,但是ASCII是 ^ 的 (0X5E), 而直接按 6 则产生(0x36),ASCII 是多少,那是BIOS和 上层 关心的事情!!!
n+ B4 K( K S9 {5 ^( P( R FYI |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入计匠网
×
|