tranZPUter FusionX Benutzerhandbuch
Uebersicht
Der tranZPUterFusionX (FusionX) ist eine kompakte, leistungsstarke Platine, die die Z80-CPU in einer Reihe von historischen Heimcomputern ersetzt. Durch direktes Einsetzen in den DIP-40 Z80-Sockel der Host-Maschine uebernimmt der FusionX die volle Kontrolle ueber den Host-Bus und bietet gleichzeitig eine vollstaendige moderne Linux-basierte Rechnerumgebung — alles unsichtbar fuer die Original-Firmware und -Software der Host-Maschine.
Die Platine basiert auf dem SigmaStar SSD202D System-on-Module (SOM), das einen Dual-Core ARM Cortex-A7 Prozessor mit 1,2 GHz, 128 MB LPDDR2 DRAM, 256 MB SLC NAND Flash und ein integriertes SSW101B 2,4 GHz 802.11 b/g/n WLAN-Funkmodul vereint. Das SOM fuehrt einen Echtzeit-Linux 4.9-rt Kernel (PREEMPT_RT gepatcht) aus und bietet sowohl eine voll funktionsfaehige Linux-Umgebung als auch die Z80-Emulationsschicht gleichzeitig.
Der Z80-Emulator laeuft ausschliesslich auf CPU1, die beim Booten mittels des Kernel-
isolcpus-Mechanismus vom Linux-Scheduler isoliert wird. Ein dediziertes Kernelmodul (z80drv) verwaltet die Emulationsschleife und stellt das zyklusgenaue Timing bereit, das fuer die korrekte Ausfuehrung originaler Z80-Software erforderlich ist. Der Emulator wird aus dem User-Space ueber das Befehlszeilendienstprogramm z80ctrl gesteuert.
Bustiming und Verbindungslogik sind in einem Altera MAX7000AE CPLD implementiert, das eine Z80-zyklusgenaue Schnittstelle zwischen dem SOM und den Adress-, Daten- und Steuerbussen der Host-Maschine bereitstellt. Das CPLD wird in separaten Varianten fuer jede unterstuetzte Host-Maschine kompiliert, um korrektes Bustiming und Signalkonditionierung fuer jede Zielplattform sicherzustellen.
Der FusionX unterstuetzt mehrere Maschinen-Personas — die CPLD-Variante und Softwarekonfiguration bestimmen, welche Host-Maschine auf Hardware-Ebene emuliert wird. Optionale Tochterplatinen verbinden die FusionX Video- und Audioausgaenge mit der Anzeigeschaltung und dem internen Lautsprecher der Host-Maschine, unter Verwendung analoger SPDT-Multiplexer zum sauberen Umschalten zwischen host-nativer und FusionX-generierter Ausgabe.
Hinweis: Die Web-Verwaltungsoberflaeche befindet sich derzeit im Aufbau und ist in der ausgelieferten Firmware nicht verfuegbar. Alle Verwaltungs- und Konfigurationsaufgaben werden ueber die USB-Seriell-Konsole und das z80ctrl-Befehlszeilendienstprogramm durchgefuehrt.
Platinenuebersicht
Der FusionX ist eine kompakte 4-Lagen-Platine in Hardware-Revision v1.0. Die Platinenabmessungen sind so konzipiert, dass sie in den Grundriss eines Standard-DIP-40-IC-Sockels passen und gleichzeitig das SigmaStar SSD202D SOM und das Altera MAX7000AE CPLD darueber aufnehmen. Alle Anschluesse und Stiftleisten sind von der Oberseite oder Rueckseite der Platine zugaenglich, wenn sie in der Host-Maschine installiert ist.
Anschluesse und Stiftleisten
- 10-Pin JTAG-Stiftleiste — Wird fuer die In-System-Programmierung (ISP) des Altera MAX7000AE CPLD ueber einen kompatiblen JTAG-Programmer (z.B. USB-Blaster) verwendet. Diese Stiftleiste wird auch fuer die Erstprogrammierung verwendet, wenn ein leeres oder falsch programmiertes CPLD mit einer neuen Variante geflasht werden muss. Siehe den Technischen Leitfaden fuer Programmierdetails.
- USB-Seriell-Anschluss (CH340E) — Ein Micro-USB- oder Pin-Header-Anschluss, der ueber eine integrierte CH340E USB-zu-UART-Bruecke gefuehrt wird. Dies bietet direkten Zugang zur Linux-Seriellkonsole bei 115200 Baud, 8N1. Auf der SOM-Seite verbindet dies mit dem primaeren UART. Dies ist die primaere Verwaltungsschnittstelle waehrend der Ersteinrichtung und der taeglichen Administration.
- USB 2.0 Port (SOM) — Ein Standard-USB 2.0 Typ-A Host-Port, der vom SSD202D SOM bereitgestellt wird. Dieser Port kann zum Anschluss von USB-Massenspeicher, USB-Ethernet-Adaptern oder anderen vom Linux-Kernel unterstuetzten USB-Peripheriegeraeten verwendet werden.
- SD-Kartensteckplatz (SOM) — Ein Micro-SD-Kartensteckplatz, der mit der SDIO-Schnittstelle des SOM verbunden ist. Die SD-Karte wird fuer zusaetzlichen Speicher verwendet und enthaelt ROM-Images, MZF-Programmdateien und OTA-Firmware-Update-Images. Das SOM erkennt eine korrekt vorbereitete SD-Karte beim Booten und fuehrt ein OTA-Upgrade automatisch durch, wenn ein gueltiges Firmware-Image vorhanden ist.
- WLAN-Antennenanschluss — Ein IPEX/U.FL Koaxialanschluss fuer eine externe 2,4 GHz WLAN-Antenne, verbunden mit dem integrierten SSW101B WLAN-Modul des SSD202D. Eine geeignete Antenne muss fuer zuverlaessige drahtlose Konnektivitaet angebracht werden.
Statusanzeigen
Die FusionX-Platine verfuegt ueber eine kleine Anzahl von Status-LEDs zur Unterstuetzung bei der Diagnose und zur Bestaetigung des korrekten Betriebs:
- Power-LED — Leuchtet, wenn 3,3 V Spannung auf der Platine vorhanden ist, und bestaetigt, dass der TLV62569DBV Abwaertswandler korrekt arbeitet.
- Aktivitaets-LED — Vom SOM angesteuert; zeigt Linux-Kernel- und Z80-Emulationsaktivitaet an. Blinkt waehrend des Bootens und waehrend aktiver Z80-Emulationszyklen.
- CPLD-LED — Vom CPLD angesteuert; zeigt Busaktivitaet auf dem Z80-Host-Bus an. Nuetzlich zur Bestaetigung, dass das CPLD aktiv mit der Host-Maschine kommuniziert.
Stromversorgung
Der FusionX bezieht seine gesamte Betriebsspannung von der 5 V-Versorgung der Host-Maschine, die am Z80 DIP-40 VCC-Pin (Pin 11) verfuegbar ist. Ein TLV62569DBV synchroner Abwaertswandler (Buck-Converter) regelt die 5 V-Eingangsspannung auf 3,3 V fuer das SOM, CPLD und alle integrierten Logikbausteine herunter. Der TLV62569DBV ist ein hocheffizienter Wandler mit niedrigem Ruhestrom, der in der Lage ist, die Spitzenstromaufnahme des SSD202D SOM waehrend der WLAN-Uebertragung und Z80-Emulation zu liefern.
Die Host-Maschine muss in der Lage sein, ausreichend Strom auf ihrer 5 V-Schiene zu liefern, um den FusionX zusaetzlich zu ihrer eigenen Schaltung zu versorgen. In der Praxis haben alle unterstuetzten Host-Maschinen 5 V-Schienen mit ausreichender Reserve fuer den normalen FusionX-Betrieb.
Tochterplatinen
Drei host-spezifische Tochterplatinen sind fuer den FusionX verfuegbar:
- MZ-80A Tochterplatine — Verbindet die FusionX Video- und Audioausgaenge mit dem internen Display und der Lautsprecherschaltung des Sharp MZ-80A.
- MZ-700 Tochterplatine — Verbindet die FusionX Video- und Audioausgaenge mit dem internen Display und der Lautsprecherschaltung des Sharp MZ-700.
- MZ-2000 Tochterplatine — Verbindet die FusionX Video- und Audioausgaenge mit dem internen Display und der Lautsprecherschaltung des Sharp MZ-2000.
Jede Tochterplatine enthaelt analoge SPDT-Multiplexer, die die Anzeige- und Audiosignale zwischen der host-nativen Quelle (von der eigenen Video-/Audio-Hardware der Host-Maschine) und der FusionX-generierten Quelle (vom SOM) umschalten. Dies ermoeglicht es dem FusionX, seine eigene Video- und Audioausgabe ueber das eingebaute Display und den Lautsprecher der Host-Maschine darzustellen, ohne die Host-Schaltung dauerhaft zu modifizieren.
Die Tochterplatine verbindet sich mit der FusionX-Hauptplatine ueber ein Flachbandkabel und/oder dedizierte Anschluesse und dann mit den Video- und Audioschaltkreisen der Host-Maschine ueber host-spezifische Anschluesse, die in den host-spezifischen Installationsabschnitten unten beschrieben werden.
Der Amstrad PCW-8256 benoetigt keine Tochterplatine. Die PCW-8256 CPLD-Variante arbeitet direkt mit dem PCW-Speicherpaging und der Standard-Z80-E/A zusammen, ohne Video- oder Audio-Multiplexing zu erfordern.
Die korrekte Tochterplatine muss vor der Installation in der Host-Maschine angebracht werden. Die Montage der falschen Tochterplatine oder keine Tochterplatine bei einem MZ-Serien-Host fuehrt zu keiner Video- oder Audioausgabe vom FusionX.
Unterstuetzte Host-Maschinen
Der FusionX unterstuetzt derzeit die folgenden Host-Maschinen. Die CPLD-Variante muss genau zur Ziel-Host-Maschine passen — jede Variante wird separat in Quartus II kompiliert und implementiert das praezise Bustiming, die Speicherabbildung und die E/A-Dekodierung, die fuer diesen Host erforderlich sind.
| Host-Maschine | Tochterplatine | CPLD-Variante | Hinweise |
|---|---|---|---|
| Sharp MZ-80A | MZ-80A Daughter Board | MZ80A | 40/80-column display modes; ROM Filing System (RFS) support; MZF file loading from SD card |
| Sharp MZ-700 | MZ-700 Daughter Board | MZ700 | Bank switching; video and keyboard emulation; full MZ-700 memory map |
| Sharp MZ-2000 | MZ-2000 Daughter Board | MZ2000 | Extended memory support; advanced video modes; MZ-2000 I/O decoding |
| Amstrad PCW-8256 | None required | PCW8256 | Memory paging; standard Z80 I/O; no video/audio daughter board needed |
Wenn Sie sich nicht sicher sind, welche CPLD-Variante auf Ihrer Platine programmiert ist, finden Sie im Technischen Leitfaden Anweisungen zum Auslesen der CPLD-Geraete-ID und zur Bestaetigung des programmierten Designs. Eine korrekt ausgelieferte FusionX-Platine ist mit der CPLD-Variante vorprogrammiert, die Ihrer bestellten Host-Maschinenkonfiguration entspricht.
Ersteinrichtung
Befolgen Sie diese Schritte sorgfaeltig, um den FusionX zum ersten Mal in Ihrer Host-Maschine zu installieren und zu konfigurieren. Mit [Host-spezifisch] gekennzeichnete Schritte variieren je nach Ziel-Host-Maschine. Mit [Allgemein] gekennzeichnete Schritte gelten fuer alle unterstuetzten Hosts.
Aus dem Quellcode bauen (optional). Eine betriebsbereite Platine wird mit bereits programmierter CPLD- und SOM-Firmware ausgeliefert, sodass die meisten Benutzer direkt zu Schritt 1 springen koennen. Wenn Sie die Firmware, ROMs, CPLD-Bitstreams oder das Linux-SD-Image selbst bauen moechten, liefert das Repository fuer jede Plattform ein eigenstaendiges Setup-Skript —
setup_FusionX.sh (Linux / macOS) oder setup_FusionX_windows.cmd / setup_FusionX_windows_native.ps1 (Windows 10/11, kein WSL2). Jedes installiert die Werkzeuge, klont das Repository mit seinen Submodulen, laedt das Content-Bundle herunter und fuehrt den ersten Build ueber build.sh aus. Die vollstaendige Referenz zur automatisierten Einrichtung und zum Build finden Sie im Technischen Leitfaden und im Entwicklerhandbuch.
Schritt 1 — CPLD-Variante ueberpruefen [Allgemein]
Bestaetigen Sie vor der Installation des FusionX, dass das CPLD mit der korrekten Variante fuer Ihre Host-Maschine programmiert ist. Jede CPLD-Variante (MZ80A, MZ700, MZ2000, PCW8256) wird als separates Quartus II-Projekt kompiliert und erzeugt eine andere
.pof-Programmierdatei. Eine Platine, die mit einer falschen CPLD-Variante ausgeliefert wird, wird nicht korrekt mit dem Bus der Host-Maschine zusammenarbeiten und kann unerwartetes Verhalten oder keine Ausgabe produzieren.
Eine korrekt ausgelieferte FusionX-Platine hat das CPLD fuer Ihre bestellte Host-Maschine vorprogrammiert. Wenn Sie aus dem Quellcode gebaut haben, eine leere Platine erhalten haben oder die Ziel-Host-Maschine aendern muessen, finden Sie im Technischen Leitfaden Anweisungen zur CPLD-Programmierung ueber den 10-Pin JTAG-Header und einen USB-Blaster oder kompatiblen Programmer.
Schritt 2 — Korrekte Tochterplatine montieren [Host-spezifisch]
Wenn Ihre Host-Maschine ein Sharp MZ-80A, MZ-700 oder MZ-2000 ist, muessen Sie die entsprechende Tochterplatine vor der Installation an der FusionX-Hauptplatine montieren. Die Tochterplatine muss genau zu Ihrer Host-Maschine passen — beziehen Sie sich auf die Tabelle im Abschnitt Unterstuetzte Host-Maschinen oben.
Verbinden Sie das Flachbandkabel und alle diskreten Anschluesse der Tochterplatine mit der FusionX-Hauptplatine gemaess den Siebdruckmarkierungen auf beiden Platinen. Fuehren Sie dann die host-seitigen Anschluesse der Tochterplatine zu den entsprechenden Punkten an den Video- und Audioschaltkreisen der Host-Maschine. Die spezifischen Verbindungspunkte fuer jede Host-Maschine sind in der host-spezifischen Dokumentation beschrieben, die von den Projektseiten im Abschnitt Referenz-Websites verlinkt ist.
Wenn Ihre Host-Maschine ein Amstrad PCW-8256 ist, ueberspringen Sie diesen Schritt — keine Tochterplatine erforderlich.
Schritt 3 — In die Host-Maschine einbauen [Allgemein]
Schalten Sie die Host-Maschine vollstaendig aus und trennen Sie sie vom Stromnetz.
Oeffnen Sie das Gehaeuse der Host-Maschine, um Zugang zum Mainboard zu erhalten. Lokalisieren Sie die Z80-CPU in ihrem DIP-40-Sockel. Entfernen Sie die Z80-CPU vorsichtig mit einem IC-Extraktionswerkzeug, wobei Sie darauf achten, keine Pins an der CPU (die Sie moeglicherweise aufbewahren moechten) zu verbiegen oder den Sockel zu beschaedigen.
Setzen Sie die FusionX-Platine in den frei gewordenen DIP-40-Sockel ein. Pin 1 der FusionX-Platine muss mit Pin 1 des Sockels ausgerichtet sein. Pin 1 ist deutlich auf dem FusionX PCB-Siebdruck markiert. Eine falsche Ausrichtung von Pin 1 fuehrt zu fehlerhaftem Betrieb und kann die Host-Maschine oder die FusionX-Platine beschaedigen.
Druecken Sie die FusionX-Platine fest und gleichmaessig in den Sockel und stellen Sie sicher, dass alle 40 Pins vollstaendig eingesetzt sind. Pruefen Sie visuell alle vier Seiten des DIP-40-Sockels, um zu bestaetigen, dass keine Pins verbogen sind oder den Sockel verfehlen.
Schritt 4 — USB-Seriell-Adapter anschliessen [Allgemein]
Fuer die Ersteinrichtung und laufende Administration verbinden Sie ein USB-Kabel von Ihrem PC mit dem CH340E USB-Seriell-Anschluss auf der FusionX-Platine. Dieses Kabel bietet Zugang zur Linux-Konsole, die auf dem SOM laeuft.
Auf Ihrem PC muss der CH340E (oder CH34x) USB-Seriell-Treiber installiert sein. Unter Linux und macOS ist dieser Treiber typischerweise im Kernel enthalten. Unter Windows muessen Sie moeglicherweise den CH340-Treiber vom Hersteller oder einer Drittanbieterquelle installieren.
Konfigurieren Sie Ihren Terminalemulator (z.B. PuTTY, minicom, screen) mit den folgenden Einstellungen:
- Baudrate: 115200
- Datenbits: 8
- Paritaet: Keine
- Stoppbits: 1
- Flusskontrolle: Keine
Schritt 5 — Einschalten [Allgemein]
Mit installiertem FusionX, angeschlossener Tochterplatine (falls zutreffend) und verbundenem USB-Seriell-Kabel schliessen Sie die Host-Maschine wieder an das Stromnetz an und schalten sie ein.
Das FusionX SOM beginnt sofort mit dem Linux-Bootvorgang. Die vollstaendige Linux-Startsequenz dauert etwa 10-15 Sekunden. Waehrend dieser Zeit sehen Sie Boot-Meldungen auf der USB-Seriell-Konsole. Sobald die Startsequenz abgeschlossen ist, werden Display und Tastatur der Host-Maschine unter Kontrolle der Z80-Emulationsschicht initialisiert.
Das Display der Host-Maschine sollte den erwarteten Startbildschirm fuer Ihren Host anzeigen (z.B. die Sharp MZ-80A Monitor-Eingabeaufforderung oder den MZ-700 Splash-Screen), abhaengig vom ROM-Image, das vom Startskript geladen wurde.
Schritt 6 — Auf die Linux-Konsole zugreifen [Allgemein]
Sobald das SOM den Bootvorgang abgeschlossen hat, oeffnen Sie Ihren Terminalemulator und verbinden Sie sich mit dem USB-Seriell-Port. Sie sollten die Linux-Anmeldeaufforderung sehen.
Die Tastatur und das Display der Host-Maschine sind auch ueber den
ttymzdrv-Kerneltreiber auf ein Linux-Virtual-Terminal-Geraet /dev/ttymz0 abgebildet. Das bedeutet, dass die Host-Tastatur und das Display sowohl als Linux-Konsole als auch als Z80-Emulationsterminal dienen koennen. Der sharpbiter Arbiter-Daemon verwaltet das Umschalten zwischen der Z80-Emulationssitzung und der Linux-Konsole auf dieser gemeinsam genutzten Hardware.
Melden Sie sich mit den konfigurierten Linux-Anmeldedaten an. Von der Shell aus koennen Sie die Z80-Emulation verwalten, WLAN konfigurieren, auf die SD-Karte zugreifen und alle administrativen Aufgaben durchfuehren.
Maschinen-Startmodi
Der FusionX bietet drei Startskripte, die die Z80-Emulationsumgebung fuer verschiedene Betriebsmodi konfigurieren. Jedes Skript laedt die entsprechenden Kernelmodule und ROM-Images und startet dann die Z80-Emulation mit dem ausgewaehlten aktiven Modus.
Allgemeiner Start — start_FusionX.sh
Das allgemeine Startskript fuehrt die folgende Sequenz durch:
- Laedt das
ttymzdrv-Kernelmodul, das Tastatur und Display des Hosts auf/dev/ttymz0abbildet. - Isoliert CPU1 vom Linux-Scheduler mittels
isolcpusund reserviert sie ausschliesslich fuer die Z80-Emulationsschleife. - Laedt das
z80drv-Kernelmodul, das die Z80-Emulations-Engine und die CPLD-Bus-Schnittstelle initialisiert. - Startet die Z80-Emulation mit dem Standard-ROM-Image und der Hardware-Konfiguration fuer die installierte CPLD-Variante.
Dieser Modus ist fuer den allgemeinen Gebrauch geeignet, wenn Sie moechten, dass die Host-Maschine in ihre Standard-Firmware-Umgebung bootet (z.B. MZ-80A Monitor, MZ-700 BASIC oder MZ-2000 Monitor).
sudo /opt/fusionx/start_FusionX.sh
ROM Filing System Modus — startZ80_RFS.sh
Dieses Skript startet die Z80-Emulation im ROM Filing System (RFS)-Modus, der primaer fuer den Sharp MZ-80A konzipiert ist. Im RFS-Modus:
- Umschaltbare ROM-Seiten werden aktiviert, die es ermoeglichen, zur Laufzeit mehrere ROM-Images in den Z80-Adressraum einzublenden und auszublenden.
- MZF-Programmdateien, die auf der SD-Karte gespeichert sind, koennen direkt in den Z80-Speicher geladen und ausgefuehrt werden, ohne dass eine Kassettenband-Schnittstelle erforderlich ist.
- Das ROM Filing System bietet eine menuegefuehrte Oberflaeche auf dem Host-Display zur Auswahl und zum Laden von Programmen.
sudo /opt/fusionx/startZ80_RFS.sh
tranZPUter Filing System Modus — startZ80_TZFS.sh
Dieses Skript startet die Z80-Emulation im tranZPUter Filing System (TZFS)-Modus, der das K64F virtuelle Coprozessor-Verhalten der originalen tranZPUter-Hardware implementiert. Im TZFS-Modus emuliert der FusionX die erweiterten Dateisystem- und Speicherverwaltungsfunktionen, die urspruenglich vom K64F-Mikrocontroller auf der tranZPUter SW-Platine bereitgestellt wurden.
sudo /opt/fusionx/startZ80_TZFS.sh
Zwischen Startmodi wechseln
Um von einem Startmodus zu einem anderen zu wechseln, stoppen Sie die aktuell laufende Z80-Emulation und das Kernelmodul und fuehren Sie dann das gewuenschte Startskript aus:
z80ctrl --stop sudo rmmod z80drv sudo /opt/fusionx/startZ80_TZFS.sh
Das
ttymzdrv-Modul muss beim Moduswechsel nicht entladen werden — nur z80drv muss mit der neuen Konfiguration neu geladen werden.
Verwendung des Z80-Emulators
Das
z80ctrl-Befehlszeilendienstprogramm ist die primaere User-Space-Schnittstelle zur Steuerung der Z80-Emulations-Engine, die im z80drv-Kernelmodul laeuft. Es kommuniziert mit dem Kernelmodul ueber ein Zeichengeraet und bietet einen umfassenden Satz von Befehlen zum Laden von ROM-Images, Verwalten virtueller Hardware-Geraete, Steuern des Emulationszustands, Untersuchen des Speichers und Laden von MZF-Programmdateien.
Ein ROM-Image laden
Laden Sie ein binaeres ROM-Image an einer angegebenen Adresse in den emulierten Z80-Adressraum. Der
--size-Parameter gibt die Groesse des ROM-Bereichs in Bytes (hexadezimal) an.
z80ctrl --loadrom /path/to/rom.bin --addr 0xE800 --size 0x2000
Ein virtuelles Hardware-Geraet hinzufuegen
Registrieren Sie ein virtuelles Hardware-Geraetemodul bei der Z80-Emulations-Engine. Der
--device-Parameter gibt den Modulnamen an, der einem kompilierten Virtual Hardware Module fuer die Ziel-Host-Maschine entsprechen muss.
z80ctrl --adddev --device mz80a
Emulation starten und stoppen
Starten Sie die Z80-Emulationsschleife auf CPU1. Der Emulator beginnt mit dem Abrufen und Ausfuehren von Z80-Befehlen aus dem Adressraum, wobei Buszyklen ueber das CPLD auf den Bus der Host-Maschine uebertragen werden.
z80ctrl --start
Stoppen Sie die Z80-Emulationsschleife. Der Bus der Host-Maschine wird freigegeben und das CPLD schaltet seine Ausgaenge in den Tristate-Zustand.
z80ctrl --stop
Speicher untersuchen
Geben Sie einen Bereich des emulierten Z80-Adressraums in hexadezimalem und ASCII-Format auf der Konsole aus. Dies ist nuetzlich zum Debuggen von ROM-Inhalten, zum Untersuchen des RAM-Zustands oder zur Ueberprufung, ob ein ROM-Image korrekt geladen wurde.
z80ctrl --dump --addr 0x0000 --size 256
Ein MZF-Programm laden
Laden Sie eine Programmdatei im Sharp MZF-Format direkt in den emulierten Z80-Adressraum. Der MZF-Header wird analysiert, um die Ladeadresse und den Einsprungpunkt zu bestimmen. Nach dem Laden wird der Z80-Programmzaehler auf den MZF-Einsprungpunkt gesetzt und die Ausfuehrung beginnt von dort.
z80ctrl --loadmzf /sd/programs/test.mzf
Umschalten zwischen Z80 und Linux-Konsole
Der FusionX verwendet einen geschichteten Ansatz zur gemeinsamen Nutzung der Tastatur- und Display-Hardware der Host-Maschine zwischen der Z80-Emulationssitzung und der Linux-Konsole.
Der
ttymzdrv-Kerneltreiber praesentiert die Tastatur und das Display der Host-Maschine als Linux-Terminalgeraet /dev/ttymz0. Sowohl die Z80-Emulations-Engine als auch die Linux-Konsole koennen dieses Geraet ansprechen. Der sharpbiter Arbiter-Daemon vermittelt zwischen diesen beiden Verbrauchern und stellt sicher, dass nur einer gleichzeitig aktiv ist und der Wechsel zwischen ihnen sauber und fuer keine der Sitzungen destruktiv ist.
Z80-Sitzung anhalten, um auf die Linux-Konsole zuzugreifen
Um die Z80-Emulationssitzung anzuhalten und zur Linux-Konsole auf der Host-Tastatur/dem Host-Display zu wechseln, druecken Sie die host-spezifische Escape-Tastensequenz. Die Tastensequenz variiert je nach Host-Maschine und wird in der Konfigurationsdatei des
sharpbiter-Daemons konfiguriert. Beziehen Sie sich auf Ihre host-spezifische Dokumentation fuer die genaue Sequenz.
Alternativ koennen Sie jederzeit ueber die USB-Seriell-Verbindung auf die Linux-Konsole zugreifen, unabhaengig vom aktuellen Zustand der Z80-Sitzung auf dem Host-Display.
Zur Z80-Sitzung zurueckkehren
Um die Kontrolle ueber Host-Display und -Tastatur an die Z80-Emulationssitzung zurueckzugeben, fuehren Sie den Fortsetzen-Befehl von der Linux-Konsole aus:
sharpbiter --resume
Das Host-Display kehrt sofort zur Z80-Sitzung zurueck. Jede Linux-Konsolenaktivitaet waehrend der Unterbrechung wird im Terminal-Puffer gespeichert und kann nach der naechsten Unterbrechung ueberpraueft werden.
WLAN-Einrichtung
Das SigmaStar SSD202D SOM integriert das SSW101B 802.11 b/g/n (2,4 GHz) WLAN-Modul. Nach der Konfiguration bietet WLAN SSH-Zugang zur FusionX Linux-Umgebung und ermoeglicht drahtlose Verwaltung, ohne dass das USB-Seriell-Kabel fuer die Routineverwaltung benoetigt wird.
Die WLAN-Konfiguration wird ueber die USB-Seriell-Konsole mit Standard-Linux-Netzwerktools durchgefuehrt. Stellen Sie sicher, dass die externe WLAN-Antenne am IPEX/U.FL-Anschluss auf der FusionX-Platine angeschlossen ist, bevor Sie die WLAN-Konfiguration versuchen.
WLAN mit wpa_supplicant konfigurieren
Bearbeiten Sie die wpa_supplicant-Konfigurationsdatei, um Ihre Netzwerkanmeldedaten hinzuzufuegen:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Fuegen Sie einen Netzwerkblock fuer Ihren Access Point hinzu:
network={
ssid="YourNetworkName"
psk="YourNetworkPassword"
key_mgmt=WPA-PSK
}
Speichern Sie die Datei und aktivieren Sie die WLAN-Schnittstelle:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf sudo udhcpc -i wlan0
SSH-Zugang
Sobald die WLAN-Schnittstelle verbunden ist und eine IP-Adresse erhalten hat, ist der auf dem FusionX laufende OpenSSH-Server von jedem Host im selben Netzwerk aus zugaenglich. Ermitteln Sie die zugewiesene IP-Adresse:
ip addr show wlan0
Verbinden Sie sich dann von Ihrem PC:
ssh fusionx@<ip-address>
Um die WLAN-Konfiguration ueber Neustarts hinweg beizubehalten, fuegen Sie die
wpa_supplicant- und udhcpc-Befehle zum entsprechenden System-Startskript oder zur Init-Konfiguration Ihrer Linux-Distribution hinzu.
SD-Karte und Dateiverwaltung
Das SigmaStar SSD202D SOM enthaelt einen Micro-SD-Kartensteckplatz, der ueber die SDIO-Schnittstelle verbunden ist. Die SD-Karte bietet erweiterbaren Speicher fuer ROM-Images, MZF-Programmdateien und OTA-Firmware-Update-Images. Sie ist fuer den Grundbetrieb nicht erforderlich, wird aber dringend empfohlen, um Programmbibliotheken zu speichern und OTA-Updates durchzufuehren.
SD-Karte einbinden
Setzen Sie eine formatierte Micro-SD-Karte (FAT32 oder ext4) in den SD-Kartensteckplatz des SOM ein. Das SOM erkennt die Karte und erstellt ein Blockgeraet, typischerweise
/dev/mmcblk1 mit der ersten Partition bei /dev/mmcblk1p1.
Binden Sie die SD-Karte am Einhängepunkt /mnt/sd ein:
sudo mkdir -p /mnt/sd sudo mount /dev/mmcblk1p1 /mnt/sd
Um die SD-Karte beim Booten automatisch einzubinden, fuegen Sie einen Eintrag in
/etc/fstab hinzu:
/dev/mmcblk1p1 /mnt/sd vfat defaults,noatime 0 2
Dateiorganisation
Die empfohlene Verzeichnisstruktur auf der SD-Karte ist:
/mnt/sd/ roms/ - ROM binary images (.bin) programs/ - MZF format program files (.mzf) firmware/ - OTA firmware update images
ROM-Images, die in
/mnt/sd/roms/ gespeichert sind, koennen jederzeit mit z80ctrl --loadrom geladen werden. MZF-Dateien, die in /mnt/sd/programs/ gespeichert sind, koennen mit z80ctrl --loadmzf geladen werden.
OTA-Firmware-Updates
Over-the-Air (OTA) Firmware-Updates fuer das FusionX SOM werden als Firmware-Image-Datei auf der SD-Karte bereitgestellt. Der Bootvorgang des SOM prueft beim Start, ob ein gueltiges Firmware-Image auf der SD-Karte vorhanden ist, und fuehrt das Upgrade automatisch durch, wenn eines gefunden wird.
Um ein OTA-Update durchzufuehren:
- Laden Sie das Firmware-Update-Image von der Projekt-Release-Seite herunter.
- Kopieren Sie das Firmware-Image in das
firmware/-Verzeichnis auf der SD-Karte. - Setzen Sie die SD-Karte in den SD-Kartensteckplatz des SOM ein.
- Schalten Sie die Host-Maschine aus und wieder ein. Der Bootvorgang des SOM erkennt das Firmware-Image, schreibt es in den NAND Flash und startet automatisch neu.
- Nach Abschluss des Upgrades wird das Firmware-Image auf der SD-Karte umbenannt oder entfernt, um wiederholte Upgrades bei nachfolgenden Starts zu verhindern.
Schalten Sie die Host-Maschine waehrend eines OTA-Updates nicht aus. Eine Unterbrechung des NAND Flash-Schreibvorgangs kann das SOM nicht mehr bootfaehig machen und erfordert eine Wiederherstellung ueber JTAG oder den seriellen Boot-Modus.
Fehlerbehebung
Host startet nicht / Leeres Display
Wenn die Host-Maschine einschaltet, aber das Display leer bleibt oder eine verzerrte Ausgabe zeigt:
- Ueberpruefen Sie, ob Pin 1 der FusionX-Platine mit Pin 1 des DIP-40-Sockels ausgerichtet ist. Eine falsche Ausrichtung verhindert den Betrieb der Platine und kann die Host-Maschine beschaedigen.
- Bestaetigen Sie, dass alle 40 Pins der FusionX-Platine vollstaendig und korrekt im Sockel sitzen. Ein einzelner verbogener oder verfehlter Pin kann einen vollstaendigen Ausfall verursachen.
- Wenn eine Tochterplatine verwendet wird, bestaetigen Sie, dass sie korrekt montiert und ihre host-seitigen Anschluesse an den richtigen Stellen auf dem Host-Mainboard angeschlossen sind. Eine falsch verdrahtete Tochterplatine fuehrt zu keiner Videoausgabe.
- Bestaetigen Sie, dass die CPLD-Variante zur Host-Maschine passt. Ein CPLD, das mit der falschen Variante programmiert ist, erzeugt falsches Bustiming, was zu keinem Display oder verzerrter Ausgabe fuehrt. Beziehen Sie sich auf den Technischen Leitfaden zur Ueberpruefung der CPLD-Variante.
Keine Linux-Konsole auf USB-Seriell
Wenn Sie nach dem Einschalten keine Ausgabe auf dem USB-Seriell-Terminal sehen:
- Bestaetigen Sie, dass der CH340E/CH34x USB-Seriell-Treiber auf Ihrem PC installiert ist. Unter Windows laden Sie den Treiber von der CH340-Herstellerseite herunter und installieren Sie ihn. Unter Linux fuehren Sie
lsmod | grep ch341aus, um zu bestaetigen, dass der Treiber geladen ist. - Bestaetigen Sie, dass der Terminalemulator auf 115200 Baud, 8 Datenbits, keine Paritaet, 1 Stoppbit, keine Flusskontrolle eingestellt ist.
- Bestaetigen Sie, dass das USB-Kabel datenfaehig ist (kein reines Ladekabel). Reine Ladekabel fuehren die D+ und D- Datenleitungen nicht.
- Pruefen Sie, ob der USB-Seriell-Port nicht bereits in einer anderen Anwendung auf Ihrem PC geoeffnet ist.
- Versuchen Sie einen anderen USB-Port an Ihrem PC. Einige USB-Controller verarbeiten Full-Speed USB-Seriell-Geraete zuverlaessiger als andere.
Z80-Emulation startet nicht
Wenn die Linux-Konsole zugaenglich ist, aber die Z80-Emulation nicht startet oder das Host-Display nicht den erwarteten Startbildschirm zeigt:
- Pruefen Sie, ob das
z80drv-Kernelmodul geladen ist: Fuehren Sielsmod | grep z80drvaus. Wenn es nicht aufgelistet ist, konnte das Startskript das Modul nicht laden. - Ueberpruefen Sie das Kernel-Log auf Fehlermeldungen vom Modullade-Versuch: Fuehren Sie
dmesg | tail -50aus und suchen Sie nach Meldungen bezueglichz80drvoderttymzdrv. - Ueberpruefen Sie das Startskript auf Fehler. Fuehren Sie das Skript manuell von der Seriellkonsole aus und beobachten Sie eventuelle Fehlerausgaben.
- Bestaetigen Sie, dass der im Startskript angegebene ROM-Image-Pfad korrekt ist und die Datei existiert und lesbar ist.
MZF-Programm laesst sich nicht laden
Wenn
z80ctrl --loadmzf fehlschlaegt oder das Programm nach dem Laden nicht korrekt laeuft:
- Bestaetigen Sie, dass die SD-Karte eingebunden ist: Fuehren Sie
mount | grep mmcblk1aus. Wenn nicht eingebunden, binden Sie sie mitsudo mount /dev/mmcblk1p1 /mnt/sdein. - Bestaetigen Sie, dass der an
z80ctrl --loadmzfuebergebene Dateipfad korrekt ist und die Datei existiert: Fuehren Siels -la /mnt/sd/programs/aus. - Ueberpruefen Sie, ob die MZF-Datei nicht beschaedigt ist. Eine gueltige MZF-Datei hat einen 128-Byte-Header, der mit einem Dateityp-Byte von
0x01(Maschinencode) oder0x02(BASIC) beginnt. Verwenden Siexxd /mnt/sd/programs/test.mzf | head -8, um den Header zu pruefen. - Stellen Sie sicher, dass die Z80-Emulation laeuft, bevor Sie versuchen, eine MZF-Datei zu laden und auszufuehren.
WLAN verbindet sich nicht
Wenn die WLAN-Schnittstelle sich nicht mit Ihrem Access Point verbindet:
- Bestaetigen Sie, dass die externe WLAN-Antenne am IPEX/U.FL-Anschluss auf der FusionX-Platine angeschlossen ist. Der Betrieb des SSW101B-Moduls ohne Antenne kann zu extrem schlechtem Signal oder voelligem Verbindungsausfall fuehren.
- Ueberpruefen Sie, ob SSID und Passphrase in
/etc/wpa_supplicant/wpa_supplicant.confkorrekt sind. Beide sind Gross-/Kleinschreibung-sensitiv. - Pruefen Sie das wpa_supplicant-Log auf Verbindungsfehler: Fuehren Sie
wpa_cli statusaus oder ueberpruefen Siedmesg | grep -i wlanauf Fehlermeldungen. - Bestaetigen Sie, dass Ihr Access Point im 2,4 GHz-Band arbeitet. Der SSW101B unterstuetzt keine 5 GHz-Netzwerke.
Maschine laeuft zu schnell / Timing-Fehler
Wenn die Host-Maschine Timing-Anomalien aufweist — wie Programme, die mit falscher Geschwindigkeit laufen, Tastatur-Autorepeat sich abnormal verhaelt oder Hardware-E/A-Timing-Fehler — ist die wahrscheinlichste Ursache eine CPLD-Variantenfehlanpassung:
- Bestaetigen Sie, dass die CPLD-Variante genau zur Host-Maschine passt. Jede unterstuetzte Host-Maschine erfordert eine spezifische CPLD-Variante, die in Quartus II kompiliert wird. Beziehen Sie sich auf die Tabelle Unterstuetzte Host-Maschinen oben fuer die korrekte Variantenkennung.
- Wenn das CPLD kuerzlich neu programmiert wurde, bestaetigen Sie, dass die korrekte
.pof-Datei verwendet wurde. Beziehen Sie sich auf den Technischen Leitfaden fuer CPLD-Programmierungs- und Variantenueberprufungsverfahren. - Wenn die korrekte CPLD-Variante bestaetigt ist, pruefen Sie die Z80-Emulations-Takt-Konfiguration. Das
z80drv-Modul muss moeglicherweise seine Taktteilereinstellung fuer die spezifische erwartete Z80-Taktfrequenz Ihrer Host-Maschine anpassen.
Referenz-Websites
Die folgenden Ressourcen bieten zusaetzliche technische Informationen, Projektdokumentation und externe Referenzen, die fuer den tranZPUter FusionX relevant sind.
| Ressource | Ort |
|---|---|
| tranZPUter FusionX Project Page | /tranzputer-fusionx/ |
| FusionX Technical Guide | /tranzputer-fusionx-technicalguide/ |
| FusionX Developer’s Guide | /tranzputer-fusionx-developersguide/ |
| SigmaStar SSD202 Product Page | www.sigmastar.com.tw |
| Altera MAX7000AE Datasheet | Intel/Altera Legacy Documentation |
| Zeta Z80 Emulator Library | github.com/redcode/Zeta |
| Sharp MZ Series Reference | sharpmz.org |
Hinweis zur Funkregulierung
Dieses Geraet enthaelt einen SSW101B 2,4 GHz IEEE 802.11 b/g/n Funktransceiver (integriert im SigmaStar SSD202 SOM), der es zu einem absichtlichen Sender im Sinne der Funkfrequenzvorschriften weltweit macht (einschliesslich FCC Part 15 Subpart C in den Vereinigten Staaten und der Funkanlagenrichtlinie 2014/53/EU in der Europaeischen Union).
Obwohl das SOM-Modul bestehende regulatorische Zertifizierungen traegt, erstrecken sich diese modulbezogenen Zertifizierungen nicht automatisch auf ein fertiges Produkt, das das Modul enthaelt. Die Ausnahme fuer vorzertifizierte Module erlaubt einzelnen Bastlern, eine begrenzte Anzahl von Geraeten fuer persoenlichen, experimentellen oder bildungsbezogenen Gebrauch zu bauen, ohne eine separate Geraetezulassung zu erhalten.
Wichtige Einschraenkungen
Es liegt in der alleinigen Verantwortung des Erbauers sicherzustellen, dass jedes aus diesen Designs konstruierte Geraet allen geltenden Funkfrequenzvorschriften in seiner Rechtshoheit entspricht. Der Autor stellt diese Designs fuer den persoenlichen, bildungsbezogenen und hobbymässigen Gebrauch zur Verfuegung und gibt keine Zusicherung, dass ein aus ihnen gebautes Geraet die regulatorischen Anforderungen fuer die kommerzielle Verteilung erfuellt.
- Zusammengebaute Geraete duerfen nicht verkauft, zum Verkauf angeboten, verschenkt oder anderweitig an Dritte verteilt werden, es sei denn, das fertige Produkt wurde unabhaengig getestet und hat eine eigene Geraetezulassung (z.B. FCC ID, CE-Kennzeichnung mit Bewertung durch eine benannte Stelle) in der entsprechenden Rechtshoheit erhalten.
- Der Bau dieses Projekts fuer den persoenlichen Gebrauch in begrenzter Stueckzahl ist im Allgemeinen unter Hobby- und Experimentierbestimmungen zulaessig (z.B. FCC § 15.23), vorausgesetzt, das Geraet verursacht keine schaedlichen Stoerungen.
- Regulatorische Anforderungen variieren je nach Land. Erbauer ausserhalb der Vereinigten Staaten sollten ihre nationale Funkfrequenzbehoerde bezueglich der geltenden Regeln konsultieren.
Es liegt in der alleinigen Verantwortung des Erbauers sicherzustellen, dass jedes aus diesen Designs konstruierte Geraet allen geltenden Funkfrequenzvorschriften in seiner Rechtshoheit entspricht. Der Autor stellt diese Designs fuer den persoenlichen, bildungsbezogenen und hobbymässigen Gebrauch zur Verfuegung und gibt keine Zusicherung, dass ein aus ihnen gebautes Geraet die regulatorischen Anforderungen fuer die kommerzielle Verteilung erfuellt.