Meine kleinen Relais: Brainfuck Computer ist Realität



Genau ein Jahr ist seit der letzten Veröffentlichung vergangen und ich dachte, dass der erste April ein großartiger Tag für die jährliche Zusammenfassung meiner drei verrückten Computerprojekte ist. Zu dieser Zeit existierte das Projekt nur auf dem Papier, aber jetzt ist es definitiv Realität geworden.


Klingelnde Relaisblöcke, die schnellsten Relaisberechnungen der Welt (dies ist jedoch nicht genau), Nachbearbeitung, Vakuumanzeigen und blinkende LEDs.


Historischer Hintergrund



Abbildung 1: Ein Band von Wojciechowskis "Radio-Electronic Toys", 1979, von meinem Leben und mir selbst geschlagen.


Es war einmal, als alles groß war und ich klein war (ein Jahr wie dieses im Jahr 2002), mein Vater gab mir Wojciechowskis Buch Radio-Electronic Toys. Damals hatte ich keinen Computer, aber ich hörte überhaupt nichts über das Internet, und ein Buch, das vielen bekannt war, erwies sich als ein Lagerhaus für unterhaltsame elektronische Geräte. Darunter befanden sich eine Beschreibung eines elektronischen Computers und eine einfache Modellschaltung an Telefonrelais. Dieses Modell, das ich 2008 in meinem zweiten Jahr an der Universität hatte, habe ich für einen Bericht über die Geschichte der Computer zusammengestellt.



Abbildung 2: RCM - 4-Bit-ALU


Zu dieser Zeit erkundete ich bereits die Weiten des Internets und war mir der Existenz sowohl des Harry Porter- Relaiscomputers als auch des Relaiscomputers Nummer 2 und des Zuse-Relaiscomputers bewusst - ich dachte darüber nach, eine eigene Einheit zu bauen.


Für diejenigen, die sich nicht bewusst sind, was andere haben, empfehle ich, meine Videoüberprüfung von hausgemachten Relay-Computern anzusehen. Im Laufe des Jahres ist es etwas veraltet, hat aber nicht aufgehört, weniger interessant zu sein:



Im selben Jahr 2008 entschied ich mich im Unterricht über die theoretischen Grundlagen der Elektrotechnik für die Hauptkomponente - ein Reed-Relais. In einem der Labors war ich überrascht, auf der Wellenform zu beobachten, wie das Baby RES55 bei einer Frequenz von 50 Hz arbeitete. Dies machte einen bleibenden Eindruck auf mich und ich begann, Reedschalter anzusammeln.


10 Jahre sind vergangen ....


Und nach einem Jahrzehnt bewegt sich das Projekt mit großer Geschwindigkeit zur Veröffentlichung. Alles bewegte sich von einem toten Punkt im November 2016, als die aktuelle Architektur geboren wurde. Leider habe ich mich entschlossen, alle Leiterplatten selbst herzustellen. Infolgedessen verwandelte sich ein ganzer Quadratmeter doppelseitiger Leiterplatte in ein schwarzes Loch und saugte mehrere hundert Mannstunden Freizeit in sich auf, was für einen Mitarbeiter etwa sechs Monate entspricht. Von April bis November 2k17 passierte praktisch nichts.


Infografiken



Die Architektur der Maschine entspricht der Turingmaschine. Es gibt ein Band mit Daten - RAM für 64 Kiloslov (16-Bit-Wort). RAM - Cache - Chips von einer Art Matte. Motherboards für Intel Pentium. Informationen zur Authentizität finden Sie im Abschnitt ... Authentizität. Mikroschaltungs-RAM wird in den meisten mir bekannten hausgemachten Relais-Computern verwendet.


Das zentrale Element ist ein 16-Bit-Paralleladdierer. Er ist für die Berechnung der Nummer der nächsten Anweisung verantwortlich und arbeitet mit Daten und einem Zeiger darauf.
An den Eingängen des Addierers befinden sich ein temporäres 16-Bit-Register und ein 12-Bit-Befehlsregister. 12 Bits werden auch an die hohen 4 Bits des Addierers gesendet, was "volle" 16 Bits ergibt. Es ist wichtig, dass der Addierer beim Addieren und Subtrahieren einer 12-Bit-Zahl korrekt funktioniert.


Der Nachteil liegt auf der Hand: Zu einem Zeitpunkt können wir nur 2 ^ 12 Anweisungen vorwärts oder rückwärts springen oder den Zeiger oder die Daten um diesen Wert ändern. Die erste - Sie müssen beim Schreiben von Programmen berücksichtigen, die zweite - Sie können den Vorgang jederzeit wiederholen.


Die Subtraktion erfolgt im zusätzlichen Code. Die parallele Übertragung bietet eine konstante Rechenverzögerung - nur 3 in Reihe stehende Relais. Dies ist nicht mehr als 2 ms.


Das IP-Register und das AP-Register sowie der RAM-Eingang sind über Latches mit dem Ausgang des Addierers verbunden.


Berechnungen


Die Hauptoperationen bestehen aus genau zwei Teilen. In einem Fall arbeiten wir mit der Berechnung eines neuen Zeigerwerts, im anderen mit einem neuen Datenwert.


Jede steigende Flanke startet die Berechnung einer neuen Befehlsnummer. Im Wesentlichen ist IP ++ fertig. Nach der Berechnung wird IP dem Adresseneingang der Speicherkarte zugeführt und über den Datenbus tritt der Befehl in das Befehlsregister ein. Die hohen 4 Bits bestimmen den zukünftigen Befehl, die niedrigen 12 sind höchstwahrscheinlich ungleich Null und in Zukunft wird der Addierer die Zahl im temporären Register genau um diesen Wert ändern.


Jede fallende Flanke beginnt den Vorgang.


Bei Operationen mit AP- und IP-Registern sieht die Reihenfolge der Aktionen folgendermaßen aus:


  1. Über den Adressbus wird der Inhalt des IP (AP) -Registers in das temporäre Register kopiert;
  2. Temporäre Register und Befehlsregister werden dem Eingang des Addierers zugeführt. Nach 2 ms ist die Antwort am Ausgang des Addierers fertig.
  3. Die Antwort wird im IP- oder AP-Register aufgezeichnet.

Es gibt einige Funktionen. Bei AP + BIAS- und AP-BIAS-Befehlen ist dies genau der Fall, bei bedingten Befehlen, wenn beispielsweise IP = (* AP == 0?) IP + 1: IP + -BIAS, müssen wir den aktuellen Datenzellenwert noch auf den Datenbus hochladen und entfernen Informationen von einem Nulldetektor.


Bei AP + BIAS- und AP-BIAS-Vorgängen unterscheidet sich die Reihenfolge geringfügig.


  1. Über den Datenbus wird der aktuelle Wert der Speicherzelle in das temporäre Register geschrieben.
  2. Temporäre Register und Befehlsregister werden dem Eingang des Addierers zugeführt. Nach 2 ms ist die Antwort am Ausgang des Addierers fertig.
  3. Das AP-Register wird weiterhin dem Eingang der Speicherkarte zugeführt. Die Antwort des Addierers wird direkt in den Speicher geschrieben.

Berechnungen erfolgen immer im 16-Bit-Modus. Das Null-Flag des bedingten Zweigs ist jedoch definiert als:


Z = ((16bit?) *AP : (*AP) & 0x00FF == 0) ; 

Bau


Seit dem letzten Mal hat sich nichts geändert.


Modul



Abbildung 3: Computermodul. Von links nach rechts: D-Flip-Flop-Modul, Diodenmodul, 2AND / 2XOR-Modul


Im Kern befindet sich ein kleines 40x64mm Modul. Jedes Modul ist eine Leiterplatte mit 4 Relais, auf der eine einfache logische Operation implementiert ist. Es gibt einen Anschluss für 16 Kontakte (es gibt Module für 12 und 14 Kontakte) und bis zu 4 LEDs. Alle Größen sind streng festgelegt.



Abbildung 4: Module während der Montage


Zum Beispiel:


  1. 2AND / 2XOR-Modul - 2 unabhängige logische Operationen - 2AND und 2XOR. Im Addiererblock werden 32 Teile verwendet, zwei Module pro Bit. Zuerst wurden alle 4 LEDs gelötet, aber die Schaltung des Moduls ist so, dass zwei Relais an jedem Modul parallel geschaltet sind. Um den vom Gerät verbrauchten Strom zu reduzieren, wurde die Hälfte der LEDs entfernt.
  2. D-Trigger-Modul - 64 Teile gehen an zwei Registerblöcke. Davon sind 60 Trigger ohne Aktivierungssignal.
  3. Diodenmodul - nur 8 Dioden auf der Platine zur Implementierung einer Diode mit mehreren Eingängen ODER. Ein schmutziger Hack, der es jedoch ermöglicht, sowohl an einem Relais (ich habe jetzt noch ungefähr 400 Relais in Reserve) als auch pünktlich zu speichern - im Vergleich zu einem Relais wird das Signal sofort an den Ausgang eines solchen Logikelements übertragen.
  4. Modul 2 & - Dies ist der Grundstein. Tatsächlich gibt es 4 Relais mit einem Schaltkontakt, um absolut jede Logikschaltung zu implementieren. Sie werden in einer unbekannten Menge zu Logikblöcken gehen.
  5. Universal 2AND / 2OR, das so hergestellt ist, dass nahezu jede logische Funktion implementiert werden kann - 4AND, 4OR, 4AND-NOT, 4OR-NOT und so weiter. Es wird auch in einer unbekannten Menge zum Logikblock gehen.

Wie gesagt - nachdem ich viel Zeit mit der Herstellung hausgemachter Leiterplatten verschwendet hatte, flippte ich aus und bestellte bei den Chinesen einen kompletten Satz Leiterplatten. In der ersten Woche habe ich die ersten Module zusammengestellt. Und einen Monat später waren alle Module für den Addiererblock fertig.



Abbildung 5: Addiererblock


Blockieren


32 Module mit 8 Modulen in 4 Reihen werden zu einem Funktionsblock zusammengefasst. Insgesamt gibt es 5 Blöcke (im schlimmsten Fall 6):


  1. Der Addiererblock ist ein 16-Bit-Volladdierer. Zwei 16-Bit-Eingänge für Zahlen, 1 Null-Bit-Übertragungsleitung, zwei Ausgänge. Zum einen die Summieroperation, zum anderen das XOR zwischen den Eingängen. Es kann als eigenständige Operation verwendet werden.
  2. IP / AP-Registerblock - Zwei unabhängige 16-Bit-Register ohne Aktivierungssignal. Die Ergebnisse von Q und ~ Q werden direkt verwendet und durch Latches an die folgende Stelle geleitet. Es war möglich, 4 Relais zu löten, aber um das Relais zu schonen, wurde die Funktionalität auf externe Verriegelungen übertragen.
  3. Registerblock TMP / CMD - Hier gibt es drei Register. Eines ist ein temporäres 16-Bit-Register. Genau das gleiche wie IP oder AP. Der zweite ist 12-Bit, sein Ausgang ist über einen Latch mit dem Eingang des Addierers verbunden. Das dritte ist 4-Bit mit einem integrierten Aktivierungssignal. Es wird verwendet, um den aktuellen Befehl zu speichern.
  4. Logikblöcke - 2 Stück. Oder drei. Das Schema ist noch unbekannt. Vorläufige Berechnungen zeigen, dass 64 Module ausreichen (GOTO: Memory Board).

An der Basis jedes Blocks beträgt die Basisplatine 200 x 150 mm ohne Verkabelung. Alles, was darauf steht, sind 32 Anschlüsse und Vierkantstifte, die für die Runduminstallation von unten herausragen.



Abbildung 6: Grundplatte und Korb


Die Module, die einfach so im Stecker herausragen, sind unzuverlässig. Sie werden hier und da hängen, vom Zittern abweichen und in jeder Hinsicht die Zuverlässigkeit der Struktur verringern. Um sie zu reparieren, habe ich spezielle Körbe mit Rillen gezeichnet und gedruckt. Die Module werden sicherlich nirgendwo hingehen - sie haben eine Zugfahrt nach Moskau und zurück ohne Probleme überstanden.


Der Korb hätte einfacher gezeichnet werden können - mit einer Schicht von 0,32 mm würde er etwas mehr als 10 Stunden drucken. Drei Körbe sind mit PLA-Kunststoff bedruckt, zwei weitere mit HIPS. Letzteres verzieht sich aufgrund des Fehlens eines Gehäuses für meinen Drucker beim Drucken merklich.


Möglicherweise stellen Sie fest, dass der Addiererblock keine Ohren zum Anbringen hat. Der Korb für ihn wurde gleich zum ersten Mal gedruckt. Dann werde ich entweder diese Ohren andocken oder einen neuen Korb drucken.

Abbildung 7: Addiererblock und Logikblock.


Drahtwickel


Auf der Basisplatine warten wir auf 600 Schlussfolgerungen, die miteinander verbunden werden müssen. Glücklicherweise ist es notwendig, nicht nur alles, sondern nur fast alles zu verbinden. Einfacher geht es nicht.


Wir nehmen ein Spezialwerkzeug, eine Drahtspule und ein Bein nach dem anderen und wickeln den Anschlussplan auf.



Abbildung 8: Zusammenfassung des Addiererblocks


Dies ist nur der Anfang der Arbeit. Nun, als Anfang. Zuerst gab es leises Entsetzen - die Drähte lagen willkürlich, einige Jumper sind lang, andere zu lang ... Nachdem ich etwas besser gelernt hatte als zuvor, entfernte ich die meisten Jumper und drehte sie erneut - ich begann, die Jumper mit einer Schnur zu dehnen. Die Drähte hängen also nicht heraus und das Ergebnis sieht viel besser aus. Ich habe versucht, so zu setzen, dass die Drähte nicht auf die Ecken nicht ihrer Stifte drückten. Infolgedessen kein einziger Stromkreis. Vom ersten Versuch an gab es nur irdene Linien.



Abbildung 9: Zusammenfassung des Addiererblocks. Endergebnis


Im Moment ist es nicht ganz einfach, aber für das erste Board ein sehr gutes Ergebnis, denke ich. Bis jetzt habe ich nicht gelernt, wie man Draht zur Spule oder ein Kurvenwerkzeug oder Hände legt ...


Beim Kameraden UA3MQJ enthält einen ausführlichen Artikel zu dieser Installationsmethode.


Zusätzlich zum Addiererblock wird ein Registerblock benötigt. Vielmehr zwei Blockregister. Noch ein paar Monate - und weitere 64 Module werden zusammengebaut und getestet. Es bleibt die Grundplatte aufzuwickeln.



Wie war das?


Anzeigemodule



Abbildung 10: Anzeigemodul


Der aktuelle Status der Prozessorregister muss auf etwas angezeigt werden, und ich habe entschieden, dass die Vakuumanzeigen genau richtig sind. Auf der Platine 100x100mm (für 10 Stück dieser Größe können Sie bei den Chinesen für 5 US-Dollar bestellen) befinden sich 6 IV-6-Anzeigen, K155TM8-Trigger und ein Mikrocontroller. Die Anzeige hier ist dynamisch.


Es gibt auch einen 16-Bit-Eingang zum direkten Lesen des Status des Registers und einen UART-Port zum Empfangen von Befehlen von der Speicherkarte.


Jetzt kann die Firmware den Status des 16-Bit-Ports lesen und im HEX-Format auf der Anzeige anzeigen. Insgesamt benötige ich 4 solcher Module. Drei zeigen den aktuellen Status der Register an - IP, AP und CMD des Registers, um eine bequemere Visualisierung der aktuell gespeicherten Werte zu erhalten. Viertens - zeigt die Gesamtzahl der ausgeführten Anweisungen an.


Verriegelung



Abbildung 11: Verriegelungsmodul


Das Latch-Modul besteht aus 8 RES43-Relais. Im Inneren befinden sich zwei Kontakte. Links und rechts sind LEDs, die den aktuellen Status des Ein- und Ausgangs anzeigen.


Die Größe des Riegels beträgt 100x100mm. Die benötigte Menge beträgt 8 Stück. Zwei sind fertig, es bleiben noch sechs zu sammeln.


Speicherkarte



Abbildung 12: Speicherkarte. Gesamtansicht


Der größte Block, der hauptsächlich zwei 64 KByte statische RAM-Chips und Übereinstimmungsschemata für Adresseneingänge und einen Datenport enthält. Auf der Platine befindet sich der Mikrocontroller ATmega1280. Er hat zwei wichtige Aufgaben:


  1. Herunterladen des Programms und der Anfangsdaten in den RAM. Die kompilierte Binärdatei muss gespeichert werden. Dazu kann über UART oder Telnet (über WLAN) eine Verbindung zur Speicherkarte hergestellt und die ausführbare Datei heruntergeladen werden. MK liest den Header und legt Abschnitte mit Code und Daten im RAM an. Ich bin völlig zu faul, um dies mit den Kippschaltern und Tasten zu tun - ein Brainfuck-Programm, das etwas komplizierteres machen kann HelloWorld enthält Tausende von Anweisungen. In dieser Hinsicht gibt es ein paar Trumpfkarten im Nest, aber ein anderes Mal darüber.
  2. Es implementiert Befehle zum Lesen und Schreiben von Daten von der Konsole. Ja ja Anweisungen. "" und "," werden mit MK implementiert. Vielmehr informiert die Relaislogik den MK, dass es nun notwendig ist, den Status des Datenbusses an die Konsole zu übertragen oder umgekehrt, um den Wert von der Konsole an den Datenbus auszugeben. Tatsächlich arbeitet MK in UART als Parallelschnittstellenkonverter. Ja, es ist durchaus möglich, etwas Besonderes auszuführen. Chip und ich werde darüber nachdenken.

Ich habe immer noch nicht entschieden, was ich mit dem 16-Bit-Modus machen soll. Natürlich sind die meisten Programme unter dem 8-Bit-Brainfuck geschrieben und alles ist einfach - wir lesen und schreiben das Low-Byte. Und was soll ich im 16-Bit-Modus tun? Das ganze Wort oder auch nur das Low-Byte anzeigen?


Zusätzlich zu den Hauptaufgaben hat MK eine Reihe von Nebenaufgaben, auf die Sie im Prinzip verzichten können, die jedoch auf die Benutzerfreundlichkeit der Maschine abzielen:


  1. MK ist für die Anzeige eines kleinen Speicherbereichs auf einer 32 x 16 Pixel großen LED-Matrix verantwortlich. Er tut dies, während der Adressbus und der Datenbus nicht von der Hauptlogik belegt sind. Hier bin ich mir nicht sicher, ob für MK im Allgemeinen Zeit im Bus sein wird, daher muss die Frage überprüft werden. Aber in der Kopfzeile des Programms gibt es eine Startadresse für die Anzeige und ich werde versuchen, es zum Laufen zu bringen. Die Anzeige ist dynamisch. In einem Taktzyklus werden zwei Datenspalten gleichzeitig ausgegeben.
  2. Wenn das Flag des geschützten Speichermodus in der Binärdatei aktiviert ist, generiert der MK bei dem Versuch, einen Datenabschnitt auszuführen oder in den Speicherabschnitt zu schreiben, eine Ausnahme "Segmentierungsfehler". So können wir sicherstellen, dass das Programm nicht dahin geht, wo es nicht sein sollte. Das Lesen des Speicherabschnitts ist nicht verboten.
  3. Wenn das Code-Steuerflag aktiviert ist, aktiviert MK den Simulator und führt darin dieselben Anweisungen wie der Computer aus, wobei die erwarteten und empfangenen Ergebnisse verglichen werden. Wenn das Ergebnis anders ist, wird die Ausnahme "Maschinenfehler" ausgelöst. Dies bedeutet, dass bei den Berechnungen ein Fehler aufgetreten ist und möglicherweise ein Modul ausfällt. Oder auch wir haben die Taktfrequenz angehoben und die Relais haben keine Zeit mehr zum Berechnen. Nur mit Hilfe dieser Funktionalität werde ich versuchen, das Maximum aus dem Auto herauszuholen - während dieser Zeit muss etwas den korrekten Betrieb kontrollieren.

Es gibt immer noch eine temporäre, aber immer noch wichtige Funktion der Speicherplatine - sie emuliert einen Logikblock, während er nicht vorhanden ist. Auf der Speicherplatine befinden sich Eingangs- und Ausgangsleitungen, und wir können die erforderlichen Signale an die Blöcke liefern. Wenn Sie also alle Steuerleitungen mit der Speicherplatine verbinden und ein Programm schreiben, das die erforderliche Befehlsfolge ausgibt, wird dies in kürzester Zeit geschehen:


  1. Führen Sie die ersten Programme zur Ausführung aus.
  2. Debug-Algorithmen und Schaltungen des Logikblocks, die die Wahrscheinlichkeit einer fehlerfreien Montage und eines fehlerfreien Betriebs später erhöhen.

Wenn dann die erforderlichen Module der Logikblöcke gesammelt werden, werden alle Funktionen schrittweise "auf Eisen" übertragen. Wenn MK nicht mehr für die Logik verantwortlich ist, gilt das Projekt als abgeschlossen.


Authentizität


Das Projekt war ursprünglich nicht als reines Relais ohne Verwendung von Transistoren und Mikroschaltungen konzipiert. Einerseits stellt sich heraus, dass der Computer hybride ist und an Strahlungsbeständigkeit verliert, andererseits haben die meisten Relaiscomputer eine ähnliche Krankheit. Die endgültige Version der Maschine verwendet einen Speicherchip und einen Mikrocontroller. Ferritspeicher wird in einem anderen, bereits „silikonfreien“ Projekt verwendet.


Um die Wirkung von Nicht-Kanonen zu kompensieren, habe ich eine elektronische Schreibmaschine „Robotron S6130“ bekommen.



Abbildung 13: Elektronische Schreibmaschine vom Typ Kamille.


Leider ging die Maschine in einem schäbigen Zustand zu mir. Es wurde für eine lange Zeit in der Buchhaltung verwendet, aber am Ende wurde aufgegeben, um in herrlicher Isolation zu sterben.



Ich empfehle eine einzigartige Bewertung dieses Monsters.


Direkt ist die Mechanik in gutem Zustand, aber die Prozessorplatine, auf der ein Paar D-0,25 NiCd-Batterien stand, war stark beansprucht. Sie leckten sicher und überfluteten alles mit Elektrolyt.


Ich möchte es wiederherstellen und als Eingabe- / Ausgabeterminal für den Computer verwenden. Zusätzlich zur Fehlfunktion des elektronischen Teils verfügt das Gerät jedoch über ein russisches Gänseblümchen (Laufwerk mit Buchstaben) und russische Schlüssel. Der zweite wird durch Aufkleber entschieden, der erste ist zu suchen und hier habe ich noch kein Glück. Über die Tatsache, dass eine Patrone mit einem Farbband erforderlich ist, schweige ich im Allgemeinen. Zumindest habe ich Papier für sie ..


Wenn die Elektronik entscheidet, dass sie unwiederbringlich verloren geht, werde ich versuchen, einen Spender zu finden, oder ich werde eine neue elektronische Füllung entwickeln. Es ist nicht die schwierigste Aufgabe, ein Kontrollbrett zu einer Handvoll Shagoviks zu machen. Es wird schwieriger sein, ein Handbuch aus dem Deutschen zu übersetzen und TK zu verstehen. Natürlich verdient diese Maschine einen separaten Artikel über die Ergebnisse der Wiederbelebung. Gegen sie hat bisher die Priorität der geleisteten Arbeit.


Tests


Alle, die bis zu diesem Ort gelesen haben, erhalten eine Belohnung in Form von knackenden und summenden Relaisblöcken.


Versuchen wir zunächst, eine Rechteckwelle über eine Transistorkaskade an den Relaiseingang anzulegen:



Abbildung 14: Hochgeschwindigkeitstest des Reedschalters RES55. Ein gelbes Signal befindet sich an der Spule, ein blaues an den Kontakten


Da der Eingang des Oszilloskops eine bestimmte Kapazität hat und der Relaiskontakt nach dem Öffnen in der Luft bleibt und die Selbstentladung beginnt, sehen wir den entgegengesetzten Exponenten. Bei einer Frequenz von 1,7 kHz! Für das Relais! Für ein kleines Reed-Relais! Normaler Stillstand bei 20 Hz oder etwas höher. Bei einer Nennfrequenz von 100 Hz betragen die ansteigenden und abfallenden Flanken jeweils ca. 600 μs. Hier sind sie so klein (200 Mikrosekunden), weil die Energie der vorherigen zum Zeitpunkt des nächsten Einschaltens noch in der Spule verbleibt.


Wir legen Spannung an die Blöcke an, schneiden die Schalter von sowjetischen Messgeräten zu den Eingängen.



Abbildung 15: Addiererblock und Registerblock in Betrieb


Es zählt! Cool.



So sah es von der Szene aus. Zuerst wollte ich die Switches für 16-Bit neu gestalten. Verbinden Sie die Anzeigen sowohl mit dem Eingang als auch mit dem Ausgang, aber ... ich konnte nicht widerstehen.


Nun, da alles funktioniert und sich herausstellt, dass das Relais wahnsinnige Geschwindigkeiten erreichen kann, führen wir den Mäander zur Übertragungsleitung:



Und wir schneiden 500Hz. Der Addierer kommt zurecht, obwohl der Ton nicht gesagt werden kann. Eigentlich ist der Klang klar, aber das Kondensatormikrofon denkt anders. Soweit ich weiß, ist dies der schnellste Relaisaddierer der Welt.


Fortsetzung folgt



Abbildung 16: Entwerfen eines Computerrahmens


Allmählich werden die fehlenden sechs Riegelstücke gesammelt und der Rahmen der zukünftigen Maschine wird entworfen. Die Zeichnung enthält sechs Blöcke, falls 64 Module für die Logik nicht ausreichen. Und wenn genug genug ist, bleibt der Platz unter dem unteren Mittelblock leer.


Gleichzeitig schreibe ich Firmware für eine Speicherkarte, damit diese einen fehlenden Logikblock ersetzen kann. Im Sommer kann der Computer sein erstes Programm ausführen.


Drei Computer ???


Ja, drei. Der erste ist der aktuelle BrainfuckPC. Der zweite ist ein pneumatischer Computer mit dem Codenamen FluidicPC .


Über das dritte strahlungsresistente zukünftige Monster können Sie bereits Referenzen im Internet finden, aber ich möchte nicht zwischen Projekten sprühen und zuerst möchte ich das aktuelle beenden - ich mache noch keine Ankündigung darauf.


Abbildung 17: Schaltdekatrons A101, A102 und A103
Obwohl Sie auf diesem Bild bereits erraten können, was besprochen wird.


WARUM ????




Referenzen


Das gesamte Projekt ist weiterhin vollständig offen. Daher die wichtigsten Links für das Projekt:


  1. Repository mit Schaltplänen und Leiterplattenlayouts . Es gibt auch Firmware für das Anzeigemodul und die Speicherkarte
  2. Auf dieser Seite veröffentliche ich wöchentlich und nicht sehr Berichte darüber, was getan wurde. Jetzt lesen Sie einen Artikel, der etwas mehr als vollständig aus diesen Notizen besteht. Mit Übersetzung, Kommentaren und Ergänzungen.
  3. Compiler und Emulator .

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


All Articles