≡ Передовица » Эмуляторы/утилиты » Форматы файлов » .AIM
.AIMФайл-образ для Агатовских дисков формата 840Кб. Введён в 2009 году, заменяет старые .IM(.NIB). 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. Это может использоваться для отладки. * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |