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