te_int.c

来自「用BC++3.1编的C语言文本编辑器」· C语言 代码 · 共 51 行

C
51
字号
#include "te.h"
#ifdef __cplusplus
    #define __CPP ...
#else
    #define __CPP
#endif
/*接管DOS的错误中断 1b,23,24*/

void interrupt new_int24(__CPP)
{
}

void interrupt new_int1b(__CPP)
{
}



void interrupt (*old_int24)(__CPP);
void interrupt (*old_int23)(__CPP);
void interrupt (*old_int1b)(__CPP);

int SetInt(int is_set)
{
 static seted=0;

 if(is_set)
 { if(seted)return 1;
  disable();
  old_int24=getvect(0x24);
  old_int1b=getvect(0x1b);
  old_int23=getvect(0x23);
  setvect(0x24,new_int24);
  setvect(0x1b,new_int1b);
  setvect(0x23,new_int1b);
  seted=1;
  enable();
 }
 else
 {if(seted)return 1;
 disable();
 setvect(0x24,old_int24);
 setvect(0x1b,old_int1b);
 setvect(0x23,old_int23);
 seted=0;
 enable();
 }

 return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?