]> git.lizzy.rs Git - nyax.git/blobdiff - stage3/main.asm
Finish paging driver
[nyax.git] / stage3 / main.asm
index 7e1ecbd397583b71a0c31911b821848132a75aa1..2be97ff1a0348d13af402737d223ce072e3aa34d 100644 (file)
@@ -1,36 +1,60 @@
 global _start
-extern print_str, print_dec, print_chr, clear_screen, paging
+extern print_str, print_dec, print_hex, print_chr, clear_screen, page_map, page_region
+
+%define GFXINFO 0x1000-10
 
 section .data
 
 headline: db "nyax stage3", 10, 10, 0
 
-disclaimer: db \
-       "NyaX", 10, \
-       "(C) 2022 Flecken-chan", 10, \
-       "Dis progwam comes with ABSOLUTELY NO WAWWANTY", 10, \
-       "Dis iz fwee software, and your'e welcome to redistwibute it", 10, "  under certain conditions", 10, 0
+gfxregion:
+       .start: dq 0
+       .size: dq 0
+       .type: dw 2
+       dw 0
 
 section .text
 
 _start:
        call clear_screen
 
-       call paging
-
        mov rdi, headline
        call print_str
 
-       mov rdi, disclaimer
-       call print_str
+       call page_map
+
+       ;mov qword[rbx], -1
+
+       ;jmp $
+
+       movzx rax, word[GFXINFO+0]
+       movzx rbx, word[GFXINFO+4]
+       mov rcx, 4
+
+       xor rdx, rdx
+       mul rbx
+
+       xor rdx, rdx
+       mul rcx
+
+       xor rbx, rbx
+       mov ebx, [GFXINFO+6]
+
+       mov [gfxregion.start], rbx
+       mov [gfxregion.size], rax
+
+       mov r9, gfxregion
+       call page_region
+
+       mov rbx, [gfxregion.start]
+       mov rax, [gfxregion.size]
+
+       add rax, rbx
+
+.clear:
+       mov qword[rbx], -1
+       add rbx, 8
+       cmp rbx, rax
+       jb .clear
 
-       xor rdi, rdi
-.loop:
-       push rdi
-       mov dil, 13
-       call print_chr
-       mov rdi, [rsp]
-       call print_dec
-       pop rdi
-       inc rdi
-       jmp .loop
+       jmp $