summaryrefslogtreecommitdiffhomepage
path: root/example/mb2/entry.asm
blob: 063ac744bc095b56310de1d6dd6f6fac7df02612 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
; MIT License, Copyright (c) 2021 Marvin Borner

bits 32

MAGIC equ 0xe85250d6
ARCHITECHTURE equ 0
HEADER_LENGTH equ multiboot_header_end - multiboot_header_start
CHECKSUM equ 0x100000000 - (MAGIC + ARCHITECHTURE + HEADER_LENGTH)

multiboot_header_start:
	dd MAGIC
	dd ARCHITECHTURE
	dd HEADER_LENGTH
	dd CHECKSUM
entry_address_tag_start:
	dw 3
	dw 0
	dd entry_address_tag_end - entry_address_tag_start
	dd 0 ; low
	dd boot_entry ; high
entry_address_tag_end:
framebuffer_tag_start:
        dw 5
        dw 0
        dd framebuffer_tag_end - framebuffer_tag_start
        dd 1920
        dd 1200
        dd 32
framebuffer_tag_end:
	dw 0
	dw 0
	dd 8
multiboot_header_end:

global boot_entry
extern kernel_main
boot_entry:
	mov esp, stack_top
	push esp
	push ebx
	push eax
	cli
	call kernel_main
	hlt
	jmp $

section .bss
align 32
stack_bottom:
	resb 0x4000
stack_top: