Rev 33 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 33 | Rev 120 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | MouseByteNumber_2 DB 0 |
2 | MouseByteNumber_2 DB 0 |
3 | ; Òðåõáàéòîâàÿ ñòðóêòóðà äàííûõ, ïåðåäàâàåìàÿ ìûøüþ |
3 | ; Òðåõáàéòîâàÿ ñòðóêòóðà äàííûõ, ïåðåäàâàåìàÿ ìûøüþ |
4 | FirstByte_2 DB 0 |
4 | FirstByte_2 DB 0 |
5 | SecondByte_2 DB 0 |
5 | SecondByte_2 DB 0 |
6 | ThirdByte_2 DB 0 |
6 | ThirdByte_2 DB 0 |
- | 7 | timer_ticks_ps2 dd 0 |
|
Line 7... | Line 8... | ||
7 | 8 | ||
8 | ;************************************** |
9 | ;************************************** |
9 | ;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ PS/2 * |
10 | ;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÌÛØÈ PS/2 * |
10 | ;************************************** |
11 | ;************************************** |
Line 51... | Line 52... | ||
51 | jz @@M0 |
52 | jz @@M0 |
52 | mov AH,0FFh |
53 | mov AH,0FFh |
53 | ; Çàíåñòè â AL ìëàäøèé áàéò |
54 | ; Çàíåñòè â AL ìëàäøèé áàéò |
54 | @@M0: |
55 | @@M0: |
55 | mov AL,[SecondByte_2] |
56 | mov AL,[SecondByte_2] |
56 | shl ax,1 |
57 | call mouse_acceleration_ps2 |
57 | ; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû |
58 | ; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû |
58 | ; êóðñîðà ïî X |
59 | ; êóðñîðà ïî X |
59 | add AX,[0xFB0A] ;[XCoordinate] |
60 | add AX,[0xFB0A] ;[XCoordinate] |
60 | cmp AX,0 |
61 | cmp AX,0 |
61 | jge @@M1 |
62 | jge @@M1 |
Line 77... | Line 78... | ||
77 | jz @@M3 |
78 | jz @@M3 |
78 | mov AH,0FFh |
79 | mov AH,0FFh |
79 | ; Çàíåñòè â AL ìëàäøèé áàéò |
80 | ; Çàíåñòè â AL ìëàäøèé áàéò |
80 | @@M3: |
81 | @@M3: |
81 | mov AL,[ThirdByte_2] |
82 | mov AL,[ThirdByte_2] |
82 | shl ax,1 |
83 | call mouse_acceleration_ps2 |
83 | ; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû êóðñîðà |
84 | ; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû êóðñîðà |
84 | ; ïî Y (Y-êîîðäèíàòà ìûøè PS/2 íàïðàâëåíà |
85 | ; ïî Y (Y-êîîðäèíàòà ìûøè PS/2 íàïðàâëåíà |
85 | ; ïðîòèâîïîëîæíî ýêðàííîé) |
86 | ; ïðîòèâîïîëîæíî ýêðàííîé) |
86 | neg AX |
87 | neg AX |
87 | add AX,[0xFB0C] ;[YCoordinate] |
88 | add AX,[0xFB0C] ;[YCoordinate] |
Line 96... | Line 97... | ||
96 | dec ax |
97 | dec ax |
97 | @@M5: |
98 | @@M5: |
98 | mov [0xFB0C],AX ;[YCoordinate] |
99 | mov [0xFB0C],AX ;[YCoordinate] |
Line 99... | Line 100... | ||
99 | 100 | ||
- | 101 | ; Ïîêàçàòü êóðñîð â íîâîé ïîçèöèè |
|
- | 102 | mov eax,[timer_ticks] |
|
100 | ; Ïîêàçàòü êóðñîð â íîâîé ïîçèöèè |
103 | mov [timer_ticks_ps2],eax |
Line 101... | Line 104... | ||
101 | jmp @@EndMouseInterrupt_2 |
104 | jmp @@EndMouseInterrupt_2 |
102 | 105 | ||
103 | ; Îáíàðóæåí ñáîé â ïîðÿäêå ïåðåäà÷è èíôîðìàöèè îò ìûøè |
106 | ; Îáíàðóæåí ñáîé â ïîðÿäêå ïåðåäà÷è èíôîðìàöèè îò ìûøè |
104 | @@Error_2: |
107 | @@Error_2: |
105 | mov [MouseByteNumber_2],0 |
108 | mov [MouseByteNumber_2],0 |
106 | ; Íîðìàëüíîå çàâåðøåíèå ïðåðûâàíèÿ |
109 | ; Íîðìàëüíîå çàâåðøåíèå ïðåðûâàíèÿ |
107 | @@EndMouseInterrupt_2: |
110 | @@EndMouseInterrupt_2: |
Line -... | Line 111... | ||
- | 111 | call ready_for_next_irq_1 |
|
- | 112 | ret |
|
- | 113 | ||
- | 114 | mouse_acceleration_ps2: |
|
- | 115 | push eax |
|
- | 116 | mov eax,[timer_ticks] |
|
- | 117 | sub eax,[timer_ticks_ps2] |
|
- | 118 | cmp eax,[mouse_delay] |
|
- | 119 | pop eax |
|
- | 120 | ja @f |
|
108 | call ready_for_next_irq_1 |
121 | imul ax,[mouse_speed_factor] |
109 | ret |
122 | @@: |
110 | 123 | ret |
|
111 | ;*********************************************** |
124 | ;*********************************************** |
112 | ;* ÎÆÈÄÀÍÈÅ Î×ÈÑÒÊÈ ÂÕÎÄÍÎÃÎ ÁÓÔÅÐÀ I8042 * |
125 | ;* ÎÆÈÄÀÍÈÅ Î×ÈÑÒÊÈ ÂÕÎÄÍÎÃÎ ÁÓÔÅÐÀ I8042 * |