Subversion Repositories Kolibri OS

Rev

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    *