home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
sonderh1
/
critical.inc
< prev
next >
Wrap
Text File
|
1987-05-18
|
1KB
|
33 lines
(* ---------------------------------- *)
(* CRITICAL.INC *)
(* mit den hier enthaltenen Prozeduren*)
(* koennen Teile einer Interrupt-Rout.*)
(* ununterbrechbar gemacht werden. *)
(* ---------------------------------- *)
TYPE
CriticalSection_ = Integer;
PROCEDURE CriticalBegin
(VAR Sect: CriticalSection_);
BEGIN
Inline (
$9C/ { PUSHF }
$58/ { POP AX }
$FA/ { CLI }
$BEC4/Sect/ { LES DI,Sect[BP]}
$26/$89/$05);{MOV ES:[DI],AX }
END;
PROCEDURE CriticalEnd
(VAR Sect: CriticalSection_);
BEGIN
Inline (
$BEC4/Sect/ { LES DI,Sect[BP]}
$26/$8B/$05/{ MOV AX,ES:[DI] }
$50/ { PUSH AX }
$9D); { POPF }
END;
(* ---------------------------------- *)
(* Ende von CRITICAL.INC *)