M2makeOS_v3.mod 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. IMPLEMENTATION MODULE M2makeOS;
  2. (* V3 (self-hosted M2) implementation: binds the descriptor (_d) half
  3. of m2make_os.c plus the shared m2osBye/m2osClose via EXTERNAL.
  4. Compiled only by the V3 M2 driver (staged as M2makeOS.mod). *)
  5. FROM SYSTEM IMPORT ADDRESS;
  6. PROCEDURE m2osExistD(VAR s: ARRAY OF CHAR): BOOLEAN;
  7. EXTERNAL;
  8. PROCEDURE m2osMtimeD(VAR s: ARRAY OF CHAR; VAR t: LONGINT): BOOLEAN;
  9. EXTERNAL;
  10. PROCEDURE m2osSystemD(VAR s: ARRAY OF CHAR): INTEGER;
  11. EXTERNAL;
  12. PROCEDURE m2osBye(code: INTEGER);
  13. EXTERNAL;
  14. PROCEDURE m2osOpenreadD(VAR s: ARRAY OF CHAR): ADDRESS;
  15. EXTERNAL;
  16. PROCEDURE m2osArgcD () : CARDINAL;
  17. EXTERNAL;
  18. PROCEDURE m2osArgD(i: CARDINAL; VAR s: ARRAY OF CHAR;
  19. cap: CARDINAL): BOOLEAN;
  20. EXTERNAL;
  21. PROCEDURE m2osReadlineD(h: ADDRESS; VAR buf: ARRAY OF CHAR;
  22. cap: CARDINAL): BOOLEAN;
  23. EXTERNAL;
  24. PROCEDURE m2osClose(h: ADDRESS);
  25. EXTERNAL;
  26. PROCEDURE FileExists(VAR name: ARRAY OF CHAR): BOOLEAN;
  27. BEGIN
  28. RETURN m2osExistD(name)
  29. END FileExists;
  30. PROCEDURE FileMTime(VAR name: ARRAY OF CHAR; VAR t: LONGINT): BOOLEAN;
  31. BEGIN
  32. RETURN m2osMtimeD(name, t)
  33. END FileMTime;
  34. PROCEDURE ExecCmd(VAR cmd: ARRAY OF CHAR): INTEGER;
  35. BEGIN
  36. RETURN m2osSystemD(cmd)
  37. END ExecCmd;
  38. PROCEDURE ExitNow(code: INTEGER);
  39. BEGIN
  40. m2osBye(code)
  41. END ExitNow;
  42. PROCEDURE OpenRead(VAR name: ARRAY OF CHAR): RdFile;
  43. BEGIN
  44. RETURN m2osOpenreadD(name)
  45. END OpenRead;
  46. PROCEDURE ArgCount () : CARDINAL;
  47. BEGIN
  48. RETURN m2osArgcD()
  49. END ArgCount;
  50. PROCEDURE GetArg(i: CARDINAL; VAR s: ARRAY OF CHAR;
  51. cap: CARDINAL): BOOLEAN;
  52. BEGIN
  53. RETURN m2osArgD(i, s, cap)
  54. END GetArg;
  55. PROCEDURE ReadLine(h: RdFile; VAR buf: ARRAY OF CHAR;
  56. cap: CARDINAL): BOOLEAN;
  57. BEGIN
  58. RETURN m2osReadlineD(h, buf, cap)
  59. END ReadLine;
  60. PROCEDURE CloseRead(h: RdFile);
  61. BEGIN
  62. m2osClose(h)
  63. END CloseRead;
  64. END M2makeOS.