X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86%2Fstart.asm;h=7602b9b66cb3af449f84401424c2ac7fb90078a7;hb=479d0634670b58da044bc58149662adba0ad1d0b;hp=b6026de6b936ccbe97ba75dd6d8c53066b83ba91;hpb=48743e39650eb1ef988380e9d95f27fd40d3a9ce;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86/start.asm b/KernelLand/Kernel/arch/x86/start.asm index b6026de6..7602b9b6 100644 --- a/KernelLand/Kernel/arch/x86/start.asm +++ b/KernelLand/Kernel/arch/x86/start.asm @@ -55,8 +55,9 @@ mboot: ; dd 8 ;mboot2_end: -[section .text] +[section .inittext] [extern kmain] +[extern Desctab_Install] [global start] start: ; Just show we're here @@ -87,11 +88,15 @@ start: .higher_half: mov WORD [0xB8006], 0x0773 ; 's' + + push ebx ; Multiboot Info + push eax ; Multiboot Magic Value + ; NOTE: These are actually for kmain + + call Desctab_Install mov WORD [0xB8008], 0x0773 ; 's' ; Call the kernel - push ebx ; Multiboot Info - push eax ; Multiboot Magic Value mov WORD [0xB800A], 0x0732 ; '2' call kmain @@ -132,13 +137,13 @@ APStartup: ; Load initial GDT mov ax, 0xFFFF mov ds, ax - lgdt [DWORD ds:lGDTPtr-KERNEL_BASE-0xFFFF0] + lgdt [DWORD ds:lGDTPtr-0xFFFF0] ; Enable PMode in CR0 mov eax, cr0 or al, 1 mov cr0, eax ; Jump into PMode - jmp 08h:DWORD .ProtectedMode-KERNEL_BASE + jmp 08h:DWORD .ProtectedMode [bits 32] .ProtectedMode: ; Load segment registers @@ -213,6 +218,10 @@ APStartup: jmp .hlt %endif +; +; +; +[section .text] [global GetEIP] GetEIP: mov eax, [esp]