User Tag List

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

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

  1. #1

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    199
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    70 сообщений
    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.
    • Catalogue – показ каталога TR-DOS текущего образа.
    • Catalogue From Track – показ каталога с указанного трека образа. Были коммандеры которые сохраняли копию каталога на 160 или 162 трек, можно их просмотреть по этой кнопке.
    • ATM Catalogue – показ каталога ATM-Turbo текущего образа.
    • 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 секторов) с диска и показ в отдельной форме. Данные не сохраняются, на имеющийся образ не влияют.
    • Read ATM Catalogue – чтение каталога ATM-Turbo (2-й трек считая от нуля) с диска и показ в отдельной форме. Данные не сохраняются, на имеющийся образ не влияют.
    • 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 - показ версии драйвера и типа контроллера.


    Вкладка HT:

    Предназначена максимальной автоматизации чтения большого числа дисков. Чтение диска, вместе с сохранением образа и некоторыми проверками, делается нажатием одной клавиши: вставляем диск, нажимаем кнопку New Disk (F4), диск читается и сохраняется в директорию.
    Конкретно по кнопке New Disk происходит следующее:

    - Создается новый образ размером Default Image Size треков.
    - Определяется формат нулевого трека (TR-DOS, IS-DOS, CP/M).
    - Если формат определился, то делается чтение диска (если стоит галка напротив соответствующего формата) в режиме вперед-назад Number of Reads раз. Например, если Number of Reads равен 3, то диск будет прочитан вперед, потом назад, потом снова вперед (всего, таким образом, будет пройден 3 раза).
    - После первого чтения вперед, происходит автоопределение размера диска. Определяется формат треков и их соответствие целевому. Изучаются треки которые имеют номер больше чем Default Image Size и меньше чем Max Tracks. Параметр Max Tracks зависит от дисковода, максимально допустимое число - 172. Default Image Size я думаю имеет смысл ставить равным 160 треков. Функцию автоопределения размера диска можно отключить установив Max Tracks равным Default Image Size.
    - После выполнения чтения вперед-назад включается случайное чтение (если стоит соответствующая галка). К нему задается таймаут и количество error подряд при чтении секторов - для остановки чтения. 00:00:00 - отсутствие таймаута. Нулевое значение параметра Stop On Nth Fail означает отсутствие ограничения по количеству ошибочных чтений.
    - Потом производится автоматическое сохранение образа в указанную директорию (для каждого типа диска своя) по указанному шаблону файла (для каждого типа диска свой). Шаблон задается задается именем файла и непрерывной последовательностью звездочек, которые будут заменены на порядковый номер. Число звездочек обозначает длину числа как строки. Например "Disk ***" будет записываться как Disk 000, Disk 001, и так далее. Расширение будет добавлено соответствующее выбранному формату файла. Формат файла также задается (FDI, TRD, Modified TRD, и KDI для CP/M).

    Кнопка Repeat Reading - Заново запустить цикл чтения, но без создания нового образа, автоопределения типа диска и его размера.
    Save - Сохранение образа. (Хотя он сохраняется автоматически, но можно это сделать еще раз. Будет сохранен в тот же файл что было сделано ранее автоматом.)



    Вкладка Custom Format сделана для чтения кастомных форматов. Форматы, у которых все сектора имеют уникальные номера, должны читаться без особых проблем. Сектора с дублирующимися номерами могут не прочитываться. Читаются только правильно оформленные сектора, т.е. такие которые которые может видеть контроллер. Функционал этой вкладки сделан не до конца.


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

    На карте образа правой кнопкой можно вызвать контекстное меню, где есть функции маркировки секторов как необработанных.


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

    Настроить параметры чтения, после чего нажать 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 добавлен выбор дисковода. Сделано чтение кастомных форматов, но не полностью.
    23.01.2026: В версии 1.0.0.17 добавлен показ каталога ATM-Turbo на вкладке TR-DOS.

    Исходник (C#, Microsoft Visual Studio 2015): https://github.com/dalvx/SpectrumArchiveReader

    Исполняемый файл: SpectrumArchiveReader 1.0.0.17.7z
    Последний раз редактировалось CPLx; 23.01.2026 в 13:19.

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

    alvis(18.04.2020), Aqel(14.10.2024), Azm(19.04.2020), Black Cat / Era CG(10.04.2020), crackintosh(20.09.2024), creator(10.04.2020), Djoni(13.04.2020), Eltaron(10.04.2020), Grand(18.02.2023), Hysk(02.09.2024), 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)

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

  3. #2

    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,256
    Спасибо Благодарностей отдано 
    1,004
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    339 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #3

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    199
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    70 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #4

    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    579
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    43 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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

  6. #5

    Регистрация
    06.05.2010
    Адрес
    Бердск, НСО
    Сообщений
    5,012
    Спасибо Благодарностей отдано 
    1,099
    Спасибо Благодарностей получено 
    1,193
    Поблагодарили
    928 сообщений
    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)
    [свернуть]

  7. #6

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,327
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    1,489
    Поблагодарили
    971 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    199
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    70 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #8

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,327
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    1,489
    Поблагодарили
    971 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #9

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    199
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    70 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    goodboy(10.04.2020), NiKa(10.04.2020)

  11. #10

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,327
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    204
    Спасибо Благодарностей получено 
    1,489
    Поблагодарили
    971 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

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

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

Похожие темы

  1. Ответов: 534
    Последнее: 04.05.2025, 15:40
  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

Ваши права

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