about summary refs log tree commit diff stats
path: root/tools/iso/kernel.soso/interrupt.asm
diff options
context:
space:
mode:
Diffstat (limited to 'tools/iso/kernel.soso/interrupt.asm')
-rw-r--r--tools/iso/kernel.soso/interrupt.asm133
1 files changed, 0 insertions, 133 deletions
diff --git a/tools/iso/kernel.soso/interrupt.asm b/tools/iso/kernel.soso/interrupt.asm
deleted file mode 100644
index 5610ca55..00000000
--- a/tools/iso/kernel.soso/interrupt.asm
+++ /dev/null
@@ -1,133 +0,0 @@
-; NASM macro
-%macro ISR_ERROR_CODE 1
-  global isr%1
-  isr%1:
-    push dword %1         ; push the interrupt number
-    jmp handleISRCommon
-%endmacro
-
-; NASM macro
-%macro ISR_NO_ERROR_CODE 1
-  global isr%1
-  isr%1:
-    push dword 0          ; push a dummy error code just because to keep struct Registers the same as the above macro
-    push dword %1         ; push the interrupt number
-    jmp handleISRCommon
-%endmacro
-
-
-; NASM macro
-%macro IRQ 2
-  global irq%1
-  irq%1:
-    push dword 0          ; push a dummy error code just because to keep struct Registers the same again
-    push dword %2
-    jmp handleIRQCommon
-%endmacro
-        
-ISR_NO_ERROR_CODE  0
-ISR_NO_ERROR_CODE  1
-ISR_NO_ERROR_CODE  2
-ISR_NO_ERROR_CODE  3
-ISR_NO_ERROR_CODE  4
-ISR_NO_ERROR_CODE  5
-ISR_NO_ERROR_CODE  6
-ISR_NO_ERROR_CODE  7
-ISR_ERROR_CODE     8
-ISR_NO_ERROR_CODE  9
-ISR_ERROR_CODE     10
-ISR_ERROR_CODE     11
-ISR_ERROR_CODE     12
-ISR_ERROR_CODE     13
-ISR_ERROR_CODE     14
-ISR_NO_ERROR_CODE  15
-ISR_NO_ERROR_CODE  16
-ISR_NO_ERROR_CODE  17
-ISR_NO_ERROR_CODE  18
-ISR_NO_ERROR_CODE  19
-ISR_NO_ERROR_CODE  20
-ISR_NO_ERROR_CODE  21
-ISR_NO_ERROR_CODE  22
-ISR_NO_ERROR_CODE  23
-ISR_NO_ERROR_CODE  24
-ISR_NO_ERROR_CODE  25
-ISR_NO_ERROR_CODE  26
-ISR_NO_ERROR_CODE  27
-ISR_NO_ERROR_CODE  28
-ISR_NO_ERROR_CODE  29
-ISR_NO_ERROR_CODE  30
-ISR_NO_ERROR_CODE  31
-ISR_NO_ERROR_CODE  128
-
-; IRQ0 is handled by irqTimer below
-
-IRQ   1,    33
-IRQ   2,    34
-IRQ   3,    35
-IRQ   4,    36
-IRQ   5,    37
-IRQ   6,    38
-IRQ   7,    39
-IRQ   8,    40
-IRQ   9,    41
-IRQ  10,    42
-IRQ  11,    43
-IRQ  12,    44
-IRQ  13,    45
-IRQ  14,    46
-IRQ  15,    47
-
-%macro	SAVE_REGS 0
-        pushad
-        push ds ;those registers are 16 bit but they are pushed as 32 bits here
-        push es
-        push fs
-        push gs
-
-        push ebx
-        mov bx, 0x10 ; load the kernel data segment descriptor
-        mov ds, bx
-        mov es, bx
-        mov fs, bx
-        mov gs, bx
-        pop ebx
-%endmacro
-
-%macro	RESTORE_REGS 0
-        pop gs
-        pop fs
-        pop es
-        pop ds
-        popad
-%endmacro
-
-
-extern handleISR
-
-handleISRCommon:
-    SAVE_REGS
-    call handleISR
-    RESTORE_REGS
-    add esp, 8     ; deallocate the error code and the interrupt number
-    iret           ; pops CS, EIP, EFLAGS and also SS, and ESP if privilege change occurs
-
-extern handleIRQ
-
-
-handleIRQCommon:
-    SAVE_REGS
-    call handleIRQ
-    RESTORE_REGS
-    add esp, 8     ; deallocate the error code and the interrupt number
-    iret           ; pops CS, EIP, EFLAGS and also SS, and ESP if privilege change occurs
-
-extern handleTimerIRQ
-global irqTimer
-irqTimer:           ; this does not have int no and error code in the stack, so there is no "add esp, 8"
-        SAVE_REGS
-        call handleTimerIRQ
-        mov al,0x20
-        out 0x20,al
-        RESTORE_REGS
-        iret
-