SoftLight, благодарю за отзыв.
Вообще, парсинг структуры доржки я сделал с заделом на будущее. Помимо распознавания амижных секторов (которые идут с двойным A1, а не с тройным), ещё пытаюсь восстанавливать межсекторную структуру, синхронизируя GAP коды (0x4E) и 12 ноликов перед A1A1A1 (обычно синхронизируют байты ПОСЛЕ A1, а не до). UDIшки, которые создаются с живых дисков (а не конвертацией с логических образов типа SCL/TRD/FDI), грешат отсутствием синхронизации межсекторного пространства. В принципе оно и не требуется - на то они и межсекторные. Но всё-таки при просмотре содержимого дорожек в самом файле (или через какой-нибудь браузер образов, тот же ZXDS) лучше когда все поля чёткие. Возвращаемый этим парсером каталог секторов имеет отсылки на начало каждого сектора внутри дорожки, так что будет совсем несложно собрать из них любой логический формат (тот же TRD, FDI, ADF, IMG).
Когда доделаю UDI->HFE, можно будет UDIшки на физический носитель записывать (если HFE->SCP преобразовать через HxC, а SCP записать через тот же greaseweazle). Раньше, помню, такой путь был просто невозможен.
Сейчас при загрузке HFE, сектора с ошибкой CRC помечаются восклицательными знаками, обрезанные сектора - обратным слешем и количество байт в квадратных скобках (обрезанные сектора могут быть в конце диска, или с какими-то хитрыми защитами типа sector in sector). Пока они достаточно быстро проскакивают, можно пропустить и не заметить. Потому планирую сделать "терминальный" интерактивный режим при импорте-экспорте, с возможностью сохранения списка нестандартных треков и возможностью просматривать их структуру вербозно. В перспективе - подтягивать отдельные дорожки с "железа" (это когда уже взаимодействие с железом будет).
По правде говоря, у меня очень скромная база специфических образов дисков с защитой, на которых можно было бы все это дело отлаживать. Поэтому если попадётся что-то нестандартное, нераспознаваемое, будет интересно его пощупать и подфиксить тулзу.




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