Revert "Revert "some stuff""

This reverts commit 027c11d04d8ef848208d814541e91eb1f9225803.
This commit is contained in:
Adrien Bourmault 2019-03-06 20:05:18 +01:00
parent ffeeb7ec9c
commit 05d3f052ac
1 changed files with 23 additions and 19 deletions

View File

@ -27,46 +27,50 @@
[BITS 32]
[global _start]
[ORG 0x100000] ; Where GRUB loads us.
[ORG 0x100000] ; Where GRUB loads us.
%include "boot/loader/multiboot.inc"
;; Normal entry point, but a little bit unused since we never use it because...
_start:
mov ax, cs ; correcting cs after the horrible far jump
mov ds, ax ; hm... And ds too
mov es, ax ; And es because it is jealous
mov ax, cs ; correcting cs after the horrible far jump
mov ds, ax ; hm... And ds too
mov es, ax ; And es because it is jealous
;mov [Bootdrv], dl
xor dl, dl
jmp 0x0000:main ; pas sûr
jmp 0x0000:main ; pas sûr
;; Magnificent multiboot header for GRUB ------------------------------------ ;;
MB_header:
align 4
dd MB_HEADER_MAGIC
dd MB_HEADER_FLAGS
dd CHECKSUM
dd MB_header ; Header address
dd _start ; Address of code entry point
dd 00 ; (end of code) not necessary
dd 00 ; (bss) not necessary
dd MB_start ; entry address GRUB will start at
dd MB_header ; Header address
dd _start ; Address of code entry point
dd 00 ; (end of code) not necessary
dd 00 ; (bss) not necessary
dd MB_start ; entry address GRUB will start at
;; Multiboot entry point for Grub ------------------------------------------- ;;
MB_start:
mov esp, KERNEL_STACK ; Setup the stack
push 0 ; Reset EFLAGS
mov esp, KERNEL_STACK ; Setup the stack
push 0 ; Reset EFLAGS
popf
push eax ; 2nd argument is magic number
push ebx ; 1st argument multiboot info pointer
push eax ; 2nd argument is magic number
push ebx ; 1st argument multiboot info pointer
call main
add esp, 8 ; Cleanup 8 bytes pushed as arguments
jmp Die
add esp, 8 ; Cleanup arguments "A la MIPS"
jmp Die ; Aufwiedersehen
;; BEGIN OF THE HOLE -------------------------------------------------------- ;;
;; THE HOLE ----------------------------------------------------------------- ;;
Die:
cli
hlt ; die nooooow
hlt ; die nooooow
;jmp 0xF000:0xFFF0
jmp $
;; END OF THE HOLE ---------------------------------------------------------- ;;
;; THE CODE ------------------------------------------------------------------;;
main:
jmp Die