Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Разное (http://zx-pk.ru/forumdisplay.php?f=90)
-   -   Чтение MFM винчестера в образ (http://zx-pk.ru/showthread.php?t=12191)

KALDYH 26th February 2010 23:17

Чтение MFM винчестера в образ
 
Постоянно всплывает этот вопрос, и я решил выделить его в отдельную тему. От многих старых машин сохранились MFM винчестеры с интересным софтом. В основном интересуют ДВК и Электроника-85, хотя это могут быть и отечественные PC-клоны. Просто скопировать их содержимое получается не всегда - либо нет родного железа, либо оно не работает, либо операционная система не позволяет. Поэтому встает вопрос - как считать винт в образ на обычном PC? Причем желательно получить образ в виде прямой посекторной копии, чтобы его можно было легко разобрать на файлы или подсунуть эмулятору.

Во-первых, нужен контроллер. Распространенные MFM контроллеры на 8-бит ISA шину не подходят. У них собственный биос на борту, который хранит настройки на самом винчестере. Такие контроллеры работают только с винтами, отформатироваными на нем же. Нужно брать контроллер, у которого нет дополнительного BIOS и который работает с настройками CMOS Setup материнской платы. Практически все они совместимы по командам с WD1003, на котором основан IDE интерфейс. Узнать подробнее о имеющемся контроллере можно по справочнику Total Hardware: http://museum.ttrk.ee/th99/

Во-вторых, подходящий контроллер будет конфликтовать с IDE контроллером, то есть считанный образ некуда будет записать. У меня Adaptec ACB-2312, и я так и не смог заставить его работать в паре с IDE. Если кто-либо заставит работать подобный контроллер в паре со вторым каналом IDE, напишите. А пока выходом будет использование SCSI контроллера с винчестером либо перекидывание файла по локальной сети.

В-третьих, чем создать сам образ? Я искал программку для DOS, которая могла бы сделать прямой посекторный образ, но, похоже, таких в природе нет. Быть может, кто-нибудь напишет подобную? Я не умею. Вроде бы нужный функционал имеет утилита dd в Линуксе, но я с Линуксом совершенно не в ладах. Прошу знатоков создать подходящую сборку на дискетке специально с этой целью.

Andrnow 27th February 2010 00:01

Я уже думал об этом.
Где взять команды низкого уровня контроллера МФМ? Если найдете описание, то подключить контроллер к ЛПТ порту современного компьютера можно будет без проблем. Софтину, думаю, тоже кто-нибудь напишет.


ЗЫ: А подробное описание интерфейса МФМ винчестеров у кого ни будь есть?

KALDYH 27th February 2010 01:36

Quote:

Originally Posted by Andrnow (Post 260568)
Где взять команды низкого уровня контроллера МФМ?

Описание на чип WD1010, с которым совместимы подходящие контроллеры: http://www.datasheetarchive.com/WD1010-datasheet.html
Спецификация на IDE интерфейс, который базируется на командах WD1010: http://www.repairfaq.org/filipg/LINK...ml#IDETECH_008
Паспорт КЖД ДВК: http://pdp-11.ru/oldcomp_vitaly_krem.../doc1/kgd.djvu
Quote:

Originally Posted by Andrnow (Post 260568)
Если найдете описание, то подключить контроллер к ЛПТ порту современного компьютера можно будет без проблем.

Как-то шибко сурово... Есть же готовая ISA карта, есть описание всех ее регистров и команд. И никакого ЛПТ не надо.
Quote:

Originally Posted by Andrnow (Post 260568)
ЗЫ: А подробное описание интерфейса МФМ винчестеров у кого ни будь есть?

Если нужна аппаратная реализация интерфейса, вот паспорт на винты ST-506/412, где он, собственно, и появился: http://www.bitsavers.org/pdf/seagate...eMan_May82.pdf

marinovsoft 27th February 2010 11:56

KALDYH, если еще актуально, напомни, как в следующий раз пересечемся. Передашь мне винт и контроллер - сдамплю и напишу фак.

KALDYH 27th February 2010 12:10

Quote:

Originally Posted by marinovsoft (Post 260645)
Передашь мне винт и контроллер - сдамплю и напишу фак.

У меня нет винчестеров, с которых нужно снять дамп. Я прорабатываю этот вопрос для других. Я передам контроллер и винт от Pro-350, а ты напиши фак и выложи его сюда.

anasana 27th February 2010 16:58

Супер, - очень нужная тема!

Мои мытарства:
I. В эмуляторе Э-85 (т.е. если есть живой реал) я тестировал такой вариант - сниятие имиджа винта через загрузочную дискету Venix 1.0 от Pro350 (VNX1XFER.TD0) командой
dd if=/dev/rw0.all of=/dev/rf1 bs=512 count=790 skip=0
if - откуда читать: весь винт 0, of - куда писать: дискета в дисководе 1, bs - размер сектора: 512, count - количество секторов: 790, skip - начать с начала диска: 0 или продолжить с ХХХ (например сдедующая порция).
эта операция записывает на любую инициализированную дискету формата DZ просто подряд запрошенные сектора с источника.
Пока из глюков:
1. Терпимо - ожидаемое значение count=800 - чтобы забить каждый сектор дискеты целиком не канает, т.к. при значениях > 790 пишет ошибку "write: I/O Error" т.е. почему-то последние 10 секторов на дискете остаются нетронутыми/незаписываемыми - целиком 80-я дорожка.
2. Плохо - если сравнивать то что сбросилось на дискету с содержимым исходного HDD, то полностью совпадают данные первых 98 секторов, почему перемешаны данные дальше мне пока не ясно (может решиться анализом логов обращений к накопителям).
3. Для дампа винта 5 Мб нужно хотя бы 7 живых дискет что бы не запутаться при сборке образа.

II. Просто мысли по организации внешнего стенда:
Если взять правильный сквозной контроллер MFM ISA 16-bit (у меня он в получился комплекте с i386 с настройкой параметров двух винтов вручную через БИОС материнки), HDD0 - Сигейт ST-225 на первом канале контроллера будет как диск С: (20 Мб), дисковод с системной дискетой, загрузиться с FDD, выполнить "fdisk" + "format c:", выключить, подключить нужный MFM винт (пусть от Электроники-85) на второй канал контроллера, загрузиться с FDD, запустить ПРОГРАММА_ПИШУШАЯ_ПОСКТОРНО_ДАМП_HDD1 на диск С:, передать созданный файл-имидж на современный ПК через нуль-модем по COM/LPT из Нортона. Если второй диск большой, то дампить по кускам за несколько заходов. SCSI-контроллер и сеть под DOSом тоже хороший выход, но и они со своими приколами... Зато если их побороть то всё носится очень быстро :).
Из проблем:
- Передача через порт думаю будет небыстрой (терпимо).
- Пока нет программы чем читать. Как вариант можно попытать DOS MHDD v.4.6 - команда TOF (Read sectors to file - создание образа диска, указываеся начальный, конечный секторы, а также имя файла для вывода. Битые сектора заполняет нулями). Либо "phdx.zip" (качать по ссылкам с гугла) - клиент-сервер имиджей дисков под DOS через LPT-порт.

P.S. KALDYH, выменял я таки в Политехе гермоблок с мордой, двигателями и салазками от девайса ИЗОТ СМ-5508 (10 Мб, Болгария).
На жестком предположительно установлен ДЕМОС для Электроники 85 (покупался в Москве), рабочая среда программирования - С.
Из недостатков - как и говорил:
1. Плохо - нет контроллера к банке + откусан разъемчик одного кабеля (фотки).
2. Хуже - винт лежал на виду на сейфе в учебной лаборатории, но т.к. внешний вид устройства из серии "візьмешь в руки - маєшь вещь", то думаю студенты его лет 10 изрядно крутили, но друг в друга не бросали. Видимых повреждений нет, его не разбирали. Почтой передавать немного стремно, но т.к. хуже ему от этого думаю уже не станет, переслать?

Panther 27th February 2010 17:24

1 Attachment(s)
Мой опыт:

Винчестеры компьютера включаются на второй IDE-канал, дисковод переключается на MFM-контроллер. Встроенные в материнку первичный IDE и FDC отключаются. Грузимся с дискеты, образы пишем (и вся остальная работа) на харде.

Программы - пробовал TestDisk, она позволяет снять образ раздела. Но у меня ни один советский хард вообще не заработал, поэтому как она себя с ними поведет, сказать не могу.

Еще есть маленькая старая утилитка, в ней есть редактор диска, тесты и снятие образа. См. вложение.

xailar 27th February 2010 17:42

anasana, есть плата контроллера для винта - думаю от ИЗОТ СМ-5508 , если будете высылать , могу добавить для KALDYNa. а такой целый винт уйдет за границу

anasana 27th February 2010 17:51

xailar, спасибо!
Соберётся кворум, - попробуем определить самый оптимальный маршрут.

Panther, а прикольную ты утилиту расшарил (Disk.zip).
Сейчас в виртуальной машине сделал ею имидж дискеты (дамп "винта" мой комп мурыжит очень долго что малоиграбельно).
Команды "Копировать" -> "Диск в файл" -> "Укажите физический номер диска (А, В, С)" (здесь выбрать буквой диск D не получится никак, - возможно это хитрая метафора не логического диска, а физического устройства HDD0, хотя в эмуляторе я завел их оба раздельными). Заполняем желаемый диапазон (все максимальные значения указываются и контроллируются самой программой в зависимости от выбранного источника HDD или FDD и их превысить у меня не получилось):
"Выберете начальный адрес диска
Цилиндр 0000 Головка 0 Физ. номер сектора 01
Выберете конечный адрес диска
Цилиндр 0079 Головка 1 Физ. номер сектора 18".
Подтверждаем, вводим имя файла куда сохранять "d:\fdd.dsk" (DOC разделы и С и D нормально подошли), подтверждаем, ждем. Готово.
Размер исходного файла-образа дискеты 1474560 байт.
Размер полученного файла в витруалке - 1465856 байт.
Содержимое имиджа и исходной дискеты - до последних записанных байт 1 в 1 совпадают, но последние 8704 байта отчего-то вообще потеряны. Пробовал разными вариантами, надо будет это просто иметь в виду при использовании. Конец жесткого диска обычно пустой, так что это как бы нестрашно, можно добавить ручками. Причина может кроется в используемом "Portable Microsoft Virtual Pc 2007". Под DOSBox например "С" вообще не пошло, а дисковвод распознало как: 0-39 дорожек, 0-1 сторон, 0-9 секторов. На реале думаю должно работать всё нормально.

L Juriy 27th February 2010 22:09

1 Attachment(s)
Есть вот такая утилита
Attachment 16354


All times are GMT +4. The time now is 02:16.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.