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.
I'm pretty sure this has been up before, I can't just find it.
I'm pretty new to os developing, and my kernel is everything but complete.
Teh question: Do I need to do anything special to access memory over the 4MB border? I have a pointer, that points to a memory location, and use it to check in the memory it points to is equal to 0. When it points to anything below 3FFFFF, it works, but if I change it to 400000, I get this error.
First, are you sure your emulator is not set to 4mb?
Second, it can be a problem with your limit fields in your gdt
4mb, I don't know, it does mean it's 24bit addresses? can be the gdt, or the emulator not set to higher mem
I'll check the gdt.
The emulator (VmWare) is set to 192MB what I can see. I've also tried a real computer, it just reset. (witch is what VmWare said whould happen.)
2442_m4 wrote:I'll check the gdt.
The emulator (VmWare) is set to 192MB what I can see. I've also tried a real computer, it just reset. (witch is what VmWare said whould happen.)
EDIT: GDT looks ok.
Ttry it in bochs, it will give some usefull insights from the bochsout file.
Thanks!
That was the answer I was looking for. Will try when I get the Dev-machine working again...
EDIT: I don't understand a **** about IDT, does anyone know a good tutorial? The only thing I found in the wiki was complete gibberish to me, nothing seemed to affect the memory, but that's probibly me who don't understand what I read...