tranZPUter SW-700

English

Vorwort

Dies ist ein aktualisiertes Dokument zum tranZPUter SW-700. Aufgrund zahlreicher Aenderungen (z.B. I/O-Port-Neuzuordnung) in der VHDL und der Unterstuetzungssoftware wurde entschieden, das alte Dokument unberuehrt zu lassen und ein aktualisiertes Dokument fuer die neueren Aenderungen und das Release zu erstellen.

Das erste Release fuer die v1.3-Hardware unter dem Git-Branch v2.2-tranZPUter-SW-HW_700_v1.3 zielte auf einen Sharp MZ-700 Host ab, der die Maschine in Bezug auf Funktionen und Funktionalitaet erheblich aufwertete und sich als zuverlaessig und ausgereift erwiesen hat.

Kuerzlich habe ich das tranZPUter SW-700 Projekt auf einen Sharp MZ-2000 portiert und die VHDL erheblich erweitert, um nicht nur einen MZ-2000-kompatiblen Videomodus bereitzustellen, sondern auch die Sharp MZ Serie FPGA Emulation einzubinden.

Da der Video Controller mit der Sharp MZ Serie FPGA Emulation geteilt wird, erbt er alle neuen MZ-2000-Faehigkeiten.

Der Vorteil eines MZ-2000-Grafikcontrollers auf dem tranZPUter SW-700 gegenueber dem originalen MZ-1R01 Grafikboard ist, dass der interne Monitor jetzt Farbe in Gruenstufen darstellen kann, sodass Grafiken und Spiele sowohl auf dem internen als auch dem externen Monitor voll nutzbar sind.

     

Das tranZPUter SW-700 Konzept wird weiter entwickelt, einschliesslich der Ueberlegung, die Platine in weiteren potenziellen Hosts (X1/2500) zu platzieren und Funktionen wie die Sharp MZ Serie FPGA Emulation / Soft-CPUs wie ZPU, NIOS II und 68000. Dieses Dokument wird parallel aktualisiert, um diese Entwicklungen widerzuspiegeln.

Uebersicht

Der Sharp MZ-700 basiert auf der Z80-CPU mit 3,54 MHz. Er ist Vintage (obwohl der Z80 immer noch weit verbreitet in neuen industriellen Designs mit 33 MHz und mehr eingesetzt wird) und im Vergleich zu modernen Computern (oder einem Raspberry Pi) untermotorisiert. Abgesehen davon, dass er ein Teil der Geschichte ist, verfuegt er ueber eine Softwarebasis, die von Zeit zu Zeit nuetzlich ist und immer noch Anhaenger hat. Viele Software-Emulatoren wurden fuer den Sharp MZ-700 geschrieben, um die Nutzung der Software zu verlaengern, aber die Verwendung originaler Hardware hat etwas Besonderes. Dies ist eine Alternative, die die Maschine original belasst und gleichzeitig ein Upgrade bietet, das zusaetzliche Verarbeitungsfaehigkeiten, Speicher und mehrere verschiedene CPUs basierend auf Software wie dem PiCoPro am BBC Micro bereitstellen kann. All dies wird durch Bus-Mastering ermoeglicht, bei dem die Original-CPU in den Tristate-Zustand versetzt wird und der K64F/CPLD/FPGA bei Bedarf die Kontrolle ueber den Bus und die zugrunde liegenden originalen Hauptplatinen-Peripheriegeraete uebernimmt.

Das Upgrade erweitert auch die Z80-Hardwarefaehigkeiten, indem zusaetzlicher RAM bereitgestellt wird, um eine 64K-Version von CP/M v2.2 (und bis zu 512K CP/M v3, wenn ich zur Portierung komme) zu ermoeglichen, und die Geschwindigkeit des Prozessors zu erhoehen, waehrend beim Zugriff auf die Sharp MZ-700 Hauptplatinen-Peripheriegeraete die Originalgeschwindigkeit beibehalten wird.

Dieses Design reift jetzt und ist stabil, obwohl die Entwicklung zur Erweiterung seiner Faehigkeiten fortgesetzt wird, z.B. Soft-CPUs, Video-Hardware-Verbesserungen usw.

tranZPUter SW-700

Der tranZPUter erhaelt seinen Namen von: Ein TRANsformierbarer ZPU-compuTER, da die fuer den originalen tranZPUter vorgesehene Basis-CPU der ZPU Evo ist. Die Anforderung war, dass der ZPU Evo die beabsichtigten Menue-, SD- und Video-Overlay-Dienste fuer den Sharp MZ-80A bereitstellt, indem er den originalen Z80 in den Tristate versetzt und auf MZ-80A-Speicher und -Peripheriegeraete zugreift, als waeren sie ZPU-Geraete.

Der tranZPUter SW-700 folgt auf die tranZPUter / tranZPUter SW Designs und integriert zusaetzlich die Video Module Funktionalitaet zur Aufwertung des Host-Videos. Er erweitert auch die zugrunde liegende Z80-Hardware fuer hoehere Leistung und erhoehten Speicher. Er bettet einen Freescale K64F ARM Cortex-M4 anstelle des ZPU Evo ein, da der tranZPUter SW-700 eher eine Softwareloesung der Anforderung ist. Das Projekt fuegt das Suffix SW-700 fuer SoftWare fuer den MZ-700 hinzu, um die Designs zu unterscheiden.

Hardware

Die Grundlage dieses Designs liegt im Z80 Bus-Mastering, d.h. der Faehigkeit, den Z80 aus dem Schaltkreis zu nehmen und die verbleibende Computerhardware nach Bedarf zu steuern. Bus-Mastering wurde typischerweise von Geraeten wie DMA fuer schnellen Datentransfer verwendet.

Bus-Mastering wird verwendet, um den Z80-Bus zu uebernehmen und Daten zwischen dem Hauptspeicher und einer SD-Karte zu uebertragen oder zwischen dem I/O-Prozessor und dem Video-Anzeigepuffer zur Darstellung von Menues. Es wird auch verwendet, wenn ein Soft-Prozessor den Hard-Z80 vollstaendig stilllegt und als Haupt-CPU des Computers agiert.

Das Design basiert darauf, den originalen Z80 auf eine Tochterkarte zu heben und mehrere seiner Signale umzuleiten, sodass sie nach Bedarf gesteuert werden koennen. Es nimmt auch den Videoausgang von der Hauptplatine und leitet ihn intern zum FPGA-basierten Videomodul weiter.

Automatisches Setup und Build (empfohlen)

Anstatt die drei verschiedenen Quartus-Versionen, die ARM-/Java-Toolchains und Docker von Hand zu installieren, verwenden Sie das mitgelieferte Setup-Skript fuer Ihre Plattform. Es prueft und installiert die Basis-Werkzeuge, installiert Java (JRE) fuer den GLASS-Z80-Assembler und Docker, baut die drei reproduzierbaren Quartus-Docker-Images, klont das Repository mit --recurse-submodules (TZFS, zSoft/zOS, zpu) und bietet dann an, den ersten Build auszufuehren (./build.sh -t all). Quartus wird nicht auf dem Host installiert — die CPLD- und FPGA-Builds laufen innerhalb der Docker-Images. Jedes Skript ist eigenstaendig: Kopieren Sie die einzelne Datei fuer Ihre Plattform und fuehren Sie sie aus.
Skript Plattform Hinweise
setup_tranZPUter.sh Linux / macOS Installiert Basis-Werkzeuge + Java (JRE) + Docker, baut die drei Quartus-Images, klont nach ~/tranZPUter, bietet ./build.sh -t all an.
setup_tranZPUter_windows.cmd Windows 10 / 11 Doppelklick-Starter — fuehrt die .ps1 nicht-interaktiv aus und protokolliert nach setup_tranZPUter_log.txt.
setup_tranZPUter_windows_native.ps1 Windows 10 / 11 winget installiert Git for Windows + Docker Desktop, baut die Quartus-Images, klont nach %HOME%\tranZPUter, fuehrt ./build.sh -t all ueber Git Bash aus.

Linux / macOS:

chmod +x setup_tranZPUter.sh
./setup_tranZPUter.sh

Windows — Doppelklick auf setup_tranZPUter_windows.cmd oder aus PowerShell:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_tranZPUter_windows_native.ps1

Das Setup baut drei kostenlose (Web/Lite Edition, keine Lizenz) Quartus-Docker-Images, eines pro Geraetefamilie:

Image Quartus Geraetefamilie Verwendet fuer
tzpu-quartus:13.0.1 13.0.1 MAX7000AE CPLD CPLD .pof
tzpu-quartus:13.1 13.1 Cyclone III (EP3C25) SW-700 v1.2 FPGA
tzpu-quartus:17.1 17.1 Cyclone IV (EP4CE75 / EP4CE115) SW-700 v1.3 / Fusion FPGA

Nach der Einrichtung wird der Build von build.sh gesteuert, das Quartus nativ ausfuehrt, wenn eine passende Version gefunden wird, andernfalls innerhalb der obigen Docker-Images (Java/GLASS laeuft immer nativ):

./build.sh -t all        # CPLD + FPGA + software (default: -V v1.3 -M all -D E115 -C emuMZ)
./build.sh -t fpga -V v1.2   # just the v1.2 (Cyclone III) FPGA bitstream
./build.sh -h            # list all targets and options

Build-Ausgaben (.pof, .sof, .jic-Boot-Flash, ROM/TZFS/CP/M-Images) werden unter ./build/output/ gesammelt.

Nuetzliche Umgebungs-Overrides:

Variable (Alias) Zweck
TZPU_REPO_URL (tranZPUter_REPO_URL) Zu klonende Repository-URL. Standard https://git.eaw.app/eaw/tranZPUter.git.
TZPU_DIR (tranZPUter_DIR) In einem vorhandenen Checkout bauen, anstatt zu klonen.
TZPU_ASSUME_YES (tranZPUter_ASSUME_YES)=1 Nicht-interaktiv; alle Standardwerte akzeptieren.
TZPU_QUARTUS_CPLD_IMAGE (tranZPUter_CPLD_IMAGE) Ueberschreibt das CPLD-Image (Standard tzpu-quartus:13.0.1).
TZPU_QUARTUS_C3_IMAGE (tranZPUter_FPGA_IMAGE) Ueberschreibt das Cyclone-III-Image (Standard tzpu-quartus:13.1).
TZPU_QUARTUS_C4_IMAGE Ueberschreibt das Cyclone-IV-Image (Standard tzpu-quartus:17.1).

Die manuellen, geraetespezifischen Quartus-Build-Schritte unten werden fuer fortgeschrittene Benutzer und Teil-Rebuilds weiterhin vollstaendig unterstuetzt.