Subversion Repositories Kolibri OS

Rev

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

Rev 7696 Rev 7983
Line 1... Line 1...
1
(*
1
(*
2
    BSD 2-Clause License
2
    BSD 2-Clause License
Line 3... Line 3...
3
 
3
 
4
    Copyright (c) 2018-2019, Anton Krotov
4
    Copyright (c) 2018-2020, Anton Krotov
5
    All rights reserved.
5
    All rights reserved.
Line 6... Line 6...
6
*)
6
*)
Line 80... Line 80...
80
    Params: ARRAY MAX_PARAM, 2 OF INTEGER;
80
    Params: ARRAY MAX_PARAM, 2 OF INTEGER;
81
    argc: INTEGER;
81
    argc: INTEGER;
Line 82... Line 82...
82
 
82
 
Line -... Line 83...
-
 
83
    eol*: ARRAY 3 OF CHAR;
-
 
84
 
Line 83... Line 85...
83
    eol*: ARRAY 3 OF CHAR;
85
    maxreal*: REAL;
84
 
86
 
Line 85... Line 87...
85
 
87
 
Line 308... Line 310...
308
PROCEDURE UnixTime* (): INTEGER;
310
PROCEDURE UnixTime* (): INTEGER;
309
    RETURN 0
311
    RETURN 0
310
END UnixTime;
312
END UnixTime;
Line -... Line 313...
-
 
313
 
-
 
314
 
-
 
315
PROCEDURE d2s* (x: REAL): INTEGER;
-
 
316
VAR
-
 
317
    h, l, s, e: INTEGER;
-
 
318
 
-
 
319
BEGIN
-
 
320
    SYSTEM.GET(SYSTEM.ADR(x), l);
-
 
321
    SYSTEM.GET(SYSTEM.ADR(x) + 4, h);
-
 
322
 
-
 
323
    s := ASR(h, 31) MOD 2;
-
 
324
    e := (h DIV 100000H) MOD 2048;
-
 
325
    IF e <= 896 THEN
-
 
326
        h := (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 + 800000H;
-
 
327
        REPEAT
-
 
328
            h := h DIV 2;
-
 
329
            INC(e)
-
 
330
        UNTIL e = 897;
-
 
331
        e := 896;
-
 
332
        l := (h MOD 8) * 20000000H;
-
 
333
        h := h DIV 8
-
 
334
    ELSIF (1151 <= e) & (e < 2047) THEN
-
 
335
        e := 1151;
-
 
336
        h := 0;
-
 
337
        l := 0
-
 
338
    ELSIF e = 2047 THEN
-
 
339
        e := 1151;
-
 
340
        IF (h MOD 100000H # 0) OR (l # 0) THEN
-
 
341
            h := 80000H;
-
 
342
            l := 0
-
 
343
        END
-
 
344
    END;
-
 
345
    DEC(e, 896)
-
 
346
 
-
 
347
    RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8
-
 
348
END d2s;
311
 
349
 
312
 
350
 
313
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
351
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
Line 314... Line 352...
314
VAR
352
VAR
Line 324... Line 362...
324
END splitf;
362
END splitf;
Line 325... Line 363...
325
 
363
 
326
 
364
 
-
 
365
BEGIN
-
 
366
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
327
BEGIN
367
    maxreal := 1.9;
328
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
368
    PACK(maxreal, 1023);
329
    hConsoleOutput := _GetStdHandle(-11);
369
    hConsoleOutput := _GetStdHandle(-11);