Sistema di archiviazione tranZPUter (TZFS)

Panoramica

Il TranZputer Filing System e un porting del Rom Filing System utilizzato sulla scheda di aggiornamento hardware Rom Disk. Riutilizza molte delle stesse funzionalita software e fornisce di conseguenza gli stessi servizi -- le differenze risiedono nell'utilizzo di un modello di memoria diverso. Il suo scopo e fornire metodi per manipolare i file memorizzati sulla scheda SD e offrire un'interfaccia a riga di comando estesa, il monitor TZFS.
L'avvento del tranZPUter FusionX con il suo processore I/O virtuale ha motivato la separazione di questo software dal repository tranZPUter in un modulo autonomo. TZFS funziona su tutta la gamma tranZPUter, inclusi i dispositivi tranZPUterFusionX e tranZPUterFusion piu recenti.
La scheda SD e le ROM sono gestite dal processore I/O K64F. E stata scritta un'API di richiesta servizio che utilizza un blocco di memoria condivisa comune (640 byte) in combinazione con una richiesta I/O fisica per passare comandi e dati tra lo Z80 e il K64F.

Monitor TZFS

All'accensione dello Sharp MZ-700, il monitor presenta un'interfaccia a riga di comando. Il monitor TZFS e un'estensione del monitor base. Dopo aver inserito la scheda tranZPUter SW, il seguente comando avvia TZFS:

JE800<cr>

E possibile automatizzare l'avvio direttamente in TZFS creando un file vuoto TZFSBOOT.FLG nella radice della scheda SD. Un file AUTOEXEC.BAT puo essere creato per eseguire comandi automaticamente all'avvio.
Comando Parametri Descrizione
4 / 8 n/a Passare a modalita 40 o 80 colonne.
ASM <addr> Assemblare mnemonici Z80.
BASIC n/a Caricare ed eseguire l’interprete BASIC dalla scheda SD.
CD [<directory>] Cambiare directory sulla scheda SD.
CPM n/a Caricare e avviare CP/M 2.23 dalla scheda SD.
D <address> Dump esadecimale e ASCII della memoria.
DASM <start>,<end> Disassemblare codice macchina Z80.
DIR <wildcard> Elencare la directory della scheda SD.
LC <name> o <file number> Caricare ed eseguire dalla scheda SD.
MZ [<machine>] Avviare l’emulatore hardware Sharp MZ.
MZ80K … MZ2500 n/a Attivare l’emulazione hardware corrispondente. (solo tranZPUter SW)
T80 n/a Passare al CPU T80 software.
VGA <vga mode> Selezionare la modalita di uscita VGA.
Z80 n/a Tornare al processore Z80 hardware.
ZPU n/a Passare al processore ZPU Evolution e avviare zOS.

Comandi nastro

Tutti i formati nastro della serie Sharp MZ possono essere letti e scritti tramite i comandi TZFS. Il parametro ,M specifica il modello di macchina per il timing: K=MZ-80K, C=MZ-80C, 1=MZ-1200, A=MZ-80A, 7=MZ-700, 8=MZ-800, B=MZ-80B, 2=MZ-2000.

Applicazioni aggiornate

Sharp BASIC SA-5510

L'interprete SA-5510 BASIC e stato disassemblato e reso compatibile con l'uso della scheda SD sotto TZFS. La nuova versione e denominata "BASIC SA-5510-TZ".
Comando Parametri Descrizione
LOAD ”[<filename>]” Caricare un programma dalla scheda SD o CMT.
SAVE ”[<filename>]” Salvare un programma sulla scheda SD o CMT.
DIR ”[<wildcard>]” Elencare la directory attuale della scheda SD.
CD [<path>] Cambiare la directory SD attiva.
FREQ [<freq>] Modificare la frequenza CPU (in KHz).

Microsoft BASIC

Una versione di Microsoft NASCOM 4.7b BASIC e stata portata sulla piattaforma tranZPUter con comandi TZFS estesi.

Configurazione e compilazione automatizzate (consigliato)

Il modo consigliato per compilare TZFS e lo script di configurazione autonomo per la propria piattaforma. Installa i prerequisiti (un JRE Java per l'assemblatore GLASS Z80, una toolchain C + make per compilare il sottomodulo cpmtools incluso, oltre a perl/git/coreutils; su Windows, Git Bash + Java), clona il repository, scarica il bundle di contenuti da ~110 MB (TZFS_Files.zip) e puo compilare le immagini ROM — il tutto in modo interattivo, con valori predefiniti sensati che si possono accettare premendo Enter. E sufficiente copiare il singolo file per la propria piattaforma ed eseguirlo.
Script Piattaforma Note
setup_TZFS.sh macOS / Linux / WSL Installa Java, una toolchain C + make, perl, git; su macOS anche GNU coreutils e bash 4 tramite un tzfs_env.sh generato.
setup_TZFS_windows.ps1 Windows 10 / 11 — Git Bash nativo, senza WSL Usa winget per installare Git for Windows (bash, coreutils, perl, curl) e un JRE Temurin 17. Un tools\cpmcp.exe precompilato e incluso, quindi non e richiesto alcun compilatore C.

macOS / Linux / WSL — setup_TZFS.sh

chmod +x setup_TZFS.sh
./setup_TZFS.sh

Windows 10 / 11 (Git Bash nativo) — setup_TZFS_windows.ps1, da un prompt PowerShell:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_TZFS_windows.ps1
Impostare la variabile d'ambiente TZFS_REPO_URL per sovrascrivere l'URL del repository predefinito (https://git.eaw.app/eaw/TZFS.git) senza modificare lo script, e TZFS_FILES_URL per puntare a un bundle di contenuti alternativo.
Output e ricompilazione. Le immagini ROM e le immagini disco CP/M vengono scritte in roms/. Per ricompilare in seguito, entrare nel checkout; su macOS eseguire prima source ./tzfs_env.sh; quindi eseguire ./build.sh (oppure ./build.sh -m per rielaborare anche i sorgenti MZF). Una volta compilato, copiare l'output su una scheda SD formattata FAT32 con tools/copytosd.sh (vedere Una compilazione tipica piu sotto per la procedura completa).

Compilazione TZFS

cd <software>
./build.sh
tools/copytosd.sh -D$(pwd) -M/media/user/K64F -tMZ-700

Dettagli di progettazione

API K64F Z80 Host

L'API si basa su un blocco comune di RAM nello spazio di memoria 64K dello Z80. Lo Z80 scrive un comando e attiva un interrupt al K64F tramite la porta 0x68. Il K64F elabora il comando e restituisce il risultato.
Comando Cmd# Descrizione
TZSVC_CMD_READDIR 0x01 Aprire una directory.
TZSVC_CMD_LOADFILE 0x08 Caricare un file nella memoria tranZPUter.
TZSVC_CMD_SAVEFILE 0x09 Salvare un file.
TZSVC_CMD_LOAD40ABIOS 0x20 Caricare il BIOS SA1510 40 colonne.
TZSVC_CMD_LOADBDOS 0x30 Ricaricare CPM BDOS+CCP.
TZSVC_CMD_CPU_SETZ80 0x50 Passare al CPU Z80 hardware.
TZSVC_CMD_CPU_SETT80 0x51 Passare al CPU T80 software.
TZSVC_CMD_EMU_SETMZ80K … 0x53-0x5A Attivare l’emulazione del modello Sharp MZ corrispondente.
TZSVC_CMD_EXIT 0x7F Terminare TZFS.

Modi di memoria Z80

I modi di memoria definiti includono il modo Originale (0), modi TZFS (2-5), modi CP/M (6-7), modi di compatibilita MZ-700 (10-14), modi MZ-800/MZ-2000 (15-16) e modi di accesso K64F (21-31). Consultare la tabella completa dei modi nella versione inglese.

Licenze

Questo design e licenziato sotto la GNU Public Licence v3.