Turns out the weird problems with the bootcode were caused by my overwriting the GDT. I was under the mistaken impression that once LGDT was executed, the contents were cached in the processor and the space could be reused. Wrong.
Still having problems with it, because that meant I had to make room for all those variables I was attempting to store in the GDT. That meant a major overhaul of the code, so I'm chasing down bugs again.
last updated 2011-12-14 16:22:08. served from tektonic.jcomeau.com