Core/src/syscalls.S

142 lines
2.4 KiB
ArmAsm
Raw Normal View History

2023-06-19 21:47:51 +02:00
format ELF
2021-12-09 14:25:28 +01:00
2024-03-12 12:18:29 +01:00
include "src/include/macros.inc"
include "src/include/proc32.inc"
include "src/include/dll.inc"
include "src/include/func_constants.inc"
2023-06-19 22:32:18 +02:00
2023-06-19 21:47:51 +02:00
section '.text'
public _exit
public _start_window_draw
public _end_window_draw
public _define_window
public _display_message
public _wait_event
public _pressed_key
public _define_button
public _debug_write
public _get_button_id
public _init_heap
public _alloc
public _free
2024-01-27 22:13:35 +01:00
public _get_lang
2024-01-30 13:56:39 +01:00
public _load_dll
2024-03-11 21:50:22 +01:00
public _set_event_mask
2021-12-09 14:25:28 +01:00
2024-03-12 12:18:29 +01:00
public dll.Init
2021-12-09 14:25:28 +01:00
_exit:
2023-06-19 22:32:18 +02:00
mov eax, SF_TERMINATE_PROCESS
2021-12-09 14:25:28 +01:00
int 0x40
_start_window_draw:
2023-06-19 22:32:18 +02:00
mov eax, SF_REDRAW
mov ebx, SSF_BEGIN_DRAW
2021-12-09 14:25:28 +01:00
int 0x40
ret
_end_window_draw:
2023-06-19 22:32:18 +02:00
mov eax, SF_REDRAW
mov ebx, SSF_END_DRAW
2021-12-09 14:25:28 +01:00
int 0x40
ret
_define_window:
push edi
2023-06-18 23:44:01 +02:00
push esi
2023-06-19 22:32:18 +02:00
mov eax, SF_CREATE_WINDOW
mov ebx, dword [esp + 4 * 3]
mov ecx, dword [esp + 4 * 4]
mov edx, dword [esp + 4 * 5]
mov esi, dword [esp + 4 * 6]
mov edi, dword [esp + 4 * 7]
2021-12-09 14:25:28 +01:00
int 0x40
2023-06-18 23:44:01 +02:00
pop esi
2021-12-09 14:25:28 +01:00
pop edi
ret
_display_message:
2024-01-12 09:39:38 +01:00
push esi edi
2023-06-19 22:32:18 +02:00
mov eax, SF_DRAW_TEXT
mov ebx, dword [esp + 4 * 3]
mov ecx, dword [esp + 4 * 4]
mov edx, dword [esp + 4 * 5]
2024-02-01 15:44:21 +01:00
mov esi, dword [esp + 4 * 6]
mov edi, dword [esp + 4 * 7]
2021-12-09 14:25:28 +01:00
int 0x40
2024-01-12 09:39:38 +01:00
pop edi esi
2021-12-09 14:25:28 +01:00
ret
_wait_event:
2023-06-19 22:32:18 +02:00
mov eax, SF_WAIT_EVENT
2021-12-09 14:25:28 +01:00
int 0x40
ret
_pressed_key:
2023-06-19 22:32:18 +02:00
mov eax, SF_GET_KEY
2021-12-09 14:25:28 +01:00
int 0x40
ret
_define_button:
push esi edi
mov eax, SF_DEFINE_BUTTON
mov ebx, dword [esp + 4 * 3]
mov ecx, dword [esp + 4 * 4]
mov edx, dword [esp + 4 * 5]
mov esi, dword [esp + 4 * 6]
int 0x40
pop edi esi
ret
_debug_write:
mov eax, SF_BOARD
mov ebx, SSF_DEBUG_WRITE
mov cl , byte [esp + 4 * 1]
int 0x40
ret
_get_button_id:
mov eax, SF_GET_BUTTON
int 0x40
ret
_init_heap:
mov eax, SF_SYS_MISC
mov ebx, SSF_HEAP_INIT
int 0x40
ret
_alloc:
mov eax, SF_SYS_MISC
mov ebx, SSF_MEM_ALLOC
mov ecx, [esp + 4 * 1]
int 0x40
ret
_free:
mov eax, SF_SYS_MISC
mov ebx, SSF_MEM_FREE
mov ecx, [esp + 4 * 1]
int 0x40
ret
2024-01-27 22:13:35 +01:00
_get_lang:
mov eax, SF_SYSTEM_GET
mov ebx, SSF_SYS_LANG
int 0x40
ret
2024-01-30 13:56:39 +01:00
_load_dll:
mov eax, SF_SYS_MISC
mov ebx, SSF_LOAD_DLL
mov ecx, [esp + 4 * 1]
int 0x40
ret
2024-03-11 21:50:22 +01:00
_set_event_mask:
mov eax, SF_SET_EVENTS_MASK
mov ebx, [esp + 4 * 1]
int 0x40
ret