STDLIB.DEF 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * STDLIB.DEF - Modula-2 interface to STDLIB.H *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tsc='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE stdlib;
  15. TYPE
  16. ldiv_t = RECORD
  17. quot,
  18. rem: LONGINT;
  19. END;
  20. div_t = RECORD
  21. quot,
  22. rem: INTEGER;
  23. END;
  24. CompProc = PROCEDURE(ADDRESS, ADDRESS): INTEGER;
  25. PROCEDURE abort;
  26. PROCEDURE abs(_num: INTEGER): INTEGER;
  27. PROCEDURE atexit(_func: PROC): INTEGER;
  28. PROCEDURE atof(_nptr: ARRAY OF CHAR): LONGREAL;
  29. PROCEDURE atoi(_nptr: ARRAY OF CHAR): INTEGER;
  30. PROCEDURE atol(_nptr: ARRAY OF CHAR): LONGINT;
  31. PROCEDURE atoul(_nptr: ARRAY OF CHAR): LONGCARD;
  32. PROCEDURE bsearch(_key,_base: ADDRESS;
  33. _num,_width: CARDINAL;
  34. _compare: CompProc): ADDRESS;
  35. PROCEDURE calloc(_num,_size: CARDINAL): ADDRESS;
  36. PROCEDURE delay(_tm: CARDINAL);
  37. PROCEDURE div(_numer,_denom: INTEGER): div_t;
  38. PROCEDURE exit(_code: INTEGER);
  39. PROCEDURE free(_block: ADDRESS);
  40. PROCEDURE getenv(_name: ARRAY OF CHAR): ADDRESS;
  41. PROCEDURE labs(_j: LONGINT): LONGINT;
  42. PROCEDURE ldiv(_numer,_denom: LONGINT): ldiv_t;
  43. PROCEDURE malloc(_size: CARDINAL): ADDRESS;
  44. PROCEDURE qsort(_base: ADDRESS;
  45. _num,_width: CARDINAL;
  46. _compare: CompProc);
  47. PROCEDURE rand(): INTEGER;
  48. PROCEDURE randomize;
  49. PROCEDURE realloc(_block: ADDRESS; _size: CARDINAL): ADDRESS;
  50. PROCEDURE srand(_seed: CARDINAL);
  51. PROCEDURE system(_string: ARRAY OF CHAR): INTEGER;
  52. CONST
  53. MS_CUR_MAX = 1;
  54. PROCEDURE mblen(_s: ARRAY OF CHAR; _n: CARDINAL): INTEGER;
  55. PROCEDURE mbtowc(VAR _pwc: ARRAY OF CHAR; _s: ARRAY OF CHAR; _n: CARDINAL): INTEGER;
  56. PROCEDURE wctomb(_s: ARRAY OF CHAR; _wchar: CHAR): INTEGER;
  57. PROCEDURE mbstowcs(VAR _pwcs: ARRAY OF CHAR; _s: ARRAY OF CHAR; _n: CARDINAL): CARDINAL;
  58. PROCEDURE wcstombs(VAR _s: ARRAY OF CHAR; _pwcs: ARRAY OF CHAR; _n: CARDINAL): CARDINAL;
  59. VAR
  60. _fmode: CARDINAL;
  61. sys_nerr: INTEGER;
  62. CONST
  63. EXIT_SUCCESS = 0;
  64. EXIT_FAILURE = 0FFH;
  65. RAND_MAX = 32767;
  66. PROCEDURE ecvt(_value: LONGREAL; _digits: INTEGER; VAR _dec,_sign: INTEGER): ADDRESS;
  67. PROCEDURE _exit(_status: INTEGER);
  68. PROCEDURE fcvt(_value: LONGREAL; _digits: INTEGER; VAR _dec,_sign: INTEGER): ADDRESS;
  69. PROCEDURE gcvt(_value: LONGREAL; _ndec: INTEGER; VAR _buf: ARRAY OF CHAR): ADDRESS;
  70. PROCEDURE itoa(_value: INTEGER; VAR _string: ARRAY OF CHAR; _radix: INTEGER): ADDRESS;
  71. PROCEDURE lfind(_key,_base: ADDRESS;
  72. _num,_width: CARDINAL;
  73. _compare: CompProc): ADDRESS;
  74. PROCEDURE _lrotl(_val: LONGCARD; _count: INTEGER): LONGCARD;
  75. PROCEDURE _lrotr(_val: LONGCARD; _count: INTEGER): LONGCARD;
  76. PROCEDURE lsearch(_key,_base: ADDRESS;
  77. _num,_width: CARDINAL;
  78. _compare: CompProc): ADDRESS;
  79. PROCEDURE ltoa(_value: LONGINT; VAR _s: ARRAY OF CHAR; _radix: INTEGER): ADDRESS;
  80. PROCEDURE putenv(_name: ARRAY OF CHAR): INTEGER;
  81. PROCEDURE _searchenv(_name, _env: ARRAY OF CHAR; VAR _path: ARRAY OF CHAR);
  82. PROCEDURE _rotl(_value: LONGCARD; _count: INTEGER): CARDINAL;
  83. PROCEDURE _rotr(_value: LONGCARD; _count: INTEGER): CARDINAL;
  84. PROCEDURE swab(_from: ARRAY OF CHAR; VAR _to: ARRAY OF CHAR; _num: INTEGER);
  85. PROCEDURE ultoa(_value: LONGCARD; VAR _s: ARRAY OF CHAR; _radix: INTEGER): ADDRESS;
  86. CONST
  87. _MAX_PATH = 128; (* max length of full pathname *)
  88. _MAX_DRIVE = 3; (* max length of drive component *)
  89. _MAX_DIR = 130; (* max length of path component *)
  90. _MAX_FNAME = 9; (* max length of file name component *)
  91. _MAX_EXT = 5; (* max length of extension component *)
  92. PROCEDURE _makepath(VAR _path: ARRAY OF CHAR; _drive,_dir,_name,_ext: ARRAY OF CHAR);
  93. PROCEDURE _slitpath(_path: ARRAY OF CHAR; VAR _drive,_dir,_name,_ext: ARRAY OF CHAR);
  94. END stdlib.
  95.