Refactor UEFI graphics code and move example to example.f
[rrq/jonasforth.git] / os / linux.asm
1 format ELF64 executable
2 entry main
3
4 macro os_code_section {
5   segment readable executable
6 }
7
8 macro os_data_section {
9   segment readable writable
10 }
11
12 os_code_section
13
14 os_initialize:
15   ret
16
17 os_print_string:
18   push rsi
19   mov rax, 1
20   mov rdi, 1
21   mov rsi, rcx
22   syscall
23   pop rsi
24   ret
25
26 os_read_char:
27   push rsi
28   mov rax, 0
29   mov rdi, 0
30   mov rsi, .buffer
31   mov rdx, 1
32   syscall
33   pop rsi
34   movzx rax, byte [.buffer]
35   ret
36
37 os_terminate:
38   mov rdi, rax
39   mov rax, $3C
40   syscall
41
42 os_data_section
43
44 os_read_char.buffer db ?
45