%ifndef SETTINGS_DEF
%define SETTINGS_DEF

MB_VIDEO_MODE     equ 1 << 2   ; Use video mode information
MB_LOAD_ADDR      equ 1 << 16  ; Use custom load addresses

; Multiboot header values. Read the Multiboot specification 0.9.6
; See http://www.gnu.org/software/grub/manual/multiboot/multiboot.html
MB_HDR_MAGIC      equ 0x1BADB002
MB_HDR_FLAGS      equ MB_LOAD_ADDR | MB_VIDEO_MODE
MB_HDR_CHECKSUM   equ -(MB_HDR_MAGIC + MB_HDR_FLAGS)

; Video values
VID_MODE   equ 0 ; 0 = Linear graphics, 1 = EGA text mode
VID_WIDTH  equ 1280
VID_HEIGHT equ 1024
VID_DEPTH  equ 32

; Keep everything aligned on 8 byte boundaries
; Size of IDT 0x00000800
; Size of TSS 0x00000068

KERNEL_LOADADDR equ 0x00100000 
IDT_ADDR        equ 0x00100400 ; Leave 1KB for kernel
TSS_ADDR        equ 0x00100C00 ; Leave 0x800 for IDT
KERNEL_STACK    equ 0x00102000 ; Around 5KB for kernel stack
USER_DATA       equ 0x00102000 ; Room for user data
USER_STACK      equ 0x00200000 ; Stick the usermode stack here
RESERVED_SPACE  equ 0x00200000 ; Reserve first 2 MB for userland to use

%endif
