Инструкция по чтению на IBM PC физического формата дискет, созданных и эксплуатируемых в составе различных ОС, комплекса "Электроника 85".
Версия описания: 1.01.
В общем, этот пост собран из ответов и ссылок в данном треде, а выправленный окончательный результат планируется разместить так же на сайте From'a и, возможно, Wiki.
Спасибо Вам, друзья, за поддержку и полезные советы которые по ходу очень помогли мне!
Успешное решение данной задачи мной было достигнуто при наличии следующих программно-аппаратных средств:
1. Аппаратная часть:
- Компьютер, например, класса Рentium 100, 32Мб ОЗУ либо ещё ниже по параметрам (80286, 80386).
- Жесткий диск, который сможет работать как на этой, так и на современной платформе, для переноса скопированной с дискет информации (Либо настроить быстро-сеть по 0-модему через COM-порты http://old-pc.info/manuals/link.htm).
- Качественный дисковод 5,25" (1/4") определяемый в БИОСе ПК, например ёмкостью 1,2 Мб. Для доступа к A: дисковод нужно подключать на интерфейсный кабель после скрутки.
Рабочая сторона дискеты: 0.
Выходной размер файла .DSK с дискета на 80 дорожек: "409 600" байт = 80 дорожек * 10 секторов * 512 байт.
Выходной размер файла .DSK с дискета на 40 дорожек: "204 800" байт = 40 дорожек * 10 секторов * 512 байт.
Формат файлов .TD0 предполагает упаковку считанных данных, поэтому его итоговый размер будет различным.
Параметр "качество" дисковода играет важную роль только при необходимости считывания "битых" дискет.
2. Софт:
- MSDOS v.6.0/6.22 eng, для удобства рекомендуется сразу установить на жесткий диск (FAT32).
- Менеджер/просмотрщик файлов (опционально, естественно) VC или NC.
- 800.com v.1.40 (драйвер нестандарных форматов дискет) - прописывается без параметров прямо в autoexec.bat и стартует сразу при загрузке DОС.
- Sydex Teledisk версии 2.23. Работает в двух режимах "D - Direct" (Предпочтительней. Обеспечивает прямой доступ к оборудованию, быстрый, считает всё что сможет.) и "B - BIOS" (работает медленнее, при первой же ошибке чтения прекращает работу, в этом случае считанные файлы будут короче по размеру).
- AnaDisk v.2.04 от той же фирмы (видел оригинальный и патченый вариант под новые машины, сам пользовался последним). http://dwk-3.narod.ru/Diskette_Read.htm.
- td2dsk v.0.1.0 - конвертор дампа физического формата записи в посекторный имидж дискета. http://www.emuverse.ru/wiki/Teledisk.
3. Ход работ по чтению дискет:
Когда весь стенд в сборе, последовательно запускаем:
3.1. "TELEDISK.EXE" (DOS): После прогона заставки, в самой программе прошагиваем: "Copy Disk to File" -> "Source Diskette Unit - A:" -> "Check Diskette for Data - Side 0" -> "Data compression method - Normal"" -> "Diskette Controller Interface - Direct" -> "Enter destination file name: - _____ - я обычно вводил: ' "имя метки дискеты"-"порядковая цифра если у меня архивные дискеты дублируются", расширение ".td0" ' Teledisk добавит сам." -> "Прога напишет Examining A: распознает параметры дискеты, обычно как: дорожек 80/40, 1-10 секторов на дорожку, 512 в секторе" -> "Потом (здесь не пугаться) в красном окошке попросит ввести комментарий к архиву (я обычно ничего не вводил) и сразу нажимаем ESC" -> " 'Стрелка вниз' вверху экрана пробежит по всем 80/40 дорожкам и сохранит имидж в файл".
Если будут ошибки на дискете программа сообщит об этом записями в правой части экрана.
Если для переноса файлов между Э-85 и IBM-PC Вы решили использовать первую попавшуюся б/у дискету, то скорее всего, она за свою жизнь уже успела стать отформатированной на двустороннем дисководе, и уж наверняка у неё на поверхности пооставались фрагменты прежней файловой системы... Неуправляемый Teledisk обязательно будет заглядывать на вторую сторону (на прогресс-баре будет синхронно появляться 'стрелка вверх'). В этом случае чтение будет происходить в два раза медленнее и в ошибках будет что-то похожее на 'Head 1, "неожидаемый ID сектора"' (именно поэтому и рекомендуется всегда принудительно указывать 'Side 0' перед началом чтения, - тогда найденное лишнее с другой стороны в выходной дамп не попадёт, но вот "дорожки 81/82" на конце диска - запросто).
Пока дискета читается предлагаю на конверт дискеты аккуратно наклеить цветной снимаемый липкий стикер на котором записываем метку дискеты (имя тома), имя файла на жестком диске и примечания (если есть ошибки), отработанную дискету уже в конверте фотографируем, что бы потом, на обычном РС, можно было создать директорию по имени метки дискеты, присвоить фотке-картинке то же самое имя дискеты - так, в итоге, набор имиджей, в процессе последующей обработки, визуально воспринимаются намного легче.
3.2. "td2dsk.exe *.td0" (Win32 консольное приложение) - в том же каталоге на выходе получаем *.ODI, переименовываем в *.DSK. Просматриваем его на предмет что получилось, ищем где-то в начале идентификатор диска "DECFILES11A/DFCFILES11A" для формата ODS1 FILES-11, "DECRT11A" для RT-11, "FODOS", etc. Так же сверяем метку дискеты (она там рядышком одинаково будет прописана в одном/двух местах). При необходимости корректируем информацию об общих данных дискета.
3.3. "ANADISK.EXE" (DOS) - в наших целях может использоваться чисто для контроля для нормально считываемых (без ошибок чтения) дискет: если у нас есть файл считанный Теледиском в td0, то его переконвертация с помощью td2dsk.exe в итоге создаст файл *.ODI, который после ручного переименования в *.DSK будет побайтово равен тому что сразу выдаст AnaDisk. Т.е., в этом случае, Теледиск полностью достаточен - т.к. из него можно потом будет сделать и посекторный образ и аналогичную живую дискету.
Если же дискета битая или "грязная" и считывается с ошибками по каким-либо секторам, то "td2dsk.exe", при попытках создать самостоятельный посекторный образ из такого .TD0, вылетает с сообщением: "Ошибка: Заголовок сектора содержит неверные данные!". Это значит, что с такого образа .TD0 можно будет создать только другую реальную дискету с мусором в проблемных секторах. Поэтому в спорных случаях при помощи AnaDisk копируем дамп дискеты в посекторный DSK и потом разбираемся с ним ручками в HEX-редакторе, обрезаем по нужному размеру, проверяем на валидность в соответствующем эмуляторе или анализаторе логических форматов.
Процедура чтения здесь следующая: "DUMP" -> "Diskette Unit - A:" -> "Dump which sides? - Side 0" -> "Include sector ID information - No" -> "Enter name of file to recieve dump - _____" (введите имя файла с расширением) - "Begin dump at what cylinder? 0" -> "End dump at what cylinder? 79" -> "Прога напишет Examining A: распознает реальные параметры дискеты и потихоньку сохранит имидж в файл (даже если задать большее количество дорожек чем реально есть на дискете, программа их всё равно проигнорирует)".

