Вот здесь http://schorn.ch/altair_6.php лежит куча файлов с расширением DSK, содержащих интересные мне компиляторы ЯВУ и все общеизвестные прикладные пакеты для CP/M. Проблема в том, что ни 'Disk Analyzer', ни 'Stein Blume' не признают этот CP/M-формат. Кто-нибудь знает где взять утилиту, чтобы вытащить файлы из этих DSK-файлов?
Сам формат не является полной копией секторов. А именно, через каждые 128 байт вставлено 9 байтов E5 (возможно в этих 9-ти байтах в реальном секторе была служебная информация, типа CRC сектора и т.п, но сдуру её не удалили, а заменили на E5). Используя файл ODI для дискеты ОРИОНА легко узнать какие файлы хранятся в конкретном DSK-файле. Для этого в текстовом редакторе UltraEdit (естественно в HEX-режиме) я беру блок кодов начиная с адреса 66С3 и переношу 2000H байтов (с заменой) в ODI-файл дискеты ОРИОНА на адрес 5000.
Но это ещё не всё. Далее надо вручную (естественно не тупо вручную, а командой редактора "найти и заменить") в этих 2000H байтах найти 9 идущих подряд байтов E5 и удалить (т.е командой замены заменить на ничто). Иногда в каталоге встречается подряд 128 байт E5 и следом ещё 9 байтов E5, тогда можно удалить все 137 байтов E5, что сдвинет каталог на лог.сектор в 128 байт. Такая переделка приводит CP/M каталог к нормальному виду. После такой обработки каталога SteinBlume выводит каталог диска и можно узнать, что находится на исходном DSK-диске. Но, естественно, самих данных с диска DSK на диске ODI нет. Это просто способ узнать содержимое DSK-дискеты и решить стоит ли дальше трахаться, чтобы достать оттуда файлы.
Теоретически можно написать утилитку и всю DSK-дискету обработать так, чтобы удалить 9 байтов E5 после каждых 128-ми байтов. Тогда получится точная посекторная копия исходного диска. Останется узнать какой на дискете был размер CP/M-блока (видимо 2К, т.к исходный диск похоже был 800К) и сколько системных треков (похоже тоже 4). Далее переименовав файл в ODI и записав в ИНФО-блок в начале файла параметры дискеты (естественно одновремнно верно сосчитав и подставив КС ИНФО-блока), получится дискета в стандарте ОРИОНА в каком-то формате. И тогда файлы можно будет просто скопировать с помощью 'Stein Blume'.
Но не хочется с этим трахаться, вдруг есть способ попроще.




Ответить с цитированием