Единый формат эмулятора


Из Википедии, бесплатной энциклопедии
  (Перенаправлено с TZX (формат файла) )
Перейти к навигации Перейти к поиску

Унифицированный формат эмулятора ( UEF ) — это контейнерный формат для сжатого хранения аудиокассет , ПЗУ , гибких дисков и моментальных снимков состояния машины для 8-битных компьютеров, выпускаемых Acorn Computers . Впервые реализованный с помощью эмулятора ElectrEm Томаса Харта и связанных с ним инструментов, он теперь поддерживается основными эмуляторами машин Acorn и хранится в двух онлайн-архивах программного обеспечения Acorn, насчитывающих тысячи наименований.

UEF пытается сжато воспроизвести сигналы, передаваемые носителями, а не просто данные, представленные ими, намерением является точный архив исходных носителей, а не просто возможность воспроизведения файлов, хранящихся на них. Может быть включен набор метаданных , таких как рейтинги совместимости, маркеры позиций, изображения упаковки и текст инструкций по эксплуатации. [3]

Машины Acorn реализуют стандарт Канзас-Сити (KCS) для кодирования ленточных данных, и в результате формат файла подходит для создания резервных копий исходных носителей для нескольких машин, отличных от Acorn. Начиная с версии 0.10 формат файла также содержит сигналы BASICODE .

TZX — это фрагментированный формат с аналогичными возможностями для серии ZX Spectrum . [4]

История

До разработки UEF архивы компьютерного программного обеспечения Acorn во всемирной паутине приняли соглашение о размещении ZIP -архивов необработанных файлов на ленте, каждый необработанный файл сопровождался дополнительным файлом с расширением .inf, несущим загрузку и выполнение. адреса из заголовка файла. Соглашение INF, описанное и реализованное Ваутером Шолтеном в bbcim (1995), расширяет формат вывода *INFOкоманды (Acorn DFS , ADFS ) для охвата CRC и порядка файлов на ленте. [5] Хотя он адекватно работает для хранения пользовательских файлов, он не сохраняет скорость передачи данных .скорости записи, информации о точном времени или нестандартных потоках данных, используемых в заголовках, защищенных от копирования.

В случае программного обеспечения на основе дисков стало все более удобно вместо этого отправлять дамп сектора диска, и к моменту появления UEF расширения файлов .ssdи .dsdуже были установлены для односторонних и двусторонних необработанных изображений DFS. дисков соответственно. Распространяемые в чистом виде или в ZIP-архиве, они остаются популярными на сайтах-архивах.

Цели

В сообщении 2010 года на форуме Stardot Харт подробно объяснил причины создания формата: будучи первым, кто обратился к эмуляции Acorn Electron и его основного носителя, ленты, Харт хотел получить детальное и технически оптимальное представление мультимедиа. по сравнению с существующими специальными форматами; и упаковать несколько мультимедийных элементов выпуска программного обеспечения в один файл, чтобы загрузка UEF была «больше похожа на получение исходного продукта». [6] Далее он заметил, что именно используемые инструменты и «потребности пользователей» определяют фактическое использование UEF.

Структура

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

Каждый фрагмент состоит из двухбайтового идентификатора , определяющего его значение, длины тела в четырех байтах и ​​самого тела . Приложение может легко пропустить тела чанков, которые ему не нужно обрабатывать. После последнего фрагмента файл просто заканчивается. В настоящее время фрагменты UEF не вложены друг в друга.

Весь файл UEF, включая заголовок, может быть дополнительно сжат в формате gzip . Проверив начало файла на наличие заголовка gzip или UEF, можно при необходимости вызвать библиотеку распаковки.

Содержание

Унифицированный формат эмулятора моделирует программное обеспечение на кассете как непрерывную последовательность сегментов, которые могут быть тонами несущей , модулированными асинхронными сигналами обычных блоков данных, циклами безопасности (модулированные синхронные сигналы, называемые «идентификационным признаком» [3] ) или промежутки , в которых нет распознанного сигнала. Фрагменты ленты UEF объединяются в том порядке, в котором они появляются, для создания представления всей записи. При генерации с ленты реального источника каждый сигнал на ленте соответствует непосредственно фрагменту ленты, так что источник может быть точно восстановлен (с заменой любых некодируемых сигналов промежутками равной длины).

Стандартные потоки Acorn (идентификатор фрагмента: 0x0100) кодируются таким образом, что их байты снова появляются в теле фрагмента UEF. Начиная с версии 0.10 прямая поддержка распространяется на все асинхронные форматы (0x0104), включая 8,N,2формат BASICODE. В противном случае существует общий фрагмент (0x0102) для размещения любой произвольной последовательности битов. Фрагменты волны безопасности (0x0114) также несут битовые потоки, закодированные в другой форме, позволяющей представить единичные биты половинной длины, наблюдаемые в коммерческих записях.

На интерпретацию этих фрагментов влияют некоторые модальные переменные: скорость передачи данных, 1200 бод для сигналов Acorn или 300 бод для KCS; точная несущая частота, определяющая время воспроизведения реконструированной ленты; и фазы сигнала. Последние два могут меняться в пределах опубликованной записи, и их абсолютные значения зависят от магнитофона, усилителя и звуковой карты, используемых для оцифровки сигнала. [7]

Файл UEF может содержать маркеры для разделения лент распределения с несколькими лентами и сторон каждой ленты; позиции интереса внутри каждой стороны также могут быть отмечены.

Диски хранятся в виде необработанных дампов секторов каждой поверхности вместе с их геометрией и байтом, идентифицирующим файловую систему . Предыдущие версии спецификации предусматривали кодирование дисков на уровне потока байтов или на уровне магнитного домена . Поскольку дампы секторов SSD и DSD хорошо обслуживают стандартные диски BBC, а зрелый формат FDI предназначен для защищенного от копирования программного обеспечения, функция образа диска UEF используется мало.

Боковые ПЗУ также хранятся в виде необработанных данных, а также с указанием их назначения и рекомендациями по слотам ПЗУ. Опять же, пользовательская база предпочитает для архивирования дампы ПЗУ.

Файлы моментальных снимков состояния UEF включают в себя стандартизированные фрагменты для хранения основных частей состояния Acorn Electron или BBC Micro: основной, теневой и шинной памяти расширения, ЦП и контроллера дисковода гибких дисков WD1770; также Electron ULA и Slogger Master RAM Board, обычное дополнение к Electron. Патч памяти перезаписывает блок памяти по любому адресу, позволяя формату UEF упаковывать pokes . Для хранения элементов состояния, не входящих в стандартные фрагменты, эмуляторы могут определять свои собственные фрагменты. Частная область использования идентификаторов фрагментов зарезервирована для этой или любой другой цели, хотя некоторые эмуляторы сохраняют состояние под недопустимыми идентификаторами фрагментов в общедоступном пространстве.

Мультиплексированные данные — это расширение для эмуляторов, используемое ElectrEm, но без опубликованной спецификации: [3]

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

-  Томас Харт, Спецификации формата файла UEF 0.10 (черновик документа 28)

Одним из важных приложений, упомянутых Хартом, является наложение «новой графики на старые игры», [8] и единственный пример, 256-цветный улучшенный Daredevil Dennis , доступен на StairwayToHell.com для запуска в ElectrEm.

Мультиплексированные блоки данных предназначены для того, чтобы следовать за обычными блоками данных в любом из вышеперечисленных классов, дополняя данные. Их содержимое не должно быть видимым для компьютера Acorn, будь то реальное или эмулированное, но в остальном их значение не уточняется.

Фрагменты, предоставляющие информацию о содержимом, включают фрагмент источника файла , который идентифицирует приложение, сгенерировавшее файл UEF. Фрагменты сканирования вкладки, предназначенные для предварительного просмотра файла, содержат необработанное растровое изображение обложки , хотя все, что находится за пределами эскиза , может занимать больше данных, чем обычная игра. Автор UEF также может предоставить текст буклета с инструкциями или URL-адрес для получения дополнительной информации, краткое название для отображения, минимальные технические характеристики машины и раскладку клавиатуры для прилагаемого программного обеспечения; а там, где игра не занимает весь экран, координаты видимой областиможно дать. Меньшая часть файлов UEF, доступных в Интернете, содержат что-либо в этом классе, кроме фрагмента источника.

Файл UEF может содержать одновременно несколько классов данных, как и предполагал Харт; [6] невозможно узнать, какие классы он содержит, без сканирования всего файла. В поле выбора файла ElectrEm отображает значок в соответствии с первым найденным фрагментом класса данных.

Приложения

MakeUEF

MakeUEF — это приложение для Windows, написанное Томасом Хартом и расширенное Фрейзером Россом для преобразования аудиосэмплов в файлы UEF. Предлагаются две степени. «Любительская» версия считывает файлы WAV или живой сигнал, воспроизводимый на звуковой карте, и точно расшифровывает только стандартные блоки данных. [7] «Профессиональный» уровень принимает только файлы CSW, которые представляют волны, предварительно обработанные в прямоугольные последовательности импульсов , но он кодирует всю аудиоинформацию, поддерживаемую спецификацией UEF.

MakeUEF утверждает, что был единственным создателем всех файлов UEF, доступных в Интернете до ноября 2004 года, месяца выпуска его версии 1.0. [7] Хотя формат файла был более функциональным, поддерживая «длины промежутков» самое позднее с февраля 2001 года, [9] до версии 1.0 MakeUEF сохранял только «программные данные». С ноября 2004 года точность MakeUEF улучшилась, а спецификация файла была дополнительно уточнена, и .hq.uefдля отражения этого было принято расширение («высокое качество»). [7] Архив AcornPreservation.org содержит только версию HQ.UEF, а также исходные файлы CSW. Его дочерний сайт StairwayToHell.com принимает «любительские» переводы UEF и файлы, созданные MakeUEF до версии 1.0.на последнем сайте размещено 1494 транскрипции названий кассет BBC Micro и не менее 800 названий Electron.

Другие

  • Несколько эмуляторов машин Acorn изначально поддерживают UEF для чтения и записи данных на магнитную ленту (с исходной скоростью или выше) и сохранения моментальных снимков состояния. Примеры включают ElectrEm, BeebEm и B-Em.
  • FreeUEF от Томаса Харта и плагин UEFReader Java Sound преобразуют файл UEF в волну, подходящую для записи на ленту или воспроизведения на физическом компьютере.
  • UberCassette — это кроссплатформенные мультиформатные кодировщики, испускающие UEF из сэмплов кассет Acorn. [10]
  • Сценарий UEFwalk Perl проверяет и извлекает данные из файлов UEF. [11]
  • Патч XVUEF расширяет редактор изображений Xv для поддержки малоиспользуемых фрагментов сканирования вкладок UEF.

Используйте на реальных BBC Micros

Аппаратные расширения GoMMC [12] и GoSDC, выпущенные Джоном Кортинком с 2004 года, обеспечивают возможность воспроизведения виртуальных кассет. Сопутствующие инструменты ПК импортируют данные кассеты из файлов UEF и сохраняют извлеченный поток кассеты на карту памяти. [13]

В феврале 2012 года Мартин Барр выпустил версию 5.0 UPURS , набора утилит на основе ПЗУ для облегчения передачи данных на настоящие микрокомпьютеры BBC. В рамках этого выпуска инструмент UPCFS увидел свой первый выпуск [14] , который обеспечил заявленную степень совместимости 86% с существующими распакованными файлами UEF [15] , что позволило передать их на настоящий BBC Micro с помощью специального кабеля пользовательского порта, который представляет подключение к ПК с поддержкой RS-232.

использованная литература

  1. ^ "Тема: ОБЪЯВЛЕНИЕ: первый выпуск "FreeUEF"" . Mdfs.net. 10 августа 2000 г. Проверено 27 июня 2011 г.
  2. ^ "UEF [унифицированный формат эмулятора] ФОРМАТ ФАЙЛА" . Электрем. 1 октября 2006 г. Проверено 13 февраля 2021 г.
  3. ^ a b c Харт, Томас (10 января 2006 г.). «Спецификации формата файла UEF 0.10 (черновик документа 28)» . Проверено 5 сентября 2016 г.
  4. ^ «Технические характеристики TZX» . Worldofspectrum.org. 19 декабря 2006 г. . Проверено 21 июня 2011 г.
  5. ^ «Программное обеспечение BBC, связанное с микрокомпьютерами (материал BBC для микрокомпьютеров Ваутера)» . Wouter.bbcmicro.net . Проверено 27 июня 2011 г.
  6. ^ a b Харт, Томас (22 октября 2010 г.). «Re: BeebEm сохраняет UEF состояния» . Форум Stardot.org.uk . Проверено 12 ноября 2010 г.
  7. ^ a b c d Росс, Фрейзер; Харт, Томас (18 января 2007 г.). «Сделать дистрибутив MakeUEF 2.1» (ZIP-архив, содержащий PDF) . Acornpreservation.org . Проверено 24 февраля 2008 г.
  8. Харт, Томас (1 августа 2003 г.). «Re: Образы дисков BBC с двойной плотностью» . Архив списков рассылки BBC Micro . Проверено 25 мая 2008 г.
  9. Харт, Томас (17 февраля 2001 г.). «Спецификации формата файла UEF 0.7 (черновик документа 10)» . (через интернет-архив). Архивировано из оригинала 17 февраля 2001 года . Проверено 24 февраля 2008 г.
  10. ^ "Страница разработки UberCassette!" .
  11. ^ "Regregex.bbcmicro.net" .
  12. ^ Кук, Грег (октябрь 2010 г.). «8-битный обзор: интерфейс GoMMC» . Перетаскивание . Пол Стюарт. 2 (1): 23–25 . Проверено 11 января 2020 г.
  13. ↑ Кортинк , Джон (8 апреля 2012 г.). «Руководство GoSDC - Использование» . Руководство GoSDC (Zip-архив, содержащий HTML) . Проверено 10 апреля 2012 г.
  14. ^ Барр, Мартин. Форумы "Лестница в ад" , Провода? ПАХ. Выпуск UPCFS , 19 февраля 2012 г. Проверено 19 февраля 2012 г.
  15. ^ Ретро-комплект. «Представляем UPCFS» , UPCFS запущен 19 февраля 2012 г. Проверено 19 февраля 2012 г.

внешние ссылки

  • Документ спецификаций
Получено с " https://en.wikipedia.org/w/index.php?title=Unified_Emulator_Format&oldid=1057200286 "