home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / tp_util / ivswap.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-06-07  |  723 b   |  60 lines

  1.  
  2. UNIT IVSWAP;
  3. {$F+}
  4.  
  5. INTERFACE
  6.  
  7.  
  8. USES  DOS,NEATUNIT;
  9.  
  10.  
  11. CONST LASTVEC   = $CF; { LETZTER INTERRUPT- VEKTOR }
  12.  
  13. TYPE  INTPTR = ARRAY[0..LASTVEC] OF POINTER;
  14.  
  15. VAR   IP     : INTPTR;
  16.       SDP    : POINTER;
  17.  
  18.  
  19. PROCEDURE SETIP;
  20.  
  21.  
  22. IMPLEMENTATION
  23.  
  24.  
  25. VAR   OIP         : INTPTR ABSOLUTE $0:0;
  26.       EXITSAVE    : POINTER;
  27.       SDPORIG     : POINTER ABSOLUTE $40:$67;
  28.  
  29.  
  30. {$F+}
  31. PROCEDURE MYEXIT;
  32. BEGIN
  33.   CLI;
  34.   OIP := IP;
  35.   SDPORIG := SDP;
  36.   STI;
  37.   EXITPROC := EXITSAVE;
  38.   EXITPROC := NIL;
  39. END;
  40.  
  41.  
  42. PROCEDURE SETIP;
  43. BEGIN
  44.   CLI;
  45.   IP := OIP;
  46.   STI;
  47. END;
  48. {$F-}
  49.  
  50.  
  51. BEGIN
  52.   SDP := SDPORIG;
  53.   SWAPVECTORS;
  54.   SETIP;
  55.   SWAPVECTORS;
  56.   EXITSAVE := EXITPROC;
  57.   EXITPROC := @MYEXIT;
  58. END.
  59.  
  60.