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