17,9 → 17,6 |
align 4 |
proc attach_int_handler stdcall, irq:dword, handler:dword, access_rights:dword |
|
pushfd |
cli |
|
push ebx |
|
mov ebx, [irq] ;irq num |
49,12 → 46,10 |
stdcall enable_irq, [irq] |
pop ebx |
mov eax, 1 |
popfd |
ret |
.err: |
pop ebx |
xor eax, eax |
popfd |
ret |
endp |
|
105,7 → 100,7 |
jmp .main |
} |
|
irq_serv_h 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15 |
irq_serv_h 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12 |
|
; I don`t known how to use IRQ_RESERVE |
if IRQ_RESERVE > 16 |
123,26 → 118,6 |
cmp [v86_irqhooks+eax*8], 0 |
jnz v86_irq |
|
cmp al, 6 |
jnz @f |
push eax |
call [fdc_irq_func] |
pop eax |
@@: |
|
cmp al, 14 |
jnz @f |
push eax |
call [irq14_func] |
pop eax |
@@: |
cmp al, 15 |
jnz @f |
push eax |
call [irq15_func] |
pop eax |
@@: |
|
mov ebx, [irq_tab+eax*4] |
test ebx, ebx |
jz .exit |