Board.KolibriOS.org

Official KolibriOS board
It is currently Fri May 24, 2019 6:28 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 22 posts ]  Go to page 1 2 Next
Author Message
 Post subject: madmouse
PostPosted: Fri May 06, 2011 11:00 am 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Здравствуйте!

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

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

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

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


Attachments:
madmouse.7z [1.69 KiB]
Downloaded 180 times
Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 11:40 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1328
Очень хороший код, так держать!
И с комментариями всё в порядке - программа отлично читается.

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


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 1:25 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Я вообще считаю что этот функционал надо встроить в драйвер мышки, и уже от туда включать или выключать, просто реально удобно и когда привыкаешь садишься за чужой компьютер так этого не хватает...

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

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


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 3:11 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
На панель задач сейчас лучше ничего не навешивать (я имею в виду кнопки). Код там и так запутанный... Хотя можно дописать обработчик ещё одной горячей клавиши, при нажатии на которую данная программа либо запускается, либо завершается.


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 3:34 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Ну так это в коде самой программы же?Я ничего не путаю?


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 4:14 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
Можно и в коде самой программы. Но тогда её нужно запускать либо вручную, либо из авторана.


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 4:54 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 416
popovpa,
молодец! Для начала очень хорошо.

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

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


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 06, 2011 9:22 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
В первоначальном коде Sourcerer были макросы, но у меня к ним что-то не лежит душа, может со временем конечно же буду пользоваться, но сейчас...

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


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 25, 2012 12:55 am 
Программа перекидывает только по горизонтали (между крайним левым и крайним правым положением), если сделать прекидывание по вертикали (между крайним верхним и крайним нижним положением), то программ будет полноценной и ее можно будет залить на SVN и включить в сборку.


Top
   
 Post subject: Re: madmouse
PostPosted: Fri May 25, 2012 2:19 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Хорошо, постараюсь сделать!


Top
   
 Post subject: Re: madmouse
PostPosted: Tue May 29, 2012 12:09 pm 
Offline
Moderator

Joined: Thu Apr 08, 2010 8:11 pm
Posts: 269
Ну вот, благодаря Марату (Mario)...новая версия программы. Нумерацию не ввожу..думаю это излишнее. Прошу более опытных программистов взглянуть на код, если будет время, и дать рекомендации по оптимизации...СПАСИБО!


Attachments:
madmouse.7z [1.81 KiB]
Downloaded 141 times
Top
   
 Post subject: Re: madmouse
PostPosted: Tue May 29, 2012 12:25 pm 
Offline
Designer
User avatar

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

_________________
Через тернии к звездам


Top
   
 Post subject: Re: madmouse
PostPosted: Wed May 30, 2012 1:40 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Можно сделать так:

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


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

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
 Post subject: Re: madmouse
PostPosted: Wed May 30, 2012 1:48 am 
Короче? Возможно! Быстрее? Не факт. А вообще - преждевременная оптимизация корень многих бед.


Top
   
 Post subject: Re: madmouse
PostPosted: Wed May 30, 2012 2:02 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Вообще скорость зависит от проц-а, но то, что данные инстр. короче - факт (сам проверял).
Code:
mov   ebx,eax можно заменить на push eax
                                pop  ebx

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 22 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited