From 73bd1e2963a4d4c48eb75fa4e7a243a4eea2298b Mon Sep 17 00:00:00 2001 From: "Marat Zakiyanov (Mario79)" Date: Wed, 5 Sep 2007 21:30:16 +0000 Subject: [PATCH] Function 18/19/5 - emulation mouse button. git-svn-id: svn://kolibrios.org@621 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/docs/sysfuncr.txt | 16 ++++++++++++++++ kernel/trunk/docs/sysfuncs.txt | 16 ++++++++++++++++ kernel/trunk/kernel.asm | 8 +++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/kernel/trunk/docs/sysfuncr.txt b/kernel/trunk/docs/sysfuncr.txt index 422fae4191..2615d24e28 100644 --- a/kernel/trunk/docs/sysfuncr.txt +++ b/kernel/trunk/docs/sysfuncr.txt @@ -980,6 +980,22 @@ dd 533 * edx = [координата по оси x]*65536 + [координата по оси y] Возвращаемое значение: * функция не возвращает значения + +-------- Подподфункция 5 - эмуляция кнопок мыши. -------- +Параметры: + * eax = 18 - номер функции + * ebx = 19 - номер подфункции + * ecx = 5 - номер подподфункции + * edx = информация о эмулируемых кнопках мыши: + * бит 0 установлен = левая кнопка нажата + * бит 1 установлен = правая кнопка нажата + * бит 2 установлен = средняя кнопка нажата + * бит 3 установлен = 4-я кнопка нажата + * бит 4 установлен = 5-я кнопка нажата + * прочие биты сброшены +Возвращаемое значение: + * функция не возвращает значения + Замечания: * Рекомендуемая скорость мыши (в подподфункции 1) от 1 до 9. Устанавливаемая величина не проверяется кодом ядра, поэтому diff --git a/kernel/trunk/docs/sysfuncs.txt b/kernel/trunk/docs/sysfuncs.txt index ffeaca2a1f..0a5e57de4b 100644 --- a/kernel/trunk/docs/sysfuncs.txt +++ b/kernel/trunk/docs/sysfuncs.txt @@ -977,6 +977,22 @@ Parameters: * edx = [coordinate on axis x]*65536 + [coordinate on axis y] Returned value: * function does not return value + +-------- Subsubfunction 5 - emulation mouse button. -------- +Parameters: + * eax = 18 - function number + * ebx = 19 - subfunction number + * ecx = 5 - subsubfunction number + * edx = information about the emulated mouse buttons: + * bit 0 is set = left button is pressed + * bit 1 is set = right button is pressed + * bit 2 is set = middle button is pressed + * bit 3 is set = 4th button is pressed + * bit 4 is set = 5th button is pressed + * other bits are cleared +Returned value: + * function does not return value + Remarks: * It is recommended to set speed of the mouse (in subsubfunction 1) from 1 up to 9. The installed value is not inspected by the kernel diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index 5ae4e99f0d..a0b65db173 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -2271,11 +2271,17 @@ sysfn_mouse_acceleration: ; 18.19 = set/get mouse features ret .set_pointer_position: cmp ebx,4 ; set mouse pointer position - jnz .end + jnz .set_mouse_button mov [MOUSE_Y],cx ;y ror ecx,16 mov [MOUSE_X],cx ;x rol ecx,16 + ret + .set_mouse_button: + cmp ebx,5 ; set mouse button features + jnz .end + mov [BTN_DOWN],cl + mov [mouse_active],1 .end: ret