IRQ error on qemu
Posted: Fri May 27, 2016 5:24 pm
Hello guys , my IRQ's are not working when i remap the pic and register the Interrupt routines and call irq_install in main function i got this message from qemu : Booting From ROM , and my os not boot
code of error:
when i not call irq_install , on main my os work , what's is happening?
code of error:
Code: Select all
void remap_pic()
{
outportb (0x20, 0x11);
outportb (0xA0, 0x11);
outportb (0x21, 0x20);
outportb (0xA1, 0x28);
outportb (0x21, 0x04);
outportb (0xA1, 0x02);
outportb (0x21, 0x01);
outportb (0xA1, 0x01);
outportb (0x21, 0x0);
outportb (0xA1, 0x0);
}
void irq_install()
{
remap_pic();
idt_set_gate (32, (unsigned)irq0, 0x08, 0x8E);
idt_set_gate (33, (unsigned)irq1, 0x08, 0x8E);
idt_set_gate (34, (unsigned)irq2, 0x08, 0x8E);
idt_set_gate (35, (unsigned)irq3, 0x08, 0x8E);
idt_set_gate (36, (unsigned)irq4, 0x08, 0x8E);
idt_set_gate (37, (unsigned)irq5, 0x08, 0x8E);
idt_set_gate (38, (unsigned)irq6, 0x08, 0x8E);
idt_set_gate (39, (unsigned)irq7, 0x08, 0x8E);
idt_set_gate (40, (unsigned)irq8, 0x08, 0x8E);
idt_set_gate (41, (unsigned)irq9, 0x08, 0x8E);
idt_set_gate (42, (unsigned)irq10, 0x08, 0x8E);
idt_set_gate (43, (unsigned)irq11, 0x08, 0x8E);
idt_set_gate (44, (unsigned)irq12, 0x08, 0x8E);
idt_set_gate (45, (unsigned)irq13, 0x08, 0x8E);
idt_set_gate (46, (unsigned)irq14, 0x08, 0x8E);
idt_set_gate (47, (unsigned)irq15, 0x08, 0x8E);
}