Virtual Worlds #01
31 декабря 1999

Техпомощь - File FAQ. Полный разбор форматов файлов, наиболее часто встечающихся в Интернет, и не только; а также способы их конвертации в "нормальный" вид.

<b>Техпомощь</b> - File FAQ. Полный разбор форматов файлов, наиболее часто встечающихся в Интернет, и не только; а также способы их конвертации в
 ┌────────────────────────────┐
░▒▓▒▓█ FILE FORMATS █▓▒▓▒░ └────────────────────────────┘

                (C)Time Keeper


  В последнее время Спектрум все
больше и больше "разрастается" в
сети  Интернет.  Если  составить
список  всех сайтов, посвященных
Спектруму,  всех ftp-серверов, с
которых  сегодня  можно  скачать
программы      для     спектрум-
совместимых  машин, то их набра-
лось  бы  никак не меньше сотни.
Но  форматы хранения спектрумов-
ской  информации  никак не стан-
дартизированы.  Даже  в пределах
одного  сайта  можно  найти все:
хобетные файлы, trd-образы, fdi-
образы,  tap'ы,  snapshot'ы и т.
п.

  В  связи с этим, головная боль
возникает  не только у "реальщи-
ков",  пытающихся  перенести эту
информацию  в  формат  реального
Спектрума,  но  и у "виртуальщи-
ков",  которым  тоже  приходится
"вертеться".  Как правило, у них
установлено несколько эмуляторов
( каждый из которых поддерживает
какую-то определенную часть фор-
матов  ),  и различные программы
для перегонки из одного фомата в
другой. А это, согласитесь, пол-
ная  жопа. Было бы неплохо, если
бы "убили" большую часть "ненуж-
ных"  форматов,  но  это  только
мечты.  В  добавок  ко всему, не
так то легко найти описание этих
форматов и зачастую, файлы, ска-
чанные  из Интернета, лежат нес-
колько  месяцев  прежде  чем  вы
сможете  найти  описание  даного
формата  или  программу  для его
декодирования.

  Цель  этой статьи - дать чита-
телям  максимум знаний о различ-
ный  форматах  хранения спектру-
мовской информации на IBM-PC и в
сети Интернет, с которыми наибо-
лее часто приходится сталкивать-
ся на сегодняшний день.

--------------------------------


       Формат TRD-файла.

  Данный   формат   используется
эмуляторами Спектрума в качестве
образа  дискеты. Т. е. когда при
работе  в  эмуляторе  происходит
обращение к TR-DOS, эмулятор ра-
ботает с этим файлом, считая его
дискетой.  Формат образа *.trd -
один  из  самых простых. Это, по
сути, обыкновенный двухсторонний
80-трековый    TR-DOS   диск   с
шестнадцатью секторами на дорож-
ке,  по 256 байт каждый. Т. е. в
файле  данного  формата  целиком
хранится  содержание TR-DOS дис-
кеты ( вместе с каталогом ). Для
декодирования в формат реального
Спектрума  необходимо просто за-
писать содержащиеся в нем данные
на чистую TR-DOS дискету начиная
с нулевой дорожки. Размер файлов
*.trd  чаще  всего  равен 655360
байт  (  2544+16 tr-dos секторов
),  но  иногда встречаются обре-
занные   *.trd   образы  (меньше
655360  байт),  а также "резино-
вые" (больше 655360 байт).

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



       Формат FDI-файла.

  Описание  написано самим авто-
ром данного формата:

------------- Cut. -------------

  Поскольку  по ряду причин, су-
ществующие    форматы    файлов-
образов   дискет   не  подходили
(   отсутствие  документации,  а
главное - невозможность расшире-
ния  формата  для  записи полных
образов треков, областей с физи-
ческими  дефектами и т. п. ), то
пришлось  создать свой собствен-
ный формат.

  Не   могу  гарантировать,  что
расширение *.FDI не используется
еще  кем-то  для  других  целей;
поэтому  оговорюсь,  что  данное
описание  актуально  только  для
файлов,  создаваемых  программой
MAKEFDI  и используемых програм-
мой  SP_EMU (Spectrum debugger).



Смещение  (длина поля) описание:
  ┬         ┬           ┬
 ┌┘  ┌──────┘           │
 │   │       ┌──────────┘
 ┴   ┴       ┴
+00 (3) Ключевая метка 'FDI'.

+03 (1) Флаг  защиты записи (0 -
write   enabled,   1   -   write
disabled).

+04 (2) Число цилиндров.

+06 (2) Число поверхностей.

+08 (2) Смещение текста ( корот-
кий комментарий к диску ).

+0A (2) Смещение данных.

+0C (2) Длина дополнительной ин-
формации  в  заголовке.  В  этой
версии = 0.

+0E "Длина дополнительной инфор-
мации".  Формат еще не определен
( резерв для дальнейшей модерни-
зации ).

+0E   +   "длина  дополнительной
информации".

+??  Область  заголовков треков.
Здесь  собрана  вся информация о
формате   дискеты.  Эта  область
должна содержать не меньше "Чис-
ло  цилиндров"*"Число поверхнос-
тей"  заголовков. Заголовки идут
в  порядке  Cyl  0 Head 0, Cyl 0
Head  1,  Cyl  1  Head 0 и т. д.
Формат заголовка описан ниже.

"Смещение текста"

+??  Комментарий  к диску. Конец
комментария  -  нулевой  символ.
MAKEFDI при создании нового фай-
ла позволяет вводить комментарий
не  более  64  символов с завер-
шающим  нулем,  но  при работе с
файлом  длина  этого  поля будет
определяться по положению завер-
шающего нулевого символа.

"Смещение данных"

+??  Здесь лежат собственно дан-
ные  из  секторов. Сколько здесь
будет секторов, их длина и поря-
док следования - зависит от фор-
мата.

  Формат   FDI-файла   допускает
пропуски  между  областями заго-
ловков треков, текстовым коммен-
тарием и областью данных.

    Формат заголовка трека:

Смещение  (длина поля) описание:
  ┬         ┬           ┬
 ┌┘  ┌──────┘           │
 │   │       ┌──────────┘
 ┴   ┴       ┴
+00 (4) Смещение  трека - начало
области   данных   этого   трека
относительно "Смещения  данных".

+04 (2) Всегда  содержит 0 ( ре-
зерв для модернизации ).

+06 (1) Число секторов на треке.

+07  (Число секторов * 7) Инфор-
мация  о секторах на треке. Каж-
дый  сектор описывается 7 байта-
ми.  Первые 4 байта - стандарные
параметры  C,H,R,N  из адресного
маркера. Следующий байт - флаги:

bit 7=0 - маркер нормальных дан-
ных, 1 - удаленных данных;

bit  0-5:  флаги  CRC. Единица в
одном  из разрядов означает, что
при  считывании этого сектора на
длину  128,  256, 1024, 2048 или
4096 байт, получается правильная
контрольная  сумма. Если во всех
разрядах  0  -  сектор записан с
ошибкой  контрольной  суммы.

bit 6: В данной версии всегда 0.
Возможно, 1 в данном разряде бу-
дет  обозначать  адресный маркер
без области данных.

  Последние  2  байта - смещение
данных этого сектора относитель-
но  начала области данных трека.
Чтобы  получить абсолютный адрес
в  файле, к этому числу надо до-
бавить "Смещение данных" и "Сме-
щение трека".

7*(Число секторов+1) длина заго-
ловка трека.

  Заметим,  что  байт  флагов  в
описании  сектора  пока никак не
используется эмулятором.

                  ( Углеков К. )

------------ Cut. --------------



    Формат хобетных файлов.

  Данный   формат  придуман  для
хранения  отдельных  спектрумов-
ских файлов на IBM-PC и передачи
их  по Интернету. Берется содер-
жимое  TR-DOS  файла,  впереди к
нему добавляется заголовок из 17
байт и все это сохраняется в MS-
DOS  файл. Обычно хобетные файлы
имеют  вид  *.$X,  где  вместо X
стоит  символ, являющийся расши-
рением tr-dos файла, хотя это не
всегда так.

Структура 17-байтного заголовка,
добавляемого   к  TR-DOS  файлам
программой HoBeta.exe:

00-07 - имя файла
08    - тип файла
09-0A - Start
0B-0C - Length
0D-0E - Length в 256-байтных за-
писях  (байт  0E - pазмеp в сек-
тоpах)
0F-10 - Контрольная сумма

Таким  образом,  первые  14 байт
копируются из TR-DOS'овского ка-
талога.

Вычиление   контрольной   суммы:
S=S+257*Di+i, где

S начальное = 0
Di - значение байта
i  - порядковый номер байта (на-
чиная с 0).

  Но  когда  по Интернет пересы-
лается   программа  состоящая из
нескольких   файлов,  и  порядок
файлов  на  TR-DOS  диске  имеет
значение, то необходимо посылать
сопроводительный текстовый файл,
в  котором  описывается  порядок
следования  файлов.  Многие  это
забывают,  и  иногда  приходится
потратить несколько часов, чтобы
восстановить  правильный порядок
файлов  на TR-DOS диске. В связи
с   этим   был   придуман  более
совершенный формат *.scl.



       Формат файлов SCL.

  Текст  взят  из  руководству к
программе  AMD  Copier (IBM_PC).
Это первая программа, поддержав-
шая данный формат.


------------ Cut. --------------


 +00 (08) - надпись 'SINCLAIR'

 +09 (01) - число TR-DOS файлов,
содержащихся в SCL файле. <fnum>

 +0A (0E*fnum)  -  по 14 байт из
TR-DOS каталога на каждый TR-DOS
файл ( кроме дорожки/сектора )

+0A+0E*fnum   (??)  -  непосред-
ственно содержимое секторов.

+??    (04)   -   4-х   байтовая
контрольная  сумма  ( сумма всех
предыдущих байт SCL файла ).

------------- Cut. -------------


              to be continued...





Другие статьи номера:

От редакции - история создания журнала.

Путеводитель - подробное содержание номера.

Описание оболочки - описание оболочки и методов ее правильной эксплуатации.

Авторы - об авторах.

Ассемблер - Z80 Flags: недокументированные комманды процессора Z80.

Ассемблер - Оверлеи для JC: Описание методов создания утилит работающих под управлением Jemmini_Commander 4.0T.

Ассемблер - Секреты TR-DOS: о методах пределения наличия дисководов.

Ассемблер - Круги на воде: Алгоритмы имитации эффекта известного на других платформах, под названием "круги на воде".

Ассемблер - Поиск пути. Решение задачи "статического" поиска наикратчайшего маршрута между двумя точками.

Отдохни - Механический эффект. История о том, что бывает, если использовать презервативы сомнительного происхождения.

Железо - Глюки клавиатуры: почему в играх для двух игроков, при игре вдвоем, компьютер не слушается вашего управления и информация о том, как этого избежать.

Железо - Прерывания: Кое-что непонятное о прерываниях второго рода.

Техпомощь - Мысли вслух. Интересно письмо из конференции fido7.zx.spectrum на тему "К вопросу о стандартизации".

Техпомощь - File FAQ. Полный разбор форматов файлов, наиболее часто встечающихся в Интернет, и не только; а также способы их конвертации в "нормальный" вид.

Техпомощь - Dos Review: материал по формату дисковой операционной системы IS-DOS.

Техпомощь - Dos Review 2: материал по формату дисковых операционных систем ПК "АГАТ", Радио-86РК, SP-DOS, БК-0011М.

Техпомощь - Dos Review 3: материал по формату дисковых операционных систем CP/M, ASC SOUND MASTER, RT11, СМ ЭВМ РАФОС.

Техпомощь - Dos Review 4: материал по формату дисковой операционной системы от неизвестного автора.

DI:HALT:99 - Анализ DH:99. Наконец-то вся правда о прошедшей летом, в г.Дзержинске пати, от самих организаторов.

DI:HALT:99 - Hidden Parts. Жизнь дзержинских (и не только) спектрумистов в период проведения DI:HALT:99.

DI:HALT:99 - Результаты. После прошествия DH:99, чуть ли не каждая вторая газета, считала своим долгом придумать новый вариант результатов. Данная статья направле- на на то, чтобы окончательно поставить все точки над "И".

Программы - Alien: описание и прохождение игры по фильму "Чужой".

Программы - описание Universal AntiProtector 0.01 (программа для автоматического раскалывания ряда популярных защитных систем).

Программы - редактор игровых экранов "Белые Пятна".

Программы - Exhumator: программа для "эксгумации дисков".

Программы - чанковый графический редактор: Hard Core ver 3.01

Программы - Глаз Вопиющего: програмка позволяющая смотреть картинки, спрайты, слушая при этоммузыку.

Отдохни - Стих о Sysop'e. Поэзия однако...

Отдохни - Секс в Фидо. Юмористический расказ о том, как же на самом деле занимаются любовью заядлые фидошники.

Отдохни - Анекдоты. Подборка анекдотов с компьютерной тематикой.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
ENLIGHT'97 - Условия конкурса.
CAFe 2002 rules - правила нового демопати в Казани.
Не надо ля-ля - простенькая и незамысловатая буржуйская песенка.
Остропёры всех стран, присоединяйтесь! - Правдивые истории от Змея Горыныча.
Вступление - содержание номера.

В этот день...   21 ноября