找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 13390|回复: 3

~!@#¥%……&()这几个键没有scancode

[复制链接]
发表于 2009-11-9 18:07:12 | 显示全部楼层 |阅读模式
请问怎么配置他们呢?数字0-1是默认了 的嘛?
发表于 2009-11-9 23:35:56 | 显示全部楼层
只需要填 一级键盘的 SCANCODE 就OK 了,一搬CORE里的都会对SHIFT 进行处理 比如 只要在该填  1 的位置填了 1 的scancode 那么当你去按下SHIFT +1 的时候 ,就会出来 !的SCANCODE ,& l# d% j. h6 s, @3 S3 J# t8 q" |6 v
            您可以在 buffer_KEY函数里边下断点,把那个Buffer 里的东西丢到EC space 里看看到底发了什么,我也没追过到底发了什么, 但是我写好了,嘿,还没试过Shift的组合键 ,其他的都试了,都可以。7 Y8 M! E! y. D4 d/ Q3 l! q4 G
     我猜测可能Shift键除了CORE 里做动作,BIOS的INT9里也许也会有动作,具体细节可以看看PC技术内幕第八章~!~!
回复

使用道具 举报

发表于 2009-11-9 23:41:12 | 显示全部楼层
查了一下CODE和PC技术内幕,呵呵
; `3 Y( l' U' i, M8 ~" J
" u" @  P$ z2 t# n3 w6 y3 x 如上图,举个例子       6^   4 K: d+ e. Z* E4 ^" F9 }! g9 q1 ^
  kSCAN  CODE (0X36)  是6所对应的 set2 的scancode   也就是你需要填的SCANCODE
# f: j0 F! O; L   你只需要在 6 的位置去填0x36 就算配完这个键了   0X07 是SET1的扫描码,HOST 最终都是收到SET1的 扫描码(前提是    EC启用了 translate set2  to set1 的功能)9 z! _7 x6 i6 @  \" Y
  EC的 如果启用了 translate set2 to set1 的功能,则, 会把0x36转换为 0x07丢出去,BIOS  的INT9 Service 不管你 是否按下shift ,都会收到0x07
2 C2 H) `3 ~& d4 H* |) x' e* r$ A         只不过Shift 按下的时候BIOS会在其数据区(BDA里)置一个shift 的FLAG,根据这个 FLAG 是否 置位, BIOS 的Service 会返回不同的ASCII 码而已,比如按下shift +6 产生的scancode 是0x07,但是ASCII是 ^ 的 (0X5E), 而直接按 6 则产生(0x36),ASCII 是多少,那是BIOS和 上层 关心的事情!!!
; z; l' U( Z2 e* O   FYI

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入计匠网

×
回复

使用道具 举报

发表于 2012-3-19 17:59:52 | 显示全部楼层
感谢大大分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2024-11-15 20:53 , Processed in 0.030535 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表