diff options
Diffstat (limited to 'kc/core/pic8259.h')
| -rw-r--r-- | kc/core/pic8259.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/kc/core/pic8259.h b/kc/core/pic8259.h new file mode 100644 index 0000000..13aaaaa --- /dev/null +++ b/kc/core/pic8259.h @@ -0,0 +1,41 @@ +#pragma once + +#define PIC_PRI_IOBASE 0x20 +#define PIC_SEC_IOBASE 0xA0 +#define PIC_PRI_CMD PIC_PRI_IOBASE +#define PIC_SEC_CMD PIC_SEC_IOBASE +#define PIC_PRI_DATA (PIC_PRI_IOBASE+1) +#define PIC_SEC_DATA (PIC_SEC_IOBASE+1) + +#define PIC_ISR_BASE 240 +#define PIC_ISR_COUNT 16 + +#ifndef __ASSEMBLER__ + +#include <stdint.h> + +void pic8259_init(void); +void pic8259_irq_begin(uint8_t irq); +void pic8259_irq_end(uint8_t irq); +void pic8259_irq_mask(uint8_t irq); +void pic8259_irq_unmask(uint8_t irq); + +extern void pic8259_irq0_isr(void); +extern void pic8259_irq1_isr(void); +extern void pic8259_irq2_isr(void); +extern void pic8259_irq3_isr(void); +extern void pic8259_irq4_isr(void); +extern void pic8259_irq5_isr(void); +extern void pic8259_irq6_isr(void); +extern void pic8259_irq7_isr(void); +extern void pic8259_irq8_isr(void); +extern void pic8259_irq9_isr(void); +extern void pic8259_irq10_isr(void); +extern void pic8259_irq11_isr(void); +extern void pic8259_irq12_isr(void); +extern void pic8259_irq13_isr(void); +extern void pic8259_irq14_isr(void); +extern void pic8259_irq15_isr(void); + +#endif + |
