2016-05-22 18:13:06 +00:00
|
|
|
.global screenout_init
|
|
|
|
// void * screenout_init(int err);
|
|
|
|
screenout_init:
|
2016-07-24 10:21:12 +00:00
|
|
|
mov 0x4(%esp), %eax
|
|
|
|
push %eax
|
|
|
|
xor %eax, %eax
|
|
|
|
int $0x30
|
|
|
|
pop %ecx
|
|
|
|
ret
|
2016-05-22 18:13:06 +00:00
|
|
|
|
|
|
|
.global screenout_out
|
|
|
|
// void * screenout_out(void* handle, char *str);
|
|
|
|
screenout_out:
|
2016-07-24 10:21:12 +00:00
|
|
|
push %ebx
|
|
|
|
mov 0xC(%esp), %eax
|
|
|
|
mov 0x8(%esp), %ebx
|
|
|
|
push %eax
|
|
|
|
xor %eax, %eax
|
|
|
|
inc %eax
|
|
|
|
int $0x30
|
|
|
|
pop %ebx
|
|
|
|
pop %ebx
|
|
|
|
ret
|
2016-05-22 18:13:06 +00:00
|
|
|
|
|
|
|
.global screenout_clear
|
|
|
|
// void * screenout_clear(void* handle);
|
|
|
|
screenout_clear:
|
2016-07-24 10:21:12 +00:00
|
|
|
push %ebx
|
|
|
|
mov 0x8(%esp), %ebx
|
|
|
|
xor %eax, %eax
|
|
|
|
inc %eax
|
|
|
|
inc %eax
|
|
|
|
int $0x30
|
|
|
|
pop %ebx
|
|
|
|
ret
|
2016-06-18 11:16:15 +00:00
|
|
|
|
2016-05-22 18:13:06 +00:00
|
|
|
.global screenout_setcolor
|
|
|
|
// void * screenout_setcolor(void* handle, uint32_t BG, uint32_t FG)
|
|
|
|
screenout_setcolor:
|
2016-07-24 10:21:12 +00:00
|
|
|
push %ebx
|
|
|
|
mov 0x8(%esp), %ebx
|
|
|
|
mov 0xC(%esp), %eax
|
|
|
|
mov 0x10(%esp), %ecx
|
|
|
|
push %ecx
|
|
|
|
push %eax
|
|
|
|
mov $3, %eax
|
|
|
|
int $0x30
|
|
|
|
pop %ebx
|
|
|
|
pop %ebx
|
|
|
|
pop %ebx
|
|
|
|
ret
|
2016-05-22 18:13:06 +00:00
|
|
|
|
|
|
|
.global screenout_destroy
|
|
|
|
// void * screenout_destroy(void * handle)
|
|
|
|
screenout_destroy:
|
2016-07-24 10:21:12 +00:00
|
|
|
push %ebx
|
|
|
|
mov 0x8(%esp), %ebx
|
|
|
|
xor %eax, %eax
|
|
|
|
dec %ax
|
|
|
|
int $0x30
|
|
|
|
pop %ebx
|
|
|
|
ret
|