Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 380 → Rev 381

/kernel/trunk/hid/keyboard.inc
267,12 → 267,12
.scancode:
mov bl, ch
.dowrite:
movzx eax,byte[0xF400]
movzx eax,byte[KEY_COUNT]
cmp al,120
jae .exit.irq1
inc eax
mov [0xF400],al
mov [0xF400+eax],bl
mov [KEY_COUNT],al
mov [KEY_COUNT+eax],bl
 
.exit.irq1:
mov [check_idle_semaphore],5
/kernel/trunk/hid/m_com1.inc
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
/kernel/trunk/hid/m_com2.inc
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_1]
69,14 → 69,14
or AL,[SecondByte_1]
cbw
call mouse_acceleration_com2
add AX,[0xFB0A] ;[XCoordinate]
add AX,[MOUSE_X] ;[XCoordinate]
; Êóðñîð íå äîëæåí âûõîäèòü çà ëåâóþ èëè
; ïðàâóþ ãðàíèöó ýêðàíà
js @@X1_1
cmp AX,[0xFE00] ;ScreenLength
cmp AX,[ScreenWidth] ;ScreenLength
jb @@X2_1
; Óñòàíîâèòü êîîðäèíàòó X ïî ïðàâîé ãðàíèöå
mov AX,[0xFE00] ;ScreenLength-1
mov AX,[ScreenWidth] ;ScreenLength-1
dec ax
jmp @@X2_1
@@X1_1:
83,7 → 83,7
; Óñòàíîâèòü êîîðäèíàòó X ïî ëåâîé ãðàíèöå
xor AX,AX
@@X2_1:
mov [0xFB0A],AX ;[XCoordinate]
mov [MOUSE_X],AX ;[XCoordinate]
; Ïðèáàâèòü ïåðåìåùåíèå ïî Y ê êîîðäèíàòå Y
mov AL,[FirstByte_1]
and AL,00001100b
91,14 → 91,14
or AL,[ThirdByte_1]
cbw
call mouse_acceleration_com2
add AX,[0xFB0C] ;[YCoordinate]
add AX,[MOUSE_Y] ;[YCoordinate]
; Êóðñîð íå äîëæåí âûõîäèòü çà âåðõíþþ èëè
; íèæíþþ ãðàíèöó ýêðàíà
js @@Y1_1
cmp AX,[0xFE04] ;ScreenHeigth
cmp AX,[ScreenHeight] ;ScreenHeigth
jb @@Y2_1
; Óñòàíîâèòü êîîðäèíàòó X ïî íèæíåé ãðàíèöå
mov AX,[0xFE04] ;ScreenHeigth-1
mov AX,[ScreenHeight] ;ScreenHeigth-1
dec ax
jmp @@Y2_1
@@Y1_1:
105,7 → 105,7
; Óñòàíîâèòü êîîðäèíàòó X ïî âåðõíåé ãðàíèöå
xor AX,AX
@@Y2_1:
mov [0xFB0C],AX ;[YCoordinate]
mov [MOUSE_Y],AX ;[YCoordinate]
mov eax,[timer_ticks]
mov [timer_ticks_com_1],eax
jmp @@EndMouseInterrupt_1
/kernel/trunk/hid/m_ps2.inc
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 ;äàííûå ïîñòóïèëè?
/kernel/trunk/hid/mousedrv.inc
43,8 → 43,8
cmp [set_hw_cursor], 0
jz @F
pushad
movzx eax,word [0xfb4a]
movzx ebx,word [0xfb4c]
movzx eax,word [X_UNDER]
movzx ebx,word [Y_UNDER]
stdcall [hw_restore], eax, ebx
popad
ret
54,8 → 54,8
xor edx,edx
align 4
mres:
movzx eax,word [0xfb4a]
movzx ebx,word [0xfb4c]
movzx eax,word [X_UNDER]
movzx ebx,word [Y_UNDER]
add eax,ecx
add ebx,edx
push ecx
90,14 → 90,14
jz @F
pushad
 
mov [0xfb4a],ax
mov [0xfb4c],bx
movzx eax,word [0xfb0c]
movzx ebx,word [0xfb0a]
mov [X_UNDER],ax
mov [Y_UNDER],bx
movzx eax,word [MOUSE_Y]
movzx ebx,word [MOUSE_X]
push eax
push ebx
 
mov ecx, [0xfe00]
mov ecx, [ScreenWidth]
inc ecx
mul ecx
movzx edx, byte [display_data+ebx+eax]
123,8 → 123,8
@@:
pushad
; save & draw
mov [0xfb4a],ax
mov [0xfb4c],bx
mov [X_UNDER],ax
mov [Y_UNDER],bx
push eax
push ebx
mov ecx,0
141,7 → 141,7
add ebx,edx
push ecx
call getpixel
mov [0xfb30],ecx
mov [COLOR_TEMP],ecx
pop ecx
mov eax,edx
shl eax,6
148,7 → 148,7
shl ecx,2
add eax,ecx
add eax,mouseunder
mov ebx,[0xfb30]
mov ebx,[COLOR_TEMP]
mov [eax],ebx
pop ecx
mov edi,edx ; y cycle
157,13 → 157,13
mov esi, edi
add edi, esi
add edi, esi ; *3
add edi,[0xf200] ; we have our str address
add edi,[MOUSE_PICTURE] ; we have our str address
mov esi, edi
add esi, 16*24*3
push ecx
mov ecx, [0xfb30]
mov ecx, [COLOR_TEMP]
call combine_colors
mov [0xfb10], ecx
mov [MOUSE_COLOR_MEM], ecx
pop ecx
pop edx
pop ecx
172,7 → 172,7
add eax,ecx ; we have x coord+cycle
add ebx,edx ; and y coord+cycle
push ecx
mov ecx, [0xfb10]
mov ecx, [MOUSE_COLOR_MEM]
mov edi, 1
call [putpixel]
pop ecx
260,7 → 260,7
 
 
__sys_disable_mouse:
cmp dword [0xf204],dword 0
cmp dword [MOUSE_VISIBLE],dword 0
je @f
ret
@@:
270,9 → 270,9
mov edx,[CURRENT_TASK]
shl edx,5
add edx,window_data
movzx eax, word [0xfb0a]
movzx ebx, word [0xfb0c]
mov ecx,[0xfe00]
movzx eax, word [MOUSE_X]
movzx ebx, word [MOUSE_Y]
mov ecx,[ScreenWidth]
inc ecx
imul ecx,ebx
add ecx,eax
284,7 → 284,7
movzx ebx, byte [ecx+16]
cmp eax,ebx
je yes_mouse_disable
mov ebx,[0xfe00]
mov ebx,[ScreenWidth]
inc ebx
imul ebx,10
add ecx,ebx
299,8 → 299,8
mov edx,[CURRENT_TASK]
shl edx,5
add edx,window_data
movzx eax, word [0xfb0a]
movzx ebx, word [0xfb0c]
movzx eax, word [MOUSE_X]
movzx ebx, word [MOUSE_Y]
mov ecx,[edx+0] ; mouse inside the area ?
add eax,14
cmp eax,ecx
318,12 → 318,12
cmp ebx,ecx
jg no_mouse_disable
disable_m:
cmp dword [0xf204],dword 0
cmp dword [MOUSE_VISIBLE],dword 0
jne no_mouse_disable
cli
call draw_mouse_under
sti
mov [0xf204],dword 1
mov [MOUSE_VISIBLE],dword 1
no_mouse_disable:
popad
ret
345,11 → 345,11
mov [MouseTickCounter],eax
pop eax
pushad
cmp dword [0xf204],dword 0 ; mouse visible ?
cmp dword [MOUSE_VISIBLE],dword 0 ; mouse visible ?
je chms00
mov [0xf204], dword 0
movzx ebx,word [0xfb0c]
movzx eax,word [0xfb0a]
mov [MOUSE_VISIBLE], dword 0
movzx ebx,word [MOUSE_Y]
movzx eax,word [MOUSE_X]
cli
call save_draw_mouse
sti
357,10 → 357,10
popad
ret
chms00:
movzx ecx,word [0xfb4a]
movzx edx,word [0xfb4c]
movzx ebx,word [0xfb0c]
movzx eax,word [0xfb0a]
movzx ecx,word [X_UNDER]
movzx edx,word [Y_UNDER]
movzx ebx,word [MOUSE_Y]
movzx eax,word [MOUSE_X]
cmp eax,ecx
jne redrawmouse
cmp ebx,edx