Systeme de fichiers tranZPUter (TZFS) -- Guide technique
Guide technique TZFS
Ce guide documente l'integration materielle du tranZPUter Filing System (TZFS), l'architecture memoire, la disposition des modules logiciels, l'API de service du processeur E/S K64F, l'implementation de CP/M et le systeme de compilation complet. Il est destine aux utilisateurs qui souhaitent comprendre le fonctionnement de TZFS au niveau systeme, porter TZFS sur un nouveau materiel ou effectuer une compilation complete a partir des sources.
TZFS est un portage de RFS adapte pour la famille de cartes tranZPUter. Contrairement a RFS qui programme des puces Flash ROM physiques, TZFS fonctionne entierement dans les 512 Ko de RAM du tranZPUter -- le processeur E/S K64F charge l'integralite du firmware depuis la carte SD dans la SRAM au demarrage. Tous les acces a la carte SD passent par l'API de service K64F.
Pour l'utilisation quotidienne, consultez le Manuel utilisateur. Pour le code source Z80, consultez le Guide du developpeur.
Plateformes materielles
TZFS cible cinq plateformes materielles, chacune selectionnee a la compilation via des drapeaux dans
tranZPUter SW
tzfs_definitions.asm.
Premiere carte de production avec processeur E/S K64F ARM Cortex-M4, 512 Ko SRAM et FPGA (T80, ZPU Evolution, emulation materielle, VGA).
tranZPUter SW-700 v1.3
Version actuelle avec disposition PCB amelioree. Memes composants.
tranZPUter Fusion
SW-700 combine avec un module video couleur 40/80 colonnes. Selectionne avec
tranZPUter FusionX
BUILD_VIDEOMODULE.tranZPUter virtuel base sur FPGA. Selectionne avec
picoZ80
BUILD_FUSIONX.Remplacement Z80 base sur RP2350. Selectionne avec
BUILD_PICOZ80.Architecture memoire
Disposition de l'espace d'adressage Z80Address Size Contents ───────────────────────────────────────────────────────────────────── 0x0000 4 KB Monitor ROM area — SA-1510 (or 1Z-013A, MZ-80B IPL etc.) 0x1000 256 B MZ system variables / stack 0x1200 ~46 KB User RAM (main program area) 0xD000 12 KB Video RAM + memory-mapped I/O 0xE800 2 KB TZFS fixed code window 0xED80 640 B K64F service communication block (TZSVCMEM) 0xF000 4 KB Switchable code window — bank selected by TZMM mode ─────────────────────────────────────────────────────────────────────Modes de gestion memoire (TZMM)
| Mode | Code | Description |
|---|---|---|
| TZMM_ORIG | 0x00 | Mode original Sharp MZ. |
| TZMM_BOOT | 0x01 | Mode original avec SRAM tranZPUter a 0xE800-0xEFFF. |
| TZMM_TZFS | 0x02 | Mode principal TZFS – toute la memoire dans la SRAM tranZPUter. |
| TZMM_TZFS2 | 0x03 | 0xF000-0xFFFF mappe sur le Block 1 (tzfs_bank2). |
| TZMM_TZFS3 | 0x04 | 0xF000-0xFFFF mappe sur le Block 2 (tzfs_bank3). |
| TZMM_TZFS4 | 0x05 | 0xF000-0xFFFF mappe sur le Block 3 (tzfs_bank4, utilise aussi 0x1200-0xCFFF). |
| TZMM_CPM | 0x06 | Mode CP/M – toute la SRAM, Block 4. |
| TZMM_CPM2 | 0x07 | Mode CP/M 2 – configuration mixte Block 4/5. |
Architecture logicielle
| Module | Plage memoire | Taille | Mode TZMM | Description |
|---|---|---|---|---|
tzfs.asm |
0xE800-0xEFFF | 2 Ko fixe | TZMM_TZFS | Point d’entree principal, dispatcheur de commandes, tables de saut. |
tzfs_bank2.asm |
0xF000-0xFFFF | 4 Ko | TZMM_TZFS2 | Impression de messages, conversion ASCII, ecran d’aide. |
tzfs_bank3.asm |
0xF000-0xFFFF | 4 Ko | TZMM_TZFS3 | Utilitaires memoire, E/S, compensation bande, commutation d’emulation. |
tzfs_bank4.asm |
0x1200-0xCFFF + 0xF000-0xFFFF | 52 Ko | TZMM_TZFS4 | Assembleur et desassembleur Z80 complets. |
| Adresse | Nom | Description |
|---|---|---|
| 0xE880 | CMT_RDINF | Lire l’en-tete bande/SD |
| 0xE883 | CMT_RDDATA | Lire le bloc de donnees bande/SD |
| 0xE886 | CMT_WRINF | Ecrire l’en-tete bande/SD |
| 0xE889 | CMT_WRDATA | Ecrire le bloc de donnees bande/SD |
| 0xE88C | CMT_VERIFY | Verifier l’ecriture bande/SD |
| 0xE88F | CMT_DIR | Liste du repertoire carte SD |
| 0xE892 | CMT_CD | Changer de repertoire carte SD |
| 0xE895 | SET_FREQ | Definir la frequence d’horloge CPU |
API de service K64F / processeur E/S
Toutes les E/S de fichiers SD, les chargements de moniteur et les acces disque CP/M sont effectues par le processeur E/S K64F. Le Z80 soumet des requetes via un bloc de memoire partagee et attend la completion.
Mecanisme de requete de service
- Le Z80 remplit le bloc de communication a 0xED80 et ecrit
TZSVC_STATUS_REQUEST(0xFE) dansTZSVCRESULT. - Le Z80 ecrit sur le port E/S
SVCREQ(0x68) pour signaler le K64F. - Le K64F met
TZSVCRESULTaTZSVC_STATUS_PROCESSING(0xFF). - Le Z80 interroge jusqu'a ce que la valeur ne soit ni 0xFF ni 0xFE.
- Succes :
TZSVC_STATUS_OK(0x00). Erreur : code non nul.
| Code | Nom | Description |
|---|---|---|
| 0x01 | READDIR | Ouvrir un repertoire et retourner les premieres entrees. |
| 0x03 | READFILE | Ouvrir un fichier et retourner le premier bloc. |
| 0x07 | CLOSE | Fermer tout fichier ou repertoire ouvert. |
| 0x08 | LOADFILE | Charger un fichier complet dans la SRAM. |
| 0x09 | SAVEFILE | Sauvegarder une region SRAM en fichier. |
| 0x0A | ERASEFILE | Supprimer un fichier. |
| 0x0B | CHANGEDIR | Changer le repertoire actif. |
| 0x20-0x2F | LOAD*BIOS | Charger les firmwares moniteur/BIOS. |
| 0x30-0x33 | CP/M disk | Operations disque CP/M. |
| 0x50-0x5D | CPU/EMU | Commutation CPU et emulation (SW/Fusion uniquement). |
| 0x7F | EXIT | Terminer TZFS. |
Implementation CP/M 2.2
CP/M 2.2 est disponible sur toutes les plateformes TZFS via la commande
CPM. L'implementation utilise les modes TZMM_CPM / TZMM_CPM2. Le CBIOS utilise les appels de service K64F pour toutes les E/S disque. Les lecteurs CP/M A:-G: sont des images disque sur carte SD. CP/M 2.2 offre 47 Ko de RAM programme utilisable.
Systeme de compilation
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.
macOS / Linux / WSL – setup_TZFS.sh
chmod +x setup_TZFS.sh
./setup_TZFS.sh
Windows 10 / 11 – setup_TZFS_windows.ps1 (Git Bash natif, sans WSL). Depuis une invite PowerShell :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_TZFS_windows.ps1
Le script Windows utilise winget pour installer Git for Windows (qui fournit bash, coreutils, perl et curl) et le JRE Temurin 17 (Java), clone le depot, telecharge le paquet de contenu et execute
./build.sh via Git Bash. Un tools\cpmcp.exe precompile est fourni, aucun compilateur C n'est donc requis sous Windows.
Definissez la variable d'environnement
Prerequis
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. 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) et lancez ./build.sh (ou ./build.sh -m pour retraiter egalement les sources MZF). Copiez les fichiers compiles sur une carte SD formatee en FAT32 avec tools/copytosd.sh.
| Outil | Objectif |
|---|---|
| Java JRE 8+ | Execute l’assembleur GLASS Z80 (tools/glass.jar). |
| bash | Tous les scripts de compilation sont des scripts bash. |
| perl | Requis pour tools/mzftool.pl. |
| gcc / make | Compile cpmtools a la premiere compilation. |
git clone https://git.eaw.app/eaw/tranZPUter.git cd tranZPUter ./build.shFichiers de sortie
| Fichier | Description |
|---|---|
tzfs.bin |
Image TZFS principale (0xE800-0xEFFF, Block 0). |
tzfs_bank2.bin |
Image Bank 2 – impression de messages, aide. |
tzfs_bank3.bin |
Image Bank 3 – utilitaires memoire, E/S, emulation. |
tzfs_bank4.bin |
Image Bank 4 – assembleur et desassembleur Z80. |
monitor_SA1510.bin |
Image moniteur SA-1510 40 colonnes. |
cbios.bin |
Image SRAM CBIOS CP/M 2.2. |
CPM_DISK_*.img |
Images disque CP/M (format RAW). |
Sites de reference
| Ressource | Lien |
|---|---|
| Page du projet TZFS | /sharpmz-upgrades-tzfs/ |
| Manuel utilisateur TZFS | /sharpmz-upgrades-tzfs-usermanual/ |
| Guide du developpeur TZFS | /sharpmz-upgrades-tzfs-developersguide/ |
| Guide technique RFS | /sharpmz-upgrades-rfs-technicalguide/ |
| Assembleur GLASS Z80 | Inclus dans tools/glass.jar |