Subversion Repositories Kolibri OS

Rev

Rev 7693 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7696 akron1 1
(*
7597 akron1 2
    BSD 2-Clause License
6613 leency 3
 
7696 akron1 4
    Copyright (c) 2018-2019, Anton Krotov
7597 akron1 5
    All rights reserved.
6613 leency 6
*)
7
 
8
MODULE API;
9
 
7597 akron1 10
IMPORT SYSTEM;
6613 leency 11
 
7696 akron1 12
 
13
CONST
14
 
15
    SectionAlignment = 1000H;
16
 
17
 
6613 leency 18
VAR
19
 
7597 akron1 20
    eol*:  ARRAY 3 OF CHAR;
21
    base*: INTEGER;
7693 akron1 22
    heap:  INTEGER;
6613 leency 23
 
24
 
7693 akron1 25
PROCEDURE [windows-, "kernel32.dll", "ExitProcess"]    ExitProcess (code: INTEGER);
26
PROCEDURE [windows-, "kernel32.dll", "ExitThread"]     ExitThread (code: INTEGER);
27
PROCEDURE [windows-, "kernel32.dll", "GetProcessHeap"] GetProcessHeap (): INTEGER;
28
PROCEDURE [windows-, "kernel32.dll", "HeapAlloc"]      HeapAlloc (hHeap, dwFlags, dwBytes: INTEGER): INTEGER;
29
PROCEDURE [windows-, "kernel32.dll", "HeapFree"]       HeapFree(hHeap, dwFlags, lpMem: INTEGER);
6613 leency 30
 
7693 akron1 31
PROCEDURE [windows-, "user32.dll", "MessageBoxA"]      MessageBoxA (hWnd, lpText, lpCaption, uType: INTEGER): INTEGER;
7597 akron1 32
 
33
 
34
PROCEDURE DebugMsg* (lpText, lpCaption: INTEGER);
6613 leency 35
BEGIN
7597 akron1 36
    MessageBoxA(0, lpText, lpCaption, 16)
6613 leency 37
END DebugMsg;
38
 
39
 
7597 akron1 40
PROCEDURE _NEW* (size: INTEGER): INTEGER;
7693 akron1 41
    RETURN HeapAlloc(heap, 8, size)
6613 leency 42
END _NEW;
43
 
7597 akron1 44
 
45
PROCEDURE _DISPOSE* (p: INTEGER): INTEGER;
7693 akron1 46
BEGIN
47
    HeapFree(heap, 0, p)
48
    RETURN 0
6613 leency 49
END _DISPOSE;
50
 
7597 akron1 51
 
52
PROCEDURE init* (reserved, code: INTEGER);
6613 leency 53
BEGIN
7597 akron1 54
    eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X;
7696 akron1 55
    base := code - SectionAlignment;
7693 akron1 56
    heap := GetProcessHeap()
7597 akron1 57
END init;
6613 leency 58
 
59
 
7597 akron1 60
PROCEDURE exit* (code: INTEGER);
61
BEGIN
62
    ExitProcess(code)
63
END exit;
6613 leency 64
 
65
 
7597 akron1 66
PROCEDURE exit_thread* (code: INTEGER);
67
BEGIN
68
    ExitThread(code)
69
END exit_thread;
70
 
71
 
72
END API.