Core/src/syscalls.S

114 lines
1.9 KiB
ArmAsm
Raw Normal View History

2023-06-19 21:47:51 +02:00
format ELF
2021-12-09 14:25:28 +01:00
2023-06-19 22:32:18 +02:00
include "src/func_constants.inc"
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
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
2023-06-18 23:44:01 +02:00
mov ebx, dword [esp + 0x0c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
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
2023-06-18 23:44:01 +02:00
mov ebx, dword [esp + 0x0c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
2024-01-12 09:39:38 +01:00
mov edi, dword [esp + 0x18]
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