如何做出自己的键盘中断?

willsort 2003-01-15 06:50:15

无论是BIOS还是DOS,他们的键盘中断所能处理的组合键在某种情况下都太少,那么如何做出自己的键盘中断,可以定义自己的组合键处理?

注:可借助任何资源来实现,但关键要有通用性,比如我可以让他识别Ctrl+Alt+A, 或者F1+F2+F3+F4之类的特定的任意组合键。
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MagicianZ 2003-06-10
  • 打赏
  • 举报
回复
最近仔细考虑了这个问题:
基于8086的基本IA体系,我们知道IRQ1是键盘中断,键盘扫描码是从并行接口输入的,端口地址60H。在8086的约定下,这个端口是8位的。PORT 61H的D7,D6两位可以对键盘的时钟进行控制。也就是说无论是处于哪一层的键盘中断服务程序,必须遵循的规则有两条:
1、最初的中断来源是IRQ1(INT 09H)。
2、输入的数据宽度不能大于8位(256)。
而处理组合按键的话实际是键盘扫描码的求和,所以,只要组合按键的扫描码之和在0FFH以下,就应该可以处理。
方法是:接管INT 09H,直接驱动硬件,INT 16H,解除BIOS屏蔽。在你新挂接的INT 16H 里作你的键盘响应程序,应该就成了。
Billy_Chen28 2003-01-29
  • 打赏
  • 举报
回复
用键盘勾子,高级语言都可以做
willsort 2003-01-29
  • 打赏
  • 举报
回复
To All:

正如我所说的,我们的实现应该构成足够的通用性,而不是专为某一游戏或软件所设计,他应该具有良好的简化的界面以及相当的自由度,可以使未接触此类知识的初学者也能迅速简便的将其运用。

当然,最初的模型我们可以简化很多问题,但大体方向总是如此。

To MagicianZ(MazgicianX):

敬侯回音!
MagicianZ 2003-01-29
  • 打赏
  • 举报
回复
能给点时间吗,这个得试试
ydx 2003-01-24
  • 打赏
  • 举报
回复
对汇编里有这方面的知识,好象是int 9吧,你看一下忘了。
brucegong 2003-01-20
  • 打赏
  • 举报
回复






汇编语言里面就有关于键盘中断的位置。写段代码替换之







19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧