User Tag List

Страница 3 из 19 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 185

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

  1. #21

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Сделал. Можно еще задать в командной строке, тогда параметр будет выставлен при запуске приложения.
    Ключи такие:
    /250K
    /300K
    /500K
    /1M
    (у меня) дискета успешно прочиталась при 300К.
    При чтении каждого дорожки головка возвращается на нулевой трек.

    ---

    На пустом диске (без файлов) в отчёте "Disk Table":
    Код:
    Good Files Share   NaN %
    Damaged Files Share   NaN %
    Вложения Вложения
    • Тип файла: 7z sar_log.7z (1.3 Кб, Просмотров: 302)
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

  2. #22

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

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    При чтении каждого дорожки головка возвращается на нулевой трек.
    Интересный случай. У меня есть одно предположение почему так может быть. Запусти здесь чтение кнопкой Test (добавил её на форму). Она должна попытаться прочитать 10 первых треков диска. Если головка не будет отъезжать на нулевой трек каждый раз, то тогда я переделаю работу с драйвером по схеме как сделано в этой кнопке. Если будет, то тогда не знаю в чём причина.

    NaN в таблице исправил.
    Вложения Вложения

  3. #23

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Запусти здесь чтение кнопкой Test (добавил её на форму). Она должна попытаться прочитать 10 первых треков диска.
    Прочитала,
    быстро,
    головка идёт только вперёд.
    Вложения Вложения
    • Тип файла: 7z sar5_log.7z (546 байт, Просмотров: 178)
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

  4. #24

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

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    Прочитала,
    быстро,
    головка идёт только вперёд.
    Отлично. Переделал работу с драйвером. В первой версии при чтении трека или сектора драйвер каждый раз открывался и потом закрывался. Я этот код скопипастил из примеров к драйверу, знал что это неэффективно, но потом забыл про это увлекшись чтением своего архива дисков, потому что у меня это всё работало. Видимо это и приводило к возврату головки на нулевой трек.
    Вложения Вложения

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

    DDp(13.04.2020), Rusazar(12.04.2020)

  5. #25

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Переделал работу с драйвером.
    Замечательно.
    Вложения Вложения
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

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

    CPLx(13.04.2020)

  6. #26

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

    По умолчанию

    Сделал карту образа. Лог ошибок убрал, т.к. он стал не нужен. Я его использовал чтобы видеть какие треки дали ошибки. Теперь они видны на карте. (Полный лог всё равно оставил, решил что всё-таки он мне может быть полезен. Его по-прежнему можно отключить в командной строке.)
    На карте показываются сектора: good, zero, bad и bad21. Bad21 это когда сектор дает ошибку 21, то есть вероятно не угадан формат верхней стороны или диск неформатирован. То есть это такая ошибка которую стоит отличать от других. В остальных случаях сектор обозначается просто как bad (чаще всего это ошибка 23 - CRC error). Zero это good-сектор заполненный нулями.
    Над картой есть толстая черная черта - она обозначает область чтения и строится по параметрам Track From и Track To. Эти параметры можно теперь задать мышью, сделав "выделение" мышью на карте образа.
    Тонкая черная черта над картой надчеркивает область 160-168 треков, просто чтобы знать где она.
    Добавил кнопку Driver Version. Показывает версию драйвера, тип контроллера и поддерживаемые скорости. Тип контроллера у меня оказался 82077, и похоже это что-то очень старое. Хотел сделать измерение вращения диска, но у меня это не заработало (функция драйвера измеряющая время вращения постоянно выдает ноль). Не знаю, может заработало бы у других. А может и нет.
    При запуске приложения образ теперь создается автоматически, поэтому не надо больше нажимать Create. Сама кнопка Create переименована в New.
    Ну вот вроде и все изменения.

    PS
    Забыл написать: двойной клик по области "толстой черной полосы" устанавливает область чтения с 0 до 180.
    Вложения Вложения
    Последний раз редактировалось CPLx; 18.04.2020 в 15:55.

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

    Azm(19.04.2020), Djoni(18.04.2020), Tuvic(23.04.2020)

  7. #27

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

    По умолчанию

    Увидел здесь на форуме идею чтения трека с позиционированием с обратной стороны. Я подумал что идея в том что головка не успевает стать на трек и можно прочитать трек слегка сдвинутой головкой. По-началу отнесся к этому скептически, потому что head settle time составляет всего 15 мс (оборот диска - 200 мс), но всё равно решил проверить чтобы убедиться в том что это не будет работать. Написал код чтения диска в обратном направлении: со 159 трека по нулевой. И оказалось что процент битых секторов стал меньше почти в 2 раза у меня на моём плохо читающемся диске (у меня все диски плохо читающиеся). Делал много тестов и результаты достаточно стабильные, в том числе на других дисках: обратное чтение дает значительно меньше bad-секторов чем прямое. Возможно это лишь особенность моего дисковода и моих дисков, но особенность интересная.

    Было сделано 2 алгоритма обратного чтения: быстрый и медленный. В обоих случаях треки перебирались в обратном направлении - со 159 по 0. При быстром алгоритме трек читался в прямом направлении, то есть сектора читались с 1 по 16. В медленном алгоритме сектора внутри трека читались в обратном направлении: с 16 по 1, на что уходило в 16 раз больше времени, т.к. на каждый сектор требовался целый оборот диска, поэтому этот алгоритм я назвал медленным.
    Еще сделал алгоритм чтения в прямом режиме, но с обратным позиционированием при ошибке. Работает так: читает в прямом режиме как обычно, а если встречается ошибка, то головка сдвигается на 2 цилиндра вперед, потом снова назад на нужный цилиндр, таким образом приезжает на него с обратной стороны (со стороны центра диска).

    Результаты такие (через запятую перечислено количество bad-секторов в результате трех экспериментов):
    Код:
    Прямое чтение:                                  215, 198, 203
    Быстрое обратное чтение:                        116, 87, 82
    Медленное обратное чтение:                      95, 122, 91
    Прямое с обратным позиционированием при ошибке: 112, 104, 103
    (Во всех случаях сектор читался в 3 попытки)

    Для примера, на карте образа одного из дисков это выглядело так:

    Нажмите на изображение для увеличения. 

Название:	2020 04 22 SAR exp.jpg 
Просмотров:	253 
Размер:	24.1 Кб 
ID:	72327


    Таким образом, получилось что быстрое обратное чтение мало чем отличается от медленного по числу bad-секторов, но скорость имеет гораздо выше. Прямое чтение с обратным позиционированием дало результат примерно такой же, но работает тоже значительно медленнее из-за частого позиционирования. Поэтому из этих трех экспериментальных алгоритмов я решил оставить только алгоритм быстрого обратного чтения и повесить его на кнопку Read Backward.

    Почему чтение улучшается при обратном движении головки это отдельный вопрос. Моё предположение таково, что головки немного отклоняются при движении по диску (они подвешены на гибком основании), поэтому движение в разных направлениях приводит к отклонению головок в разную сторону. Одним из самых эффективных способов улучшения чтения что я знаю это небольшой сдвиг головок рукой, меньше миллиметра. Обратное чтение позволяет получить подобный эффект, хотя и в значительно меньшей степени, без прикосновения к головкам руками. Этот диск, на котором делались эксперименты, может быть прочитан на 100% если сдвигать головки вручную. С помощью многократного чтения (прямое + обратное) удавалось достичь цифры 78 bad-секторов без сдвига головок руками.


    Еще догадался как измерить скорость вращения диска с помощью простого чтения (очень хотелось померять скорость диска, а функция драйвера у меня не работает, либо я неправильно её использую). Читается один и тот же сектор и замеряется частота чтения. Оказалось что диск у меня вращается со скоростью 295 оборотов в минуту. По логу выложенном в этом сообщении можно вычислить что скорость вращения диска составила 288 об/мин. Фунцию измерения скорости вращения диска также добавил.

    Сделал help, в котором нет ничего нового и который представляет собой сокращенную версию первого поста из этой темы.

    Новую версию добавил в первое сообщение темы.

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

    Black Cat / Era CG(23.04.2020), Djoni(29.04.2020), Serebriakov(29.04.2020), SoftLight(22.04.2020), Titus(29.04.2020), Tuvic(23.04.2020)

  8. #28

    Регистрация
    06.04.2013
    Адрес
    г. Могилев, Беларусь
    Сообщений
    254
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    28 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CPLx, а можно добавить формат CP/M-дискет Корвета в вашу утилиту?
    Стандартный формат *.kdi - это простая посекторная копия 800 KБ = 2 стороны * 80 дорожек * 5 секторов * 1024 байта.
    Пустой образ или битые сектора заполняются символом с HEX: E5 (судя по анализу образов, именно этим символом в Корветовских дискетах заполнены пустые байты, а не нулем NULL).
    Вот здесь можно взять примеры образов.
    Последний раз редактировалось Serebriakov; 29.04.2020 в 12:17.

  9. #29

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

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    CPLx, а можно добавить формат CP/M-дискет Корвета в вашу утилиту?
    Да, я думаю можно. Не знаю точно, но на первый взгляд всё выглядит вполне реализуемо. Я посмотрю что там можно сделать. Но я сейчас другим занят (мне захотелось прочитать формат interleave на высокой скорости), поэтому это чуть позже.

  10. #30

    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,398
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    188
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx Посмотреть сообщение
    Моё предположение таково, что головки немного отклоняются при движении по диску (они подвешены на гибком основании), поэтому движение в разных направлениях приводит к отклонению головок в разную сторону.
    Всё гораздо проще - люфт механизма позиционирования головок. Особенно сильно этим страдает советский 5305. У 5311 и 5313 такое тоже может проявляться, но обычно в том случае, если провода к головке задубели и не дают нормально подойти к треку с одной стороны. На Тиках не встречал, на дисководах с червячным приводом тоже. Обычно на дорожку становятся намертво. Но иногда тоже может помочь в чтении подойти с обратной стороны. Я обычно на сбойных секторах помогаю головке пальцем, подталкивая немного или в одном, или в другом направлении.
    На MFM-винчестерах вообще есть механизм микростеппинга, когда можно активировать этот режим и головка будет делать шаги меньше, чем шаг между дорожками для восстановления информации.
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

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

    CPLx(29.04.2020), Djoni(29.04.2020)

Страница 3 из 19 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  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

Ваши права

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