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* = "KOS"; |
16 | eol* = 0DX + 0AX; |
Line 17... | Line 17... | ||
17 | 17 | ||
Line 18... | Line 18... | ||
18 | bit_depth* = RTL.bit_depth; |
18 | bit_depth* = RTL.bit_depth; |
Line -... | Line 19... | ||
- | 19 | maxint* = RTL.maxint; |
|
- | 20 | minint* = RTL.minint; |
|
19 | maxint* = RTL.maxint; |
21 | |
Line 20... | Line 22... | ||
20 | minint* = RTL.minint; |
22 | MAX_PARAM = 1024; |
Line 21... | Line 23... | ||
21 | 23 | ||
Line 50... | Line 52... | ||
50 | VAR |
52 | VAR |
Line 51... | Line 53... | ||
51 | 53 | ||
Line -... | Line 54... | ||
- | 54 | ||
- | 55 | Console: BOOLEAN; |
|
52 | 56 | ||
53 | Console: BOOLEAN; |
57 | days: DAYS; |
Line 54... | Line -... | ||
54 | - | ||
55 | Params: ARRAY MAX_PARAM, 2 OF INTEGER; |
- | |
56 | argc*: INTEGER; |
58 | |
Line 57... | Line 59... | ||
57 | 59 | Params: ARRAY MAX_PARAM, 2 OF INTEGER; |
|
Line 271... | Line 273... | ||
271 | SYSTEM.GET(SYSTEM.ADR(fs), res) |
273 | SYSTEM.GET(SYSTEM.ADR(fs), res) |
272 | RETURN res |
274 | RETURN res |
273 | END FileOpen; |
275 | END FileOpen; |
Line -... | Line 276... | ||
- | 276 | ||
- | 277 | ||
- | 278 | PROCEDURE chmod* (FName: ARRAY OF CHAR); |
|
- | 279 | END chmod; |
|
274 | 280 | ||
275 | 281 | ||
276 | PROCEDURE GetTickCount* (): INTEGER; |
282 | PROCEDURE GetTickCount* (): INTEGER; |
Line 380... | Line 386... | ||
380 | c := GetChar(i); |
386 | c := GetChar(i); |
381 | IF c # 22X THEN |
387 | IF c # 22X THEN |
382 | s[j] := c; |
388 | s[j] := c; |
383 | INC(j) |
389 | INC(j) |
384 | END; |
390 | END; |
385 | INC(i); |
391 | INC(i) |
386 | END; |
392 | END |
387 | END; |
393 | END; |
388 | s[j] := 0X |
394 | s[j] := 0X |
389 | END GetArg; |
395 | END GetArg; |
Line 406... | Line 412... | ||
406 | PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN; |
412 | PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN; |
407 | RETURN path[0] # slash |
413 | RETURN path[0] # slash |
408 | END isRelative; |
414 | END isRelative; |
Line 409... | Line 415... | ||
409 | 415 | ||
410 | 416 | ||
411 | PROCEDURE now* (VAR year, month, day, hour, min, sec: INTEGER); |
417 | PROCEDURE UnixTime* (): INTEGER; |
Line 412... | Line 418... | ||
412 | VAR |
418 | VAR |
413 | date, time: INTEGER; |
419 | date, time, year, month, day, hour, min, sec: INTEGER; |
414 | 420 | ||
Line 444... | Line 450... | ||
444 | sec := time MOD 16; |
450 | sec := time MOD 16; |
445 | time := time DIV 16; |
451 | time := time DIV 16; |
446 | sec := (time MOD 16) * 10 + sec; |
452 | sec := (time MOD 16) * 10 + sec; |
447 | time := time DIV 16; |
453 | time := time DIV 16; |
Line 448... | Line 454... | ||
448 | 454 | ||
449 | year := year + 2000 |
- | |
450 | END now; |
- | |
Line 451... | Line 455... | ||
451 | 455 | INC(year, 2000) |
|
452 | - | ||
453 | PROCEDURE UnixTime* (): INTEGER; |
456 | |
Line -... | Line 457... | ||
- | 457 | RETURN ((year - 1970) * 365 + days[month - 1, day - 1, ORD(year DIV 4 = 0)] + (year - 1969) DIV 4) * 86400 + hour * 3600 + min * 60 + sec |
|
- | 458 | END UnixTime; |
|
- | 459 | ||
- | 460 | ||
- | 461 | PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER; |
|
- | 462 | BEGIN |
|
- | 463 | SYSTEM.GET32(SYSTEM.ADR(x), a); |
|
- | 464 | SYSTEM.GET32(SYSTEM.ADR(x) + 4, b) |
|
454 | RETURN 0 |
465 | RETURN a |
455 | END UnixTime; |
466 | END splitf; |
456 | 467 | ||
Line 457... | Line 468... | ||
457 | 468 | ||
458 | PROCEDURE d2s* (x: REAL): INTEGER; |
- | |
459 | VAR |
469 | PROCEDURE d2s* (x: REAL): INTEGER; |
Line 460... | Line 470... | ||
460 | h, l, s, e: INTEGER; |
470 | VAR |
461 | 471 | h, l, s, e: INTEGER; |
|
462 | BEGIN |
472 | |
463 | SYSTEM.GET(SYSTEM.ADR(x), l); |
473 | BEGIN |
Line 478... | Line 488... | ||
478 | e := 1151; |
488 | e := 1151; |
479 | h := 0; |
489 | h := 0; |
480 | l := 0 |
490 | l := 0 |
481 | ELSIF e = 2047 THEN |
491 | ELSIF e = 2047 THEN |
482 | e := 1151; |
492 | e := 1151; |
483 | IF (h MOD 100000H # 0) OR (l # 0) THEN |
493 | IF (h MOD 100000H # 0) OR (BITS(l) * {0..31} # {}) THEN |
484 | h := 80000H; |
494 | h := 80000H; |
485 | l := 0 |
495 | l := 0 |
486 | END |
496 | END |
487 | END; |
497 | END; |
488 | DEC(e, 896) |
498 | DEC(e, 896) |
Line 489... | Line 499... | ||
489 | 499 | ||
490 | RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 |
500 | RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 |
Line 491... | Line 501... | ||
491 | END d2s; |
501 | END d2s; |
- | 502 | ||
- | 503 | ||
- | 504 | PROCEDURE init (VAR days: DAYS); |
|
492 | 505 | VAR |
|
493 | - | ||
494 | PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER; |
- | |
495 | BEGIN |
- | |
496 | SYSTEM.GET(SYSTEM.ADR(x), a); |
- | |
Line -... | Line 506... | ||
- | 506 | i, j, n0, n1: INTEGER; |
|
- | 507 | ||
- | 508 | BEGIN |
|
- | 509 | ||
- | 510 | FOR i := 0 TO 11 DO |
|
- | 511 | FOR j := 0 TO 30 DO |
|
- | 512 | days[i, j, 0] := 0; |
|
- | 513 | days[i, j, 1] := 0; |
|
- | 514 | END |
|
- | 515 | END; |
|
- | 516 | ||
- | 517 | days[ 1, 28, 0] := -1; |
|
- | 518 | ||
- | 519 | FOR i := 0 TO 1 DO |
|
- | 520 | days[ 1, 29, i] := -1; |
|
- | 521 | days[ 1, 30, i] := -1; |
|
- | 522 | days[ 3, 30, i] := -1; |
|
- | 523 | days[ 5, 30, i] := -1; |
|
- | 524 | days[ 8, 30, i] := -1; |
|
- | 525 | days[10, 30, i] := -1; |
|
- | 526 | END; |
|
- | 527 | ||
- | 528 | n0 := 0; |
|
- | 529 | n1 := 0; |
|
- | 530 | FOR i := 0 TO 11 DO |
|
- | 531 | FOR j := 0 TO 30 DO |
|
- | 532 | IF days[i, j, 0] = 0 THEN |
|
- | 533 | days[i, j, 0] := n0; |
|
- | 534 | INC(n0) |
|
- | 535 | END; |
|
- | 536 | IF days[i, j, 1] = 0 THEN |
|
- | 537 | days[i, j, 1] := n1; |
|
Line 497... | Line -... | ||
497 | SYSTEM.GET(SYSTEM.ADR(x) + 4, b) |
- | |
498 | RETURN a |
- | |
499 | END splitf; |
538 | INC(n1) |
500 | 539 | END |
|
501 | 540 | END |
|
502 | BEGIN |
541 | END; |
503 | eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X; |
542 | |
504 | maxreal := 1.9; |
543 | maxreal := 1.9; |
505 | PACK(maxreal, 1023); |
544 | PACK(maxreal, 1023); |
- | 545 | Console := API._import; |
|
- | 546 | IF Console THEN |
|
- | 547 | con_init(-1, -1, -1, -1, SYSTEM.SADR("Oberon-07 for KolibriOS")) |
|
- | 548 | END; |
|
- | 549 | ParamParse |
|
506 | Console := API.import; |
550 | END init; |
507 | IF Console THEN |
551 |