Subversion Repositories Kolibri OS

Rev

Rev 7107 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. (*
  2.     BSD 2-Clause License
  3.  
  4.     Copyright (c) 2018, 2019, Anton Krotov
  5.     All rights reserved.
  6. *)
  7.  
  8. MODULE UTILS;
  9.  
  10. IMPORT HOST, UNIXTIME;
  11.  
  12.  
  13. CONST
  14.  
  15.     slash* = HOST.slash;
  16.  
  17.     bit_depth* = HOST.bit_depth;
  18.     maxint* = HOST.maxint;
  19.     minint* = HOST.minint;
  20.    
  21.     OS = HOST.OS;
  22.  
  23.  
  24. VAR
  25.  
  26.     time*: INTEGER;
  27.  
  28.     eol*:  ARRAY 3 OF CHAR;
  29.  
  30.     maxreal*: REAL;
  31.  
  32.  
  33. PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER;
  34.     RETURN HOST.FileRead(F, Buffer, bytes)
  35. END FileRead;
  36.  
  37.  
  38. PROCEDURE FileWrite* (F: INTEGER; Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER;
  39.     RETURN HOST.FileWrite(F, Buffer, bytes)
  40. END FileWrite;
  41.  
  42.  
  43. PROCEDURE FileCreate* (FName: ARRAY OF CHAR): INTEGER;
  44.     RETURN HOST.FileCreate(FName)
  45. END FileCreate;
  46.  
  47.  
  48. PROCEDURE FileClose* (F: INTEGER);
  49. BEGIN
  50.     HOST.FileClose(F)
  51. END FileClose;
  52.  
  53.  
  54. PROCEDURE FileOpen* (FName: ARRAY OF CHAR): INTEGER;
  55.     RETURN HOST.FileOpen(FName)
  56. END FileOpen;
  57.  
  58.  
  59. PROCEDURE GetArg* (i: INTEGER; VAR str: ARRAY OF CHAR);
  60. BEGIN
  61.     HOST.GetArg(i, str)
  62. END GetArg;
  63.  
  64.  
  65. PROCEDURE Exit* (code: INTEGER);
  66. BEGIN
  67.     HOST.ExitProcess(code)
  68. END Exit;
  69.  
  70.  
  71. PROCEDURE GetTickCount* (): INTEGER;
  72.     RETURN HOST.GetTickCount()
  73. END GetTickCount;
  74.  
  75.  
  76. PROCEDURE OutChar* (c: CHAR);
  77. BEGIN
  78.     HOST.OutChar(c)
  79. END OutChar;
  80.  
  81.  
  82. PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
  83.     RETURN HOST.splitf(x, a, b)
  84. END splitf;
  85.  
  86.  
  87. PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN;
  88.     RETURN HOST.isRelative(path)
  89. END isRelative;
  90.  
  91.  
  92. PROCEDURE GetCurrentDirectory* (VAR path: ARRAY OF CHAR);
  93. BEGIN
  94.     HOST.GetCurrentDirectory(path)
  95. END GetCurrentDirectory;
  96.  
  97.  
  98. PROCEDURE UnixTime* (): INTEGER;
  99. VAR
  100.     year, month, day, hour, min, sec: INTEGER;
  101.     res: INTEGER;
  102.  
  103. BEGIN
  104.     IF OS = "LINUX" THEN
  105.         res := HOST.UnixTime()
  106.     ELSE
  107.         HOST.now(year, month, day, hour, min, sec);
  108.         res := UNIXTIME.time(year, month, day, hour, min, sec)
  109.     END
  110.  
  111.     RETURN res
  112. END UnixTime;
  113.  
  114.  
  115. BEGIN
  116.     time := GetTickCount();
  117.     COPY(HOST.eol, eol);
  118.     maxreal := 1.9;
  119.     PACK(maxreal, 1023)
  120. END UTILS.