protos wrote:
what do you mean with i dont use ES ?
I don't understand your question.
You use ES right here. The address of your buffer is ES:BX. You didn't set ES, so ES contains some random value.
protos wrote:
would you try to explain it to me in more detail so that i can adapt it ?
Your post is very confusing, I'm not sure what you need me to explain.
protos wrote:
Okay, i try to get it, i stay the way it was, but copy it over in smaller chunks !?
What do you mean? You should be able to use larger chunks, not smaller. Set ES:BX to something like 0x1000:0x0000 to put your buffer at 0x10000, then you can load 127 sectors instead of 54. If you want more than 127 sectors, call INT 0x13 again. When you've loaded about 512kB of data, copy everything from 0x10000 to 0x100000. If you want more than 512kB, start over with INT 0x13.
protos wrote:
What i really want is to make all this in 2ndstage.asm, but the disk_load function is 16bit code, i have to ask GPT:( to convert it for me to 32bit assembly, because i dont know how to call that c funktion i have from within than assembly.
You can't use INT 0x13 in protected mode.