Передовица » Эмуляторы/утилиты » Форматы файлов » .AIM

.AIM

Файл-образ для Агатовских дисков формата 840Кб. Введён в 2009 году, заменяет старые .IM(.NIB).
.AIM (размер файла 2020 кб) несут в себе максимально подробную информацию о диске, с них запускаются и работают любые программы, даже имеющие активную защиту от копирования.

160 дорожек. Дорожка фиксированного размер $1940 (TrkSize800) слов 16 бит. Следовательно, размер образа: 2068480 байт.

Каждое из 6464 слов может быть либо обычным байтом данных либо служебным (синхро, индекс...), поэтому для простоты кода и легкого визуального редактирования образов предположим, что избыточность оправдана.

Смысла делать нефиксированный размер дорожки нет, т.к. никогда неизвестно, сколько данных захочет закинуть на дорожку код в виртуальной машине, а раздвигать содержимое файла - лень.

Байты слов хранятся в обратном порядке. Слова анализируются так:
00xx - обычные данные, через регистры IO передается младшая часть
01xx - синхросбой
02xx - конец дорожки (заворот на начало) [читается, но не записывается]
03xx - индекс начало (1 -> 0)
13xx - индекс конец (0 -> 1)

При появлении кода 01xx в регистр чтения передается байт мусора (мл байт). Этот байт будет считан стандартными драйверами без ожидания готовности и затем отброшен. Другие коды тихо пропускаются и не доступны через регистр чтения. Неизвестные коды также пропускаются без какой либо реакции. Не следует заполнять недоступными кодами участок, в котором index = 0, т.к. в этом случае программа вообще не сможет обнаружить сигнал индекса.

Недопустимо, т.к. эмулятор может зависнуть, если:
- код 02xx встретился в самом начале дорожки
- на дорожке нет ни одного слова 00xx или 01xx

При чтении трека эмулятор должен его изучить и если будут найдены коды 03xx или 13xx, то по ним будет устанавливаться бит Index. Иначе Index = 1 везде, кроме интервала [0..$3F] (слов). Если 03xx или 13xx встречаются после 02xx - эмулятор не изменяет значение Index. Это может использоваться для отладки.

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *