Board.KolibriOS.org
http://board.kolibrios.org/

madmouse
http://board.kolibrios.org/viewtopic.php?f=42&t=1732
Page 1 of 2

Author:  popovpa [ Fri May 06, 2011 11:00 am ]
Post subject:  madmouse

Здравствуйте!

Хочу выразить огромную благодарность Sourcerer, без его кода программы бы не было!

Описание: при достижении края экрана, левого или правого, курсор "перескакивает" на противоположный край, очень удобно у кого тачпад.

Т.к. это моя первая программа для Колибри да и вообще первая программа на ассемблере, прошу не бить :)

В архиве программа и исходник.

Attachments:
madmouse.7z [1.69 KiB]
Downloaded 248 times

Author:  art_zh [ Fri May 06, 2011 11:40 am ]
Post subject:  Re: madmouse

Очень хороший код, так держать!
И с комментариями всё в порядке - программа отлично читается.

Теперь попробуй запустить одновременно 2 (лучше 3) раза эту программу - нет будет ли между ними конфликта ?
И еще надо продумать как удобнее выключать этот режим (иногда нужна "твёрдая" граница экрана).
Может повесить какую-нибудь кнопку на панель задач?

Author:  popovpa [ Fri May 06, 2011 1:25 pm ]
Post subject:  Re: madmouse

Я вообще считаю что этот функционал надо встроить в драйвер мышки, и уже от туда включать или выключать, просто реально удобно и когда привыкаешь садишься за чужой компьютер так этого не хватает...

Надо попробовать, я как-то не думал над тем что кому-то захочется запустить несколько экземпляров...:)

В программе используется 1 переменная, можно ли от неё как-то избавиться, например хранить данные в стеке? Что можно посоветовать, думаю что 1 переменная на такую программу слишком расточительно :)

Author:  Albom [ Fri May 06, 2011 3:11 pm ]
Post subject:  Re: madmouse

На панель задач сейчас лучше ничего не навешивать (я имею в виду кнопки). Код там и так запутанный... Хотя можно дописать обработчик ещё одной горячей клавиши, при нажатии на которую данная программа либо запускается, либо завершается.

Author:  SoUrcerer [ Fri May 06, 2011 3:34 pm ]
Post subject:  Re: madmouse

Ну так это в коде самой программы же?Я ничего не путаю?

Author:  Albom [ Fri May 06, 2011 4:14 pm ]
Post subject:  Re: madmouse

Можно и в коде самой программы. Но тогда её нужно запускать либо вручную, либо из авторана.

Author:  dunkaist [ Fri May 06, 2011 4:54 pm ]
Post subject:  Re: madmouse

popovpa,
молодец! Для начала очень хорошо.

Рекомендую обратить внимание на файл /programs/macros.inc. Там есть много удобных и полезных фич. Например, такой код:
Code:
mov     eax,5
mov     ebx,1
int     0x40
можно заменить таким:
Code:
mcall   5,1

Удачи в дальнейшей разработке!

Author:  popovpa [ Fri May 06, 2011 9:22 pm ]
Post subject:  Re: madmouse

В первоначальном коде Sourcerer были макросы, но у меня к ним что-то не лежит душа, может со временем конечно же буду пользоваться, но сейчас...

У меня в Windows тоже есть madmouse в нём тоже нет интерфейса и за много лет эксплуатации ни разу не понадобился, да и отключать приходилось всего 1 раз когда играл в Сибирь, там какой-то глюк был уже и не припомню...а так всётаки я склоняюсь к внедрению такой фичи в драйвер в котором уже и регулировать включение через галочку или ini файл...

Author:  Mario [ Fri May 25, 2012 12:55 am ]
Post subject:  Re: madmouse

Программа перекидывает только по горизонтали (между крайним левым и крайним правым положением), если сделать прекидывание по вертикали (между крайним верхним и крайним нижним положением), то программ будет полноценной и ее можно будет залить на SVN и включить в сборку.

Author:  popovpa [ Fri May 25, 2012 2:19 pm ]
Post subject:  Re: madmouse

Хорошо, постараюсь сделать!

Author:  popovpa [ Tue May 29, 2012 12:09 pm ]
Post subject:  Re: madmouse

Ну вот, благодаря Марату (Mario)...новая версия программы. Нумерацию не ввожу..думаю это излишнее. Прошу более опытных программистов взглянуть на код, если будет время, и дать рекомендации по оптимизации...СПАСИБО!

Attachments:
madmouse.7z [1.81 KiB]
Downloaded 209 times

Author:  Leency [ Tue May 29, 2012 12:25 pm ]
Post subject:  Re: madmouse

Насчёт оптимизации я увидел вот: mov ebx,0 -> xor ebx,ebx
Никогда до этого подобной программой не пользовался, но по ощущениям весьма приятно, хоть и не обычно. На больших мониторах может быть неплохой профит.

Author:  Rock_maniak_forever [ Wed May 30, 2012 1:40 am ]
Post subject:  Re: madmouse

Можно сделать так:

Code:
cmp   ecx,0 можно заменить на test  ecx,ecx

Code:
mov   ebx,1 можно заменить на xor  ebx,ebx
                              inc   bl

Code:
mov   eax,37 можно заменить на xor  eax,eax
                               mov  al,37


Так, код будет быстрее и короче.

Author:  Mario [ Wed May 30, 2012 1:48 am ]
Post subject:  Re: madmouse

Короче? Возможно! Быстрее? Не факт. А вообще - преждевременная оптимизация корень многих бед.

Author:  Rock_maniak_forever [ Wed May 30, 2012 2:02 am ]
Post subject:  Re: madmouse

Вообще скорость зависит от проц-а, но то, что данные инстр. короче - факт (сам проверял).
Code:
mov   ebx,eax можно заменить на push eax
                                pop  ebx

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/