global loader	; symbole d'entrée pour le format ELF

; valeurs pour l'entête de multiboot
; (https://www.gnu.org/software/grub/manual/multiboot/html_node/Header-magic-fields.html#Header-magic-fields)
MAGIC_NUMBER	equ 0x1BADB002		; obligatoire
FLAGS		equ 0x0			; configuration de multiboot
CHECKSUM	equ -MAGIC_NUMBER	; cf. documentation

KERNEL_STACK_SIZE	equ 4096

section .bss
align 4
kernel_stack:
	resb KERNEL_STACK_SIZE

section .text
align 4
	dd MAGIC_NUMBER
	dd FLAGS
	dd CHECKSUM

loader:
	; écrite la lettre A dans le framebuffer
	; mov word [0xB8000], 0x0F41
	; le registre esp contient le pointeur vers la stack
	mov esp, kernel_stack + KERNEL_STACK_SIZE
	extern kmain
	call kmain
	;extern fb_write_cell
	;push dword 0x00
	;push dword 0x0F
	;push dword 0x41
	;call fb_write_cell
	mov eax, 0xCAFEBABE
.loop:
	jmp .loop