36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
// HARDWARE ABSTRACTION LAYER
|
|
#include "cpu/gdt.h"
|
|
#include "cpu/idt.h"
|
|
#include "cpu/isrs.h"
|
|
#include "cpu/irq.h"
|
|
|
|
#include "clock/clock.h"
|
|
#include "keyboard/keyboard.h"
|
|
#include "mouse/mouse.h"
|
|
|
|
#include <debugio.h>
|
|
|
|
void HalInitialize()
|
|
{
|
|
// Initialize cpu
|
|
GdtInstall(); Log("%#[HAL] %#Installed GDT\n", ColorYellow, ColorLightGreen);
|
|
IdtInstall(); Log("%#[HAL] %#Installed IDT\n", ColorYellow, ColorLightGreen);
|
|
IsrsInstall(); Log("%#[HAL] %#Installed ISRs\n", ColorYellow, ColorLightGreen);
|
|
IrqInstall(); Log("%#[HAL] %#Installed IRQs\n", ColorYellow, ColorLightGreen);
|
|
|
|
// Start interrupts
|
|
asm volatile ("sti");
|
|
Log("%#[HAL] %#Interrupts are started...\n", ColorYellow, ColorLightMagenta);
|
|
|
|
// Install keyboard
|
|
IrqInstallHandler(0, TimeHandler);
|
|
IrqInstallHandler(1, KeyboardHandler);
|
|
IrqInstallHandler(12, MouseHandler);
|
|
|
|
KeyboardInstallA(); Log("%#[HAL] %#Installing keyboard... %#[1/2] ", ColorYellow, ColorLightGray, ColorLightGreen);
|
|
KeyboardInstallB(); Log("%#[2/2]\n", ColorLightGreen);
|
|
|
|
// Install mouse driver
|
|
MouseInstall(); Log("%#[HAL] %#Installed mouse driver\n", ColorYellow, ColorLightGreen);
|
|
}
|