/kernel/trunk/core/apic.inc |
---|
371,6 → 371,33 |
ret |
endp |
proc disable_irq stdcall, irq_line:dword |
mov ebx, [irq_line] |
cmp [irq_mode], IRQ_APIC |
je .APIC |
mov edx, 0x21 |
cmp ebx, 8 |
jb @F |
mov edx, 0xA1 |
sub ebx, 8 |
@@: |
in al, dx |
bts eax, ebx |
out dx, al |
ret |
.APIC: |
shl ebx, 1 |
add ebx, 0x10 |
mov eax, ebx |
call IOAPIC_read |
or eax, 0x10000; bit 16 |
xchg eax, ebx |
call IOAPIC_write |
ret |
endp |
align 4 |
pci_irq_fixup: |
/kernel/trunk/hid/keyboard.inc |
---|
359,9 → 359,6 |
xor [kb_state], eax |
xor [kb_lights], bl |
push ecx |
call set_lights |
pop ecx |
.writekey: |
pushad |
; test for system hotkeys |
495,10 → 492,12 |
ret |
ps2_set_lights: |
stdcall disable_irq, 1 |
mov al, 0xED |
call kb_write |
mov al, [esp+8] |
call kb_write |
stdcall enable_irq, 1 |
ret 8 |
;// mike.dld ] |