Systeme de fichiers tranZPUter (TZFS)

Apercu

Le TranZputer Filing System est un portage du Rom Filing System utilise sur la carte d'extension Rom Disk. Il reutilise une grande partie des memes fonctionnalites logicielles et fournit par consequent les memes services -- les differences resident dans l'utilisation d'un modele de memoire different. Son but est de fournir des methodes pour manipuler les fichiers stockes sur la carte SD et offrir une interface en ligne de commande etendue, le moniteur TZFS.
L'avenement du tranZPUter FusionX avec son processeur E/S virtuel a motive la separation de ce logiciel du depot tranZPUter en un module autonome. TZFS fonctionne sur toute la gamme tranZPUter, y compris les appareils tranZPUterFusionX et tranZPUterFusion plus recents.
La carte SD et les ROMs sont gerees par le processeur E/S K64F. Une API de requete de service a ete ecrite utilisant un bloc de memoire partagee commun (640 octets) en conjonction avec une requete E/S physique pour transmettre des commandes et des donnees entre le Z80 et le K64F.

Moniteur TZFS

Lors de la mise sous tension du Sharp MZ-700, le moniteur presente une interface en ligne de commande. Le moniteur TZFS est une extension du moniteur de base. Apres insertion de la carte tranZPUter SW, la commande suivante demarre TZFS :

JE800<cr>

Il est possible d'automatiser le demarrage directement dans TZFS en creant un fichier vide TZFSBOOT.FLG a la racine de la carte SD. Un fichier AUTOEXEC.BAT peut egalement etre cree pour executer des commandes automatiquement au demarrage.
Commande Parametres Description
4 / 8 n/a Basculer en mode 40 ou 80 colonnes.
ASM <addr> Assembler des mnemoniques Z80.
BASIC n/a Charger et executer l’interpreteur BASIC depuis la carte SD.
CD [<directory>] Changer de repertoire sur la carte SD.
CPM n/a Charger et demarrer CP/M 2.23 depuis la carte SD.
D <address> Vidage hexadecimal et ASCII de la memoire.
DASM <start>,<end> Desassembler du code machine Z80.
DIR <wildcard> Lister le repertoire de la carte SD.
LC <name> ou <file number> Charger et executer depuis la carte SD.
MZ [<machine>] Demarrer l’emulateur materiel Sharp MZ.
MZ80K … MZ2500 n/a Activer l’emulation materielle correspondante. (tranZPUter SW uniquement)
T80 n/a Basculer vers le CPU T80 soft.
VGA <vga mode> Selectionner le mode de sortie VGA.
Z80 n/a Revenir au processeur Z80 materiel.
ZPU n/a Basculer vers le processeur ZPU Evolution et demarrer zOS.

Commandes de bande

Tous les formats de bande de la serie Sharp MZ peuvent etre lus et ecrits via les commandes TZFS. Le parametre ,M specifie le modele de machine pour le 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.

Applications mises a jour

Sharp BASIC SA-5510

L'interpreteur SA-5510 BASIC a ete desassemble et rendu compatible avec l'utilisation de la carte SD sous TZFS. La nouvelle version est nommee "BASIC SA-5510-TZ".
Commande Parametres Description
LOAD ”[<filename>]” Charger un programme depuis la carte SD ou CMT.
SAVE ”[<filename>]” Sauvegarder un programme sur la carte SD ou CMT.
DIR ”[<wildcard>]” Lister le repertoire actuel de la carte SD.
CD [<path>] Changer le repertoire SD actif.
FREQ [<freq>] Modifier la frequence CPU (en KHz).

Microsoft BASIC

Une version de Microsoft NASCOM 4.7b BASIC a ete portee sur la plateforme tranZPUter avec des commandes TZFS etendues.

Installation et compilation automatisees (recommande)

La methode recommandee pour compiler TZFS est le script d'installation autonome correspondant a votre plateforme. Il installe les prerequis (un JRE Java pour l'assembleur GLASS Z80, une chaine d'outils C + make pour compiler le sous-module cpmtools integre, ainsi que perl/git/coreutils ; sous Windows, Git Bash + Java), clone le depot, telecharge le paquet de contenu d'environ 110 Mo (TZFS_Files.zip) et peut compiler les images ROM -- le tout de maniere interactive, avec des valeurs par defaut raisonnables que vous pouvez accepter en appuyant sur Entree. Copiez uniquement le fichier correspondant a votre plateforme et executez-le.
Script Plateforme Notes
setup_TZFS.sh macOS / Linux / WSL Installe Java, une chaine d’outils C + make, perl, git ; sous macOS egalement GNU coreutils et bash 4 via un fichier tzfs_env.sh genere.
setup_TZFS_windows.ps1 Windows 10 / 11 – Git Bash natif, sans WSL Utilise winget pour installer Git for Windows (bash, coreutils, perl, curl) et un JRE Temurin 17. Un tools\cpmcp.exe precompile est fourni, aucun compilateur C n’est donc requis.

macOS / Linux / WSL – setup_TZFS.sh

chmod +x setup_TZFS.sh
./setup_TZFS.sh

Windows 10 / 11 (Git Bash natif) – setup_TZFS_windows.ps1, depuis une invite PowerShell :

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_TZFS_windows.ps1
Definissez la variable d'environnement TZFS_REPO_URL pour remplacer l'URL du depot par defaut (https://git.eaw.app/eaw/TZFS.git) sans modifier le script, et TZFS_FILES_URL pour pointer vers un autre paquet de contenu.
Sortie et recompilation. Les images ROM et les images de disque CP/M sont ecrites dans roms/. Pour recompiler ulterieurement, placez-vous dans le depot clone ; sous macOS executez d'abord source ./tzfs_env.sh ; puis lancez ./build.sh (ou ./build.sh -m pour retraiter egalement les sources MZF). Une fois compile, copiez la sortie sur une carte SD formatee en FAT32 avec tools/copytosd.sh.

Compilation TZFS

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

Detail de conception

API K64F Z80 Host

L'API est basee sur un bloc commun de RAM dans l'espace memoire 64K du Z80 a travers lequel les communications interprocesseur ont lieu. Le Z80 ecrit une commande et declenche une interruption au K64F via le port 0x68. Le K64F traite la commande et retourne le resultat.
Commande Cmd# Description
TZSVC_CMD_READDIR 0x01 Ouvrir un repertoire.
TZSVC_CMD_LOADFILE 0x08 Charger un fichier dans la memoire tranZPUter.
TZSVC_CMD_SAVEFILE 0x09 Sauvegarder un fichier.
TZSVC_CMD_LOAD40ABIOS 0x20 Charger le BIOS SA1510 40 colonnes.
TZSVC_CMD_LOADBDOS 0x30 Recharger CPM BDOS+CCP.
TZSVC_CMD_CPU_SETZ80 0x50 Basculer vers le CPU Z80 materiel.
TZSVC_CMD_CPU_SETT80 0x51 Basculer vers le CPU T80 soft.
TZSVC_CMD_EMU_SETMZ80K … 0x53-0x5A Activer l’emulation du modele Sharp MZ correspondant.
TZSVC_CMD_EXIT 0x7F Terminer TZFS.

Modes memoire Z80

Les modes de memoire definis comprennent le mode Original (0), les modes TZFS (2-5), les modes CP/M (6-7), les modes de compatibilite MZ-700 (10-14), les modes MZ-800/MZ-2000 (15-16) et les modes d'acces K64F (21-31). Consultez la table complete des modes dans la version anglaise.

Licences

Ce design est sous licence GNU Public Licence v3.