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; |