/kernel/trunk/hid/m_com1.inc |
---|
4,7 → 4,7 |
FirstByte DB 0 |
SecondByte DB 0 |
ThirdByte DB 0 |
timer_ticks_com dd 0 |
;*************************************** |
;* ÍÎÂÛÉ ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ * |
;*************************************** |
68,7 → 68,7 |
shl AL,6 |
or AL,[SecondByte] |
cbw |
shl ax,1 |
call mouse_acceleration_com1 |
add AX,[0xFB0A] ;[XCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè |
; ïðàâóþ ãðàíèöó ýêðàíà |
90,7 → 90,7 |
shl AL,4 |
or AL,[ThirdByte] |
cbw |
shl ax,1 |
call mouse_acceleration_com1 |
add AX,[0xFB0C] ;[YCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè |
; íèæíþþ ãðàíèöó ýêðàíà |
106,6 → 106,8 |
xor AX,AX |
@@Y2: |
mov [0xFB0C],AX ;[YCoordinate] |
mov eax,[timer_ticks] |
mov [timer_ticks_com],eax |
jmp @@EndMouseInterrupt |
@@Error: |
116,3 → 118,13 |
call ready_for_next_irq |
ret |
mouse_acceleration_com1: |
push eax |
mov eax,[timer_ticks] |
sub eax,[timer_ticks_com] |
cmp eax,[mouse_delay] |
pop eax |
ja @f |
shl ax,1 |
@@: |
ret |
/kernel/trunk/hid/m_com2.inc |
---|
4,7 → 4,7 |
FirstByte_1 DB 0 |
SecondByte_1 DB 0 |
ThirdByte_1 DB 0 |
timer_ticks_com_1 dd 0 |
;*************************************** |
;* ÍÎÂÛÉ ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ * |
;*************************************** |
68,7 → 68,7 |
shl AL,6 |
or AL,[SecondByte_1] |
cbw |
shl ax,1 |
call mouse_acceleration_com2 |
add AX,[0xFB0A] ;[XCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè |
; ïðàâóþ ãðàíèöó ýêðàíà |
90,7 → 90,7 |
shl AL,4 |
or AL,[ThirdByte_1] |
cbw |
shl ax,1 |
call mouse_acceleration_com2 |
add AX,[0xFB0C] ;[YCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè |
; íèæíþþ ãðàíèöó ýêðàíà |
106,6 → 106,8 |
xor AX,AX |
@@Y2_1: |
mov [0xFB0C],AX ;[YCoordinate] |
mov eax,[timer_ticks] |
mov [timer_ticks_com_1],eax |
jmp @@EndMouseInterrupt_1 |
@@Error_1: |
116,3 → 118,13 |
call ready_for_next_irq |
ret |
mouse_acceleration_com2: |
push eax |
mov eax,[timer_ticks] |
sub eax,[timer_ticks_com_1] |
cmp eax,[mouse_delay] |
pop eax |
ja @f |
shl ax,1 |
@@: |
ret |
/kernel/trunk/hid/m_ps2.inc |
---|
4,6 → 4,7 |
FirstByte_2 DB 0 |
SecondByte_2 DB 0 |
ThirdByte_2 DB 0 |
timer_ticks_ps2 dd 0 |
;************************************** |
;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ PS/2 * |
53,7 → 54,7 |
; Çàíåñòè â AL ìëàäøèé áàéò |
@@M0: |
mov AL,[SecondByte_2] |
shl ax,1 |
call mouse_acceleration_ps2 |
; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû |
; êóðñîðà ïî X |
add AX,[0xFB0A] ;[XCoordinate] |
79,7 → 80,7 |
; Çàíåñòè â AL ìëàäøèé áàéò |
@@M3: |
mov AL,[ThirdByte_2] |
shl ax,1 |
call mouse_acceleration_ps2 |
; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû êóðñîðà |
; ïî Y (Y-êîîðäèíàòà ìûøè PS/2 íàïðàâëåíà |
; ïðîòèâîïîëîæíî ýêðàííîé) |
98,6 → 99,8 |
mov [0xFB0C],AX ;[YCoordinate] |
; Ïîêàçàòü êóðñîð â íîâîé ïîçèöèè |
mov eax,[timer_ticks] |
mov [timer_ticks_ps2],eax |
jmp @@EndMouseInterrupt_2 |
; Îáíàðóæåí ñáîé â ïîðÿäêå ïåðåäà÷è èíôîðìàöèè îò ìûøè |
108,6 → 111,16 |
call ready_for_next_irq_1 |
ret |
mouse_acceleration_ps2: |
push eax |
mov eax,[timer_ticks] |
sub eax,[timer_ticks_ps2] |
cmp eax,[mouse_delay] |
pop eax |
ja @f |
imul ax,[mouse_speed_factor] |
@@: |
ret |
;*********************************************** |
;* ÎÆÈÄÀÍÈÅ Î×ÈÑÒÊÈ ÂÕÎÄÍÎÃÎ ÁÓÔÅÐÀ I8042 * |
;* Ïðè âûõîäå èç ïðîöåäóðû: * |
/kernel/trunk/hid/mousedrv.inc |
---|
16,6 → 16,9 |
mousedata dd 0x0 |
endg |
mouse_delay dd 10 |
mouse_speed_factor dw 3 |
include 'm_ps2.inc' |
include 'm_com1.inc' |
include 'm_com2.inc' |