Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Плагины на ассемблере
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Thu Feb 07, 2008 19:14    Post subject: Плагины на ассемблере Reply with quote

Уважаемые форумчане!

Кто-нибудь из вас где-нибудь встречал плагины к Total Commander, целиком написанные на одном из ассемблеров? Просто я сделал как пример минимальный fs-плагин на masm (компилируется в MASM32v9). Здесь, на русскоязычном форуме в поиске я нашел только два упоминания о ассемблере, причем в одном топике использовалась мелкая ассемблерная вставка в 3-5 инструкций, а в другом топике какой-то авторитет от C# что-то ляпнул про сравнение асм и яву, так и непонятно что.

Мне кажется, среди людей, которые пишут приложения, утилиты и драйвера на ассемблере нашлось бы немало желающих написать для себя лично (а заодно для других) полезный, удобный плагин. Раньше мне встречались старые версии документации по написанию плагинов, где описание и примеры давались целиком применительно к паскалю. Понятно, что читать паскаль с лету и разбираться в нем не каждому будет интересно, когда с ним он только мельком знаком. Зато когда появилась нормальная документация и примеры на си, всё изменилось в лучшую сторону. Большинство ассемблерщиков если не пишут на си, то в любом случае хорошо разбираются в документации, написанной преимущественно применительно к си.

Вот я и хочу продвинуть эту идею в массы и ищу единомышленников и т.д. и т.п. Могу даже минимально поучаствовать в выкладке исходников плагинов на ассемблере или составить перевод небольшого участка документации по написанию плагинов к Total Commander или написать маленький мануальчик по разработке плагинов на ассемблере (MASM). Короче, жду откликов.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Thu Feb 07, 2008 21:40    Post subject: Reply with quote

http://wincmd.ru/plugring/grp.html
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Thu Feb 07, 2008 21:50    Post subject: Reply with quote

Есть архиваторный плагин, полностью на ассемблере, с исходниками. Но кроме архиваторных плагинов (которые могут обрабатывать большие объёмы данных) я не вижу смысла в применении ассемблера.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Thu Feb 07, 2008 22:08    Post subject: Reply with quote

Ok, спасибо за ссылку, буду смотреть, когда понадобится писать WCX-плагин. К слову, плагин был написан уже давно, тогда большинство писало на tasm, сейчас это уже редкость. Сейчас пишут часто на masm и всё большую популярность начинает набирать fasm. Плагин по размеру вышел у Stanislaw Pusep крошка. Кто ещё видел плагины, написанные на asm? Есть желающие попробовать свои силы, реализовать какой-нибудь новый проект? Иначе будем считать, что я первый, кто на asm написал wfx-плагин Wink

P.S. Прикольно, D1P совсем на чуть-чуть позже, чем Lev, запостил одну и ту же ссылку. D1P, а почему ты так считаешь? По-моему ассемблер можно применить для написания всех видов плагинов Total Commander.
Back to top
View user's profile Send private message
DrShark



Joined: 21 Oct 2006
Posts: 911
Location: Kyiv, Ukraine

Post (Separately) Posted: Thu Feb 07, 2008 22:14    Post subject: Reply with quote

Quote:
Кто ещё видел плагины, написанные на asm?

Не знаю, можно ли отнести HiAsm к семейству ассемблеров Smile
Посмотри здесь: http://www.ghisler.ch/wiki/index.php/Plugins_interfaces
Back to top
View user's profile Send private message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Thu Feb 07, 2008 22:50    Post subject: Reply with quote

Quote:
Не знаю, можно ли отнести HiAsm к семейству ассемблеров

Да и тоже как-то в этом не уверен Smile) Впервые узнал о таковом сегодня, нет это не ассемблер однозначно, даже если ассемблер используется на этапе компиляции. А вообще, интересно:
http://hiasm.com/
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Fri Feb 08, 2008 09:04    Post subject: Reply with quote

mc-black wrote:
Могу … составить перевод небольшого участка документации по написанию плагинов к Total Commander

Не ассемблер, но может возникнут какие-то замечания:
Статья Архиваторный плагин на Borland Delphi
Перевод Написание WCX архиваторных плагинов для Total Commander (Writing WCX packer plugins for Total Commander)

mc-black wrote:
нашлось бы немало желающих написать для себя лично (а заодно для других) полезный, удобный плагин

При современных скоростях инета и путеров не важны ни объём ни скорость плагина.
Можно и написать в качестве лабораторки.
Не так важно, на чём написан плагин, главное чтобы он был.
Часто накладывают ограничения посторонние компоненты. И если стандартные VCL можно на KOL/MCK заменить, то с другими компонентами это будет уже сложнее.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Fri Feb 08, 2008 09:49    Post subject: Reply with quote

2 Моторокер:
1. Замечаний пока нет, но возможно будут.
2. Насчёт объёма плагина: при настоящей цене EDGE-трафика моего провайдера объём продолжает иметь для меня значение. А скорость - второй по значению критерий качества любого архиватора (это касательно архиваторных плагинов).
3. В принципе согласен с тем, что не так важно, на чём написан плагин, главное чтобы он был. Просто чем больше программеров вовлечено в написание плагинов, тем больше плагинов полезных и разных будет написано. Для этого всесторонняя документация и свободный доступ к исходникам примеров на мой взгляд очень полезны.
4. А вот компоненты, KOL/MCK - это чисто борландовские понятки. Ясней всего было бы сказать, что плагин - это обычная dll, использующая соглашение о вызовах stdcall, как и большинство функций стандартных библиотек windows.
Back to top
View user's profile Send private message
Lev



Joined: 02 Mar 2005
Posts: 392

Post (Separately) Posted: Fri Feb 08, 2008 13:10    Post subject: Reply with quote

Quote:
Кто-нибудь из вас где-нибудь встречал плагины к Total Commander, целиком написанные на одном из ассемблеров?

Судя по этому осуждению. 2 из 3-х плагинов с этой страницы тоже написаны на ассемблере, но исходников там не наблюдается.
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Fri Feb 08, 2008 14:09    Post subject: Reply with quote

mc-black wrote:
D1P, а почему ты так считаешь? По-моему ассемблер можно применить для написания всех видов плагинов Total Commander.


Несопоставимое соотношение скорости раработки к функционалу. Писать на асме имеет смысл только для саморазвития. К тому же, для подавляющего большинства плагинов ассемблерная оптимизация не будет иметь смысла, т.к. всё упрётся в скорость обработки самим TC. Например, абсолютно неважно, с какой скоростью я подготовлю список для вывода на панель - TC всё равно отобразит его с ужасающей скоростью...
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
mutex



Joined: 16 Dec 2004
Posts: 134
Location: Казахстан

Post (Separately) Posted: Fri Feb 08, 2008 14:21    Post subject: Reply with quote

Нижеследующий Листер-плагин "Просмотр файлов баз данных в формате DBF (Dbase, Paradox)" имеет размер всего 25 КБ. Думаю, что он уж точно написан на Ассемблере:
http://wincmd.ru/plugring/dbfview.html

Обратите внимание на дату выпуска плагина: 12.11.2003 !!!
Т.е. Ассемблер применяется уже давно.
_________________
E.Savich
http://www.xbaseview.com
Back to top
View user's profile Send private message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Sat Feb 09, 2008 03:00    Post subject: Reply with quote

2 Lev:
Да, похоже всё судя по размеру написано на ассемблере. Архивы по 8 килобайт и т.п. Я смотрел только один из трех плагинов, листер-плагин. Так вот, там код довольно плотно и компактно написанных, ниаких лишних nop'ов или int 3 (только одна функция слегка особняком, на то могли быть причины, связанные с отладкой). Вот это и есть пример качественно написанного плагина, писал энтузиаст.

2 D1P:
Несопоставимое соотношение скорости разработки к функционалу, это основной довод против использования его в разработках. Не забудьте ещё полную непригодность для портирования программ на другие программные/аппаратные платформы, отсутствие стандартных библиотек и сложное восприятие кода при отсутствии должных комментатиев. На мой взгляд, с учётом всего написанного выше, на нем всё-таки можно относительно быстро разрабавывать структурированные программы подобно языку си (за минусом портируемости и т.п). Зато размер программы, и ещё важнее эффективное использование памяти и процессорного времени. Я не настаиваю на повсеместном применении именно асма, но по-моему энтузиасты на асм могли бы сделать немало системных утилит, а также полезных инструментов для разработчиков. Кстати ты прав насчёт скорости вывода тотал коммандером списков, сформированных плагином. В этом смысле любая windows-программа никогда не выпрыгнет за рамки того, что позволяет система при обработке API-вызовов, кроме драйверов режима ядра.

2 mutex:
59392 байт - очень спорный вопрос, это может быть что угодно, в том числе даже Delphi, эффективно написанный и оптимизированный Wink К тому же такие программы просто используют api давно уже написанных драйверов баз данных, я прав?
Back to top
View user's profile Send private message
mutex



Joined: 16 Dec 2004
Posts: 134
Location: Казахстан

Post (Separately) Posted: Sat Feb 09, 2008 16:02    Post subject: Reply with quote

> 59392 байт - очень спорный вопрос, это может быть что угодно, в том числе даже Delphi
Видимо файл плагина запакован чем-то. Точно не помню, но где-то читал про автора плагина - Сергея Чехута, о том, что он - ассемблерщик. Можно сходить на его сайт: http://www.whitetown.com/cdbfview/ и спросить его.
Все равно, для утилиты баз данных это очень крохотный размер. Сравните с моим Дельфи-плагином: http://wincmd.ru/plugring/xBaseView.html, который без упаковки весит аж 3 мегабайта!
_________________
E.Savich
http://www.xbaseview.com
Back to top
View user's profile Send private message
D1P



Joined: 20 Dec 2004
Posts: 2973
Location: Тбилиси

Post (Separately) Posted: Sat Feb 09, 2008 16:52    Post subject: Reply with quote

mutex wrote:
Сравните с моим Дельфи-плагином: http://wincmd.ru/plugring/xBaseView.html, который без упаковки весит аж 3 мегабайта!

Но твой плагин и может гораздо больше. По сути, это полнофункциональный редактор, в то время, как просмотр DBF - не очень сложен. Я, лет пять назад, писал на дельфе простенькую программку, которая конвертировала DBF в CSV. Описания структуры DBF у меня не было, тем не менее, разобрался.
mc-black
Если сам знаешь плюсы и минусы, тогда в чём вопрос? Вперёд, писать плагины.
_________________
База знаний о Total Commander
Блог
Back to top
View user's profile Send private message
mc-black



Joined: 07 Feb 2008
Posts: 7
Location: Нижний Новгород

Post (Separately) Posted: Sun Feb 10, 2008 15:28    Post subject: Reply with quote

формат DBF сам по себе очень простой. автор мог использовать нестандартные библиотеки, которые компилировал, с умом подбирая версию компилятора и линкера, параметры командной строки, словом не тупо жал кнопку Build (или какая там имеется). я думаю, чтобы уложиться в этот размер для функционала того самого плагина можно было использовать много что, даже необязательно ассемблер. если оптимизировать на асме этот плагин бы занял меньше 15-20K, скорее даже где-то 12K. пакер после компиляции этой библиотеки не использовался, уверяю вас (загрузите программу в отладчике). мало того, на ассемблере редко нужно выполнять такие инструкции, как:

db 0 ;в секции кода между процедурами!
mov esi,esi ;между процедурами, встречается не меньше, чем пару раз!
nop ;до и после процедуры

все эти выражения просто трезвый человек не станет ставить посреди программы, т.к. они ничего не делают. это может вставить только искусственный - оттого и недоразвитый - интеллект компилятора.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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 vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group