home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TP_ADV.ZIP / LIST0708.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-11-17  |  759 b   |  44 lines

  1. Unit Int1C;
  2.  
  3. INTERFACE
  4.  
  5. Uses
  6.   DOS,CRT;
  7.  
  8. Var
  9.   TimerCt : LongInt;
  10.  
  11. IMPLEMENTATION
  12.  
  13. Var
  14.   OldExitProc,
  15.   SaveInt1C : pointer;
  16.  
  17. Procedure JmpOldISR(OldISR: Pointer);
  18.   Inline($5B/$58/$87/$5E/$0E/$87/$46/$10/$89/
  19.          $EC/$5D/$07/$1F/$5F/$5E/$5A/$59/$CB);
  20.  
  21. {$F+}
  22. Procedure Timer_ISR( Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:word ); Interrupt;
  23. Begin
  24.   Inline ( $FA );   { CLI }
  25.   Inc ( TimerCt );  { increment the counter }
  26.   Inline ( $FB );   { STI }
  27.   JmpOldISR( SaveInt1C );
  28. End;
  29.  
  30. Procedure Int1CExitProc;
  31. Begin
  32.   ExitProc := OldExitProc;
  33.   SetIntVec( $1C, SaveInt1C );
  34. end;
  35. {$F-}
  36.  
  37. Begin
  38.   OldExitProc := ExitProc;
  39.   ExitProc := @Int1CExitProc;
  40.   GetIntVec( $1C, SaveInt1C );
  41.   SetIntVec( $1C, @Timer_ISR );
  42. end.
  43.  
  44.