COREMATH.DEF 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * COREMATH.DEF - Modula-2 interface to COREMATH.A *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# call(o_a_size => off,
  11. o_a_copy=>off,
  12. c_conv=>on,
  13. result_optional=>on) *)
  14. (*# module(implementation=>off, init_code => off) *)
  15. (*# name(prefix => c) *)
  16. DEFINITION MODULE CoreMath;
  17. TYPE
  18. StrPtr = POINTER TO ARRAY [0..15] OF CHAR;
  19. Exception = RECORD
  20. type: CARDINAL;
  21. Name: StrPtr;
  22. arg1, arg2, retval: LONGREAL;
  23. END;
  24. VAR
  25. matherr: PROCEDURE(VAR Exception): INTEGER;
  26. (*# save *)
  27. (*# call( seg_name=>null, c_conv=>on) *)
  28. PROCEDURE acos(x: LONGREAL): LONGREAL;
  29. PROCEDURE asin(x: LONGREAL): LONGREAL;
  30. PROCEDURE atan(x: LONGREAL): LONGREAL;
  31. PROCEDURE atan2(x: LONGREAL; y: LONGREAL): LONGREAL;
  32. PROCEDURE cos(x: LONGREAL): LONGREAL;
  33. PROCEDURE cosh(x: LONGREAL): LONGREAL;
  34. PROCEDURE exp(x: LONGREAL): LONGREAL;
  35. PROCEDURE log(x: LONGREAL): LONGREAL;
  36. PROCEDURE pow(x: LONGREAL; y: LONGREAL): LONGREAL;
  37. PROCEDURE sin(x: LONGREAL): LONGREAL;
  38. PROCEDURE sinh(x: LONGREAL): LONGREAL;
  39. PROCEDURE sqrt(x: LONGREAL): LONGREAL;
  40. PROCEDURE tan(x: LONGREAL): LONGREAL;
  41. PROCEDURE tanh(x: LONGREAL): LONGREAL;
  42. PROCEDURE log10(x: LONGREAL): LONGREAL;
  43. PROCEDURE fmod(x: LONGREAL; y: LONGREAL): LONGREAL;
  44. PROCEDURE frexp(x: LONGREAL; VAR exp: INTEGER): LONGREAL;
  45. PROCEDURE hypot(X, Y: LONGREAL): LONGREAL;
  46. PROCEDURE ceil(X: LONGREAL): LONGREAL;
  47. PROCEDURE floor(X: LONGREAL): LONGREAL;
  48. PROCEDURE _clear87(): CARDINAL;
  49. PROCEDURE _fpreset();
  50. PROCEDURE _status87(): CARDINAL;
  51. PROCEDURE _control87(New, Mask: CARDINAL): CARDINAL;
  52. PROCEDURE _bcd(x:TEMPREAL; p:NearADDRESS);
  53. PROCEDURE _pow_int(x:TEMPREAL;y:INTEGER):TEMPREAL;
  54. PROCEDURE _round( x:TEMPREAL ):TEMPREAL;
  55. (*# call(reg_param=>(ax,bx,cx,dx,st0,st6,st5), c_conv=>off) *)
  56. PROCEDURE _acvt(flag:INTEGER; mbuf:ADDRESS; exp:INTEGER; len:INTEGER): TEMPREAL;
  57. PROCEDURE _seterrno(type:INTEGER);
  58. (*# restore *)
  59. (*# save *)
  60. (*# call(near_call => off, seg_name=>EMU) *)
  61. PROCEDURE _FloatExecSave();
  62. PROCEDURE _FloatExecRestore();
  63. (*# call(reg_param => (bx), reg_saved=>(di,si,ds,st1,st2)) *)
  64. PROCEDURE _FloatInitInstance(seg: CARDINAL);
  65. (*# restore *)
  66. END CoreMath.
  67.