You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			NASM
		
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			NASM
		
	
| ; The first 8192 bytes of the kernel binary must contain a header with
 | |
| ; predefined (and sometimes "magic") values according to the Multiboot standard.
 | |
| ; Based on these values, the boot loader decides whether and how to load the
 | |
| ; kernel -- which is compiled and linked into an ELF file.
 | |
| ; To make this possible with your StuBS kernel, the linker places the following
 | |
| ; entry `multiboot_header` at the very beginning of the file thanks to the
 | |
| ; linker script (located in compiler/sections.ld).
 | |
| 
 | |
| [SECTION .multiboot_header]
 | |
| 
 | |
| ; Include configuration
 | |
| %include 'boot/multiboot/config.inc'
 | |
| 
 | |
| ; Multiboot Header
 | |
| align 4
 | |
| multiboot_header:
 | |
| 	dd MULTIBOOT_HEADER_MAGIC_OS  ; Magic Header Value
 | |
| 	dd MULTIBOOT_HEADER_FLAGS     ; Flags (affects following entries)
 | |
| 	dd MULTIBOOT_HEADER_CHKSUM    ; Header Checksum
 | |
| 
 | |
| 	; Following fields would have been required to be defined
 | |
| 	; if flag A_OUT KLUDGE was set (but we don't need this)
 | |
| 	dd 0     ; Header address
 | |
| 	dd 0     ; Begin of load  address
 | |
| 	dd 0     ; end of load address
 | |
| 	dd 0     ; end of bss segment
 | |
| 	dd 0     ; address of entry function
 | |
| 
 | |
| 	; Following fields are required for video mode (flag MULTIBOOT_VIDEO_MODE)
 | |
| 	dd 0   ; Mode: 0 = Graphic / 1 = Text
 | |
| 	dd MULTIBOOT_VIDEO_WIDTH     ; Width (pixels / columns)
 | |
| 	dd MULTIBOOT_VIDEO_HEIGHT    ; Height (pixels / rows)
 | |
| 	dd MULTIBOOT_VIDEO_BITDEPTH  ; color depth / number of colors
 |