FLOATEXC.MOD 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * FLOATEXC.MOD - Floating-point exception handlers *
  5. * *
  6. * COPYRIGHT (C) 1987..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(seg_name => null,
  11. ds_entry=>null) *)
  12. (*# data(seg_name => null) *)
  13. (*# check(stack=>off,
  14. index=>off,
  15. range=>off,
  16. overflow=>off,
  17. nil_ptr=>off) *)
  18. IMPLEMENTATION MODULE FloatExc;
  19. IMPORT CoreSig;
  20. VAR
  21. Handler, OldHandler, Dummy: CoreSig.SigProcType;
  22. Init: BOOLEAN;
  23. PROCEDURE EnableExceptionHandling;
  24. BEGIN
  25. IF Init THEN
  26. Dummy := CoreSig.signal(8, CoreSig.SigProcType(Handler));
  27. END;
  28. END EnableExceptionHandling;
  29. PROCEDURE DisableExceptionHandling;
  30. BEGIN
  31. IF Init THEN
  32. Dummy := CoreSig.signal(8, CoreSig.SigProcType(OldHandler));
  33. END;
  34. END DisableExceptionHandling;
  35. PROCEDURE InstallHandler(H: FloatErrHandler);
  36. BEGIN
  37. Handler := CoreSig.SigProcType(H);
  38. OldHandler := CoreSig.signal(8, CoreSig.SigProcType(H));
  39. Init := TRUE;
  40. END InstallHandler;
  41. BEGIN
  42. Init := FALSE;
  43. END FloatExc.
  44.