Subversion Repositories Kolibri OS

Rev

Rev 7983 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7983 Rev 8097
Line 11... Line 11...
11
 
11
 
Line 12... Line 12...
12
 
12
 
13
CONST
13
CONST
Line 14... Line 14...
14
 
14
 
15
    slash* = "\";
15
    slash* = "\";
16
    OS* = "WINDOWS";
16
    eol* = 0DX + 0AX;
Line 57... Line 57...
57
        lpSecurityDescriptor:  INTEGER;
57
        lpSecurityDescriptor:  INTEGER;
58
        bInheritHandle:        INTEGER
58
        bInheritHandle:        INTEGER
Line 59... Line 59...
59
 
59
 
Line 60... Line -...
60
    END;
-
 
61
 
-
 
62
    TSystemTime = RECORD
-
 
63
 
-
 
64
        Year,
-
 
65
        Month,
-
 
66
        DayOfWeek,
-
 
67
        Day,
-
 
68
        Hour,
-
 
69
        Min,
-
 
70
        Sec,
-
 
71
        MSec:  WCHAR
-
 
72
 
-
 
Line 73... Line 60...
73
    END;
60
    END;
Line 74... Line 61...
74
 
61
 
Line 75... Line 62...
75
 
62
 
76
VAR
63
VAR
Line 77... Line -...
77
 
-
 
78
    hConsoleOutput: INTEGER;
-
 
79
 
64
 
Line 80... Line 65...
80
    Params: ARRAY MAX_PARAM, 2 OF INTEGER;
65
    hConsoleOutput: INTEGER;
81
    argc: INTEGER;
66
 
Line 114... Line 99...
114
    _OpenFile (lpFileName: INTEGER; lpReOpenBuff: OFSTRUCT; uStyle: INTEGER): INTEGER;
99
    _OpenFile (lpFileName: INTEGER; lpReOpenBuff: OFSTRUCT; uStyle: INTEGER): INTEGER;
Line 115... Line 100...
115
 
100
 
116
PROCEDURE [windows-, "kernel32.dll", "GetCurrentDirectoryA"]
101
PROCEDURE [windows-, "kernel32.dll", "GetCurrentDirectoryA"]
Line 117... Line -...
117
    _GetCurrentDirectory (nBufferLength, lpBuffer: INTEGER): INTEGER;
-
 
118
 
-
 
119
PROCEDURE [windows-, "kernel32.dll", "GetSystemTime"]
-
 
120
    _GetSystemTime (T: TSystemTime);
102
    _GetCurrentDirectory (nBufferLength, lpBuffer: INTEGER): INTEGER;
121
 
103
 
Line -... Line 104...
-
 
104
PROCEDURE [windows-, "kernel32.dll", "ExitProcess"]
-
 
105
    _ExitProcess (code: INTEGER);
-
 
106
 
Line 122... Line 107...
122
PROCEDURE [windows-, "kernel32.dll", "ExitProcess"]
107
PROCEDURE [ccall, "msvcrt.dll", "time"]
123
    _ExitProcess (code: INTEGER);
108
    _time (ptr: INTEGER): INTEGER;
124
 
109
 
125
 
110
 
Line 213... Line 198...
213
END GetArg;
198
END GetArg;
Line 214... Line 199...
214
 
199
 
215
 
200
 
216
PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF CHAR; bytes: INTEGER): INTEGER;
201
PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF CHAR; bytes: INTEGER): INTEGER;
Line 217... Line 202...
217
VAR
202
VAR
218
    res, n: INTEGER;
203
    res: INTEGER;
219
 
204
 
220
BEGIN
-
 
221
    IF _ReadFile(F, SYSTEM.ADR(Buffer[0]), bytes, n, NIL) = 0 THEN
-
 
222
        res := -1
205
BEGIN
Line 223... Line 206...
223
    ELSE
206
    IF _ReadFile(F, SYSTEM.ADR(Buffer[0]), bytes, res, NIL) = 0 THEN
224
        res := n
207
        res := -1
Line 225... Line 208...
225
    END
208
    END
226
 
209
 
227
    RETURN res
210
    RETURN res
Line 228... Line 211...
228
END FileRead;
211
END FileRead;
229
 
212
 
230
 
213
 
231
PROCEDURE FileWrite* (F: INTEGER; Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER;
-
 
232
VAR
-
 
233
    res, n: INTEGER;
214
PROCEDURE FileWrite* (F: INTEGER; Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER;
Line 234... Line 215...
234
 
215
VAR
235
BEGIN
216
    res: INTEGER;
Line 267... Line 248...
267
 
248
 
268
    RETURN res
249
    RETURN res
Line -... Line 250...
-
 
250
END FileOpen;
-
 
251
 
-
 
252
 
-
 
253
PROCEDURE chmod* (FName: ARRAY OF CHAR);
269
END FileOpen;
254
END chmod;
270
 
255
 
271
 
256
 
272
PROCEDURE OutChar* (c: CHAR);
257
PROCEDURE OutChar* (c: CHAR);
273
VAR
258
VAR
Line 290... Line 275...
290
PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN;
275
PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN;
291
    RETURN ~(letter(path[0]) & (path[1] = ":"))
276
    RETURN ~(letter(path[0]) & (path[1] = ":"))
292
END isRelative;
277
END isRelative;
Line 293... Line -...
293
 
-
 
294
 
-
 
295
PROCEDURE now* (VAR year, month, day, hour, min, sec: INTEGER);
-
 
296
VAR
-
 
297
    T: TSystemTime;
-
 
298
 
-
 
299
BEGIN
-
 
300
    _GetSystemTime(T);
-
 
301
    year  := ORD(T.Year);
-
 
302
    month := ORD(T.Month);
-
 
303
    day   := ORD(T.Day);
-
 
304
    hour  := ORD(T.Hour);
-
 
305
    min   := ORD(T.Min);
-
 
306
    sec   := ORD(T.Sec)
-
 
307
END now;
-
 
308
 
278
 
309
 
279
 
310
PROCEDURE UnixTime* (): INTEGER;
280
PROCEDURE UnixTime* (): INTEGER;
Line -... Line 281...
-
 
281
    RETURN _time(0)
-
 
282
END UnixTime;
-
 
283
 
-
 
284
 
-
 
285
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
-
 
286
BEGIN
-
 
287
    SYSTEM.GET32(SYSTEM.ADR(x), a);
-
 
288
    SYSTEM.GET32(SYSTEM.ADR(x) + 4, b)
311
    RETURN 0
289
    RETURN a
312
END UnixTime;
290
END splitf;
313
 
291
 
Line 314... Line 292...
314
 
292
 
315
PROCEDURE d2s* (x: REAL): INTEGER;
-
 
316
VAR
293
PROCEDURE d2s* (x: REAL): INTEGER;
Line 317... Line 294...
317
    h, l, s, e: INTEGER;
294
VAR
318
 
295
    h, l, s, e: INTEGER;
319
BEGIN
296
 
320
    SYSTEM.GET(SYSTEM.ADR(x), l);
297
BEGIN
Line 335... Line 312...
335
        e := 1151;
312
        e := 1151;
336
        h := 0;
313
        h := 0;
337
        l := 0
314
        l := 0
338
    ELSIF e = 2047 THEN
315
    ELSIF e = 2047 THEN
339
        e := 1151;
316
        e := 1151;
340
        IF (h MOD 100000H # 0) OR (l # 0) THEN
317
        IF (h MOD 100000H # 0) OR (BITS(l) * {0..31} # {}) THEN
341
            h := 80000H;
318
            h := 80000H;
342
            l := 0
319
            l := 0
343
        END
320
        END
344
    END;
321
    END;
345
    DEC(e, 896)
322
    DEC(e, 896)
Line 346... Line 323...
346
 
323
 
347
    RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8
324
    RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8
Line 348... Line -...
348
END d2s;
-
 
349
 
-
 
350
 
-
 
351
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
-
 
352
VAR
-
 
353
    res: INTEGER;
-
 
354
 
-
 
355
BEGIN
-
 
356
    a := 0;
-
 
357
    b := 0;
-
 
358
    SYSTEM.MOVE(SYSTEM.ADR(x), SYSTEM.ADR(a), 4);
-
 
359
    SYSTEM.MOVE(SYSTEM.ADR(x) + 4, SYSTEM.ADR(b), 4);
-
 
360
    SYSTEM.GET(SYSTEM.ADR(x), res)
-
 
361
    RETURN res
-
 
362
END splitf;
325
END d2s;
363
 
-
 
364
 
326
 
365
BEGIN
327
 
366
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
328
BEGIN
367
    maxreal := 1.9;
329
    maxreal := 1.9;
368
    PACK(maxreal, 1023);
330
    PACK(maxreal, 1023);
369
    hConsoleOutput := _GetStdHandle(-11);
331
    hConsoleOutput := _GetStdHandle(-11);