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

Quería hacer una demostración desde que conocí este fenómeno de la subcultura informática en el ejemplo clásico de la Lyra II polaca. También quería exhibir regularmente algo en la demopati rusa más grande, Chaos Constructions , pero cada vez que mis manos no llegaban. Finalmente, fue posible satisfacer ambas necesidades a la vez, al estilo de Van Damme (doble golpe, desde el tocadiscos): hacer y configurar AONDEMO . En la competencia ZX Spectrum 640K Demo .


Le ofrecemos una guía detallada sobre cómo llegar a esa vida.

La historia


Los teléfonos con identificador de llamadas automático (identificador de llamadas), también conocido como "identificador de llamadas" o "secretario electrónico", aparecieron en la URSS aproximadamente en 1989, y durante los siguientes 15 años se desarrollaron rápidamente, pasando de los medios para ganar estudiantes, ingenieros desempleados (junto con la asamblea Spectrum) y cooperativas enteras, al tema principal de actividad de empresas bastante grandes. A mediados de la década de 1990, se encontró un teléfono de este tipo en casi todos los apartamentos, y cualquier usuario de la red telefónica a la vez podía entender por la naturaleza de los pitidos en el teléfono si ahora se determina su número (pitidos falsos y el sonido característico de la solicitud). En 2004, la popularidad de tales dispositivos desapareció, el servicio de determinar el número en la PBX al principio se pagó, y luego se abolió por completo, dando paso a un estándar europeo más moderno. La ubicuidad de las comunicaciones móviles condujo rápidamente a los teléfonos con cable a las profundidades subterráneas, donde todavía no está claro de quién están saliendo los demandados descendientes de "élite" de AON 90 ( Palikha ).

La escena de los desarrolladores y ensambladores de identificaciones de llamadas tempranas es una especie de realidad paralela al Spectrum doméstico. Raíces de radioaficionados y romance. Desarrollo espontáneo, desarrollo y producción artesanal. Hardware similar, intereses similares, período similar y volumen de popularidad. Muchas personas al principio hicieron ambas cosas simultáneamente. Los jóvenes autores del software de toda la Unión (Pavel Sukhodolsky, el autor de Rusia , tenía entonces unos 15 años), tomar prestados el código entre ellos, derechos de autor y mensajes en el código, direcciones fidosny, artículos en la prensa, libros, mitología y mucho más. Una historia a gran escala, pero ya completamente cubierta en las arenas del tiempo, del comienzo de la era digital, que todavía espera a sus investigadores.

Identificador de llamadas y yo


Conocí a AON en la primera mitad de los 90, ya después de los primeros juegos que vi en Spectrum y Dandy, pero poco antes del inicio de las actividades de programación creativa. Me gustó hurgar con estos teléfonos, experimentar con secuencias de teclas en firmware nuevo o desconocido, escuchar melodías populares en una versión de "computadora" y sorprenderme con las voces de "computadora", así como leer las instrucciones para mencionar artefactos desconocidos "grabadora de cinta", "bucle de seguridad" , "Tarjeta de voz", "busca". Un amigo de la infancia ayudó a su padre a ensamblar tales dispositivos, y yo era aficionado a la electrónica y simplemente me interesé en las computadoras, y por lo tanto, en ataques y arranques, me involucré en el conocimiento secreto sobre el Z80, BB55 y otras notaciones mágicas. Al mismo tiempo, comenzaron a aparecer "determinantes" entre todos los amigos. A menudo se rompieron y cayeron en mis manos con una solicitud para intentar reparar, lo que hice, a veces con éxito, a menudo no. En la década de 2000, esta actividad quedó en nada.

En 2013, al excavar en los rincones más alejados del apartamento, me encontré con un par de teléfonos supervivientes y recordé los viejos tiempos. Un poco más tarde, las investigaciones en el campo de la música de 1 bit, los sintetizadores de bricolaje y especialmente las computadoras antiguas como KIM-1 me hicieron pensar que AON es una computadora de placa única lista para usar que puede usarse para fines musicales no estándar (como caja de ritmos o secuenciador). Entusiasmado, comencé a escribir un emulador y a desmontar el firmware anterior, pero pronto se hizo evidente que los teléfonos encontrados anteriormente fueron descartados con bastante éxito durante el proceso de limpieza. El tema fue pospuesto.

Gradualmente diversos intereses, ideas y temas: el desarrollo de PCSPE para PC Speaker, recuerdos e interés en teléfonos antiguos con AON y su historia, leyendo el sitio 155la3 sobre componentes de radio soviéticos raros ( ¡indicadores de segmento increíbles! ), Ideas antiguas sobre el uso musical de este hierro, la adquisición de muchos Las identificaciones de llamadas en Avito, así como las piezas de repuesto y herramientas electrónicas para varios proyectos, el trabajo continuo en el emulador, etc., se han convertido en el esquema correcto. Poco antes del Multimatógrafo 2018, finalmente se formó una conexión lógica entre las entidades "demostración" y "teléfono" (hasta donde puedo recordar, esto fue causado por la frase "demostración para una calculadora" vista), y comenzó un trabajo decidido. Por supuesto, nada significativo se podría hacer en una semana con un poco, las cosas se desaceleraron, pero se reanudaron con el enfoque de CC2018 . En las mejores tradiciones, haciendo un trabajo sorprendente y esfuerzos increíbles, durante dos días y la noche anterior a la fiesta, logré inventar, escribir y depurar la mayoría de los planes, filmar y editar el video, y enviar el trabajo al concurso temprano en la mañana.

Ya después del lanzamiento, descubrí que las pantallas de siete segmentos no son un invitado raro en las obras de Wild ompo . Pero no he visto a esas personas y no he oído hablar de ellas antes.

Hierro




De hecho, AON es la computadora de placa simple más simple con una pantalla de siete segmentos, un teclado telefónico y una interfaz de línea telefónica. Durante más de una década y media, el hierro cambió, del diseño del KR580VM80 (i8080) 1989 al chip R100-XP personalizado de Russia-Telecom 2003 (8051, periféricos y AY-3-8910 analógico en un chip), con muchos intermedios paradas y ramas.

Elegí la versión más clásica y popular del desarrollo de 1990, histórica y técnicamente más cercana al espíritu del Spectrum: Z80 a 4 MHz exactamente, 2 kilobytes de RAM estática, 8-64 kilobytes de ROM, puerto 8255 y temporizador 8253 con una frecuencia de entrada de 1 MHz. Uno de los canales del temporizador genera interrupciones, otro sonido, el tercero no está involucrado. Este esquema se presentó en forma de tableros "grandes" y "pequeños", el primero estaba destinado específicamente para la instalación en el caso del teléfono con botón pulsador VEF-TA-12 de Letonia, el segundo se colocó en una amplia variedad de teléfonos importados, principalmente clones de oficina de Panasonic . Para estas placas, había una variedad de firmware, en particular, Arktur-36 , Selena , Lira , Hello . Y, por supuesto, el más famoso es Rusia , hasta la versión 23 incluida.

Reprogramar el teléfono es muy simple: cualquier ROM de 5 voltios del volumen requerido y un programador son suficientes. Utilicé varias EEPROM de placas base viejas y Winbond W27C512 recién compradas en China, así como el programador WizardProg-87 más fácil y económico.

La mayor dificultad al trabajar con hierro resultó ser el estado de los paneles debajo de la ROM en los tableros de la antigüedad de un cuarto de siglo o más. Inicialmente no eran de alta calidad, y hoy en día el contacto en ellos se pierde constantemente, lo que dificulta determinar si se trata de un error en el código escrito o simplemente de no contacto en el zócalo. Traté de resolver este problema instalando un zócalo ZIF, pero la altura de los otros componentes en la placa no permitió que se soldara, y el estante de los conectores de aumento de altura, insertados en el zócalo original, también sufrió una pérdida constante de contacto.

Efectos




Antes de comenzar el desarrollo de la demostración, escribí, o más bien agregué, el emulador AON, que comenzó en 2014. Tuve que lidiar con algunos puntos no obvios, así como aplicar el código de emulación de temporizador de otra persona 8253 para obtener un sonido más o menos normal y la frecuencia de las interrupciones. La presencia de un emulador y al menos capacidades de depuración rudimentarias en él acelera enormemente el desarrollo. Además, el código se probó principalmente en el emulador, y solo ocasionalmente en el hardware, para asegurarse de que todo funcione correctamente y se vea normal en la pantalla LED con indicación dinámica, una simulación adecuada que aún no he podido hacer.

El código fue escrito en SjAsmPlus regular. El identificador de llamadas tiene una tarjeta de memoria bastante extraña, probablemente el resultado de minimizar las alteraciones de hardware al tiempo que expande los volúmenes de ROM para un firmware nuevo y más potente. Como resultado, aunque es posible instalar hasta 64 kilobytes de ROM, solo 32 kilobytes están disponibles en la memoria, alternando entre bancos de 8 kilobytes de RAM. Las mitades de 32 kilobytes de la ROM completa se pueden cambiar por salida al puerto, pero esto no era necesario para la demostración, todo encajaba en 32K. En la imagen ROM, los bancos de 8 kilobytes deben ir en una fila, sin espacios, por lo tanto, usando directivas de ensamblador y un archivo BAT, tuve que organizar la ubicación de los bancos en las direcciones deseadas con adiciones de ceros, guardar y fusionar por separado en la imagen final.

Aproximadamente la mitad de los efectos en la demostración están escritos en código honesto, y la segunda mitad, que ya se estaba quedando sin tiempo, se realizó en forma de animación. La animación se dibujó en un editor-extractor batido LED9ED , que se puede descargar en mi sitio web.



Debido a la alta densidad de efectos, aproximadamente 4 segundos por efecto, y la combinación gradual de efectos, más cerca de la fecha límite, resultó que el contenido de la parte central de 16 segundos de la demostración, donde la pseudopolifonía musical se desarrolla con toda su fuerza, estaba completamente ausente. Se inventó urgentemente un efecto de relleno explícito, aunque bastante pegajoso, con segmentos descendentes, alternando con el analizador de espectro previamente escrito. Tenía que esperar que la alta densidad de información de sonido distrajera la atención de la acción prolongada en la pantalla.

Los primeros nombres en el bloque de bienvenida son un homenaje a los entusiastas del pasado. Estos son los nombres de los autores del firmware AON que se encuentran en las pantallas de bienvenida y el código.

Aunque este no era el tema, sería imperdonable perder la oportunidad de mostrar la famosa inscripción EGGOG de siete segmentos. El lugar más lógico para encontrarlo fue al final: la demostración comenzó con una imitación de falla y terminó con un mensaje de error.

El análisis de la implementación del software de los efectos no tiene mucho sentido, todo es bastante transparente. La característica principal de la plataforma, que vale la pena mencionar, es la necesidad de una indicación dinámica del software, es decir, debe clasificar constantemente los bits de la pantalla e incluir los segmentos deseados. Esto se hace a través de interrupciones. La velocidad de interrupción se eligió bastante alta, 960 hertz (~ 4166 ciclos de reloj por interrupción), y la indicación se realizó a través de una lista de longitud arbitraria, que describe el orden en que se activan las descargas. Además de una pantalla estable con brillo decente, esto facilitó la creación de dos efectos: "congelación" con un característico ocho brillante (la enumeración de dígitos deja de funcionar) y el efecto de cambiar el brillo (algunas descargas se encienden varias veces en un ciclo). En el modo de visualización normal, la frecuencia de actualización de la pantalla es de aproximadamente 106 hertzios, lo que eliminó el parpadeo notable a simple vista y simplificó la grabación posterior en video.

Musica


El único canal de sonido AON está construido en uno de los canales del temporizador 8253 y esencialmente copia el dispositivo de altavoz de la PC, solo con una frecuencia de entrada diferente, es decir, puede zumbar con un sonido de una altura determinada mientras el procesador se ocupa de sus asuntos. No hay forma de cambiar la forma y el volumen de la señal. Dado que he estado trabajando en el tema de la música en el clásico PC Speaker durante algún tiempo, escribí la herramienta PCSPE VST para crear convenientemente dicha música en DAW moderna y obtuve experiencia en la organización de melodías estrictamente monofónicas (solo suena una nota a la vez) - una solución Era obvio: no escribir otro motor de 1 bit, sino hacer música en PCSPE y adaptarlo a AON. Es menos laborioso y auténtico en sonido, e ideológicamente cierto: exprime lo inusual de lo familiar.



La música fue escrita en Reaper . Como la idea artística para comenzar la demostración era imitar el lanzamiento estándar del firmware Rus, simplemente repetí esta melodía, imité algunos sonidos típicos (presionar botones, tono de llamada estándar) y construí una composición rítmica a partir de ellos. Además, la pista se desarrolló gradualmente, en base a la idea inicial, a lo largo del camino de la complicación gradual: más y más fiestas, creando la ilusión del sonido simultáneo de varios canales. Dado que la idea del efecto más difícil en la demostración era un símbolo que iba de izquierda a derecha con diferentes niveles de brillo, que recordaba la iluminación de una máquina Kitt, también hice un inserto con una melodía de Knight Rider y encontré un lugar adecuado para ello.

La plataforma elegida es muy limitada en medios visuales, y para aumentar el entretenimiento inicialmente se decidió hacer trackmo, es decir, una sincronización exacta de música y efectos visuales. Por lo tanto, la música y la trama de la demo se inventaron y escribieron principalmente en paralelo. A diferencia de los rastreadores, donde solo el patrón actual y la lista de pedidos son visibles, en Reaper puede ver la pista y su estructura en su conjunto, así como reorganizar fácilmente los fragmentos. Esto ayudó a tomar decisiones sobre la estructura y el contenido de la demostración.

Desafortunadamente, sincronizar con precisión los efectos con la música resultó ser muy difícil. El sonido en mi emulador en bruto no coincide con la pantalla, las pruebas frecuentes en el hardware son difíciles y no hubo tiempo para desarrollar un sistema de sincronización normal usando marcas de tiempo. Como resultado, en algunos lugares no se puede ver exactamente el impacto exacto de los efectos en la música. Si bien hubo tiempo, en el camino, los tiempos se ajustaron manualmente, pero al final tuve que llegar a un acuerdo con la sincronización más precisa y publicar como es.

Además de los sonidos, el firmware para AON fue notable por las muestras de voz. En el proceso, clasifiqué en términos generales su formato de almacenamiento y escuché muestras en las que había muchas cosas interesantes (3-4 voces diferentes, discretas prestándolas del firmware al firmware, frases de enviar un suscriptor a varios lugares). Hubo una idea de insertar un discurso en la demostración compuesta por estas muestras, diciendo algo inesperado con una voz reconocible. Pero no hubo tiempo suficiente para llegar a una buena idea y su implementación. Como dato interesante, la voz en el firmware antiguo se almacena en forma de muestras de 4 bits con una frecuencia de muestreo de 4500-5000 Hz, y se reproduce a través del temporizador PWM.

Video


Para mostrar una demostración de un hardware inusual, no pudiendo asistir a la fiesta con este hardware, necesitaba grabar y editar un video; esta no es una ocupación normal para un programador al crear una demostración.



En el proceso de desarrollo, se utilizaron dos dispositivos, uno completamente impresentable con una placa pequeña y otro clásico VEF-TA-12 bien conservado con una placa grande. Las pruebas se llevaron a cabo principalmente en el primero, y los últimos toques de depuración y grabación de video, en el segundo. También difiere en la ventaja de los números visualmente más grandes en la pantalla, aunque el tipo de indicador es el mismo. Probablemente la menor distancia de la pantalla al filtro jugó un papel importante.

Una característica interesante de esta pantalla, la calculadora ALS318 , resultó ser que en todas las copias de los AON que tengo en la mano, algunas de las descargas perdieron brillo notablemente. Lo más probable es que a los identificadores de llamadas les gustaba colgar, y cuando la indicación dinámica se congela, una de las descargas durante mucho tiempo se ilumina con brillo completo. Aunque sería posible elegir y poner la pantalla más animada, no hice nada al respecto, decidiendo que esto agregaría autenticidad al video.

Todo se filmó en el último momento con mucha prisa, en una cámara de video normal, y luego se montó rápida y rápidamente en Blender, porque de alguna manera supe cómo hacerlo, pero no había nada más a la mano. La parte introductoria está diseñada para recordarle el milagro de la tecnología y para explicar cómo llegó otro programa allí. Los planes también tenían un marco con la inserción de la ROM en el tablero, pero tuvo que ser abandonado debido al estado del panel de la ROM, que requería el reemplazo de dos manos con un gruñido largo y obsceno.

Lanzamiento y Resultados


Sección para aquellos que estén interesados ​​en la vida de las demostraciones y sutilezas organizacionales.

Al final resultó que, la demostración estaba en la categoría ZX Spectrum . Solo dos semanas antes del evento, se introdujo una enmienda a las reglas, que dice que la participación en esta categoría puede funcionar "para computadoras compatibles con ZX Spectrum y otras computadoras lanzadas a más tardar en 1991". De hecho, la categoría se ha convertido en una demostración combinada de Oldschool , es decir, una demostración para cualquier plataforma de computadora antigua, y por razones de naturaleza política de escena, el nombre sigue siendo el mismo. Por supuesto, esto causó una cierta cantidad de malentendidos y críticas, y ya comenzó a convertirse en un meme de la escena local.

Además, en la fiesta en sí, debido a la cantidad insuficiente de trabajos en varias competiciones, la mayoría de las demostraciones para plataformas raras y Wild se combinaron en Combined Demo , y además de mi trabajo, solo un trabajo no ZX entró en la ZX Demo . En esta situación, creo que sería más apropiado destacar estos dos trabajos en Combined , dejando esta vez una competencia con ZX Spectrum en nombre solo de ZX Spectrum. Si supiera sobre este estado de cosas al momento de enviar el trabajo, elegiría la categoría de Demostración combinada .

Por qué razones, decidí no exponer en la categoría Wild (tradicionalmente exhibía obras en formato de video y animación, aunque en teoría también está destinado a trabajar en plataformas no estándar). No sostengo que, de hecho, el trabajo esté muy cerca de esta dirección.Pero aún así, esta es una demostración real, con un binario y fuentes TRD reales , para una plataforma real y muy popular en el pasado, similar a las computadoras de nuestro hogar. Se puede iniciar y ver fácilmente en hardware real: solo necesita un programador, como en el caso de las consolas. El hierro también es bastante asequible, definitivamente más asequible que, por ejemplo, el ZX-81. Tampoco hay emulador. En otras palabras, esta no es una acción única y difícil de repetir en forma de video (como una demostración para un cajero automático o un modelo raro de cámara), cualquiera puede ver fácilmente mi trabajo y hacer algo similar ahora.

Descargar


AONDEMO con fuentes
AONZ80Emu para Windows
LED9ED para Windows
PCSPE para DAW con soporte VSTi

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


All Articles