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