Subversion Repositories Kolibri OS

Rev

Rev 7107 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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