当前位置: 技术问答>linux和unix
请问 DJGPP 的高手,一个__dpmi_set_protected_mode_interrupt_vector的问题
来源: 互联网 发布时间:2014-11-17
本文导语: 请问一下,在 djgpp 下面,要使用 __dpmi_set_protected_mode_interrupt_vector,但却不知道要用什么方法把函数的地址转换成 __dpmi_paddr 的类型,请帮忙。 另外,实模式下面的时钟中断 1C 在保护方式下面还有没有效呢? ...
请问一下,在 djgpp 下面,要使用 __dpmi_set_protected_mode_interrupt_vector,但却不知道要用什么方法把函数的地址转换成 __dpmi_paddr 的类型,请帮忙。
另外,实模式下面的时钟中断 1C 在保护方式下面还有没有效呢?
另外,实模式下面的时钟中断 1C 在保护方式下面还有没有效呢?
|
我猜想你是要设置中断吧!
可以这样:
_go32_dpmi_seginfo OldHandler;
_go32_dpmi_seginfo NewHandler;
static int NewChain(); //你的中断处理函数
_go32_dpmi_get_protected_mode_interrupt_vector(0x1c, &OldHandler);
NewHandler.pm_offset=(int)NewChain;
NewTimerHandler.pm_selector=_go32_my_cs();
_go32_dpmi_chain_protected_mode_interrupt_vector(0x1c,&NewHandler);
有一点需要注意的是:
DJGPP以前的版本使用的是__dpmi为前缀的函数申明
DJGPP 2.0以上版本使用_go32_dpmi的函数申明
请看一下djgpp带的文档详细说明
可以这样:
_go32_dpmi_seginfo OldHandler;
_go32_dpmi_seginfo NewHandler;
static int NewChain(); //你的中断处理函数
_go32_dpmi_get_protected_mode_interrupt_vector(0x1c, &OldHandler);
NewHandler.pm_offset=(int)NewChain;
NewTimerHandler.pm_selector=_go32_my_cs();
_go32_dpmi_chain_protected_mode_interrupt_vector(0x1c,&NewHandler);
有一点需要注意的是:
DJGPP以前的版本使用的是__dpmi为前缀的函数申明
DJGPP 2.0以上版本使用_go32_dpmi的函数申明
请看一下djgpp带的文档详细说明