Erstellen einer Demo für ein altes Telefon - AONDEMO

Ich wollte eine Demo machen, seit ich dieses Phänomen der Computersubkultur am klassischen Beispiel der polnischen Lyra II kennengelernt habe. Ich wollte auch regelmäßig etwas bei der größten russischen Demopati, Chaos Constructions , ausstellen, aber jedes Mal erreichten meine Hände nicht. Schließlich war es möglich, beide Bedürfnisse gleichzeitig im Stil von Van Damme (Doppelschlag vom Plattenteller) zu befriedigen - AONDEMO herzustellen und einzurichten. Im Wettbewerb ZX Spectrum 640K Demo .


Wir bieten Ihnen eine detaillierte Anleitung, wie Sie zu einem solchen Leben gelangen.

Die Geschichte


Telefone mit automatischer Anrufer-ID (Anrufer-ID), auch als "Anrufer-ID" oder "Elektronischer Sekretär" bekannt, erschienen etwa 1989 in der UdSSR und entwickelten sich in den nächsten 15 Jahren rasch, indem sie Studenten und arbeitslose Ingenieure (zusammen mit der Montage) verdienten Spektrum) und ganze Genossenschaften, zum Haupttätigkeitsthema relativ großer Unternehmen. Mitte der neunziger Jahre wurde ein solches Telefon in fast jeder Wohnung gefunden, und jeder Benutzer des Telefonnetzes konnte anhand der Art der Signaltöne im Mobilteil verstehen, ob seine Nummer jetzt bestimmt ist (falsche Signaltöne und das charakteristische Geräusch der Anfrage). Bis 2004 verschwand die Popularität solcher Geräte, der Dienst zur Bestimmung der Nummer an der TK-Anlage wurde zunächst bezahlt, und dann wurde er vollständig abgeschafft, was einem moderneren europäischen Standard Platz machte. Die Allgegenwart der Mobilkommunikation trieb kabelgebundene Telefone schnell in den tiefen Untergrund, wo noch unklar ist, aus wem die geforderten „Elite“ -Nachkommen der AON 90 ( Palikha ) stammen.

Die Szene von Entwicklern und Assemblern früher Anrufer-IDs ist eine Art Realität parallel zum heimischen Spektrum. Amateurfunk Wurzeln und Romantik. Spontane Entwicklung, Entwicklung und handwerkliche Produktion. Ähnliche Hardware, ähnliche Interessen, ähnliche Periode und Volumen der Popularität. Viele Menschen taten zunächst gleichzeitig beides. Die jungen Autoren der All-Union-Software (Pavel Sukhodolsky, der Autor Russlands , war damals etwa 15 Jahre alt), nicht ausgewähltes Ausleihen des Codes voneinander, Urheberrechte und Nachrichten im Code, Fidosny-Adressen, Artikel in der Presse, Bücher, Mythologie und vieles mehr. Eine sehr groß angelegte, aber bereits gründlich im Sand der Zeit verdeckte Geschichte vom Beginn des digitalen Zeitalters, die immer noch auf ihre Forscher wartet.

Anrufer-ID und ich


Meine Bekanntschaft mit AON fand in der ersten Hälfte der 90er Jahre statt, bereits nach den ersten Spielen, die ich auf Spectrum und Dandy sah, aber kurz vor Beginn der kreativen Programmieraktivitäten. Ich stöberte gern mit diesen Telefonen herum, experimentierte mit Schlüsselsequenzen in frischer oder unbekannter Firmware, hörte beliebte Melodien in einer „Computer“ -Version und war überrascht über „Computer“ -Stimmen sowie las die Anweisungen zum Erwähnen unbekannter Artefakte „Tonbandgerät“, „Sicherheitsschleife“. , "Sprachkarte", "Piepser". Ein Freund aus Kindertagen half seinem Vater beim Zusammenbau solcher Geräte, und ich mochte Elektronik und interessierte mich nur für Computer. In Anfällen und Anfängen beschäftigte ich mich daher mit geheimem Wissen über den Z80, den BB55 und andere magische Notationen. Gleichzeitig tauchten unter allen Freunden „Determinanten“ auf. Sie brachen oft und fielen mir in die Hände mit der Bitte zu versuchen zu reparieren, was ich manchmal erfolgreich tat, oft nicht. In den 2000er Jahren wurde diese Aktivität zunichte gemacht.

Als ich 2013 die entferntesten Ecken der Wohnung ausgrub, stieß ich auf ein paar überlebende Telefone und erinnerte mich an die alten Zeiten. Wenig später ließen mich die damaligen Forschungen auf dem Gebiet der 1-Bit-Musik, DIY-Synthesizer und insbesondere alter Computer wie KIM-1 denken, dass AON ein fertiger, vollwertiger Single-Board-Computer ist, der für nicht standardmäßige musikalische Zwecke verwendet werden kann (wie z Drumcomputer oder Sequenzer). Aus Begeisterung begann ich, einen Emulator zu schreiben und die alte Firmware zu zerlegen, aber es stellte sich bald heraus, dass die zuvor gefundenen Telefone während des Reinigungsprozesses recht erfolgreich weggeworfen wurden. Das Thema wurde verschoben.

Allmählich verschiedene Interessen, Ideen und Themen - die Entwicklung von PCSPE für PC-Lautsprecher, Erinnerungen und Interesse an alten Telefonen mit AON und ihrer Geschichte, Lesen der Website 155la3 über seltene sowjetische Funkkomponenten ( erstaunliche Segmentindikatoren! ), Alte Ideen über die musikalische Verwendung dieses Eisens, den Erwerb vieler Anrufer-IDs auf Avito sowie elektronische Ersatzteile und Werkzeuge für verschiedene Projekte, fortgesetzte Arbeiten am Emulator usw. haben sich zum richtigen Schema entwickelt. Kurz vor dem Multimatographen 2018 wurde schließlich eine logische Verbindung zwischen den Entitäten „Demo“ und „Telefon“ hergestellt (soweit ich mich erinnern kann, wurde dies durch den Ausdruck „Demo für einen Taschenrechner“ verursacht), und die gezielte Arbeit begann. Natürlich konnte in einer Woche mit ein wenig nichts Wesentliches getan werden, die Dinge verlangsamten sich, wurden aber mit dem Ansatz von CC2018 wieder aufgenommen . In den besten Traditionen gelang es mir, zwei Tage und die Nacht vor der Party durch streikende Arbeit und unglaubliche Anstrengungen die meisten Pläne zu erfinden, zu schreiben und zu debuggen, das Video zu drehen und zu bearbeiten und die Arbeit am frühen Morgen an den Wettbewerb zu senden.

Bereits nach der Veröffentlichung stellte ich fest, dass Sieben-Segment-Displays für Wild ompo kein seltener Gast sind . Aber ich habe solche Leute nicht gesehen und noch nie von ihnen gehört.

Eisen




Tatsächlich ist AON der einfachste Einplatinencomputer mit einem Sieben-Segment-Display, einer Telefontastatur und einer Telefonleitungsschnittstelle. Über anderthalb Jahrzehnte änderte sich Eisen vom Design des KR580VM80 (i8080) 1989 zum maßgeschneiderten R100-XP- Chip von Russia-Telecom 2003 (8051, Peripheriegeräte und analoges AY-3-8910 auf einem Chip) mit vielen Zwischenprodukten Haltestellen und Zweige.

Ich habe die klassischste und beliebteste Version der Entwicklung von 1990 gewählt, die historisch und technisch dem Geist des Spektrums am nächsten kommt: Z80 mit genau 4 MHz, 2 Kilobyte statischem RAM, 8-64 Kilobyte ROM, Port 8255 und Timer 8253 mit einer Eingangsfrequenz von 1 MHz. Einer der Timer-Kanäle erzeugt Interrupts, ein anderer Ton, der dritte ist nicht beteiligt. Dieses Schema wurde in Form von „großen“ und „kleinen“ Karten vorgestellt. Die erste war speziell für die Installation im Fall des lettischen Drucktastentelefons VEF-TA-12 vorgesehen , die zweite wurde in eine Vielzahl importierter Telefone, hauptsächlich Büroklone von Panasonic , integriert. Für diese Boards gab es eine Vielzahl von Firmware, insbesondere Arktur-36 , Selena , Lira , Hello . Und das bekannteste ist natürlich Russland bis einschließlich Version 23.

Das Neuprogrammieren des Telefons ist sehr einfach - jedes 5-Volt-ROM mit der erforderlichen Lautstärke und ein Programmierer reichen aus. Ich habe verschiedene EEPROMs von alten Motherboards und frischem Winbond W27C512 verwendet, die in China gekauft wurden, sowie den einfachsten und günstigsten WizardProg-87-Programmierer.

Die größte Schwierigkeit bei der Arbeit mit Eisen stellte sich als der Zustand der Tafeln unter dem ROM auf den Brettern der Antike von einem Vierteljahrhundert oder mehr heraus. Sie waren anfangs nicht von hoher Qualität, und heutzutage geht der Kontakt in ihnen ständig verloren, was es schwierig macht festzustellen, ob dies ein Fehler im geschriebenen Code oder nur ein berührungsloser Kontakt in der Buchse ist. Ich habe versucht, dieses Problem durch die Installation eines ZIF-Sockels zu lösen, aber aufgrund der Höhe der anderen Komponenten auf der Platine konnte es nicht gelötet werden, und das Regal aus den in den ursprünglichen Sockel eingeführten Anschlüssen zur Erhöhung der Höhe litt ebenfalls unter ständigem Kontaktverlust.

Effekte




Bevor ich mit der Entwicklung der Demo begann, schrieb oder fügte ich den 2014 begonnenen AON-Emulator hinzu. Ich musste mich mit einigen nicht offensichtlichen Punkten befassen und den Timer-Emulationscode 8253 eines anderen anwenden, um einen mehr oder weniger normalen Klang und die Häufigkeit von Unterbrechungen zu erhalten. Das Vorhandensein eines Emulators und zumindest rudimentäre Debugging-Funktionen beschleunigen die Entwicklung erheblich. Außerdem wurde der Code hauptsächlich im Emulator und nur gelegentlich auf der Hardware getestet, um sicherzustellen, dass alles korrekt funktioniert und auf dem LED-Display mit dynamischer Anzeige normal aussieht, was ich bisher noch nicht konnte.

Der Code wurde in regulärem SjAsmPlus geschrieben . Die Anrufer-ID verfügt über eine ziemlich bizarre Speicherkarte, die wahrscheinlich auf die Minimierung von Hardwareänderungen bei gleichzeitiger Erweiterung des ROM-Volumens für neue, leistungsstärkere Firmware zurückzuführen ist. Obwohl es möglich ist, bis zu 64 Kilobyte ROM zu installieren, stehen daher nur 32 Kilobyte im Speicher zur Verfügung, wobei zwischen Bänken mit 8 Kilobyte RAM gewechselt wird. 32-Kilobyte-Hälften des gesamten ROM können durch Ausgabe an den Port umgeschaltet werden, dies wurde jedoch für die Demo nicht benötigt, alles passte in 32K. Im ROM-Image sollten 8-Kilobyte-Bänke ohne Lücken hintereinander angeordnet sein. Daher musste ich mithilfe von Assembler-Anweisungen und einer BAT-Datei die Platzierung der Bänke an den gewünschten Adressen mit Hinzufügung von Nullen arrangieren, getrennt speichern und in das endgültige Image einfügen.

Etwa die Hälfte der Effekte in der Demo ist in ehrlichem Code geschrieben, und die zweite Hälfte, die bereits keine Zeit mehr hatte, wurde in Form von Animationen erstellt. Die Animation wurde in einem ausgepeitschten Editor-Puller LED9ED gezeichnet , der auf meiner Website heruntergeladen werden kann.



Aufgrund der relativ hohen Dichte an Effekten, etwa 4 Sekunden pro Effekt, und des allmählichen Mischens der Effekte näher an der Frist stellte sich heraus, dass der Inhalt des zentralen 16-Sekunden-Teils der Demo, in dem sich die musikalische Pseudo-Polyphonie in voller Kraft entfaltet, vollständig fehlte. Ein expliziter Füllstoffeffekt wurde dringend erfunden, wenn auch ziemlich klebrig, mit fallenden Segmenten, die sich mit dem zuvor geschriebenen Spektrumanalysator abwechseln. Ich musste hoffen, dass die hohe Dichte an Toninformationen die Aufmerksamkeit von der langwierigen Aktion auf dem Display ablenken würde.

Die Vornamen im Begrüßungsblock sind eine Hommage an frühere Enthusiasten. Dies sind die Namen der Autoren der AON-Firmware, die in Begrüßungsbildschirmen und Code enthalten sind.

Obwohl dies nicht ganz das Thema war, wäre es unverzeihlich, die Gelegenheit zu verpassen, die berühmte sieben Segmente umfassende Inschrift EGGOG zu zeigen. Der logischste Ort dafür wurde ganz am Ende gefunden - die Demo begann mit einer Nachahmung des Fehlers und endete mit einer Fehlermeldung.

Die Analyse der Software-Implementierung der Effekte macht wenig Sinn, alles ist recht transparent. Das Hauptmerkmal der Plattform, das erwähnenswert ist, ist die Notwendigkeit einer softwaredynamischen Anzeige, dh Sie müssen ständig die Bits der Anzeige sortieren und die gewünschten Segmente einschließen. Dies geschieht durch Interrupts. Die Interrupt-Rate wurde mit 960 Hertz (~ 4166 Taktzyklen pro Interrupt) als ziemlich hoch gewählt, und die Anzeige erfolgte über eine Liste beliebiger Länge, die die Reihenfolge beschreibt, in der die Entladungen eingeschaltet werden. Zusätzlich zu einer stabilen Anzeige mit anständiger Helligkeit war es einfach, zwei Effekte zu erzielen - das „Einfrieren“ mit einer charakteristischen hellen Acht (die Aufzählung der Ziffern funktioniert nicht mehr) und den Effekt der Änderung der Helligkeit (einige Entladungen werden mehrmals in einem Zyklus eingeschaltet). Im normalen Anzeigemodus beträgt die Bildwiederholfrequenz des Displays etwa 106 Hertz, wodurch das für das Auge wahrnehmbare Flimmern beseitigt und das anschließende Aufnehmen von Videos vereinfacht wird.

Musik


Der einzige AON-Soundkanal ist auf einem der Kanäle des 8253-Timers aufgebaut und kopiert das PC-Lautsprechergerät im Wesentlichen nur mit einer anderen Eingangsfrequenz - das heißt, er kann mit einem Sound einer bestimmten Höhe summen, während der Prozessor seine Arbeit erledigt. Es gibt keine Möglichkeit, die Form und Lautstärke des Signals zu ändern. Da ich mich schon seit einiger Zeit mit dem Thema Musik auf dem klassischen PC-Lautsprecher beschäftige, habe ich das PCSPE VST-Tool zum bequemen Erstellen solcher Musik in der modernen DAW geschrieben und Erfahrungen beim Arrangieren streng monophoner Melodien gesammelt (es klingt immer nur eine Note) - eine Lösung Es war offensichtlich: keine weitere 1-Bit-Engine zu schreiben, sondern einfach Musik in PCSPE zu machen und sie an AON anzupassen. Es ist weniger mühsam und authentisch im Klang und ideologisch wahr - verdrängen Sie das Ungewöhnliche vom Vertrauten.



Musik wurde in Reaper geschrieben . Da die künstlerische Idee für den Start der Demo darin bestand, den Standardstart der Rus-Firmware zu imitieren, wiederholte ich diese Melodie, imitierte einige typische Sounds (Tastendruck, Standardklingelton) und baute daraus eine rhythmische Komposition auf. Darüber hinaus entwickelte sich der Track auf der Grundlage der ursprünglichen Idee allmählich auf dem Weg der allmählichen Komplikation - immer mehr Parteien, die die Illusion des gleichzeitigen Klangs mehrerer Kanäle erzeugten. Da die Idee des schwierigsten Effekts in der Demo ein Symbol war, das von links nach rechts mit unterschiedlichen Helligkeitsstufen lief und an die Beleuchtung einer Kitt-Maschine erinnerte, habe ich auch eine Beilage mit einer Melodie von Knight Rider angefertigt und einen geeigneten Platz dafür gefunden.

Die gewählte Plattform ist in ihren visuellen Mitteln sehr begrenzt, und um die Unterhaltung zu verbessern, wurde ursprünglich beschlossen, Trackmo zu machen, dh eine exakte Synchronisation von Musik und visuellen Effekten. Daher wurden die Musik und die Handlung der Demo hauptsächlich parallel erfunden und geschrieben. Im Gegensatz zu Trackern, bei denen nur das aktuelle Muster und die aktuelle Ordnungsliste sichtbar sind, können Sie in Reaper den Track und seine Struktur als Ganzes sehen und Fragmente einfach neu anordnen. Dies half bei Entscheidungen über die Struktur und den Inhalt der Demo.

Leider stellte sich heraus, dass es sehr schwierig war, die Effekte genau mit der Musik zu synchronisieren. Der Sound in meinem Raw-Emulator stimmt nicht ganz mit dem Display überein, häufige Tests auf Hardware sind schwierig und es war keine Zeit für die Entwicklung eines normalen Synchronisationssystems mit Zeitstempeln. Infolgedessen können Sie an einigen Stellen nicht genau den genauen Treffer der Effekte in der Musik sehen. Während es Zeit gab, wurden die Timings auf dem Weg manuell angepasst, aber am Ende musste ich mich mit nicht der genauesten Synchronisation abfinden und veröffentlichen, wie es ist.

Neben Sounds war die Firmware für AONs auch für Sprachbeispiele bemerkenswert. Dabei habe ich allgemein das Speicherformat aussortiert und Beispiele angehört, in denen es viele interessante Dinge gab (3-4 verschiedene Stimmen, unauffälliges Ausleihen von Firmware zu Firmware, Sätze zum Senden eines Abonnenten an verschiedene Orte). Es gab die Idee, in die Demo, die aus diesen Beispielen besteht, eine Spracheinfügung zu erstellen, die mit einer erkennbaren Stimme etwas Unerwartetes sagt. Es blieb jedoch nicht genügend Zeit, um eine gute Idee und deren Umsetzung zu entwickeln. Interessanterweise wird die Stimme in der alten Firmware in Form von 4-Bit-Samples mit einer Sampling-Frequenz von 4500-5000 Hz gespeichert und über den PWM-Timer abgespielt.

Video


Um eine Demo für eine ungewöhnliche Hardware zu zeigen, da ich mit dieser Hardware nicht an der Party teilnehmen konnte, musste ich ein Video aufnehmen und bearbeiten - dies ist keine gewöhnliche Beschäftigung für einen Programmierer beim Erstellen einer Demo.



Im Entwicklungsprozess wurden zwei Geräte verwendet, eines mit einer kleinen Platine völlig unvorstellbar und eines mit einer großen Platine ein gut erhaltenes klassisches VEF-TA-12 . Die Tests wurden hauptsächlich beim ersten und beim letzten Debuggen und bei der Videoaufzeichnung durchgeführt - beim zweiten. Es unterscheidet sich auch zum Vorteil in visuell größeren Zahlen auf dem Display, obwohl die Art der Anzeige darin dieselbe ist. Wahrscheinlich spielte der geringere Abstand vom Display zum Filter eine Rolle.

Ein interessantes Merkmal dieses Displays, der Taschenrechner ALS318 , stellte sich heraus, dass in allen Kopien der AONs, die ich zur Hand habe, einige der Entladungen merklich an Helligkeit verloren haben. Höchstwahrscheinlich hängen die Anrufer-IDs gern, und wenn die dynamische Anzeige einfriert, leuchtet eine der Entladungen lange Zeit mit voller Helligkeit auf. Obwohl es möglich wäre, das lebendigste Display auszuwählen und zu platzieren, habe ich nichts dagegen unternommen und beschlossen, dass dies dem Video Authentizität verleihen würde.

Alles wurde im letzten Moment in großer Eile auf einer gewöhnlichen Videokamera gefilmt und dann schnell und schnell in Blender montiert - weil ich dort irgendwie wusste, wie es geht, aber es war nichts anderes zur Hand. Der einleitende Teil soll Sie daran erinnern, was für ein Wunder der Technologie es ist, und erklären, wie ein anderes Programm dahin gekommen ist. Die Pläne hatten auch einen Rahmen mit dem Einsetzen des ROM in die Platine, der jedoch aufgrund des Zustands des ROM-Panels aufgegeben werden musste und einen Zweihandwechsel durch ein langes obszönes Grunzen erforderte.

Veröffentlichung und Ergebnisse


Abschnitt für diejenigen, die sich für das Leben der Demoszene und organisatorische Feinheiten interessieren.

Wie sich herausstellte, war die Demo in der Kategorie ZX Spectrum . Nur zwei Wochen vor der Veranstaltung wurde eine Änderung der Regeln eingeführt, wonach die Teilnahme an dieser Kategorie "für ZX Spectrum-kompatible Computer und andere Computer, die spätestens 1991 veröffentlicht wurden", zulässig ist. Tatsächlich hat sich die Kategorie in eine kombinierte Oldschool-Demo verwandelt, dh eine Demo für alle alten Computerplattformen, und aus szenenpolitischen Gründen bleibt der Name derselbe. Dies verursachte natürlich ein gewisses Maß an Missverständnissen und Kritik und wurde bereits zu einem lokalen Szenenmem.

Außerdem wurden auf der Party selbst aufgrund der unzureichenden Anzahl von Arbeiten in verschiedenen Wettbewerben die meisten Demos für seltene Plattformen und Wild in der kombinierten Demo kombiniert , und zusätzlich zu meiner Arbeit wurde nur eine Nicht-ZX-Arbeit in die ZX-Demo aufgenommen . In dieser Situation halte ich es für angemessener, diese beiden Werke in Kombination hervorzuheben, und diesmal einen Wettbewerb mit ZX Spectrum im Namen nur für ZX Spectrum zu belassen. Wenn ich zum Zeitpunkt des Absendens der Arbeit über diesen Sachverhalt Bescheid wüsste, würde ich die Kategorie Kombinierte Demo wählen.

Aus welchen Gründen habe ich mich entschieden, nicht in der Kategorie Wild auszustellen (es wurden traditionell Werke im Format Video und Animation ausgestellt, obwohl es theoretisch auch für Arbeiten auf nicht standardmäßigen Plattformen gedacht ist). Ich behaupte nicht, dass die Arbeit tatsächlich sehr nahe an dieser Richtung liegt.Trotzdem ist dies eine echte Demo mit einer echten TRD- Binärdatei und Quellen für eine echte und sehr beliebte Plattform in der Vergangenheit, ähnlich wie unsere Heimcomputer. Es kann einfach auf realer Hardware gestartet und angezeigt werden - Sie benötigen nur einen Programmierer, wie im Fall von Konsolen. Eisen selbst ist auch ziemlich erschwinglich, definitiv günstiger als zum Beispiel der ZX-81. Es gibt auch keinen Emulator. Mit anderen Worten, dies ist keine einmalige, schwer zu wiederholende Aktion in Form eines Videos (z. B. eine Demo für einen Geldautomaten oder ein seltenes Modell einer Kamera). Jeder kann meine Arbeit leicht sehen und jetzt etwas Ähnliches tun.

Herunterladen


AONDEMO mit Quellen
AONZ80Emu für Windows
LED9ED für Windows
PCSPE für DAW mit VSTi-Unterstützung

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


All Articles