From e8a76b2f6b53d99640ceb2850bf4e45118b923f1 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Sun, 13 Feb 2022 18:47:58 +0000 Subject: rudimentary irq and timer support --- kc/core/pic8259.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 kc/core/pic8259.h (limited to 'kc/core/pic8259.h') 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 + +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 + -- cgit v1.3.1-1-g115d