именно на спеке ещё важную роль играет схема контроллера (точнее то что называют фапч)
несколько раз сталкивался с ситуацией когда на скорпе спокойно читалось то что сбоило на пентагоне (дисковод тот-же)
именно на спеке ещё важную роль играет схема контроллера (точнее то что называют фапч)
несколько раз сталкивался с ситуацией когда на скорпе спокойно читалось то что сбоило на пентагоне (дисковод тот-же)
Удалось отремонтировать дисковод и восстановить нормальную работу индексного датчика. Выяснилось сразу несколько неизвестных ранее для меня вещей.
- ZX Disk Studio стала работать. Сканирует диск и читает. Таким образом, оказалось что она у меня не работала из-за отсутствия индексных импульсов.
- На некоторых дисках перестали читаться первые сектора. Явление которое ранее встречалось здесь и с которым я лично не сталкивался никогда до этого. Теория, согласно которой причиной является близкое расположение сектора к индексному отверстию, выглядит правдоподобной. Обычно у нормально читающихся дисков первый сектор находится на расстоянии около 145 байт от начала трека. У дисков с невидимыми первыми секторами расстояние оказалось равным 11-12 байт (началом сектора здесь считается первый ноль из последовательности нулей за которой следует синхропоследовательность A1A1A1). Помимо этого, у проблемных дисков отсутствует заголовок трека.
- Ранее в этой теме писали что ZX Disk Studio может читать такие сектора, но у меня она не может ни просканировать, ни прочитать их.
- Мне не удалось подобрать параметры для функции драйвера, чтобы она смогла прочитать такие сектора. Не удалось найти и другого чисто программного способа их чтения.
- Закрытие индексного отверстия решает проблему чтения этих секторов. Закрытие должно быть полным, а не частичным. Мне не удалось частично закрыть отверстие так чтобы сектор стал читаться и при этом контроллер сохранял возможность видеть индексный импульс. Даже когда на глаз отверстие закрыто частично и сектор читается, всегда оказывалось что контроллер не получает индексный импульс вообще. Уменьшение закрытия, которое влекло восстановление индексного импульса, всегда приводило к невозможности прочитать первый сектор.
- Чем индексное отверстие мешает контроллеру осталось загадкой. Я склонен считать что это баг контроллера.
- ZX Disk Studio проверяет наличие диска, и как следствие требует наличия индексных импульсов, только в начале цикла чтения, когда гоняет головку по диску туда-сюда. Поэтому можно вставить диск, запустить чтение, подождать пока она погоняет головку, после чего перекрыть индексное отверстие, и программа начнет чтение, в том числе будет способна читать первые сектора. Главное успеть это сделать до чтения первого трека (т.е. нулевого), иначе первый сектор на нём не будет прочитан. Я перекрывал индексный датчик визиткой из магазина радиодеталей размером 48x90 мм, вставляя её поверх диска в дисковод. Нужной мне микросхемы у них не оказалось, так хоть визитка пригодилась. Получается что всё-таки не зря ездил туда.
- SAR был изначально написан из расчета отсутствия индексного импульса. Была идея переделать его так чтобы он его использовал, т.к. информация с него в принципе полезна в некоторых случаях. Но, ввиду проблемы нечитаемости первых секторов, похоже придется сохранить в значительной степени всё как есть, чтобы для чтения таких секторов была возможность закрытия индексного датчика без сильной потери работоспособности программы.
Более детальный анализ происходящего на одном из проблемых дисков (с невидимыми первыми секторами) показал следующее.
Время от индексного импульса до выхода из команды чтения заголовка сектора составило 13.65 мс. Этот выход из команды чтения происходит в момент когда головка находится на следующем байте после контрольной суммы заголовка второго сектора. Читался заголовок второго сектора, т.к. первый сектор контроллер не видел. Сектора на треке шли последовательно: 1, 2, 3, и т.д.
Данные для 99 чтений: среднее: 13.659 мс, стандартное отклонение: 0.016 мс, MAE = 0.0093 мс. Погрешность для MAE в пересчете на байты оказывается равной 0.28 байт. Для стандартного отклонения – 0.49 байт.
(A) Время между индексным импульсом и концом заголовка второго сектора 13.65 мс означает что прошло 420.42 байт от индексного импульса, со стандартным отклонением 0.49 байт.
Исследуемый диск был записан на ВГ93. При форматировании происходит наложение записи при зацикливании трека, из-за чего происходит срыв синхронизации в этой точке, что легко видно на глаз. По этой точке можно определить положение на треке где ВГ93 видела индексный импульс. Просмотр данных сырого трека показал что между этой точкой и моментом окончания заголовка второго сектора находится 422(±1) байта. Из пункта (A) известно что между индексным импульсом PC-контроллера и концом заголовка второго сектора проходит 420.42 байт. Таким образом, ВГ93 видела индексный импульс на 422 - 420.42 = 1.58 байт раньше чем PC-контроллер (с погрешностью не менее 1.5 байта).
Есть теория, согласно которой проблема невидимости секторов возникает из-за того что ВГ93 регистрирует индексный импульс по переднему фронту, а PC-контроллер по заднему, из-за чего получается эффект смещения точки индексного импульса на треке и приближения его к сектору [ссылка]. Но полученные факты показывают что ВГ93 и PC-контроллер видят индексный импульс в одном и том же месте трека, с разницей не более одного-двух байт, причем эта разница лежит в пределах погрешности оценки.
Эту теорию можно подвергнуть проверке и другим способом. Исходя из размеров индексного отверстия можно оценить с какой разницей должны видеть контроллеры индексный импульс, если они регистрируют его в диаметрально противоположных точках отверстия. Диаметр индексного отверстия составляет не менее 2.5 мм. Расстояние от центра индексного отверстия до центра диска – 25 мм. Это дает длину окружности на уровне центра индексного отверстия равной 157.07 мм. Что дает угловой размер индексного отверстия 5.73 градусов. Что в свою очередь дает размер индексного отверстия равным 99 байт. Поэтому точка индексного импульса на треке должна отличаться минимум на 99 байт между ВГ93 и PC. Повторюсь, на практике разница оказалась не более одного-двух байт. Поэтому теория о разном методе регистрации индексного импульса выглядит ошибочной. Как следствие, идея частичного закрытия отверстия не имеет удовлетворительного теоретического объяснения.
По крайней мере на моём железе так.
Надо отметить еще одну особенность формата проблемых дисков (у меня найдено их пока два): на них отсутствует заголовок трека. На треке, после пробела в 11-12 байт 0x4E после индексного импульса, сразу идут сектора. У непроблемных дисков сначала идет пробел 80 байт 0x4E, потом заголовок трека, потом еще один пробел и только после него идут сектора. Расположение секторов на этих двух проблемных дисках оказалось разным: у одного сектора идут последовательно, у другого интерливом. Значит проблемный формат делали разные программы, а не какая-то одна.
Последний раз редактировалось CPLx; 21.08.2020 в 13:05.
CPLx, А про какой дисковод идет речь?
Моё железо
ZX Spectrum 48K issue 2/3/4A/4B/4S/6A
ZX Spectrum +2
ZX Spectrum +3
Harlequin 48K
Harlequin 128K
Karabas-128
[свернуть]
Может таки лучше сменить mc5313 на Teac ?
Не обязательно на тик, можно на митсуми, или на эпсон или на панасоник или на ... ... ... .
___________
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Зачем? Чем он лучше? Мой диски читает, в целом работает. А за TEAC мало того что деньги платить надо, так еще возиться с отправкой денег и ждать доставки, и я даже не знаю что хуже. И тоже неизвестно как он там еще работать будет. Мне дисковод теперь нужен только для развития этой программы, исправления багов и так далее. В остальном я сделал с ним всё что мне надо было - прочитал все диски. Я, пока его ремонтировал, дважды попадал в ситуацию когда мне казалось что я его безнадежно сжег, и как-то не особо расстраивался по этому поводу. В одном случае таки сжег микросхему отвечающую за TR00 - я же в электронике ноль. С TEAC мне будет еще и страшно экспериментировать. Я, пока еще индекс был неисправен, хотел купить что-то вроде Mitsumi или Fujitsu (они продаются по сотне-две долларов, включая доставку). Но сейчас смысла в этом не вижу.
Я на ebay смотрел. А на российском рынке я не видел ничего кроме хлама.
Это где например?
- - - Добавлено - - -
Удалось несколько раз прочитать первый сектор (на диске где он невидимый) чисто программным методом, без закрытия индексного датчика. Но чтение очень нестабильное, получается редко.
Да блин, х.з. на местной барахолке разве не продают? Там периодически устраивают распродажи! Создай тему, мол куплю протестированный импортный 5 дисковод. Тебе точно кто-нибудь да продаст.
хм.. странно, я тупо на авито в 14-15 годах купил несколько 5" дисководов за копейки и в идеальном состоянии.
___________
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)