3797333e68da1e88e06a24a69ade80181ae0aa18
[tpg/acess2.git] / 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 _open]\r
13 [global _close]\r
14 \r
15 ; void SysDebugV(char *fmt, va_list Args)\r
16 _SysDebug:\r
17         ;xchg bx, bx\r
18         push ebp\r
19         mov ebp, esp\r
20         pusha\r
21         \r
22         mov eax, 0x100  ; User Debug\r
23         mov ebx, [ebp+8]        ; Format\r
24         mov ecx, [ebp+12]       ; Arguments\r
25         mov edx, [ebp+16]       ; Arguments\r
26         mov edi, [ebp+20]       ; Arguments\r
27         mov esi, [ebp+24]       ; Arguments\r
28         int     0xAC\r
29         \r
30         popa\r
31         pop ebp\r
32         ret\r
33 \r
34 ; void SysExit()\r
35 _SysExit:\r
36         push ebx\r
37         mov eax, SYS_EXIT       ; Exit\r
38         mov ebx, [esp+0x8]      ; Exit Code\r
39         int     0xAC\r
40         pop ebx\r
41         ret\r
42 \r
43 ; Uint SysLoadBin(char *path, Uint *entry)\r
44 _SysLoadBin:\r
45         push ebx\r
46         mov eax, SYS_LOADBIN    ; SYS_LDBIN\r
47         mov ebx, [esp+0x8]      ; Path\r
48         mov ecx, [esp+0xC]      ; Entry\r
49         int     0xAC\r
50         pop ebx\r
51         ret\r
52 \r
53 ; Uint SysUnloadBin(Uint Base)\r
54 _SysUnloadBin:\r
55         push ebx\r
56         mov eax, SYS_UNLOADBIN  ; SYS_ULDBIN\r
57         mov ebx, [esp+0x8]      ; Base\r
58         int     0xAC\r
59         pop ebx\r
60         ret\r
61 \r
62 ; int close(char *name, int flags)\r
63 _open:\r
64         push ebx\r
65         mov eax, SYS_OPEN\r
66         mov ebx, [esp+0x8]      ; Filename\r
67         mov ecx, [esp+0xC]      ; Flags\r
68         int 0xAC\r
69         pop ebx\r
70         ret\r
71 \r
72 ; void close(int fd)\r
73 _close:\r
74         push ebx\r
75         mov eax, SYS_CLOSE\r
76         mov ebx, [esp+0x8]      ; File Descriptor\r
77         int 0xAC\r
78         pop ebx\r
79         ret\r

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