Added ISRs and IRQs drivers and set up all interrupts in assembly, however the does not work, yet
This commit is contained in:
@@ -23,6 +23,27 @@
|
||||
// Reserved bits in IDT entries
|
||||
#define IDT_FLAG_RESERVED 0x0E
|
||||
|
||||
// PIC
|
||||
#define PIC1 0x20 // I/O address for master PIC
|
||||
#define PIC2 0xA0 // I/O address for slave PIC
|
||||
#define PIC1_COMMAND PIC1
|
||||
#define PIC1_DATA (PIC1+1)
|
||||
#define PIC2_COMMAND PIC2
|
||||
#define PIC2_DATA (PIC2+1)
|
||||
#define PIC1_START_INTERRUPT 0x20 // Master PIC after remapping
|
||||
#define PIC2_START_INTERRUPT 0x28 // Slave PIC after remapping
|
||||
#define PIC_EOI 0x20 // End of interrupt
|
||||
#define ICW1_ICW4 0x01
|
||||
#define ICW1_SINGLE 0x02
|
||||
#define ICW1_INTERVAL4 0x04
|
||||
#define ICW1_LEVEL 0x08
|
||||
#define ICW1_INIT 0x10
|
||||
#define ICW4_8086 0x01 // 8086/88 (MCS-80/85) mode
|
||||
#define ICW4_AUTO 0x02
|
||||
#define ICW4_BUF_SLAVE 0x08
|
||||
#define ICW4_BUF_MASTER 0x0C
|
||||
#define ICW4_SFNM 0x10
|
||||
|
||||
/* Interrupt Descriptor Table */
|
||||
/* idt_flags contains access flag of a single IDT entry
|
||||
* | 0 - 4 | 5 - 6 | 7 |
|
||||
|
||||
Reference in New Issue
Block a user