First of all, thank you all for collecting so much information about os development!
Well, I am currently developing my own x86 os kernel with c++ and bits of assembler. Now I'm getting a Invalid OpCode Exception, and I've been searching for a solution for hours, this might happen because of a misconfigured GDT or IDT or something more trivial but I just dont get it.
When I start the kernel, the printed message shortly comes up, but then it goes away and my panic handler prints the exception code. Could this be caused by the PIT??
I would be very thankful if you could take a look at the relevant shortened sources I've attached.
File structure:
- extra
- linker.ld linker script
- boot
- Loader.asm the bootloader
- Gdt.cpp the GDT code
GdtMounter.asm the GDT mounter
- Idt.cpp the IDT code
IdtMounter.asm the IDT mounter
InterruptRequests.asm
InterruptRequests.cpp
InterruptRoutines.asm
InterruptRoutines.cpp
- handler
- Keyboard.cpp interrupt handler
Timer.cpp interrupt handler
- Keyboard.cpp interrupt handler
Thank you!
Max