1 Отредактировано garnizon (11-12-2017 10:57)

Тема: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

На форуме ZX.PK есть человек который с помощью платы SuperCard Pro и обычного дисковода (Panasonic JU-475-5 (1,2Мб HD)) снимает образы с дисков различных систем. В том числе Amiga, Apple][, Агат и т.д Такой платой можно даже от Commodore64 и Atari800 снимать.

http://cbmstuff.com/prodimages/scp1.jpg

Вот он пишет ТУТ:

софт:
- Aufit (для сортировки "PC" - "не PC" и красивых картинок),
- a8rawconv (для перегона в формат .do),
- samdisk,
- HxC.

в samdisk потихоньку дописываю поддержку формата 840к (пока не уверен в ней до конца).

Добавлено чуть позже:

Улучшил код чтения формата 840K -- теперь читаются образы .hfe, сконвертированные из .aim инструментом agath-aim-to-hfe.pl.
Причешу и отправлю автору SAMdisk.

ссылки на софт:

http://info-coach.fr/atari/software/...ects/Aufit.php

http://atariage.com/forums/topic/231...rsion-utility/
https://bitbucket.org/whizzosoftware/a8rawconv

http://simonowen.com/samdisk/
https://github.com/simonowen/samdisk

*DO - это вот как раз разновидность образа 140КБ. 

Насколько я понял, он все подряд диски читает в сыром виде .scp - 11-12 мб (5 проходов чтения каждой дорожки), а потом специализированным софтом конвертит в форматы принятые в эмуляторе той или иной системы.
Причем у него был уже удачный опыт и с 140 и с 840 кб.

Понятно, чтение дисков с нестандартной шириной дорожки (Apple][ и Commodore64) не даст тех результатов как например "МОСТ140", ну и потом невозможна функция "Корректор смещения" важная для убитых и кривых дисков.
Но в качестве первичного сдампливания дисков, ведь хавает любые, очень подойдет.

Собственно почему меня это заинтересовало:

Как вы знаете, мой основной интерес по агату это розыск и сдампливание дисков. Ну получается не только Агатовских, если вместе с ними попадаются от других систем то считываю тоже, и образы посылаю на профильные форумы. Но главное конечно Агат.
Так вот иногда, по разным причинам, владелец отказывается отсылать диски куда либо, но желанием снять их горит. Я тоже не остаюсь в стороне (а вдруг на дисках есть интересное и отсутствующее в архиве сайта.), и тут два варианта:

1) Я про него уже писал:
А вот поступать как в начале этого года, беру ноут с LPT портом старый (ибо мост840 именно под него), мост840, контроллер840(ибо мост840 на данный момент рассчитан на работу в составе его), несколько дисководов (ну и мост 140 конечно) и еду почти целый день в Ярославль. Снимаю гостиницу, почему-то с тараканами, забираю диски и целую ночь снимаю образы. Картина маслом: жужжащий ноут, в нем мост, в нем контроллер..... жуть, все это норовит упасть... На утро (как и обещал) отдаю диски владельцу. Довольный и измотанный еду домой.
Странно это все, но в чем только не изваляешься для дела. В прошлом году таких поездок было 4.

2) Отправлять оба моста владельцу дисков, по почте обучать его работать с ними. Ждать пока владелец найдет комп с LPT портом и win98/DOS. Такие случаи тоже уже были. Но оказалось что это не самые главное трудности. Самое главное сортировка: 840 отличить от 140 и от всех остальных. Почему-то это больше всего не удается, и половину дисков признают вообще пустыми. В одном из случаев, я потом сам перечитывал такие диски у себя, и оказалось что все они с записью. Пусть и хитрые но с записью.

Так вот, есть мысль купить SuperCard Pro и пользовать его в случае номер "2" выше. Т.е. отправлять его вместе с дисководом (а больше ничего и не надо) и пусть владелец читает в сырое все подряд. Скажем если попадутся диски исторически важные но плохо прочитавшиеся, то с ними уже отдельно решать. Например по первому сценарию, но по упрощенной схеме (ведь уже знаю зачем поеду и какой диск снимать). Затейливая конечно комбинация, но ради пополнения сайта новым софтом - я готов (приятные хлопоты).

Кто что про это думает и как вообще относитесь к этому SuperCard Pro, и может быть есть какие-то подробности/опыт работы?

2 Отредактировано Voldemar0 (01-08-2018 21:34)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Не сочтите за беспокойство, публикую нижеследующее исключительно по большой просьбе Игоря. Материалец сыроват, но раньше октября другого не будет, ибо отпуск.


SuperCard Pro

Да, ей также можно прочитать агатовский 840-кб диск.
Однако она всё же пока проигрывает "Мостам" по скорости работы и объёмам образов.

Это связано с тем, что стандартное ПО SCP не знакомо с форматом записи Агата и не может во время снятия данных принять решение о том, удалось ли прочитать данную дорожку или нет (следовательно, нужно ли её перечитать её ещё раз).
Возможно, позднее этот недостаток удастся устранить, но пока радуемся тому, что есть.


Установка

Рекомендуется следовать инструкциям с сайта разработчика платы.
http://www.cbmstuff.com/proddetail.php?prod=SCP

Там можно скачать софт и руководство.
Софт состоит из двух частей: программы scp и драйвера.
Драйвер раздаётся вместе с программой в одном архиве, но следует знать о том, что драйвер разработан фирмой FTDI и если вы используете старую версию Windows (XP, например), имеет смысл зайти сюда:
http://www.ftdichip.com/Drivers/VCP.htm
и скачать версию для вашей системы (ищите после надписи "No Longer Supported").

У меня заработала версия драйвера с именем архива "CDM 2.08.24 WHQL Certified.zip".

Автор устройства не рекомендует использовать его с хабами, но, на самом деле, вы должны убедиться в работе устройства "напрямую" и если вас постиг успех - пробуйте с хабом (если нужно).
Хаб хабу рознь.


Настройка проги

Прога SCP при запуске предупредит, если не найдёт плату (а это бывает в случае проблем с драйверами). Если она таки не находит плату или дисковод, попробуйте почитать или написать на форум автора проги:
http://www.cbmstuff.com/forum/forumdisplay.php?fid=3


Если всё запустилось нормально, проверяем настроки проги.
Для этого сперва выбираем в верхнем меню "Function -> Disk Copier/Imager".

Затем проверяем меню "Drive settings":
Drive Type = 96 TPI
Weakbits = RAW
Density = Low
Index sensor = Required (тут нужно поизучать дополнительно)
Backside Control = None

И затем, в основном окне, проверяете важные галочки и настройки в соответствии с картинкой.

Параметр "# Revolutions" нужно выбирать минимум 2, но если есть свободное время - полезно его увеличивать.
Значение 3-4 для первоначального снятия будет лучше чем 2. Меньше 2 ставить нельзя.


Снятие образов

Щёлкаем кнопку внизу в середине "Make image", прога задаст вопрос о расположении и имени создаваемого образа и начнёт работу.


На выходе получится файл с расширением SCP.
Его отправляете нам и мы попытаемся сделать из него AIM или DSK, в зависимости от содержимого.

Пока только так.
В дальнешем, возможно, будет выпущен SCP->DSK конвертор, пока же есть только бета-версия SCP->EIM.


О форматах

Почему не DSK ? Потому что весь наш конвейер обработки образов строился на основе оборудования под названием "Линк2" или "Мост", которое на выходе даёт именно EIM-формат.

Этот формат достаточно удобен для анализа разного рода программных защит Агата, кроме того сам конвертор из EIM в другие форматы хорошо вылизан (фактически, их существует несколько, для разных замороченных случаев).

Прямая конвертация SCP->DSK возможна, но вряд ли эта утилита будет хорошо отлажена и проверена, так как необходимости в такой конвертации для нас нет, а добровольцев-тестировщиков тоже, как всегда, не хватает. Кроме того, DSK не содержит служебной информации, которую могут проверять различные виды защит.

Полностью автоматической конвертации чего-бы-то-нибыло в AIM также не существует (разве что DSK->AIM).
Почти всегда, при создании AIM с защитой, приходится ковыряться в той или иной схеме защиты.

Подробнее о форматах можно узнать здесь:
http://agatcomp.ru/Soft/agat.shtml

Post's attachments

scr.png, 14.57 kb, 646 x 563
scr.png 14.57 kb, 329 downloads since 2018-08-01 

3

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Да, я уже, наверное, всем уши прожужжал что чтение дорожки без какой-либо верификации на лету - занятие небесполезное, но очень далекое от совершенства

4

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Автор устройства вполне прямо писал, что алгоритмы работы заточены под поддержку различных index-based систем записи. Анализировать каждую в отдельности он не мог  - это и объём работы огромный и проверить ему было бы не на чем. Так что вполне логично, что он выкатил одну универсальную, пусть и не идеальную, прогу + к ней описание интерфейса с железкой. Кто хочет - пилит под себя соответствующее ПО. Судя по форуму железки - таки напилили уже немало. Наверное, с  проверкой налету.

Кроме того, Игорь описывал неиллюзорный случай, когда владелец ведра дискет хочет их сдампить, но не знает формата записи. И знать не хочет. И что делать ? Снимаем в чистый RAW, да, без анализа налету, публикуем, потом заинтересованные стороны разбирают формат - каждый со своей позиции. Есть решение лучше, ну кроме как физически приехать в владельцу и настоятельно убеждать сделать всё аккуратно и тщательно?

5 Отредактировано Voldemar0 (15-12-2018 20:05)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

О снятии 140кб дисков, используя SuperCardPro и MFM-дисковод.
http://forum.agatcomp.ru//viewtopic.php?pid=2469#p2469
Настройки для проги те же самые, что и для 840кб.
Но результат будет хуже, чем на исправном ес5088.
Или даже сильно хуже - заранее предсказать сложно.
Основная проблема: 140кб -формат использует чуть более широкую полосу сигнала, чем MFM / 840ка.

6 Отредактировано Voldemar0 (23-12-2018 17:54)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

PS Если на новогодние праздники кому будет скучно: можно ведь подключить 5088 к SCP. Но для этого нужен конвертор сигналов управления головой и генератор сигналов индекса и tr0. Задачка несложная, можно построить на чём нибудь копеечном, типа at89c2051 или даже на жесткой логике-рассыпухе. Ну или ПЛИСке.
Если соберёте несколько экземпляров - присылайте, потестирую.

7 Отредактировано Voldemar0 (14-02-2021 21:31)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

FluxEngine:

Страница на сайте разработчика:
http://cowlark.com/fluxengine/

Страница на github:
https://github.com/davidgiven/fluxengine

Те же яйца, вид в профиль. Тоже сохраняет тайминги между импульсами и немного пытается это декодировать в один из известных форматов. Лютое преимущество этой платы: фактически, это серийно выпускаемая девборда от Кипариса (Cypress), на которую напаивается разъём для флопа и все танцуют и улыбаются, потому что ничего иного паять не нужно. Только залить прошивку.

Плата стоит около 1500р на али. Сам Кипарис вроде как распродал запас, но может быть ещё перевыпустит.

Девборда интересна там, что состоит из двух частей, которые можно отломать одну от другой в любой мастерской, оборудованной плоскогубцами или чем нибудь ещё, достаточно прочным. Одна часть - сама девборда, вторая - как бы прошивальщик девборды. С дополнительными функциями USB-I2C и USB-COM мостов. Так что вещь вообще довольно полезная в хозяйстве.

На каждой половине платы сидит по процу, так что по цене одной платы вы получаете сразу два камня.
Они почти одинаковы, разница только в тактовых частотах: в прошивальщике около 70 МГц, а на девбордовой половине - около 80 МГц.

        68lti-lp039     88lti-lp097
Speed   67 MHz          80 MHz

Flash   256 Kb          256 Kb
SRAM    64 Kb           64 Kb
EEPROM  2 Kb            2 Kb
FS USB  Y               Y
USBIO   2               2
SIO     8               8

В проц прошивальщика уже залита прошивка от Кипариса, ну а проц на девборде пустой.
Для прошивки нужно зайти на сайт Кипариса, скачать там специальный (немалого размера - 40 Мб) "программатор", ответив на ряд скучных вопросов. И скормить ему прошивку flux. Потом "программатор" можно снести, чтобы не маячил.

К слову: процы довольно интересны тем, что помимо ядра и типичной небогатой периферии также присутствует некая штука, напоминающая встроенную CPLD. Вероятно, поэтому и периферия небогатая, так как на CPLD можно смастерить всё, чего будет остро не хватать.

После того, как всё зашито, устройство цепляется к флопу и к USB. Комп под виндой, но можно и под Linux (мне показалось, что автор вообще именно под линухом это всё и пилит, а винда у него как бы для публики только). Единственная утилита управления называется fluxengine.exe. У меня не заработала под WinXP, зато заработала под Win8, под другими не проверялась.

Чтение запускается примерно так:

fluxengine.exe read ibm --write-flux xxx.sql3

Утилита вроде бы не умеет автоматом определять формат, но для нашего дела - с практический точки зрения - выгоднее указывать именно ibm (они чаще всего среди агатовских встречаются).

Утилита при таком вызове пытается читать диск как IBM-совместимый, но, кроме того, она скидывает RAW-данные в файлик xxx.sql3.

Автор любит добрую шутку, поэтому сырые треки  (нужные только для целей отладки - как он считает) сохраняет в формате БД SQLite3, причем в виде блоба, причем запакованного libz, причём, похоже, без какой либо CRC. Так что выдернуть это всё без линуха (или его библиотек, хотя бы) немного непросто, хотя и возможно.

Дальше всё просто: небольшой конвертор SQL3 -> track.RAW -> EIM и задача обработки агатовких 840ок сводиться к хорошо известному случаю. С теми же ограничениями, что и у платы SCP, можно пытаться читать 140ки, тем более формат Apple][ уже присутствует в fluxengine.exe (основное ограничение: способность конкретного дисковода  протащить полосу сигнала, которая нужна 140ке).

В отличие от SCP, у Flux полностью открытые исходники, но крайне мало документации. Так что добавить декодер 840ки сразу во fluxengine - трюк не простой. Как минимум, нужно разбираться во внутреннем интерфейсе проги (между ядром и декодерами разных форматов). Я пока не имею планов на подобный шаг. Кроме того, сборка fluxengine заточена под MinGW, а по нему у меня знаний не больше одноимённой статьи в википедии.

8 Отредактировано dk_spb (17-02-2021 18:26)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Так я давно всем говорю что fluxengine - это самое то.
А меня никто не слушает.
Я еще в 2019 году на Chaos Construction речь про него толкал....
И тут в соседней теме распинался что платка за 1500 руб всяко удобнее осциллографа. Но мне не верили ;-) А тут, почти аккурат через год.....

9

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Только в 100500 раз повторяю: чтение дисков в сыром формате в файл без разбора и контроля "на лету" - очень часто пустая трата времени.

10 Отредактировано garnizon (27-03-2021 21:55)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Win7 не находит дров для  fluxengine (проверено на нескольких машинах).

Post's attachments

2.png, 9.46 kb, 364 x 364
2.png 9.46 kb, 193 downloads since 2021-03-27 

3.png, 14.5 kb, 366 x 317
3.png 14.5 kb, 192 downloads since 2021-03-27 

11 Отредактировано Prol (29-03-2021 16:43)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

garnizon пишет:

Win7 не находит дров для  fluxengine (проверено на нескольких машинах).

А какой ID оборудования на закладке "Сведения"?

12

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

USB\VID_1209&PID_6E00&REV_0001
USB\VID_1209&PID_6E00

13

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Попробуй winUSB установить. https://zadig.akeo.ie/

14 Отредактировано garnizon (31-03-2021 03:01)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

А вот на счет этого и есть самая непонятка. Пользователи fluxengine вроде советуют эту прогу, но чего именно в ней выбирать обычно объясняется так:

Я так  и не понял, что выбирать под стрелкой, выбирал сперва "Install WCID Driver", она че-то сопела, говорила "драйвер не найден". Тогда я потыкал вариант "Install driver" и она установила некий "libusbK"
После этого я ещё раз пощёлкал стрелки и выбрал "libusb-win32 (v1.2.6.0)" и ещё раз "Install driver". Вот после этого в
диспетчере устройств всё стало вроде бы правильно.

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

15 Отредактировано Prol (31-03-2021 11:06)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

garnizon пишет:

Т.е. никакой определенности нет.

Определенность есть и разработчик устройства возможно где-то ее прописал и даже слепил и выложил готовый драйвер. Но мог и полениться, его право. Есть еще пара моделей поведения, но речь не об этом:)
Обычно для простых проектов используют winUSB, а zadig это прога для его простой установки. Во всяком случае большая часть китайских поделок его используют. Попробуй следующую последовательность действий.
0. отключаем все лишнее юсбишное
1. запускаем zadig
2. если в верхней строчке пусто или ничего знакомого, жмем options - list all devices
3. выбираем наше устройство
4. ниже слева показывается установленный драйвер и id устройства, у тебя в поле driver, если еще ничего не устанавливал, будет NONE.
5. правее выбираем что установить.
6. жмем instal driver
7. работает не трогаем, иначе идем в 5.

16 Отредактировано garnizon (08-04-2021 02:45)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Ну вот по такой схеме что-то получается, причем на разных компах с Win7 прокатывают разные пункты меню. 

Теперь про саму железку. Сразу скажу, про диски 140кб я даже не думал, задача была дампить диски 840кб.


1) Раньше, снимая диски с помощью МОСТ840, я по ходу пьесы понимал - как идет дело.
Т.е. такие вещи как "отошел проводок",  "слетела пружинка с головы",  "диск закусывает", "записан на флопе с смещенной головой" и т.д. можно было просечь прям на ходу и принять меры.

http://agatcomp.ru/agat/DumpDsk/Link2/Bridge840/help/GETNIBB8402.png

Понятно, что используя МОСТ я находился в "тепличных" условиях, созданных для меня VOLDEMARом.
Ну точнее не лично для меня, а просто потому что он всегда так вот, фундаментально и качественно исполняет.
Т.е. все настраивается как надо и визуализируется как следует.

Попробовав Flux я пока немного растерялся от увиденного.
Поскольку отдельного модуля для Агатовских дисков в нём нет, приходится снимать сырые данные (и потом декодировать).
А это значит что снимаем "в слепую". Т.е. он там чего-то читает, но все что я вижу это номер текущего трека, пользы от этого нет.

В чём собственно неудобство: скажем у нас есть 50 дисков, дампим потихонечку. И вот 15-й попадается с "пачкающимся" магнитным слоем. Остаток треков этого диска, и все последующие диски будут читаться с кучей ошибок, если вообще будут читаться.
С МОСТ840 я это вычислю мгновенно "онлайн" если слежу за процессом, или, если отходил хлебнуть чайку, увижу сообщение о косяках по завершению чтения диска.
И вторым проходом, с чистыми головами, он как миленький все вычитает.
Примеров много, жизнь уже учила, и пружинка на голове прослабла или диск закусывает в конверте немного, да мало ли чего бывало, опыт есть.

А вот читая без визуализации, можно обнаружить, дочитав последний диск, что половина образов пустышки бЭдные. И поехали по новой тоже самое и не один раз. Без контроля каждого диска - беда и разруха.

Собственно хорошим решением бы было добавление в штатную программу Flux режима Агат.
По хорошему в сырье читать удобно только когда сортируешь огромную кучу дисков от разных ЭВМ (а именно такое месиво обычно и присылают). А потом, разложив их по стопочкам - читать на чистовую соответствующими модулями.

Но я не знаю как правильно обратится к автору, какую линию поведения нужно иметь, и какая информация ему нужна для решения этого вопроса. Очень надеюсь на подсказку  или помощь в решении проблемы от DK_SPB . Поскольку у него уже был удачный опыт по этому вопросу: http://cowlark.com/fluxengine/doc/disk-mx.html



2) Теперь самое хреновое. Получается так, что один и тот же диск читается Flux-ом значительно хуже чем МОСТ840. Ошибок получается в разы больше. Остальные условия специально те же, т.е. дисковод и питающий его БП конкретно те же самые.
Перевод дисковода, при чтении Flux-ой, в режим HD, несколько улучшает ситуацию, но до МОСТ840 не дотягивает сильно.

Не известно точно, в чём причина. Алгоритм декодирования известен, но либо повторен с какой-то неточностью либо сама флюкса неправильно измеряет время. Может там джиттер слишком большой. Почему - не знаю. Предполагают, что сам процессор может быть не рассчитан на 5 вольт интерфейс, может быть в ПО проблемы. Факт в том, что стоит чуть-чуть сдвинуть пороги декодера, по которым он отличает количество нулей между единицами и тут же сильно меняется процент ошибок. Причем некоторая часть дорог читается лучше с одними интервалом, часть - с другим. И это странно.

Так что пока, не очень всё вышло.

17 Отредактировано Voldemar0 (08-04-2021 18:40)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Есть вопрос к сообществу:
Представим, что мы ловим импульсы. Они должны сидеть каждый в своём таймслоте,
например, состоящем из 8 отрезков одинаковой длительности.

....I... ....I... ........ ...I....

Самое простое, если они сидят все в одном отрезке.
Но они суетятся и сидеть не хотят.
Но нам нужно по положению этого или следующего импульса (если в текущем таймслоте нет импульса) понять, где проходит граница таймслота ?
Сейчас я сделал простой алгоритм: оцениваю интервал между текущим и следующим импульсом и, в зависимости от его длительности, регистрирую последовательность 10, 100 или 1000.
Но тщательно думая над тем, что мост читает явно лучше чем флюкса с моим декодером, я вспомнил, что в микрокоде 840ки логика регистрации сложнее: там реализовано что-то вроде программного ФАПЧ.
Т.е. там программно учитывается длительность предыдущего интервала при анализе последующего: если очередной импульс прибежал близко к началу таймслота (т.е. случился немного раньше, чем его ожидали), то для последующего импульса даётся фора в ожидании. Но фора всегда немного меньше, чем ошибка положения.

Я хотел бы спросить: а как с этим обстоит дело в других системах, читающих MFM?
Если там есть ФАПЧ, то как она устроена (какой алгоритм её работы) ?

18

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Voldemar0 пишет:

а как с этим обстоит дело в других системах, читающих MFM?
Если там есть ФАПЧ, то как она устроена (какой алгоритм её работы) ?

Вообще, в каком-то виде ФАПЧ есть почти везде. В схемах с КР1818ВГ93 часто это просто счетчик, который ловит импульс синхронизации и подстраивает по нему границы таймслота, в котором ловится импульс данных. Есть варианты вообще с полностью аналоговой ФАПЧ - там есть управляемый напряжением генератор, который подстраивается по импульсам синхронизации. Но чаще всего используется какой-то вариант цифровой ФАПЧ.
Алгоритмы работы в каждом случае отличаются.

19 Отредактировано Voldemar0 (12-04-2021 21:03)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Меня больше интересовали современные программные решения : всё таки вг93, возможно, была ограничена стоимостью разработки или реализации, но сейчас-то можно накрутить какой угодно программный алгоритм.

Понемногу почитываю эту статью:
http://emuverse.ru/wiki/%D0%9A%D0%BE%D0 … 1%82%D1%8B

и второй вечер ковыряю 840ку.
Но там странно: общие идеи прослеживаются, но не всегда ясны некоторые кусочки : то ли упустили, что-то, то ли почему-то схемотехника не позволила, то ли тут какая-то неясная мысль.

"Вечером перелистывала Вольтера. Нашла 1000 рублей. Всё таки гораздо больше открывается при повторном прочтении." (C) КВН (Парма, Жанка и Светка)


Автомат идёт с шагом 0.245нс (~4МГц), на каждый таймслот 8 шагов [0..7].
После синхросбоя автомат стремиться загнать новый импульс на шаг 5 и отчётливо видно, что именно шаг 5 ему больше всего нравиться для корректного потока, хотя шаг 6 тоже неплох.
Но, всё же, в зависимости от количества нулей между единицами, коррекция меняется:

  101: 33445566  (принимается цепочка кодированных единиц)
  101: S3445567 (принимается цепочка кодированных нулей)
 1001: S3445567 (принимается кодированная цепочка 100100 или 110110110)
10001: 34445556 (принимается 01010101 или синтетический синхросбой)
сбои другие: 223334444, xx445555, 22333444, 344445556.

Тут 8 цифр: это шаг, на который автомат перейдёт в следующем таймслоте, если в текущем словит импульс (единицу).

Например: 33445566 - это значит, что если импульс произойдёт в нулевом шаге, то автомат сразу перейдет на следующий таймслот в шаг 3 (т.е. на 3 шага ускориться), если на первом шаге - автомат ускориться на 2 шага, ... если на шаге 6, то коррекции не будет, если на шаге 7 - автомат замедлиться на шаг.

S - это особый случай: автомат слетит в ошибку (возможно, поднимет флаг "сбой синхро").
Это произойдёт, если вылезут две единицы в соседних таймслотах, но появление S в таблице коррекций означает, что "запрещённая зона" (таймслот, в котором обязан быть 0) расширяется с 8 до 9 шагов.

"Сбои другие" - это ситация, когда либо пришли две единицы в соседних таймслотах либо даже две единицы в одном таймслоте. Но тут всё понятно: автомат пытается загнать импульс в 5 фазу: всё дело в том, что это почти всегда переход в таймслот 0, а этот таймслот так хитро устроен, что за 1-2 шага всё равно загонит импульс в пятый шаг, в общем-то не важно, куда там передавать управление.

А вот почему приём 101, в зависимости от фазы приёма, имеет разные схемы синхронизации - не ясно.
Почему S есть только в двух из четырёх комбинаций ? Сбой в прошивке, который не заметили ? Кто-то разработал код, потом кто-то допиливал, не совсем её поняв или не считая какие-то шаги важными? Или я понял что-то неправильно?

Тем не менее, общая схема ясна:
1) Автомат легко допускает "сближение" импульсов. Он считает более вероятным сближение, чем разбег. Т.е. если принимается 101, то автомат допускает интервал между импульсами от 11-12 до 18 шагов, хотя идеальный интервал - 16 шагов.
2) Ошибка или хитрость, но различия между вариантами коррекции состоит только в крайних состояниях. При ошибке в [-3..+1] шага коррекции всегда одинаковые. Только большой интервал (10001) корректируется немного жестче.
3) Любая ошибка (лишняя 1) приводит к жесткой синхронизации. Впрочем, возможно, что из-за фильтров в дисководе слишком близких единиц быть вообще не должно ?

--

А почему вообще ВГ93 требует настолько замороченный внешний сепаратор ?
Почему его не сделали частью кристалла ?

20

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

ЁЁЁЁЁЁЁЁЁ!
PLL рулит ! :)
Будет время - продолжу эксперименты.

http://emuverse.ru/wiki/%D0%9A%D0%BE%D0 … 1%82%D1%8B

Тут интересный обзор работы вг93 с кучей разнообразного обвеса.

Выходит так, что агатовская 840ка где-то на 4+ сделана. Можно было ещё чуть лучше, например, тактирование 8 МГц и поточнее корректор ФАПЧ при чтении, но это уже граничит с голой теорией, без практики. Многие и до сюда не добирались.

Но надо дальше изучать, что-то ещё не всё сходится.

21

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Пытался я как-то длинным зимним вечером этот текст осилить, заснул примерно на середине:)

22

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Voldemar0 пишет:

Тут интересный обзор работы вг93 с кучей разнообразного обвеса.

О, кто-то догадался собрать все части журнальной статьи вместе. Я это читал в сканах журнала "Радиолюбитель - ваш компьютер".

Voldemar0 пишет:

А почему вообще ВГ93 требует настолько замороченный внешний сепаратор ?
Почему его не сделали частью кристалла ?

ВГ93 - это аналог WD1773. Семейство WD177x было разработано в 1976-1977 годах, тогда за каждую лишнюю тысячу транзисторов на кристалле шла борьба. Так что встроенный сепаратор просто не уместился.

23 Отредактировано Voldemar0 (17-04-2021 20:21)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Сегодня возник интересный вопрос. Не то к автору флюксы, а не то к стене, на которую я смотрел последние полчаса: в статье, о которой я упоминал чуть выше, автор очень чётко сообщает, что на входе канала чтения контроллера ОБЯЗАН стоять резистор номиналом около 150-300...ну максимум 1-2 кОм, второй лапой зацепленной на питание. Это нагрузка выходного каскада флопика и нужна она для подавления отражений или согласовании волнового сопротивления шлейфа, ... в общем что-то такое полезное. В частности, он писал, что сопротивление 10 ком, применяемое в некоторых неправильных контроллерах - это уже совсем плохо. Ну и в идеале на входе должен стоять триггер Шмита.
Но если триггер я могу легко вообразить внутри входа флюксы, то вот резистора я в упор не наблюдаю на схеме девборды Кипариса, да его там и быть не должно по смыслу, тем более такого мелкого номинала.

А вот в агатовском контроллере он как раз есть. И триггер Шмита тоже есть.

Как-то это нехорошо... Но не знаю - на сколько. Вероятно, зависит от длины кабеля.
Я бы его укрепил там. На всякий случай, ом 300-500.

24 Отредактировано Voldemar0 (17-04-2021 22:17)

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Всё, я добил гадский вопрос :))))

Вот над чем я раздумывал уже пару дней: моделирование агатовского ФАПЧ всё время приводило к плохим результатам. Более простые и очевидные схемы давали лучший результат.
А дело было вот в чём:

В программе секвенсора очень много строк примерно такого вида:

строка 14 if ИМПУЛЬС тогда goto строка 05
строка 15 if ИМПУЛЬС тогда goto строка 05

Так как для большинства фаз первая цифра номера строки соответствует номеру фазы,
а вторая - шагу внутри фазы (т.е. фаза - это как раз кусок программы, обрабатывающая один интервал времени длинной около 2 мкс), то goto ШАГ 05 означает переход в другую фазу (из N1 в N0), но на тот же интервал.

Я рассуждал как обычный программист: если у нас есть ИМПУЛЬС то на строке 15 номер интервала не меняется - был 5 и остаётся 5. Поэтому я думал, что интервал 5 - это точка захвата ФАПЧ (нумерация интервалов [0..7]).

Но здесь это не так: GOTO занимает по времени один такт. И переход на следующую строку (16), если импульса нет - это тоже один такт. Получается, что если имульса нет автомат уйдёт на строку 16, а если есть - то на 05 и следовательно, такой переход, фактически, сдвигает анализа на 1 назад.

Т.е. центральный интервал, к которому стремиться автомат - это интервал 4 на строке 14: с него без импульса мы попадаем на 15, а с импульсом - на 05 - т.е. даже при появлении импульса автомат не корректирует номер интервала.

А это означает, что автомат всё таки стремиться к симметрии - чтобы оставить для возможной ошибки примерно одинаковое число шагов как вперёд так и назад.

И это всё сильно изменило поведение модели.
Результаты почти совпали с мостом (остальное можно списать на количество оборотов, на случайности...). Но самое интересное: если таблицу интерполировать с 8 на 16 интервалов на фазу - процент ошибок ещё заметно падает. А если её поправить по рекомендациям из статьи (фактически, максимально задрать инерцию ФАПЧ) то ошибки снижаются ещё сильнее. Но и это ещё не всё: если потом сравнить результаты работы разных таблиц уже на уровне декодированных секторов (т.е. выбрать сектора с корректными CRC) - это ещё немного снижает процент ошибок, причём без коллизий (не образуются сектора с одинаковыми адресами и с корректными CRC, но не совпадающие по содержимому).

Я также проделал ряд статических исследований: меня интересовало распределение ошибок (смещение импульса от ожидаемого интервала внутри фазы) в зависимости от номера трека, от угла поворота диска, от размера интервала между импульсами (101, 1001, 10001) - там всё красиво получается: теория очень наглядно ложится на практику. Заодно подтверждая, что трехзонная предкомпенсации записи у агата работает очень неплохо.
Но это много букв, цифр и таблиц.

25

Re: SuperCard Pro, FluxEngine и прочее для сдампливания АГАТовских дисков

Voldemar0 пишет:

в статье, о которой я упоминал чуть выше, автор очень чётко сообщает, что на входе канала чтения контроллера ОБЯЗАН стоять резистор номиналом около 150-300...ну максимум 1-2 кОм, второй лапой зацепленной на питание. Это нагрузка выходного каскада флопика и нужна она для подавления отражений или согласовании волнового сопротивления шлейфа, ... в общем что-то такое полезное.

На мой взгляд, этот резистор не слишком важен. Он, безусловно уменьшает "звон" на линии данных. Однако у всех более-менее серьезных схем вход выглядит как на рисунке 8 из статьи (2 триггера и элемент И-НЕ). Эта схема работает как ФВЧ и импульсы короче периода FCLK просто убирает из входного сигнала. А поскольку звон - это обычно колебания с частотой десятки мегагерц, то они тоже успешно убираются.

Такая же схема, кстати, есть в контроллере 140 К. И, что интересно, резистора на линии данных нет вообще. Сигнал заходит прямо в ИР13. Причем, если в Apple ][ резистор есть хотя бы на плате дисковода, то в ЕС-5088 его, похоже, потеряли. Я недавно чинил контроллер 140 К, заметил, что резистора нет, и попробовал его добавить на плату дисковода. Звон уменьшился, но к какому-то заметному изменению качества чтения это не привело.