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 55... Line 55...
55
    Params: ARRAY MAX_PARAM, 2 OF INTEGER;
55
    Params: ARRAY MAX_PARAM, 2 OF INTEGER;
56
    argc*: INTEGER;
56
    argc*: INTEGER;
Line 57... Line 57...
57
 
57
 
Line -... Line 58...
-
 
58
    eol*: ARRAY 3 OF CHAR;
-
 
59
 
Line 58... Line 60...
58
    eol*: ARRAY 3 OF CHAR;
60
    maxreal*: REAL;
Line 59... Line 61...
59
 
61
 
Line 451... Line 453...
451
PROCEDURE UnixTime* (): INTEGER;
453
PROCEDURE UnixTime* (): INTEGER;
452
    RETURN 0
454
    RETURN 0
453
END UnixTime;
455
END UnixTime;
Line -... Line 456...
-
 
456
 
-
 
457
 
-
 
458
PROCEDURE d2s* (x: REAL): INTEGER;
-
 
459
VAR
-
 
460
    h, l, s, e: INTEGER;
-
 
461
 
-
 
462
BEGIN
-
 
463
    SYSTEM.GET(SYSTEM.ADR(x), l);
-
 
464
    SYSTEM.GET(SYSTEM.ADR(x) + 4, h);
-
 
465
 
-
 
466
    s := ASR(h, 31) MOD 2;
-
 
467
    e := (h DIV 100000H) MOD 2048;
-
 
468
    IF e <= 896 THEN
-
 
469
        h := (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 + 800000H;
-
 
470
        REPEAT
-
 
471
            h := h DIV 2;
-
 
472
            INC(e)
-
 
473
        UNTIL e = 897;
-
 
474
        e := 896;
-
 
475
        l := (h MOD 8) * 20000000H;
-
 
476
        h := h DIV 8
-
 
477
    ELSIF (1151 <= e) & (e < 2047) THEN
-
 
478
        e := 1151;
-
 
479
        h := 0;
-
 
480
        l := 0
-
 
481
    ELSIF e = 2047 THEN
-
 
482
        e := 1151;
-
 
483
        IF (h MOD 100000H # 0) OR (l # 0) THEN
-
 
484
            h := 80000H;
-
 
485
            l := 0
-
 
486
        END
-
 
487
    END;
-
 
488
    DEC(e, 896)
-
 
489
 
-
 
490
    RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8
-
 
491
END d2s;
454
 
492
 
455
 
493
 
456
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
494
PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER;
457
BEGIN
495
BEGIN
458
    SYSTEM.GET(SYSTEM.ADR(x),     a);
496
    SYSTEM.GET(SYSTEM.ADR(x),     a);
459
    SYSTEM.GET(SYSTEM.ADR(x) + 4, b)
497
    SYSTEM.GET(SYSTEM.ADR(x) + 4, b)
Line 460... Line 498...
460
    RETURN a
498
    RETURN a
461
END splitf;
499
END splitf;
-
 
500
 
-
 
501
 
462
 
502
BEGIN
463
 
503
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
464
BEGIN
504
    maxreal := 1.9;
465
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
505
    PACK(maxreal, 1023);
466
    Console := API.import;
506
    Console := API.import;