Sistema di archiviazione tranZPUter (TZFS) -- Manuale utente
Manuale utente TZFS
Il tranZPUter Filing System (TZFS) e un pacchetto firmware in linguaggio assembly Z80 per la famiglia di schede di espansione Z80 tranZPUter. E un porting del Rom Filing System (RFS) adattato all'architettura del tranZPUter: invece di programmare una scheda Flash ROM fisica, TZFS viene caricato automaticamente dal processore I/O integrato (K64F o ZPU) dalla scheda SD nei 512 KB di RAM della scheda ad ogni avvio. Il risultato e un monitor esteso che aggiunge gestione file su scheda SD, avvio di CP/M 2.2, un assemblatore e disassemblatore Z80 integrato, emulazione hardware di macchine, commutazione CPU software, controllo dell'uscita VGA e piu di 40 nuovi comandi -- mantenendo il familiare prompt SA-1510
* e tutti i comandi originali intatti.
Questo manuale copre tutto il necessario per iniziare e utilizzare TZFS quotidianamente. Per i dettagli sull'architettura hardware e il sistema di compilazione consultare la Guida tecnica. Per i dettagli interni del codice sorgente e lo sviluppo firmware consultare la Guida per sviluppatori.
Hardware supportato
TZFS supporta cinque piattaforme hardware, ciascuna selezionata in fase di compilazione tramite flag di compilazione. L'immagine firmware risultante e le funzionalita disponibili differiscono tra le piattaforme. I comandi contrassegnati con (T) nel riferimento dei comandi del monitor sono disponibili solo sulle piattaforme tranZPUter SW, SW-700 e Fusion. Questi comandi sono assenti su FusionX e picoZ80, dove la funzionalita equivalente e gestita nativamente da FPGA o RP2350.
| Piattaforma | Flag di compilazione | Descrizione | Limitazioni |
|---|---|---|---|
| tranZPUter SW | BUILD_MZ700 (predefinito) |
Design originale del tranZPUter. L’FPGA implementa l’emulazione hardware di tutti i modelli Sharp MZ, il CPU soft-core T80 Z80, il CPU software ZPU Evolution e l’uscita VGA. Il processore I/O K64F gestisce l’accesso alla scheda SD e altri servizi software. | Nessuna – set completo di funzionalita. |
| tranZPUter SW-700 v1.3 | BUILD_MZ700 |
Modello di produzione attuale. Layout PCB migliorato dell’SW. Stesse capacita FPGA e K64F. | Nessuna – set completo di funzionalita. |
| tranZPUter Fusion | BUILD_MZ700 |
Combina la scheda tranZPUter con un modulo video FPGA. Stesse capacita FPGA e K64F. | Nessuna – set completo di funzionalita. |
| tranZPUter FusionX | BUILD_FUSIONX |
Implementazione virtuale del tranZPUter basata su FPGA. Emulazione hardware, commutazione CPU e controllo VGA sono gestiti nativamente dall’FPGA. | Emulazione hardware, commutazione CPU e comandi VGA (T) non disponibili via TZFS. Tutti i comandi file, nastro e memoria sono disponibili. |
| picoZ80 | BUILD_PICOZ80 |
Scheda sostitutiva Z80 basata su RP2350. Stessa suddivisione architetturale di FusionX. | Stesse limitazioni di FusionX: nessun comando (T) via TZFS. Tutti i comandi file, nastro e memoria sono disponibili. |
Ottenere TZFS
Immagini firmware pre-compilate sono disponibili nella directory
releases/ del repository Gitea e possono essere utilizzate direttamente senza strumenti di compilazione. A differenza di RFS, TZFS non richiede la programmazione di chip ROM fisici -- il processore I/O K64F o ZPU carica il firmware TZFS dalla scheda SD nei 512 KB di RAM del tranZPUter automaticamente ad ogni avvio.
Per compilare dal sorgente, il modo piu semplice e lo script di configurazione automatizzata per la propria piattaforma — setup_TZFS.sh (macOS / Linux / WSL) oppure setup_TZFS_windows.ps1 (Windows, Git Bash nativo, senza WSL). Ciascuno e autonomo: copiare l'unico file per la propria piattaforma ed eseguirlo, e installa gli strumenti richiesti, scarica il bundle di contenuti e puo eseguire la compilazione per voi, senza richiedere una conoscenza approfondita della toolchain. Vedere la Guida tecnica — Sistema di compilazione per la procedura passo passo.
In alternativa, per compilare manualmente, clonare il repository ed eseguire:
./build.sh
./build.sh BUILD_FUSIONX=1 # Compilazione FusionX ./build.sh BUILD_PICOZ80=1 # Compilazione picoZ80 ./build.sh BUILD_MZ80A=1 # Target MZ-80A (SW/SW-700/Fusion)
Primo avvio
Inserire la scheda SD, collegare la scheda tranZPUter a una macchina Sharp MZ compatibile e accendere. Il processore I/O K64F o ZPU carica il firmware TZFS nei 512 KB di RAM del tranZPUter. Il Z80 viene quindi rilasciato dal reset ed esegue direttamente TZFS. Il familiare banner di accesso SA-1510 appare, completato con "
+ TZFS" per confermare l'inizializzazione riuscita:
SHARP MZ-80A Monitor SA-1510 + TZFS *
Il
* e il prompt standard del monitor SA-1510. Tutti i comandi originali SA-1510 funzionano esattamente come sulla macchina non modificata. Digitare H per visualizzare una schermata di aiuto paginata. Premere Spazio per avanzare.
Comandi del monitor TZFS
L'insieme completo dei comandi TZFS e elencato di seguito. I comandi contrassegnati con (T) sono disponibili solo sulle piattaforme tranZPUter SW, SW-700 e Fusion.
| Comando | Parametri | Descrizione |
|---|---|---|
| 4 | – | Passa alla modalita di visualizzazione a 40 colonne. |
| 8 | – | Passa alla modalita di visualizzazione a 80 colonne. |
| ASM | <address> |
Avvia l’assemblatore Z80 integrato dall’indirizzo <address>. |
| B | – | Attiva o disattiva il bip di immissione tasti. |
| BASIC | – | Localizza SA-5510 BASIC sulla scheda SD, lo carica e lo esegue. |
| CD | [<directory>] |
Cambia la directory attiva della scheda SD. |
| CP | <src> <dst> <size> |
Copia un blocco di memoria. |
| CPM | – | Carica CP/M 2.2 dalla scheda SD e avvia. |
| D | <addr> [<addr2>] |
Dump esadecimale e ASCII della memoria. |
| DASM | <addr> [<addr2>] |
Disassembla codice macchina Z80. |
| DIR | [<wildcard>] |
Elenco paginato della directory attiva della scheda SD. |
| EC | <name or file no.> |
Cancella un file dalla scheda SD. |
| EX | – | Esce da TZFS e riavvia la macchina in modalita originale. |
| F | [<drive>] |
Avvio da floppy disk. |
| FILL | <start> <end> [,<value>] |
Riempie la memoria con il valore dato (predefinito 0x00). |
| FREQ | <kHz> |
Imposta la frequenza CPU in kHz. 0 ripristina il valore predefinito. |
| H | – | Visualizza la schermata di aiuto paginata. |
| J | <address> |
Salta a (esegue da) l’indirizzo esadecimale dato. |
| L / LT | [<filename>] [,<M>] |
Carica da nastro (CMT) ed esegue. |
| LTNX | [<filename>] [,<M>] |
Carica da nastro senza eseguire. |
| LC | <name or no.> [,<M>] |
Carica un programma dalla scheda SD e lo esegue. |
| LCNX | <name or no.> [,<M>] |
Carica dalla scheda SD senza eseguire. |
| M | <address> |
Editor di memoria interattivo. |
| MZ (T) | [<mc>] |
Attiva l’emulazione hardware per il codice macchina mc. |
| MZ80K … MZ2500 (T) | – | Attiva l’emulazione hardware del modello Sharp MZ corrispondente. |
| P | – | Esegue un test sulla stampante collegata. |
| R | – | Esegue un test completo della memoria DRAM (0x1200-0xCFFF). |
| RIO | <port> |
Legge una porta I/O e visualizza il valore. |
| S / ST | <start> <end> <exec> [,<M>] |
Salva un’area di memoria su nastro (CMT). |
| SC | <start> <end> <exec> |
Salva un’area di memoria sulla scheda SD. |
| SD2T | <name or no.> [,<M>] |
Copia un file dalla scheda SD al nastro (CMT). |
| T | – | Testa il chip timer 8253. |
| T2SD | [B] [,<M>] |
Copia nastro su scheda SD. Il flag B attiva la modalita in blocco. |
| T80 (T) | – | Passa al nucleo CPU software T80 interno. |
| TC | [-]<value> |
Imposta la compensazione del ritardo del nastro. |
| V | – | Verifica un file scritto su nastro rispetto ai dati in memoria. |
| VBORDER (T) | <colour> |
Imposta il colore del bordo VGA (0-15). |
| VGA (T) | <mode> |
Imposta la modalita di uscita VGA (0=spento, 1=640x480, 2=800x600). |
| VMODE (T) | <mode> |
Imposta la modalita video attiva per la macchina emulata. |
| WIO | <port> <value> |
Scrive un valore su una porta I/O. |
| Z80 (T) | – | Torna al CPU Z80 hardware (esterno). |
| ZPU (T) | – | Passa al nucleo CPU software ZPU Evolution e avvia zOS. |
Operazioni su nastro
TZFS mantiene il supporto completo CMT (cassetta) insieme al sistema di archiviazione su scheda SD. Tutti i comandi di nastro originali funzionano come sul monitor SA-1510 non modificato. TZFS li estende con la selezione del timing per modello di macchina e aggiunge comandi per il trasferimento file tra nastro e scheda SD.
Caricamento da nastro
Usare L (o l'alias LT) per caricare un programma dal nastro ed eseguirlo. Usare LTNX per caricare senza eseguire. Il parametro opzionale
,M seleziona il modello di macchina per il timing del nastro.
| Codice | Modello di macchina |
|---|---|
| K | Sharp MZ-80K |
| C | Sharp MZ-80C |
| 1 | Sharp MZ-1200 |
| A | Sharp MZ-80A |
| 7 | Sharp MZ-700 |
| 8 | Sharp MZ-800 |
| B | Sharp MZ-80B |
| 2 | Sharp MZ-2000 |
* L ; Caricare il prossimo file dal nastro ed eseguire (timing predefinito) * LT INVADERS ; Cercare INVADERS sul nastro ed eseguire * LTNX ,7 ; Caricare con timing MZ-700, senza eseguireSalvataggio su nastro
* S120020001200 FILE NAME? MYPROG SAVING...Copia nastro su scheda SD
* T2SD ; Copiare il prossimo file dal nastro alla scheda SD * T2SD B ; Copia in blocco -- leggere tutti i file dal nastro * T2SD B,7 ; Copia in blocco con timing MZ-700Copia scheda SD su nastro
* SD2T INVADERS ; Scrivere INVADERS dalla scheda SD al nastro * SD2T 04,7 ; Scrivere file 04 con timing MZ-700Compensazione ritardo nastro
* TC ; Visualizzare il valore di compensazione attuale * TC 2 ; Aumentare la compensazione di 2 passi * TC -1 ; Diminuire la compensazione di 1 passo
Operazioni su scheda SD
TZFS utilizza il processore I/O K64F o ZPU del tranZPUter per accedere a una scheda SD formattata FAT tramite un'API di richiesta servizio. I file sono memorizzati in formato MZF standard in una struttura di directory convenzionale. Tutti i comandi della scheda SD operano sulla directory attualmente attiva, modificabile con CD.
* DIR ; Elencare tutti i file nella directory attiva * CD MZ700 ; Entrare nella sottodirectory MZ700 * LC INVADERS ; Caricare INVADERS ed eseguire * SC120020001200 ; Salvare un'area di memoria sulla scheda SD * EC OLDPROG ; Cancellare il file OLDPROG
Emulazione hardware
Questa funzionalita e disponibile solo sulle piattaforme tranZPUter SW, SW-700 e Fusion (T).
L'FPGA del tranZPUter implementa un'emulazione a livello hardware dell'intera famiglia Sharp MZ. Quando viene emesso un comando di emulazione, il firmware TZFS chiede al K64F di caricare la ROM monitor corretta per la macchina di destinazione. L'FPGA riconfigura quindi la sua logica video e di mappatura memoria e la macchina si riavvia in modalita di compatibilita completa.
* MZ 700 ; Attivare l'emulazione hardware MZ-700 * MZ ; Attivare l'emulazione MZ-80A (predefinita) * MZ 2000 ; Attivare l'emulazione hardware MZ-2000
Commutazione CPU
Questa funzionalita e disponibile solo sulle piattaforme tranZPUter SW, SW-700 e Fusion (T).
| Comando | Descrizione |
|---|---|
| Z80 | Tornare al Z80 hardware (esterno). Stato predefinito dopo l’avvio. |
| T80 | Passare al T80 soft-core Z80 implementato nell’FPGA. |
| ZPU | Passare al CPU software ZPU Evolution e avviare zOS. |
Controllo video
Questa funzionalita e disponibile solo sulle piattaforme tranZPUter SW, SW-700 e Fusion (T).
| Comando | Parametri | Descrizione |
|---|---|---|
| VGA | <mode> |
Imposta la modalita di uscita VGA. 0 = spento, 1 = 640x480, 2 = 800x600. |
| VBORDER | <colour> |
Imposta il colore del bordo VGA (0-15). |
| VMODE | <mode> |
Imposta la modalita video attiva per la macchina emulata. |
Usare BASIC
* BASIC
TZFS cerca l'immagine SA-5510 BASIC nella directory attiva della scheda SD, la carica in RAM e la esegue. Poiche TZFS carica BASIC dalla scheda SD anziche dalla ROM, e semplice mantenere piu versioni di BASIC sulla scheda SD.
Eseguire CP/M 2.2
* CPM
TZFS localizza l'immagine CP/M sulla scheda SD, la carica e trasferisce il controllo al CCP di CP/M. Il prompt cambia in
A>.
Risoluzione dei problemi
Il monitor si avvia ma "TZFS" non appare nel banner
- Scheda SD non inserita o non rilevata -- verificare che la scheda sia correttamente inserita nello slot.
- Binario firmware errato sulla scheda SD -- assicurarsi che il binario TZFS corrisponda alla variante della scheda.
- Scheda SD non formattata FAT -- il processore I/O richiede una scheda formattata FAT standard.
I comandi di emulazione, commutazione CPU o VGA non vengono riconosciuti
- Esecuzione su FusionX o picoZ80 -- i comandi contrassegnati (T) non sono disponibili su queste piattaforme. Questo e un comportamento atteso.
I caricamenti da nastro falliscono
- Incompatibilita di timing del nastro -- usare il parametro
,Mper selezionare il timing del modello di macchina appropriato. - Variazione di velocita della testina -- usare il comando TC per regolare la compensazione.
CP/M non si avvia o mostra errori BIOS
- Immagine CP/M assente dalla scheda SD -- assicurarsi che la scheda SD contenga l'immagine di avvio CP/M nella directory attiva.
La macchina si blocca dopo il caricamento di un programma
- Programma per il modello di macchina errato -- attivare l'emulazione hardware appropriata prima del caricamento.
- Il programma sovrascrive l'area di lavoro TZFS -- usare LCNX per caricare senza eseguire.
Siti di riferimento
| Risorsa | Link |
|---|---|
| Pagina del progetto TZFS | /sharpmz-upgrades-tzfs/ |
| Guida tecnica TZFS | /sharpmz-upgrades-tzfs-technicalguide/ |
| Guida per sviluppatori TZFS | /sharpmz-upgrades-tzfs-developersguide/ |
| Pagina del progetto tranZPUter SW | /tranzputer/ |
| picoZ80 (sostituzione Z80 RP2350) | /picoz80/ |
| Manuale utente RFS (firmware companion) | /sharpmz-upgrades-rfs-usermanual/ |