高分求救:修改中断服务程序
我修改了键盘中断服务程序,可是没有来得及恢复断电了,我想问的是:再次开机后会不会自动恢复到原来的状态(即原来的int9键盘中断服务程序),如果是,那就好说,如果不是,那我下面的程序怎么再次运行的时候就不行呢?
char far *keystatus = (char *) MK_FP(0x0040,0xac); /* 键盘状态标志(0、1、2、3、4) */
char far *alreadyk = (char *) MK_FP(0x0040,0xad); /* k键是否刚被按下 1=刚按下 */
void interrupt (far newint9)(__CPPARGS)
{
char far *keyqueuehead = (char far *)MK_FP(0x0040,0x1a);
char far *keyqueuetail = (char far *)MK_FP(0x0040,0x1c);
(*oldint9)();
if(*keyqueuehead != *keyqueuetail) /* 键盘缓冲区不空 */
{
keyqueuehead=keyqueuehead+*keyqueuehead-0x1e+5;
if(*keyqueuehead==0x25) /* 按下k键 */
{
*alreadyk=1;
}
else if(*alreadyk==1)
{
switch (*keyqueuehead)
{
case 11: /* 按下0键 */
*keystatus=0;
*alreadyk=0;
break;
case 2: /* 按下1键 */
*keystatus=1;
*alreadyk=0;
break;
case 3: /* 按下2键 */
*keystatus=2;
*alreadyk=0;
break;
case 4: /* 按下3键 */
*keystatus=3;
*alreadyk=0;
break;
case 5: /* 按下4键 */
*keystatus=4;
*alreadyk=0;
break;
default:
break;
}
}
}
}
请高手给于解答,十分感谢!