1

Тема: Программа для работы с образами дисков

Довел до минимально юзабельного состояния программу для работы с образами дисков (условно, аналог dos33c2 с графическим интерфейсом). Поддерживаются основные форматы 140 и 840к с файловыми системами DOS 3.3, Спрайт и CP/M. Можно просматривать и вытаскивать отдельные файлы, конвертировать образы между разными форматами. Редактирование образов в планах, если к программе будет какой-то интерес.

Работает под Windows 7+, Linux, macOS (x86 и Apple Silicon в теории).

Версия пока предварительная, конструктивная критика приветствуется.

Брать тут: https://github.com/Ptr314/dsk_commander

2

Re: Программа для работы с образами дисков

Добавил редактирование образов DOS 3.3, плюс мелкие улучшения. Полный список на странице релизов.

3

Re: Программа для работы с образами дисков

1.3.6
Просмотр текстовых и графических образов экранов Агат.
- Графические режимы – с переключением палитр, в том числе с загрузкой из VR-блока для платы палитр.
- Текстовые режимы – основные знакогенераторы + внешние загружаемые.

4

Re: Программа для работы с образами дисков

Версия 1.5.1, система Windows 10 x64. Когда открываю образ .aim, программа закрывается. Пробовал на разных образах.

5 Отредактировано Voldemar0 (14-10-2025 21:24)

Re: Программа для работы с образами дисков

У меня запустилась, но потребовала ручной установки libfuse2.
Интересно, зачем ей эта библиотека потребовалась ?
Это же поддержка файловых систем в пространстве пользователя, но это должен быть не простой пользователь, а целый админ...

Дальше вроде как всё заработало, хотя и сопровождалось иногда сообщением "Configuration error", но прога не падала.

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

Скриншотик в аттаче для примера. Окошко открылось, чего-то ждёт, но почти все поля не заполнены.

Кроме того я не понял саму концепцию интерфейса. Обычно файловые менеджеры - это или двухпанельники, где две панели имеют одинаковые возможности или однопанельники, но тогда они могут открывать несколько связанных окон. Тут две панели, но они разные.
Допустим. Но где тогда какой нибудь намёк на действие вроде "copy/paste/copy to..." - файловый менеджер же в первую очередь копирует-переименовывает-удаляет ?

Я хотел закинуть FIL в DSK, но пока не получилось совсем :(

Post's attachments

Attachment icon Screenshot from 2025-10-14 20-12-29.png 208.62 kb, 75 downloads since 2025-10-14 

6 Отредактировано Voldemar0 (15-10-2025 07:02)

Re: Программа для работы с образами дисков

PS Файл вроде добавить удалось, но через кнопку "Добавить файл".
Однако потом я пощёлкал по левой панели, снова вернулся к образу и он опять оказался пустым.
:(
Надо было ещё и экспортировать образ ?

Наверное, может быть, надо как-то объяснить задумку, потому что
"условно, аналог dos33c2 с графическим интерфейсом" - ну вообще нет.

dos33c2 - разрабатывалась для массовой работы с файлами.
"I like to move it move it..." - и это про файлы.
Когда из образа и обратно гоняются сразу группы файлов.
Причем в любом сочетании, как между FIL так и DSK и экспорт.

И всё это с кнопок клавиатуры, с минимумом нажатий, потому что мышь хороша до тех пор, пока не нужно постоянно лезть к клавиатуре, чтобы переименовать файлы, редактировать HEX/TEXT, создавать новые каталоги (это - очень часто при сортировке!) и т.д.

7

Re: Программа для работы с образами дисков

PS Я понял одну нестыковку, которая меня сбила с толку: с одной стороны здесь прога уже при запуске показывает список файлов в своём окне, но затем, при выполении некоторых операций, открываются стандартные диалоги выбора файла (сохранение, а может там и загрузка была тоже).

Получается непонятно: если прога уже может работать с каким-то фиксированным каталогом и списком файлов в нём, то зачем открывать стандартный диалог выбора файла из каталога? А если прога всё равно использует такой диалог, т.е. вообще работает с единственным файлом в один момент времени, то зачем тогда выводить список файлов слева ?

Если прога задумана строго как процессор образов, то workflow должен выглядеть как-то так: open - выбрать образ через стандартный диалог, затем показываем всё об этом образе в главном окне программы, есть кнопки удалить файл из образа, импортировать файл в образ, что-то ещё сделать с образом и потом кнопка save - сохранить образ на прежнем месте или save as - сохранить где-то ещё и, само собой, напоминалка, если делаем exit или load забыв про save.

Или какая-то другая концепция, но явно прописанная в описании или подсказками самой проги.

Сперва чёткая цель (для кому и для чего нужна прога, следовательно: основные особенности (легкое вхождение, только простые операции,.....) .... мультиплатформенность.... отказываемся от того-то, акцент делаем на том-то), а потом уже реализация.

8

Re: Программа для работы с образами дисков

Voldemar0 пишет:

но потребовала ручной установки libfuse2.

Видимо, приколы Qt и конкретного дистрибутива. Я пробовал на нескольких разных, такого требования не возникало. У вас какой? Попробую на нем воспроизвести.


Voldemar0 пишет:

... Или какая-то другая концепция, но явно прописанная в описании или подсказками самой проги.

Конценпия интерфейса - работа с одним образом за раз. Слева - образы и инструменты работы с образами целиком, справа содержимое открытого образа и инструменты работы с ним. Панели неравноценны. (Возможно, в документации это написано не очень очевидно).

Workflow: слева - выбрать директорию с образами, открыть образ - справа - посмотреть содержимое файлов, добавить/удалить файлы, экспортировать в нужный формат.

Файлы справа можно выделять сразу несколько с Shift, Ctrl и т.д. и эту группу удалять/экспортировать. Добавлять тоже можно сразу несколько файлов.

Согласен, сейчас массово гонять пачки файлов между образами неудобно, но вот тут и приходится от чего-то "отказываться".

Voldemar0 пишет:

напоминалка, если делаем exit или load забыв про save

Важная функция, есть в списке доработок, но пока руки не дошли.

Voldemar0 пишет:

Но где тогда какой нибудь намёк на действие вроде "copy/paste/copy to..."

Интересная идея, не думал об этом, запишу в список доработок.

Voldemar0 пишет:

"условно, аналог dos33c2 с графическим интерфейсом" - ну вообще нет.

Это очень "условно", была вводная фраза, что пояснить, что это вообще такое. По интерфейсу я делал ближе к "Windows Explorer", тогда как dos33c2 это "Norton Commander/FAR etc.". Я нежно люблю FAR и использую его каждый день для работы с файлами, но для программы, предназначенной для обычного пользователя, считаю более правильным делать современный тип интерфейса, ориентированный на мышь.

Voldemar0 пишет:

Скриншотик в аттаче для примера. Окошко открылось, чего-то ждёт, но почти все поля не заполнены.

Это какой-то глюк несовместимости с конкретным дистрибутивом, поля дожны быть заполнены. Посмотрю в рамках разборок с первым вопросом.

Voldemar0 пишет:

Однако сложилось всё же ощущение сильной сырости кода.

Все в процессе, программа новая, собираю отзывы и делаю доработки.

9 Отредактировано ptr314 (19-10-2025 20:33)

Re: Программа для работы с образами дисков

AlexBel пишет:

Версия 1.5.1, система Windows 10 x64. Когда открываю образ .aim, программа закрывается. Пробовал на разных образах.

Странноэ, проверю на бОльшем кол-ве файлов, у меня проблем с aim пока не было.

https://github.com/Ptr314/dsk_commander/issues/38

10 Отредактировано Voldemar0 (19-10-2025 21:16)

Re: Программа для работы с образами дисков

> но для программы, предназначенной для обычного пользователя, считаю более правильным делать современный тип интерфейса, ориентированный на мышь.

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


> Это очень "условно", была вводная фраза, что пояснить, что это вообще такое.

Т.е. неподготовленный пользователь, но уже знающий что такое dos33c2 ? :))

Если он, действительно, неподготовленный, то тогда и писать надо "что-то вроде 'проводника', но для работы с образами...." Но тут есть загвоздка: настоящий неподготовленный пользователь не знает что такое "проводник". Он им пользуется, но он это назовёт, в лучшем случае "мой компьютер".
Так что лучше, наверное, не сравнивать ни с чём, а просто написать "программа для управления образами дисков Агата....."

Просто если это для реально неподготовленного пользователя, то тут всё и должно быть максимально похоже на Explorer. А если тут начинаются какие-то сложности, просмотр HEX-кода, нет автоопределения типов агатовских файлов (нужно выбирать - смотреть как hex или как бейсик или как текст....) - это уже никак не по подпадает под неподготовленного.


> Видимо, приколы Qt и конкретного дистрибутива.

У меня debian, давно установленный, периодически обновляемый.
Точную версию завтра могу указать.


> Это какой-то глюк несовместимости с конкретным дистрибутивом, поля дожны быть заполнены.

Могу предположить, что это происходит если справа выбран файл, а не образ слева.
А затем нажимаем на какие-то кнопки работы с образами (экспорт ?).


▼Spoiler

> современный тип интерфейса, ориентированный на мышь.

Тут всё не так просто: нортон ведь тоже с мышью работал, как и FAR, тем более всякие Multicommander'ы, Total Commenderы и прочее.
А в ранних версиях винды мышь не была обязательным устройством, с точки зрения требований к компу. Желательной, но не более того. Проводник и сейчас неплохо работает без мыши, хотя неудобно TAB'ом поля переключать. И нортон тоже ведь был оболочкой именно для неподготовленных пользователей.

Ключевая между ними: NC и прочие - это всегда строго две панели (хотя Dos Navigator, кажись, позволял больше, но кто этим пользовался...), а Explorer - это сколько угодно панелей, начиная от одной.
Плюс возможность иконок вместо или в дополнение к именам.
Плюс концепция буфера - Copy/Paste, хотя обычное копирование там тоже есть (мышь правое меню: отправить файл на...).

Почему окна - понятно, потому что выросло разрешение дисплеев.
На Андроиде же обратно откатились - нет окон (ну там да, сейчас можно сплит дисплея делать... что-то такое).

Но и там опять так же:
всевозможные стоковые смотрелки файлов: однопанельники, с возможностью Копировать куда нибудь.
А двухпанельник - X-Plore - ставишь себе уже сам. Вроде и Total Commаnder там есть, но мне X-Plore удобнее.

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

{ Ко мне вчера знакомая зашла, попросила файл с одной флешки на другую скопировать.
  Копирование, действительно, избыточно сложная операция для неподготовленного пользователя. Или подготовленного только к смартфонам. }

Наверное, лучше говорить не "неподготовленный пользователь", а что-то вроде "современный массовый пользователь". Потому что тут разница очень большая за 30 лет. Он всегда был подготовлен ровно на тот уровень, который ему был нужен по работе или по каким-то делам, для которых он использовал комп регулярно. Сейчас, вот, настольный комп уже не нужен большинству людей и это опять сдвинет все эти оценки подготовленности и сферы и уровни знаний.

11

Re: Программа для работы с образами дисков

И да, поясню по архитектуре - программа сделана универсальной модульной и минимально зависимой от конкретных типов образов и файловых систем на них. Программа внутри работает с образом DSK - любой образ сначала внутри конвертируется в DSK модулем импорта, а после работы с ним должен быть экспортирован в нужный формат модулем экспорта.

Каждая файловая система это тоже независимый модуль, умеющий работать со своим образом DSK.

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

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

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

12

Re: Программа для работы с образами дисков

PS Мелкое пожелание: сейчас, чтобы узнать что делает та или иная иконка, нужно к  ней подвести мышь и дождаться всплывающей подсказки. Я, пожалуй, из вообще всех иконок, виденных мной за всю жизнь, помню только две: желтая папка - открыть файл и иконка дискеты - сохранить файл. И шоб я запомнил хоть что-то ещё. А, ещё лиса в мясорубке - это firefox.
Я серьёзно.
Мне быстрее прочитать слово, чем вспомнить, что означает картинка.
Поэтому просьба: всё таки рядом с иконками, хотя бы даже отключаемый, но текст.
Или, более канонично: иконки видны всегда, а в выпадающем меню нормальные названия действий, без экономии слов.

13 Отредактировано ptr314 (19-10-2025 22:57)

Re: Программа для работы с образами дисков

Voldemar0 пишет:

Так что лучше, наверное, не сравнивать ни с чём, а просто написать "программа для управления образами дисков Агата....."

Именно так везде и написано, кроме первого сообщения этой ветки форума.

Voldemar0 пишет:

У меня debian, давно установленный, периодически обновляемый.
Точную версию завтра могу указать.

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

Voldemar0 пишет:

Могу предположить, что это происходит если справа выбран файл, а не образ слева.
А затем нажимаем на какие-то кнопки работы с образами (экспорт ?).

Для экспорта справа ничего выбирать не надо. Экспорт относится к "открытому" диску, содержимое которого показано справа. Возможно, это неочевидно. Подумаю, что можно с этим сделать.

Voldemar0 пишет:

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

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

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

Voldemar0 пишет:

> Мне кажется тот, кто полезет копать агатовские образы и компоновать по своему - это уже, всё таки, подготовленный пользователь.

Попробую сформулировать еще раз цель - программа предназначена для быстрого просмотра, немассового редактирования и конвертации отдельных образов из любого формата в любой пользователями без специальных знаний. Программа должна поддерживать современные платформы - Windows, macOS, Linux и позволять легко добавлять поддерживаемые форматы образов, файловых систем и типов файлов для просмотра. Код программы выложен как Open Source, создается как максимально понятный и читаемый с комментариями, как некоторая форма документации на будущее. Все это делается в рамках проекта emuverse.ru и является его частью.

14

Re: Программа для работы с образами дисков

Voldemar0 пишет:

...
Поэтому просьба: всё таки рядом с иконками, хотя бы даже отключаемый, но текст.
Или, более канонично: иконки видны всегда, а в выпадающем меню нормальные названия действий, без экономии слов.

Зафиксировал https://github.com/Ptr314/dsk_commander/issues/42

15

Re: Программа для работы с образами дисков

Voldemar0 пишет:

нет автоопределения типов агатовских файлов

Автоопределение должно быть, если для каких-то файлов не работает, это баг/повод для доработки.

16 Отредактировано Voldemar0 (20-10-2025 08:41)

Re: Программа для работы с образами дисков

> Видимо, приколы Qt и конкретного дистрибутива. Я пробовал на нескольких разных, такого требования не возникало. У вас какой? Попробую на нем воспроизвести.

# uname -a
Linux debian 5.10.0-30-amd64 #1 SMP Debian 5.10.218-1 (2024-06-01) x86_64 GNU/Linux

Система ставилась примерно в 2020 году, релиз stretch (9), потом дотянут до buster (10), потом bullseye (11).
На нём пока остановился.

Собственно, меня -то удивило то, что прога в формате AppImage вообще заговорила о зависимостях, ведь AppImage как будто бы и делался как свободно переносимый формат, таскающий всё в себе (ну, может быть, зависящий только от libc).

И то, что ей потребовался именно fuse - тоже мне странно, хотелось бы понять, как он там используется.

Вообще, fuse - это фича линуксового ядра, позволяющая делать драйвер файловой системы, работающий в пространстве пользователя (Filesystem in Userspace). Т.е., например, вы хотите, чтобы ядро могло монтировать агатовские образы как обычной накопитель, наравне с FAT или EXT4, например. Вы пишите некий код, который запускается и работает как пользовательская программа, но при этом обеспечивает обработку запросов к файловой системе, транслируя их к блочному устройству накопителя (будь то реальный драйвер дисковода или образ диска). Таким образом любая прога, работающая под линухом, может иметь доступ к отдельным файлам внутри образа.
Важно, что используя FUSE вам не нужно делать какие либо правки в самом ядре линуха.

И тут два варианта:

1) Либо вы не знаете о том, что ваш код оказался зависимым от fuse, потому что эта зависимость протянута откуда-то из QT, оттуда из какой-нибудь замысловатой потребности, типа автомонтирования файловых систем при открытии стандартного диалога выбора файла, одна из которых NTFS, которая как раз таки в линухе реализована через FUSE.
(Я с QT не знаком, но уже сталкивался, что приложения GNOME иногда могут потащить за собой всё подряд, включая клиента SAMBA, например, который по логике самого приложения, как будто не требуются совсем (у меня так GIMP таскал за собой самбу)).

2) Либо вы реально планировали (или даже уже есть возможность!) работы с агатовскими образами через FUSE. Это было бы реально круто и могло бы выглядеть как-то так:

пользователь щелкает где-то в проге кнопку "Смонтировать том" и дальше получает запрос о пути в файловой системе, где будет точка монтирования. Ну, например, /home/igor/Image.
На образы были файлы, например, текстовые и может быть несколько картинок.
После монтирования, в  /home/igor/Image появлются файлы с теми же именами, но теперь у них есть расширения TXT и PNG, и их можно открыть любым линуховым редактором, просмотрщиком и т.д. Может быть только просмотреть, а может быть даже записать обратно на образ.

Т.е. под капотом тут должен быть экстрактор/импортёр файлов, а также конвертор форматов  и имён файлов между агатом и линухом.

17

Re: Программа для работы с образами дисков

Voldemar0 пишет:

И то, что ей потребовался именно fuse - тоже мне странно, хотелось бы понять, как он там используется.

Я проконсультировался с роботами. fuse используется механизмом монтирования AppImage:

AppImage в формате type 2 (современная версия) при запуске монтирует сам себя как виртуальную файловую систему через FUSE (libfuse.so.2), чтобы изнутри выдать файлы программы.

На старых системах, которые обновлялись из старых релизов, libfuse2 могла быть удалена при переходе на fuse3, либо изначально не была установлена.

Варианты решения:

  • Убрать монтирование AppImage, оставить только распаковку

  • Перейти на AppImage с FUSE3

  • Собрать statically linked runtime с libfuse2

  • Забить :) и написать рекомендацию установить libfuse2 в таких случаях :)))

Пока подумаю, что выбрать

18

Re: Программа для работы с образами дисков

> libfuse2 могла быть удалена при переходе на fuse3, либо изначально не была установлена.
Не установлена:

# dpkg -l | grep fuse
ii  fuse                                          2.9.9-5                                amd64        Filesystem in Userspace
ii  libfuse2:amd64                                2.9.9-5                                amd64        Filesystem in Userspace (library)

У меня NTFS нет и других задач для фьюзы тоже.

> Забить :) и написать рекомендацию установить libfuse2 в таких случаях :)))

Наверное, самое правильное.
Она же сама мне сказала чего не хватает, так что квест получился простой.

19

Re: Программа для работы с образами дисков

Voldemar0 пишет:

> Забить
Наверное, самое правильное.

Пока думаю да. Напишу в доку. Еще можно, наверно, не монтировать, а распаковывать - я попробую, попросит ли для этого fuse в текущей сборке.

20

Re: Программа для работы с образами дисков

По зрелому размышлению переделал в двухпанельный коммандер.

https://github.com/Ptr314/dsk_commander/releases