home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sonderh1 / critical.inc < prev    next >
Text File  |  1987-05-18  |  1KB  |  33 lines

  1. (* ---------------------------------- *)
  2. (*           CRITICAL.INC             *)
  3. (* mit den hier enthaltenen Prozeduren*)
  4. (* koennen Teile einer Interrupt-Rout.*)
  5. (* ununterbrechbar gemacht werden.    *)
  6. (* ---------------------------------- *)
  7.  
  8. TYPE
  9.   CriticalSection_ = Integer;
  10.  
  11. PROCEDURE CriticalBegin
  12.           (VAR Sect: CriticalSection_);
  13.     BEGIN
  14.       Inline (
  15.         $9C/        { PUSHF          }
  16.         $58/        { POP AX         }
  17.         $FA/        { CLI            }
  18.         $BEC4/Sect/ { LES DI,Sect[BP]}
  19.         $26/$89/$05);{MOV ES:[DI],AX }
  20.     END;
  21.  
  22. PROCEDURE CriticalEnd
  23.           (VAR Sect: CriticalSection_);
  24.     BEGIN
  25.       Inline (
  26.         $BEC4/Sect/ { LES DI,Sect[BP]}
  27.         $26/$8B/$05/{ MOV AX,ES:[DI] }
  28.         $50/        { PUSH AX        }
  29.         $9D);       { POPF           }
  30.     END;
  31.  
  32. (* ---------------------------------- *)
  33. (*       Ende von CRITICAL.INC        *)