Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Старый софт » Запись FDD-образов формата NSI |
<<Назад Вперед>> | Печать |
misha_weba
Newbie
Откуда: СПб Всего сообщений: 30 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 апр. 2017 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 28 мая 2017 0:23 Сообщение отредактировано: 28 мая 2017 0:38
Приветствую. Потянуло тут слегка в IT-археологию. Решил попробовать научиться писать на флоппи-носители зело нестандартные образы дискет для CP/M. Нашёл сайт с таким софтом: http://www.classiccmp.org/dunfield/img/index.htm Задача сделать 3.5"-дискеты такого формата, чтобы их читал CP/M, запущенный на Sony SMC-70GP Насколько я понял отсюда, в таких случаях раскатка образа делается спецсофтом типа 22disk, NSI.com или ImageDisk , умеющими создавать нестандартную низкоуровневую разметку на дискете. Я попробовал с помощью ImageDisk считать IMD с самой CP/M - получилось. Сведения о формате от DiskImage: 0/0: 250k DD - 16 sectors of 256 bytes + G1:32 G2:50 / 70 tracks 0/1: Single-sided 0/0: Single-step 1120 sectors (658Compressed) А вот с файлами формата NSI вышел облом-с - я так понимаю, формат у образов NorthStar свой, и работать с ним умеют только утилиты типа NSI.com / NST.com (ImageDisk их не ест). Первая просто позволяет смотреть / менять файлы внутренней ФС в файле-образе, и это работает, а вот вторая должна по идее работать с дисководом. Однако у меня эта тулза при попытке записи/чтения образа по команде nst.com RS file.nsi сперва пишет приветствие: NorthStar Transfer utility - Mar 24 2007 - Dave Dunfield a через 2 секунды вываливается с сообщением "Target not responding", при этом дисковод никак не реагирует - индикации активности / шума привода нет. Утилита TESTFDC 1.16 при попытке проверки такой командой: testfdc A: просто зависает на первом же этапе "250k Single-Density: Format". Никаких обращений к флоппику при этом не видно. Вопросы: - можно ли как-то иначе записать данные образы формата NSI, ещё какими-либо тулзами ? - существуют ли конвертеры из NSI в формат ImageDisk ? - если не стоит задачи развернуть образ 1-в-1, а просто извлечть файлы из NSI-образа и записать их на дискету нужного формата, решаемо ли это средствами 22disk / DiskImage, без использования виснущего у меня NST.com ? - возможно ли такое, что на моём железе ( контроллере FDD / дисководе ) в принципе не получится записать подобное ? P.S. Стенд - Celeron 633 / 384 Mb RAM / Chaintech 6VTA3 / FDD 1.44 80-track / MS-DOS 6.22, HDD - 64 Mb RAM-диск, загрузка по PXE сетевой картой с PXE-сервера. Буду благодарен любым советам / подсказкам по этим чудесатым форматам. |
elias137
Full Member
Откуда: 2:5020 Всего сообщений: 288 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 авг. 2010 |
KryoFlux |
misha_weba
Newbie
Откуда: СПб Всего сообщений: 30 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 апр. 2017 |
Ух, в моём случае это весьма суровое решение. То есть чисто софтверно это не решаемо, нет шансов на надёжную запись ? Или стоит ещё поковырять 22disk / ImageDisk ? |
misha_weba
Newbie
Откуда: СПб Всего сообщений: 30 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 апр. 2017 |
Так, я ещё немного пошаманил и смог с помощью IMage Disk не только считать, но и записать образ размером 160 Кб, отформаченный под CP/M. Сделал контрольное считывание копии в отдельный файл образа, и после ручной правки даты/времени создания в хекс-редакторе у дампов совпали MD5-суммы, так что по железу принципиальной непреодолимости нет - пишутся / читаются образы на 160 Кб имадж диском прекрасно на моей системе. А вот nst.com у меня не работает ни в какую, как и testfdc =(. Возможно ли извлечь файлы из NSI и как-то собрать из них IMD-образ под тот же формат дискеты 160 Кб ? У меня получилось с нуля создать пустой NSI и закидывать туда файлы, а вот разобраться с извлечением не получается - nsi.com выдает кучу **Warning**, с ссобьщениями вида " `-SYSTEM-` is double mapped with `DISKETTE` ", а вот извлечь что-то внятное не получается - при попытке сделать, к примеру, nsi butler.nsi GET DISKETTE::C:\dump1 полученный файл dump1 байт-в-байт совпадает с исходным образом, md5 не даст соврать. Ещё вопрос - в современных линуксах есть пакет cpmtools, который умеет с помощью mkfs.cpm создавать файловую систему CP/M на заданном блочном устройстве. Я сделал такую тестовую ФС, но полученный файл не имеет в своей структуре ничего общего ни с образом IMD (свой заголовок и комменты в начале файла), ни с образом NSI (заполнители 0x20), за исключением байта-заполнителя 0xE5. Кроме того, пустой NSI при создании с помощью imdcmt вообще только заголовок IMD и содержит. По софту кто ещё чего может подсказать ? P.S. KryoFlux решение конечно крутое, но для моего случая явно избыточное, да и мне интересно разобраться именно с форматами образов и возможностями их конверсии или как минимум корректного извлечения/переноса файлов между образами. Заранее спасибо. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 28 мая 2017 22:56 Сообщение отредактировано: 28 мая 2017 22:59
misha_weba Взгляните на старый топик topic/3000 Если формат дискеты MFM - то ее можно писать-читать на контроллере обычной PC с любой длиной сектора, секторов на дорожке и т.д. Для работы с файловой системой CP/M есть набор утилит cpmtools: http://www.moria.de/~michael/cpmtools/ (упс, уже вижу что вы в курсе) Только надо определить формат или взять готовый. Заполнение пустых секторов может быть любое. E5 критично только для секторов области каталога. |
misha_weba
Newbie
Откуда: СПб Всего сообщений: 30 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 14 апр. 2017 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 июня 2017 20:02 Сообщение отредактировано: 5 июня 2017 20:09
Добрый день. Подведу небольшие итоги своих изысканий. Как оказалось, несмотря на принципиальную возможность записи дискет малых размеров на современных дисководах с последними контроллерами (где дисковод ещё был), особенности ряда ПО могут не позволить сделать это легко и быстро. Я использовал три разных машинки: Celeron 1.7 / Elitegroup L4VXA2 (чипсет VT8235), Pentium 3 / Chaintech 6VTA3 и Celeron 433 на какой-то брендовой материнке под маркой compaq (тот самый комп из статьи для конкурса http://www.phantom.sannata.ru/konkurs/2017/kt1710.shtml ). Ничего древнее у меня не нашлось, увы. Как я уже писал, IMage Disk умеет писать/читать сложные образы с нестандартными секторами и разметкой, но он работает на уровне посекторных копий с учетом всякой физики привода, и совершенно не обрабатывает внутренности файловых систем. Но есть возможность конверсии IMA-файлов или никсовых dd-образов в/из IMD. Работает в чистом DOS. Естественно, при конверсии в IMD надо указывать какой физический формат носителя будет применен для IMD-образа, поскольку dd содержит только подряд записанные байты в сыром виде со всех секторов подряд, без данных о физической разметке. Что касается cpmtools (я использовал версию из репозитория 16.04-й убунты), то тут мне удалось создать пустой dd-образ с файловой системой cp/m (mkfs.cpm ./image.dd , на удивление простая разметка у пустой ФС оказалась), и удалось извлечь файлы из IMA-образа, полученного от imagedisk. А вот записать файлы внутрь образа не вышло - хоть cpmcp и возвращала на соответствующую команду код 0, в файле образа ничего не менялось. Еще одна серьезная засада - образ не монтируется привычным нам способом вообще (никаких mount.cpm и fuse-магии), и никакие стандартные файловые менеджеры и тулзы не прокатят - работа идёт по-файлово, только через cpm-утилиты. Так что извлечение файлов из dd-образа cp/m - либо по одному, либо писать скрипты для связки cpmls + cpmcp. Что касается NSI (а нужные мне образы именно в этом формате), то тут, по закону подлости, ситуация обратная - удалось создать пустой файл и даже удалось добавить в него файлы, а вот извлечение файлов из текущих NSI-образов сыпет ошибками и ничего не извлекает. Самый же прямой и очевидный шаг в виде записи NSI прямо на носитель через nst.comу меня обломился на всех трёх машинках - дисковод даже не включает индикацию, утилита виснет. Также я попробовал 22disk. Там очень много форматов дискет 5,25, а вот под 3,5 низкой плотности почти ничего и не было (возможно, у меня неполная версия этой шароварной проги). Да и попытка что-либо записать даже в ином формате у меня тоже обломилась - этой утилите, как и NSI, предположительно нужен определенный флоппи-контроллер адекватного уровня древности с соответствующей совместимостью. Похоже, даже имея образы "античных" дискет, извлечение данных из них может потребовать либо наличия аутентичного железа (учитывыя древность CP/M, соответствующих годов), либо очень тонко настроенного BOCHS, либо написания нового вспомогательного софта, либо использования серьёзных аппаратных решений типа выше рекомендованного KryoFlux. У меня нет срочности по этому вопросу, поэтому буду посматривать у знакомых античные машинки или поиграюсь с эмуляторами, если будет время и желание. Огромное спасибо всем, кто откликнулся. Надеюсь, эта краткая заметка будет кому-нибудь полезна. |
<<Назад Вперед>> | Печать |
Полигон-2 » Старый софт » Запись FDD-образов формата NSI |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |