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 protected]
SUSE LINUX 7.3 PRO - The world starts behind windows