A poorly written OS for the x86 arch. (WIP)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
eOS/kernel/isr.asm

66 lines
1.0 KiB

3 years ago
isr_debug_ptr equ 0xe222
3 years ago
%macro isr_err_stub 1
isr_stub_%+%1:
3 years ago
; Save exception vec
3 years ago
mov [isr_debug_ptr], byte %1
3 years ago
; Handle the exception
3 years ago
call exception_handler
3 years ago
cli
hlt
3 years ago
iret
%endmacro
%macro isr_no_err_stub 1
isr_stub_%+%1:
3 years ago
mov [isr_debug_ptr], byte %1
3 years ago
call exception_handler
3 years ago
cli
;hlt
3 years ago
iret
%endmacro
extern exception_handler
isr_no_err_stub 0
3 years ago
; TODO: make keeb drivers
3 years ago
isr_err_stub 1
3 years ago
isr_no_err_stub 2
isr_no_err_stub 3
isr_no_err_stub 4
isr_no_err_stub 5
isr_no_err_stub 6
isr_no_err_stub 7
3 years ago
isr_err_stub 8 ; err
3 years ago
isr_no_err_stub 9 ; keyboard?
3 years ago
isr_err_stub 10
isr_err_stub 11
isr_err_stub 12
isr_err_stub 13
isr_err_stub 14
isr_no_err_stub 15
isr_no_err_stub 16
isr_err_stub 17
isr_no_err_stub 18
isr_no_err_stub 19
isr_no_err_stub 20
isr_no_err_stub 21
isr_no_err_stub 22
isr_no_err_stub 23
isr_no_err_stub 24
isr_no_err_stub 25
isr_no_err_stub 26
isr_no_err_stub 27
isr_no_err_stub 28
isr_no_err_stub 29
isr_err_stub 30
isr_no_err_stub 31
global isr_stub_table
isr_stub_table:
%assign i 0
%rep 32
dd isr_stub_%+i
%assign i i+1
%endrep