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

User Tag List

Страница 8 из 10 ПерваяПервая ... 45678910 ПоследняяПоследняя
Показано с 71 по 80 из 95

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

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

    По умолчанию

    Сделал чтение формата IS-DOS. Бинарник добавил в первый пост темы (версия 1.0.0.11).

    Исходник: https://github.com/dalvx/SpectrumArchiveReader

    Насчет формата IS-DOS. Точного и подробного описания я не нашел, но из тех отрывочных данных что есть, я понял что сектора там имеют размер 1024 байта и номера 1, 2, 3, 4, 9. Надеюсь проблем с параметром Head верхней стороны не будет. Дисков таких у меня нет, поэтому протестировать код я не могу и всё написано вслепую. Образ имеет формат аналогичный TRD, и сохраняется с расширением .isd, т.к. "правильного" расширения я опять же не нашел.

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

    Eltaron (17.07.2020), newart (18.07.2020), Serebriakov (24.07.2020)

  3. #72
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,007
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Насчет формата IS-DOS. Точного и подробного описания я не нашел, но из тех отрывочных данных что есть, я понял что сектора там имеют размер 1024 байта и номера 1, 2, 3, 4, 9. Надеюсь проблем с параметром Head верхней стороны не будет. Дисков таких у меня нет, поэтому протестировать код я не могу и всё написано вслепую. Образ имеет формат аналогичный TRD, и сохраняется с расширением .isd, т.к. "правильного" расширения я опять же не нашел.
    IS-DOS диски обычно сохраняют в FDI формате (поддерживает большинство эмуляторов).
    Реже сохраняют в TD0.

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

    Цитата Сообщение от CPLx Посмотреть сообщение
    Сделал чтение формата IS-DOS. Бинарник добавил в первый пост темы (версия 1.0.0.11).
    Спасибо!
    Сегодня протестирую.

  4. #73
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    114
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    IS-DOS диски обычно сохраняют в FDI формате (поддерживает большинство эмуляторов).
    Добавил FDI-формат.

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

    JV-Soft (21.07.2020), newart (21.07.2020), Serebriakov (24.07.2020), SoftLight (21.07.2020), ^m00h^ (21.07.2020)

  6. #74
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,007
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Добавил FDI-формат.
    Спасибо!
    А вывод каталоге не планируется для исдоса?

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

    По умолчанию

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

  8. #76
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,007
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поработал с десятком IS-DOS дисков. Странно, но ощущение что читаются они менее стабильно. К концу часто есть наростающие беды. Которые в результате рандомного, прямого и обратного чтения удается почти убрать. Жалко что приходится делать это в ручном режиме (сначала запускаю рандом, потом вперед, назад, опять рандом).

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

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

    http://zxpress.ru/article.php?id=8564

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

    Попробовал CP/M диск от Хоббита, считался.

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

    Нашел баг. В какой-то момент Read Random Sectors перестал зацикливаться. Вероятно после того как я пробовал читать тольк 1 сторону.

  9. Этот пользователь поблагодарил newart за это полезное сообщение:

    CPLx (22.07.2020)

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

  11. #77
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,007
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заметил пару нюансов. Имя файла которое вводишь при нажатии New не синхронизировано с именем по нажатие Save. Из-за этого иногда возникает путаница, записал диски не записал, какое имя ему назначить и т.п.
    А еще в Поле Track To всегда висит 172 трек, хотя при создании диска я выбираю 160 всегда. Тут попутно вопрос, почему при старте 172, а по умолчнию при New - 160.

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

    Кстати, было бы удобно иметь стандартные сочетания клавиш: CTR + S - save, CTR + N - new, С - каталог

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

    Оцифровал сабжем уже порядка 200 дискет. Впереди еще больше.

    Еще заметил. Что при закрытии программы, она предупреждает что не сохранен образ, но вот не указывает какой (tr-dos, cp/m, is-dos).

  12. Этот пользователь поблагодарил newart за это полезное сообщение:

    CPLx (23.07.2020)

  13. #78
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    114
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    А еще в Поле Track To всегда висит 172 трек, хотя при создании диска я выбираю 160 всегда. Тут попутно вопрос, почему при старте 172, а по умолчнию при New - 160.
    Track To это область чтения. 160 - это размер образа. Реальная область чтения является пересечением отрезка [TrackFrom, TrackTo) и [0, "размер образа"). Т.е. реальным TrackTo будет значение Min(TrackTo, ImageSize).
    160 по умолчанию потому что я думаю большинству именно это и надо, т.к. большинство дисков всего на 160 треков.

    Я могу специально для тебя сделать отдельную вкладку с кнопкой на которую будет повешен скрипт делающий всё автоматом: определяющий тип диска, читающий его нужной функцией (TR-DOS/IS-DOS/CP/M), в нужной комбинации (случайное, вперед, назад и т.п.), сохраняющий образ в нужную папку с нужным названием файла. Будет спешиал эдишон. Максимальная автоматизация. Но многие вещи будут захардкодены, выглядеть с точки зрения UI всё это будет криво, как костыль, почему я и не особо имел энтузиазма это делать. Если интересно, то напиши какие настройки тебе нужны, какая конкретно последовательность действий нужна. Раз уж у тебя так много дисков, это реально может всё облегчить.
    И еще: ты когда читаешь нечитающиеся сектора, какие-то манипуляции с головкой дисковода делаешь для улучшения чтения (прижимаешь, сдвигаешь и т.п.?)

    По несоответствиям New и Save я посмотрю что там.

  14. #79
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,007
    Спасибо Благодарностей отдано 
    24
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    И еще: ты когда читаешь нечитающиеся сектора, какие-то манипуляции с головкой дисковода делаешь для улучшения чтения (прижимаешь, сдвигаешь и т.п.?)
    Делаю да.
    Но 90% ошибок уходят сами, при рандоме + вперед + назад (поэтому и хочется автоматизации в этом вопросе).
    Если не ушли, то прижимание головки помогает в ~30% случаев.

    Насчет того что доработка только для меня. Это не совсем так. Есть еще ААА он много цифрует. За 15 лет он оцифровал тысячи 3 дисков. Я не сильно меньше. Был еще Страйкер, у него тоже такие же обьемы были (спасал диски со всей Беларуси). Есть и другие люди который цифруют диски сотнями.

  15. #80
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    114
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Нашел баг. В какой-то момент Read Random Sectors перестал зацикливаться. Вероятно после того как я пробовал читать тольк 1 сторону.
    Сделал отдельную вкладку для быстрого чтения и автоматической записи прочитанных образов.

    Добавленная вкладка называется HT. Суть такова: вставляем диск, нажимаем кнопку New Disk, диск читается и сохраняется в директорию.

    Конкретно по кнопке 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 - Сохранение образа. (Хотя он сохраняется автоматически, но можно это сделать еще раз. Будет сохранен в тот же файл что было сделано ранее автоматом.)

    Баг с чтением случайных секторов исправил.

    Еще мне в личку сообщили что вот это является ошибкой:
    Цитата Сообщение от CPLx Посмотреть сообщение
    Если сектор битый, то драйвер не выдает ни одного его байта. Поэтому потери данных из-за этого заполнения не происходит. Непрочитанный сектор всё равно был бы заполнен нулями.
    И действительно, драйвер всё же выдает данные если сектор оказался с ошибкой CRC. Поэтому сейчас я сделал так что в образ могут быть записаны прочитанные с ошибкой данные. Если такой образ сохранить в формате TRD, то эти данные будут вписаны в сектор, но будет потеряна информация о том что он имеет ошибку CRC. Если сохранить как Modified TRD, то будет сохранение как в первой версии и как сделано в WinTRD - т.е. bad-сектор будет заполнен символом 'B', и таким образом будет потеря данных, хотя сохранится информация о том что он bad. Аналогично для загрузки образа: при загрузке как Modified TRD, сектора заполненные символом 'B' будут восприняты как CRC-Error. При загрузке просто TRD (без Modified) такого не будет. Надо сказать что нормальные сектора могут естественным образом содержать сплошные 'B' - это случается в однотонной графике, где атрибуты могут быть заполнены этим символом сразу на 3 сектора подряд, такие диски встречаются.
    По этой причине я рекомендую сохранять образы в формате FDI - там сохраняется как содержимое bad-сектора, так и признак того что он bad.

    Сообщение о несохраненном образе при закрытии приложения я убрал. Вместо него в таблице указывается был ли образ изменен.

    Также сделал настройки (которые не хотел делать раньше). Сохраняются в файл xml создаваемый в директории приложения. Параметры вкладок теперь сохраняются. Ключи DataRate убраны из командрой строки и больше не работают. Вместо них можно использовать настройки - всё сохранится автоматом.

    Эту версию я не считаю окончательной, может быть много багов.
    Вложения Вложения

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

    newart (31.07.2020), Rusazar (31.07.2020), ^m00h^ (31.07.2020)

Страница 8 из 10 ПерваяПервая ... 45678910 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 408
    Последнее: 18.06.2020, 17:23
  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

Ваши права

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