Page 1 of 2

RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 03:13:02
by Alex Rider
Крайняя весть: Теперь маунтер умеет:
1. Принимать URL'ы при натягивании их на DropForm.
2. Монтировать скопированное в буфер обмена (Mount from Clipboard в меню и по даблклику на диск в DropForm).
3. Натаскивать на примонтированную "дискету" проды (картинки и музыку) с zxart.ee при открытии URL "API-ссылка для результатов поиска" со страницы поиска по базе.


Собсна, надоело мне монтировать trd консольным тулом, и написал я GUIовый. Хочет венду и .NET 2.0 (не стреляйте в пианиста, он играет как умеет). Тул живет в трее, монтирует всякие разные файлы и папки для чтения Эвой по COM-порту как TR-DOS-диски, показывает лог, выбирает COM-порт. Есть панелька для натаскивания файлов. Очень надеюсь, что интерфейс получился примитивный, понятный даже ААА и не требующий help'а.

Что поддерживает на входе: trd, scl, hobeta, архивы (zip, rar, 7z), бинарные файлы и каталоги.

Как поддерживает:
  • trd - не кеширует в памяти, работает прямо с образом в файловой системе Windows. Можно подменять образ без перезапуска тула и перемонтирования.
  • scl, hobeta - ну поддерживает и поддерживает. Как и все остальные форматы, пихает контент на образ trd в памяти, подменять "на лету" бесполезно и бессмысленно.
  • zip, rar, 7z - распаковывает и пытается осмыслить. Если во всем архиве есть единственный trd/scl, монтирует его как образ. Если их нету или много, монтирует распакованную папку, собственно, как папку. Поскольку тул поддерживает всякие разные типы файлов и пытается "на ходу" понять тип монтируемого файла (разумеется, не по расширению), пришлось сделать жестокий естественный отбор архивов - выжили только zip, rar и 7z (узнаются по сигнатурам). Тул пытается распаковать их либо собственной библиотекой zip, либо установленными в венде WinRAR и 7-Zip, так что можно поддержать всю толпу форматов архивов, которые потрошат эти архиваторы. Делайте заказы на поддержку, лень детектить все возможные форматы. Зачетно так монтировать свежескачанный упакованный софт.
  • Файлы и папки - пытается набить в trd-образ в памяти все переданные файлы во всех переданных каталогах (рекурсивно). Набивает последовательно, больше 128 набить не пытается, невпихуемое тоже пропускает. Если файл больше 255 секторов, разбивает на несколько TR-DOS-файлов. Если что-то пропустил, скажет warning. Прикольно монтировать всякие укачанные из Инета коллекции.

Чего маунтер не умеет:
  • Писать в примонтированные образы. Фича меганужна, но не поддерживается VDOS'ом Эвы. В самом маунтере запись реализована, но не протестирована. Олсо было бы неплохо поддержать защиту от записи в образы.
  • Читать с треков с номером, большим 159. Аналогично не поддерживается VDOS'ом. Для поддержки в маунтере надо поправить одну константу.
  • Монтировать spg. Для разработки было бы архиполезно, хотя скорось загрузки по COM, безусловно не ахти. Не поддерживается WC совсем, протокол не изобретен, в маунтере нет ни намека на spg, но можно запилить.
  • Другие форматы zx-образов. Можно легко запилить по желанию все, что легко раскладывается на TR-DOS-файлы - всякие тапы, sna и так далее, тока смысла в этом не увидел и не стал реализовывать.

Настоятельно ищутся желающие и умеющие поддержать запись, чтение треков 160-255 и формат spg в VDOS и WC! У меня до конца года запар по работе, не осилю правки в VDOS.

Добродушные и поднимающие ЧСВ отзывы, конструктивная критика, разумные пожелания и описания найденных багов весма приветствуются.

Very thanks авторам оригинального маунтера на стороне PC (протокол честно содрал оттуда), VDOS, WC за возможность монтирования образов по COM без передергивания флешки!!!

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 04:29:48
by TS-Labs
Алекс, ты крут! :beer:

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 10:22:27
by VBI
Очень интересно!

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 10:42:24
by Alex Rider
TS-Labs wrote:Алекс, ты крут!

Перед релизом сорцы были тщательно отрефакторены, посему показать не стыдно, а протерять жалко. Может, впихнуть их в репу как-то?

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 12:08:56
by TS-Labs
Конечно.
Добавил тебя в комиттеры. Забрось в папку \pentevo\tools\

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 14:12:04
by LessNick
Офигительно! Спасибо за труды! :vodka:

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 17:28:50
by psb
хоть бы скриншот показали...

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 17:31:12
by g0blinish
psb wrote:хоть бы скриншот показали...


лучше на девок позырь :smoke:

авки там...

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 18:14:39
by TS-Labs
psb wrote:хоть бы скриншот показали...

А ты поставь виртуалку (на отдельной машине) и в ней запусти. Тока перед этим модем вытащи из розетки.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 18:16:26
by Alex Rider
psb wrote:хоть бы скриншот показали...

Alex Rider wrote:Тул живет в трее

Тебе скриншот чего надо? Виндовского OpenDialog?

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 27.10.2015 23:55:00
by psb
TS-Labs wrote:А ты поставь виртуалку (на отдельной машине) и в ней запусти.

а она сама скачает, распакует?
Alex Rider wrote:Тебе скриншот чего надо? Виндовского OpenDialog?

или так, или прочитать за меня 1й псто.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 22.12.2015 00:03:02
by Alex Rider
Внезпано обнаружилось, что тул вполне себе понимает url'ы, если их вставлять в диалог монтирования файла. Вот вам и прокси для Спека чтобы ходить по онлайн-коллекциям. Собсна, как руки дойдут, попробую сделать такие улучшайзеры:
1. Натаскивание url'ов из браузера на панель монтирования (попробую сделать парсинг с возможностью натягивать несколько урлов за раз).
2. Натаскивание чего угодно на иконку в трее (если венда такое позволяет)
3. (онли есть будет интерес) просмотр онлайн-коллекций прямо из тула. Мона будет во-первых, лазить по коллекциям образов типа vtrdos или сайта AAA, во-вторых, набивать виртуальные дискеты трекерными музонами или нативными картинками с сайта Мороза, например. Хотя, если будет натаскивание url'ов, просмотр коллекций в туле малополезен...

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Wed, 23.12.2015 01:48:42
by TS-Labs
:agree:

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Fri, 25.12.2015 21:38:29
by Den1982
А я уж хотел окончательно венду убивать (сижу на убунте), придеться повременить.
Но спасибо все равно!

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sat, 26.12.2015 03:57:59
by Alex Rider
.NET 2.0 соответствует вашм всяким вашим mono. Подскажите, плиз, как с WinForms слезть безболезненно...

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sat, 26.12.2015 04:15:45
by Alex Rider
Den1982 wrote: я уж хотел окончательно венду убивать (сижу на убунте),

Э... Как оно достичь гармонии с вот вашей вот концессией?.. Надо, чтобы я девелопил в VS 2013 на C# с магическими специями, а потом ап: и для WinUser'ов exe, и для UNIXоидов сотни ваших открытых фоматов пакетов на раз сбилдить?!

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sat, 26.12.2015 06:19:30
by TS-Labs
Может какой-нибудь там Qt попробуешь? Samstyle на нем написал целый эмулятор.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sat, 26.12.2015 08:09:20
by g0blinish
Alex Rider wrote:Подскажите, плиз, как с WinForms слезть безболезненно...


Если оно касается окон с кнопками, то простое диалоговое окно в руки. LCCWin32 например.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sat, 26.12.2015 23:04:39
by Alex Rider
TS-Labs wrote:Может какой-нибудь там Qt попробуешь?

Задумаюсь. Надо исчо как-то научиться как-то готовить и тестить готовое блюдо на unix'ах.
g0blinish wrote:Если оно касается окон с кнопками, то простое диалоговое окно в руки. LCCWin32 например.

В том-то и дело, что там нет ни одного "окна с кнопками". В Linux есть system tray с кастомным контекстным меню? Qt позаолит писать нискоуровневые хаки для кастомо отрисованного окна? Каюсь, что использовал эти win-фичи...

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sun, 27.12.2015 04:05:50
by g0blinish
Alex Rider wrote:В Linux есть system tray с кастомным контекстным меню?

хз. красногдлазие от лукавого.

Alex Rider wrote:В том-то и дело, что там нет ни одного "окна с кнопками".

а, ну тогда все просто с тз win32api: создаешь невидимое окно+значок в systray и цикл обработки сообщений вертится на проверке событий - клик на значок и тд.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sun, 27.12.2015 10:31:20
by nyuk
Можно два вопроса от нуба и не совсем в тему?

1. Образы монтируются как виртуальные дискеты, да? А есть возможность скидывать их на флешку без бубна?

2. А кабель нужен прямой COM<->COM?

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Sun, 27.12.2015 12:38:29
by creator
nyuk wrote:1. Образы монтируются как виртуальные дискеты, да? А есть возможность скидывать их на флешку без бубна?

Ага, но read only. Если бы было можно, то и spg можно было кидать на флешку, но увы, можно только скопировать с этой смонтированной дискеты на свою другую через коммандер (с бубном короче).
nyuk wrote:2. А кабель нужен прямой COM<->COM?

Nullmodem. Но удобнее через USB (если rev C).

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Mon, 28.12.2015 14:49:40
by Alex Rider
g0blinish wrote:а, ну тогда все просто с тз win32api: создаешь невидимое окно+значок в systray и цикл обработки сообщений вертится на проверке событий - клик на значок и тд.

Ну как бы я ниасилятор C, C++, а на мерзком Delphi это писать не хотелось ни разу. Так что C#. Вообще, надо было бы заюзать не WinForms, а Qt, тогда это, возможно, собралось бы под mono. Но я, повторюсь, даже не в курсе, есть ли в гуях для Linux аналог трея.
nyuk wrote:Образы монтируются как виртуальные дискеты, да? А есть возможность скидывать их на флешку без бубна?

Да, trd монтируется как есть (прямо файл на диске напрямую читается), остальное набивается в образ в памяти. Увы, с копированием на флешку ровно те же проблемы, что и с реальной дискетой (даже +1 - маунтер работает сильно медленнее, чем флопик). Будет в WC отображение каталога дискеты в панели, гемора поубавится. А так - WDC в помощь.
nyuk wrote:2. А кабель нужен прямой COM<->COM?

Я пользую USB <-> miniUSB, найти такой еще можно.

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Mon, 28.12.2015 15:23:56
by g0blinish
Alex Rider wrote:Ну как бы я ниасилятор C, C++, а на мерзком Delphi это писать не хотелось ни разу.

да возьми и погугли пример systray
сигавно компиляторы поможно найти - TinyC(ресурсы не поддерживает), MiniGW Studio, LCC-win32

Re: RS-232 Disk Mounter GUI Edition

PostPosted: Tue, 29.12.2015 23:18:37
by Alex Rider
g0blinish wrote:сигавно компиляторы поможно найти - TinyC(ресурсы не поддерживает), MiniGW Studio, LCC-win32

Я не умею C/C++ как язык. Ну то есть как, умею как сцобако - read only. Нужные для Саботера фиксы SjASM лезли из меня с большим трудом. Да и просьб особых маунтера под Linux не поступало. Есличо - ядро маунтера переводится на C/C++ "на ура", а GUI под WinForms никому не сгодятся. Так что версия под Linux от меня - это нечто нереальное.