home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 07 / interrpt / critical.inc < prev    next >
Encoding:
Text File  |  1987-06-10  |  599 b   |  26 lines

  1. TYPE
  2.   CriticalSection_ = Integer;
  3.  
  4. PROCEDURE
  5.   CriticalBegin
  6.     (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
  17.   CriticalEnd
  18.     (VAR Sect: CriticalSection_);
  19.     BEGIN
  20.       Inline (
  21.         $BEC4/Sect/ { LES DI,Sect[BP]}
  22.         $26/$8B/$05/{ MOV AX,ES:[DI] }
  23.         $50/        { PUSH AX        }
  24.         $9D);       { POPF           }
  25.     END;
  26.