summaryrefslogtreecommitdiff
path: root/src/kernel/stub.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/stub.asm')
-rw-r--r--src/kernel/stub.asm36
1 files changed, 6 insertions, 30 deletions
diff --git a/src/kernel/stub.asm b/src/kernel/stub.asm
index 84e4523..bad26aa 100644
--- a/src/kernel/stub.asm
+++ b/src/kernel/stub.asm
@@ -15,7 +15,9 @@
;ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
;OF THIS SOFTWARE.
-extern main
+global _start
+extern wrapped_main
+extern tag_pointer
section .mb_header
dd 0xe852_50d6;magic
@@ -34,37 +36,12 @@ mb_end:
section .text
bits 32
-global _start
_start:
- mov dword [info_pointer], ebx
+ add ebx, 8
+ mov dword [tag_pointer], ebx
mov esp, stack
- call main
- mov edx, eax
-
- mov eax, 0x4720_4720
- mov ebx, 0x000b_8000
- mov ecx, 0x000b_8fa0
-clear_screen_loop:
- mov dword [ebx], eax
- add ebx, 4
- test ebx, ecx
- jne clear_screen_loop
-
- mov dword [0x000b_8000], 0x4772_4745
- mov dword [0x000b_8004], 0x476f_4772
- mov dword [0x000b_8008], 0x4720_4772
- mov ebx, 0x000b_8020
- mov ecx, 0x000b_800a
-error_number_loop:
- mov al, dl
- and al, 0x07
- or al, 0x30
- mov byte [ebx], al
- sub ebx, 2
- shr edx, 3
- test ebx, ecx
- jne error_number_loop
+ call wrapped_main
cli
halt:
@@ -72,7 +49,6 @@ halt:
jmp halt
section .bss
-global info_pointer
info_pointer resd 1
resb 0x1000 - $ + $$
stack: \ No newline at end of file