winter
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2013-08-15
  • 粉丝4
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1501回复:2

我为什么在D0S下连不上我想用的中断?

楼主#
更多 发布于:2002-04-05 17:42
我使用BC3.0在98的dos下编程(启动时使用F8,选6进的DOS系统),机器是凌华的工控机,可以捕捉到键盘中断(irq1),可是却捕捉不到我自己做的硬件中断,从示波器上看没有什么问题,而且从0x21开看8259也感知到了这个中断申请,只是系统没有相应,关于在DOS中的中断还有什么特别的吗?
请原谅我的无知与直率
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-04-05 18:06
if (yourIRQ >= 8)
{
 yourIRQ += 0x68;
}
else
{
 yourIRQ += 8;
}
getvect(...);
setvect(yourIRQ,...);
不知道你是不是因为这个缘故,另外,8259-2的相应的中断也要打开,如果大于大于8。
winter
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2013-08-15
  • 粉丝4
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-06 09:18
我用的是irq7,
oldhandle=getvect(0xf);
setvect(0xf,newhandle);
结果连不上中断。在Windows下我用VxD程序就可以连上中断
在Dos下我用
oldhandle=getvect(0x9);
setvect(0x9,newhandle);
可以连上键盘中断
请原谅我的无知与直率
游客

返回顶部