tranZPUter SW-700

English

Premessa

Questo e un documento aggiornato sul tranZPUter SW-700. A causa di numerose modifiche (ad es. riassegnazione delle porte di I/O) nel VHDL e nel software di supporto, si e ritenuto opportuno lasciare il vecchio documento intatto e produrre un documento aggiornato per le modifiche piu recenti.

Il primo rilascio per l’hardware v1.3 sotto il branch Git v2.2-tranZPUter-SW-HW_700_v1.3 era destinato a un host Sharp MZ-700 e ha notevolmente migliorato la macchina in termini di funzionalita, dimostrandosi affidabile e maturo.

Recentemente ho portato il progetto tranZPUter SW-700 su uno Sharp MZ-2000 e aggiornato significativamente il VHDL per fornire non solo una modalita video compatibile MZ-2000 ma anche l’inclusione dell’emulazione FPGA della serie Sharp MZ.

Poiche il controller video e condiviso con l'emulazione FPGA della serie Sharp MZ, eredita tutte le nuove capacita MZ-2000.

     


Panoramica

Lo Sharp MZ-700 e basato sulla CPU Z80 a 3,54 MHz. E un sistema vintage e sottodimensionato rispetto ai computer moderni. Oltre ad essere parte della storia, ha una base software ancora utile. Molti emulatori software sono stati scritti per lo Sharp MZ-700, ma c'e qualcosa di speciale nell'usare l'hardware originale. Questa e un'alternativa che mantiene la macchina originale fornendo al contempo capacita di elaborazione aggiuntive tramite bus mastering.

tranZPUter SW-700

Il tranZPUter prende il nome da: Un compuTER ZPU TRANsformabile. Il tranZPUter SW-700 segue i progetti tranZPUter / tranZPUter SW e integra inoltre la funzionalita del modulo video per migliorare il video dell'host.

Hardware

La base di questo progetto risiede nel bus mastering del Z80, cioe la capacita di escludere lo Z80 dal circuito e controllare l'hardware del computer rimanente secondo necessita. Il bus mastering viene utilizzato per prendere il controllo del bus Z80 e trasferire dati tra la memoria principale e una scheda SD o tra il processore di I/O e il buffer di visualizzazione video.

Setup automatizzato e build (raccomandato)

Invece di installare a mano le tre diverse versioni di Quartus, le toolchain ARM/Java e Docker, usare lo script di setup incluso per la propria piattaforma. Verifica e installa gli strumenti di base, installa Java (JRE) per l'assemblatore GLASS Z80 e Docker, costruisce le tre immagini Docker Quartus riproducibili, clona il repository --recurse-submodules (TZFS, zSoft/zOS, zpu) e infine propone di eseguire il primo build (./build.sh -t all). Quartus non viene installato sull'host — i build di CPLD e FPGA vengono eseguiti all'interno delle immagini Docker. Ogni script e autonomo: copiare il singolo file per la propria piattaforma ed eseguirlo.
Script Platform Notes
setup_tranZPUter.sh Linux / macOS Installs base tools + Java (JRE) + Docker, builds the three Quartus images, clones into ~/tranZPUter, offers ./build.sh -t all.
setup_tranZPUter_windows.cmd Windows 10 / 11 Double-click launcher — runs the .ps1 non-interactively and logs to setup_tranZPUter_log.txt.
setup_tranZPUter_windows_native.ps1 Windows 10 / 11 winget installs Git for Windows + Docker Desktop, builds the Quartus images, clones into %HOME%\tranZPUter, runs ./build.sh -t all via Git Bash.

Linux / macOS:

chmod +x setup_tranZPUter.sh
./setup_tranZPUter.sh

Windows — doppio clic su setup_tranZPUter_windows.cmd, oppure da PowerShell:

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

Il setup costruisce tre immagini Docker Quartus gratuite (Web/Lite Edition, senza licenza), una per famiglia di dispositivi:

Image Quartus Device family Used for
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

Una volta configurato, il build e guidato da build.sh, che esegue Quartus nativamente se viene trovata una versione corrispondente, altrimenti all’interno delle immagini Docker sopra (Java/GLASS viene sempre eseguito nativamente):

./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

Gli output del build (.pof, .sof, boot flash .jic, immagini ROM/TZFS/CP/M) vengono raccolti sotto ./build/output/.

Override utili dell’ambiente:

Variable (alias) Purpose
TZPU_REPO_URL (tranZPUter_REPO_URL) Repository URL to clone. Default https://git.eaw.app/eaw/tranZPUter.git.
TZPU_DIR (tranZPUter_DIR) Build in an existing checkout instead of cloning.
TZPU_ASSUME_YES (tranZPUter_ASSUME_YES)=1 Non-interactive; accept all defaults.
TZPU_QUARTUS_CPLD_IMAGE (tranZPUter_CPLD_IMAGE) Override the CPLD image (default tzpu-quartus:13.0.1).
TZPU_QUARTUS_C3_IMAGE (tranZPUter_FPGA_IMAGE) Override the Cyclone III image (default tzpu-quartus:13.1).
TZPU_QUARTUS_C4_IMAGE Override the Cyclone IV image (default tzpu-quartus:17.1).

I passi di build manuali di Quartus per singolo dispositivo rimangono pienamente supportati per gli utenti avanzati e le ricompilazioni parziali.