Subversion Repositories Kolibri OS

Rev

Rev 129 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 129 Rev 384
Line 59... Line 59...
59
        shr al,3
59
        shr al,3
60
        and al,2
60
        and al,2
61
        shr ah,5
61
        shr ah,5
62
        and ah,1
62
        and ah,1
63
        add al,ah
63
        add al,ah
64
        mov    [0xfb40],al
64
        mov    [BTN_DOWN],al
65
        mov    [mouse_active],1
65
        mov    [mouse_active],1
66
; Ïðèáàâèòü ïåðåìåùåíèå ïî X ê êîîðäèíàòå X
66
; Ïðèáàâèòü ïåðåìåùåíèå ïî X ê êîîðäèíàòå X
67
        mov     AL,[FirstByte]
67
        mov     AL,[FirstByte]
68
        shl     AL,6
68
        shl     AL,6
69
        or      AL,[SecondByte]
69
        or      AL,[SecondByte]
70
        cbw
70
        cbw
71
        call    mouse_acceleration_com1
71
        call    mouse_acceleration_com1
72
        add     AX,[0xFB0A]    ;[XCoordinate]
72
        add     AX,[MOUSE_X]    ;[XCoordinate]
73
        ; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè
73
        ; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè
74
        ; ïðàâóþ ãðàíèöó ýêðàíà
74
        ; ïðàâóþ ãðàíèöó ýêðàíà
75
        js      @@X1
75
        js      @@X1
76
        cmp     AX,[0xFE00]   ;ScreenLength
76
        cmp     AX,[ScreenWidth]   ;ScreenLength
77
        jb      @@X2
77
        jb      @@X2
78
        ; Óñòàíîâèòü êîîðäèíàòó X ïî ïðàâîé ãðàíèöå
78
        ; Óñòàíîâèòü êîîðäèíàòó X ïî ïðàâîé ãðàíèöå
79
        mov     AX,[0xFE00]   ;ScreenLength-1
79
        mov     AX,[ScreenWidth]   ;ScreenLength-1
80
        dec     ax
80
        dec     ax
81
        jmp     @@X2
81
        jmp     @@X2
82
@@X1:
82
@@X1:
83
       ; Óñòàíîâèòü êîîðäèíàòó X ïî ëåâîé ãðàíèöå
83
       ; Óñòàíîâèòü êîîðäèíàòó X ïî ëåâîé ãðàíèöå
84
        xor     AX,AX
84
        xor     AX,AX
85
@@X2:
85
@@X2:
86
        mov     [0xFB0A],AX     ;[XCoordinate]
86
        mov     [MOUSE_X],AX     ;[XCoordinate]
87
        ; Ïðèáàâèòü ïåðåìåùåíèå ïî Y ê êîîðäèíàòå Y
87
        ; Ïðèáàâèòü ïåðåìåùåíèå ïî Y ê êîîðäèíàòå Y
88
        mov     AL,[FirstByte]
88
        mov     AL,[FirstByte]
89
        and     AL,00001100b
89
        and     AL,00001100b
90
        shl     AL,4
90
        shl     AL,4
91
        or      AL,[ThirdByte]
91
        or      AL,[ThirdByte]
92
        cbw
92
        cbw
93
        call    mouse_acceleration_com1
93
        call    mouse_acceleration_com1
94
        add     AX,[0xFB0C]   ;[YCoordinate]
94
        add     AX,[MOUSE_Y]   ;[YCoordinate]
95
        ; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè
95
        ; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè
96
        ; íèæíþþ ãðàíèöó ýêðàíà
96
        ; íèæíþþ ãðàíèöó ýêðàíà
97
        js      @@Y1
97
        js      @@Y1
98
        cmp     AX,[0xFE04]  ;ScreenHeigth
98
        cmp     AX,[ScreenHeight]  ;ScreenHeigth
99
        jb      @@Y2
99
        jb      @@Y2
100
        ; Óñòàíîâèòü êîîðäèíàòó X ïî íèæíåé ãðàíèöå
100
        ; Óñòàíîâèòü êîîðäèíàòó X ïî íèæíåé ãðàíèöå
101
        mov     AX,[0xFE04] ;ScreenHeigth-1
101
        mov     AX,[ScreenHeight] ;ScreenHeigth-1
102
        dec     ax
102
        dec     ax
103
        jmp     @@Y2
103
        jmp     @@Y2
104
@@Y1:
104
@@Y1:
105
       ; Óñòàíîâèòü êîîðäèíàòó X ïî âåðõíåé ãðàíèöå
105
       ; Óñòàíîâèòü êîîðäèíàòó X ïî âåðõíåé ãðàíèöå
106
        xor     AX,AX
106
        xor     AX,AX
107
@@Y2:
107
@@Y2:
108
        mov     [0xFB0C],AX     ;[YCoordinate]
108
        mov     [MOUSE_Y],AX     ;[YCoordinate]
109
        mov   eax,[timer_ticks]
109
        mov   eax,[timer_ticks]
110
        mov   [timer_ticks_com],eax
110
        mov   [timer_ticks_com],eax
111
        jmp     @@EndMouseInterrupt
111
        jmp     @@EndMouseInterrupt
Line 112... Line 112...
112
 
112
 
Line 123... Line 123...
123
        mov   eax,[timer_ticks]
123
        mov   eax,[timer_ticks]
124
        sub   eax,[timer_ticks_com]
124
        sub   eax,[timer_ticks_com]
125
        cmp   eax,[mouse_delay]
125
        cmp   eax,[mouse_delay]
126
        pop    eax
126
        pop    eax
127
        ja     @f
127
        ja     @f
128
        shl    ax,1
128
        imul  ax,[mouse_speed_factor]
129
@@:
129
@@:
130
        ret
130
        ret