/kernel/trunk/core/sys32.inc |
---|
386,7 → 386,14 |
mov ax, os_data |
mov ds, ax |
mov es, ax |
cmp [com2_mouse_detected],0 |
je old_irq3_handler |
call check_mouse_data_com2 |
jmp p_irq3_1 |
old_irq3_handler: |
mov edi,3 |
call irqhandler |
p_irq3_1: |
restore_ring3_context |
iret |
395,7 → 402,14 |
mov ax, os_data |
mov ds, ax |
mov es, ax |
cmp [com1_mouse_detected],0 |
je old_irq4_handler |
call check_mouse_data_com1 |
jmp p_irq4_1 |
old_irq4_handler: |
mov edi,4 |
call irqhandler |
p_irq4_1: |
restore_ring3_context |
iret |
/kernel/trunk/detect/commouse.inc |
---|
13,6 → 13,20 |
cmp AL,'M' |
jne @f |
mov [com1_mouse_detected],1 |
pusha |
mov eax,4 |
shl eax,2 |
mov [irq_owner+eax],byte 1 |
inc dword [0x2d0000] |
mov edi,[0x2d0000] |
shl edi,4 |
mov [0x2d0000+edi+0],dword 1 |
mov [0x2d0000+edi+4],dword 0x3f0 |
mov [0x2d0000+edi+8],dword 0x3ff |
popa |
mov esi,boot_setmouse_type+22 |
call boot_log |
@@: |
21,6 → 35,20 |
cmp AL,'M' |
jne @f |
mov [com2_mouse_detected],1 |
pusha |
mov eax,3 |
shl eax,2 |
mov [irq_owner+eax],byte 1 |
inc dword [0x2d0000] |
mov edi,[0x2d0000] |
shl edi,4 |
mov [0x2d0000+edi+0],dword 1 |
mov [0x2d0000+edi+4],dword 0x2f0 |
mov [0x2d0000+edi+8],dword 0x2ff |
popa |
mov esi,boot_setmouse_type+44 |
call boot_log |
@@: |
/kernel/trunk/hid/m_com1.inc |
---|
9,8 → 9,8 |
;* ÍÎÂÛÉ ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ * |
;*************************************** |
check_mouse_data_com1: |
cmp [com1_mouse_detected],0 |
je @@EndMouseInterrupt |
; cmp [com1_mouse_detected],0 |
; je @@EndMouseInterrupt |
; Ïðîâåðèòü íàëè÷èå äàííûõ |
mov DX,3F8h ;[COMPortBaseAddr] |
add DX,5 ;xFDh |
/kernel/trunk/hid/m_com2.inc |
---|
9,8 → 9,8 |
;* ÍÎÂÛÉ ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ * |
;*************************************** |
check_mouse_data_com2: |
cmp [com2_mouse_detected],0 |
je @@EndMouseInterrupt_1 |
; cmp [com2_mouse_detected],0 |
; je @@EndMouseInterrupt_1 |
; Ïðîâåðèòü íàëè÷èå äàííûõ |
mov DX,2F8h ;[COMPortBaseAddr] |
add DX,5 ;xFDh |
/kernel/trunk/kernel.asm |
---|
969,12 → 969,12 |
mov [irq_owner+4*13],byte 1 ; math co-pros |
mov [irq_owner+4*14],byte 1 ; ide I |
mov [irq_owner+4*15],byte 1 ; ide II |
movzx eax,byte [0xf604] ; mouse irq |
dec eax |
add eax,mouseirqtable |
movzx eax,byte [eax] |
shl eax,2 |
mov [irq_owner+eax],byte 1 |
; movzx eax,byte [0xf604] ; mouse irq |
; dec eax |
; add eax,mouseirqtable |
; movzx eax,byte [eax] |
; shl eax,2 |
; mov [irq_owner+eax],byte 1 |
; RESERVE PORTS |
984,24 → 984,24 |
mov [0x2d0000+edi+0],dword 1 |
mov [0x2d0000+edi+4],dword 0x0 |
mov [0x2d0000+edi+8],dword 0xff |
cmp [0xf604],byte 2 ; com1 mouse -> 0x3f0-0x3ff |
jne ripl1 |
inc dword [0x2d0000] |
mov edi,[0x2d0000] |
shl edi,4 |
mov [0x2d0000+edi+0],dword 1 |
mov [0x2d0000+edi+4],dword 0x3f0 |
mov [0x2d0000+edi+8],dword 0x3ff |
ripl1: |
cmp [0xf604],byte 3 ; com2 mouse -> 0x2f0-0x2ff |
jne ripl2 |
inc dword [0x2d0000] |
mov edi,[0x2d0000] |
shl edi,4 |
mov [0x2d0000+edi+0],dword 1 |
mov [0x2d0000+edi+4],dword 0x2f0 |
mov [0x2d0000+edi+8],dword 0x2ff |
ripl2: |
; cmp [0xf604],byte 2 ; com1 mouse -> 0x3f0-0x3ff |
; jne ripl1 |
; inc dword [0x2d0000] |
; mov edi,[0x2d0000] |
; shl edi,4 |
; mov [0x2d0000+edi+0],dword 1 |
; mov [0x2d0000+edi+4],dword 0x3f0 |
; mov [0x2d0000+edi+8],dword 0x3ff |
; ripl1: |
; cmp [0xf604],byte 3 ; com2 mouse -> 0x2f0-0x2ff |
; jne ripl2 |
; inc dword [0x2d0000] |
; mov edi,[0x2d0000] |
; shl edi,4 |
; mov [0x2d0000+edi+0],dword 1 |
; mov [0x2d0000+edi+4],dword 0x2f0 |
; mov [0x2d0000+edi+8],dword 0x2ff |
; ripl2: |
popad |
ret |