Combined ld-acess and libacess
[tpg/acess2.git] / Usermode / Libraries / ld-acess.old.so_src / helpers.asm
1 ; AcessOS 1\r
2 ; By thePowersGang\r
3 ; LD-ACESS.SO\r
4 ; - helpers.asm\r
5 \r
6 %include "../libacess.so_src/syscalls.inc.asm"\r
7 \r
8 [global _SysDebug]\r
9 [global _SysExit]\r
10 [global _SysLoadBin]\r
11 [global _SysUnloadBin]\r
12 [global _SysSetFaultHandler]\r
13 [global _open]\r
14 [global _close]\r
15 \r
16 ; void SysDebugV(char *fmt, va_list Args)\r
17 _SysDebug:\r
18         ;xchg bx, bx\r
19         push ebp\r
20         mov ebp, esp\r
21         pusha\r
22         \r
23         mov eax, 0x100  ; User Debug\r
24         mov ebx, [ebp+8]        ; Format\r
25         mov ecx, [ebp+12]       ; Arguments\r
26         mov edx, [ebp+16]       ; Arguments\r
27         mov edi, [ebp+20]       ; Arguments\r
28         mov esi, [ebp+24]       ; Arguments\r
29         int     0xAC\r
30         \r
31         popa\r
32         pop ebp\r
33         ret\r
34 \r
35 ; void SysExit()\r
36 _SysExit:\r
37         push ebx\r
38         mov eax, SYS_EXIT       ; Exit\r
39         mov ebx, [esp+0x8]      ; Exit Code\r
40         int     0xAC\r
41         pop ebx\r
42         ret\r
43 \r
44 ; Uint SysLoadBin(char *path, Uint *entry)\r
45 _SysLoadBin:\r
46         push ebx\r
47         mov eax, SYS_LOADBIN    ; SYS_LDBIN\r
48         mov ebx, [esp+0x8]      ; Path\r
49         mov ecx, [esp+0xC]      ; Entry\r
50         int     0xAC\r
51         pop ebx\r
52         ret\r
53 \r
54 ; Uint SysUnloadBin(Uint Base)\r
55 _SysUnloadBin:\r
56         push ebx\r
57         mov eax, SYS_UNLOADBIN  ; SYS_ULDBIN\r
58         mov ebx, [esp+0x8]      ; Base\r
59         int     0xAC\r
60         pop ebx\r
61         ret\r
62 \r
63 ; int close(char *name, int flags)\r
64 _open:\r
65         push ebx\r
66         mov eax, SYS_OPEN\r
67         mov ebx, [esp+0x8]      ; Filename\r
68         mov ecx, [esp+0xC]      ; Flags\r
69         int 0xAC\r
70         pop ebx\r
71         ret\r
72 \r
73 ; void close(int fd)\r
74 _close:\r
75         push ebx\r
76         mov eax, SYS_CLOSE\r
77         mov ebx, [esp+0x8]      ; File Descriptor\r
78         int 0xAC\r
79         pop ebx\r
80         ret\r
81 \r
82 _SysSetFaultHandler:\r
83         push ebx\r
84         mov eax, SYS_SETFAULTHANDLER\r
85         mov ebx, [esp+0x8]      ; File Descriptor\r
86         int 0xAC\r
87         pop ebx\r
88         ret\r

UCC git Repository :: git.ucc.asn.au