Hi readers ....
I'm making an (Protected Mode) OS, and i does run pretty well ... at least i thought ...
I developed it using BOCHS 1.3, NASM, DJGPP ... sometimes i used an old PC to test it on real hardware ... bvut not quite often. Now, it is some time ago that i teste on a real PC, and - Damn - it does real wierd things, but not the things i want it to do ... Now i have tested all parts, and debugged each single instrucxtion, and i foud out, that the wierd stuff starts after i issued an 'lidt' during kernel initialisation. Under BOCHS everething works perfect, just as expected... On my Real PC, somehow the IRQ's seem to have different INT numbers ... and i can't do a task-switch when i do 'lidt' before it (not always true: it's rather impredictable ... and that sucks hard.) I do initialse the PIC, but somehow it seems to have a different effect on my 486, than under BOCHS ... I checked the complete IDT, it is OK.
My question: is there any (obvious) reason why this might go wrong ??
If think you got it, or you want to see the source code, to get an answer, please mail me (email@example.com)
SUSE LINUX 7.3 PRO - The world starts behind windows