Просмотр полной версии : SteinBlume. CP/M Disk Image Explorer (ex ATM CP/M Explorer)
Black Cat / Era CG
12.04.2016, 01:28
SteinBlume
CP/M Disk Image Explorer
(ex ATM CP/M Explorer)
Менеджер образов CP/M дисков
Актуальная версия: 1.3.2.1410 (17.02.2019)
Сайт: http://era-cg.su/steinblume/ (http://era-cg.su/steinblume/)
Web: http://era-cg.su/steinblume/?lang=en (http://era-cg.su/steinblume/?lang=en) (In English)
.atm - образ CP/M диска ATM,
.pro - образ CP/M диска Профи,
.kdi - образ CP/M диска Корвет или Байт-01,
.odi & od2 - образ CP/M диска Орион,
.qdi - образ CP/M диска Кворум,
.fdd - образ CP/M диска Вектор-06Ц (добавлена недавно, возможны ошибки),
.sco - образ CP/M (by MOA) диска ZS Scorpion,
.xdi - образ CP/M диска экспериментальный - пользовательский образ по заданным параметрам,
.trd - образ диска TRD (в основном образа ATM),
.fdi - образ FDI (Константин Углеков) (Только импорт при помощи дополнительной утилиты Disk Image Analyzer),
.td0 - образ Teledisk (Sydex) (Только импорт при помощи дополнительной утилиты Disk Image Analyzer),
.dsk - образ Amtrad CPC, Amstrad PCW, Spectrum +3 DOS (Экспериментально).
просмотр / изменение образов CP/M дисков,
создание новых образов CP/M дисков,
копирование / перемещение файлов в / из образы / образов,
перемещение файлов в образах между пользовательскими областями (users),
удаление / переименовывние файлов в образах,
восстанавление "удаленных" файлов в образах (путем перемещения в любую область пользователя),
изменение атрибутов файлов в образах,
просмотр файлов в образах в текстовом / шестнадцатиричном режимах в разных кодировках. Текущие поддерживаемые кодировки:
KOI8-R,
KOI-7H1,
KOI-7H2,
Кодировка ATM (видоизмененная KOI8-R),
Кодировка Profi (видоизмененная KOI8-R),
ISO/IEC 8859-5:1999, OEM/DOS (CP 866), Windows (CP 1251).
просмотр некоторых файлов изображений в образах. Текущие форматы:
.BSV - дамп экрана Вектор-06Ц,
.RBR / .RMB - файлы редактора "Рембрандт" (Вектор-06Ц),
.SCR - файлы редактора "Карандаш" (Вектор-06Ц),
.SPR - файлы редактора "Draw" (Вектор-06Ц),
Дампы экрана Корвет (детектятся по размеру),
.ZAS-изображения Корвет,
.PIC - дамп экрана Корвет (редактор "Grin"),
.GRF - запакованный дамп экрана Корвет (редактор "Grin"),
.WIN - окно (участок экрана Корвет) (редактор "Grin"),
.ABR - файлы редактора "Абрис" (Корвет),
.GRF-изображения Profi,
Экранные файлы ZX Spectrum (как в образах Plus3DOS, так и в других образах - определение формата происходит по размеру файла (6912/6144 без заголовка)),
.BLK, графические файлы, созданные в пакете GRAF для ATM.
сохранение системных дорожек в файл,
просмотр карты расположения файлов в ИСХОДНОМ образе.
56795 56796 56797 56798 56799
v1.3.2.1410 (17.02.2019)
* Отключена валидация параметров "Число цилиндров" и "Число секторов на одной дорожке";
* Добавлена возможность группового изменения атрибутов выделенных файлов.
v1.3.0.1408 (7.11.2017)
+ Добавлена экспериментальная "прямая" поддержка образов дисков Amstrad DSK;
+ В Настройках добавлена возможность выбора языка интерфейса по умолчанию, со сменой "на лету";
Параметры командной строки для принудительного выбора языка (-l ru или --lang ru) также сохранены.
* Исправлена ошибка, не позволяющая в некоторых случаях сохранить образ диска с числом блоков менее 256;
+ Lister. Добавлен просмотр графических файлов BLK, созданных в пакете GRAF для ATM (Большое спасибо Максиму Тимонину за помощь);
+ Lister. При просмотре Spectrum BASIC добавлена возможность включения/отключения отображения контрольных (непечатных) кодов, реальных значений чисел;
В Настройках добавлена возможность настройки отображения по умолчанию.
+ Lister. Добавлены режимы просмотра дизасма в мнемониках Intel 8080 и Z80;
Для COM-файлов CP/M и кодовых файлов +3 DOS эти режимы используются, как режимы просмотра по умолчанию. В Настройках также появились опции, касающиеся этих режимов просмотра.
* Lister. Исправлена ошибка просмотра в режиме текста для +3 DOS;
* Мелкие исправления.
v1.2.1.1401 (1.09.2017)
+ Lister. Добавлена поддержка просмотра графических файлов GRF с палитрой (Profi);
* Разные мелкие изменения;
* Исправлены мелкие ошибки.
v1.2.0.1400 (08.03.2017)
+ Добавлен диалог Свойств образа (Alt+Enter);
+ Добавил возможность открытия файла образа диска, передав его имя в качестве параметра командной строки (Спасибо barsik'у за замечание);
+ Добавил возможность сохранять последнии пути операций Открытия/Сохранения образа, Извлечения/Добавления файла в образ;
Добавил опцию в Настройки. По умолчанию включена.
+ Добавил Ctrl+A для выделения/снятия выделения для всех файлов;
Курсор при этом не обязательно должен находится в списке файлов.
+ Добавлена функция подсчета неиспользуемого места в последних блоках файлов;
См. соответствующий пункт в меню. Подскажите горячую клавишу - добавим.
+ Добавил создание образа диска Орион по заданным пользователем параметрам;
Для этого при создании образа надо вместо файла системы выбрать пункт Настроить. После чего откроется диалог, где можно ввести все необходимые параметры, либо выбрать один из 4 вариантов предустановки.
(За эти четыре обновления скажем спасибо barsik'у).
+ В Настройки добавлены четыре опции для +3;
+ Для +3 добавлена возможность добавить заголовок к существующему файлу;
+ Поддержка образов HDD Ориона (кроме создания);
При открытии образа диска оригинальный файл образа автоматически бэкапится (это можно отключить в настройках, но пока крайне не рекомендую), а вся работа происходит с копией образа. Все дело в том, что работа утилиты с образом HDD происходит несколько иначе, чем с образами FDD. Образа FDD грузятся в память целиком, после чего все манипуляции происходят именно там, а оригинальный образ остается нетронутым, пока не будет использована функция сохранения. Работа же с образом HDD идет напрямую в файле образа, то есть все действия (удаление/переименование файлов, добавление файлов,...) происходят сразу в образе и сохранения образа не требуют. Кроме того, работа с HDD на данный момент достаточно сыра. Поэтому на всякий случай рекомендую не отключать опцию бэкапа.
+ При извлечении файлов из образа, символы имени файла теперь тоже проверяются на допустимость;
Символ для замены недопустимых символов добавлен в Настройки.
+ При добавлении в образ файлов с кириллическими именами, такие имена теперь корявенько так транслитируются :)
+ Добавлена опция игнорирования "удаленных" файлов при открытии образа (отключена по умолчанию);
В некоторых случаях наличие "удаленных" файлов в образе может вызывать ошибку при попытке открыть образ. Попробуйте использовать эту опцию.
+ Добавлена возможность перетаскивания файлов мышью из SteinBlume наружу (в проводник, в другие приложения или в другой открытый экземпляр SteinBlume);
В результате немного поменялась логика работы при перетаскивании файлов между областями пользователя. Теперь сменить режим переноса/копирования (Shift) можно в любой момент до отпускания кнопки мыши (что логичнее и удобнее). Изменился вид курсоров для этих операций на стандартный для Windows.
* Изменена горячая комбинация для открытия диалога настроек (Ctrl+Enter);
* Изменение обработки ошибок при открытии файла;
При открытии образа, если формат образа неопознан, теперь можно выбрать вариант дальнейших действий:
открыть образ, используя параметры предыдущего образа (если ранее ничего не открывалось, используются параметры по умолчанию),
открыть образ, используя параметры по умолчанию,
открыть образ как .xdi (ввести параметры образа).
* Изменение обработки ошибок при открытии файла;
Теперь при ошибке превышения маскимального номера блока, операция открытия образа не прерывается. Обработка записи в директории, вызвавшей ошибку пропускается. В конце операции открытия выводится список произошедших при открытии ошибок (опционально, по умолчанию вывод ошибок отключен).
* Исправлена ошибка создания образа диска;
Проявлялась в невозможности сохранить образ.
* Исправлено открытие образов Скорпиона (сломал в версии 1101386);
* Lister: Исправлена работа выбора кодировки при сохранении текста из Lister;
* Lister. Теперь кодировка текста определяется автоматически (можно отключить в Настройках);
* Lister. Изменена горячая комбинация для кодировки АТМ (Ctrl+M);
* Lister. Исправлено отображение табуляции;
* Lister. Исправлен просмотр изображений WIN (Корвет);
Были перепутаны цвета.
* Исправлены мелкие ошибки.
v1.1.1.1388
* Починена функция переноса/копирования файлов между областями пользователей, поломанная в v1.0.0.1373 (12.04.2016). Спасибо KTSerg за баг-репорт.
v1.1.0.1386
* Исправлена ошибка при сохранении образов Байт-01;
* Исправлено переименование;
Нажатие клавиши Del при переименовании теперь не вызывает функцию удаления файла.
* Исправлена функция добавления файлов в образ перетаскиванием;
Теперь при добавлении в образ группы файлов, сообщение о нехватке места выводится только один раз, а не для каждого файла, а при совпадении имен нажатие "Отмены" вызывает отмену всей операции.
* Изменена функция "Открыть образ как .xdi";
Теперь с помощью этой функции можно попробовать открыть файл с любым расширением.
* Изменена функция извлечения файла;
Ранее нельзя было извлечь файл, в имени которого имеются недопустимые символы. Теперь такие символы автоматически заменяются специальным символом, заданным в Настройках.
* Исправлены мелкие ошибки, добавлены новые;
+ Lister: Добавлен просмотр графических файлов Вектор-06Ц. Спасибо KTSerg, Ивану Городецкому (ivagor), AzAtom, PRSoft;
Поддержаны следующие форматы файлов:
BSV - дамп экрана Вектор-06Ц. На данный момент поддержан только режим 256х256 пикселей. Если на диске (в той же области пользователя, что и сам файл) также хранится файл палитры (должен иметь тоже имя, что и у файла изображения, а расширение "PAL"), то при просмотре будет использована палитра из этого файла, в противном случае будет использована палитра BASIC 2.5;
RBR / RMB - файлы редактора "Рембрандт";
SCR - файлы редактора "Карандаш". Поддержано расширение от PRSoft - возможность использование внешнего файла палитры, имя которого должно быть прописано в самом файле изображение вместо номера телефона автора редактора "Карандаш" (байты 05-0F) и дополнено пробелами. ВНИМАНИЕ! ДАННАЯ ВОЗМОЖНОСТЬ НЕ ТЕСТИРОВАЛАСЬ НА РЕАЛЬНЫХ ФАЙЛАХ! В случае отсутствия ссылки на палитру (стандартный формат), используется палитра BASIC 2.5;
SPR - файлы редактора "Draw".
+ Lister: Добавлен просмотр дампа экрана Корвета;
Детектятся по размеру.
+ Lister: Добавлен просмтор графических файлов редактора "Grin" (Корвет);
Поддержаны следующие форматы файлов:
PIC - дамп экрана Корвета;
GRF - запакованный дамп экрана Корвет;
WIN - окно (участок экрана Корвет).
+ Lister: Добавлен просмотр графический файлов редактора "Абрис" (Расширение .ABR) (Корвет).
СКАЧАТЬ:
ВНИМАНИЕ! Все файлы были проверены через VirusTotal (https://www.virustotal.com/ru/). С архивами все в порядке, а вот на все инсталляторы без исключения один из толпы антивирусов все же ругается! Я уверен, что это ложная тревога. Но промолчать не имею права.
Полная версия: Инсталлятор (http://era-cg.su/download.php?file=steinblume_install_full.exe) | Архив ZIP (http://era-cg.su/download.php?file=steinblume_install_full.zip)
По частям:
Основная утилита: Инсталлятор (http://era-cg.su/download.php?file=steinblume_install_light.exe) | Архив ZIP (http://era-cg.su/download.php?file=steinblume_install_light.zip)
Системные дорожки (Необходимы для создания новых образов CP/M-дисков): Инсталлятор (http://era-cg.su/download.php?file=steinblume_install_sys.exe) | Архив ZIP (http://era-cg.su/download.php?file=steinblume_install_sys.zip)
Дополнительные утилиты (Disk Image Analyzer и KDI Checksum Reader): Инсталлятор (http://era-cg.su/download.php?file=steinblume_install_utils.exe) | Архив ZIP (http://era-cg.su/download.php?file=steinblume_install_utils.zip)
Ну вот, вроде бы, и все. Мне можно писать или сюда, или на мыло (speccy{собакин}era-cg{точка}su (mailto:speccy@era-cg.su)).
Рад буду всем отзывам, предложениям, замечаниям, багрепортам, etc...
(ц) Black Cat / ERA Creative Group
P.S. А начиналось все тут: http://zx-pk.ru/showthread.php?t=11294
•просмотр некоторых файлов изображений в образах. Текущие форматы:
•.grf-изображения Profi...
grf есть двух форматов. обычный, без палитры и вторая версия с палитрой. есть между ними мелкие различия. желательно, вторую версию формата так же поддержать.
Black Cat / Era CG
12.04.2016, 10:05
grf есть двух форматов. обычный, без палитры и вторая версия с палитрой. есть между ними мелкие различия. желательно, вторую версию формата так же поддержать.
Знаю. Надо только ссылку на описание формата (или само описание) и несколько файлов для теста. И можно сделать.
Спасибо за поддержку образа дискет Вектора.
Видимо расширение "fdd" не включено в строку маски "все поддерживаемые" (при открытии образа), по этому его нужно выбирать из списка, иначе образов не видно.
Black Cat / Era CG
15.04.2016, 17:33
Спасибо за поддержку образа дискет Вектора.
Не за что.
Видимо расширение "fdd" не включено в строку маски "все поддерживаемые" (при открытии образа), по этому его нужно выбирать из списка, иначе образов не видно.
Ага. Мог накосячить. Впопыхах все равно как-то делал. Долго не трогал утилиту, а потом впопыхах прикрутил fdd. Сегодня исправлю ночью.
А в этом менеджере есть возможность записать произвольный файл в системную область дискеты?
С моей точки зрения не имеет смысла держать образы всех версий операционок для возможности создать образ дискеты. Т.к. все операционки есть в виде файлов. Может дать пользователю возможность записать в системную область любой файл по его выбору, по аналогии функции "Добавить файл...", только тут "Записать в системную область" ???
Формат системной области вроде стандартный для СР/М, или по крайней мере аналогичен Корвет-овскому. Значения первых двух строк (32 байт) известны (расписаны), а ОСь (загрузочный файл) пишется с адреса 0080h.
И "сохранение системной области" какое-то странное... (не обычное), скорее служебная функция для разработчика, а не для пользователя. Поскольку пользователю если и нужно сохранить системную область, то подразумевается - выкусить из неё загрузочный файл, и сохранить его в виде *.rom (например).
А ещё вспомнил, не знаю как для СР/М, для Вектора стандартное заполнение пустого директория Е5-во всех строках (не через одну со строками из 00). Как-то "глаз режет", когда строки из Е5 чередуются со стоками из 00. :)
Black Cat / Era CG
15.04.2016, 21:54
Так во-первых.
Видимо расширение "fdd" не включено в строку маски "все поддерживаемые" (при открытии образа), по этому его нужно выбирать из списка, иначе образов не видно.
Ловим экстренное лечение косяка. Нет времени объяснять, просто замените этим файликом (во вложении), такой же в папке language. 56834 (распаковать в language)
KTSerg А в этом менеджере есть возможность записать произвольный файл в системную область дискеты?
С моей точки зрения не имеет смысла держать образы всех версий операционок для возможности создать образ дискеты. Т.к. все операционки есть в виде файлов. Может дать пользователю возможность записать в системную область любой файл по его выбору, по аналогии функции "Добавить файл...", только тут "Записать в системную область" ???
Формат системной области вроде стандартный для СР/М, или по крайней мере аналогичен Корвет-овскому. Значения первых двух строк (32 байт) известны (расписаны), а ОСь (загрузочный файл) пишется с адреса 0080h.
И "сохранение системной области" какое-то странное... (не обычное), скорее служебная функция для разработчика, а не для пользователя. Поскольку пользователю если и нужно сохранить системную область, то подразумевается - выкусить из неё загрузочный файл, и сохранить его в виде *.rom (например).
Ну. Как-то так оно сделано. Это просто первые несколько дорожек диска. И смысл их сохранения предполагался именно для того, чтобы потом кинуть полученный файл в соответствующую подпапку папки sys, а потом выбирать при создании нового образа. То есть произвольный файл в системную область записывается только так пока. Переименовывается, кидается в подпапку папки sys и выбирается при создании образа.
А ещё вспомнил, не знаю как для СР/М, для Вектора стандартное заполнение пустого директория Е5-во всех строках (не через одну со строками из 00). Как-то "глаз режет", когда строки из Е5 чередуются со стоками из 00. :)
Ну можно переделать, конечно, но смысл только разве эстетический.
...
Ну. Как-то так оно сделано. Это просто первые несколько дорожек диска. И смысл их сохранения предполагался именно для того, чтобы потом кинуть полученный файл в соответствующую подпапку папки sys, а потом выбирать при создании нового образа.Это я понял, что сохраняются служебные дорожки, для того что-бы потом можно было из них сделать новый образ. Просто если учесть, что у Вектора в служебной области может быть записана ОСь (МикроДос) - которых наверное штук 20 разных, то нужно делать порядка 20ти файлов "образов системных дорожек". А Вектор ещё нормально работает если служебная область вообще пуста (заполнена кодом Е5), даже первые 32 байта не заполнены. А можно вообще записать в системную область, запускным файлом, какой-нибудь тест или загрузчик, при этом количество образов системных дорожек ещё больше увеличится...
То есть произвольный файл в системную область записывается только так пока. Переименовывается, кидается в подпапку папки sys и выбирается при создании образа.
Это я то-же понял, но например что-бы записать в образ диска произвольную ОСь, нужно сначала создать файлик в 128 байт (Е5), дописать к нему выбранную ОСь, дополнить полученный файл до размера 40КБ кодами Е5, откорректировать первые 32 байта полученного файла значениями, подходящими конкретно для данной ОСи. Тогда получится корректный образ системной области с ОСью из которого можно уже делать образ дискеты.
Я конечно-же не знаю, что хранится в системной области образов дискет других компов.
Но для создания корректного образа дискеты для Вектора можно просто создавать файл размером 820КБ заполненный кодом Е5, если создаётся образ без загрузочного файла.
И хранить только 32 байта, которые потом станут началом нового образа, если на него сразу пишут загрузочный файл. Останется выставить адрес загрузки/старта, длину файла и контрольную сумму служебной области.
Black Cat / Era CG
16.04.2016, 10:43
KTSerg, ладно. Думаю, можно подумать над замечаниями, если, видимо, есть смысл. Насчет пустых образов, они везде (почти) вполне работают, если не системные, но так как утила более-менее универсальная, то возникает вопрос детекта, так как число сис. дорог и прочее у разных компов разные, то надо как-то понимать, как интерпретировать образ. И именно эти 32 байта в образах Корвета, Ориона, Байта и Вектора проблему решают очень хорошо. Другой вариант, заставлять пользователя вводить все каждый раз в ручную. Поэтому я и старался сделать так, чтобы эти 32 байта, там где это корректно, будут всегда заполнены. А так как там хранятся адреса, касаемые ОСи, то решил их не разрывать. Ибо на самом деле знания всегда были и остаются довольно поверхностными (у меня). Вот и стараюсь как-то искать наиболее безбажные варианты решений и слушать людей. Если почитать тему, ссылка на которую указана в конце первого поста, станет понятно, что утила создавалась по сути коллективно, и что в самом начале я совсем слабо представлял, что это будет и как оно будет работать.
Встретил на образах для Вектора файлы в имени которых есть символы (наклонную черту) не позволяющие извлечь этот файл из образа, на пример "TEXT/1.TXT" (видимо для МикроДоса это было допустимо).
Переименовывать перед извлечением конечно можно - как экстренный вариант. Но может быть дать возможность корректировать имя извлекаемого файла, если оно с точки зрения винды "не корректно"?
Black Cat / Era CG
03.07.2016, 15:16
Но может быть дать возможность корректировать имя извлекаемого файла, если оно с точки зрения винды "не корректно"?
Сделаем.
Там, кстати, есть альтернативный вариант, сохранить файл из Lister'а:)
Black Cat / Era CG
23.07.2016, 23:41
SteinBlume v1.1.0.1386 (23.07.2016)
Очередное обновление.
Как-то так:
* Исправлена ошибка при сохранении образов Байт-01;
* Исправлено переименование;
Нажатие клавиши Del при переименовании теперь не вызывает функцию удаления файла.
* Исправлена функция добавления файлов в образ перетаскиванием;
Теперь при добавлении в образ группы файлов, сообщение о нехватке места выводится только один раз, а не для каждого файла, а при совпадении имен нажатие "Отмены" вызывает отмену всей операции.
* Изменена функция "Открыть образ как .xdi";
Теперь с помощью этой функции можно попробовать открыть файл с любым расширением.
* Изменена функция извлечения файла;
Ранее нельзя было извлечь файл, в имени которого имеются недопустимые символы. Теперь такие символы автоматически заменяются специальным символом, заданным в Настройках.
* Исправлены мелкие ошибки, добавлены новые;
+ Lister: Добавлен просмотр графических файлов Вектор-06Ц. Спасибо KTSerg, Ивану Городецкому (ivagor), AzAtom, PRSoft;
Поддержаны следующие форматы файлов:
BSV - дамп экрана Вектор-06Ц. На данный момент поддержан только режим 256х256 пикселей. Если на диске (в той же области пользователя, что и сам файл) также хранится файл палитры (должен иметь тоже имя, что и у файла изображения, а расширение "PAL"), то при просмотре будет использована палитра из этого файла, в противном случае будет использована палитра BASIC 2.5;
RBR / RMB - файлы редактора "Рембрандт";
SCR - файлы редактора "Карандаш". Поддержано расширение от PRSoft - возможность использование внешнего файла палитры, имя которого должно быть прописано в самом файле изображение вместо номера телефона автора редактора "Карандаш" (байты 05-0F) и дополнено пробелами. ВНИМАНИЕ! ДАННАЯ ВОЗМОЖНОСТЬ НЕ ТЕСТИРОВАЛАСЬ НА РЕАЛЬНЫХ ФАЙЛАХ! В случае отсутствия ссылки на палитру (стандартный формат), используется палитра BASIC 2.5;
SPR - файлы редактора "Draw".
+ Lister: Добавлен просмотр дампа экрана Корвета;
Детектятся по размеру.
+ Lister: Добавлен просмтор графических файлов редактора "Grin" (Корвет);
Поддержаны следующие форматы файлов:
PIC - дамп экрана Корвета;
GRF - запакованный дамп экрана Корвет;
WIN - окно (участок экрана Корвет).
+ Lister: Добавлен просмотр графический файлов редактора "Абрис" (Расширение .ABR) (Корвет).
Так же отдельное спасибо KTSerg за набор системных дорог для Вектора.
И еще: в предыдущие версии каким-то образом затесались старые версии доп. утилит. Обновил в архивах и инсталлерах.
Ссылки в первом сообщении темы.
Black Cat / Era CG
25.07.2016, 22:14
SteinBlume v1.1.1.1388 (25.07.2016)
И еще одно небольшое обновление-исправление. Спасибо KTSerg.
v1.1.1.1388
* Починена функция переноса/копирования файлов между областями пользователей, поломанная в v1.0.0.1373 (12.04.2016). Спасибо KTSerg за баг-репорт.
Ссылки как всегда в первом сообщении темы.
Black Cat / Era CG
19.08.2016, 19:35
А юзеры-то у утилки остались?:v2_dizzy_coder:
:
А юзеры-то у утилки остались?:v2_dizzy_coder:
Есть такие ;)
Black Cat / Era CG
30.08.2016, 21:50
Не густо однако ж:)
Black Cat / Era CG
11.02.2017, 12:15
Небольшие внутренние изменения на сайте, если че-то перестанет качаться, пишите.
Остались остались. Я постоянно жду обновлений, что бы появилась полноценная утилита для работы с образами CP/M дисков. Очень нужна.
Black Cat / Era CG
14.02.2017, 20:09
Остались остались. Я постоянно жду обновлений, что бы появилась полноценная утилита для работы с образами CP/M дисков. Очень нужна.
О! А я тем временем поздабил. Надо, наверное, расчехлять исходники, и возобновлять работу над брошенным детищем своим.
Максагор
14.02.2017, 21:24
О! А я тем временем поздабил. Надо, наверное, расчехлять исходники, и возобновлять работу над брошенным детищем своим.
Тут даже вопрос так не стоит. Конечно надо! Например, чтобы можно было "на ходу" менять конфигурации и форматы - например, если я возьму и сниму образ винчестера АТМ, где у меня CP/M разделы по 4 и 8Мб - чтобы их тоже можно было бы прочитать.
Black Cat / Era CG
14.02.2017, 21:36
если я возьму и сниму образ винчестера АТМ, где у меня CP/M разделы по 4 и 8Мб - чтобы их тоже можно было бы прочитать.
Если это правильный просто-дамп со стандартным MBR, то текущая (не релиженная, та, на которой все забросилось) версия их умеет.
Воспользовался SteinBlume для просмотра ODI-, KDI-, CPM- файлов дискет от ОРИОНА, КОРВЕТА и Роботрона. А также для формирования "ODI-дискет" для их использования в эмуляторе B2M. Отличное средство, а то я уже собирался писать своё нечто подобное, но вовремя подсказали, что можно "отковырять" CPM-файл из ODI-образа с помощью Steinblume.
Хочу поделиться впечатлениями от работы с выше указанными образами дисков. Ниже отнюдь не критика, лишь описание того, что создало мне неудобства, а также некоторые глыпые пожелания. Так что пожалуйста без обид и реплик в стиле "сам дурак". Возможно в будущем, что-то несложно будет учесть в очередном релизе.
По нажатию кнопки записи файл записался не в исходный файл, а под тем же именем в каталог из которого в последний раз был импорт/экспорт файла.
При очередном запуске, программа не помнит последний каталог в котором был импорт или экспорт при последнем использовании программы.
Не хватает функции CREATE. По которой создаётся чистый диск (аналог форматирования). Это необходимо оттого, что эмулятор B2M не форматирует диски, отчего создать диск иного формата невозможно (например HD-диск 1600 кб). При этом сначала должен выводиться блок параметров диска, где можно изменить размер блока (1/2/4/8/16), размер физ.сектора (512/1024, т.е SD/DD), число физ.секторов в треке (5...11), число сторон (1/2 т.е SS/DS), размер каталога в блоках (1-16), число резервируемых для системы треков (1-8) и общее число треков (35,40,42,80,83). При этом и размер файла образа диска приводится в соответствие.
С учётом того, что в эмуляторе B2M не работает форматирование, жаль, что нет функции форматирования, т.е заполнение всего диска кодом E5, кроме первых 32 байтов диска, где ИНФО-блок дискеты. В крайнем случае, хотя-бы заполнение только области каталога кодом E5. Иначе создавать чистый пустой диск (для подготовки дистрибутива) приходится вручную HEX-редактором, используя как болванку какой-либо ODI-файл, или же в CP/M утилите DU.COM задаётся автоповторная команда (/) на заполнение всего диска кодом E5, что решает проблему, но работает неприемлемо долго.
К сожалению, нет массовой пометки всех файлов по Control-A. Поэтому реально утомляет отмечать "галочкой" по одному файлу, чтобы их удалить и получить чистый диск, если файлов более сотни, что в случае ORD-файлов имеет место.
Хотел бы иметь функцию MAP, когда блоки занятые файлом (на котором стоит балка указатель) высвечиваются в карте памяти цветом и можно увидеть как дефрагментацию файла, так и определить с каким офсетом в диске находится первый блок файла (чтобы затем хотя-бы в HEX-редакторе "поковырять" файл).
Хотел бы иметь функцию просмотра в HEX-виде, хотя-бы каталога, чтобы увидеть как раскиданы экстенты и их номера.
Хотел бы иметь функцию подсчета впустую истраченного места диска. Т.е сумму неиспользованного места в последних блоках файлов. При блоках в 16 кб и маленьком среднем размере файлов пустые потери могут даже превышать объём хранимых на диске файлов. Благодаря чему можно узнать эффективность использования LBR-файлов и архиваторов.
Хотел бы иметь функцию SQEEZE, когда файлы схлопываются на место пустых дыр, оставляя место для максимального нефрагментированного файла. Этот же эффект, а также полная дефрагментация, достигается экспортом всех файлов в Windows и последующее их обратное копирование в ODI-образ чистого диска. Но из-за отстутствия общей маркировки по Control-A выполнить это в данной версии хлопотно и долго.
Хотел бы иметь функцию удаления, которая на место удалённых файлов записывает E5 (как в каталоге, вместо удалённых экстентов, так и в теле блоков файла). Восстанавливать удалённые файлы мне не надо, зато в дискете, где свободное место везде E5. Это можно сделать опцией пользователя.
Хотел бы иметь функцию поиска HEX- и ASCII- строки по всему диску, начиная с заданного трека. То же, что есть в CPM-утилите DU.COM.
Black Cat / Era CG
19.02.2017, 16:28
По нажатию кнопки записи файл записался не в исходный файл, а под тем же именем в каталог из которого в последний раз был импорт/экспорт файла.
Там ваще сейчас все довольно забавно. При открытии образа утилита:
- пытается определить формат образа (для odi/kdi проблем нет, т.к. на диске есть dpb),
- считывает системные дорожки в память,
- вычитывает файлы, объединяя их из отдельных экстентов.
При сохранении:
- "форматирует" образ,
- записывает в него системные дорожки,
- заново записывает все файла назад по порядку (то есть, если в оригинальном образе экстенты файла были перемешаны с другими файлами, то при сохранении все экстенты идут подряд).
Такая довольно странная логика работы, но по-моему я ее еще пока не менял. В итоге исходный образ по сути перестает существовать, а на его месте появляется по сути вновь созданный сохраненный с тем же именем и т.д. Если что-то пошло не так, значит баг, надо искать.
Хотел бы иметь функцию SQEEZE, когда файлы схлопываются на место пустых дыр, оставляя место для максимального нефрагментированного файла. Этот же эффект, а также полная дефрагментация, достигается экспортом всех файлов в Windows и последующее их обратное копирование в ODI-образ чистого диска. Но из-за отстутствия общей маркировки по Control-A выполнить это в данной версии хлопотно и долго.
По сути из-за особенностей при открытии/сохранении дефрагментация происходит автоматом. Достаточно, например, переименовать какой-то файл, а потом переименовать обратно (чтобы установился флаг модификации образа - появится дискета в строке статуса), потом сохранить образ. В пересозданном заново образе фрагментации не будет.
При очередном запуске, программа не помнит последний каталог в котором был импорт или экспорт при последнем использовании программы.
Это да. Можно запоминать. Запишу.
Не хватает функции CREATE. По которой создаётся чистый диск (аналог форматирования). Это необходимо оттого, что эмулятор B2M не форматирует диски, отчего создать диск иного формата невозможно (например HD-диск 1600 кб). При этом сначала должен выводиться блок параметров диска, где можно изменить размер блока (1/2/4/8/16), размер физ.сектора (512/1024, т.е SD/DD), число физ.секторов в треке (5...11), число сторон (1/2 т.е SS/DS), размер каталога в блоках (1-16), число резервируемых для системы треков (1-8) и общее число треков (35,40,42,80,83). При этом и размер файла образа диска приводится в соответствие.
По сути это делается при создании нового образа. Меню Файл->Создать образ, только для Ориона/Корвета нельзя задать dph/dpb (они берутся из выбранных системных треков). Создать образ с произвольной геометрией можно, выбрав при создании xdi. Только при этом dph/dpb не будет сохраняться на диск (т.к. я не знаю, что туда сохранять кроме dpb/dph) и для полученного xdi-образа, эти параметры придется при каждом открытии вбивать вручную.
К сожалению, нет массовой пометки всех файлов по Control-A. Поэтому реально утомляет отмечать "галочкой" по одному файлу, чтобы их удалить и получить чистый диск, если файлов более сотни, что в случае ORD-файлов имеет место.
Добавить Ctrl-A не сложно. Добавлю. Сейчас отметить все файлы можно мышью, установив галочку сверху (в заголовке списка файлов).
Хотел бы иметь функцию MAP, когда блоки занятые файлом (на котором стоит балка указатель) высвечиваются в карте памяти цветом и можно увидеть как дефрагментацию файла, так и определить с каким офсетом в диске находится первый блок файла (чтобы затем хотя-бы в HEX-редакторе "поковырять" файл).
Это меню Инструменты->Карта образа диска.
Хотел бы иметь функцию просмотра в HEX-виде, хотя-бы каталога, чтобы увидеть как раскиданы экстенты и их номера.
Ну в исходном образе эту информацию (не в hex-виде правда) можно получить все из той же карты. Но, учитывая, что образ пересоздается при сохранении, эта информация актуальна только на момент открытия образа.
Хотел бы иметь функцию подсчета впустую истраченного места диска. Т.е сумму неиспользованного места в последних блоках файлов. При блоках в 16 кб и маленьком среднем размере файлов пустые потери могут даже превышать объём хранимых на диске файлов. Благодаря чему можно узнать эффективность использования LBR-файлов и архиваторов.
Можно, думаю, сделать.
Хотел бы иметь функцию удаления, которая на место удалённых файлов записывает E5 (как в каталоге, вместо удалённых экстентов, так и в теле блоков файла). Восстанавливать удалённые файлы мне не надо, зато в дискете, где свободное место везде E5. Это можно сделать опцией пользователя.
Насколько я помню, сейчас при удалении файл именно удаляется (а не помечается удаленным), то есть занятое им на диске (в образе) место освобождается.
Хотел бы иметь функцию поиска HEX- и ASCII- строки по всему диску, начиная с заданного трека. То же, что есть в CPM-утилите DU.COM.
Посмотрите меню Действия->Найти в образе.
- - - Добавлено - - -
т.к. я не знаю, что туда сохранять кроме dpb/dph
Там вроде 10 байт в начале получается. Если придумать, чем их заполнять (вроде в Корвете и Орионе у них разное назначение), то можно сделать создание пустого образа без системы по заданным параметрам с корректными dph/dpb.
Не знаю, что сохранять в BOOT-секторе кроме DPB
Привожу все необходимые сведения, чтобы сформировать ODI-образ любого формата. Ниже содержимое ИНФО-блока (первых 32 байтов BOOT-сектора).
Следующие за ИНФО-блоком 15 байтов с офсетом 20...2E содержат имя диска, а байт 2F это стоп байт =0.
SPT EQU 5 ; sectors pro track
SIDES EQU 2 ; число плоскостей (только 1 или 2)
SSIZE EQU 1024 ; размер сектора (только 1024 или 512)
TRKS EQU 80 ; число треков формата (35,40,42,80,82,83)
if SSIZE eq 1024
SPARM EQU 3 ; параметр размера. При MFM: 3 (1024)
else
SPARM EQU 2 ; параметр размера. При FM: 2 (512)
endif
; Далее собственно все 32 байта ИНФО-блока дискеты
A_0000: rept 8
defb 0 ; не используется 8 байтов (здесь код загрузчика)
endm
A_0008: defb 1 ; не используется (лучше не трогать)
A_0009: defb 1 ; не используется (лучше не трогать)
A_000A: defb SPARM ; при SD =2 (512), при DD =3 (1024)
A_000B: defb SIDES-1 ; при SS =0, при DS =1
A_000C: defb SPT ; sectors pro track (1...11)
A_000D: defb 0 ; не используется (лучше не трогать)
A_000E: defb TRKS ; число треков формата (35,40,42,80,82,83)
A_000F: defb 0 ; не используется (лучше не трогать)
DPB: DW SPT*SSIZE/128 ; кол-во лог.секторов по 128 байт на треке
defb 4 ; размер блока (3-1K, 4-2K, 5-4K, 6-8K)
defb 15 ; размер блока (7-1К, 15-2K, 31-4K, 63-8K)
defb 1 ; параметр экстента (0-1K, 0-2K, 1-4K, 3-8K)
DW SPT*TRKS*SIDES/2-1 ; размер дискового пространства в блоках минус 1
DW 128-1 ; количество записей в каталоге минус 1
defb 11000000B,0 ; маска занятых каталогом блоков
DW 128/4 ; количество контр-мых лог.секторов каталога
DW 4 ; количество резервных дорожек
A_001F: DS KS ; здесь контр.сумма ИНФО-блока 0...1E
A_0020: rept 15 ; 15 байтов имени диска
defb 20H
endm
A_002F: defb 0 ; стоп-байт для вывода имени п/п-мой MSSG
Число треков в большинстве реализаций не используется (развитые реализации CP/M, зная, что дисковод на 80 треков, а дискета на 40, начинают читать 40-ка дорожечные дискеты на 80-ти дорожечном флопе, делая 2 шага на дорожку). КС блока параметров в КОРВЕТЕ и ОРИОНЕ считаются по разному (байт 66H добавлялся чтобы КС в байте 1F была такой-же как в КОРВЕТЕ при DD/DS)
Чтобы избежать зависа при установке чужой дискеты и на случай дохлоты, целостность ИНФО-блока контроллируется подсчётом КС первых 31-го байта BOOT-сектора (эта КС читается из байта с офсетом 1F - т.е из 32-го байта). Вот как проверяется эта КС во всех CP/M ОРИОНА (в ОС не CP/M ИНФО-блок другой).
LD HL,BUFFER ; в буфере загружен BOOT-сектор
LD A,66H ; было надо для совместимости с КОРВЕТОМ
LD B,31 ; считаем арифм.сумму 31 байта ИНФО-блока
LOOP: ADD A,(HL)
INC HL
DJNZ LOOP
CP (HL)
JR Z,NODISK
Таким образом, байт с оффсетом в 1F содержит КС - арифметическую сумму (плюс 66H) первых 31 байта дискеты. Если КС не совпала, значит чужой или дохлый диск. Если первый байт BOOT-сектора =C3, то загрузчик считает дискету системной. КС контроллируется загрузчиком с дискеты и п/п-ммой SELDSK в CP/M-BIOS.
Загрузчик с дискеты работает так. Он грузит BOOT-сектор в свой буфер и первым делом контроллирует КС ИНФО-блока. Если первый байт C3, то из BOOT-сектора кидает первые 256 байт на адрес 0 в банку ОЗУ, номер которой берётся из BOOT-сектора из байта с офсетом 9FH (так в моём загрузчике 1990 года и загрузчике МП ОРИОН-СЕРВИС, но в загрузчике ОРИОНСОФТ адрес банки не 9F, а другой, причём и номер банки только 0 или 1, в банку 2 нельзя).
Информация приведена, чтобы было ясно как создать диск любого формата, чтобы он читался из CP/M ОРИОНА. Например, чтобы создать диск на 10 секторов с 82 треками достаточно подставить SPT=10, SIDES=2 и TRKS=82. Затем выше приведённой программкой считаем КС и подставляем его байтом со смещением 1FH. Размер созданного файла надо сделать точно равным физическому размеру диска - 1640 кб.
Но в основном использовался формат 1300 кб и именно на такой максимальный размер рассчитаны версии CP/M для HD-дисковода. Это ограничение из-за объёма Alloc Table, т.е её размер допускает диск максимум размером в 1300 кб. Поясню почему 1300, а не 1600.
На IBM в контроллере дисковода нельзя изменить кварц. А на ОРИОНЕ это делалось постоянно. По причине того, что для HD формата 1600К надо иметь скорость ОРИОНА, минимум, 5 МГЦ. Но из-за того, что при ТУРБО-200% РУ5-е работают на 5 МГЦ, они перегреваются и надёжность низка. Потому в основном использовалась схема ТУРБО, где ОЗУ остаётся на 2.5 МГЦ, дающая лишь 3.5 или 3.9 МГЦ реального такта. Такой скорости хватало только на чтение формата 7 или 8 секторов на трек на HD-дискете (с соответствующей заменой кварца в КНГМД). Дискеты HD-5.25 из-за большей скорости колеса использовались в формате 6 секторов (960К). Т.е из-за скоростных ограничений использовались полу-торные форматы. На PC было только 3 формата 720, 1440 и 1.20 мб, а на ОРИОНЕ - куча форматов.
Создание диска делается при создании нового образа... Создать образ с произвольной геометрией можно, выбрав при создании xdi
Насчёт xdi не понял, а в меню 'СОЗДАТЬ ОБРАЗ' есть только один формат 800К (лучше создавать чистый диск, а не с системой, тем более древней).
Удобно в меню 'СОЗДАТЬ ОБРАЗ' иметь форматы:
800К - DD/DS, 80 треков, 5 секторов по 1024
410К - SD/DS, 82 трека, 5 секторов по 512
820К - DD/DS, 82 трека, 5 секторов по 1024
1640К - DD/DS, 82 трека, 10 секторов по 1024
Black Cat / Era CG
23.02.2017, 23:15
В общем, учитывая то, что я забросил утилку на довольно долгое время, а переделано в ней на тот момент было достаточно много (что, как известно, всегда чревато новыми глюками), решил я на днях выложить этакий pre-release. Поэтому всех желающих заранее приглашаю к активному тестированию.
- - - Добавлено - - -
Короче, через полчаса-час выложу. И подробности расскажу.
- - - Добавлено - - -
SteinBlume v1.2.0.1399 pre-release (24.02.2017)
Обещанная pre-release версия.
Выкладываю ссылку на нее только тут, в первом сообщении пока обновлять не буду. Проверим, потестируем, поправим, потом уже обновлю первое сообщение. Pre-release версия отличается кроме прочего включенной проверкой на утечки памяти (выдается сообщение при закрытии утилки).
Качать ее тут: http://era-cg.su/download.php?file=SteinBlume1201399pr.zip
Исправил ошибки. Обновил до сборки 1399. Можно качать.
+ Добавил возможность сохранять последние пути операций Открытия/Сохранения образа, Извлечения/Добавления файла в образ;
Добавил опцию в Настройки. По умолчанию включена.
+ Добавил Ctrl+A для выделения/снятия выделения для всех файлов;
Курсор при этом не обязательно должен находится в списке файлов.
+ Добавлена функция подсчета неиспользуемого места в последних блоках файлов;
См. соответствующий пункт в меню. Подскажите горячую клавишу - добавим.
+ Добавил создание образа диска Орион по заданным пользователем параметрам;
Для этого при создании образа надо вместо файла системы выбрать пункт Настроить. После чего откроется диалог, где можно ввести все необходимые параметры, либо выбрать один из 4 вариантов предустановки.
(За эти четыре обновления скажем спасибо barsik'у).
+ В Настройки добавлены четыре опции для +3;
+ Для +3 добавлена возможность добавить заголовок к существующему файлу;
+ Поддержка образов HDD Ориона (кроме создания);
При открытии образа диска оригинальный файл образа автоматически бэкапится (это можно отключить в настройках, но пока крайне не рекомендую), а вся работа происходит с копией образа. Все дело в том, что работа утилиты с образом HDD происходит несколько иначе, чем с образами FDD. Образа FDD грузятся в память целиком, после чего все манипуляции происходят именно там, а оригинальный образ остается нетронутым, пока не будет использована функция сохранения. Работа же с образом HDD идет напрямую в файле образа, то есть все действия (удаление/переименование файлов, добавление файлов,...) происходят сразу в образе и сохранения образа не требуют. Кроме того, работа с HDD на данный момент достаточно сыра. Поэтому на всякий случай рекомендую не отключать опцию бэкапа.
+ При извлечении файлов из образа, символы имени файла теперь тоже проверяются на допустимость;
Символ для замены недопустимых символов добавлен в Настройки.
+ При добавлении в образ файлов с кириллическими именами, такие имена теперь корявенько так транслитируются :)
+ Добавлена опция игнорирования "удаленных" файлов при открытии образа (отключена по умолчанию);
В некоторых случаях наличие "удаленных" файлов в образе может вызывать ошибку при попытке открыть образ. Попробуйте использовать эту опцию.
+ Добавлена возможность перетаскивания файлов мышью из SteinBlume наружу (в проводник, в другие приложения или в другой открытый экземпляр SteinBlume);
В результате немного поменялась логика работы при перетаскивании файлов между областями пользователя. Теперь сменить режим переноса/копирования (Shift) можно в любой момент до отпускания кнопки мыши (что логичнее и удобнее). Изменился вид курсоров для этих операций на стандартный для Windows.
* Исправлена ошибка создания образа диска;
Проявлялась в невозможности сохранить образ.
* Исправлено открытие образов Скорпиона (сломал в версии 1101386);
* Lister: Исправлена работа выбора кодировки при сохранении текста из Lister.
barsik, вроде бы добавил, что просили. С созданием образа для Ориона там теперь так. Жмете Ctrl-N, Выбираете Orion, сверху, в самом конце списка Системных файлов, выбираете последний пункт, жмете ОК, появляется окошко, где можно вести все желаемые параметры создаваемого диска (либо выбрать один из 4 предложенных вами вариантов), жмете ОК, профит. Если у вас нет папки /sys/orion/ (или ее еще можно переименовать), то еще проще.
В последние несколько дней многократно пользовался SteinBlume предыдущей версии для целей импорта/экспорта CP/M-файлов на ODI-образы дискет. Потому сначала несколько слов по предыдущей версии.
В той старой версии очень раздражала запись выходного файла в случайные каталоги. Выбрав функцию "Записать" выводится имя исходного ODI-файла и в окне выбора файла видно содержимое каталога, где этот файл. По нажатию ВК выводится предупреждение, что файл существует. Т.е всё выглядит так, что запись будет производиться в исходный файл. Но запись реально происходит не в исходный файл, а в файл с тем же именем в тот каталог из которого в последний раз был импорт-экспорт. Из-за чего, чтобы узнать, куда был записан файл с последними изменениями, его приходилось специально искать и сравнивать даты изменения файлов и найдя в одном из каталогов экспорта, перемещать файл с последней модификацией в каталог исходного файла, заменяя исходный файл.
SteinBlume, как предпоследней версии, так и новой не "берёт" ODI-образ чистого, только что отформатированного диска 800К. Такой диск содержит в области 0...2F ИНФО-блок и имя дискеты, а все остальные 800К заполнены кодом E5. При попытке перетащить мыщью ODI-образ такого несистемного чистого диска 800К в окно SteinBlume, этот образ не грузится, а возникает сообщение "Division by Zero". Прилагаю ODI-образ чистого пустого диска. Предположительно это связано с кодом CP/M на системных дорожках. Т.к ODI-образы дискет, где CP/M-файлов тоже нет, но на системных дорожках есть код CP/M, - нормально грузятся.
Желательно иметь возможность стартовать путём перетаскивания мышью ODI-файла на пиктограмму SteinBlume на рабочем столе (как это принято в Windows). Это не работает. Т.е нет передачи параметров в программу при запуске. Работает только перетаскивание мышью ODI-файла в окно уже запущенного SteinBlume.
Новую версию SteinBlume только скачал. Пока использовал его всего пару минут и вот что сразу-же обнаружилось.
Скачав новую версию SteinBlume сразу же нажал ^N и выбрал из меню один формат (820К). Затем из каталога Windows с CP/M-файлами отметил группу файлов и перетащил их в окно SteinBlume. Затем выполнил "Сохранить файл" для Noname.ODI. Но получил сообщение "Range check error. Нажмите ОК, чтобы игнорировать...". Но по нажатию ОК файл не записался на винчестер. Ни в какой случайный каталог. Поиск файла с таким именем повсюду не дал результатов. Попытка записать файл с другим именем имела тот же успех. А по выбору пункта "Выход" появилось окно "error" с выводом посмертного дампа.
Снова запустил новую версию SteinBlume, отметил группу CP/M-файлов и перетащил их в окно SteinBlume. Нажал на значок дискеты. В этой версии был перезаписан исходный файл (а не файл в каталоге импорта, как ранее), что радует. Но при выходе из SteinBlume снова почему-то появилось окно "error" с дампом отладки.
В общем, если игнорировать окна дампов, то функции "Сохранить" и "Сохранить как" теперь работают. И даже имя текущего файла меняется на имя файла записанного по "Сохранить как", т.е всё как и положено.
Сжатые TD0-файлы CP/M-дискет на моём компе почему-то не грузятся в Steinblume. Кто-нибудь может дать ссылку на скачивание программы преобразования TD0-файлов в какой-нибудь иной, более удобный формат?
Black Cat / Era CG
24.02.2017, 14:20
Сжатые TD0-файлы CP/M-дискет на моём компе почему-то не грузятся в Steinblume. Кто-нибудь может дать ссылку на скачивание программы преобразования TD0-файлов в какой-нибудь иной, более удобный формат?
Там в комплекте с SteinBlume идет 2 доп. утилиты. Если их установить, их можно запускать из меню "Инструменты" (а можно отдельно). Там есть DIAnalyzer, он умеет извлекать дампы из td0. td0 не поддержан напрямую, так как может содержать по сути образ любой дискеты, в том числе и с защитой и т.д. Попробуйте ей. На выходе получится лог со структурой td0 и файл xdi, ему нужно поменять расширение на odi, если это корректный диск Ориона, он должен после этого открываться в SteinBlume.
- - - Добавлено - - -
SteinBlume, как предпоследней версии, так и новой не "берёт" ODI-образ чистого, только что отформатированного диска 800К. Такой диск содержит в области 0...2F ИНФО-блок и имя дискеты, а все остальные 800К заполнены кодом E5. При попытке перетащить мыщью ODI-образ такого несистемного чистого диска 800К в окно SteinBlume, этот образ не грузится, а возникает сообщение "Division by Zero". Прилагаю ODI-образ чистого пустого диска. Предположительно это связано с кодом CP/M на системных дорожках. Т.к ODI-образы дискет, где CP/M-файлов тоже нет, но на системных дорожках есть код CP/M, - нормально грузятся.
Странно, а где форматировался диск? У него контрольная сумма странная. Правда, все равно "Division by Zero" - это я что-то поломал. Щас буду найти.
Исправлено! Теперь по-честному выдается сообщение о неизвестном формате.
Скачав новую версию SteinBlume сразу же нажал ^N и выбрал из меню один формат (820К). Затем из каталога Windows с CP/M-файлами отметил группу файлов и перетащил их в окно SteinBlume. Затем выполнил "Сохранить файл" для Noname.ODI. Но получил сообщение "Range check error. Нажмите ОК, чтобы игнорировать...". Но по нажатию ОК файл не записался на винчестер. Ни в какой случайный каталог. Поиск файла с таким именем повсюду не дал результатов. Попытка записать файл с другим именем имела тот же успех.
А вот это однозначно глюк, надо его как-то отловить.
Найдено. Исправлено.
Но при выходе из SteinBlume снова почему-то появилось окно "error" с дампом отладки.
Это нормально. Это потому что:
Pre-release версия отличается кроме прочего включенной проверкой на утечки памяти (выдается сообщение при закрытии утилки).
Главное чтобы в этом сообщении unfreed memory blocks был равен нулю. А если это не так, то надо постараться добиться повторения эффекта, а потом описать мне по шагам, как это сделать:)
Желательно иметь возможность стартовать путём перетаскивания мышью ODI-файла на пиктограмму SteinBlume на рабочем столе (как это принято в Windows). Это не работает. Т.е нет передачи параметров в программу при запуске. Работает только перетаскивание мышью ODI-файла в окно уже запущенного SteinBlume.
Это странно, должно было работать. Щас тоже буду искать, где что поломал.
Странно. Оказывается, что этой фичи действительно не было. Всегда был уверен в обратном. Теперь есть.
Спасибо за репорт.
- - - Добавлено - - -
Исправил ошибки. Обновил до сборки 1399. Можно качать. Ссылка в предыдущем сообщении.
- - - Добавлено - - -
SteinBlume, как предпоследней версии, так и новой не "берёт" ODI-образ чистого, только что отформатированного диска 800К. Такой диск содержит в области 0...2F ИНФО-блок и имя дискеты, а все остальные 800К заполнены кодом E5. При попытке перетащить мыщью ODI-образ такого несистемного чистого диска 800К в окно SteinBlume, этот образ не грузится, а возникает сообщение "Division by Zero". Прилагаю ODI-образ чистого пустого диска.
По поводу этого диска пока не ясно. У него странная контрольная сумма. Это и вводило SteinBlume в ступор.
Error404
24.02.2017, 19:03
По поводу этого диска пока не ясно. У него странная контрольная сумма. Это и вводило SteinBlume в ступор.
Там особо не с чем разбираться. Исправили в первых трех байтах образа "C3 30 00" (для этого варианта верна тамошняя сумма D5 ) на "E5 E5 E5", а контрольная сумма не поправлена. Поправите - будет открываться.
Black Cat / Era CG
24.02.2017, 19:07
Там особо не с чем разбираться. Исправили в первых трех байтах образа "C3 30 00" (для этого варианта верна тамошняя сумма D5 ) на "E5 E5 E5", а контрольная сумма не поправлена. Поправите - будет открываться.
Не. Ну это-то понятно:) Не понятно, как появился этот образ.
Error404
24.02.2017, 19:45
С образами жесткого диска работает вроде нормально (правда только на чтение смотрел, записывать в них не пробовал).
- - - Добавлено - - -
Вопросик: а почему SteinBlume? :) Гуглится что-то из ромашко-подобного.
Black Cat / Era CG
24.02.2017, 20:18
Вопросик: а почему SteinBlume?
Это в переводе с немецкого Каменный цветок. А почему? Ну был такой детский анекдот:
Хозяка Медной горы: "Что, Данила-мастер, не выходит каменный цветок?". Данила, выпучив глаза от напряжения: "НЕ ВЫХО-О-ОДИТ!!!"
Вот потому и каменный цветок. Потому что "не выходит":) А SteinBlume, чтоб никто не догадался:)
Black Cat / Era CG
26.02.2017, 16:07
Че-то неужто больше нет багов? О_о
marinovsoft
28.02.2017, 09:44
Такой пойдет?
http://i.imgur.com/apqaTNW.png
Black Cat / Era CG
28.02.2017, 09:49
Такой пойдет?
http://imgur.com/a/Manqy
:)
Ага. Там закорючка в том, что для Корвета щас не создаются диски с пустыми сис. треками, а их (сис. треков) у тебя в нужной папочке нету. Вот он и ругается, как умеет.
Скажи, чем заполнять первые 10 байт (что перед dph, dpb) и какие параметры образов нужны (аналогично Ориону), сделаю:)
marinovsoft
28.02.2017, 09:57
Вот еще
http://i.imgur.com/H7cUcdG.png
http://i.imgur.com/abXWM7o.png
http://i.imgur.com/eQZO8fg.png
Сам файл 59896
Black Cat / Era CG
28.02.2017, 10:02
Ага. Спасибо. Поковыряю.
marinovsoft
28.02.2017, 10:19
Можешь в мою сторону (можно в личку) кинуть кусок кода - декодера ABR.
Black Cat / Era CG
28.02.2017, 10:33
marinovsoft, подожди. Дак там действительно в директории каша, начиная с 28E0 где-то. Просто утила пытается это интерпретировать как запись директории и валится на чтении карты расположения, то есть на 28F0, о чем успешно и сообщает. После чего все пункты меню серые, так как ошибка открытия имела место быть, то есть процесс открытия был прерван.
Забил кашу E5. Держи.
59897
- - - Добавлено - - -
Можешь в мою сторону (можно в личку) кинуть кусок кода - декодера ABR.
Щас попробую.
- - - Добавлено - - -
Щас я только виртуалку запущу, но будь готов, там ужас:)
marinovsoft
28.02.2017, 10:44
Не, не каша. Это ты просто не до конца проверяешь запись на валидность:)
На корвете этот диск нормально видится.
Делай как-то так
if (Catalog[I].Re1 = $00) And (Catalog[I].Exn And $1F = $00) And ((Catalog[I].User < $20) or (Catalog[I].User = $E5)) Then
Black Cat / Era CG
28.02.2017, 10:52
Не, не каша.
А разве не каша?
Там просто 2 варианта: сделать вид, что ничего не было и пропустить некорректную запись
или прокричать о том, что образ какой-то покореженный
Отправил на почту про АБР
marinovsoft
28.02.2017, 11:13
В общем, когда ты просматриваешь каталог, ты в первую очередь должен ориентироваться на те записи, у которых номер экстента = 0, если номер экстента > 0, то такую запись пропускаешь. После этого делаешь второй проход и уже смотришь на остальные записи по совпадению номера юзера и имени файла (атрибуты в расширении игнорируешь).
Black Cat / Era CG
28.02.2017, 12:19
Не, не каша.
А разве не каша?
Там просто 2 варианта: сделать вид, что ничего не было и пропустить некорректную запись
или прокричать о том, что образ какой-то покореженный
Отправил на почту про АБР
Первый экстент файла всегда имеет номер в поле EX (офсет 12) равным 0, только при размере CP/M-блока в 1 кб или 2 кб. Если же размер блока 4 кб (также 8 или 16 кб), то если размер файла более 16К, то номер первого экстента будет не 0, а 1. При блоках в 8 кб и размере файла более 32К номер первого экстента будет 2 или 3. И так далее. Поэтому для составления каталога при размере блока более 2 кб, алгоритм поиска записей с номером экстента 0 не годится. Тогда надо искать экстенты, чей номер меньше числа: размер блока разделённого на 2К, т.е в случае блока в 4К это 0 и 1, в случае блока в 8К это 0...3, а в случае блока в 16К это 0...7.
Вопрос к топик-стартеру. Как Вы высчитываете размер файла? Если при блоках 1 или 2 кб, можно просто просуммировать число лог.секторов в поле RC (офсет 15) всех экстентов файла, то при больших размерах блока, такой алгоритм не годится. В этом случае надо суммировать блоки описанные в области 10...1F каждого экстента. Затем умножить полученное число блоков на число лог.секторов в блоке. Затем отнять число (16*1024/128). И к результату прибавить число из поля RC последнего экстента файла
Об ошибках. При попытке открыть образ реально рабочей дискеты возникает сообщение "Превышен максимально допустимый номер блока" и приводится смещение 5010. Каталог (при его размещении с 4-й дорожки) в файле ODI занимает адреса 4000...4FFF, т.е ровно 4 кб, как и описывает маска каталога 0CH в DPB. А офсет 5010 попадает на номер первого блока первого экстента в уже 5-м килобайте каталога, хотя его размер всего 4 кб. Таким образом Вы просматриваете каталог вне области реального каталога. Может быть Вы начинаете просмотр каталога не с офсета 4000 (а точнее со смещения число сист.треков * число лог.секторов в треке * 128). Или может Вы ориентируетесь не по числу экстентоа каталога, а по его размеру и неверно высчитали размер каталога, который равен: число экстентов каталога умножить на 32. Не надо считать размер каталога по маске каталога, т.е по числу единичных битов в маске каталога умноженных на размер блока. В некоторых реализациях дат файлов в CP/M, даты хранятся в области за каталогом, а чтобы это не затирали файлы число битов в маске увеличивают, отчего считая размер каталога по маске каталога, Вы получите неверный размер каталога.
Кстати в блоке 10...1E в BOOT-секторе расположен только DPB. DPH в BOOT-секторе КОРВЕТА и ОРИОНА вообще нет, он только в теле CP/M-BIOS. Вы называете этот блок DPH,DPB ошибочно. Правильнее называть это только DPB. А в полях 8...0F дискеты тоже не DPH, а физические параметры диска. Они не для CP/M (точнее не для BDOS), а для BIOS, чтобы он мог узнать формат (DD/DS или FM/MFM), число сторон и число физических секторов в треке. Но это тоже не называется DPH. А всё вместе это называется ИНФО-блок дискеты.
В поле размер диска в блоках в DPB дискет КОРВЕТА стоит число 184H, что соответствует 388, отчего дискета используется не на 780К, а только на 778К. Это ошибка, которую я повторил и для ОРИОНА, чтобы была совместимость с КОРВЕТОМ. Впоследствии эту ошибку я исправил и в моих форматёрах сюда записывается 185Н, что даёт возможность использовать весь диск. Убедиться в этом можно запустив команду 'STAT DSK:' или 'POWER DISK'.
marinovsoft
28.02.2017, 13:16
Тогда вопрос: как достоверно точно отличить настоящую запись от "фантомной"? На примере образа диска выше в теме.
Black Cat / Era CG
28.02.2017, 13:29
Я вот тут наконец-то наткнулся на запрет работать в папках типа Program Files. Просто сам-то я никогда туда утилу не ставил, я ее просто распаковываю и все. В общем надо где-то хранить ini. Хотя с этим все понятно. Щас сделал так. Если вы распакуете утилиту в обычную папку, то ини будет лежать в ней. Если установите в Program Files, то ini будет храниться в APPDATA. А вот где хранить папки sys и xdi_settings?
marinovsoft
28.02.2017, 13:34
%ProgramData%
Black Cat / Era CG
28.02.2017, 14:20
Вопрос к топик-стартеру. Как Вы высчитываете размер файла?
Вот так: $80*($80*(EX and exm)+RC)
Как описано тут: http://www.seasip.info/Cpm/format22.html
RC - Number of records (1 record=128 bytes) used in this extent, low byte. The total number of records used in this extent is
(EX & exm) * 128 + RC
На остальное позже отвечу, я сейчас с вашими td0 ковыряюсь немного.
- - - Добавлено - - -
%ProgramData% Не знаю. По сути к ней должен быть нормальный доступ пользователя (системки например чтобы в нее копировать), а Program Data скрытая обычно папка.
Спасибо за ссылку:
http://www.seasip.info/Cpm/format22.html
Из неё наконец узнал, что поле S2 (офсет 14) это старший байт размера экстента RC (причём он используется только при блоках размером от 4К, а для блоков в 2К всегда 0).
Но на самом деле это неправда, - это не старший байт, точнее это старший байт по модулю 128, - результат от деления числа лог.секторов описанных в этом экстенте на 128. Зная это, легко посчитать размер файла. Просуммировав числа S2*128 + RC рассчитанные для каждого экстента получим размер файла в секторах. Впрочем и использованный мной ранее вариант тоже даёт верный результат при больших блоках, но сложнее для программирования..
В 80-е годы этой информации не было. В фирменном переводе мануала по CP/M (из Всесоюзного Центра Переводов) про S1 и S2 написано следующее: "Зарезервировано для внутреннего использования в системе".
Впрочем, при блоках с размером не более 2К это не вызывало проблем. Но теперь мне хоть стало ясно каким образом файл может иметь размер более, чем 512 кб.
Black Cat / Era CG
28.02.2017, 17:02
barsik, результаты ковыряния с td0 отправил на почту. Теперь дальше.
Спасибо за ссылку:
http://www.seasip.info/Cpm/format22.html
Не за что. Я в свое время тоже очень обрадовался этому доку, даже кое-как перевел ее на русский язык.
Об ошибках. При попытке открыть образ реально рабочей дискеты возникает сообщение "Превышен максимально допустимый номер блока" и приводится смещение 5010. Каталог (при его размещении с 4-й дорожки) в файле ODI занимает адреса 4000...4FFF, т.е ровно 4 кб, как и описывает маска каталога 0CH в DPB. А офсет 5010 попадает на номер первого блока первого экстента в уже 5-м килобайте каталога, хотя его размер всего 4 кб. Таким образом Вы просматриваете каталог вне области реального каталога. Может быть Вы начинаете просмотр каталога не с офсета 4000 (а точнее со смещения число сист.треков * число лог.секторов в треке * 128). Или может Вы ориентируетесь не по числу экстентоа каталога, а по его размеру и неверно высчитали размер каталога, который равен: число экстентов каталога умножить на 32. Не надо считать размер каталога по маске каталога, т.е по числу единичных битов в маске каталога умноженных на размер блока. В некоторых реализациях дат файлов в CP/M, даты хранятся в области за каталогом, а чтобы это не затирали файлы число битов в маске увеличивают, отчего считая размер каталога по маске каталога, Вы получите неверный размер каталога.
Пришлите мне, пожалуйста, образ этого диска на почту, я посмотрю. Мне так проще.
А в полях 8...0F дискеты тоже не DPH, а физические параметры диска.
Но ведь их назначение ведь такое же:
Про 08, 09 - не в курсе - в присланном вами доке написано "не используется (лучше не трогать)". Вот и не трогаю.
0A len - у вас: "при SD =2 (512), при DD =3 (1024)", я интерпретирую так: Sector size 0=128, 1=256, 2=512, 3=1024 или 128 lsh len (128<<len)
0B den - у вас: "при SS =0, при DS =1", у меня аналогично: Чсло сторон = den+1
0C sec - у вас: "sectors pro track (1...11)" и "не используется (лучше не трогать)" (для следующего байта), у меня аналогично (только два байта, что не важно, потому что старший всегда 0)
0E trk - у вас: "число треков формата (35,40,42,80,82,83)" и "не используется (лучше не трогать)" (для следующего байта), у меня аналогично (также два байта)
Так что особо не вижу противоречий.
- - - Добавлено - - -
Тогда вопрос: как достоверно точно отличить настоящую запись от "фантомной"? На примере образа диска выше в теме.
Ну дык она по сути и отличается, почему ошибку и выдает. Пропускать такие записи в каталоге не сложно, в принципе. По сути можно заставить утилиту в данном конкретном случае не выдавать ошибку и прерывать процесс открытия, а делать вид, что ошибочной записи просто не было и пропускать ее.
- - - Добавлено - - -
А вот где хранить папки sys и xdi_settings?
Короче, пока что колебаюсь между папками в "Мои документы" (доступнее для пользователя, но обычно завалена разным трешом) и в APPDATA (обычно структуру папок тут никто руками не правит и лежит только то, что надо установленному софту, но докопаться до папки в проводнике сложнее).
Примечание. Там думаю как-то так сделать. Если утилита лежит в папке, для которой у пользователя есть все права, все остается по-прежнему (инишник, системки, хди-настройки в этой же папке), а если в Program Files, тогда ini в APPDATA, остальное думаю пока.
marinovsoft
28.02.2017, 17:07
Эта запись не удовлетворяет этому условию:
EX = Extent counter, low byte - takes values from 0-31
59898
Black Cat / Era CG
28.02.2017, 19:02
Эта запись не удовлетворяет этому условию:
59898
Согласен,не удовлетворяет. Можно сделать, чтобы и об этом ошибку выдавало. Вопрос-то проще. По сути есть три варианта действий: 1 - выдавать ошибку, прерывать загрузку, 2 - молча пропускать ошибочную запись, 3 - выдавать предупреждение и после этого либо предлагать выбор дальнейших действий пользователю, либо пропускать эту запись. Как надо так и сделаю. Я выбирал 1 вариант, потому что мне так проще было отлавливать покореженные образа, да и перестраховываться от последствий.
- - - Добавлено - - -
Оно у меня так вот еще делается просто "EX and $1F" для перестраховки.
- - - Добавлено - - -
С настройками сделал пока так:
При запуске SteinBlume ищет ини-файл сначала в собственной папке, если не находит, то в %APPDATA%\SteinBlume\
Если его и там, и там нет, то пытается создать его сначала опять же в собственной папке, потом в %APPDATA%\SteinBlume\
Потом работает с ним уже там, где он есть.
Т.о. при распаковке архива в нормальную папку, ини-файл будет по-прежнему лежать в ней же, а при установке через инсталлер не зависимо от того, куда будет устанавливаться SteinBlume, ини-файл будет создан в %APPDATA%\SteinBlume\
Как-то так.
На корвете этот диск нормально видится.
CP/M не читает дальше каталог, если встречает сектор, забитый байтом E5 (не только в поле номера юзера). Правда, какие конкретно байты она анализирует, я не знаю. В данном примере не все байты E5, но каталог дальше не читается.
При попытке открыть образ реально рабочей дискеты возникает сообщение "Превышен максимально допустимый номер блока" и приводится смещение 5010. Каталог (при его размещении с 4-й дорожки) в файле ODI занимает адреса 4000...4FFF, т.е ровно 4 кб, как и описывает маска каталога 0CH в DPB. А офсет 5010 попадает на номер первого блока первого экстента в уже 5-м килобайте каталога, хотя его размер всего 4 кб. Таким образом Вы просматриваете каталог вне области реального каталога
Сообразил, что каталог при формате 800К должен быть со смещением 5000, а не 4000, как оказалось в данном образе ODI, конвертированном из TD0. Ведь в каждом треке 1К*5=5 кб и при 4-х резервных треках получаем 4*5К=20 кб, т.е 5000. Оттого SteinbBlume сканировал каталог в верном месте. Неправльный сам ODI-образ, созданный анализатором. Получается, что анализатор куда-то дел 4 кб диска.
При просмотре текстовых файлов не запоминается кодировка. Ясно, что если я включил КОИ-8, то и остальные файлы на этом диске (и на других) в той же кодировке. А так приходится при просмотре каждого файла заново выставлять кодировку.
Просмотр текста неправильный. В CP/M все шрифты одной ширины (как на печатной машинке), а не пропорциональные как в Windows. А меню выбора шрифта нет. И если стоит ALT-кодировка MSDOS, то правильно должны выводиться рамочки, нарисованные псевдографикой. То же самое должно быть и в КОИ-8 (псевдографика по книге Фигурнова "IBM PC для пользователя"). Иногда встречаются кодировки КОИ-8 с разным кодом для букв 'ё' и разным размещением символов псевдографики (В Linux и в CP/M,Windows отличия). Надо сделать по книге Фигурнова, а не по Linux. Про Linux никто и не знал в 80/90-е.
Есть кое-какие соображения по введению в программу новых функций.
Необходима возможность загружать образ диска у которого дохлый BOOT-сектор, что постоянно бывает на практике (особенно со старыми дискетами). Т.е надо грузить образ ODI, где нет ИНФО-блока (его контр.сумма в байте с офсетом 1F неверна). Но я то знаю, в каком формате мой диск. Пусть программа спросит у меня какой формат и потом запишет правильный ИНФО-блок. То же самое надо и при дохлом секторе в каталоге. Если программа обнаружит чушь в каталоге, то должна предложить ручное редактирование каталога. Я увижу, что один сектор каталога "битый" и содержит мусор и попрошу программу заполнить его кодом E5.
В спойлере поясняю для чего это надо.
При гибели трека 0 в реале действуют так. Запускают программку REPAIR.COM, чтобы заново отформатировать только резервированные (системные) треки, восстановив тем самым ИНФО-блок. После чего можно скопировать файлы на другой диск.
Если же первый сектор диска сдох насмерть, то нужна специальная программа форматирующая трек 0 хитрым способом. Это простенькая, но полезная программа, вариант форматёра, позволяющая "вернуть жизнь" дискетам с дохлым треком 0. Она сначала заново форматирует трек (т.к порядок следования секторов у разных форматёров разный, есть нумерация подряд, а есть формат с интерливингом), затем выясняет какой сектор нормально читается. А затем форматирует 0-й трек так, что сектор 1 оказывается как раз на том месте, где читался исправный сектор, а все остальные сектора форматируются с номером сектора 99. Тогда сектор 1, содержащий ИНФО-блок для настройки на формат, читается.
Естественно, такой диск уже не может стать загрузочным, т.е содержать систему на резервных треках. До появленния такой программы, чтобы считать диск с дохлым BOOT-сектором, я использовал версию CP/M вообще не имеющую автонастройки на формат диска, т.е читающую только в одном жёстко заданном в BIOS формате.
Для РК-ДОС, где каталог на 32-м треке, если этот трек каталога сдох, есть возможность всё-равно использовать такой диск. Тогда дискета форматируется не на 80 треков, а на 79 треков, причем треки 0 и 1 форматируются как трек 0, трек 2 как 1, 3 как 2, т.е сдвижка нумерации. Логические номера треков сдвигаются на 1 относительно физических номеров. В итоге трек 32, где каталог, оказывается на другой, уже исправной дорожке.
Ещё более сложную задачу приходится решать, когда сдох каталог, а вашим AUTOEXEC.SUB-ом при каждой загрузке не запускалась программка SVDIR.COM А.Новгородова (1992), автоматически делающая копию каталога в неиспользуемом (при DD) треке 3. Если каталог был резервирован, то достаточно запустить RSTDIR.COM, чтобы скопировать каталог из трека 3 в трек 4 и тогда, по крайней мере, те файлы, что не менялись можно считать.
В противном случае приходится действовать так. Загружаем DU.COM и с её помощью считываем целые сектора каталога (из 4-х секторов каталога всегда дохлый только один). Путём многкратных попыток считать дохлый трек каталога, наконец считываем его. Если это удалось, то Вам повезло. Если нет, то выходим в SHELL-монитор, и смотрим содержимое дискового буфера. Иногда там находится частично дохлый сектор каталога. Если не помогло, то используем только исправные сектора каталога. Три оставшихся целыми сектора каталога, переносим на трек 2 (не 3, надо чтобы смещение было кратно размеру блока). Теперь каталог перенесён на трек 2. Далее той-же программой DU заменяем в T0; S1; байт с офсетом 1D с 4 на 2 (число сист.треков) и на 2 уменьшаем КС в байте 1F. Вот почему выбрана арифметическая сумма, а не CRC или PARITY, - чтобы человеку было удобно "ковырять" БПД вручную.
Теперь диск читается, но номера блоков в экстентах каталога сдвинуты на 5 (в 2-х треках 10 кб, что при размере блока в 2К даёт 5). Надо иметь программу, которая считает все экстенты каталога и увеличит в них номера блоков на 5. Однако я так и не сделал такой программы, т.к обычно незаменимым и подлежащим восстановлению был только единственный файл исходника. А скорректировать каталоговые записи для одного файла легко с помощью DU. Запускаем поиск в диске по ASCII-цепочке с именем файла, находим каталоговые экстенты файла и к номерам блоков прибавляем 5. После чего копируем файл на другой диск, а эту дискету, чтобы не иметь в дальнейшем подобных проблем, форматируем в такой формат, где каталог уже не на треке 4, который дохнет.
Ещё более трудоёмко восстановление, если запись о Вашем нужном файле оказалась в сдохшем секторе каталога. Тогда форматируем каталог на треке 4, если не получилось то переносим каталог на трек 2 (заменой 2-х байтов в ИНФО-блоке). Т.к физически CP/M пишет блоками, то иногда в последнем секторе файла с размером не точно кратным 1 кб, оказывается содержимое каталога. Поэтому первым делом запускаем поиск в диске ASCII цепочки с именем файла. Если кусок каталога с записью о нужном файле будет найден, это еще не означает удачу, т.к номера блоков могут быть устарелыми. Надо переписать номера блоков и в восстановленном каталоге вручную с помощью DU создать экстент и занести номера блоков (прибавив 5, если каталог переносился на трек 2). Надо попытаться найти все экстенты файла отсканировав весь диск. Если это поможет найти блок начала файла, это уже удача, особенно если файл сильно дефрагментирован и работа над исходником длилась много дней, отчего на диске полно блоков, содержащих куски актуального файла, куски его предыдущих версий и файлы свопинга. Именно поэтому в начале исходника всегда надо писать дату и время (меняя время при каждой записи). Тогда удастся верно найти первый блок файла и все блоки до этого блока, где есть куски файла будем считать не актуальными.
Если номера блоков неизвестны, то остаётся визульно просматривать все сектора (с шагом в два физ.сектора, т.к CP/M пишет блоками) и отыскивать куски Вашего исходника. Неприятно то, что блок с вашим текстом не значит, что он из файла, а может быть из файла свопинга. Из-за этого, сохранив все найденные куски подряд, Вы обнаружите, что много кусков повторяется и порядок следования этих кусков неверный. В общем восстановление сильно фрагментированного файла, когда нет никаких данных из каталоговой записи - это каторжная работа.
Один раз мне пришлось восстанавливать исходник 60 кб, результат 2-х месячной работы и это заняло 16 часов тяжёлого труда и исходник получился неверным. Его пришлось долго доводить редактором до хотя бы транслируемого состояния, т.к он состоял из фрагментов от разных версий. Чтобы облегчить труд по восстановлению, нужен текстовый редактор не создающий файлов свопинга и BAK-файлов. Тогда фрагменты файла будут следовать подряд и их легко будет найти, чтобы восстановить файл в случае гибели каталога.
У меня 150 дискет (960К HD-5.25" и 820...1320К 3.5"). Дискам 25 лет и частично они уже сдохли от времени, потому актуальна работа с дохлыми дисками.
А т.к намного удобнее восстанавливать дохлые дискеты в виде образа на PC, то хотелось бы иметь соответствующий инструмент. Проблема только в том, как из реальных дискет получить их образ ODI.
Я так понял, что не существует программы, что читает реальный диск в дисководе PC и сразу создаёт файл ODI. Поэтому чтобы считать дискету можно применять только Teledisk. А уже из TD0 анализатором SteinBlume делаем файл XDI, переименовываем его в ODI и вручную дополняем до 800К в HEX-редакторе. Но как я понял, Teledisk дохлые сектора игнорирует, а Ваш анализатор диска это не учитывает, отчего позиция данных в файле XDI сдвигается. Отчего в SteinBlume этот файл не читается, т.к каталог не на расчётном месте в соответствии с форматом.
Каким образом мои TD0-образы считаются односторонними, если они 3.5", а таких односторонних дисков даже в природе нет? Да и форматёров на 1 сторону никогда не использовал. Никогда не имел проблем с TD0 с 1994 года. Когда не хватало дискет, то скидывал мало-используемый диск в TD0, диск очищал и использовал для других целей. А когда надо, опять восстанавливал из TD0 образа. Потому склонен винить анализатор, а не Teledisk и не дисковод, ведь в той же партии есть нормально считанные диски.
marinovsoft
02.03.2017, 16:00
Я так понял, что не существует программы, что читает реальный диск в дисководе PC и сразу создаёт файл ODI.
Попиарюсь.
http://zx-pk.ru/threads/23421-novaya-utilita-dlya-raboty-s-diskami-cp-m.html
Black Cat / Era CG
02.03.2017, 20:12
Начнем с конца.
Но как я понял, Teledisk дохлые сектора игнорирует
Примерно так.
а Ваш анализатор диска это не учитывает
Не учитывает. Он выдает только ту информацию, что находится в образе, НО не ту, что должна в нем находиться.
Каким образом мои TD0-образы считаются односторонними, если они 3.5", а таких односторонних дисков даже в природе нет? Да и форматёров на 1 сторону никогда не использовал. Никогда не имел проблем с TD0 с 1994 года. Когда не хватало дискет, то скидывал мало-используемый диск в TD0, диск очищал и использовал для других целей. А когда надо, опять восстанавливал из TD0 образа. Потому склонен винить анализатор, а не Teledisk и не дисковод, ведь в той же партии есть нормально считанные диски.
Постараюсь все же реабилитировать свой DIAnalyzer.
Обратимся к самим Sydex (авторам Teledisk). Для чего из этого 59922 архива воспользуемся их утилитой tdcheck. Должен предупредить, работает она сейчас только под DOSBOX. Запускается примерно так:
tdcheck 1954.td0 >report.txt Кормим ей присланные Вами мне образы и вот, что получаем:
1954.td0
TDCheck TeleDisk File Checker, Version 1.10
Sydex Copyright 1990. All Rights Reserved.
-- Checking 1954.TD0...
New Advanced data compression was used.
All sectors were copied.
One side was checked.
Source was 3«" low-density MFM.
There is no commentary included in this file.
Reading Track 0, Side 0, 5 Sectors
Reading Track 1, Side 0, 5 Sectors
Reading Track 2, Side 0, 5 Sectors
Reading Track 3, Side 0, 5 Sectors
Reading Track 4, Side 0, 5 Sectors
Reading Track 5, Side 0, 5 Sectors
Reading Track 6, Side 0, 5 Sectors
Reading Track 7, Side 0, 5 Sectors
Reading Track 8, Side 0, 5 Sectors
Reading Track 9, Side 0, 5 Sectors
Reading Track 10, Side 0, 5 Sectors
Reading Track 11, Side 0, 5 Sectors
Reading Track 12, Side 0, 5 Sectors
Reading Track 13, Side 0, 5 Sectors
Reading Track 14, Side 0, 5 Sectors
Reading Track 15, Side 0, 5 Sectors
Reading Track 16, Side 0, 5 Sectors
Reading Track 17, Side 0, 5 Sectors
Reading Track 18, Side 0, 5 Sectors
Reading Track 19, Side 0, 5 Sectors
Reading Track 20, Side 0, 5 Sectors
Reading Track 21, Side 0, 5 Sectors
Reading Track 22, Side 0, 5 Sectors
Reading Track 23, Side 0, 5 Sectors
Reading Track 24, Side 0, 5 Sectors
Reading Track 25, Side 0, 5 Sectors
Reading Track 26, Side 0, 5 Sectors
Reading Track 27, Side 0, 5 Sectors
Reading Track 28, Side 0, 5 Sectors
Reading Track 29, Side 0, 5 Sectors
Reading Track 30, Side 0, 5 Sectors
Reading Track 31, Side 0, 5 Sectors
Reading Track 32, Side 0, 5 Sectors
Reading Track 33, Side 0, 5 Sectors
Reading Track 34, Side 0, 5 Sectors
Reading Track 35, Side 0, 5 Sectors
Reading Track 36, Side 0, 5 Sectors
Reading Track 37, Side 0, 5 Sectors
Reading Track 38, Side 0, 5 Sectors
Reading Track 39, Side 0, 5 Sectors
Reading Track 40, Side 0, 5 Sectors
Reading Track 41, Side 0, 5 Sectors
Reading Track 42, Side 0, 5 Sectors
Reading Track 43, Side 0, 5 Sectors
Reading Track 44, Side 0, 5 Sectors
Reading Track 45, Side 0, 5 Sectors
Reading Track 46, Side 0, 5 Sectors
Reading Track 47, Side 0, 5 Sectors
Reading Track 48, Side 0, 5 Sectors
Reading Track 49, Side 0, 5 Sectors
Reading Track 50, Side 0, 5 Sectors
Reading Track 51, Side 0, 5 Sectors
Reading Track 52, Side 0, 5 Sectors
Reading Track 53, Side 0, 5 Sectors
Reading Track 54, Side 0, 5 Sectors
Reading Track 55, Side 0, 5 Sectors
Reading Track 56, Side 0, 5 Sectors
Reading Track 57, Side 0, 5 Sectors
Reading Track 58, Side 0, 5 Sectors
Reading Track 59, Side 0, 5 Sectors
Reading Track 60, Side 0, 5 Sectors
Reading Track 61, Side 0, 5 Sectors
Reading Track 62, Side 0, 5 Sectors
Reading Track 63, Side 0, 5 Sectors
Reading Track 64, Side 0, 5 Sectors
Reading Track 65, Side 0, 5 Sectors
Reading Track 66, Side 0, 5 Sectors
Reading Track 67, Side 0, 5 Sectors
Reading Track 68, Side 0, 5 Sectors
Reading Track 69, Side 0, 5 Sectors
Reading Track 70, Side 0, 5 Sectors
Reading Track 71, Side 0, 5 Sectors
Reading Track 72, Side 0, 5 Sectors
Reading Track 73, Side 0, 5 Sectors
Reading Track 74, Side 0, 5 Sectors
Reading Track 75, Side 0, 5 Sectors
Reading Track 76, Side 0, 5 Sectors
Reading Track 77, Side 0, 5 Sectors
Reading Track 78, Side 0, 5 Sectors
Reading Track 79, Side 0, 5 Sectors
Reading Track 80, Side 0, 5 Sectors
Reading Track 81, Side 0, 5 Sectors
*** 1954.TD0 Checks OK ***
1 file(s) processed.
2408.TD0, 2416.TD0, 2625.TD0, PP_C.TD0
TDCheck TeleDisk File Checker, Version 1.10
Sydex Copyright 1990. All Rights Reserved.
-- Checking 2408.TD0...
New Advanced data compression was used.
All sectors were copied.
Both sides were checked.
Source was 3«" low-density MFM.
There is no commentary included in this file.
Reading Track 0, Side 0, 5 Sectors
Reading Track 0, Side 1, 5 Sectors
Reading Track 1, Side 0, 5 Sectors
Reading Track 1, Side 1, 5 Sectors
Reading Track 2, Side 0, 5 Sectors
Reading Track 2, Side 1, 5 Sectors
Reading Track 3, Side 0, 5 Sectors
Reading Track 3, Side 1, 5 Sectors
Reading Track 4, Side 0, 5 Sectors
Reading Track 4, Side 1, 5 Sectors
Reading Track 5, Side 0, 5 Sectors
Reading Track 5, Side 1, 5 Sectors
Reading Track 6, Side 0, 5 Sectors
Reading Track 6, Side 1, 5 Sectors
Reading Track 7, Side 0, 5 Sectors
Reading Track 7, Side 1, 5 Sectors
Reading Track 8, Side 0, 5 Sectors
Reading Track 8, Side 1, 5 Sectors
Reading Track 9, Side 0, 5 Sectors
Reading Track 9, Side 1, 5 Sectors
Reading Track 10, Side 0, 5 Sectors
Reading Track 10, Side 1, 5 Sectors
Reading Track 11, Side 0, 5 Sectors
Reading Track 11, Side 1, 5 Sectors
Reading Track 12, Side 0, 5 Sectors
Reading Track 12, Side 1, 5 Sectors
Reading Track 13, Side 0, 5 Sectors
Reading Track 13, Side 1, 5 Sectors
Reading Track 14, Side 0, 5 Sectors
Reading Track 14, Side 1, 5 Sectors
Reading Track 15, Side 0, 5 Sectors
Reading Track 15, Side 1, 5 Sectors
Reading Track 16, Side 0, 0 Sectors
Reading Track 16, Side 1, 5 Sectors
Reading Track 17, Side 0, 0 Sectors
Reading Track 17, Side 1, 5 Sectors
Reading Track 18, Side 0, 5 Sectors
Reading Track 18, Side 1, 5 Sectors
Reading Track 19, Side 0, 5 Sectors
Reading Track 19, Side 1, 5 Sectors
Reading Track 20, Side 0, 5 Sectors
Reading Track 20, Side 1, 5 Sectors
Reading Track 21, Side 0, 5 Sectors
Reading Track 21, Side 1, 5 Sectors
Reading Track 22, Side 0, 5 Sectors
Reading Track 22, Side 1, 5 Sectors
Reading Track 23, Side 0, 5 Sectors
Reading Track 23, Side 1, 5 Sectors
Reading Track 24, Side 0, 5 Sectors
Reading Track 24, Side 1, 5 Sectors
Reading Track 25, Side 0, 5 Sectors
Reading Track 25, Side 1, 5 Sectors
Reading Track 26, Side 0, 5 Sectors
Reading Track 26, Side 1, 5 Sectors
Reading Track 27, Side 0, 5 Sectors
Reading Track 27, Side 1, 5 Sectors
Reading Track 28, Side 0, 5 Sectors
Reading Track 28, Side 1, 5 Sectors
Reading Track 29, Side 0, 5 Sectors
Reading Track 29, Side 1, 5 Sectors
Reading Track 30, Side 0, 5 Sectors
Reading Track 30, Side 1, 5 Sectors
Reading Track 31, Side 0, 5 Sectors
Reading Track 31, Side 1, 5 Sectors
Reading Track 32, Side 0, 5 Sectors
Reading Track 32, Side 1, 5 Sectors
Reading Track 33, Side 0, 5 Sectors
Reading Track 33, Side 1, 5 Sectors
Reading Track 34, Side 0, 5 Sectors
Reading Track 34, Side 1, 5 Sectors
Reading Track 35, Side 0, 5 Sectors
Reading Track 35, Side 1, 5 Sectors
Reading Track 36, Side 0, 5 Sectors
Reading Track 36, Side 1, 5 Sectors
Reading Track 37, Side 0, 5 Sectors
Reading Track 37, Side 1, 5 Sectors
Reading Track 38, Side 0, 5 Sectors
Reading Track 38, Side 1, 5 Sectors
Reading Track 39, Side 0, 5 Sectors
Reading Track 39, Side 1, 5 Sectors
Reading Track 40, Side 0, 5 Sectors
Reading Track 40, Side 1, 5 Sectors
Reading Track 41, Side 0, 5 Sectors
Reading Track 41, Side 1, 5 Sectors
Reading Track 42, Side 0, 5 Sectors
Reading Track 42, Side 1, 5 Sectors
Reading Track 43, Side 0, 5 Sectors
Reading Track 43, Side 1, 5 Sectors
Reading Track 44, Side 0, 5 Sectors
Reading Track 44, Side 1, 5 Sectors
Reading Track 45, Side 0, 5 Sectors
Reading Track 45, Side 1, 5 Sectors
Reading Track 46, Side 0, 5 Sectors
Reading Track 46, Side 1, 5 Sectors
Reading Track 47, Side 0, 5 Sectors
Reading Track 47, Side 1, 5 Sectors
Reading Track 48, Side 0, 5 Sectors
Reading Track 48, Side 1, 5 Sectors
Reading Track 49, Side 0, 5 Sectors
Reading Track 49, Side 1, 5 Sectors
Reading Track 50, Side 0, 5 Sectors
Reading Track 50, Side 1, 5 Sectors
Reading Track 51, Side 0, 5 Sectors
Reading Track 51, Side 1, 5 Sectors
Reading Track 52, Side 0, 5 Sectors
Reading Track 52, Side 1, 5 Sectors
Reading Track 53, Side 0, 5 Sectors
Reading Track 53, Side 1, 5 Sectors
Reading Track 54, Side 0, 5 Sectors
Reading Track 54, Side 1, 5 Sectors
Reading Track 55, Side 0, 5 Sectors
Reading Track 55, Side 1, 5 Sectors
Reading Track 56, Side 0, 5 Sectors
Reading Track 56, Side 1, 5 Sectors
Reading Track 57, Side 0, 5 Sectors
Reading Track 57, Side 1, 5 Sectors
Reading Track 58, Side 0, 5 Sectors
Reading Track 58, Side 1, 5 Sectors
Reading Track 59, Side 0, 5 Sectors
Reading Track 59, Side 1, 5 Sectors
Reading Track 60, Side 0, 5 Sectors
Reading Track 60, Side 1, 5 Sectors
Reading Track 61, Side 0, 5 Sectors
Reading Track 61, Side 1, 5 Sectors
Reading Track 62, Side 0, 5 Sectors
Reading Track 62, Side 1, 5 Sectors
Reading Track 63, Side 0, 5 Sectors
Reading Track 63, Side 1, 5 Sectors
Reading Track 64, Side 0, 5 Sectors
Reading Track 64, Side 1, 5 Sectors
Reading Track 65, Side 0, 5 Sectors
Reading Track 65, Side 1, 5 Sectors
Reading Track 66, Side 0, 5 Sectors
Reading Track 66, Side 1, 5 Sectors
Reading Track 67, Side 0, 5 Sectors
Reading Track 67, Side 1, 5 Sectors
Reading Track 68, Side 0, 5 Sectors
Reading Track 68, Side 1, 5 Sectors
Reading Track 69, Side 0, 5 Sectors
Reading Track 69, Side 1, 5 Sectors
Reading Track 70, Side 0, 5 Sectors
Reading Track 70, Side 1, 5 Sectors
Reading Track 71, Side 0, 5 Sectors
Reading Track 71, Side 1, 5 Sectors
Reading Track 72, Side 0, 5 Sectors
Reading Track 72, Side 1, 5 Sectors
Reading Track 73, Side 0, 5 Sectors
Reading Track 73, Side 1, 5 Sectors
Reading Track 74, Side 0, 5 Sectors
Reading Track 74, Side 1, 5 Sectors
Reading Track 75, Side 0, 5 Sectors
Reading Track 75, Side 1, 5 Sectors
Reading Track 76, Side 0, 5 Sectors
Reading Track 76, Side 1, 5 Sectors
Reading Track 77, Side 0, 5 Sectors
Reading Track 77, Side 1, 5 Sectors
Reading Track 78, Side 0, 5 Sectors
Reading Track 78, Side 1, 5 Sectors
Reading Track 79, Side 0, 5 Sectors
Reading Track 79, Side 1, 5 Sectors
*** 2408.TD0 Checks OK ***
-- Checking 2416.TD0...
New Advanced data compression was used.
All sectors were copied.
One side was checked.
Source was 3«" low-density MFM.
There is no commentary included in this file.
Reading Track 0, Side 0, 5 Sectors
Reading Track 1, Side 0, 5 Sectors
Reading Track 2, Side 0, 5 Sectors
Reading Track 3, Side 0, 5 Sectors
Reading Track 4, Side 0, 5 Sectors
Reading Track 5, Side 0, 5 Sectors
Reading Track 6, Side 0, 5 Sectors
Reading Track 7, Side 0, 5 Sectors
Reading Track 8, Side 0, 5 Sectors
Reading Track 9, Side 0, 5 Sectors
Reading Track 10, Side 0, 5 Sectors
Reading Track 11, Side 0, 5 Sectors
Reading Track 12, Side 0, 5 Sectors
Reading Track 13, Side 0, 5 Sectors
Reading Track 14, Side 0, 5 Sectors
Reading Track 15, Side 0, 5 Sectors
Reading Track 16, Side 0, 5 Sectors
Reading Track 17, Side 0, 5 Sectors
Reading Track 18, Side 0, 5 Sectors
Reading Track 19, Side 0, 5 Sectors
Reading Track 20, Side 0, 5 Sectors
Reading Track 21, Side 0, 5 Sectors
Reading Track 22, Side 0, 5 Sectors
Reading Track 23, Side 0, 5 Sectors
Reading Track 24, Side 0, 5 Sectors
Reading Track 25, Side 0, 5 Sectors
Reading Track 26, Side 0, 5 Sectors
Reading Track 27, Side 0, 5 Sectors
Reading Track 28, Side 0, 5 Sectors
Reading Track 29, Side 0, 5 Sectors
Reading Track 30, Side 0, 5 Sectors
Reading Track 31, Side 0, 5 Sectors
Reading Track 32, Side 0, 5 Sectors
Reading Track 33, Side 0, 5 Sectors
Reading Track 34, Side 0, 5 Sectors
Reading Track 35, Side 0, 5 Sectors
Reading Track 36, Side 0, 5 Sectors
Reading Track 37, Side 0, 5 Sectors
Reading Track 38, Side 0, 5 Sectors
Reading Track 39, Side 0, 5 Sectors
Reading Track 40, Side 0, 5 Sectors
Reading Track 41, Side 0, 5 Sectors
Reading Track 42, Side 0, 5 Sectors
Reading Track 43, Side 0, 5 Sectors
Reading Track 44, Side 0, 5 Sectors
Reading Track 45, Side 0, 5 Sectors
Reading Track 46, Side 0, 5 Sectors
Reading Track 47, Side 0, 5 Sectors
Reading Track 48, Side 0, 5 Sectors
Reading Track 49, Side 0, 5 Sectors
Reading Track 50, Side 0, 5 Sectors
Reading Track 51, Side 0, 5 Sectors
Reading Track 52, Side 0, 5 Sectors
Reading Track 53, Side 0, 5 Sectors
Reading Track 54, Side 0, 5 Sectors
Reading Track 55, Side 0, 5 Sectors
Reading Track 56, Side 0, 5 Sectors
Reading Track 57, Side 0, 5 Sectors
Reading Track 58, Side 0, 5 Sectors
Reading Track 59, Side 0, 5 Sectors
Reading Track 60, Side 0, 5 Sectors
Reading Track 61, Side 0, 5 Sectors
Reading Track 62, Side 0, 5 Sectors
Reading Track 63, Side 0, 5 Sectors
Reading Track 64, Side 0, 5 Sectors
Reading Track 65, Side 0, 5 Sectors
Reading Track 66, Side 0, 5 Sectors
Reading Track 67, Side 0, 5 Sectors
Reading Track 68, Side 0, 5 Sectors
Reading Track 69, Side 0, 5 Sectors
Reading Track 70, Side 0, 5 Sectors
Reading Track 71, Side 0, 5 Sectors
Reading Track 72, Side 0, 5 Sectors
Reading Track 73, Side 0, 5 Sectors
Reading Track 74, Side 0, 5 Sectors
Reading Track 75, Side 0, 5 Sectors
Reading Track 76, Side 0, 5 Sectors
Reading Track 77, Side 0, 5 Sectors
Reading Track 78, Side 0, 5 Sectors
Reading Track 79, Side 0, 5 Sectors
Reading Track 80, Side 0, 5 Sectors
Reading Track 81, Side 0, 5 Sectors
Reading Track 82, Side 0, 0 Sectors
*** 2416.TD0 Checks OK ***
-- Checking 2625.TD0...
New Advanced data compression was used.
All sectors were copied.
One side was checked.
Source was 3«" low-density MFM.
There is no commentary included in this file.
Reading Track 0, Side 0, 5 Sectors
Reading Track 1, Side 0, 5 Sectors
Reading Track 2, Side 0, 5 Sectors
Reading Track 3, Side 0, 5 Sectors
Reading Track 4, Side 0, 5 Sectors
Reading Track 5, Side 0, 5 Sectors
Reading Track 6, Side 0, 5 Sectors
Reading Track 7, Side 0, 5 Sectors
Reading Track 8, Side 0, 5 Sectors
Reading Track 9, Side 0, 5 Sectors
Reading Track 10, Side 0, 5 Sectors
Reading Track 11, Side 0, 5 Sectors
Reading Track 12, Side 0, 5 Sectors
Reading Track 13, Side 0, 5 Sectors
Reading Track 14, Side 0, 5 Sectors
Reading Track 15, Side 0, 5 Sectors
Reading Track 16, Side 0, 5 Sectors
Reading Track 17, Side 0, 5 Sectors
Reading Track 18, Side 0, 5 Sectors
Reading Track 19, Side 0, 5 Sectors
Reading Track 20, Side 0, 5 Sectors
Reading Track 21, Side 0, 5 Sectors
Reading Track 22, Side 0, 5 Sectors
Reading Track 23, Side 0, 5 Sectors
Reading Track 24, Side 0, 5 Sectors
Reading Track 25, Side 0, 5 Sectors
Reading Track 26, Side 0, 5 Sectors
Reading Track 27, Side 0, 5 Sectors
Reading Track 28, Side 0, 5 Sectors
Reading Track 29, Side 0, 5 Sectors
Reading Track 30, Side 0, 5 Sectors
Reading Track 31, Side 0, 5 Sectors
Reading Track 32, Side 0, 5 Sectors
Reading Track 33, Side 0, 5 Sectors
Reading Track 34, Side 0, 5 Sectors
Reading Track 35, Side 0, 5 Sectors
Reading Track 36, Side 0, 5 Sectors
Reading Track 37, Side 0, 5 Sectors
Reading Track 38, Side 0, 5 Sectors
Reading Track 39, Side 0, 5 Sectors
Reading Track 40, Side 0, 5 Sectors
Reading Track 41, Side 0, 5 Sectors
Reading Track 42, Side 0, 5 Sectors
Reading Track 43, Side 0, 5 Sectors
Reading Track 44, Side 0, 5 Sectors
Reading Track 45, Side 0, 5 Sectors
Reading Track 46, Side 0, 5 Sectors
Reading Track 47, Side 0, 5 Sectors
Reading Track 48, Side 0, 5 Sectors
Reading Track 49, Side 0, 5 Sectors
Reading Track 50, Side 0, 5 Sectors
Reading Track 51, Side 0, 5 Sectors
Reading Track 52, Side 0, 5 Sectors
Reading Track 53, Side 0, 5 Sectors
Reading Track 54, Side 0, 5 Sectors
Reading Track 55, Side 0, 5 Sectors
Reading Track 56, Side 0, 5 Sectors
Reading Track 57, Side 0, 5 Sectors
Reading Track 58, Side 0, 5 Sectors
Reading Track 59, Side 0, 5 Sectors
Reading Track 60, Side 0, 5 Sectors
Reading Track 61, Side 0, 5 Sectors
Reading Track 62, Side 0, 5 Sectors
Reading Track 63, Side 0, 5 Sectors
Reading Track 64, Side 0, 5 Sectors
Reading Track 65, Side 0, 5 Sectors
Reading Track 66, Side 0, 5 Sectors
Reading Track 67, Side 0, 5 Sectors
Reading Track 68, Side 0, 5 Sectors
Reading Track 69, Side 0, 5 Sectors
Reading Track 70, Side 0, 5 Sectors
Reading Track 71, Side 0, 5 Sectors
Reading Track 72, Side 0, 5 Sectors
Reading Track 73, Side 0, 5 Sectors
Reading Track 74, Side 0, 0 Sectors
*** 2625.TD0 Checks OK ***
-- Checking PP_C.TD0...
New Advanced data compression was used.
All sectors were copied.
Both sides were checked.
Source was 3«" low-density MFM.
There is no commentary included in this file.
Reading Track 0, Side 0, 1 Sectors
Reading Track 0, Side 1, 5 Sectors
Reading Track 1, Side 0, 5 Sectors
Reading Track 1, Side 1, 5 Sectors
Reading Track 2, Side 0, 5 Sectors
Reading Track 2, Side 1, 5 Sectors
Reading Track 3, Side 0, 5 Sectors
Reading Track 3, Side 1, 5 Sectors
Reading Track 4, Side 0, 5 Sectors
Reading Track 4, Side 1, 5 Sectors
Reading Track 5, Side 0, 5 Sectors
Reading Track 5, Side 1, 5 Sectors
Reading Track 6, Side 0, 5 Sectors
Reading Track 6, Side 1, 5 Sectors
Reading Track 7, Side 0, 5 Sectors
Reading Track 7, Side 1, 5 Sectors
Reading Track 8, Side 0, 5 Sectors
Reading Track 8, Side 1, 5 Sectors
Reading Track 9, Side 0, 5 Sectors
Reading Track 9, Side 1, 5 Sectors
Reading Track 10, Side 0, 5 Sectors
Reading Track 10, Side 1, 5 Sectors
Reading Track 11, Side 0, 5 Sectors
Reading Track 11, Side 1, 5 Sectors
Reading Track 12, Side 0, 5 Sectors
Reading Track 12, Side 1, 5 Sectors
Reading Track 13, Side 0, 5 Sectors
Reading Track 13, Side 1, 5 Sectors
Reading Track 14, Side 0, 5 Sectors
Reading Track 14, Side 1, 5 Sectors
Reading Track 15, Side 0, 5 Sectors
Reading Track 15, Side 1, 5 Sectors
Reading Track 16, Side 0, 5 Sectors
Reading Track 16, Side 1, 5 Sectors
Reading Track 17, Side 0, 5 Sectors
Reading Track 17, Side 1, 5 Sectors
Reading Track 18, Side 0, 5 Sectors
Reading Track 18, Side 1, 5 Sectors
Reading Track 19, Side 0, 5 Sectors
Reading Track 19, Side 1, 5 Sectors
Reading Track 20, Side 0, 5 Sectors
Reading Track 20, Side 1, 5 Sectors
Reading Track 21, Side 0, 5 Sectors
Reading Track 21, Side 1, 5 Sectors
Reading Track 22, Side 0, 5 Sectors
Reading Track 22, Side 1, 5 Sectors
Reading Track 23, Side 0, 5 Sectors
Reading Track 23, Side 1, 5 Sectors
Reading Track 24, Side 0, 5 Sectors
Reading Track 24, Side 1, 5 Sectors
Reading Track 25, Side 0, 5 Sectors
Reading Track 25, Side 1, 5 Sectors
Reading Track 26, Side 0, 5 Sectors
Reading Track 26, Side 1, 5 Sectors
Reading Track 27, Side 0, 5 Sectors
Reading Track 27, Side 1, 5 Sectors
Reading Track 28, Side 0, 5 Sectors
Reading Track 28, Side 1, 5 Sectors
Reading Track 29, Side 0, 5 Sectors
Reading Track 29, Side 1, 5 Sectors
Reading Track 30, Side 0, 5 Sectors
Reading Track 30, Side 1, 5 Sectors
Reading Track 31, Side 0, 5 Sectors
Reading Track 31, Side 1, 5 Sectors
Reading Track 32, Side 0, 5 Sectors
Reading Track 32, Side 1, 5 Sectors
Reading Track 33, Side 0, 5 Sectors
Reading Track 33, Side 1, 5 Sectors
Reading Track 34, Side 0, 5 Sectors
Reading Track 34, Side 1, 5 Sectors
Reading Track 35, Side 0, 5 Sectors
Reading Track 35, Side 1, 5 Sectors
Reading Track 36, Side 0, 5 Sectors
Reading Track 36, Side 1, 5 Sectors
Reading Track 37, Side 0, 5 Sectors
Reading Track 37, Side 1, 5 Sectors
Reading Track 38, Side 0, 5 Sectors
Reading Track 38, Side 1, 5 Sectors
Reading Track 39, Side 0, 5 Sectors
Reading Track 39, Side 1, 5 Sectors
Reading Track 40, Side 0, 5 Sectors
Reading Track 40, Side 1, 5 Sectors
Reading Track 41, Side 0, 5 Sectors
Reading Track 41, Side 1, 5 Sectors
Reading Track 42, Side 0, 5 Sectors
Reading Track 42, Side 1, 5 Sectors
Reading Track 43, Side 0, 5 Sectors
Reading Track 43, Side 1, 5 Sectors
Reading Track 44, Side 0, 5 Sectors
Reading Track 44, Side 1, 5 Sectors
Reading Track 45, Side 0, 5 Sectors
Reading Track 45, Side 1, 5 Sectors
Reading Track 46, Side 0, 5 Sectors
Reading Track 46, Side 1, 5 Sectors
Reading Track 47, Side 0, 5 Sectors
Reading Track 47, Side 1, 5 Sectors
Reading Track 48, Side 0, 5 Sectors
Reading Track 48, Side 1, 5 Sectors
Reading Track 49, Side 0, 5 Sectors
Reading Track 49, Side 1, 5 Sectors
Reading Track 50, Side 0, 5 Sectors
Reading Track 50, Side 1, 5 Sectors
Reading Track 51, Side 0, 5 Sectors
Reading Track 51, Side 1, 5 Sectors
Reading Track 52, Side 0, 5 Sectors
Reading Track 52, Side 1, 5 Sectors
Reading Track 53, Side 0, 5 Sectors
Reading Track 53, Side 1, 5 Sectors
Reading Track 54, Side 0, 5 Sectors
Reading Track 54, Side 1, 5 Sectors
Reading Track 55, Side 0, 5 Sectors
Reading Track 55, Side 1, 5 Sectors
Reading Track 56, Side 0, 5 Sectors
Reading Track 56, Side 1, 5 Sectors
Reading Track 57, Side 0, 5 Sectors
Reading Track 57, Side 1, 5 Sectors
Reading Track 58, Side 0, 5 Sectors
Reading Track 58, Side 1, 5 Sectors
Reading Track 59, Side 0, 5 Sectors
Reading Track 59, Side 1, 5 Sectors
Reading Track 60, Side 0, 5 Sectors
Reading Track 60, Side 1, 5 Sectors
Reading Track 61, Side 0, 5 Sectors
Reading Track 61, Side 1, 5 Sectors
Reading Track 62, Side 0, 5 Sectors
Reading Track 62, Side 1, 5 Sectors
Reading Track 63, Side 0, 5 Sectors
Reading Track 63, Side 1, 5 Sectors
Reading Track 64, Side 0, 5 Sectors
Reading Track 64, Side 1, 5 Sectors
Reading Track 65, Side 0, 5 Sectors
Reading Track 65, Side 1, 0 Sectors
Reading Track 66, Side 0, 0 Sectors
Reading Track 66, Side 1, 0 Sectors
Reading Track 67, Side 0, 0 Sectors
Reading Track 67, Side 1, 0 Sectors
Reading Track 68, Side 0, 0 Sectors
Reading Track 68, Side 1, 0 Sectors
Reading Track 69, Side 0, 0 Sectors
Reading Track 69, Side 1, 0 Sectors
*** PP_C.TD0 Checks OK ***
4 file(s) processed.
Не правда ли, очень похоже на то, что выдает DIAnalyzer? И дорожки с 0 количеством секторов, и диски считанные с одной стороны...
Пока все. Возьму не большую паузу. пойду покурю.
- - - Добавлено - - -
Да, кстати, для распаковки вы можете попробовать использовать утилитки-примеры отсюда http://www.emuverse.ru/wiki/Teledisk
Эту ссылку я уже приводил. Там в самом низу есть "Библиотека для работы с форматом Teledisk (http://www.emuverse.ru/downloads/software/dsklib/teledisk.0.1.1.zip)". В архиве кроме самой библиотеки имеется td2dsk.exe. Только, боюсь, результат будет тот же.
- - - Добавлено - - -
Продолжим.
Получается, что анализатор куда-то дел 4 кб диска.
Из вышесказанного, думаю, понятно, что анализатор никуда ничего не дел. Не имеет такой привычки. Да и зачем ему чужие 4 кб. Просто их не было в исходном образе.
При просмотре текстовых файлов не запоминается кодировка. Ясно, что если я включил КОИ-8, то и остальные файлы на этом диске (и на других) в той же кодировке. А так приходится при просмотре каждого файла заново выставлять кодировку.
Далеко не факт, что "остальные файлы на этом диске (и на других) в той же кодировке". Есть масса образов, в которых встречаются одновременно файлы в разных кодировках. Но запоминание можно сделать. Записал. (Кстати, вот например в образе 2408, файл WM48.HLP в КОИ-8, а WM.HLP в CP866)
Просмотр текста неправильный. В CP/M все шрифты одной ширины (как на печатной машинке), а не пропорциональные как в Windows. А меню выбора шрифта нет. И если стоит ALT-кодировка MSDOS, то правильно должны выводиться рамочки, нарисованные псевдографикой. То же самое должно быть и в КОИ-8 (псевдографика по книге Фигурнова "IBM PC для пользователя").
Погодите. Дык у меня в просмотрщике шрифт Courier. Он как раз моноширинный, а не пропорциональный. И рамки выводятся более-менее правильно.
Есть проблемы с табуляцией. Ее да. Надо поправить.
Иногда встречаются кодировки КОИ-8 с разным кодом для букв 'ё' и разным размещением символов псевдографики (В Linux и в CP/M,Windows отличия). Надо сделать по книге Фигурнова, а не по Linux. Про Linux никто и не знал в 80/90-е.
Это да. Встречал иногда проблемы с "ё". Я делал ваще по википедии:) Можно посмотреть.
Ну и потом перейду к самому интересному.
- - - Добавлено - - -
Необходима возможность загружать образ диска у которого дохлый BOOT-сектор, что постоянно бывает на практике (особенно со старыми дискетами). Т.е надо грузить образ ODI, где нет ИНФО-блока (его контр.сумма в байте с офсетом 1F неверна). Но я то знаю, в каком формате мой диск. Пусть программа спросит у меня какой формат и потом запишет правильный ИНФО-блок.
В принципе это частично есть. Можно открыть такой образ, сменив ему расширение на .xdi или воспользоваться пунктом меню "Открыть как .xdi". Нет только возможности сохранить корректный инфо-блок в образ.
К тому в готовящейся к релизу версии, при проблеме детекта, вместо простой выдачи сообщения "Неизвестный формат файла", будет предлагаться выбор дальнейших действий из 3 вариантов:
- Открыть образ, используя параметры предыдущего открытого образа
- Открыть образ, используя параметры по умолчанию (они меняются в настройках)
- Открыть образ как xdi (то есть по введенным вручную параметрам)
Запись инфо-блока можно реализовать, только байты 00 - 07 = 00, 08 - 09 = 01, остальное уже будет, либо можно дать возможность ввести все 31 байт (кроме к.с. вручную) в виде одной хекс-строки. 1 вариант, думаю, лучше, т.к. вводить параметры либо не надо будет совсем, либо 1 раз при открытии.
То же самое надо и при дохлом секторе в каталоге. Если программа обнаружит чушь в каталоге, то должна предложить ручное редактирование каталога. Я увижу, что один сектор каталога "битый" и содержит мусор и попрошу программу заполнить его кодом E5.
В следующей версии логика будет следующей:
Если в каталоге встречается запись где:
- один или более символов имени <> ASCII
- EX>1F
- RC>80
- Номер блока в карте > максимального
то такая запись будет игнорироваться (щас происходит прерывание открытия с выдачей ошибки), то есть обрабатываться не будет, будет просто пропускаться.
В конце открытия возможно (возможно опционально) будет сообщаться о проблемах при открытии (сбойных местах в директории).
Как работает SteinBlume (я выше где-то его уже описывал). Она считывает все файлы с образа в память (если это не hdd образ конечно). А при сохранении создает образ с 0, сохраняя в него считанные при открытии системные треки, и все считанные файлы подряд (не на старое место, а подряд, в том порядке в котором они были считаны. "Удаленные файлы" не сохраняются). Исходя из этого, файлы соответствующие ошибочным записям в директории, сохраняться в образ не будут (так как и считаны не были). Получим в итоге после сохранения корректный образ. НО! Я бы в этом случае сохранил такой образ под другим именем, а потом вручную посмотрел в хекс-редакторе на сбойные участки. Многое можно спасти вручную.
Гипотетический пример. Была запись с именем файла example.com. По известным одному только Рандому причинам. Один байтик имени убился. А в итоге весь файл потерян.
Все. Перерыв.
- - - Добавлено - - -
И да. В принципе несложно написать этакую мелкую консольную тулзу, которая по результатам работы DIAnalizer (файлам xdi и log) и введенными вами параметрами формата (например в таком виде H02C0052S0005L0400FE5, что значит: Н - головок/сторон - 2, С - цилиндров - 82, S - секторов - 5, L - длина сектора - 1024 байт, F - заполнитель - 00) находит в образе пропущенные места и заполняет их. Такая небольшая автоматизация.
- - - Добавлено - - -
Ну и да, тоже порекомендую утилиту marinovsoft'a: http://zx-pk.ru/threads/23421-novaya-utilita-dlya-raboty-s-diskami-cp-m.html
У нее есть один неслабый плюс - заточенность под конкретные форматы (а не попытка слепить универсальный инструмент, как у меня), ну и конечно же работа с реальными дискетами.
Error404
03.03.2017, 15:13
Далеко не факт, что "остальные файлы на этом диске (и на других) в той же кодировке". Есть масса образов, в которых встречаются одновременно файлы в разных кодировках. Но запоминание можно сделать. Записал. (Кстати, вот например в образе 2408, файл WM48.HLP в КОИ-8, а WM.HLP в CP866)
Лучше сделать автоопределение кодировки текста (таких подпрограмм в исходниках выгугливается) работающее при каждом открытии текстового файла на просмотр, ибо открывая чужую дискету с "кракозябрами" зачастую заранее не знаешь какую кодировку ставить (даже на Орионе с заведомо орионовсикх дисков такое бывает - там и в КОИ всех видов встречается, и в 866 и в 1251). Но и ручное выставление надо оставить - на случай если автоопределение не угадало и таки надо подбирать.
Black Cat / Era CG
07.03.2017, 11:54
Лучше сделать автоопределение кодировки текста (таких подпрограмм в исходниках выгугливается) работающее при каждом открытии текстового файла на просмотр, ибо открывая чужую дискету с "кракозябрами" зачастую заранее не знаешь какую кодировку ставить (даже на Орионе с заведомо орионовсикх дисков такое бывает - там и в КОИ всех видов встречается, и в 866 и в 1251). Но и ручное выставление надо оставить - на случай если автоопределение не угадало и таки надо подбирать.
Пробую. Вроде даже че-то получается. Более-менее правильно определяет КОИ, 866, 1251. ISO не могу проверить, готовых файликов нету. Автоопределение считает только кириллицу, ASCII и псевдографику не трогает. Поэтому всякие кодировки отличающиеся от КОИ только псевдографикой определяться будут как КОИ. Кодировка по умолчанию - КОИ-8Р (То есть файлы, не содержащие кириллицу, определяются как КОИ). Ваще по сути в программе всего 4 семейства кодировок:
- КОИ (КОИ-7, КОИ-8Р, АТМ, Профи) - определяются как КОИ (кроме АТМ, она иногда пытается определяться, иногда ложно для КОИ-файлов из кириллицы в верхнем регистре),
- ISO - не проверял, но должна определяться,
- 866 - вроде определяется,
- 1251 - тоже вроде определяется.
В общем, основные проблемы только с КОИ. Там надо потом вручную часто вариант выбирать.
Автоопределение будет опциональным (включаться/отключаться в настройках). Просто щас кодировка выставляется согласно "кодировке по умолчанию" для формата, то есть тексты в образах Profi, будут по умолчанию в Profi и смотретьтся. Просто "кодировка по умолчанию" у меня для большинства форматов прописана как КОИ...
Black Cat / Era CG
08.03.2017, 19:16
SteinBlume v1.2.0.1400 (8.03.2017)
Обновился.
+ Добавлен диалог Свойств образа (Alt+Enter);
+ Добавил возможность открытия файла образа диска, передав его имя в качестве параметра командной строки (Спасибо barsik'у за замечание);
* Изменена горячая комбинация для открытия диалога настроек (Ctrl+Enter);
* Изменение обработки ошибок при открытии файла;
При открытии образа, если формат образа не опознан, теперь можно выбрать вариант дальнейших действий:
открыть образ, используя параметры предыдущего образа (если ранее ничего не открывалось, используются параметры по умолчанию),
открыть образ, используя параметры по умолчанию,
открыть образ как .xdi (ввести параметры образа).
* Изменение обработки ошибок при открытии файла;
Теперь при ошибке превышения маскимального номера блока, операция открытия образа не прерывается. Обработка записи в директории, вызвавшей ошибку пропускается. В конце операции открытия выводится список произошедших при открытии ошибок (опционально, по умолчанию вывод ошибок отключен).
* Lister. Теперь кодировка текста определяется автоматически (можно отключить в Настройках);
* Lister. Изменена горячая комбинация для кодировки АТМ (Ctrl+M);
* Lister. Исправлено отображение табуляции;
* Lister. Исправлен просмотр изображений WIN (Корвет).
Были перепутаны цвета.
* Исправлены мелкие ошибки.
Ссылки в первом сообщении.
Black Cat / Era CG
13.03.2017, 00:26
Что-то как-то подозрительно тихо...
Может и тихо, но вот разные пожелания и прикольные хотелки я отсюда себе на ус мотаю
Black Cat / Era CG
13.03.2017, 06:50
anasana, там картинка? Ее не видно
- - - Добавлено - - -
А. Понял
Вот здесь http://schorn.ch/altair_6.php лежит куча файлов с расширением DSK, содержащих интересные мне компиляторы ЯВУ и все общеизвестные прикладные пакеты для CP/M. Проблема в том, что ни 'Disk Analyzer', ни 'Stein Blume' не признают этот CP/M-формат. Кто-нибудь знает где взять утилиту, чтобы вытащить файлы из этих DSK-файлов?
Сам формат не является полной копией секторов. А именно, через каждые 128 байт вставлено 9 байтов E5 (возможно в этих 9-ти байтах в реальном секторе была служебная информация, типа CRC сектора и т.п, но сдуру её не удалили, а заменили на E5). Используя файл ODI для дискеты ОРИОНА легко узнать какие файлы хранятся в конкретном DSK-файле. Для этого в текстовом редакторе UltraEdit (естественно в HEX-режиме) я беру блок кодов начиная с адреса 66С3 и переношу 2000H байтов (с заменой) в ODI-файл дискеты ОРИОНА на адрес 5000.
Но это ещё не всё. Далее надо вручную (естественно не тупо вручную, а командой редактора "найти и заменить") в этих 2000H байтах найти 9 идущих подряд байтов E5 и удалить (т.е командой замены заменить на ничто). Иногда в каталоге встречается подряд 128 байт E5 и следом ещё 9 байтов E5, тогда можно удалить все 137 байтов E5, что сдвинет каталог на лог.сектор в 128 байт. Такая переделка приводит CP/M каталог к нормальному виду. После такой обработки каталога SteinBlume выводит каталог диска и можно узнать, что находится на исходном DSK-диске. Но, естественно, самих данных с диска DSK на диске ODI нет. Это просто способ узнать содержимое DSK-дискеты и решить стоит ли дальше трахаться, чтобы достать оттуда файлы.
Теоретически можно написать утилитку и всю DSK-дискету обработать так, чтобы удалить 9 байтов E5 после каждых 128-ми байтов. Тогда получится точная посекторная копия исходного диска. Останется узнать какой на дискете был размер CP/M-блока (видимо 2К, т.к исходный диск похоже был 800К) и сколько системных треков (похоже тоже 4). Далее переименовав файл в ODI и записав в ИНФО-блок в начале файла параметры дискеты (естественно одновремнно верно сосчитав и подставив КС ИНФО-блока), получится дискета в стандарте ОРИОНА в каком-то формате. И тогда файлы можно будет просто скопировать с помощью 'Stein Blume'.
Но не хочется с этим трахаться, вдруг есть способ попроще.
Black Cat / Era CG
30.05.2017, 12:46
Странные они какие-то...
- - - Добавлено - - -
Щас я накалякаю на своем кривом английском (не даром же я не играю в Dizzy на языке оригинала) письмо владельцу сайта, может, он прояснить ситуацию.
Странные они какие-то...
В описании эмулятора (называемого симулятор Альтаира) прочитал, что эти файлы не из реальных дискет, а специально для эмулятора. В которых автор поддержал оригинальный контроллер MITS, но чтобы увеличить полезную ёмкость дискет увеличил число треков с реальных 77 до 254, что максимально поддерживает CP/M.
Предположительно оригинальный формат был базовый Intel (от ЭВМ MDS-800, чей аналог СМ-1800) в котором 77 треков. И кажется 8 секторов по 256 или 512 байт в секторе. Размер физ.сектора надо ещё уточнить, но скорее всего размер физ.сектора треке, - 512. Потому что при 256-ти байтовых секторах получается ёмкость диска очень маленькой 256*8*77= всего 154 кб. Насколько я помню, дисководы ЕС-5074 для СМ-1800, это отечественные аналоги, давали размер 8-ми дюймового диска порядка 300 кб (и вдвое больше, если дискета двухсторонняя, тогда дискету вставляли перевернув, для чего были специальные пробойники для пробивки второй индексной дырки). И если верно помню, то в книге "Операционная система CP/M" Уэйта и Ангермейера читал, что базовый формат 8'' дисководов был 16 секторов по 256 байт на 77 треках, что дает 308 кб на диск.
Таким образом, похоже, что для эмулятора автор создал искусственный формат в 254*512*8= 1016 кб, что согласуется с размером файлов 1088 кб.
Таким образом достаточно на всём диске поудалять через каждые 128 байтов 9 байтов E5 и записать орионовский ИНФО-блок для формата 254 треков, 8 физ.секторов в треке, по 512 байтов в секторе.
В описании эмулятора упоминается программка R, которая служит для трансфера файлов из винта Windows в файлы DSK. Но пока не нашёл упоминаний о том, как делать трансфер обратно. Вообще, там поддерживается и виртуальный винчестер (8 мб), причём он же служит для обмена с DSK-файлами в формате дискет большинства широкоизвестных американских 8-ми разрядок (в том числе и формат CP/M Apple-II на 140 кб). Возможно формат этого виртуального винчестера попроще. В общем надо разбираться по документации как пользоваться этим эмулятором. Похоже, что это качественный продукт и возможно удобно будет транслировать программы прямо в этом эмуляторе.
Black Cat / Era CG
30.05.2017, 13:46
базовый формат 8'' дисководов был 16 секторов по 256 байт на 77 треках, что дает 308 кб на диск
Объем стандартной 8-дюймовой CP/M дискеты = 77 дорожек, 26 секторов на дорожке по 128 байт - 256 256 байт.
Таким образом, похоже, что для эмулятора автор создал искусственный формат в 254*512*8= 1016 кб, что согласуется с размером файлов 1088 кб.
Похоже на то.
Ну если "лишние" 9 байт действительно повторяются с четкой периодичностью, после каждых 128 байт нужной информации, то выкусить их оттуда не особо сложно (можно написать маленькую вспомогательную безымянную утилитку - умные люди это всякими скриптами делают), ди получить таким образом образа, научить читать которые SteinBlume можно уже, не правя ее собственный код. Если, конечно, это все надо. И родного софта с того же сайта будет недостаточно.
Вот здесь http://schorn.ch/altair_6.php лежит куча файлов с расширением DSK, содержащих интересные мне компиляторы ЯВУ и все общеизвестные прикладные пакеты для CP/M. Проблема в том, что ни 'Disk Analyzer', ни 'Stein Blume' не признают этот CP/M-формат. Кто-нибудь знает где взять утилиту, чтобы вытащить файлы из этих DSK-файлов?
почитайте доки про эмулятор. В нем есть утилитки r.com и w.com - импорт/экспорт файлов. Я вытащил массу файлов из пакета PL/M без проблем.
Black Cat / Era CG
31.05.2017, 16:49
В нем есть утилитки r.com и w.com - импорт/экспорт файлов. Я вытащил массу файлов из пакета PL/M без проблем.
Ну вот и вполне правильное решение. Ибо чета тишина. Либо я чета не так написал, либо мой английский оказался совсем не переводим на нормальный.
Наверное, оффтоп, но формат .dsk - полная жопа. Один знакомый нашел утилитку, которая читает и понимает формат эмулятора Amstrad PCW.
Вместе с тем, формат Apple ][ - это тоска. Разобраться можно с помощью курения a2tools. Я не разбирался до конца.
У Amstrad CPC свой хитрый формат.
У Tandy TRS-80 еще более хитрый, не все эмуляторы понимают образы дисков.
Если не ошибаюсь, эмуляторы для Altair (Simh и Altair32) содержат средства импорта/экспорта файлов.
Для популярных эмуляторов Z80(Yaze) и другие - тяжелый случай "каждый дрочит как хочет".
Тяжело обнять необъятное.
Black Cat / Era CG
31.05.2017, 18:33
Согласен. И не пытаюсь особо. У меня утилка Image Analyzer понимает только Амстрадовский dsk и только стандартный (не extended). А само расширение очень уж популярно, и чего только в нем нет...
Black Cat / Era CG
26.06.2017, 11:48
Немного типа документации :)
Краткая инструкция "Как можно открыть xdi-образ, не имея ini-файла, но четко зная подробности формата" (на примере формата 8-дюймовых дисков CP/M 1.4)
I. Вариант номер РАЗ.
1. Открываем SteinBlume;
2. Перетаскиваем образ в Утилиту (либо открываем через меню, с помощью пункта "Открыть образ...");
3. В появившемся окне "Параметры .xdi":
3.1 Текущий файл настроек - информационное поле, не редактируется.
3.2 Id-строка формата - константа, позволяющая однозначно задать некоторые тонкости формата, если не знаем, что сюда писать, оставляем пустым. В данном случае оставляем пустым.
3.3 Смещение секторов - параметр, задающий порядок чтения секторов для образов дисков с программным смещением секторов (sofware skewed sectors). Либо одно десятичное число (задающее фиксированное смещение), либо порядок чтения всех секторов единым списком через запятую, без пробелов. Для CP/M 1.4 skew factor = 6
3.4 Формат хранения дат - на данный момент временные записи в директории игнорируются. Но все равно желательно задать этот параметр. Для CP/M 1.4 выбираем CP/M стандарт (1 - в ини-файле).
3.5 Выбираем "Прямое заполнение DPH и DPB". С Простым попроще, но если есть все необходимые данные, то лучше задать все в точности (Тем более в простом есть баг).
3.6 И задаем параметры:
len=0
den=0
sec=1A
trk=4D
bsh=3
drm=3F
off=2
Остальные параметры утилита поменять не даст.
3.7 Полученные настройки можно:
[*=1]Сохранить в виде ini-файла, нажав кнопку "Сохранить",
[*=1]Запомнить как Настройки по умолчанию, чтобы не вводить эти параметры каждый раз при открытии образов одинакового формата. (Настройки по умолчанию можно всегда задать/изменить в настройках утилиты).
3.8 Жмем "ОК"
4. Профит.
II. Вариант не требующий смену расширения у файла образа на ".xdi".
1. Открываем SteinBlume;
2. Открываем образ с помощью пункта меню "Открыть образ как .xdi...". С помощью этого пункта можно попытаться открыть как .xdi образ с любым расширением.
3. Выполняем описанное выше в пункте 3;
4. Профит.
III. Открытие с помощью "Простого заполнения".
А вот его лучше б не использовать - есть баг. Ниже опишу, как с ним бороться.
1. Открываем SteinBlume;
2. Открываем образ любым понравившимся из вышеописанных способов;
3. В появившемся окне "Параметры .xdi":
3.1 Выполняем описанное выше в пунктах 3.1-3.4;
3.2 Выбираем "Простое заполнение параметров диска". Стоит обратить, что здесь все параметры вводятся в десятичной форме (Простое же).
3.3 И задаем параметры:
Число сторон диска. В нашем случае - 1;
Число цилиндров. В нашем случае - 77;
Число секторов на дорожке. В нашем случае - 26;
Размер сектора (байт). В нашем случае - 128;
Размер блока (байт). В нашем случае - 1024;
Число записей в директории. В нашем случае - 64;
Число системных дорожек. В нашем случае - 2.
3.4 ВАЖНО. Имеет место быть баг (введенные настройки игнорятся). Чтобы баг обойти, после ввода всех параметров потыкайте туда-сюда по пунктам "Прямое заполнение DPH и DPB" и "Простое заполнение параметров диска" - настройки перестанут игнорироваться.
3.5 Жмем "ОК";
4. Профит.
Black Cat / Era CG
03.07.2017, 09:36
Благодаря barsik'у (http://zx-pk.ru/member.php?u=8337) в копилку конфигов добавляется 2 файлика от Apple II.
Берем тут: 61527.
Как раскачаюсь на обновление, включу их в комплект.
Так теперь переплюнешь CiderPress?
Black Cat / Era CG
03.07.2017, 10:13
Так теперь переплюнешь CiderPress?
Вряд ли. У утилит, заточенных под работу с образами конкретных компов, всегда большое преимущество. Пытаться объять необъятное и впихнуть невпихуемое - идея не такая уж и удачная. Это касается и Apple II, и +3DOS, и Корвета.
Не, дело конечно. просто CiderPress позволяет массу функций: детокенизация Basic/Merlin Assembler, просмотр hgr форматов, импорт-экспорт файлов, и прочее другое.
Black Cat / Era CG
06.07.2017, 16:06
Не, дело конечно. просто CiderPress позволяет массу функций: детокенизация Basic/Merlin Assembler, просмотр hgr форматов, импорт-экспорт файлов, и прочее другое.
Ну я рад за нее :)
А картинки разные с Вектора она умеет смотреть допустим?
Просто я к тому, что зачем соперничать с мощной утилитой заточенной конкретно под Apple? Просто CiderPress уже есть. И отлично при этом справляется со своими задачами.
:)
А картинки разные с Вектора она умеет смотреть допустим?
не-а. утилка заточенная под Apple][ с разными форматами. Это не претензия к созданной.
Black Cat / Era CG
06.07.2017, 16:30
утилка заточенная под Apple][ с разными форматами.
Я про то же. Моя утила, создавалась изначально как-то больше ориентируясь на отечественные CP/M компы. Я в принципе не вижу особого смысла конкурировать с инструментами, которые и так прекрасно работают :)
Ваще всякие новые фичи последнее время добавляются либо с поступлением свежей инфы, либо реквествов. Ни того, ни другого последнее время как-то не особо.
нинай. по заявкам barsik'a утилы хватает, чтобы извлечь нужные файлы.
(кроме yaze80 )
Black Cat / Era CG
07.07.2017, 11:36
Наткнулся тут случайно на эту: http://zx-pk.ru/threads/11089-pk8000-kontroller-diskovoda.html тему и выяснил что моя утилка внезапно умеет открывать образы дисков от ПК8000 (по крайней мере те, что тут выложены), если их, правда, предварительно вытащить из td0. В принципе, это логично, ибо используется та же система с хранением параметров диска на самом диске.
:)
Правда, только если на диске присутствует система. Если диск не системный (dpb на месте нет), то на такой случай вот есть конфиг: 61546
у ПК8000 стандартная CP/M 2.2. Её даже MS-DOS утилитки под диски от Robotron 1715 читают.
Black Cat / Era CG
07.07.2017, 11:55
у ПК8000 стандартная CP/M 2.2. Её даже MS-DOS утилитки под диски от Robotron 1715 читают.
Ага. Логично.
кстати, а Amstrad PCW нет в списке? или, скажем, Sharp MZ-700?
Black Cat / Era CG
07.08.2017, 13:39
кстати, а Amstrad PCW нет в списке? или, скажем, Sharp MZ-700?
Amstard можно добавить, кинь какой-нибудь образ-два на проверку. С Sharp MZ-700 сложнее, я про него ничего не знаю.
https://github.com/damieng/DiskImageManager
http://www.retroarchive.org/maslin/disks/amstrad/
по другому софту не разбирался, если нужно, то стукнись ЛС, отдам гиг архива.
Black Cat / Era CG
07.08.2017, 19:05
http://www.retroarchive.org/maslin/disks/amstrad/
Ну эти, если их вытащить из td0, на первый взгляд вполне открываются с помощью Plus3Dos_SS.ini.
Формат один и тот же ж.
https://github.com/damieng/DiskImageManager
А для Амстрадовских дск опять же лучше юзать утилиты под них заточенные. Например, эту самую.
работа с дисками - это как pain in ass: эмуляторы, кроме JoyCE, не поддерживают запись на диски. а дружелюбный интерфейс у JoyCE - из раздела фантастики.
других утилит не нашлось.
Black Cat / Era CG
01.09.2017, 21:25
SteinBlume v1.2.1.1401 (1.09.2017)
Обновился.
+ Lister. Добавлена поддержка просмотра графических файлов GRF с палитрой (Profi);
* Разные мелкие изменения;
* Исправлены мелкие ошибки.
Ссылки в первом сообщении.
Black Cat / Era CG
04.09.2017, 12:19
Возник вопрос, относящийся к самой утилите несколько боком.
Обратил внимание, что некоторые люди качают утилиту и в виде архива, и в виде инсталлера одновременно. Вопрос: а зачем?
некоторые люди качают утилиту и в виде архива, и в виде инсталлера
Я тебе больше скажу — и не распаковывают и не инсталлируют.
а зачем?
Скопидомство.
marinovsoft
04.09.2017, 12:58
Если хочешь подсчитать реальных пользователей - делай в программе автопроверку наличия новых версий при запуске.
Black Cat / Era CG
04.09.2017, 13:22
Если хочешь подсчитать реальных пользователей - делай в программе автопроверку наличия новых версий при запуске.
Да особо считать-то нет нужды. Просто интересно стало :)
shurik-ua
04.09.2017, 13:54
Обратил внимание, что некоторые люди качают утилиту и в виде архива, и в виде инсталлера одновременно. Вопрос: а зачем?
Ушлый юзер привык к багам - и качает обе - вдруг окажется что в одной версии одна опция не работает - а в другой работает )) - привычка скорее всего.
делай в программе автопроверку наличия новых версий при запуске.
Программа, которая при запуске лезет в интернет, всегда вызывает подозрения :)
Black Cat / Era CG
04.09.2017, 14:16
Главное, чтобы не было примерно так:
Потому что я скачал, инсталлер, установил, но обнаружил, что в папке утилиты (...\Program Files (x86)\SteinBlume\) нету папок sys и xdi_settings. Поэтому я скачал архив, нашел там недостающее и исправил эту ошибку вручную...
ибо чревато...
marinovsoft
04.09.2017, 17:41
Программа, которая при запуске лезет в интернет, всегда вызывает подозрения :)
https://static8.depositphotos.com/1031551/871/i/950/depositphotos_8715298-stock-photo-data-protection-condom-and-network.jpg
Black Cat / Era CG
04.09.2017, 18:04
Программа, которая при запуске лезет в интернет, всегда вызывает подозрения
На самделе все решается просто. При запуске прога должна не сразу молча лезть в инет, а спросить об этом. При этом желательно с галкой "Забыть и больше не спрашивать" и возможностью проверить обновы ч/з пункт меню, а также возможностью включения проверки при запуске в настройках. Но это какбэ в приближении к идеалу.
А в идеале, ваще никак. Ибо в идеале проге не надо обновляться, потому что она сразу совершенна и предвидит все, что навыдумывают Билли и Ко вплоть до Окон 20 (или даже до окон 95).
Black Cat / Era CG
09.09.2017, 21:34
Немного поменялся мыльный адрес, если что. Теперь он такой: speccy{dog}era-cg{dot}su.
Black Cat / Era CG
18.10.2017, 19:53
Каменная лодка дала заметный крен в сторону прямой поддержки Амстрадовских DSK. Если у кого есть желание помочь тестированием/информацией, прошу в почту.
инфы ноль, ага. разве что на форумах спрашивать.
Black Cat / Era CG
19.10.2017, 07:36
Ну для начала мне хватает того, что у меня есть. Больше актуально сейчас протестировать как следует то, что я уже впилил (в рабочей нерелиженной версии).
А с автором связаться?
http://www.habisoft.com/pcw/index_uk.asp
просмотр файлов не нужен по идее. токенизированные .BAS - это полная жопа. Картинки хранятся в бинарном виде, выводить их полный геморрой.
Диски еще тут:
http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/syst-disk-amstrad-pcw-8256/
А протестировать недолго, как будет готово(для PCW)
Black Cat / Era CG
19.10.2017, 09:54
А протестировать недолго, как будет готово(для PCW)
Открывать их она уже более/менее их умеет (пока не прикрутил создание/сохранение). Смотрит тоже вроде правильно. Щас скину ссылку и подробности на почту.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
вот так.
http://rgho.st/8t4dcd8rM
Cpm_29.dsk - оригинальный диск.
Cpm_29t.dsk - сохраненный диск.
при сохранении программа свалилась, открывать не открывает=, выдает сообщение об ошибке.
Black Cat / Era CG
19.10.2017, 10:35
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
Странно :)
Письмо-то пришло.
при сохранении программа свалилась
пока не прикрутил создание/сохранение
открывать не открывает=, выдает сообщение об ошибке.
Ну дык она ниче не сохранила, там файл нулевой длины. Тестить надо пока открытие онли.
Тогда открывает. Осталось сохранение.
Black Cat / Era CG
07.11.2017, 21:02
Coming soon... что по-русски значит "грядет праздничное обновление" :)
- - - Добавлено - - -
SteinBlume v1.2.0.1400 (08.03.2017)
Обещанное праздничное обновление.
+ Добавлена экспериментальная "прямая" поддержка образов дисков Amstrad DSK;
+ В Настройках добавлена возможность выбора языка интерфейса по умолчанию, со сменой "на лету";
Параметры командной строки для принудительного выбора языка (-l ru или --lang ru) также сохранены.
* Исправлена ошибка, не позволяющая в некоторых случаях сохранить образ диска с числом блоков менее 256;
+ Lister. Добавлен просмотр графических файлов BLK, созданных в пакете GRAF для ATM (Большое спасибо Максиму Тимонину за помощь);
+ Lister. При просмотре Spectrum BASIC добавлена возможность включения/отключения отображения контрольных (непечатных) кодов, реальных значений чисел;
В Настройках добавлена возможность настройки отображения по умолчанию.
+ Lister. Добавлены режимы просмотра дизасма в мнемониках Intel 8080 и Z80;
Для COM-файлов CP/M и кодовых файлов +3 DOS эти режимы используются, как режимы просмотра по умолчанию. В Настройках также появились опции, касающиеся этих режимов просмотра.
* Lister. Исправлена ошибка просмотра в режиме текста для +3 DOS;
* Мелкие исправления.
Ссылки, как обычно, в первом сообщении.
Error404
08.11.2017, 20:26
Добавь пожалуйста работу с образами жестких дисков CP/M от ATM (*.HDD). Ибо никто мне так и не сказал что это за формат и чем его едят, эмулятор с образа не грузится и нечем посмотреть что там за содержимое (т.е. понять - а должен ли грузиться).
Образ для экспериментов по ссылке в этом посте (http://zx-pk.ru/threads/2977-obraz-atm-vinta!!!.html?p=935643&viewfull=1#post935643)
Максагор
08.11.2017, 20:47
Добавь пожалуйста работу с образами жестких дисков CP/M от ATM (*.HDD). Ибо никто мне так и не сказал что это за формат и чем его едят, эмулятор с образа не грузится и нечем посмотреть что там за содержимое (т.е. понять - а должен ли грузиться).
Образ для экспериментов по ссылке в этом посте
Какого-то образа HDD именно CP/M от ATM нет и быть не может. Ибо нет какой-то стандартной MBR как в FAT MS-DOS. НА винте будут такие разделы, как и где ты сам разметишь и пропишешь в системе, причем необязательно CP/M, но и iS-DOS/TASiS. Так что какого-то стандарта, который можно добавить в утилиту просто нет.
Black Cat / Era CG
08.11.2017, 22:51
Какого-то образа HDD именно CP/M от ATM нет и быть не может. Ибо нет какой-то стандартной MBR как в FAT MS-DOS. НА винте будут такие разделы, как и где ты сам разметишь и пропишешь в системе, причем необязательно CP/M, но и iS-DOS/TASiS. Так что какого-то стандарта, который можно добавить в утилиту просто нет.
Это фигово, так бы прикрутил, как с Орионовским сделал. Вроде работает. Там как раз MBR, смотрю только CP/M-разделы, если их несколько, можно выбрать, с каким работать.
- - - Добавлено - - -
Ваще если там обыкновенный побайтовый такой дамп с CP/M-разделом, то теоретически можно бросать рядом с ним особый ини-файлик с описанием, и тогда можно прикрутить и такие образы, думаю.
Error404
09.11.2017, 00:48
Какого-то образа HDD именно CP/M от ATM нет и быть не может. Ибо нет какой-то стандартной MBR как в FAT MS-DOS. НА винте будут такие разделы, как и где ты сам разметишь и пропишешь в системе, причем необязательно CP/M, но и iS-DOS/TASiS. Так что какого-то стандарта, который можно добавить в утилиту просто нет.
Однако было бы крайне удобно чтобы на HDD был MBR с корректной информацией (хотя бы об одном разделе - об области уже размеченной под что-то) - он ведь не только для нашего удобства, но и для того чтобы этот винт посторонние ОС (типа Винды) не перезаписали - видели бы на нем раздел(ы). Тем более на HDD не занят первый килобайт, очень удачно для нас: нужное для MBR место не используется. Давайте там таки держать MBR, и стандартизуем что он должен содержать в таблице разделов?
НА винте будут такие разделы, как и где ты сам разметишь и пропишешь в системе, причем необязательно CP/M, но и iS-DOS/TASiS.
Можно об этом поподробнее? В BIOS (который типа setup по space) надо ручками где-то указать с какого сектора грузиться? Может поэтому у меня не загружается ничего - я только в INI эмулятора прописал имя файла с образом диска, и затем в BIOS тупо нажимаю "грузить с HDD" ибо приучен к хорошему. :) И как по конкретному файлу образа (https://yadi.sk/d/VuD4nwTk3PSF33) понять с какого сектора надо грузиться?
Максагор
15.11.2017, 20:43
Можно об этом поподробнее?
На днях постараюсь изложить подробнее.
- - - Добавлено - - -
SteinBlume v1.2.0.1400 (08.03.2017)
Обещанное праздничное обновление.
Есть предложение по доработке, после того как поработал с этой прекрасной утилитой:
Просьба "впилить" возможность закидывать файлы с ПиСи на образ не по одному, а сразу выделив мышкой группу, потому что когда таких файлов для закидывания не один, не дв и не пять, а несколько десятков, то формирование образа превращается в геморрой.
Black Cat / Era CG
15.11.2017, 20:58
Просьба "впилить" возможность закидывать файлы с ПиСи на образ не по одному, а сразу выделив мышкой группу, потому что когда таких файлов для закидывания не один, не дв и не пять, а несколько десятков, то формирование образа превращается в геморрой.
Стоп! :) А оно разве не работает? Создаешь/открываешь существующий образ/перетаскиваешь его мышью, затем (когда образ уже есть) той же мышью выделяешь группу файлов (только не образов) и также бросаешь туда же. Они будут копироваться, пока в образе не закончится место.
Максагор
15.11.2017, 21:05
Стоп! А оно разве не работает? Создаешь/открываешь существующий образ/перетаскиваешь его мышью, затем (когда образ уже есть) той же мышью выделяешь группу файлов (только не образов) и также бросаешь туда же. Они будут копироваться, пока в образе не закончится место.
Я открыл НОВЫЙ образ, выбрал оцпию меню (дискетку со стрелочкой) "загрузить файлы". Открылалось окошко с каталогом. Я попытался выделить в окошке мышкой сразу несколько файлов и обломался. Пришлось каждый раз для копирования одного файла каждый раз кликать по "дискетке".
Black Cat / Era CG
15.11.2017, 21:42
Я открыл НОВЫЙ образ, выбрал оцпию меню (дискетку со стрелочкой) "загрузить файлы". Открылалось окошко с каталогом. Я попытался выделить в окошке мышкой сразу несколько файлов и обломался. Пришлось каждый раз для копирования одного файла каждый раз кликать по "дискетке".
Ааааа. Понял! Недоработка. Надо будет сделать. Я просто мышкой кучу в окно кидаю обычно :)
Максагор
23.11.2017, 14:05
Можно об этом поподробнее? В BIOS (который типа setup по space) надо ручками где-то указать с какого сектора грузиться? Может поэтому у меня не загружается ничего - я только в INI эмулятора прописал имя файла с образом диска, и затем в BIOS тупо нажимаю "грузить с HDD" ибо приучен к хорошему. И как по конкретному файлу образа понять с какого сектора надо грузиться?
Выложил на сайте АТМ образ винта с предустановленными ОСями. За ссылками и обсуждениями сюда:
http://zx-pk.ru/threads/28456-obraz-vinta-ide-hdd-pod-atm-turbo-2-obsuzhdenie.html
Black Cat / Era CG
23.11.2017, 14:16
Я видел, думаю, поддержу в будущей версии, при наличии в той же папке, спец. конфиг. файла забитого руками. Должно быть несложно.
Максагор
23.11.2017, 14:42
Я видел, думаю, поддержу в будущей версии, при наличии в той же папке, спец. конфиг. файла забитого руками. Должно быть несложно.
Ну да - надо будет указать параметры винта, плюс все возможные конфигурации образа - количество дорожек, количество файлов вкаталоге, размер блоков и т.д. - все это может быть как угодно сконфигурировано при создании раздела на винте. Так, к примеру, в разделе D: (он у меня маленький во избежание тормозов системы) зарезервировано 128 файлов (точнее, экстентов) в каталоге, тогда как в остальных разделах (по 8Мб объемом) - уже по 1024 файлов-экстентов.
Error404
23.11.2017, 15:57
Писать конфиг для каждого образа ИМХО не выход. Системный загрузчик ATM же как-то параметры разделов с самого диска читает (иначе грузился бы не оттуда откуда надо), и нам надо делать такое же у себя. Понять бы только что и где хранится.
Black Cat / Era CG
23.11.2017, 16:41
Системный загрузчик ATM же как-то параметры разделов с самого диска читает (иначе грузился бы не оттуда откуда надо), и нам надо делать такое же у себя. Понять бы только что и где хранится.
Ну он скорее всего, как принято, грузит в память загрузочный сектор и выполняет его, а там уже все остальное
Error404
23.11.2017, 18:25
Ну он скорее всего, как принято, грузит в память загрузочный сектор и выполняет его, а там уже все остальное
Вопрос в том хотя бы где этот сектор, это явно не первый сектор жесткого диска, т.к. в нем чего-то похожего на загрузчик не наблюдается. Кроме того сам загрузчик тоже явно должен по какой-то таблице, описывающей расположение данных, все остальное подгружать (то что относится к описанию файловой системы - DPH, DPB в CP/M), ибо даже по количеству секторов зарезервированных под ОС (перед каталогом) явно оно отличается от того что было на дискетках - слишком жирно 32кб отступ для дискеток. И если это захардкодено в загрузчике, то это пипец какой дурной тон в CP/M где всё настраиваемое таблично (посему не думаю что оно задано константно в коде загрузчика).
Максагор
24.11.2017, 06:26
Вопрос в том хотя бы где этот сектор, это явно не первый сектор жесткого диска, т.к. в нем чего-то похожего на загрузчик не наблюдается. Кроме того сам загрузчик тоже явно должен по какой-то таблице, описывающей расположение данных, все остальное подгружать (то что относится к описанию файловой системы - DPH, DPB в CP/M), ибо даже по количеству секторов зарезервированных под ОС (перед каталогом) явно оно отличается от того что было на дискетках - слишком жирно 32кб отступ для дискеток. И если это захардкодено в загрузчике, то это пипец какой дурной тон в CP/M где всё настраиваемое таблично (посему не думаю что оно задано константно в коде загрузчика).
Не все так сложно, но и не все так просто. Разметки раздела типа MBR действительно нет. Ассемблерной программы-загрузчика тоже. Есть в первых 128-байтах специальная запись из произвольно созданного юзером набора спец-команд и описателей устройств (сколько влезет в 128 байт), создаваемой утилитой-конфигуратором CONFIG.COM и распознаваемым автозагрузчиком - ну а что туда влепит юзер при конфигурации - уже его делло. Я "влепил" подключение описателя для второго флопа, описателя для базового системного раздела на букве D: и старт с этого раздела пакетного файла AUTOEXEC.SUB, который уже с каталога системного раздела вызывает уттилиту, подключающую дополнительные разделы, файлы конфигурации которых лежат на этом же системном разделе. Много-много подробнее все это я расписал тут:
http://zx-pk.ru/threads/28456-obraz-vinta-ide-hdd-pod-atm-turbo-2-obsuzhdenie.html?p=938189&viewfull=1#post938189
Так что INI-файл с конфигами для работы с ЦПМ-разделами образа винта в "Штейнблюме" все-таки будет нужен.
Black Cat / Era CG
24.11.2017, 07:45
Не все так сложно, но и не все так просто. Разметки раздела типа MBR действительно нет. Ассемблерной программы-загрузчика тоже. Есть в первых 128-байтах специальная запись из произвольно созданного юзером набора спец-команд и описателей устройств (сколько влезет в 128 байт), создаваемой утилитой-конфигуратором CONFIG.COM и распознаваемым автозагрузчиком - ну а что туда влепит юзер при конфигурации - уже его делло. Я "влепил" подключение описателя для второго флопа, описателя для базового системного раздела на букве D: и старт с этого раздела пакетного файла AUTOEXEC.SUB, который уже с каталога системного раздела вызывает уттилиту, подключающую дополнительные разделы, файлы конфигурации которых лежат на этом же системном разделе. Много-много подробнее все это я расписал тут:
http://zx-pk.ru/threads/28456-obraz-vinta-ide-hdd-pod-atm-turbo-2-obsuzhdenie.html?p=938189&viewfull=1#post938189
Так что INI-файл с конфигами для работы с ЦПМ-разделами образа винта в "Штейнблюме" все-таки будет нужен.
Вот как-то примерно так я и думал. Сделаю в будущей версии тестовую поддержку hdd по текстовому конфигу. А потом подумаем, как этот конфиг упростить.
shuran33
21.02.2018, 10:35
Black Cat / Era CG, очень полезная программа. Спасибо. А версию под linux не планируешь сделать?
Error404
21.02.2018, 12:01
Black Cat / Era CG, очень полезная программа. Спасибо. А версию под linux не планируешь сделать?
под wine не запускается?
shuran33
21.02.2018, 13:05
под wine не запускается?
Не пробовал, возможно и работает. Но программы запущенные под wine у меня обычно тупят на моем нетбуке, поэтому и спросил.
Black Cat / Era CG
21.02.2018, 14:46
Black Cat / Era CG, очень полезная программа. Спасибо. А версию под linux не планируешь сделать?
Ну во-первых, я линуксов совсем не щупал и не имею.
А во-вторых, сама утилита, по причине моей криворукости представляет из себя этаких жесткий клубок из *****кода, соплей и синей изоленты. Она является отличным наглядным пособием на тему "так делать нельзя".
А еще она не на сях, на которых принято писать для линуксов, а на паскале. Правда, на Lazarus+FP, что как бы подразумевает возможность портирования малой кровью. Но не в данном случае, по причине описанной выше. Я даже как-то кому-то (уже не помню, кому именно) присылал исходники для этих целей. Но кажется мне, человек этот, заглянув внутрь, получил серьезную психологическую травму, и грех теперь лежит на моей совести, так как больше известия по этому вопросу с тех пор до меня не доходили.
По хорошему надо б взяться, да просто переписать все с нуля. Но сомнения гложат меня, что когда-либо я решусь на это.
А ваще я пока взял временную паузу в деле допиливания утилиты (временно забил, если говорить по-русски).
Не пробовал, возможно и работает. Но программы запущенные под wine у меня обычно тупят на моем нетбуке, поэтому и спросил.
Она может тупить, очень может. По причине выше уже описанной.
В общем, обнаружился древний компьютер KayPro 2. Эмулируется MAME и поддерживает только упоротые форматы .IMD
Описанный способ редактирования образов не дал результата.
файлы здесь:
http://rgho.st/8Rtn99HXV
описание тут:
https://github.com/z88dk/z88dk/wiki/Platform-%2D-Kaypro
прошу помощи. Если удастся решить, то впиливать поддержку формата не нужно.
Black Cat / Era CG
02.04.2018, 23:50
Посмотрю. Ага.
Black Cat / Era CG
03.04.2018, 14:50
То есть насколько я понял, задача, из имеющегося td0 получить imd?
Или?
- - - Добавлено - - -
Там же по ссылке всего один (пустой, с системой, но без файлов) td0-образ и кучка конвертеров, а в батнике цепочка конверсий. Так просто цепочка не прошла, потому что некоторые из конвертеров наорали, что работать под 64 не могу, а некоторые, что не могут в ДОС. Но в итоге получилось вот такое:
A.IMD 18295 байт
KII-BLNK.IMD 12300 байт
A.IMG 205824 байт.
По дороге, td02imd кажется ругнулся на битый сектор в образе.
libdsk158 умеет. Проблема с .IMD, в который хотелось бы внедрить файлы.
- - - Добавлено - - -
тама:
http://www.seasip.info/Unix/LibDsk/
Black Cat / Era CG
04.04.2018, 07:54
Типа файло из одного IMD в другой. Так?
один файл в .IMD
Хотелось бы просмотреть список файлов на образе диска.
Black Cat / Era CG
04.04.2018, 11:59
Ну вот тут http://era-cg.su/softhost/flop.zip лежит результат манипуляций. По идее в A.IMD должен лежать Z80.COM.
По сути батник должен делать следующее (и он вроде это делает, но через ж, потому что часть утилит не пашет под досом, а часть не пашет по 64):
TD02IMD kii-blnk - собственно конвертит td0 в imd,
IMDU /B kii-blnk.imd a.img - конвертит kii-blnk.imd в дамп секторов - a.img,
cpmcp -f kpii a.img z80.com 0:z80.COM - заталкивает z80.com в a.img (и он его правда туда толкает),
BIN2IMD a.img a.imd /1 DM=5 SS=512 SM=1-10 N=40 - конвертит дамп секторов (a.img) с добавленным в него файликом в a.imd.
В принципе оно, вроде вполне работает.
- - - Добавлено - - -
В SteinBlume "чистый" диск выглядит как-то так:
http://era-cg.su/picshost/kaypro.png
- - - Добавлено - - -
Тут проблема только с IMDU и BIN2IMD. Они у меня только в досбоксе пашут.
Поэтому если надо из одно IMD затолкать в другой IMD файлы/один файл, в любом случае придется их запускать в досбоксе...
может, MAME кривой, но диска не видит.
Black Cat / Era CG
04.04.2018, 12:09
Еще б я знал, как на этой маме КайПро запустить - ни разу им не пользовался... Ему ж наверное для этого кучу всего надо.
эмулятор 0.184 тут:
https://www.emuparadise.me/M.A.M.E._-_Multiple_Arcade_Machine_Emulator_Emulators/Windows/MAME/52
ROM тут:
https://www.emuparadise.me/M.A.M.E._-_Multiple_Arcade_Machine_Emulator_ROMs/Kaypro_II_-_2--83/179894
https://www.emuparadise.me/M.A.M.E._-_Multiple_Arcade_Machine_Emulator_ROMs/Kaypro_2x/179891
распаковываешь папку, создаешь roms, кладешь туда архивы
запуск:
mame kayproii -flop1 cpm22.imd -flop2 kii-mbas.imd
образы дисков здесь.
Это пока что запускается.
Black Cat / Era CG
04.04.2018, 13:38
Так. Ну kii-blnk.imd он видит. А вот a.imd - не хочет.
Щас я попробую. Меня немного смущает комментарий в kii-blnk.td0
- - - Добавлено - - -
У меня 2 предположения:
1) Маме поддерживает не все версии IMD...
Похоже именно так. Потому что взял рабочий kii-mbas.imd, конвертнул в img, потом обратно. И все. Эмулятор подавился.
- - - Добавлено - - -
Хотя меня еще смущает параметр DM=5 в
BIN2IMD a.img a.imd /1 DM=5 SS=512 SM=1-10 N=40
- - - Добавлено - - -
/1 - это стороны,
ss=512 - размер сектора,
sm=1-10 - карта секторов,
n=40 - число дорог,
dm=5 - хрень какая-то...
конверсию из .TD0 почти всегда понимает. А выложенные в интернеты .imd не читаются.
MAME работает криво, похоже. Новая версия imd вообще не видит.
Black Cat / Era CG
04.04.2018, 13:46
Ну да. Похоже на то.
А какие форматы новая версия понимает?
0.192/193 все видит прекрасно-imd/td0, но диски не читает вообще(
Black Cat / Era CG
04.04.2018, 14:18
Попробовал 0.196, она ваще не захотела запускаться, говорит
m5l8049.bin NOT FOUND (tried in kayproii kaypro10kbd)
Fatal error: Required files are missing, the machine cannot be run.
апдейт ROM валяется на archive.org
Black Cat / Era CG
04.04.2018, 14:46
Ну кароч, kii-blnk.td0 новая версия вроде смогла. Продолжаю эксперименты.
т.е. сконвертировал в .imd?
Black Cat / Era CG
04.04.2018, 14:51
Блин, а толку?
imd-то она все рано не понимает...
- - - Добавлено - - -
т.е. сконвертировал в .imd?
Нет. В том-то и дело :(
непонятно с этим эмулятором: изменения в образ диска не сохраняются.
Какой смысл тогда?
софта не так уж и много.
Black Cat / Era CG
04.04.2018, 15:09
Да, странновато. Может допилят эмуляцию когда-нибудь...
Black Cat / Era CG
04.04.2018, 17:12
Вроде вспомнил про IMD, но это ниче не решает, только подсказывает, в чем скорее всего проблема. Так вот в формате IMD есть вроде опционные поля, типа комментария, которыми и давится эмулятор в нынешней реализации. Как-то так.
Глянуть бы на исподники(:
Black Cat / Era CG
04.04.2018, 18:53
На исходники Маме?
Мне бессмысленно, даже если б мог, ниче б не понял, оно ж на сях вроде.
А спецификация IMD вроде бы где-то есть в интернетах.
вроде был тред, человек занимался эмулятором. может, он подскажет? Было бы интересно найти причину.
Есть одно решение, которое позволит грузить файлы напрямую, но это уж крайние меры.
снова CP/M86
беру TurboPascal 3.0:
http://cdn.preterhuman.net/texts/computing/gopher-archive/quix.us/Software/cpm/lang/Trbpas86.zip
создаю диск 160К, открываю, как .xdi с указанными параметрами.
Добавляю файл Turbo.cmd, всё пучком
Добавляю Turbo.msg и тут обломись:
http://i105.fastpic.ru/big/2018/0508/b4/1c1e1ac03ea265e4f189d6db6cf0b0b4.png
http://sysadmins.ru/images/smiles/whoa.gif
Black Cat / Era CG
10.05.2018, 06:48
Ого какой странный глюк! Вечером буду разбираться. Единственный легальный способ получить такое сообщение - кликнуть на строчку с моим e-mail-адресом в окошке Эбаут. Откуда оно здесь хз, странности.
чота у меня прога валится при переключении на другое окно.
И хотелось бы возможность пакетного импорта/экспорта файлов.
Black Cat / Era CG
12.05.2018, 11:57
чота у меня прога валится при переключении на другое окно.
Странно она как-то у тебя себя ведет однако.
И хотелось бы возможность пакетного импорта/экспорта файлов.
Дык оно есть. Мышью нащелкал галочек в списке файлов, перетянул их мышью в папку. Выделил в [проводнике] кучку файлов, перетащил их мышью в образ.
marinovsoft
15.05.2018, 08:25
Лови баг - при указании в параметрах командной строки несуществующего файла.
http://jpegshare.net/thumbs/79/65/796552ad2b8be7f78b5e3ae305354200.jpg (http://jpegshare.net/79/65/796552ad2b8be7f78b5e3ae305354200.png.html)
Black Cat / Era CG
15.05.2018, 10:28
Поймал. Буду исправлять :)
Опять валится при переключение на другое окно. Лучше бы сделать выделение группы файлов, чем перетаскивание из проводника.
Black Cat / Era CG
19.05.2018, 11:23
Лучше бы сделать выделение группы файлов, чем перетаскивание из проводника.
В смысле в диалоге "Добавить файл"? Ну можно сделать, как вернусь к утилите. А из проводника (или из Тотал Коммандера того же) файлы группой таскать можно. Я почему-то думал, что и в диалоге это сделано давно.
А почему она падает у тебя, не знаю. Вроде не падала никогда при переключении.
Если бы не падала, не было бы вопросов.
И подскажи плиз, параметры для диска 320К? чот у меня не открывается(
Black Cat / Era CG
19.05.2018, 13:43
Для этого мне надо пример такого образа с файлами на нем.
alexeilm
07.08.2018, 02:42
Можно поправить глюк, когда выделяешь в образе несколько файлов (ставишь галочки), потом пытаешься их сделать, к примеру, системными, то атрибут системного устанавливается только на первом выделенном файле? На остальных галочки "сбрасываются", но атрибут не меняется.
Black Cat / Era CG
07.08.2018, 18:28
Можно поправить глюк, когда выделяешь в образе несколько файлов (ставишь галочки), потом пытаешься их сделать, к примеру, системными, то атрибут системного устанавливается только на первом выделенном файле? На остальных галочки "сбрасываются", но атрибут не меняется.
Попробую, если откопаю старые (рабочие) исходники. Я как-то все поломал и бросил :(
alexeilm
01.09.2018, 15:55
Большая просьба, откорректировать программу, чтобы можно было править образы c параметрами:
8MB / 512 tracks /128 sect
SPT: 0080H
BSH: 05H
BLM: 1FH
EXM: 01H
DSM: 07FFH
DRM: 01FFH
AL0-AL1:F0H 00H
CKS: 0000H
OFF:... (01/00)
PSH:00H
PHM:00
Black Cat / Era CG
01.09.2018, 16:42
8MB / 512 tracks /128 sect
SPT: 0080H
BSH: 05H
BLM: 1FH
EXM: 01H
DSM: 07FFH
DRM: 01FFH
AL0-AL1:F0H 00H
CKS: 0000H
OFF:... (01/00)
PSH:00H
PHM:00
О какие неожиданные параметры. Только как доберусь до нее. Пока не получается. Можно как вариант попробовать открыть любой из ini в xdi_settings, вбить туда нужные параметры и попробовать работать через него. Но не факт, что получится...
alexeilm
02.09.2018, 03:55
Не получается, к сожалению. Не принимает больше значение 63 секторов и значение 255 треков.
Black Cat / Era CG
02.09.2018, 15:07
Не получается, к сожалению. Не принимает больше значение 63 секторов и значение 255 треков.
Нашел-таки исходники последней рабочей (она же последняя зарелиженная, 100-летию Великой Октябрьской Социалистической Революции посвященная) версии утилиты. Сделаю на основе нее исправления (отключу проверки), а потом пофикшу изменение атрибутов. Скиньте на почту, если можно, пример такого необычного образа для тестов, с файлами желательно.
Black Cat / Era CG
04.09.2018, 13:03
alexeilm, жду образа :)
alexeilm
05.09.2018, 14:42
Black Cat / Era CG, отправил на почту.
Система и файлы полностью рабочие.
Black Cat / Era CG
05.09.2018, 15:49
Будем посмотреть.
Error404
10.09.2018, 17:07
Привет!
Реквестую распотрошить вот эти вот образы (http://smartbasic.net/wp-content/uploads/2017/11/cpmbasic.zip) с васиковскими программами для CP/M MBASIC. Выглядит как будто сектора по 512кб и перемешаны (м.б. чересполосица по сторонам диска?). Точная геометрия не известна, взято с этой страницы: http://smartbasic.net/2017/11/07/creative-computing-cpm-basic/
Кстати, возможно у кого-то есть этот архив уже пофайлово?
Black Cat / Era CG
10.09.2018, 17:19
Выглядит как будто сектора по 512кб и перемешаны (м.б. чересполосица по сторонам диска?).
Попробую глянуть, как время найду. Такое часто делали с секторами, а биос знал нужный порядок. У 1 версии CP/M они довольно причудливо перемешаны.
Error404
10.09.2018, 18:58
Уф. Сектора по 512байт конечно же , не 512кб :)
alexeilm
10.09.2018, 19:44
Уф. Сектора по 512байт конечно же , не 512кб :)
Посмотри в архивах, кажется подобное есть.
https://yadi.sk/d/2ul2FTG2pK15AA
alexeilm
11.09.2018, 03:27
Black Cat / Era CG,
66216 - CP/M Disk Format Details
Не знаю, есть/нет в коллекции.
alexeilm
12.10.2018, 13:02
Black Cat / Era CG, можно ещё надеяться? ;)
Black Cat / Era CG
12.10.2018, 13:08
Black Cat / Era CG, можно ещё надеяться?
Так вроде я отправлял на почту Вам поправленную версию (еще 5 сентября). Потом спрашивал, работает, нет. Но Вы не ответили.
alexeilm
12.10.2018, 13:19
Сори, но я ничего не получал.
Я бы вопросы не задавал.
Black Cat / Era CG
12.10.2018, 13:28
Может, в спаме было. Вы мне прислали образ диска, а я в ответ поправленный экзешник :)
Щас еще раз отправлю.
- - - Добавлено - - -
Переотправил. Проверяйте спам.
Black Cat / Era CG, Протестировал прогу. Не удобно конечно с галками, но вроде привык (выделять файлы как в обычном менеджере было бы привычнее). Редактировал образы dsk.
Нашлись косяки: dsk отсутствует в диалоге "Открыть файл", надо все время вводить *; не дает в имени использовать знак "_" при переименовании файла в образе; при копировании из образа в образ иногда меняется размер файла в образе, например до было 256, а после уже 160. Также: нет возможности изменить атрибуты для группы файлов, изменять для каждого отнимает много времени; не отображается размер выделенных файлов, при копировании приходится оценивать на глаз; не делаются баки при сохранении образа; в окне fmPlus3HeaderEdit для редактирования надо всё время отмечать галку.
Black Cat / Era CG
12.01.2019, 14:25
corsar, принято, покопаюсь.
Я так понимаю, профи тут в пролёте? образы fdi и td0 не открываются. если принудить (через маску *.*), то говорит, формат не опознан, внутри якобы мусор. надо файлики вытащить с образов, да никак (точнее как, но там дебри...).
что за формат файлов pro я так и не понял. сколько помню профики, никогда таких образов не было. всё было завёрнуто в fdi и td0.
что за формат файлов pro я так и не понял.
На счет формата не знаю. Но он без проблем читается в Unral'е и ZXMak2. Через него данный и кидаю.
Основной архив у меня либо файлы россыпью, либо в lzh. В fdi и td0 очень мало. Если нужны данные с них, в эмуле перекидываю на образ pro. Напрямую ни как. Покрайне мере я путей не нашел.
Black Cat / Era CG
05.02.2019, 00:09
.pro - это .trd только .pro :) Короче, дамп секторов без служебной инфы - только данные. Запускаешь еще раз SteinBlume ищешь там в инструментах DIAnalyzer, c помощью него получаешь дамп с расширением .xdi. Меняешь его на .pro. Делаешь с ними, что хочешь. Только не забудь посмотреть, че покажет DIAnalyzer, может отпадут возможные дополнительные вопросы.
- - - Добавлено - - -
Если вопросы появляются. Пишешь мне. Только не предъявы, а вопросы. А с предъявами, пожалуйста, в лес.
Black Cat / Era CG, личка твоя забита
траблы с диском:
http://www.worldofspectrum.org/infoseekid.cgi?id=0023486
И еще вопрос : а разговор с образами .imd так и остался как есть? Хотелось бы извлекать файлы с ушибленного формата.
Black Cat / Era CG
14.02.2019, 10:04
Образ гляну щас. А насчет IMD. Из них надо сперва получать обычный дамп данных секторов. С самим ImageDisk в комплекте есть утилита IMDU, она это умеет делать. А дальше уже подбирать параметры, исходя из содержимого. Сама утилка вот лежит: https://drive.google.com/file/d/1Omfuwx-99ostQoy60KpfNv0-170hbGQS/view?usp=sharing
А образ посмотрю вечером.
Black Cat / Era CG
14.02.2019, 17:51
Я тут запутался в версиях, короче. Та, что у меня последней выложена, ваще dsk открывать не хочет почему-то. Но есть та, что не выложена, она образ открывает, файлы добавляет. Попробую завтра разобраться и зарелизить ее.
Black Cat / Era CG
15.02.2019, 13:37
Вроде разобрался в версиях. Буду выкладывать. Изменений мало.
Black Cat / Era CG
15.02.2019, 17:44
Внезапно случилась несовместимость версий компилятора и исходника :) Ну, думаю, завтра выложу (уже вроде б все починилось).
Black Cat / Era CG
17.02.2019, 16:59
Ага. Знаю. Там многое поехало при переходе на новый компилятор. Щас занимаюсь как раз. Пиши на вк щас вот прямо. Скину текущий вариант.
- - - Добавлено - - -
А так допилю, чуть протестирую и выложу, как получится.
я подожду. неизвестно что прилетит от "Кладбищенского Сторожа" (:
Black Cat / Era CG
17.02.2019, 20:52
По ссылкам на zip-архивы должна качаться новая версия. С инсталлерами вожусь.
- - - Добавлено - - -
Обновил вроде. Надеюсь, ниче не поломал.
- - - Добавлено - - -
Если что отписывайтесь. Лучше на почту, потому что личка достала.
начал пользоваться этой программой для образов ZX scorpion. При сохранении образа в этом формате, а потом при его открытии происходит такое
https://d.radikal.ru/d20/1903/ff/881441407ed1.png
много пустых строк.
Black Cat / Era CG
19.03.2019, 10:51
Где-то глюк закрался. Будем поискать.
А можно сделать групповое копирование файлов в образа? Можно выделить несколько файлов внутри образа и выгрузить их на диск. В образ же, можно копировать файлы только по одному.
Black Cat / Era CG
19.03.2019, 12:29
В образ же, можно копировать файлы только по одному.
Из виндового диалога? Наверное. Мышью вроде можно сразу кучку забросить. Диалог посмотрю, попробую. Щас со скорпом поразбираюсь только.
А можно сделать групповое копирование файлов в образа? Можно выделить несколько файлов внутри образа и выгрузить их на диск. В образ же, можно копировать файлы только по одному.
все отлично перетаскивается мышью
Black Cat / Era CG
19.03.2019, 17:32
все отлично перетаскивается мышью
Мышью, да. Через меню и диалог добавления пока только одному. Буду доделывать.
По скорпиону. Открывает правильно, сохраняет - нет. Ковыряю.
- - - Добавлено - - -
Iegova, напишите мне на почту. Отправлю вам что-то типа хотфикса взамен на то, что вы немного потестите, работает ли оно. Ошибку я вроде нашел и исправил, но мне не на чем проверить.
- - - Добавлено - - -
С мультидобавлением попозже немного заморочусь.
Так как на Profi существует OS PQ-Dos у которой формат диск fat, нельзя ли добавить поддержку таких образов?
а какая связь этой системы с cp/m ?
а какая связь этой системы с cp/m ?
это ОС написана на базе CP/M и полностью с ней обратно совместима.
То есть, она относиться к CP/M точно так же как CP/M 3.0 относиться к CP/M 2.0
marinovsoft
05.04.2019, 18:14
tae1980, FAT сделана на базе CP/M и полностью с ней обратно совместима?
tae1980, FAT сделана на базе CP/M и полностью с ней обратно совместима?
Нет. Сделана на базе CP/M и совместима с ним (и частично с MSX) ОС PQ-DOS. Но в ней поменяли базовую файловую систему. Собственно она позволяет поддержать любую иную файловую систему. А FAT была выбрана как наиболее удобная на текущий момент. Поддерживаться разделы до 2Тб, в каталогах до 4т. файлов, файлы до 4гб, имена файлов 8.3, длина с путями до 64 символов, что позволят организовать вложенность до 8 уровней.
ОС умеет работать с fat12, fat16, fat32.
marinovsoft
05.04.2019, 18:36
И какая связь этой файловой системы с файловой системой cp/m ?
И какая связь этой файловой системы с файловой системой cp/m ?
FAT и файловые системы CP/M не связаны ни как. Вот связь у PQ-DOS и CP/M прямая. А программа называется "CP/M Disk Image Explorer", про файловые системы на самих дисках ни чего не сказано. Лично мне было бы очень удобно пользоваться одной программой для работы с дисками как SP-Dos, так и PQ-Dos. Конечно, если автор программы решит реализовать такую возможность.
а какая связь этой системы с cp/m ?
И какая связь этой файловой системы с файловой системой cp/m ?
ша, уже выяснили, что никакой.
Для образов дисков FAT есть куча других утилит, уже написанных, смысла прикручивать FAT к CP/M Disk Image Explorer нет.
- - - Добавлено - - -
ОС умеет работать с fat12, fat16, fat32.
FAT32 не поддерживается в силу огромных объёмов данных оной.
Для образов дисков FAT есть куча других утилит, уже написанных, смысла прикручивать нет.
Да. Но для единообразных операций удобнее пользоваться одной программой, чем пучком разных.
Мне вот пока приходиться кидать данные на диски SP-Dos, загружаться в CKI, перебрасывать данные на диски с FAT и только после этого загружаться в PQ-Dos. Пока объем данных не большой ещё ладно, но в будущем объёмы однозначно увеличатся.
Black Cat / Era CG
10.04.2019, 23:02
Увы, впиливать поддержку fat я даже не думал. Все же внутри утилиты все завязано на ФС CP/M, при этом там такой ужас, что лучше туда с такими кардинальными изменениями не лезть :(
Можно не большую хотелку?
Сделай, плз, кнопку "перечитать текущий файл". Сейчас получатся схема работы такая: открыли образ, накидали файлов, сохранили, открыли образ в эмуле, внесли изменения и сохранили, теперь нужно снова открыть диск в твоей программе, что бы увидеть изменения. Для чего нужно нажать кнопку "открыть", найти нужный файл (что не всегда быстро, так как файлов может быть много) и выбрать его.
Кнопка "перечитать текущий файл" сильно бы облегчила жизнь.
И неплохо бы видеть 5-10 последних открытых файлов. Обычно же работаешь с одними и теми же образами. Фантастика будет, если в виде выпадающего списка на панели, чтобы не лазить в "файл".
Black Cat / Era CG
20.06.2019, 23:32
Доберусь. Сделаю.
Black Cat / Era CG
22.06.2019, 19:01
Кнопка "перечитать текущий файл" сильно бы облегчила жизнь.
Придумай иконку для "Переоткрыть" :) И, готов тестировать переоткрытие (напиши сюда: speccy@era-cg.su)?
напиши сюда
Ушло на почту.
Вопрос вскочил. Какие параметры нужны для образов диска Tiki-100 (http://www.djupdal.org/tiki/program/) ?
Black Cat / Era CG
24.07.2019, 17:18
Это надо искать/подбирать.
- - - Добавлено - - -
Исходя из размера образа можно подобрать физику. Потом определить по дампу любой почти дискетки количество системных дорог и емкость директории, дальше подбирать остальное. Лучше всего помогают образа с текстами. Но все это работает, если нет software skewed sectors...
Black Cat / Era CG
09.10.2019, 18:49
В тему вызываются эксперты! Особенно те, кто рассматривал внутренности CP/M!
Black Cat / Era CG
12.10.2019, 11:58
Запилил тут полезное видео. Думал уложиться минут в 30-40, растянул все на два часа (почти).
Видеопильщик из меня никакой, так что вы предупреждены.
https://youtu.be/QSogFvJRNc8
Просмотрели. Очень интересно. Разместил ссылку в ВК группе поддержки компьютера Profi.
Black Cat / Era CG
12.10.2019, 15:38
Ну не знаю, насколько интересно. Цель была немного другая. Хотелось объяснить, как это делаю, и постараться захватить все тонкости. Получилось два часа...
Спасибо за ссылку. Видел.
Если остаются какие-то вопросы, то можно сделать продолжение.
Цель была немного другая.
Не могу знать какие цели были изначально :), но получилось весьма на уровне.
Нам не хватает видео по теме, тем более обучающих и реально нужных. Пользы от всяких видео дем на так уж много. А уж про видео по CP/M я вообще молчу, можно по пальцам пересчитать, да пальцы ещё останутся.
ИМХО Можно простое видео, типа презентации/базовый функционал, минут на 7-15.
Black Cat / Era CG
12.10.2019, 17:19
ИМХО Можно простое видео, типа презентации/базовый функционал, минут на 7-15.
Думаю, можно.
Black Cat / Era CG
13.10.2019, 15:32
Если есть желающие затестить слегка обновленную версию в целях мотивирующего пинка, отпишитесь мне на почту, или еще куда-нибудь (только не в личку, ее буду жестко игнорить, ибо ну ее).
Error404
20.10.2019, 00:11
Тестировать желания нет, зато есть новая идея тебе в TODO: сделай режим чтения каталога и чтения/записи файла из/в образа диска, выбранного в GUI твоего експлорера, через API выбранного и подключенного где-то в настройках (или выбираемого через меню) WCX-плагина от Тотала. Таких плагинов сейчас много, и не только для CP/M но и для многих других похожих файловых систем, а сам Тотал почему-то не у каждого есть.
Есть предложение. По двойному щелчку на файле открывать окно просмотра файла.
Black Cat / Era CG
29.10.2019, 09:02
Думаю, можно.
- - - Добавлено - - -
Вроде работает.
- - - Добавлено - - -
Но F3 все равно работает тоже, я так привык уже :)
По F3 удобно когда работает с клавой. Скриншоты делал, всё время с мышкой: закинуть, перебрать, отработать в программе по PrintScreen.
Раз уж пошла такая пьянка, а можно сделать выгрузку картинок из просмоторщика? Что бы не скриншоты делать, а сохранить то что выведено на экран в bmp или что-то другое. Сохранение есть, но только текста. Если развить хотелку, то может быть полезно два режима: с запросом имени файла, и без запроса, тогда файл кладется в специальную директорию под именем текущего файла. Последний режим был бы удобен при работе большим числом файлов: наделал скриншотов без лишних вопросов, потом в тотале разом перебросил куда нужно. Очень удобно сделано в PMView, он запоминание пути по которым уже сохраняли хоть раз. В окне сохранения подставляет последний, дает возможность выбрать новый или из списка один из ранее используемых. То есть процесс работа выглядит так: первый раз выбираем путь куда сохраняем, потом просто жмём "ОК" или ввод. А наличие списка раннее используемых путей, позволяет легко проводить сортировку по разным папкам. Только удобно именно список, а не поле ввода с выпадающим списком - так видно всё и проще выбрать мышкой (для выбора с клавы, жмём вниз, попадем в список и выбираем нужный).
Ну было бы удобно иметь перемещение по файлам прямо в просмоторщике, прочитать следующий/предыдущий. Например: пробел/вправо/PageDown - прочитать следующий файл, влево/PageUp - прочитать предыдущий. И соответствующий кнопки или зоны на экране.
Это всё касаемо графики. Для другим типов или не делать совсем или адаптировать по ситуации.
Black Cat / Era CG
29.10.2019, 11:52
Раз уж пошла такая пьянка, а можно сделать выгрузку картинок из просмоторщика? Что бы не скриншоты делать, а сохранить то что выведено на экран в bmp или что-то другое. Сохранение есть, но только текста.
?
http://era-cg.su/picshost/ScreenSave.png
?Ага. Значит я торможу.
Вот только она выгружает данные как они хранятся, а не как выводятся. :( и задевание расширения происходит.
https://imageup.ru/img189/3499147/2019-10-29_14-00-45.png (https://imageup.ru/img189/3499147/2019-10-29_14-00-45.png.html)
Black Cat / Era CG
29.10.2019, 13:07
А. Ну это надо поправить.
Black Cat / Era CG
30.10.2019, 19:56
Вот только она выгружает данные как они хранятся, а не как выводятся.
Тут можно придумать галочку в настройки "Сохранять изображения с применением масштаба", например. Если стоит галка, то и геометрия будет сохраняться, как при просмотре, и масштаб (х2, х3...) - пойдет?
и задевание расширения происходит
То, что файл получает имя типа filename.grf.png, это так задумано, чтобы однозначно знать исходник, а не помнить, а то, что два раза png - это косяк.
- - - Добавлено - - -
Ну было бы удобно иметь перемещение по файлам прямо в просмоторщике, прочитать следующий/предыдущий. Например: пробел/вправо/PageDown - прочитать следующий файл, влево/PageUp - прочитать предыдущий. И соответствующий кнопки или зоны на экране.
Это всё касаемо графики. Для другим типов или не делать совсем или адаптировать по ситуации.
Теперь про это.
Идея хорошая.
Но есть нюансы.
Собственно сам Lister понятия не имеет о том, какая сортировка включена в панели файлов, ему передается порядковый номер файла в образе, а не в списке на панели, поэтому щелкаться назад/вперед будут файлы в том порядке, в котором они встречаются в директории. Такая тонкость. Это раз.
Два. Надо подумать насчет горячих кнопок. Дело в том, что просмотр графики ничем от просмотра текста/асма... не отличается, а там использовать кнопки типа PgDn/PgUp будет нехорошо, пробел вроде можно (все равно все тексты read only), надо будет убедиться, что он нигде не используется. Пока навскидку могу предложить что-то типа Ctrl+Up/Ctrl+Dn (Влево/вправо с ним это переход по слова, а Ctrl+PgDn/Ctrl+PgUp - это переход в конец/начало в пределах страницы).
- - - Добавлено - - -
В общем по клавишам предлагаю: Пробел/Ctrl+Up/Ctrl+Dn, причем, Пробел крутит по кругу.
- - - Добавлено - - -
Тестировать желания нет, зато есть новая идея тебе в TODO: сделай режим чтения каталога и чтения/записи файла из/в образа диска, выбранного в GUI твоего експлорера, через API выбранного и подключенного где-то в настройках (или выбираемого через меню) WCX-плагина от Тотала. Таких плагинов сейчас много, и не только для CP/M но и для многих других похожих файловых систем, а сам Тотал почему-то не у каждого есть.
Не очень понял. Поддержать архиваторные плагины TC?
Тут можно придумать галочку в настройки "Сохранять изображения с применением масштаба", например. Если стоит галка, то и геометрия будет сохраняться, как при просмотре, и масштаб (х2, х3...) - пойдет?
Почему нет? решение хорошее. Только включи его по умолчанию или пусть запоминает последний выбор, хотя бы текущем сеансе работы.
Собственно сам Lister понятия не имеет о том, какая сортировка включена в панели файлов
Плевать. Это инструмент быстрого просмотра, а не файловый менеджер.
В общем по клавишам предлагаю: Пробел/Ctrl+Up/Ctrl+Dn, причем, Пробел крутит по кругу.
Считаю нужно пробовать. Практика всё расставит на места.
Ctrl+Home - перейти к первому файлу.
Ctrl+End - перейти к последнему.
Ctrl+Del - удалить файл.
И такой вопрос: если открыли картинку, будет ли показаться текстовые файлы (например)? Я считаю, что просматривать нужно только тот тип файлов который был открыт или родственные (например: txt, doc).
Есть ещё вариант: для навигации задействовать цифровую клавиатуру. Лично я её почти не использую. Не удобно будет тем, кто привык на ней нажимать системные кнопки (Ins, del и т.п.). Но я знаю только одного такого человека.
Black Cat / Era CG
31.10.2019, 09:23
Только включи его по умолчанию или пусть запоминает последний выбор, хотя бы текущем сеансе работы.
Это в настройках будет --> будет сохраняться.
Ctrl+Home - перейти к первому файлу.
Ctrl+End - перейти к последнему.
Ctrl+Del - удалить файл.
Это где? В Lister?
И такой вопрос: если открыли картинку, будет ли показаться текстовые файлы (например)? Я считаю, что просматривать нужно только тот тип файлов который был открыт или родственные (например: txt, doc).
Будут показываться. Там нет такого понятия как тип файла (не завезли), картинка, текст,... - это не тип файла, а режим просмотра, просто для разных файлов разные режимы включаются по умолчанию. Никто при этом не мешает, открыв картинку на просмотр, взять да и сменить режим, например на hex. Суть в чем, функционал не должен ломать стройность логики дизайна. А данном случае получается усложнение, не очевидное решение.
Есть ещё вариант: для навигации задействовать цифровую клавиатуру. Лично я её почти не использую. Не удобно будет тем, кто привык на ней нажимать системные кнопки (Ins, del и т.п.). Но я знаю только одного такого человека.
По-моему, Пробел/Ctrl+Up/Ctrl+Dn, как-то понятнее.
Error404
31.10.2019, 12:52
Не очень понял. Поддержать архиваторные плагины TC?
Ага. :)
В твоей программе условно есть
- GUI
- модуль чтения/записи файла на Винду
- модуль чтения/записи из/в образ CP/M
Вот вместо последнего модуля иметь возможность подключать WCX-плагины (которые есть обычная dll). Они уже умеют и каталог образа вернуть и конкретный файл оттуда прочитать или записать. Единственно, для унификации в модуле GUI придется устроить возможность подкаталогов с вложениями.
Тогда этой же утилитой станет можно копировать не только образы CP/M, но еще и из образов TRDOS, UZIX, FAT, и еще каких там было тс-плагинов
Black Cat / Era CG
01.11.2019, 10:06
Эх. Только вот я с ними совсем не умею. Листерный плагин писал. Кое-как написал, вроде работает, а чтобы наоборот, это я не умею :(
Это где? В Lister?
Да. Обычная схема работ какая? Нашел в каталоге, выбрал, посмотрел, вернулся, удалил. Введение кнопки del позволит удалять прямо во время просмотра, что очень удобно. Прыгнуть в начало/конец каталог нужно потому, что сортировка в Lister не будет совпадать с каталогом. Сортировки не совпадают почти во всех программах просмотра, по этому я запускаю просмоторщик на любом файле, прыгаю в начало каталога и начинаю просмотр.
Будут показываться. Там нет такого понятия как тип файла (не завезли), картинка, текст,... - это не тип файла, а режим просмотра,
Но есть понятие "каталог", то можно ожидать наличие понятие "расширение файла"? В большинстве случаев было бы удобно если открыли файл "*.grf", то переходить программу будет только по ним (остальные пропускаем), а если открыли файл "*.txt", то переходы только по ним.
Хотя это не так критично. Просто возможность перехода - очень полезно. Размер дисков не велик, так что в большинстве файлы будут единообразны.
По-моему, Пробел/Ctrl+Up/Ctrl+Dn, как-то понятнее.
Понятнее, возможно. Но я больше имел ввиду "удобнее". Что удобнее нажимать две кнопки или одну? Мне подойдет любое решение.
А остальное можно описать в хелпах.
А можно сделать запуск текущего образа во внешнем эмуляторе?
Это конечно уже излишество. Но в ряде случаев это было бы удобно.
Black Cat / Era CG
22.11.2019, 21:59
Думаю, можно. Надо подумать. Как наберусь сил, займусь всем.
неужели новая, отдельная, хорошая, современная программа для работы с tr-dos образами? не вот это все доисторическое досовское наследие? э-эх...
Black Cat / Era CG Переписать прогу еще не решился? Как насчет сборки версии для Linux ?
Black Cat / Era CG
21.07.2020, 18:26
@Black Cat / Era CG (https://zx-pk.ru/member.php?u=6096) Переписать прогу еще не решился? Как насчет сборки версии для Linux ?
Боюсь, что не решусь. Она ваще по сути стоит на долгой паузе. А про линуксы я ваще ничего не знаю :(
В аттаче содержимое директории cp/m дискеты. cmptools с ним работает нормально.
SteinBlume CP/M Disk Image Explorer не видит часть файлов.
Дискета 2h40c9s512, размер блока 2048 байт
77434
Black Cat / Era CG
15.06.2022, 16:27
Вроде показывает 14 файлов.
Удивительно.
Да, именно 3.xdi показывает. Но если взять весь образ - почему-то пишет фигню
Я, когда обрезал только саму директорию, не думал что продолжение образа может так влиять. Всегда считал что CP/M'у пофиг, что он читает блок с директорией и только из него берет информацию, на остальное ему должно быть фиолетово....
https://i.ibb.co/7KTynMJ/3xdi.jpg (https://ibb.co/7KTynMJ)
Сорри, пока весь образ не могу выложить, жду ответа от владельца.
Black Cat / Era CG
15.06.2022, 17:32
Надо указать при открытии остальные параметры по идее
https://pic.maxiol.com/images2/1655303234.3567527492.screenshot1.png
Или версию новее взять?
У меня все-равно не показывает 14 файлов
https://i.ibb.co/0n58QCQ/d11.jpg (https://ibb.co/0n58QCQ) https://i.ibb.co/YBBq9yN/d12.jpg (https://ibb.co/YBBq9yN)
- - - Добавлено - - -
Ага, а если заполнить DPB+DPH как у Вас - показывает 14 файлов
Black Cat / Era CG
15.06.2022, 17:49
Там скорее всего проблема в том, что spt теперь автоматом не пересчитывается.
Там скорее всего проблема в том, что spt теперь автоматом не пересчитывается.
Вроде нет. Если все указываю как у Вас (в том числе spt), но exm оставляю =0, а не 1 - читает 10 файлов. Меняю exm на 01 - сразу 14 файлов
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot