Blame | Last modification | View Log | Download | RSS feed
.FDI файлы----------Поскольку по ряду причин существующие форматы файлов-образов дискетне подходили (отсутствие документации, а главное - невозможность расширенияформата для записи полных образов треков, областей с физическими дефектамии т.п.), то пришлось создать свой собственный формат. Не могу гарантировать,что расширение *.FDI не используется еще кем-то для других целей; поэтомуоговорюсь, что данное описание актуально только для файлов, создаваемыхпрограммой MAKEFDI и используемых программой SP_EMU (Spectrum debugger).------------------------------------------------------------------------------Смещение Длина поля Описание------------------------------------------------------------------------------0 3 Ключевая метка 'FDI'3 1 Флаг защиты записи (0 - write enabled, 1 - write disabled)4 2 Число цилиндров6 2 Число поверхностей8 2 Смещение текста (короткий комментарий к диску)A 2 Смещение данныхС 2 Длина дополнительной информации в заголовке. В этой версии - 0E "Длина дополнительной информации"Формат еще не определен (резерв для дальнейшей модернизации)E+"длина дополнительной информации"???Область заголовков треков. Здесь собрана вся информация оформате дискеты. Эта область должна содержать не меньше"Число цилиндров"*"Число поверхностей" заголовков. Заголовкиидут в порядке Cyl 0 Head 0, Cyl 0 Head 1, Cyl 1 Head 0 и т.д.Формат заголовка описан ниже."Смещение текста"???Комментарий к диску.Конец комментария - нулевой символ.MAKEFDI при создании нового файла позволяет вводить комментарийне более 64 символов с завершающим нулем,но при работе с файломдлина этого поля будет определяться по положению завершающегонулевого символа"Смещение данных"???Здесь лежат собственно данные из секторов. Сколько здесь будетсекторов, их длина и порядок следования - зависит от формата.-------------------------------------------------------------------------------Формат FDI-файла допускает пропуски между областями заголовков треков,текстовымкомментарием и областью данных.Формат заголовка трека------------------------------------------------------------------------------Смещение Длина поля Описание------------------------------------------------------------------------------0 4 Смещение трека - начало области данных этого трекаотносительно "Смещения данных"4 2 Всегда содержит 0 (резерв для модернизации)6 1 Число секторов на треке7 (Число секторов)*7Информация о секторах на треке. Каждый сектор описывается 7байтами. Первые 4 байта - стандарные параметры0-Track1-Head2-Sector3-Lenght из адресного маркера. Следующий байт - флаги:4-bit 7=0 - маркер нормальных данных, 1 - удаленных данных;bit 0-5: флаги CRC. Единица в одном из разрядов означает, чтопри считывании этого сектора на длину 128,256,1024,2048 или4096 байт получается правильная контрольная сумма. Если во всехразрядах 0 - сектор записан с ошибкой контрольной суммы.bit 6: В данной версии всегда 0. Возможно, 1 в данном разрядебудет обозначать адресный маркер без области данных.Последние 2 байта - смещение данных этого сектора относительноначала области данных трека. Чтобы получить абсолютный адресв файле, к этому числу надо добавить "Смещение данных" и"Смещение трека"5-Low byte6-High byte------------------------------------------------------------------------------7*(Число секторов+1) длина заголовка трекаЗаметим, что байт флагов в описании сектора пока никак не используетсяэмулятором.