вот код в 16-битном компиляторе c ++.
//restore interrupt
void CAzimuth::restoreISR()
{
__asm{
cli
mov ax,205h
mov bl,0fh
mov cx,seg OldInt
mov dx,offset OldInt
int 31h
sti
}
}
//install interrupt
void CAzimuth::installISR()
{
unsigned int u1,u2;
__asm{
//access the original vector
cli
mov ax,204h
mov bl,0fh
int 31h
mov u1,cx
mov u2,dx
sti
}
OldInt=(INTPTR)(_MK_FP(u1,u2));
__asm{
//fill in new interrupt vector
cli
mov ax,205h
mov bl,0fh
mov cx,seg NewInt
mov dx,offset NewInt
int 31h
sti
}
}
Это древний системный вызов интерфейса защищенного режима DOS для установки вектора прерывания защищенного режима. См. Например http://www.delorie.com/djgpp/doc/dpmi/api/310205.html. Компилятор был, вероятно, DJGPP. Портирование этого на другую ОС и / или систему выполнения потребует пересмотра с нуля, чтобы переопределить любую функциональность обработчиков прерываний, предоставляемых в DPMI. Удачи тебе в этом. Может быть что угодно от простого до почти невозможного.