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.
MZ80KMZ2500 (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 eseguire
Salvataggio 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-700
Copia scheda SD su nastro
* SD2T INVADERS      ; Scrivere INVADERS dalla scheda SD al nastro
* SD2T 04,7          ; Scrivere file 04 con timing MZ-700
Compensazione 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 ,M per 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/