Posted: Thu Apr 12, 2007 11:44 am
What about reading always at 0000:0500 (the start of free memory in Real Mode) and then transfer the read sectors to the final address? In this way, the temporary memory would be located at the same place and it would help to make it more dynamic for when the kernel image gets bigger, and no major changes will be needed.
Also, if your kernel is already too big for real mode, maybe you should read sector by sector to simplify it. At least I don't find it much slower than reading full tracks.
Why you don't also try to execute something like this to flush CS:EIP (NASM syntax):
Also, if your kernel is already too big for real mode, maybe you should read sector by sector to simplify it. At least I don't find it much slower than reading full tracks.
Why you don't also try to execute something like this to flush CS:EIP (NASM syntax):
Code: Select all
a32 jmp dword 8:KernelEntryPoint