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