home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
549b.lha
/
M2P_v1.0_sources
/
source.lzh
/
CtrlC.mpp
< prev
next >
Wrap
Text File
|
1991-08-10
|
1KB
|
52 lines
(*======================================================================*)
(* NOTE: This same sort of code works with TDI Modula-2, but somehow *)
(* does not get along with the DBug module. Hence, I have *)
(* elected to exclude that code unless the compiler is M2Sprint *)
(*======================================================================*)
IMPLEMENTATION MODULE CtrlC;
@INCLUDE "MACROS"
@IF AMIGA & M2S THEN
IMPORT RunTime;
IMPORT Tasks;
CONST SIGBreakC = 12; (* to avoid importing DOS *)
VAR old : Tasks.SignalSet;
task : Tasks.TaskPtr;
@LongAddressing
PROCEDURE CtrlCHandler; (* This procedure gets called when CTRL-C *)
BEGIN (* is hit, and it activates the halt-handler *)
HALT;
END CtrlCHandler;
@NoLongAddressing
PROCEDURE Check;
BEGIN
task^.tcExceptCode:=PROC(CtrlCHandler);
old:=Tasks.SetExcept(Tasks.SignalSet{SIGBreakC},
Tasks.SignalSet{SIGBreakC});
task^.tcExceptCode:=PROC(0);
old:=Tasks.SetExcept(old,Tasks.SignalSet{0..31});
END Check;
(*********************************************************************)
BEGIN
task:=RunTime.CurrentProcess;
END CtrlC.
@ELSE
PROCEDURE Check; BEGIN END Check;
END CtrlC.
@END