Процедура GetIntVec

Модуль WinDOS

Возвращает адрес, сохраненный в заданном векторе прерывания.

Объявление:

  Procedure GetIntVec(IntNo : Byte; Var Vector : Pointer);
 

Режим: 

Замечания:
Параметр IntNo определяет номер вектора прерывания (0..255), А его адрес возвращается в переменной Vector.

Пример:

 Uses WinDos, Crt;
 
 Var Int1CSave : Pointer;
            Fl : Boolean;
 
 {$F+}
 Procedure TimerHandler;
 Interrupt;
 Begin
  { ISR на события таймера }
 
  {*** Обратитесь к документации по DDK или
   DPMI для информации по созданию ISR *** }
 
  { ISR на события таймера вызываются 18 раз в секунду }
 
  { Данный пример включает внутренний динамик 9 раз в
    секунду с частотой 1000 }
 
  If Fl Then NoSound Else Sound(1000);
  Fl:=Not Fl;
End;
{$F-}
 
Begin
 { Получаем старый вектор прерывания $1C - (системный таймер) }
 { и сохраняем его в переменной Int1CSave }
 GetIntVec($1C, Int1CSave);
 { Переназначаем его на нашу процедуру обработки прерывания }
 SetIntVec($1C, @TimerHandler);
 WriteLn('Нажмите любую клавишу для снятия обработчика...');
 Repeat
 Until Keypressed;
 { Возвращаем обработчик прерывания в исходное состояние }
 SetIntVec($1C, Int1CSave);
End.

См. также:  SetIntVec