62 lines
987 B
ArmAsm
62 lines
987 B
ArmAsm
.global screenout_init
|
|
// void * screenout_init(int err);
|
|
screenout_init:
|
|
mov %rdi, %rax
|
|
push %rax
|
|
xor %rax, %rax
|
|
int $0x30
|
|
pop %rcx
|
|
ret
|
|
|
|
.global screenout_out
|
|
// void * screenout_out(void* handle, char *str);
|
|
screenout_out:
|
|
push %rbx
|
|
mov %rsi, %rax
|
|
mov %rdi, %rbx
|
|
push %rax
|
|
xor %rax, %rax
|
|
inc %rax
|
|
int $0x30
|
|
pop %rbx
|
|
pop %rbx
|
|
ret
|
|
|
|
.global screenout_clear
|
|
// void * screenout_clear(void* handle);
|
|
screenout_clear:
|
|
push %rbx
|
|
mov %rdi, %rbx
|
|
xor %rax, %rax
|
|
inc %rax
|
|
inc %rax
|
|
int $0x30
|
|
pop %rbx
|
|
ret
|
|
|
|
.global screenout_setcolor
|
|
// void * screenout_setcolor(void* handle, uint32_t BG, uint32_t FG)
|
|
screenout_setcolor:
|
|
push %rbx
|
|
mov %rdi, %rbx
|
|
mov %rsi, %rax
|
|
mov %rdx, %rcx
|
|
push %rcx
|
|
push %rax
|
|
mov $3, %rax
|
|
int $0x30
|
|
pop %rbx
|
|
pop %rbx
|
|
pop %rbx
|
|
ret
|
|
|
|
.global screenout_destroy
|
|
// void * screenout_destroy(void * handle)
|
|
screenout_destroy:
|
|
push %rbx
|
|
mov %rdi, %rbx
|
|
xor %rax, %rax
|
|
dec %ax
|
|
int $0x30
|
|
pop %rbx
|
|
ret
|