Hacer una demostración para un teléfono antiguo - AONDEMO

Quería hacer una demostración desde que vi la clásica megademosa polaca Lyra II por primera vez en 1997. También quería hacer algo para la fiesta de demostración rusa más grande Chaos Constructions durante mucho tiempo, pero nunca lo he logrado, siendo ocupado con otros deberes. Finalmente, en 2018 ha llegado el momento, y cumplí ambos deseos a la vez, el estilo de doble impacto de Van Damm: hizo una demostración llamada AONDEMO que ingresó al componente de demostración ZX Spectrum 640K en Chaos Constructions .


Apuesto a que lo rojo que acabas de ver no te parece un espectro. Aquí está la historia.


En la Rusia soviética


Durante mucho tiempo, el mercado de productos electrónicos de consumo de la Unión Soviética estuvo a la zaga del mundo contemporáneo en una buena década. No tenía mucha tecnología avanzada para ofrecer, y hasta finales de los 80 era un país de teléfonos de marcación rotativa, televisores basados ​​en tubos de vacío y tocadiscos de vinilo. Cerca de la disolución de la Unión, las fronteras comenzaron a aflojarse, lo que permitió que algunos productos electrónicos extranjeros lo obtuvieran, mientras que los fabricantes locales comenzaron a intentar satisfacer la creciente demanda pública mediante la creación de productos similares, por lo que todo tipo de maravillas técnicas, como videograbadoras, Las computadoras domésticas, e incluso cosas tan básicas como un teléfono de marcado automático, comenzaron a ser cada vez más accesibles para el público en general.

Alrededor de 1989 apareció un nuevo dispositivo en los mercados de radio, comenzando a ganar popularidad. Ampliamente conocido por el acrónimo AON , que se traduce aproximadamente como "un identificador automático de llamadas", también conocido como "secretario electrónico" en los manuales, básicamente era un antepasado remoto de los teléfonos inteligentes modernos: un teléfono fijo con microprocesador capaz de identifique y muestre los números de las llamadas entrantes aprovechando la funcionalidad de las estaciones telefónicas destinadas a fines especiales en lugar de uso público. El teléfono registraba las llamadas entrantes y salientes en un diario, tenía una guía telefónica que permitía clasificar las llamadas, asignarles diferentes melodías, bloquear algunas llamadas no deseadas, usar alarmas, modo nocturno, marcaciones rápidas, rellamadas, etc., etc. una cosa muy llena de funciones para su tiempo.

Durante 15 años de su popularidad tuvo una gran historia. Comenzó como un producto de creación y trabajo secundario de individuos aficionados, generalmente estudiantes o ingenieros electrónicos desempleados (esos fueron tiempos difíciles en Rusia), que a menudo también producen clones ZX Spectrum hechos a mano, la demanda pública pronto ayudó a convertirlo en algo empresas privadas legítimas, y algunas de ellas eventualmente se convirtieron en grandes empresas oficiales. A mediados de los años 90, los teléfonos AON se abrieron paso en casi todos los hogares, hasta el punto de que muchos usuarios de teléfonos estaban lo suficientemente familiarizados como para poder distinguir la presencia de AON por la forma en que sonaban los tonos de estado. Esta popularidad duró hasta principios de la década de 2000. La disminución fue influenciada por el hecho de que los operadores de telefonía fija, que no estaban contentos con el aumento de la carga en su equipo especial, primero intentaron convertir el servicio de identificación de llamadas en una opción paga, luego lo reemplazaron por completo con un estándar europeo incompatible más nuevo. Con el siguiente aumento de los teléfonos celulares que surgió rápidamente, los servicios de telefonía fija se convirtieron en un subsuelo tecnológico, donde los restos de su horrible mercado de consumo ocasionalmente ven lanzamientos de versiones modernas "premium" de los descendientes de AON , como Paliha , hasta el día de hoy.

La comunidad de fabricantes de AON en sus días iniciales era muy parecida a la comunidad rusa de computadoras domésticas de la época, como una realidad alternativa, vagamente interconectada. Compartía las mismas raíces de radioaficionados, hardware e intereses similares, un enfoque similar al desarrollo salvaje y los procesos de fabricación de cerveza casera (como poner nuevos PCB en los cuerpos telefónicos existentes). Al igual que la escena de desarrollo de juegos ZX Spectrum en el Reino Unido, le dio fama a algunos de los fabricantes a pesar de ser muy jóvenes. Por un lado, Pavel Sukhodolsky , quien programó el firmware RON de AON más popular, tenía solo 15 años en ese momento.

Phreaking telefónico, pirateo para tomar prestados los códigos de cada uno, derechos de autor ingenuos y su violación, mensajes a las partes en competencia ocultos en el código binario completo con direcciones de FidoNet, artículos en revistas de radio, libros, manuales, mitos urbanos y mucho más. - Una parte importante del amanecer de la historia de la era digital cubierta por las arenas del tiempo, esperando la llegada de valientes exploradores.

Yo, yo y AON


La primera vez que vi un AON fue a principios de los 90, en algún momento después de jugar mis primeros juegos en ZX Spectrum y clones NES , pero justo antes de llegar a la programación yo mismo. Estaba fascinado con esta novedad técnica, y pasé mucho tiempo experimentando con secuencias de botones para descubrir funciones en versiones nuevas o desconocidas del firmware, escuchando melodías populares en la ejecución de una sola voz, así como el discurso de la computadora que podía para sintetizar y leer manuales para descifrar las menciones de funciones y artefactos nunca vistos, como el control de cinta , el bucle de seguridad , el tablero de voz o la señal acústica (que era un dispositivo para acceder a las funciones del teléfono de forma remota a través del control de marcación por tonos). Mi compañero ayudó a su padre a fabricar esos teléfonos y, al estar interesado en la electrónica y comenzar a desarrollar interés en las computadoras, pude unirme al conocimiento secreto de Z80 , 8255 y otros símbolos mágicos. Al mismo tiempo, los AON comenzaron a aparecer por todas partes, a menudo se rompían, y como no había soporte oficial o servicios para solucionarlo, terminaron en mis manos para intentar solucionarlos, la mayoría de las veces no tuvieron éxito. Esta actividad mía duró hasta el año 2000.

En 2013 estaba limpiando mi casa, y en el rincón más alejado descubrí un par de viejos teléfonos AON , que me recordaron los viejos tiempos. Un poco más tarde, mis experimentos en el campo de la música de 1 bit, los sintetizadores de bricolaje y las computadoras muy antiguas como KIM-1 , me dieron la idea de que AON es una especie de computadora de placa única que podría reutilizarse para algunos usos de música electrónica , como una caja de ritmos o un secuenciador. Me entusiasma esta posibilidad y comencé a obtener la información necesaria que estaba enterrada en las profundidades de la antigua Internet, programar un emulador AON y otras actividades relacionadas. Sin embargo, poco después resultó que el hardware redescubierto accidentalmente encontró su salida junto con la otra basura, y esta idea tuvo que ser puesta en espera.

En los años siguientes busqué muchos proyectos e intereses diferentes. Desarrollo de PCSPE , navegar por una colección web de componentes electrónicos soviéticos raros (¡no te pierdas estas increíbles pantallas de segmentos! ), Recuperar algunos fragmentos de la historia de AON , reiterar viejas ideas sobre cómo hacer software de música para ellos, comprar muchos AON s a través de un tablón de anuncios local, obteniendo piezas y equipos para proyectos electrónicos no relacionados, continuando el trabajo en el emulador AON , etc. Poco a poco, todas las piezas del rompecabezas se unen. Una semana antes de la fiesta de demostración de Multimatograf 2018 , la conexión entre "demostración" y "teléfono" se estableció en mi mente (si no recuerdo mal, una broma sobre "demostración para una calculadora" contribuyó a esto), y comencé a trabajar en esto proyecto de verdad. Por supuesto, no pude completar nada en un plazo tan ajustado, y el trabajo se ralentizó, pero se reanudó justo cuando la fecha de Chaos Constructions 2018 apareció a la vista. En la mejor tradición de la escena, se realizó un enorme esfuerzo solo dos días y una noche antes de la fiesta, durante el cual diseñé, programé y depuré la mayoría de las ideas que tenía para esta demostración, luego filmé y armé un video sobre eso. La entrada final se envió al concurso temprano en la mañana del día de la fiesta, pocas horas antes de la fecha límite.

Algún tiempo después de la fiesta, descubrí que las pantallas de 7 segmentos no son algo inusual en las entradas de Wild Compo , pero de alguna manera nunca me llamó la atención, por lo que mi diseño no tuvo tanta influencia.

El hardware




El hardware bajo el capó de un AON es una computadora de placa simple de 8 bits bastante básica y sencilla, equipada con una pantalla LED de 7 segmentos, un teclado de teléfono y un circuito de interfaz de línea fija. Durante su período de popularidad de 15 años, el hardware evolucionó mucho, desde un esquema basado en i8080 en 1989, y terminando con una MCU R100-XP personalizada (núcleo i8051, periféricos requeridos y un clon AY-3-8910 en un chip único) desarrollado por Rus-Telecom en 2003. Muchas versiones y horquillas existían en el medio.

Decidí apegarme a la versión más clásica de 1990 que está bastante cerca de ZX Spectrum en hardware y espíritu: CPU Z80 a 4 MHz, 2K a 8K de SRAM, 8K a 64K de ROM, puerto paralelo basado en 8255 para hardware interno, y temporizador programable 8253 a 1 MHz. Uno de los canales del temporizador genera interrupciones de la CPU, otro produce un sonido de onda cuadrada de un solo canal, y el tercero no se usa en absoluto o actúa como un perro guardián del sistema. Este esquema se presentó con los dos tipos más comunes de PCB, uno clásico "grande" y uno actualizado "pequeño". El grande fue diseñado para instalarse en el cuerpo del VEF-TA-12 de Letonia, que era el único modelo de teléfono de marcación accesible en ese momento. La placa pequeña no tenía tales dimensiones específicas de modelo y puntos de montaje, y se instaló en varios teléfonos importados, en su mayoría representados con clones de los teléfonos de oficina de Panasonic . Numerosos firmware estaban disponibles para ejecutarse en estas placas con tecnología Z80, incluidos Arctur-36 , Selena , Lira , Allo y el más popular de todos: Rus (hasta la versión 23, más tarde fue reprogramado para placas basadas en 8051).

Reprogramar AON es bastante fácil, cualquier chip EEPROM de 5V y un quemador compatible harán el truco. Volví a utilizar algunas EEPROM de placas base de PC viejas, pedí algunas Winbond W27C512 nuevas de China y utilicé una grabadora WizardProg-87 asequible para programar estos chips.

El mayor desafío con el hardware era la condición de los zócalos ROM en los PCB de un cuarto de siglo de antigüedad. Para empezar, nunca fueron de alta calidad, y hoy el mal contacto es muy común en estos, lo que hace que sea difícil distinguir si un problema es causado por un error del programa o si es solo una conexión defectuosa. Intenté solucionar este problema instalando un zócalo ZIF, pero la placa pequeña llena de componentes altos no lo permitió, y conectar el zócalo con una pila de conectores DIP28 para acomodar el problema de altura era propenso a un mal contacto por sí mismo.

Desarrollo




Antes de comenzar el desarrollo de la demostración real, tuve que terminar mi emulador de AON , esbozado aproximadamente en 2014. Resolví algunas cosas difíciles que no estaban cubiertas en los documentos antiguos, e integró un núcleo de temporizador 8253 de terceros para hacer las interrupciones y el sonido funcionan correctamente. Tener un emulador a mano, incluso con características de depuración crudas, ayuda a acelerar cualquier desarrollo retro por orden de magnitud. Una vez que puse a funcionar el emulador, lo usé para probar y depurar todo el código de demostración, ejecutándolo de vez en cuando en el hardware para asegurarme de que todo funciona correctamente y se ve bien en la pantalla LED multiplexada, que no pude emular con autenticidad suficiente.

El código fue escrito con SjAsmPlus , un ensamblador cruzado Z80 popular entre los desarrolladores modernos de ZX Spectrum y MSX . AON presenta un mapa de memoria bastante funky, probablemente el resultado de minimizar los cambios de hardware mientras se migra a tamaños de ROM más grandes para un firmware más nuevo. Aunque es posible instalar un chip ROM de 64K, solo 32K de la memoria ROM están disponibles para la CPU en un momento dado, y estos 32K están intercalados con RAM en trozos de 8K. Una escritura de puerto puede intercambiar dos mitades de la ROM de 64K, pero mi demo no usó esto, ya que cabe con éxito en solo 32K. El quemador de ROM necesita tener todos los fragmentos de código para que funcione correctamente, por lo que las directivas de ensamblador y la automatización BAT se han utilizado para organizar el diseño de memoria intercalado necesario y guardarlo como una imagen binaria lineal.

Aproximadamente la mitad de los efectos de demostración se han programado correctamente mediante código, mientras que otra mitad se implementó como un conjunto de animaciones simples, debido a la falta de tiempo. Se ha creado una herramienta de creación de animación LED para realizar esta tarea lo suficientemente rápido. Está disponible para descargar en mi sitio web.



Teniendo en cuenta la alta densidad de efectos en la demostración, que es de aproximadamente 4 segundos por efecto, y el orden constante de los efectos, cerca de la fecha límite resultó que a la demo le falta por completo un segmento largo de 16 segundos en el medio, cuando se reproduce música pseudopolifónica. a pleno intenso. Se ha pirateado un efecto de relleno flagrante con segmentos LED que caen para cerrar esta brecha. Se ha intercalado con un analizador de espectro previamente programado para aumentar aún más el tiempo de la escena. Esperaba que la parte de sonido ocupada distraiga la atención de los espectadores de las imágenes pobres y prolongadas en esta escena.

Los primeros nombres en la sección de saludos son un homenaje a los entusiastas del pasado, esos son los nombres de los creadores de firmware de AON que se encuentran en varias imágenes de ROM.

Aunque no estaba exactamente relacionado temáticamente, no habría excusa para perder la oportunidad de mostrar el icónico mensaje EGGOG (Error) que se origina en las primeras calculadoras programables fabricadas por los soviéticos (esa es una historia completamente diferente). El lugar más lógico para ubicarlo fue el final de la demostración, ya que comenzó con la imitación de un problema técnico, tendría sentido terminarlo con un mensaje de error.

No tiene mucho sentido entrar en detalles sobre cómo se programaron los efectos particulares, todo es sencillo allí. Sin embargo, lo que vale la pena mencionar es probablemente la característica más destacada de la plataforma de hardware, la indicación LED multiplexada impulsada por software.

La pantalla LED de 9 dígitos y 7 segmentos se controla mediante salidas de 7 segmentos y salidas de selección de 9 dígitos, por lo que el hardware solo puede mostrar un dígito a la vez, y el software necesita alternar rápidamente entre todos los dígitos para tener una pantalla completa. Implementé esto a través de interrupciones de temporizador a una frecuencia bastante alta de 960 Hz (~ 4166 relojes de CPU entre interrupciones, que son aproximadamente 500 operaciones significativas de CPU). Se utiliza una lista de longitud variable para configurar una secuencia de orden arbitraria de dígitos para mostrar. Este enfoque permitió implementar dos efectos. Primero, la imitación de congelación del sistema que es visualmente distinta con un 8 inusualmente brillante en uno de los dígitos (cuando el teléfono falla, la multiplexación se detiene y el último dígito mostrado permanece activo). El segundo efecto es el pseudo control de brillo en el efecto KITT realizado al iluminar algunos dígitos durante más tiempo que otros. Durante la visualización regular, la velocidad de actualización es de aproximadamente 106 Hz, lo que elimina el parpadeo notable y ayuda a evitar artefactos durante la filmación de la acción en video.

Musica


El hardware de sonido AON es muy parecido al Altavoz de PC , solo un altavoz accionado por uno de los 8253 canales. Puede producir un tono de onda cuadrada mientras la CPU está ocupada con otras tareas. No hay forma de onda o control de volumen. Me gustaba mucho la música monofónica clásica de PC Speaker en este momento (que luego se concretó con el lanzamiento del álbum System Beeps ), así que ya tenía PCSPE VST a mano y adquirí mucha experiencia en la organización de dicha música, con solo una Nota jugar en un momento dado. PCSPE es un complemento para cualquier estación de trabajo de audio digital moderna que emula los detalles del altavoz de la PC y permite crear música de una manera muy conveniente. Usarlo para componer música que se pudiera convertir fácilmente fue una elección obvia en lugar de diseñar un nuevo motor de síntesis de sonido de 1 bit que sonaría mucho más impresionante, pero que tomaría un tiempo hacer. También encajaba a nivel conceptual: un sonido auténtico que eleva el listón dentro de restricciones familiares.



La música fue compuesta usando Reaper , un DAW popular. Mi idea para la parte inicial era imitar la melodía de inicio del firmware original de Rus. También imité otros sonidos típicos, como presionar botones y tonos de llamada predeterminados. Tenerlos listos proporcionó la idea de componer una estructura rítmica a partir de estos. La canción luego se desarrolló de manera extensa, al agregar más y más capas para crear una ilusión de polifonía. El efecto más complejo de la demostración, un símbolo brillante que se ejecuta de lado a lado, me recordó a la barra de escáner de Knight Rider KITT , así que agregué un extracto del tema principal de la serie.

Como las capacidades visuales de la plataforma son pobres, por decir lo menos, desde el principio estaba claro que debería hacer un trackmo, es decir, una demostración que tenga una estrecha sincronización entre su audio y sus imágenes. Por lo tanto, la escritura del guión de demostración y la composición musical se han realizado en paralelo. A diferencia de los rastreadores de chiptune que solo muestran una pequeña parte de la canción, Reaper permite ver toda la duración y la estructura de la pista, y mover e intercambiar partes fácilmente. Esto ayudó a tomar decisiones mejores y más fáciles sobre la estructura de demostración.

Desafortunadamente, no fue posible sincronizar la acción con la música lo suficientemente bien. Simplemente no hubo tiempo suficiente para ajustarlo usando el hardware real. Tampoco tuve tiempo de agregar un sistema de marcadores de sincronización adecuado que ayudaría a resolver este problema (dicho sistema se implementa en todas mis siguientes producciones de demostración). Como resultado, la sincronización en algunas partes de la demostración está un poco apagada, y eso se nota visualmente. Pasé parte del tiempo restante sincronizando manualmente las cosas lo mejor que pude antes de tener que rendirme y dejarlo como está.

Una característica de sonido notable de AON s es que, además de los pitidos reconocibles, las últimas versiones del firmware tenían una síntesis rudimentaria de voz basada en muestras utilizada para deletrear cosas como los números de llamadas entrantes o la hora actual, lo que fue bastante impresionante para la época. Por curiosidad, realicé ingeniería inversa de los formatos de datos (algunos usaron muestras de 4 bits a ~ 4500 Hz, reprodujeron usando una técnica PWM basada en temporizador), escuché todas las muestras y descubrí que había 3-4 voces diferentes conjuntos que migraron entre firmware de diferentes autores. También se ha confirmado un mito urbano, algunos de los cuales presentaban algunas expresiones obscenas reproducidas a las personas que llamaban más no deseadas. Tuve la idea de cortar un discurso divertido usando estas muestras y agregarlo a la demostración, pero no tenía tiempo para tener una buena idea, por lo que tuve que omitirla.

Video


Para poder mostrar una demostración de un hardware poco común, sin poder asistir a la fiesta con el hardware en persona, tuve que filmar y grabar un pequeño video. No es un gran problema, pero en realidad no es algo común para un programador, por lo general, es solo grabar una transmisión de pantalla, sin tratar con la cámara, las luces, la ubicación de objetos físicos y cosas como esta.



Se han usado un par de teléfonos AON durante el desarrollo. Una era una versión de tablero pequeño, muy golpeada. El segundo era un muy buen estado clásico rojo VEF-TA-12 con el gran tablero. Principalmente usé el primero para ejecutar pruebas, y grabé el producto final usando el segundo. Curiosamente, a pesar de tener el mismo tipo exacto de pantalla LED (ALS318), la última unidad tenía dígitos visualmente más grandes, tal vez porque no está colocada tan profundamente dentro del cuerpo del teléfono, y fue beneficioso para el video.

Esas pantallas LED, desarrolladas originalmente para calculadoras de bolsillo, tienden a deteriorarse con el tiempo. Cada teléfono que tengo tiene una notable diferencia en el brillo entre los dígitos. La razón es probable que los AON s fueran propensos a congelamientos y bloqueos frecuentes, y una vez que se bloqueaba, la multiplexación de la pantalla se atascaba con uno de los dígitos encendidos durante un largo período de tiempo. De hecho, tenía algunas pantallas de reemplazo en mejores condiciones a mano, pero decidí mantener una apariencia más auténtica para el video.

El video ha sido filmado con una videocámara barata con mucha prisa en el último momento. Luego fue pirateado usando el video NLE incorporado de Blender, solo porque sabía cómo usarlo y no tenía nada mejor. La parte de introducción tenía la intención de recordar qué es esta cosa y explicar cómo se cargó el programa. También pensé filmar cómo se inserta la ROM en el zócalo, pero tuve que omitirlo porque la condición del zócalo requeriría usar ambas manos y hacer muchos gemidos obscenos en el proceso.

Lanzamiento


La demostración tenía una historia divertida relacionada con la entrada de un componente en particular.

Dos semanas antes de Chaos Construction 2018, las reglas se actualizaron ligeramente. El componente de demostración ZX Spectrum 640K se convirtió básicamente en una demostración combinada de Oldschool , al permitir entradas para cualquier otra computadora doméstica lanzada antes de 1991. Por alguna razón, probablemente para satisfacer las partes conflictivas de la escena, los organizadores decidieron mantener el nombre del antiguo componente a pesar de este cambio. Calentado con la larga discusión sobre qué considerar un ZX Spectrum (hay un montón de clones expandidos por ahí), inevitablemente terminó con algo de confusión y crítica.

Como estaba en un modo bastante zombie temprano en la mañana después de un largo maratón de desarrollo, estaba en duda y tomé una decisión ahora cuestionable de enviar mi entrada en la categoría recientemente cambiada. Además, los organizadores unieron todas las entradas de Wild Demo y algunas otras composiciones en Demo combinada , por lo que solo una entrada que no era ZX además de la mía terminó en la categoría ZX Spectrum . Mirando hacia atrás, la decisión correcta sería apegarse al componente Wild . Mis puntos de excusa en ese momento eran que AON tenía algunas cualidades de una plataforma en mis ojos, como ser un hardware real del pasado, la posibilidad de repetir fácilmente el proceso de ejecución (a diferencia de un cajero automático o una demostración de cámara de fotos), y no era solo un dispositivo único en su tipo, pero un estándar común con varios firmware intercambiables diferentes.

Esta situación finalmente se convirtió en un meme de la escena. Más tarde, en 2018, porté la demostración a ZX Spectrum , cerrando el círculo. En 2019, el teléfono rojo apareció en algunos de los productos de Chaos Constructions , e incluso apareció como uno de los objetos importantes en un juego basado en memes de la escena presentado en CaFe 2019 . Yo mismo lo exploté en mi demo NES 2019 . Entonces, en retrospectiva, tal vez esta peculiaridad de lanzamiento no fue tan mala, después de todo.

Descargar


AONDEMO con código fuente
Puerto ZX Spectrum ( video )
AONZ80Emu para Windows
LED9ED para Windows
PCSPE para un DAW habilitado para VSTi

Source: https://habr.com/ru/post/486010/


All Articles