Subversion Repositories Kolibri OS

Rev

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

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