Плата Greaseweazle F7 Plus выступает в роли флоппи-контроллера, источник
Есть много хороших современных решений для чтения данных со старых дискет и жёстких дисков. Пожалуй, одно из лучших — Greaseweazle: очень функциональная система с открытым железом, исходным кодом, недорогая. На форумах вам с радостью помогут дружелюбные фанаты. Плата подключается напрямую к дисководу, заменяя собой флоппи-контроллер — и считывает данные в малейших деталях. Работает на дискетах с любой защитой от чтения.
Но что делать, если Greaseweazle не может прочитать биты на магнитной поверхности — и сообщает о повреждённых данных? Что, если на дискете материал исторической важности, исходный код в единственном экземпляре или культовая игра? Неужели всё потеряно?
Совсем нет. Известный хакер Крис Эванс с инженером Филом Пембертоном протестировали новый способ восстановления данных с флоппи-дискет, используя осциллограф. В частности, они вернули к жизни игру «Ферма старого Макдональда» для BBC Micro. Подробнее см. в блоге Криса Эванса, здесь краткий пересказ, как это было сделано.
В 1980-е годы руководства пользователя и руководства для обслуживания для компьютерных накопителей были гораздо информативнее, чем сейчас. Например, вот страничка из технического мануала для TEC FB-50x:
Скриншот из технического руководства, стр. 68
На страничке приводится пошаговая цепочка электронных преобразований от магнитной считывающей головки до считываемых данных. Как видим, биты 0 и 1 — это попытка угадать верное решение по совершенно хаотическим аналоговым всплескам напряжения на головке.
Концептуально алгоритм считывания довольно простой. Однако инженеры прошлого всё же придумали несколько схем кодирования (и раскодирования) сигнала: MFM (использовались в PC, Amiga, BBC Micro ADFS) и GCR (использовались в Apple II и Commodore 64). Дискеты BBC Micro DFS работали по самой простой схеме FM. В ней дисковод вообще не отягощал себя какой-то схемой кодирования, а просто выдавал импульсы по счётчику (таймеру).
Данные: 0 0 1 0 1 1 0 1 0 0 0 1 1 0 Код: 1010111011111011101010111110 Таймер: 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Восстановление исходного кода
Крис Эвансом с Филом Пембертоном смогли восстановить исходный код культовой игры Repton 3, игру «Ферма старого Макдональда» (Old Macdonald's Farm) а также ещё несколько ценных файлов для компьютера BBC Micro.
Они получили дискеты от нескольких хранителей исторических ценностей, но все они были повреждены временем. Greaseweazle выдавал ошибки CRC.
Эмулятор HxC Floppy Drive Emulator, скриншот с официального сайта
Чёрные горизонтальные полосы — это тайминги между импульсами с дискеты. Чем они тоньше, тем более чёткий сигнал. Здесь видим, что качество отличное, то есть деградация дискеты ещё не дошла до такой стадии, когда всё сливается в кашу. Тут просто проблема с единственным участком. Что там может быть?
Внимательный осмотр показал, что кто-то неудачно помял дискету.
Инженеры аккуратно выровняли магнитную поверхность. К сожалению, это не помогло улучшить сигнал. Специалисты высказывают предположения, что дискета была записана уже после формирования вмятины.
Ничего не оставалось, как применить научное оборудование, которое Крис Эванс использует в своих цифровых расследованиях. На фотографии — любительский осциллограф Siglent SDS 1104X-E, подключённый к плате Greaseweazle. Она считывает данные с дисковода TEC FB-50x, в котором крутится дискета с исходным кодом Repton 3.
Осциллограф Siglent SDS 1104X-E. Фото: Dave Jones
Тут Greaseweazle только для управления, но не для анализа. Он просто включает движок дисковода, а считывание данных происходит напрямую на осциллограф по проводам, подключённым к дисководу на тестовые точки TP3 и TP4, как указано в техническом мануале (см. скан страницы в начале статьи).
Производительности этого осциллографа начального уровня достаточно, чтобы загрузить целую дорожку с дискеты (время считывания 200 мс) во внутреннюю память на частоте 25 Мсэмплов/с. Чувствительности 500uV/div хватает, чтобы различить пики в записи. Пара пиков по 4 микросекунды обычно соответствует "1", а пик на 8 микросекунд — это "0".
Конечно, без проблем не обошлось. Оказалось, что разные дисководы выдают разный аналоговый сигнал: например, у Mitsubishi сигнал более чистый, у TEAC присутствует странный высокочастотный шум. А лучше всех проявил себя дисковод TEC FB-502, хотя он был старше Mitsubishi и остальных.
Вот как выглядит ASCII-символ «1» (00110001), первый символ в названии диска (1187V1.0), на разных дисководах:
Mitsubishi MF-503 | |
Mitsubishi MF-504C | |
TEAC FD-55FV (сигнал отфильтрован) | |
TEC FB-502 | |
Chinon F-051MD |
Чтобы усилить магнитный сигнал с дискеты, Фил подстроил резистор для управления скоростью вращения, и дискеты разгоняли со стандартной скорости 300 RPM до 400 RPM. Естественно, прочитать данные становилось легче — законы физики (вырастает скорость изменения направления магнитного потока)!
Звук записи на дискету 5,25", замедленный примерно в 100 раз (20 секунд вместо реальных 0,2 секунды)
Но вернёмся к осциллографу. Получив аналоговый сигнал с дисковода, хотелось бы применить какой-то алгоритм для автоматической расшифровки этого сигнала. Инженеры решили попробовать такой вариант: найти начало сектора, и непрерывно отсчитывать от него по 8 микросекунд аналогового потока. Если напряжение растёт или снижается на протяжении всего участка, это "0". Если напряжение изменяется сначала в одном направлении, а потом в другом, то это "1". Затем повторная синхронизация к ближайшему пику.
Обработка сигнала в опенсорсном звуковом редакторе Audacity. Фрагмент слайда из презентации Криса Эванса
Несмотря на хаотичные волновые формы, алгоритм восстановил все биты в «потерянном» секторе с той дискеты.
В самых трудных случаях форму сигнала с осциллографа исправляли вручную в редакторе FloppyControlApp. Немного похоже на то, как ретушируют (восстанавливают) старые фотографии:
FloppyControlApp
Этот инновационный метод позволил получить исходный код, который безуспешно пытались восстановить разными методами несколько лет! С помощью осциллографа прочитано 100% кода со всех дискет! В том числе игра «Ферма старого Макдональда». Это безусловная удача для цифровых археологов.
Всех владельцев уникальных, ценных и редких дискет просят ни в коем случае не запускать их на случайных непроверенных дисководах, потому что это может повредить магнитную поверхность.
Крис Эванс и Фил Пембертон очень рады, что нашли способ восстанавливать данные с дискет, которые невозможно прочитать никаким другим способом. Они рады помочь коллекционерам в восстановлении информации с редких носителей.
UPD. В комментариях дали ссылку на проект по чтению лент 3/4 от советского компьютера БЭСМ-6 с помощью видеомагнитофона.
Считывающая головка видеомагнитофона
Облачные VDS от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
REPISOT
А если бы землю цепляли не крокодилом, а к земляному кольцу щупа, то высокочастотных шумов, вероятно, не было бы. Надо было только петли на проводах сделать под щуп.