;=----------------------------------------------------------------------------=; ; GNU GPL OS/K ; ; ; ; Desc: Interrupt Descriptor Table related functions ; ; ; ; ; ; Copyright © 2018-2019 The OS/K Team ; ; ; ; This file is part of OS/K. ; ; ; ; OS/K is free software: you can redistribute it and/or modify ; ; it under the terms of the GNU General Public License as published by ; ; the Free Software Foundation, either version 3 of the License, or ; ; (at your option) any later version. ; ; ; ; OS/K is distributed in the hope that it will be useful, ; ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; ; GNU General Public License for more details. ; ; ; ; You should have received a copy of the GNU General Public License ; ; along with OS/K. If not, see . ; ;=----------------------------------------------------------------------------=; %include "kaleid/kernel/cpu/isr.inc" global idtInit extern idtPtr extern isrHandlerPrint ;; ;; Loads the IDT ;; idtInit: lidt [idtPtr] ret ;; ;; ISR handler ;; isrHandler: pushAll mov ax, ds push rax mov ax, 0x10 mov ds, ax mov es, ax mov fs, ax mov gs, ax call isrHandlerPrint pop rbx mov ds, bx mov es, bx mov fs, bx mov gs, bx popAll add rsp, 8 ;sti iretq ;; Divide Error Fault IsrWithoutErrCode 0 ;; Debug Exception Fault/trap IsrWithoutErrCode 1 ;; NMI Interrupt IsrWithoutErrCode 2 ;; Breakpoint Trap IsrWithoutErrCode 3 ;; Overflow Trap IsrWithoutErrCode 4 ;; Bound Range Exceeded Fault IsrWithoutErrCode 5 ;; Invalid Opcode Fault IsrWithoutErrCode 6 ;; Device Not Available or No Math Coprocessor Fault IsrWithoutErrCode 7 ;; Coprocessor Segment Overrun Fault IsrWithoutErrCode 9 ;; x87 FPU Floating Point or Math Fault IsrWithoutErrCode 16 ;; Alignment Check Fault IsrWithoutErrCode 17 ;; Machine Check Abort IsrWithoutErrCode 18 ;; SIMD Floating Point Fault IsrWithoutErrCode 19 ;; Virtualization Exception Fault IsrWithoutErrCode 20 ;; Double Fault Abort IsrWithErrCode 8 ;; Invalid TSS Fault IsrWithErrCode 10 ;; Segment Not Present Fault IsrWithErrCode 11 ;; Stack Segment Fault IsrWithErrCode 12 ;; General Protection Fault IsrWithErrCode 13 ;; Page Fault IsrWithErrCode 14