Articulo de referencia

Formato de emulador unificado

UEF File! "},"owner":{"wt":"Thomas Harte"},"released":{"wt":"before 10 August 2000 {{cite web|url=http://mdfs.net/Archive/BBCMicro/2000/08/10/210415.htm |title=Subject: ANNOUNCE...

El formato de emulador unificado ( UEF ) es un formato contenedor para el almacenamiento comprimido de cintas de audio , ROM , disquetes e instantáneas del estado de la máquina para la gama de ordenadores de 8 bits fabricados por Acorn Computers . Implementado inicialmente por el emulador ElectrEm de Thomas Harte y herramientas relacionadas, ahora es compatible con los principales emuladores de máquinas Acorn y se encuentra disponible en dos archivos en línea de software de Acorn que suman miles de títulos.

UEF intenta reproducir de forma concisa las señales transmitidas por los medios, en lugar de simplemente los datos que representan, con la intención de crear un archivo preciso de los medios originales, en lugar de limitarse a reproducir los archivos almacenados en ellos. Se puede incluir una selección de metadatos , como clasificaciones de compatibilidad, marcadores de posición, imágenes del embalaje y el texto de los manuales de instrucciones. [ 3 ]

Las máquinas Acorn implementan el estándar de Kansas City (KCS) para la codificación de datos en cinta, por lo que el formato de archivo es adecuado para crear copias de seguridad de los soportes originales para varias máquinas que no son Acorn. A partir de la versión 0.10, el formato de archivo también incluye señales BASICODE .

TZX es un formato fragmentado con un alcance similar para la serie ZX Spectrum . [ 4 ]

Historia

Antes del desarrollo de UEF, los archivos del software Acorn en la World Wide Web habían adoptado una convención de alojar archivos ZIP de los archivos sin procesar en una cinta, cada archivo sin procesar acompañado de un archivo sidecar , con extensión .inf, que contenía las direcciones de carga y ejecución del encabezado del archivo. La convención INF, descrita e implementada por Wouter Scholten en bbcim (1995), extiende el formato de salida del *INFOcomando (integrado en Acorn DFS y ADFS , que enumera las longitudes de los archivos y otros metadatos adjuntos a los archivos en disco [ 5 ] ) para cubrir CRC y el orden de los archivos en la cinta. [ 6 ] Si bien funciona adecuadamente para almacenar archivos de usuario, no conserva la velocidad de baudios de la grabación, la información de tiempo precisa ni los flujos de datos no estándar utilizados en títulos protegidos contra copia.

En el caso del software basado en disco, se volvió cada vez más conveniente enviar un volcado de sectores del disco, y para cuando se introdujo el UEF, las extensiones de archivo .ssdy .dsdya estaban establecidas para imágenes sin procesar de una y dos caras de discos DFS, respectivamente. Distribuidas directamente o en un archivo ZIP, siguen siendo populares en los sitios de archivo.

Objetivos

En una publicación de 2010 en el foro de Stardot, Harte explicó extensamente sus razones para crear el formato: siendo el primero en abordar la emulación del Acorn Electron y su medio principal, la cinta, Harte quería una representación de medios precisa y técnicamente óptima, en comparación con los formatos ad hoc existentes; y empaquetar los múltiples elementos de medios de una versión de software en un solo archivo, de modo que descargar un UEF sea "más como obtener el producto original". [ 7 ] Continuó observando que fueron las herramientas en uso y la "necesidad del usuario" las que determinaron los usos reales a los que se había destinado el UEF.

Estructura

Un archivo UEF consta de una cabecera de longitud fija que lo identifica, seguida de una lista enlazada de fragmentos que contienen los datos de interés. La cabecera incluye la cadena mágicaUEF File! , un carácter nulo de terminación y el número de versión de dos bytes de la especificación UEF en uso. Una aplicación de lectura debe prestar atención al número de versión, ya que la unidad de medida en algunos fragmentos difiere según la versión de la especificación, y un fragmento se ha redefinido entre versiones.

Cada fragmento consta de un identificador de dos bytes que determina su significado, la longitud del cuerpo en cuatro bytes y el cuerpo en sí. Una aplicación puede omitir fácilmente los cuerpos de los fragmentos que no necesita procesar. Tras el último fragmento, el archivo simplemente finaliza. Actualmente, los fragmentos UEF no se anidan.

El archivo UEF completo, incluyendo la cabecera, puede comprimirse opcionalmente en formato gzip . Al examinar el inicio del archivo en busca de una cabecera gzip o UEF, se puede invocar una biblioteca de descompresión según corresponda.

Contenido

El formato de emulador unificado (UEF) modela el software en casete como una secuencia contigua de segmentos, que pueden ser tonos portadores , señales asíncronas moduladas de bloques de datos ordinarios, ciclos de seguridad (señales síncronas moduladas, denominadas "característica de identificación" [ 3 ] ) o espacios donde no hay ninguna señal reconocida. Los fragmentos UEF de la cinta se concatenan en el orden en que aparecen para construir la representación de una grabación completa. Cuando se genera a partir de una cinta fuente real, cada forma de onda en la cinta corresponde directamente a un fragmento de cinta, de modo que la fuente se puede reconstruir con precisión (reemplazando cualquier señal no codificable por espacios de igual longitud).

Las secuencias estándar de Acorn (ID de fragmento: 0x0100) se codifican de forma que sus bytes reaparecen en el cuerpo del fragmento UEF. A partir de la versión 0.10, se amplía la compatibilidad directa a todos los formatos asíncronos (0x0104), incluido el 8,N,2formato BASICODE. De lo contrario, existe un fragmento genérico (0x0102) para acomodar cualquier secuencia arbitraria de bits. Los fragmentos de ondas de seguridad (0x0114) también transportan secuencias de bits, codificadas de forma diferente para permitir la representación de los bits de longitud reducida a la mitad que se observan en las grabaciones comerciales.

Existen algunas variables modales que afectan la interpretación de estos fragmentos: la velocidad de transmisión (1200 baudios para señales Acorn o 300 baudios para KCS); la frecuencia portadora exacta, que determina el tiempo de reproducción de la cinta reconstruida; y la fase de la señal. Estas dos últimas pueden variar dentro de una grabación publicada, y sus valores absolutos dependen del reproductor de cinta, el amplificador y la tarjeta de sonido utilizados para digitalizar la señal. [ 8 ]

Un archivo UEF puede contener marcadores para separar las cintas de una distribución de varias cintas, así como los lados de cada cinta; también se pueden marcar las posiciones de interés dentro de cada lado.

Los discos se almacenan como volcados de sectores sin procesar de cada superficie, junto con su geometría y un byte que identifica el sistema de archivos . Las versiones anteriores de la especificación contemplaban la codificación de discos a nivel de flujo de bytes o de dominio magnético . Dado que los volcados de sectores de SSD y DSD funcionan bien con los discos BBC estándar, y que el formato FDI, ya consolidado, admite software protegido contra copia, la función de imagen de disco de UEF se utiliza poco.

Las ROMs almacenadas de forma paralela también se guardan como datos sin procesar, junto con una indicación de su propósito y una recomendación de ranura para la ROM. Una vez más, los usuarios prefieren las copias de seguridad de la ROM para archivarlas.

Los archivos UEF de instantáneas de estado incluyen fragmentos estandarizados para almacenar las partes principales del estado de un Acorn Electron o BBC Micro: memoria principal, de sombra y del bus de expansión, la CPU y el controlador de la unidad de disquete WD1770; también la ULA de Electron y la placa RAM maestra Slogger, un complemento común de Electron. Un fragmento de memoria de parche reescribe un bloque de memoria en cualquier dirección, lo que permite que el formato UEF empaquete pokes . Para almacenar elementos de estado que no se incluyen en los fragmentos estándar, los emuladores pueden definir sus propios fragmentos. Se reserva un área de uso privado de identificadores de fragmento para este u otro propósito, aunque algunos emuladores guardan el estado bajo identificadores de fragmento no válidos en el espacio público.

Los datos multiplexados son una extensión para emuladores, utilizada por ElectrEm pero sin una especificación publicada: [ 3 ]

La multiplexación de bits proporciona al emulador información adicional para que los programas antiguos se puedan ejecutar con mayor calidad de salida. Esta función es exclusivamente para la emulación de archivos UEF, y si se ignora, no afectará la precisión de la herramienta con respecto al hardware original.

Thomas Harte, Especificaciones del formato de archivo UEF 0.10 (borrador del documento 28)

Una aplicación destacada mencionada por Harte es superponer "gráficos nuevos en juegos antiguos" [ 9 ] y un solo ejemplo, un Daredevil Dennis mejorado con 256 colores , está disponible en StairwayToHell.com para ejecutarse en ElectrEm.

Los fragmentos de datos multiplexados están diseñados para seguir a los fragmentos de datos ordinarios de cualquiera de las clases anteriores, complementando los datos. Su contenido no está pensado para ser visible para el ordenador Acorn, ya sea real o emulado, pero su significado no se ha especificado.

Los fragmentos que proporcionan información de contenido incluyen el fragmento de origen del archivo , que identifica la aplicación que generó el archivo UEF. Los fragmentos de escaneo de la carátula , pensados ​​como una vista previa del archivo, contienen un mapa de bits sin procesar de la carátula , aunque cualquier cosa más allá de una miniatura puede ocupar más datos que un juego típico. El autor del UEF también puede proporcionar el texto de un manual de instrucciones o una URL para obtener más información, un título corto para mostrar, las especificaciones mínimas de la máquina y la asignación de teclado para el software incluido; y cuando un juego no utiliza toda la pantalla, se pueden proporcionar las coordenadas del área visible . Una minoría de archivos UEF disponibles en línea contienen algo de esta clase excepto el fragmento de origen.

Un archivo UEF puede contener varias clases de datos a la vez, como lo concibió Harte; [ 7 ] no es posible saber qué clases contiene sin escanear todo el archivo. En su cuadro de selección de archivos, ElectrEm muestra un icono según el primer fragmento de clase de datos que encuentra.

Aplicaciones

MakeUEF

MakeUEF es una aplicación para Windows escrita por Thomas Harte y ampliada por Fraser Ross para convertir muestras de audio en archivos UEF. Se ofrecen dos versiones. Una versión "amateur" lee archivos WAV o una señal en vivo reproducida en la tarjeta de sonido y transcribe con precisión solo bloques de datos estándar. [ 8 ] La versión "profesional" solo acepta archivos CSW, que representan ondas preprocesadas en trenes de pulsos rectangulares , pero codifica toda la información de audio compatible con la especificación UEF.

MakeUEF afirma haber sido el único creador de todos los archivos UEF disponibles en la web antes de noviembre de 2004, mes del lanzamiento de su versión 1.0. [ 8 ] Aunque el formato de archivo era más capaz, admitiendo "longitudes de huecos" desde febrero de 2001 como muy tarde, [ 10 ] MakeUEF solo conservaba "datos del programa" antes de la versión 1.0. A partir de noviembre de 2004, la fidelidad de MakeUEF mejoró y la especificación del archivo se perfeccionó aún más, y .hq.uefse adoptó una extensión de ("alta calidad") para reflejar esto. [ 8 ] El archivo AcornPreservation.org solo contiene la variedad HQ.UEF, así como los archivos fuente CSW. Su sitio hermano StairwayToHell.com acepta traducciones UEF "amateur" y archivos producidos por MakeUEF anterior a la versión 1.0. A partir de 2008Este último sitio web alberga 1.494 transcripciones de títulos de casetes de BBC Micro y al menos 800 de títulos de Electron.

Otros

  • Varios emuladores de máquinas Acorn admiten UEF de forma nativa para leer y escribir datos en cinta (a la velocidad original o superior) y almacenar instantáneas de estado. Algunos ejemplos son ElectrEm, BeebEm y B-Em.
  • FreeUEF, de Thomas Harte, y el complemento UEFReader Java Sound convierten un archivo UEF en una onda adecuada para grabar en cinta o reproducir en un ordenador físico.
  • UberCassette son codificadores multiplataforma y multiformato que emiten UEF a partir de muestras de casetes Acorn. [ 11 ]
  • El script UEFwalk de Perl valida y extrae datos de archivos UEF. [ 12 ]
  • El parche XVUEF amplía el editor de imágenes Xv para admitir los fragmentos de escaneo de incrustaciones poco utilizados de UEF.

Úselo en BBC Micros reales.

Las extensiones de hardware GoMMC [ 13 ] y GoSDC, desarrolladas por John Kortink a partir de 2004, proporcionan una capacidad de reproducción de casete virtual. Las herramientas para PC que las acompañan importan los datos del casete desde archivos UEF y almacenan el flujo de casete extraído en una tarjeta de memoria. [ 14 ]

En febrero de 2012, Martin Barr lanzó la versión 5.0 de UPURS , un conjunto de utilidades basado en ROM para facilitar la transferencia de datos a microordenadores BBC reales. Como parte de ese lanzamiento, se publicó por primera vez la herramienta UPCFS [ 15 ] , que permitía una tasa de compatibilidad declarada del 86 % con archivos UEF descomprimidos existentes [ 16 ], lo que permitía transferirlos a un BBC Micro real mediante un cable de puerto de usuario personalizado que proporciona una conexión RS-232 a un PC.

Referencias

  1. "Asunto: ANUNCIO  : primera versión de 'FreeUEF'"" . Mdfs.net. 10 de agosto de 2000 . Consultado el 27 de junio de 2011 .
  2. "UEF [ Formato de Emulador Unificado ] FORMATO DE ARCHIVO" . Electrem. 1 de octubre de 2006. Consultado el 13 de febrero de 2021 .
  3. 1 2 3 Harte, Thomas (10 de enero de 2006). "Especificaciones del formato de archivo UEF 0.10 (borrador del documento 28)" . Recuperado el 5 de septiembre de 2016 .
  4. "Especificaciones técnicas de TZX" . Worldofspectrum.org. 19 de diciembre de 2006. Archivado del original el 2 de marzo de 2008. Consultado el 21 de junio de 2011 .
  5. Ward, Brian (1982). Sistema de microcomputadoras BBC : Guía del usuario del sistema de discos (PDF) . Londres: BBC. pág. 44. ISBN   0563165723Consultado el 25 de octubre de 2022 .
  6. "Software relacionado con microordenadores de la BBC (cosas de microordenadores de la BBC de Wouter)" . Wouter.bbcmicro.net. Archivado del original el 6 de octubre de 2011. Consultado el 27 de junio de 2011 .
  7. ^ Harte , Thomas (22 de octubre de 2010). "Re: BeebEm guarda UEF estatales" . Foros de Stardot.org.uk . Consultado el 12 de noviembre de 2010 .
  8. 1 2 3 4 Ross, Fraser; Harte, Thomas (18 de enero de 2007). "Distribución MakeUEF 2.1" (archivo ZIP que contiene PDF) . Acornpreservation.org . Recuperado el 24 de febrero de 2008 .
  9. Harte, Thomas (1 de agosto de 2003). "Re: Imágenes de disco de doble densidad de la BBC" . Archivo de la lista de correo de BBC Micro . Recuperado el 25 de mayo de 2008 .
  10. Harte, Thomas (17 de febrero de 2001). "Especificaciones del formato de archivo UEF 0.7 (borrador del documento 10)" . (a través de Internet Archive). Archivado del original el 17 de febrero de 2001. Recuperado el 24 de febrero de 2008 .
  11. "Página de desarrollo de UberCassette!" . Archivado del original el 16 de agosto de 2022.
  12. "Regregex.bbcmicro.net" .
  13. Cook, Greg (octubre de 2010). "Resumen de 8 bits: interfaz GoMMC" . Drag 'n Drop . 2 (1). Paul Stewart: 23–25 . Recuperado el 11 de enero de 2020 .
  14. Kortink, John (8 de abril de 2012). "Guía de GoSDC: uso". Guía de GoSDC (archivo zip que contiene HTML) . Recuperado el 10 de abril de 2012 .
  15. Barr, Martin. "Foros de Stairway to Hell" , Wires? PAH. Comunicado de prensa de UPCFS , 19 de febrero de 2012. Consultado el 19 de febrero de 2012.
  16. Retro Kit. "Presentación de UPCFS" , Lanzamiento de UPCFS , 19 de febrero de 2012. Consultado el 19 de febrero de 2012.
  • Documento de especificaciones