42,7 → 42,7 |
; Çàïèñàòü íîâîå çíà÷åíèå áàéòà ñîñòîÿíèÿ êíîïîê |
mov al,[FirstByte_2] ;[0xfb01] |
and eax,3 |
mov [0xfb40],al |
mov [BTN_DOWN],al |
mov [mouse_active],1 |
; Âû÷èñëèòü íîâóþ X-êîîðäèíàòó êóðñîðà |
; Çàíåñòè â AX ïåðåìåùåíèå ïî X |
57,18 → 57,18 |
call mouse_acceleration_ps2 |
; Âû÷èñëèòü íîâîå çíà÷åíèå êîîðäèíàòû |
; êóðñîðà ïî X |
add AX,[0xFB0A] ;[XCoordinate] |
add AX,[MOUSE_X] ;[XCoordinate] |
cmp AX,0 |
jge @@M1 |
mov AX,0 |
jmp @@M2 |
@@M1: |
cmp AX,[0xFE00] ;ScreenLength |
cmp AX,[ScreenWidth] ;ScreenLength |
jl @@M2 |
mov AX,[0xFE00] ;ScreenLength-1 |
mov AX,[ScreenWidth] ;ScreenLength-1 |
dec ax |
@@M2: |
mov [0xFB0A],AX ;[XCoordinate] |
mov [MOUSE_X],AX ;[XCoordinate] |
|
; Âû÷èñëÿåì íîâóþ Y-êîîðäèíàòó êóðñîðà |
; Çàíåñòè â AX ïåðåìåùåíèå ïî Y |
85,18 → 85,18 |
; ïî Y (Y-êîîðäèíàòà ìûøè PS/2 íàïðàâëåíà |
; ïðîòèâîïîëîæíî ýêðàííîé) |
neg AX |
add AX,[0xFB0C] ;[YCoordinate] |
add AX,[MOUSE_Y] ;[YCoordinate] |
cmp AX,0 |
jge @@M4 |
mov AX,0 |
jmp @@M5 |
@@M4: |
cmp AX,[0xFE04] ;ScreenHeigth |
cmp AX,[ScreenHeight] ;ScreenHeigth |
jl @@M5 |
mov AX,[0xFE04] ;ScreenHeigth-1 |
mov AX,[ScreenHeight] ;ScreenHeigth-1 |
dec ax |
@@M5: |
mov [0xFB0C],AX ;[YCoordinate] |
mov [MOUSE_Y],AX ;[YCoordinate] |
|
; Ïîêàçàòü êóðñîð â íîâîé ïîçèöèè |
mov eax,[timer_ticks] |
106,7 → 106,7 |
; Îáíàðóæåí ñáîé â ïîðÿäêå ïåðåäà÷è èíôîðìàöèè îò ìûøè |
@@Error_2: |
mov [MouseByteNumber_2],0 |
; Íîðìàëüíîå çàâåðøåíèå ïðåðûâàíèÿ |
; Íîðìàëüíîå çàâåðøåíèå ïðåðûâàíè |
@@EndMouseInterrupt_2: |
call ready_for_next_irq_1 |
ret |
129,7 → 129,7 |
;*********************************************** |
Wait8042BufferEmpty: |
; push CX |
; mov CX,0FFFFh ;çàäàòü ÷èñëî öèêëîâ îæèäàíèÿ |
; mov CX,0FFFFh ;çàäàòü ÷èñëî öèêëîâ îæèäàíè |
;@@kb: |
; in AL,64h ;ïîëó÷èòü ñòàòóñ |
; test AL,10b ;áóôåð i8042 ñâîáîäåí? |
151,7 → 151,7 |
;*************************************** |
WaitMouseData: |
; push CX |
; mov CX,0FFFFh ;çàäàòü ÷èñëî öèêëîâ îæèäàíèÿ |
; mov CX,0FFFFh ;çàäàòü ÷èñëî öèêëîâ îæèäàíè |
;@@mouse: |
; in AL,64h ;îïðîñèòü ðåãèñòð ñòàòóñà |
; test AL,100000b ;äàííûå ïîñòóïèëè? |