home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 04 / comedit / critical.inc < prev    next >
Encoding:
Text File  |  1988-01-12  |  1004 b   |  22 lines

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