RetroComputing auf einem Chip

Neue elektrische Elemente ermöglichen es uns, alte Kabel zu rekonstruieren, viel effizienter. Insbesondere die leicht zugänglichen sowie erschwinglichen FPGA-Kits, die die Möglichkeit bieten, die Verdrahtung von vielen alten Computern als “On-A-Chip” -Lösung zusammenzubringen.

Als ich gehandhabt hatte, um einen alten Bubble-LED-Bildschirm als auch eine ziemlich mechanische Matrix-Tastatur zu erhalten, habe ich eine Entscheidung getroffen, eine Replik eines alten Einzelplatinencomputers zu entwickeln. Rationale Entscheidungen schienen entweder KIM-1 oder Heathkit ET-3400 zu entwickeln. Replikas von KIM-1 existieren bereits für Arduino, sodass meine Aufgabe minimiert wird, um die Tastatur sowie das Display zu verknüpfen. Dann sagte ich mir jedoch, dass ich die Wahrheit verwenden würde, dass mein Bubble-Bildschirm 9 Positionen als Grund hat, den legendären czechoslowakischen Einzelplatinen-Computer-PMI-80 zu entwickeln, der die genaue Anzeige genutzt hat. Meine Replik ist ein FPGA oder eher ein FPGA-Emulator dieses extrem Computers.

PMI-80.

Original PMI-80 [Quelle: DLW Blog] Es gibt wahrscheinlich höchstwahrscheinlich viele Menschen unter den Besuchern von Hackaday, die diesen Computer verstehen würden, der in den 80er Jahren in der ehemaligen Tschechoslowakei hergestellt wurde. Der Hackaday-Editor [Brian Benchoff] kann der einzige sein, der dies liest, der eine solche Probe hat. Wenn Sie jedoch eines Ihrer eigenen haben, möchten wir in den folgenden Kommentaren unten genauso gut hören. Für diejenigen, die nicht wirklich vertraut sind, lasst uns es zuerst einführen.

PMI-80 ist ein Einzelplatinen-Institution-Computer, der auf einem Intel 8080-Prozessor basiert. In Anbetracht dessen, dass es in den achtziger Jahren hinter dem sogenannten Eisernen Vorhang produziert wurde, nutzte es den tschechoslowakischen Tesla-Chips anstelle von Original Intel, obwohl sie funktional identisch waren, einschließlich der Nummerierung (Intel 8080A hatte eine Bezeichnung MHB8080a, PIO 8255A wurde als MHB8255A angeboten etc.)

Die Basis besteht aus einer gemeinsamen “Heiligen Trinity” -Kabel (8080A – 8224 – 8228). Auf dem Eingang des Harzes 8224-Schaltung war ein Kondensator sowie eine Diode sowie eine Diode, die nach dem Einschalten zurückgesetzt wurde. Der Kristall hatte 10 MHz, daher leitete der Computer mit einer Frequenz von 10/9 = 1,111 MHz. Die Inta-Eingangsschaltung 8228 wurde mit + 12V verknüpft, die sichergestellt wurde, dass RST 7 im Falle einer Unterbrechungsanforderung durchgeführt wurde (d. H. Springen Sie zur Adresse 0038).

Der Speicher wurde aus dem 1K-Abschlussball (8608, 1 kX8) sowie von 1 KB RAM (2x 2114) Chips entwickelt. Prom wurde an einer Adresse von $ 0000 angeboten – $ 03ff, RAM war bei $ 1c00 – $ 1fff. Es war sogar möglich, einen zusätzlichen 2708-Speicher (0400 $ – 07ff) an den Vorstand hinzuzufügen.

VAD30-Bildschirm [Bildquelle: nostalcomp.cz] Der Computer enthielt zusätzlich eine VQD30-Anzeige, die in der ehemaligen Deutschlands (Deutsche demokratische Republik) hergestellt wurde. Dies war ein praktisches Äquivalent von Screens NSA1198 oder CQYP95 – 9 Sieben segmentierte typische Kathodenanzeigen. Eingabedaten wurden von einer Tastatur geliefert, die als 3 × 9-Matrix entwickelt wurde. Beide Peripheriegeräte wurden von einer Schaltung basierend auf dem PIO 8255 angetrieben. Port A Outlets (PA0-PA6) verwaltete private Segmente (Anoden) mit den Antriebsvertretern. Die niedrigste vier Bits des Ports C wurden von einer Kreislauf MH1082 (äquivalent bis 74145) an den Code 1-von-9 decodiert, der zur Auswahl der Positionen verwendet wurde, um die Positionen zu wählen, sowie gleichzeitig die Säulen der Tastatur zu aktivieren. Tastaturlinien wurden mit Bits PC4-PC6 verknüpft.

Die Programme wurden auf äußerst grundlegende Weise auf Band aufbewahrt, die ebenfalls mit dem PIO 8255 verwaltet wurde. Jeder Eintrag hatte ein Startbit (1), dann den tatsächlichen Wert sowie ein Anschlagbit (0). Während der Aufnahme erzeugte ein Programm einen Anbieterfrequenzzyklus von 0,2 ms auf dem PA6-Anschluss sowie mit dem Pin PA7. Während des Lesens wurde die Info an Bit PC7 angeboten.

PIO 8255 wurde als Peripherie an Adressen von $ F8 $ F6 verbunden. Die Computerplatine ermöglichte das Einfügen einer weiteren PIO-Schaltung, die dann mit der Adressierung von $ F4- $ F7 verbunden wurde, sowie an Anwendungen vollständig angeboten.

Operation

Die Tastatur bestand aus 25 Geheimnissen, die in einer 5 × 5-Matrix eingerichtet wurden. Im Inneren wurde es jedoch anders verdrahtet. Zwei Geheimnisse (re sowie i) haben direkt zu den Eingängen des Prozessors (Reset bzw. int) geführt. Die Aufenthaltsgeheimnisse (0-9, A-F, EX, R, BR, M, L, S sowie =) wurden in der bereits aufgeführten 3 × 9-Matrix wie hier gezeigt verdrahtet.

Nach dem Einschalten des Bildschirmschirms wird der Bildschirmbildschirm “PMI-80” sowie Computer auf jede Art von entscheidender Presse ausgewirkt. Danach ging es in den primären Bildschirmmodus, bestimmt von “?” auf der linken Seite des Displays. Dann wartete der Computer auf Bildschirmbefehle.

Befehle überwachen.

M – Modifikation / Anzeigen des Speicherinhalts. Nach dem Drücken von m erscheint das Zeichen m auf der linken Seite sowie Computer auf den Adresseintrag wartet. Durch Drücken von = aktiviert die Dateneingabe. Jedes Mal, wenn Sie = drücken

R – Ansicht sowie Änderung der Registerkarteninhalte. Nach dem Drücken von r erscheint das Zeichen “R” links sowie Computer wartet auf einen Keystroke, der dem Registerpaar (AF = A, B = BC, D = DE, HL 9 = 8 = SP) entspricht. Wieder ist es möglich, Daten anzupassensowie nutzen = Schritt zum nächsten Paar.

Ex – läuft ein Programm. Computer wartet auf eine Adresse, drücken Sie = Sprüngen in das Programm. Das Programm kann gekündigt werden, indem er auf die Adresse 0 oder Adresse 8 springt (entspricht dem Sprung zum Monitor).

BR – Äußeres wie G, jedoch mit einem Haltepunkt. Sehr zuerst, dass Sie anfordert, in eine Adresse zu gelangen, mit der das Programm eingestellt werden muss, sowie dann die nächste Startadresse.

L, S – Tonnen sowie Daten speichern (hier nicht implementiert)

I – Unterbrechung. löst die Unterbrechung sowie Sprünge aus, um $ 0038 anzusprechen. Es gibt nur Anweisungen: JMP $ 1FE6. An dieser Adresse (in RAM) müssen Sie zunächst einen Sprung in Ihre Handlerroutine herstellen.
Wieder zurücksetzen. Während des Rücksetzes löscht der RAM nicht, sodass sie als Programmunterbrechung sowie zum Monitor zurückkehren kann.

Ein Bildschirm mit Kommentaren wird aus dem GIT-Repository angeboten.

PMI-80 in FPGA

Ich wählte ein kostengünstiges FPGA DEV-Kit, EP2C5 / EP2C6 Tiny Board, das derselbe ist, der SEARLE für seinen Multicomp verwendet (danke für die Inspiration!). Es hat einen Altera-Cyclone II-Chip, den ich mit VHDL programmiert habe.

Ich habe eine Tastatur als 5 × 5-Matrix verknüpft, nicht in einem Original 3 × 9; Das Recodieren in eine für den PMI geeignete Typ wird in der FPGA behandelt.

Der Bildschirm ist mit den Widerständen direkt mit der FPGA verbunden, sowie erneut, alle Logik sowie das Richten in einen für die Emulation geeignete Typ, der für die Emulation geeignet ist, wird in der FPGA durchgeführt.

Eine Schnittstelle zum Arbeiten mit einem Bandrecorder fehlt, ich habe das noch nicht ausgeführt. Sie können meine aktuelle Anwendung an meinem Github-Repo sehen.

Ich habe eine Freeware-VHDL-Anwendung der 8080 genannten Light8080 verwendet. Es ist nicht “t-perfekt”, jedoch wurde trotzdem nicht benötigt. Ich habe ebenfalls eine PIA8255-Komponente verwendet.

Der primäre Code ist in den Daten RMI.VHD, wo alle “Kleberlogik” für jede Komponente: 8080, 8255, RAM, ROM, Tastatur sowie LED.

Das Archiv umfasst ebenfalls Testelemente, die ich beim Arbeiten an der Emulation verwendet habe, z. ein grundlegender Bildschirm, der Hexadezimalzahlen zeigt. Die Emulation, um ordnungsgemäß zu arbeiten, war etwas prekär. Die ursprüngliche Anwendung des 8080-Prozessors, der sich mit etwas nicht standardmäßigem Timing befasste, als Ergebnis ungerade, dass ungerade Anzeigen auf dem Bus erschien, z. B. der RAM hörte auf, um Informationen zu ermitteln, bevor der Prozessor abgewickelt wurde, um es auszutragen, usw. ein paar Dinge unterstützen:

Testen Sie das ROM mit einem Basiscode

Taktgenerator mit einer Frequenz von etwa 1 Hz

Hexadezimalbildschirm (Komponente erfrischt sofort den Bildschirminhalt, ich brachte Daten direkt aus Daten oder Adressbus in den Eingabemitteil.)

Altera-Sonde – Online-Logiksonde, der mit einer Schaltung verbunden ist, übermittelt er Daten über eine JTAG-Schnittstelle zur Quartus-IDE.

Das Erstellen der Hardware sowie der Kompetenz des Emulators war ein Arbeitswochenende sowie ein weiteres Arbeiten mit “Version 0.1”. In der Zukunft möchte ich das System verlängern, andere Single-Board-Computer (KIM, ET, vielleicht COSMAC ELF) zu emulieren sowie das Band zu emulieren, möglicherweise als RS-232-Schnittstelle. Schauen Sie sich die Schnellvideo-Demo an. Überprüfen Sie die folgenden Ressourcen sowie einen Kommentar, wenn Sie an einem Chip-Projekten an viel mehr Retro-Computing nachdenken.

Ressourcen

Quellcodes: https://github.com/maly /fpmi

Beschreibung der PMI-80 Beschreibung in Slowakisch:

http://www.nostalcomp.cz/pdfka/pmi80_popis.pdf.

Klicken Sie hier, um Zugriff auf PMI80_DOPLNKY.PDF zu erhalten

Klicken Sie hier, um Zugang zu PMI_PRIRUCKA1.PDF zu erhalten

http://www.nostalcomp.cz/pdfka/pmi_prirucka2.pdf.