bits 64 section .text global _syscall_encode_color _syscall_encode_color: xor rax, rax and edi, 0xff and dx, 0xff shl si, 8 shl edx, 16 or di, si or edi, edx syscall ret global _syscall_get_framebuffer _syscall_get_framebuffer: push rcx push rdx push rsi push rdi mov rax, 1 syscall pop rcx mov qword [rcx], rax pop rcx mov dword [rcx], edi pop rcx shr rdi, 32 mov dword [rcx], edi pop rcx mov dword [rcx], esi ret global _syscall_open_file _syscall_open_file: mov rax, 2 push rdx syscall pop rdx mov qword [rdx], rdi ret global _syscall_get_file_length _syscall_get_file_length: mov rax, 3 push rsi syscall pop rsi mov qword [rsi], rdi ret global _syscall_read_from_file _syscall_read_from_file: mov rax, 4 push rcx push rdx push rsi push rdi mov rdi, rsp syscall add rsp, 32 ret global _syscall_end_this_process _syscall_end_this_process: mov rax, 5 syscall ;does not return global _syscall_get_new_pages _syscall_get_new_pages: mov rax, 6 syscall ret global _syscall_close_file _syscall_close_file: mov rax, 7 syscall ret global _syscall_read_key_packet _syscall_read_key_packet: mov rax, 8 syscall ret