foo
[ld45_start_nothing] / src / intr.asm
index 0c8acf7..58ef37f 100644 (file)
@@ -40,14 +40,29 @@ set_intr:
        ; selector (kcode:1) goes to the second dword of the descriptor
        mov dword [ebx + 4], 08h
 
+       ; install dummy interrupt handlers for all IRQ vectors
+%assign i 0
+%rep 8
+       set_irq_vector i, dummy_intr_pic1
+       set_irq_vector i+8, dummy_intr_pic2
+%assign i i+1
+%endrep
+
        pop ebx
        pop ebp
        ret
 
-PIC1_CMD equ 20h
-PIC1_DATA equ 21h
-PIC2_CMD equ 0a0h
-PIC2_DATA equ 0a1h
+dummy_intr_pic1:
+       push eax
+       end_of_irq 0
+       pop eax
+       iret
+
+dummy_intr_pic2:
+       push eax
+       end_of_irq 8
+       pop eax
+       iret
 
 ; PIC initialization command word 1 bits
 ICW1_ICW4_NEEDED       equ 01h
@@ -61,8 +76,6 @@ ICW4_AUTO_EOI         equ 02h
 ICW4_BUF_SLAVE         equ 08h
 ICW4_BUF_MASTER                equ 0ch
 ICW4_SPECIAL           equ 10h
-; PIC operation command word 2 bits
-OCW2_EOI               equ 20h
 
 init_pic:
        ; send ICW1 saying we'll follow with ICW4 later on