Friday, January 28, 2011

Catching up...

All this extra time I cost myself was well used in contemplation over the period of a week or so. Armed with the freshly built Bochs in debugger mode, it was a bit easier to find the problems in my previous code for TOS. My Global Descriptor Table entries were being corrupted by my kernel heap memory management code. Also, apparently I had corrupted my Interrupt Descriptor Table entries as well. I decided to redo them with more Assembly code and less C++. The C++ I did write I marked it as extern "C" so that it would be called with C style conventions. While debugging this new code to make sure it works, I was gladly presented text output showing that not only did it work, but the Interrupt Service Request Routines were firing off continually. Awesome. Back to the drawing board for the Kernel Heap memory management system.

No comments: