Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
if you do the far jump to 32 bit protected mode the code after that point also has to be 32 bit. in the first scenario the code after setup_kernel is still 16 bit try adding BITS 32 before the setup_kernel: statement
didnt look too closely, but i did notice (not your problem) that you are not setting a RMode DS -- its likely to work on most computers, but wont work on some (nothing says DS must be 0 on boot -- and on some systems it isnt)
this isnt your problem, but it is something to keep in mind
mov bx, 0x1000 ; Destination address
mov ah, 2 ; Function code
mov al, 50 ; Sectors to read
mov ch, 0 ; Cylinder?
mov cl, 2 ; Sector number
mov dh, 0 ; Head?
int 0x13
first there are no safety checks in place (recommended with floppies)
edit: my maths were wrong
Last edited by Combuster on Fri Jun 15, 2007 1:44 am, edited 2 times in total.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]