X-Git-Url: http://git.dujemihanovic.xyz/projects?a=blobdiff_plain;f=boot%2Fx86%2Fprotected.s;h=63d448cac20ce1da988dfd277a0470e2ca8c7acf;hb=c29b9d737fde3b6037aacc95cc6ff4f5fbc63d46;hp=d1c7eea34df31ac1a191c26bc2abeb6bb45924d6;hpb=63853960825f007827a79f704d291c372c807096;p=nameless-os.git diff --git a/boot/x86/protected.s b/boot/x86/protected.s index d1c7eea..63d448c 100644 --- a/boot/x86/protected.s +++ b/boot/x86/protected.s @@ -37,40 +37,12 @@ protected mov ebp, 090000h mov esp, ebp - ; print a string to let us know that we survived the switch - mov ebx, pm_success - call pmprint - ; transfer control to the kernel call KERNEL_OFFSET ; above call should not return in normal circumstances, but if it does hang forever jmp $ -pmprint - pusha ; save registers to stack - mov edx, video_memory ; initialize dx with location of VRAM - -.loop - mov al, [ebx] ; read next char and put it in al - mov ah, 00000111b ; puts the VGA text mode color white on black into ah - - cmp al, 0 ; if the next character is null, we reached end of string - je .done ; so return the instruction - - mov [edx], al ; otherwise put the next character in the video memory - mov [edx+1], ah ; do the same for its color - - inc ebx ; point to next character in string - add edx, 2 ; point to next character in VRAM - - jmp .loop ; go back to the loop - -.done - popa ; restore registers from stack - ret ; return - -pm_success db "Now in protected mode", 0 video_memory equ 0B8000h ; the actual Global Descriptor Table