mov eax , cr0
or eax , 0x01
mov cr0 , eax



back to months list

Project : The "Microkernel" Operating System

Journal Entry Date : 2024.01.06

I separated interrupts for General and Special. For General interrupt, the interrupts are assigned to interrupt vector. For Special interrupt, there exists a pre-established base functions that calls designated handler when the interrupt is occured(Check journey 7.) That way the system effectively is establishing the padding between interrupt and kernel's interrupt handler. I also implemented all 256 numbered interrupts, and now I'm kinda regret making it because it's very very gigantic..

General & Special interrupt


lol my painting skill sucks

Basically there's this "General interrupt" and "Special interrupt." General Interrupts has some assigned interrupt vector, like PIT interrupt(32) or PS/2 port interrupt(33.) Special Interrupt is for interrupts that has no vector but only requires interrupt handler pointer (Like LAPIC timer handler or something like that.) I hope this explanation is clear..