Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн дек 18, 2017 6:22 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: madmouse
СообщениеДобавлено: Пт май 06, 2011 11:00 am 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 266
Здравствуйте!

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

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

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

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


Вложения:
madmouse.7z [1.69 КБ]
120 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 11:40 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Очень хороший код, так держать!
И с комментариями всё в порядке - программа отлично читается.

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 1:25 pm 
Не в сети
Moderator

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

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

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 3:11 pm 
Не в сети
Mentor
Аватара пользователя

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 3:34 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Ну так это в коде самой программы же?Я ничего не путаю?


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 4:14 pm 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
Можно и в коде самой программы. Но тогда её нужно запускать либо вручную, либо из авторана.


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 4:54 pm 
В сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 345
popovpa,
молодец! Для начала очень хорошо.

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

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 06, 2011 9:22 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 266
В первоначальном коде Sourcerer были макросы, но у меня к ним что-то не лежит душа, может со временем конечно же буду пользоваться, но сейчас...

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 25, 2012 12:55 am 
Программа перекидывает только по горизонтали (между крайним левым и крайним правым положением), если сделать прекидывание по вертикали (между крайним верхним и крайним нижним положением), то программ будет полноценной и ее можно будет залить на SVN и включить в сборку.


Вернуться к началу
   
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Пт май 25, 2012 2:19 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 266
Хорошо, постараюсь сделать!


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Вт май 29, 2012 12:09 pm 
Не в сети
Moderator

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


Вложения:
madmouse.7z [1.81 КБ]
81 скачивание
Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Вт май 29, 2012 12:25 pm 
Не в сети
Designer
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Ср май 30, 2012 1:40 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн фев 09, 2009 4:13 am
Сообщения: 445
Можно сделать так:

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

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

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


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

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


Вернуться к началу
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Ср май 30, 2012 1:48 am 
Короче? Возможно! Быстрее? Не факт. А вообще - преждевременная оптимизация корень многих бед.


Вернуться к началу
   
 Заголовок сообщения: Re: madmouse
СообщениеДобавлено: Ср май 30, 2012 2:02 am 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB