61,7 → 61,7 |
shr ah,5 |
and ah,1 |
add al,ah |
mov [0xfb40],al |
mov [BTN_DOWN],al |
mov [mouse_active],1 |
; Ïðèáàâèòü ïåðåìåùåíèå ïî X ê êîîðäèíàòå X |
mov AL,[FirstByte] |
69,14 → 69,14 |
or AL,[SecondByte] |
cbw |
call mouse_acceleration_com1 |
add AX,[0xFB0A] ;[XCoordinate] |
add AX,[MOUSE_X] ;[XCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè |
; ïðàâóþ ãðàíèöó ýêðàíà |
js @@X1 |
cmp AX,[0xFE00] ;ScreenLength |
cmp AX,[ScreenWidth] ;ScreenLength |
jb @@X2 |
; Óñòàíîâèòü êîîðäèíàòó X ïî ïðàâîé ãðàíèöå |
mov AX,[0xFE00] ;ScreenLength-1 |
mov AX,[ScreenWidth] ;ScreenLength-1 |
dec ax |
jmp @@X2 |
@@X1: |
83,7 → 83,7 |
; Óñòàíîâèòü êîîðäèíàòó X ïî ëåâîé ãðàíèöå |
xor AX,AX |
@@X2: |
mov [0xFB0A],AX ;[XCoordinate] |
mov [MOUSE_X],AX ;[XCoordinate] |
; Ïðèáàâèòü ïåðåìåùåíèå ïî Y ê êîîðäèíàòå Y |
mov AL,[FirstByte] |
and AL,00001100b |
91,14 → 91,14 |
or AL,[ThirdByte] |
cbw |
call mouse_acceleration_com1 |
add AX,[0xFB0C] ;[YCoordinate] |
add AX,[MOUSE_Y] ;[YCoordinate] |
; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè |
; íèæíþþ ãðàíèöó ýêðàíà |
js @@Y1 |
cmp AX,[0xFE04] ;ScreenHeigth |
cmp AX,[ScreenHeight] ;ScreenHeigth |
jb @@Y2 |
; Óñòàíîâèòü êîîðäèíàòó X ïî íèæíåé ãðàíèöå |
mov AX,[0xFE04] ;ScreenHeigth-1 |
mov AX,[ScreenHeight] ;ScreenHeigth-1 |
dec ax |
jmp @@Y2 |
@@Y1: |
105,7 → 105,7 |
; Óñòàíîâèòü êîîðäèíàòó X ïî âåðõíåé ãðàíèöå |
xor AX,AX |
@@Y2: |
mov [0xFB0C],AX ;[YCoordinate] |
mov [MOUSE_Y],AX ;[YCoordinate] |
mov eax,[timer_ticks] |
mov [timer_ticks_com],eax |
jmp @@EndMouseInterrupt |