COREIO.DEF 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * COREIO.DEF - Modula-2 interface to COREIO.A *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. DEFINITION MODULE CoreIO;
  11. (*# save *)
  12. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  13. (*# module(implementation=>off, init_code=>off) *)
  14. (*# name(prefix=>c) *)
  15. CONST
  16. SEEK_SET = 0;
  17. SEEK_END = 2;
  18. O_RDONLY = {};
  19. O_WRONLY = {0};
  20. O_RDWR = {1};
  21. O_CREAT = {8}; (* create and open file *)
  22. O_TRUNC = {9}; (* open with truncation *)
  23. O_EXCL = {10}; (* exclusive open *)
  24. _O_EOF = {9}; (* set when text file hits ^Z *)
  25. O_APPEND = {11}; (* to end of file *)
  26. (* File mode special bits. User may only read these bits *)
  27. O_CHANGED= {12}; (* File has been written *)
  28. O_DEVICE = {13}; (* user read only flag *)
  29. O_TEXT = {14}; (* CR-LF translation *)
  30. O_BINARY = {15}; (* no translation *)
  31. _F_READ = {0}; (* Read only file *)
  32. _F_WRIT = {1}; (* Write only file *)
  33. _F_UBUF = {2}; (* User allocated buffer *)
  34. _F_APP = {3}; (* Append data *)
  35. _F_ERR = {4}; (* Error *)
  36. _F_EOF = {5}; (* EOF *)
  37. _F_BIN = {6}; (* Binary file *)
  38. _F_IN = {7}; (* Data is incoming *)
  39. _F_OUT = {8}; (* Data is outgoing *)
  40. _F_DEV = {9}; (* File is terminal *)
  41. _F_RST = {10}; (* Newly opened stream *)
  42. _F_LBUF = {11}; (* line buffered stream *)
  43. _F_CTZ = {12};
  44. _F_RDWR = {0..1}; (* Read/write *)
  45. EZERO = 0; (* No Error *)
  46. EINVF = 1; (* Invalid function code *)
  47. ENOENT = 2; (* File not found *)
  48. ENOPATH = 3; (* Path not found *)
  49. EMFILE = 4; (* Too many open files *)
  50. EACCES = 5; (* Access denied *)
  51. EBADF = 6; (* Invalid handle *)
  52. E2BIG = 7; (* Memory blocks destroyed *)
  53. ENOMEM = 8; (* Insufficient Memory *)
  54. EINVMEM = 9; (* Invalid memory block address *)
  55. EINVENV = 10; (* Invalid environment *)
  56. EINVFMT = 11; (* Invalid format *)
  57. EINVACC = 12; (* Invalid access code *)
  58. EINVDAT = 13; (* Invalid data *)
  59. ENODEV = 15; (* Invalid drive *)
  60. ECURDIR = 16; (* Attempt to remove CurDir *)
  61. ENOTSAM = 17; (* Not same device *)
  62. ENMFILE = 18; (* No more files *)
  63. (* RTL error codes *)
  64. EINVAL = 19; (* Invalid argument *)
  65. ENOTDIR = 20; (* Not directory *)
  66. EISDIR = 21; (* Is directory *)
  67. ENOEXEC = 22; (* Corrupted exec file *)
  68. EMLINK = 32; (* Cross-device link *)
  69. EDOM = 33; (* Math argument *)
  70. ERANGE = 34; (* Result too large *)
  71. EDEADLOCK= 36; (* file locking deadlock *)
  72. EEXIST = 80; (* File exists MSDOS 3.0 + *)
  73. EDISKFUL = 0F0H; (* Write error - disk full? *)
  74. EFAULT = -1; (* Unknown error *)
  75. PROCEDURE getcurdir(Drive: INTEGER; Path: ARRAY OF CHAR): INTEGER;
  76. PROCEDURE isatty(Handle: INTEGER): INTEGER;
  77. PROCEDURE _creat(Path: ARRAY OF CHAR; Permission: INTEGER): INTEGER;
  78. PROCEDURE _creat_trunc(Path: ARRAY OF CHAR; Permission: INTEGER): INTEGER;
  79. PROCEDURE chdir(Path: ARRAY OF CHAR): INTEGER;
  80. PROCEDURE delay(MS: INTEGER);
  81. PROCEDURE findnext(Buffer: ARRAY OF BYTE): INTEGER;
  82. PROCEDURE lseek(Handle: INTEGER; Pos: LONGINT; Whence: CARDINAL): LONGINT;
  83. PROCEDURE mkdir(Path: ARRAY OF CHAR): INTEGER;
  84. PROCEDURE read(Handle: INTEGER; Buf: ADDRESS; Count: INTEGER): INTEGER;
  85. PROCEDURE rename(Old, New: ARRAY OF CHAR): INTEGER;
  86. PROCEDURE rmdir(Path: ARRAY OF CHAR): INTEGER;
  87. PROCEDURE tell(Handle: INTEGER): LONGINT;
  88. PROCEDURE unlink(Path: ARRAY OF CHAR): INTEGER;
  89. PROCEDURE write(Handle: INTEGER; Buf: ADDRESS; Count: INTEGER): INTEGER;
  90. PROCEDURE _close(Handle: INTEGER): INTEGER;
  91. PROCEDURE _dos_close(Handle: INTEGER): CARDINAL;
  92. PROCEDURE _dos_findfirst(Path: ARRAY OF BYTE; Attr: CARDINAL; Buffer: ARRAY OF BYTE): INTEGER;
  93. PROCEDURE _dos_findnext(Buffer: ARRAY OF BYTE): INTEGER;
  94. PROCEDURE _dos_read(Handle: INTEGER; Buffer: FarADDRESS; Count: CARDINAL; VAR NumRead: CARDINAL): CARDINAL;
  95. PROCEDURE _dos_write(Handle: INTEGER; Buffer: FarADDRESS; Count: CARDINAL; VAR NumWrit: CARDINAL): CARDINAL;
  96. PROCEDURE _eof(Handle: INTEGER): INTEGER;
  97. PROCEDURE _open(Path: ARRAY OF CHAR; Mode: INTEGER): INTEGER;
  98. PROCEDURE _read(Handle: INTEGER; Buf: ADDRESS; Count: INTEGER): INTEGER;
  99. PROCEDURE _write(Handle: INTEGER; Buf: ADDRESS; Count: INTEGER): INTEGER;
  100. PROCEDURE _os2_open(Path: ARRAY OF CHAR; Access: CARDINAL; mode: CARDINAL; flag: CARDINAL): INTEGER;
  101. (*# save *)
  102. (*# call(reg_param=>(dx,ax), reg_saved=>(ds, di, si,st1,st2)) *)
  103. PROCEDURE _exists(Path: ARRAY OF CHAR): INTEGER;
  104. (*# restore *)
  105. (*# save *)
  106. (*# call(reg_param=>(ax,bx,cx,dx)) *)
  107. PROCEDURE _pascreate(Path: ARRAY OF CHAR): INTEGER;
  108. PROCEDURE _pasopen(Path: ARRAY OF CHAR; Mode: INTEGER): INTEGER;
  109. (*# restore *)
  110. VAR
  111. _doserrno: INTEGER;
  112. _fmode: CARDINAL;
  113. _fmask: CARDINAL;
  114. END CoreIO.
  115.