home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 01 / sendkeys / critical.inc < prev    next >
Encoding:
Text File  |  1987-10-26  |  979 b   |  25 lines

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