2026-01-29 08:36:04 +11:00
|
|
|
#pragma once
|
|
|
|
|
#include "../BasicRenderer.h"
|
2026-01-29 13:06:49 +11:00
|
|
|
#include "../userinput/mouse.h"
|
2026-01-29 08:36:04 +11:00
|
|
|
|
2026-01-29 10:34:50 +11:00
|
|
|
#define PIC1_COMMAND 0x20
|
|
|
|
|
#define PIC1_DATA 0x21
|
|
|
|
|
#define PIC2_COMMAND 0xA0
|
|
|
|
|
#define PIC2_DATA 0xA1
|
|
|
|
|
#define PIC_EOI 0x20
|
|
|
|
|
|
|
|
|
|
#define ICW1_INIT 0x10
|
|
|
|
|
#define ICW1_ICW4 0x01
|
|
|
|
|
#define ICW4_8086 0x01
|
2026-01-29 08:36:04 +11:00
|
|
|
|
2026-01-29 10:34:50 +11:00
|
|
|
struct interrupt_frame;
|
2026-01-29 13:06:49 +11:00
|
|
|
__attribute__((interrupt)) void PageFault_Handler(interrupt_frame* frame);
|
|
|
|
|
__attribute__((interrupt)) void DoubleFault_Handler(interrupt_frame* frame);
|
|
|
|
|
__attribute__((interrupt)) void GPFault_Handler(interrupt_frame* frame);
|
2026-01-29 10:34:50 +11:00
|
|
|
|
2026-01-29 13:06:49 +11:00
|
|
|
__attribute__((interrupt)) void KeyboardInterrupt_Handler(interrupt_frame* frame);
|
|
|
|
|
__attribute__((interrupt)) void MouseInterrupt_Handler(interrupt_frame* frame);
|
2026-01-29 10:34:50 +11:00
|
|
|
|
|
|
|
|
void RemapPIC();
|
|
|
|
|
void PIC_EndMaster();
|
|
|
|
|
void PIC_EndSlave();
|