Важная информация

User Tag List

Страница 1 из 19 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 185

Тема: Spectrum Archive Reader - Программа для чтения TR-DOS дисков

  1. #1
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    109
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Spectrum Archive Reader - Программа для чтения TR-DOS дисков

    Программа читает диски через драйвер fdrawcmd.sys (https://simonowen.com/fdrawcmd/). Версию драйвера не проверяет, поэтому можно запускать с любым и смотреть что получится. На моём железе заработала с драйвером версии 1.0.0.19 (позже заработала и с 1.0.1.11).

    Что может делать:

    • Читать диски (5.25'' Double Density) форматов TR-DOS, IS-DOS, CP/M посекторно, до 172 треков.
    • Дочитывать только непрочитанные сектора. Очень экономит время на плохо читающихся дисках.
    • Читать только указанный диапазон треков на диске. Позволяет пропустить области диска которые заведомо нечитаемы и сразу сосредоточиться на указанном треке у которого есть потенциал прочитаться. Это также ускоряет чтение верхней стороны имеющей разные форматы в разных местах: можно указывать формат и нужные треки и сразу читать их, не тратя время на сбор ошибок на других треках.
    • Читать диски в обратном направлении. Как ни странно, у меня это улучшало чтение.
    • Сохраняет образы в TRD и FDI. Можно позже загрузить TRD/FDI-образ и снова попытаться прочитать только bad-сектора.
    При сохранении образа в TRD его bad-сектора заполняются символом B (как это делает WinTRD). Необработанные сектора (у которых не было попытки чтения) заполняются символом N. При загрузке образа по этим меткам определяются плохие и еще не читавшиеся сектора.
    • Может читать верхнюю сторону двумя способами: задавать верхнюю сторону равной 0 либо 1. Оказалось что на Спектруме было 2 вида форматирования верхней стороны. В одном случае в трек писалось что это сторона 1, в другом писалось что это сторона 0. TD-DOS читал оба таких формата без проблем. Драйвер fdrawcmd.sys имеет с этим сложности: он требует передачи ему информации о физической головке и о стороне указанной в разметке диска. Физическая головка говорит драйверу какую сторону диска прочитать. Но он еще делает сверку с разметкой на диске. Если сторона переданная драйверу не совпадает с тем что он видит на диске (что указано в заголовочной области сектора), то драйвер выдает ошибку 21 (the device is not ready). Поэтому драйверу нужно передавать нужную логическую сторону в зависимости от того как отформатирован диск.
    • Может читать только одну сторону: верхнюю или нижнюю, либо обе стороны. Практика показала что иногда бывает быстрее прочитать диск по сторонам отдельно, потому что верхняя сторона может быть отформатирована разными способами и должна читаться с разными настройками. У меня были диски где формат менялся много раз. Так получалось потому что я мог форматировать диск много раз и делать это разными программами и каждый раз не до конца, т.е. прерывая форматирование, поэтому разные виды форматов могли таким образом наложиться. Этой программой можно прочитать отдельные области верхней стороны диска указывая формат для каждой области.
    • Интерфейс имеет смесь русского и английского. Не стал это менять.



    Терминология

    Обработанный сектор – сектор у которого была попытка чтения. Это либо успешно прочитанный сектор, либо bad-сектор.
    Необработанный сектор – сектор у которого не было попыток чтения. В образе такие заполнены символом N.
    Bad-сектор – сектор у которого была попытка чтения, которая оказалась неуспешной. В образе такие заполнены символом B.
    Good-сектор – успешно прочитанный сектор.
    Нулевой сектор – Good-сектор содержащий одни нули.


    Описание интерфейса

    Track From – номер трека с которого будет производиться чтение.
    Track To – номер трека до которого будет производиться чтение. Сам этот трек читаться не будет.
    Параметры Track From и Track To отображаются черной полосой над картой образа. Их можно поменять сделав выделение мышью на карте образа. Двойной клик по этой полосе - установка с 0 по 180.
    Read Side – читаемая сторона диска: верхняя, нижняя или обе. Влияет только на то какая сторона читается. Диск всегда считается двухсторонним.
    Disk Format – формат верхней стороны диска. “Upper Side As 0” означает что верхняя дорожка отформатирована как нулевая сторона. В этом случае при чтении верхней стороны драйверу дается указание прочитать с верхней головки сторону с номером 0. “Upper Side As 1” означает что верхняя дорожка отформатирована как первая сторона: драйверу указывается прочитать с верхней головки трек имеющий сторону 1.
    Track Read Attempts – количество попыток чтения трека как партии из 16 секторов.
    Sector Read Attempts – количество попыток чтения сектора.


    Кнопки:


    • New – создание образа. При создании указывается размер образа в треках и его имя. Образ создается также автоматически при запуске приложения.
    • Load – загрузка образа trd. При загрузке также указывается размер в треках. Можно указать 0 и тогда будет автоопределение.
    • Save – сохранить образ в формате TRD. Образ сохраняется до последнего сектора, у которого была попытка чтения, включительно. Последние сектора, у которых не было попыток чтения, не сохраняются. Сохраняется минимум два трека – нулевой и первый, даже если первый трек не читался – это сделано чтобы файл мог быть прочитан в UnrealSpeccy, который выдает ошибку если TRD состоит только из нулевого трека.
    • Set Size – изменить размер образа в треках. При уменьшении размера лишние данные теряются. При увеличении – нет.
    • Merge – слияние образов TRD. Делал чтобы слить образы полученные разными чтениями WinTRD. Для этого сначала надо загрузить или создать один образ, потом нажать Merge и указать образ для слияния. В логе будет указано количество добавленных good-секторов. Можно делать слияние несколько раз. Плохие сектора в загружаемом образе определяются как полностью заполненные символом B.
    • Show Catalogue – показ каталога образа.
    • Show Cat From Track – показ каталога с указанного трека образа. Были коммандеры которые сохраняли копию каталога на 160 или 162 трек, можно их просмотреть по этой кнопке.
    • Read Forward – чтение диска. Читаются только те сектора, которые не были до этого успешно прочитаны. Чтение идет от Track From до Track To (не включая его; при условии невыхода за пределы образа и при условии что Track To > Track From). Для каждого трека сначала делается попытка прочитать 16 секторов партией, количество попыток задается параметром Track Read Attempts. Если это не удалось, то включается чтение по отдельным секторам, количество попыток – Sector Read Attempts.
    • Read Backward - Чтение диска в обратном направлении. В остальном аналогично Read Disk,
    • Read Random Sectors – случайное чтение отдельных секторов. Читаются только сектора которые еще не читались или оказались битыми. Выбираются только в пределах Track From и Track To и только на указанной стороне (либо на обоих). На моём железе читаемость сектора по какой-то причине носит серийный характер, и если сектор не прочитался, то высока вероятность того что не прочитается и следующий, вне зависимости от того где он находится. Я эту функцию не особо много использовал, но в некоторых случаях она позволяла прочитать дополнительные сектора, которые находились после битых и которые по этой причине не позволял прочитать эффект серийности.
    • Read Catalogue – чтение каталога (9 секторов) с диска и показ в отдельной форме. Данные не сохраняются, на имеющийся образ не влияют.
    • Abort – прекращение чтения. Реакция происходит не сразу, а с некоторой задержкой, связанной с ожиданием завершения текущей операции драйвером.
    • Build Disk Table – построение таблицы дисков (trd-образов), с указанием их размера, количества bad-секторов, файлов и поврежденных файлов, а также общая статистика – сколько секторов прочитано, сколько битых. Сохраняется в виде HTML.
    • Build Maps – построение карт для указанных trd-образов, где отмечены хорошие, битые и нулевые сектора. Сохраняется как HTML.
    • Build Sector Content Maps – построение карт содержимого секторов для указанных trd-образов. Определяет исходники TASM4.0 (иногда выдавая ложноположительный результат, но мне было качества достаточно), GENS, графику, текст, нулевые сектора и код. Я использовал эту функцию для поиска своих исходников на дисках.
    • Build Duplicate Maps – построение карт секторов-дубликатов. У меня были случаи когда сектор прочитывался из другого места диска, например вместо сектора 0 читался сектор 1, из-за чего происходило искажение данных, и драйвер никак не регистрировал ошибки, выдавая данные как валидные. Не помню чтобы такое было на реальном Спектруме, но на двух PC-контроллерах у меня такое встречалось минимум 7 раз из 280 000 секторов. Чтобы находить такие случаи я написал эту функцию, но она далеко неидеальна, т.к. оказалось что дублирование секторов это часто встречающаяся вещь даже на валидных данных. Строит она сектора которые по содержимому полностью совпадают друг с другом, находятся в пределах 16 секторов друг от друга и не идентифицируются как графика (у графики очень высокий процент дублей сам по себе), сохраняется как HTML.
    • Mark Sector Unprocessed – маркировать сектор в образе как необработанный. После этого при чтении диска программа будет пытаться его прочитать. Сделал чтобы снова перечитать сектора-дубли в некоторых дисках.
    • Build File Table – построение таблиц файлов для указанных trd-образов. Поврежденные файлы отмечаются красным цветом, указывается количество bad-секторов у них. Сохраняется как HTML.
    • Driver Version - показ версии драйвера и типа контроллера.



    Использование

    Настроить параметры чтения, после чего нажать Read Forward. Перед этим можно загрузить образ из TRD.



    UPD: Есть пример когда программа не может прочитать один из секторов трека, при том что ZX Disk Studio читала диск успешно.
    Проблема чтения первых секторов решается закрытием индексного отверстия на диске.

    Программа написана на C# и требует .NET Framework 2.0.

    UPD
    В версии 1.0.0.10 добавлено автоопределение параметра Head верхней стороны и чтение дисков CP/M.

    17.07.2020: В версии 1.0.0.11 добавлено чтение формата IS-DOS.
    21.07.2020: Добавлен формат FDI.
    14.01.2021: В версии 1.0.0.15 добавлен выбор дисковода. Сделано чтение кастомных форматов, но не полностью.

    Исходник (C#, Microsoft Visual Studio 2015): https://github.com/dalvx/SpectrumArchiveReader
    Вложения Вложения
    Последний раз редактировалось CPLx; 07.08.2022 в 08:57.

  2. Эти 21 пользователя(ей) поблагодарили CPLx за это полезное сообщение:

    alvis (18.04.2020), Azm (19.04.2020), Black Cat / Era CG (10.04.2020), creator (10.04.2020), Djoni (13.04.2020), Eltaron (10.04.2020), Grand (18.02.2023), Krautsov (23.11.2022), newart (12.07.2020), NiKa (10.04.2020), nimdasys_inbox_ru (07.08.2022), OMu4 (09.08.2022), razer (02.01.2022), RoboDron (14.05.2024), Rusazar (10.04.2020), Serebriakov (29.04.2020), serg.y (14.07.2020), shurik-ua (06.05.2020), SoftLight (10.04.2020), yur (06.02.2021), ZX_NOVOSIB (10.04.2020)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru Аватар для SoftLight
    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,085
    Спасибо Благодарностей отдано 
    744
    Спасибо Благодарностей получено 
    452
    Поблагодарили
    251 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос: с какой операционкой лучше запускать? Тут же как: если материнка содержит FDD-контроллер, то она, скорее всего, старая. Если старая, даже windows 8 уже скорее всего не взлетит. А еще и второй фреймворк нужен.

  5. #3
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    109
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Вопрос: с какой операционкой лучше запускать? Тут же как: если материнка содержит FDD-контроллер, то она, скорее всего, старая. Если старая, даже windows 8 уже скорее всего не взлетит. А еще и второй фреймворк нужен.
    У меня заработала на Windows 7. Теоретически, второй дотнет должен работать начиная с Win98, но драйвер работает вроде только начиная с Win2000. Короче, по идее любая винда начиная с Windows 2000.

  6. #4
    Master
    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    552
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    39 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Вопрос: с какой операционкой лучше запускать? Тут же как: если материнка содержит FDD-контроллер, то она, скорее всего, старая. Если старая, даже windows 8 уже скорее всего не взлетит. А еще и второй фреймворк нужен.


    FDD-контроллер содержало большинство материнок на LGA1156, и на LGA1155 Sandy Bridge можно найти материнки с FDD. Это вполне себе живые машины, десятка них чувствует себя вполне комфортно.

  7. #5
    Сибирский антропоморфн Аватар для Black Cat / Era CG
    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    942
    Спасибо Благодарностей получено 
    902
    Поблагодарили
    665 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://simonowen.com/fdrawcmd/
    Тут требования самого драйвера к системе. Все построенные на основе него утилиты (их немало) соотв-но работают не раньше, чем на 2000. У меня на 7ке работает, как и Диск Студио и другие.
    Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.

    Seamos realistas y hagamos lo imposible!

    Ernesto Che Guevara
    Переехал сюда: SteinBlume (ex ATM CP/M Explorer)
    http://era-cg.su

    Скрытый текст

    Speccy2010 r2 (Спасибо m.d. & xlat),
    Sinclair ZX Spectrum + (Спасибо stepmotor),
    ZX Evolution rev.C + 5'25 FDD Epson SD-700AA + NedoPC PAL-Coder (Спасибо m.d. & xlat)
    [свернуть]

  8. #6
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,803
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,193
    Поблагодарили
    786 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Show Catalogue – показ каталога образа.
    реально добавить сохранение каталога (в текстовом файле) ?

  9. #7
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    109
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    реально добавить сохранение каталога (в текстовом файле) ?
    Реально. Я могу добавить сохранение как текстового файла, это не проблема. Прямо в том виде как он показан в форме так и сохранить?
    Но вообще, можно сохранить TRD, потом нажать Build File Table, выбрать сохраненный TRD и сохранить каталог как html, откуда потом из браузера скопировать как текст. Если это не устраивает, то да, могу сделать сохранение как текст.

  10. #8
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,803
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,193
    Поблагодарили
    786 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Я могу добавить сохранение как текстового файла, это не проблема. Прямо в том виде как он показан в форме так и сохранить?
    мне кажется достаточно сохранять только имена (удобно при создании коллекций)
    трек/сектор и.т.д - уже избыточно

  11. #9
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    109
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    мне кажется достаточно сохранять только имена (удобно при создании коллекций)
    В форме показа каталога добавил кнопку сохранения списка файлов в виде .txt-файла.
    Вложения Вложения
    Последний раз редактировалось CPLx; 10.04.2020 в 17:59.

  12. Эти 2 пользователя(ей) поблагодарили CPLx за это полезное сообщение:

    goodboy (10.04.2020), NiKa (10.04.2020)

  13. #10
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,803
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    148
    Спасибо Благодарностей получено 
    1,193
    Поблагодарили
    786 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Load – загрузка образа trd
    а можно сделать фильтр (показывать только файлы с расширением TRD) ?

    - - - Добавлено - - -

    Цитата Сообщение от CPLx Посмотреть сообщение
    добавил кнопку сохранения списка файлов
    как вариант можно списку сразу давать то-же имя что и у рабочего образа

Страница 1 из 19 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 531
    Последнее: 13.11.2023, 12:15
  2. Программа для нарезания окон ZX Spectrum
    от AAA в разделе Утилиты
    Ответов: 84
    Последнее: 16.09.2010, 11:07
  3. Плагин FAR для чтения реальных дисков TR DOS
    от Alexandr Medvedev в разделе Утилиты
    Ответов: 2
    Последнее: 15.09.2010, 06:17
  4. Новый FAR plugin для форматирования дисков TR DOS
    от Alexandr Medvedev в разделе Утилиты
    Ответов: 3
    Последнее: 03.08.2007, 16:44

Ваши права

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