User talk:Bellezzasolo

From OSDev.wiki
Revision as of 14:08, 5 February 2012 by osdev>Alfaomega08
Jump to navigation Jump to search

Talk

Welcome to my talk page. My home page is here: User:bellezzasolo

As I wrote on the IDT Problems talk page, I don't think this is the right place to discuss "personal" problems, and you'd better post your questions on the forum. Anyway. I think your code has two problems. First, I can't see any setvect call. You wrote the function but is it actually called somewhere? Second you put #pragma pack and pop around the IDT_register and IDT variable instantiations, while you have to put it around the class definitions like:

#pragma pack(push, 1)
class IDT_entry
{
    // blah blah blah
};
#pragma pack(pop)

You put size asserts in the installIDT function "if(sizeof(IDT_reg) != 6) ......" but even if it actually does Puts("Bad IDT reg\n"); you wont actually see that, as you system will reboot before your eyes are able to catch it. I suggest you to write the asserts like this:

if(sizeof(IDT_reg) != 6)
{
    Puts("Bad IDT reg\n");
    Halt();
}

Where Halt is an infinite loop or a "cli; hlt" so that you can actually see the message being put.