Systeme de fichiers tranZPUter (TZFS) -- Manuel utilisateur
Manuel utilisateur TZFS
Le tranZPUter Filing System (TZFS) est un package firmware en langage assembleur Z80 pour la famille de cartes d'extension Z80 tranZPUter. C'est un portage du Rom Filing System (RFS) adapte a l'architecture du tranZPUter : au lieu de programmer une carte Flash ROM physique, TZFS est charge automatiquement par le processeur E/S embarque (K64F ou ZPU) depuis la carte SD dans les 512 Ko de RAM de la carte a chaque demarrage. Le resultat est un moniteur etendu qui ajoute la gestion de fichiers sur carte SD, le demarrage de CP/M 2.2, un assembleur et desassembleur Z80 integre, l'emulation materielle de machines, la commutation de CPU logicielles, le controle de sortie VGA et plus de 40 nouvelles commandes -- tout en conservant le prompt familier SA-1510
* et toutes les commandes originales intactes.
Ce manuel couvre tout ce qui est necessaire pour demarrer et utiliser TZFS au quotidien. Pour les details de l'architecture materielle et du systeme de compilation, consultez le Guide technique. Pour les details internes du code source et le developpement firmware, consultez le Guide du developpeur.
Materiel supporte
TZFS supporte cinq plateformes materielles, chacune selectionnee a la compilation via des drapeaux de compilation. L'image firmware resultante et l'ensemble de fonctionnalites disponibles different selon la cible. Les commandes marquees (T) dans la reference des commandes du moniteur ne sont disponibles que sur les plateformes tranZPUter SW, SW-700 et Fusion. Ces commandes sont absentes sur FusionX et picoZ80, ou la fonctionnalite equivalente est geree nativement par le FPGA ou le RP2350.
| Plateforme | Drapeau de compilation | Description | Limitations |
|---|---|---|---|
| tranZPUter SW | BUILD_MZ700 (defaut) |
Conception originale du tranZPUter. Le FPGA implemente l’emulation materielle de tous les modeles Sharp MZ, le CPU soft-core T80 Z80, le CPU logiciel ZPU Evolution et la sortie VGA. Le processeur E/S K64F gere l’acces a la carte SD et autres services logiciels. | Aucune – ensemble complet de fonctionnalites. |
| tranZPUter SW-700 v1.3 | BUILD_MZ700 |
Modele de production actuel. Disposition PCB amelioree du SW. Memes capacites FPGA et K64F, ensemble complet de fonctionnalites. | Aucune – ensemble complet de fonctionnalites. |
| tranZPUter Fusion | BUILD_MZ700 |
Combine la carte tranZPUter avec un module video FPGA. Memes capacites FPGA et K64F, ensemble complet de fonctionnalites. | Aucune – ensemble complet de fonctionnalites. |
| tranZPUter FusionX | BUILD_FUSIONX |
Implementation virtuelle du tranZPUter basee sur FPGA. L’emulation materielle, la commutation CPU et le controle VGA sont geres nativement par le FPGA. | Emulation materielle, commutation CPU et commandes VGA (T) non disponibles via TZFS. Toutes les commandes de fichiers, bande et memoire sont disponibles. |
| picoZ80 | BUILD_PICOZ80 |
Carte de remplacement Z80 basee sur RP2350. Meme repartition architecturale que FusionX – FPGA/RP2350 gere les fonctions materielles de bas niveau. | Memes limitations que FusionX : pas de commandes (T) via TZFS. Toutes les commandes de fichiers, bande et memoire sont disponibles. |
Des drapeaux de compilation supplementaires
BUILD_MZ80A, BUILD_MZ1500 et BUILD_MZ2000 selectionnent le modele MZ cible lors de la compilation pour des machines non-MZ-700. Ils affectent le timing de bande par defaut et certaines constantes de carte memoire mais ne changent pas l'ensemble de commandes.
Obtenir TZFS
Des images firmware pre-compilees sont disponibles dans le repertoire
releases/ du depot Gitea et peuvent etre utilisees directement sans outils de compilation. Contrairement a RFS, TZFS ne necessite pas la programmation de puces ROM physiques -- le processeur E/S K64F ou ZPU charge le firmware TZFS depuis la carte SD dans les 512 Ko de RAM du tranZPUter automatiquement a chaque demarrage.
Pour installer TZFS, copiez le binaire firmware pre-compile et les fichiers d'accompagnement de la carte SD sur une micro carte SD formatee en FAT et inserez-la dans le slot de carte SD de la carte tranZPUter.
Si vous souhaitez compiler depuis les sources, la methode la plus simple est le script d'installation automatise correspondant a votre plateforme -- setup_TZFS.sh (macOS / Linux / WSL) ou setup_TZFS_windows.ps1 (Windows, Git Bash natif, sans WSL). Chacun est autonome : copiez le seul fichier correspondant a votre plateforme et executez-le ; il installe les outils requis, telecharge le paquet de contenu et peut lancer la compilation pour vous, sans connaissance approfondie de la chaine d'outils. Consultez le Guide technique -- Systeme de compilation pour la procedure pas a pas.
Pour compiler manuellement depuis les sources, clonez le depot et executez :
./build.sh
./build.sh BUILD_FUSIONX=1 # Compilation FusionX ./build.sh BUILD_PICOZ80=1 # Compilation picoZ80 ./build.sh BUILD_MZ80A=1 # Cible MZ-80A (SW/SW-700/Fusion)
Premier demarrage
Inserez la carte SD, connectez la carte tranZPUter a une machine Sharp MZ compatible et allumez. Le processeur E/S K64F ou ZPU charge le firmware TZFS dans les 512 Ko de RAM du tranZPUter. Le Z80 est alors libere du reset et execute TZFS directement. La banniere de connexion SA-1510 familiere apparait, completee par "
+ TZFS" pour confirmer l'initialisation reussie :
SHARP MZ-80A Monitor SA-1510 + TZFS *
Le
* est l'invite standard du moniteur SA-1510. Toutes les commandes originales SA-1510 fonctionnent exactement comme sur la machine non modifiee. Tapez H pour afficher un ecran d'aide pagine listant toutes les commandes TZFS. Appuyez sur Espace pour avancer dans les pages.
Si le texte + TZFS est absent, TZFS ne s'est pas initialise correctement. Les causes les plus courantes sont une carte SD manquante ou incorrectement preparee, ou un binaire firmware qui ne correspond pas a la plateforme materielle cible.
Commandes du moniteur TZFS
L'ensemble complet des commandes TZFS est liste ci-dessous. Les commandes marquees (T) ne sont disponibles que sur les plateformes tranZPUter SW, SW-700 et Fusion (celles portant le processeur E/S K64F). Ces commandes sont absentes des compilations FusionX et picoZ80.
| Commande | Parametres | Description |
|---|---|---|
| 4 | – | Passage en mode d’affichage 40 colonnes. |
| 8 | – | Passage en mode d’affichage 80 colonnes. |
| ASM | <address> |
Lance l’assembleur Z80 integre a partir de <address>. |
| B | – | Active ou desactive le bip de saisie clavier. |
| BASIC | – | Localise SA-5510 BASIC sur la carte SD, le charge et l’execute. |
| CD | [<directory>] |
Change le repertoire actif de la carte SD. Sans argument, affiche le chemin actuel. |
| CP | <src> <dst> <size> |
Copie un bloc memoire. Tous les arguments sont en hexadecimal 4 chiffres. |
| CPM | – | Charge CP/M 2.2 depuis la carte SD et demarre. |
| D | <addr> [<addr2>] |
Vidage hexadecimal et ASCII de la memoire. D pour page suivante, U pour page precedente, X pour quitter. |
| DASM | <addr> [<addr2>] |
Desassemble le code machine Z80. |
| DIR | [<wildcard>] |
Liste paginee du repertoire actif de la carte SD. |
| EC | <name or file no.> |
Efface un fichier de la carte SD par nom ou numero. |
| EX | – | Quitte TZFS et redemarre la machine en mode original. |
| F | [<drive>] |
Demarre depuis une disquette. |
| FILL | <start> <end> [,<value>] |
Remplit la memoire avec la valeur donnee (defaut 0x00). |
| FREQ | <kHz> |
Definit la frequence du CPU en kHz. 0 restaure la valeur par defaut. |
| H | – | Affiche l’ecran d’aide pagine. |
| J | <address> |
Saute a (execute depuis) l’adresse hexadecimale donnee. |
| L / LT | [<filename>] [,<M>] |
Charge depuis la bande (CMT) et execute. |
| LTNX | [<filename>] [,<M>] |
Charge depuis la bande sans executer. |
| LC | <name or no.> [,<M>] |
Charge un programme depuis la carte SD et l’execute. |
| LCNX | <name or no.> [,<M>] |
Charge depuis la carte SD sans executer. |
| M | <address> |
Editeur de memoire interactif. |
| MZ (T) | [<mc>] |
Active l’emulation materielle pour le code machine mc. |
| MZ80K … MZ2500 (T) | – | Active l’emulation materielle du modele Sharp MZ correspondant. |
| P | – | Execute un test sur l’imprimante connectee. |
| R | – | Execute un test memoire DRAM complet (0x1200-0xCFFF). |
| RIO | <port> |
Lit un port E/S et affiche la valeur. |
| S / ST | <start> <end> <exec> [,<M>] |
Sauvegarde une zone memoire sur bande (CMT). |
| SC | <start> <end> <exec> |
Sauvegarde une zone memoire sur la carte SD. |
| SD2T | <name or no.> [,<M>] |
Copie un fichier de la carte SD vers la bande (CMT). |
| T | – | Teste la puce timer 8253. |
| T2SD | [B] [,<M>] |
Copie la bande vers la carte SD. Le drapeau B active le mode groupement. |
| T80 (T) | – | Passe au noyau CPU logiciel T80 interne. |
| TC | [-]<value> |
Definit la compensation du delai de bande. |
| V | – | Verifie un fichier ecrit sur bande par rapport aux donnees en memoire. |
| VBORDER (T) | <colour> |
Definit la couleur de bordure VGA (0-15). |
| VGA (T) | <mode> |
Definit le mode de sortie VGA (0=eteint, 1=640x480, 2=800x600). |
| VMODE (T) | <mode> |
Definit le mode video actif pour la machine emulee. |
| WIO | <port> <value> |
Ecrit une valeur sur un port E/S. |
| Z80 (T) | – | Revient au CPU Z80 materiel (externe). |
| ZPU (T) | – | Passe au noyau CPU logiciel ZPU Evolution et demarre zOS. |
Operations de bande
TZFS conserve le support complet CMT (cassette) en plus du systeme de fichiers sur carte SD. Toutes les commandes de bande originales fonctionnent comme sur le moniteur SA-1510 non modifie. TZFS les etend avec la selection du timing par modele de machine et ajoute des commandes de transfert entre bande et carte SD.
Chargement depuis la bande
Utilisez L (ou son alias LT) pour charger un programme depuis la bande et l'executer. Utilisez LTNX pour charger sans executer. Le parametre optionnel
,M selectionne le modele de machine dont les parametres de timing de bande sont utilises.
| Code | Modele de machine |
|---|---|
| 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 ; Charger le prochain fichier de bande et executer (timing par defaut) * LT INVADERS ; Chercher INVADERS sur la bande et executer * LTNX ,7 ; Charger avec timing MZ-700, sans executerSauvegarde sur bande
Utilisez S (ou ST) pour sauvegarder une zone memoire sur bande. Fournissez l'adresse de debut, l'adresse de fin et l'adresse d'execution en hexadecimal 4 chiffres consecutifs :
* S120020001200 FILE NAME? MYPROG SAVING...Copie bande vers carte SD
T2SD charge le prochain fichier de la bande et le sauvegarde directement dans le repertoire actif de la carte SD. Le drapeau optionnel
B active le mode groupement pour lire les fichiers les uns apres les autres.
* T2SD ; Copier le prochain fichier de bande vers la carte SD * T2SD B ; Copie groupee -- lire tous les fichiers de la bande * T2SD B,7 ; Copie groupee avec timing MZ-700Copie carte SD vers bande
SD2T charge un fichier nomme (ou par numero) depuis le repertoire actif et l'ecrit sur bande :
* SD2T INVADERS ; Ecrire INVADERS de la carte SD vers la bande * SD2T 04,7 ; Ecrire fichier 04 avec timing MZ-700Compensation du delai de bande
La commande TC ajuste une valeur de compensation appliquee a tous les calculs de timing de bande :
* TC ; Afficher la valeur de compensation actuelle * TC 2 ; Augmenter la compensation de 2 pas * TC -1 ; Diminuer la compensation de 1 pas
Operations de carte SD
TZFS utilise le processeur E/S K64F ou ZPU du tranZPUter pour acceder a une carte SD formatee en FAT via une API de requete de service. Les fichiers sont stockes au format MZF standard dans une structure de repertoires conventionnelle. Toutes les commandes carte SD operent sur le repertoire actuellement actif, modifiable avec CD.
Lister le repertoire
* DIR ; Lister tous les fichiers du repertoire actif * DIR *.MZF ; Lister uniquement les fichiers .MZF * DIR INVADERS* ; Lister les fichiers commencant par INVADERSChanger de repertoire
* CD ; Afficher le chemin du repertoire actuel * CD MZ700 ; Entrer dans le sous-repertoire MZ700 * CD .. ; Remonter d'un niveauCharger des programmes
* LC INVADERS ; Charger INVADERS et executer * LCNX INVADERS ; Charger sans executer * LC 04 ; Charger fichier numero 04 et executer * LC STARTREK,7 ; Charger STARTREK pour le modele memoire MZ-700Sauvegarder des programmes
* SC120020001200 FILE NAME? MYPROG SAVEDEffacer des fichiers
* EC OLDPROG ; Effacer le fichier nomme OLDPROG * EC 07 ; Effacer le fichier numero 07
Emulation materielle
Cette fonctionnalite n'est disponible que sur les plateformes tranZPUter SW, SW-700 et Fusion (T).
Le FPGA du tranZPUter implemente une emulation au niveau materiel de toute la famille Sharp MZ. Lorsqu'une commande d'emulation est emise, le firmware TZFS demande au K64F de charger le ROM moniteur correct pour la machine cible. Le FPGA reconfigure ensuite sa logique video et de mappage memoire et la machine redemarre en mode de compatibilite complete.
* MZ 700 ; Activer l'emulation materielle MZ-700 * MZ700 ; Alias equivalent * MZ ; Activer l'emulation MZ-80A (par defaut) * MZ 2000 ; Activer l'emulation materielle MZ-2000
Commutation de CPU
Cette fonctionnalite n'est disponible que sur les plateformes tranZPUter SW, SW-700 et Fusion (T).
Le FPGA du tranZPUter implemente deux noyaux CPU logiciels : T80 (une implementation Z80 soft-core) et ZPU Evolution (un CPU a pile 32 bits).
| Commande | Description |
|---|---|
| Z80 | Revenir au Z80 materiel (externe). Etat par defaut apres le demarrage. |
| T80 | Passer au T80 soft-core Z80 implemente dans le FPGA. |
| ZPU | Passer au CPU logiciel ZPU Evolution et demarrer zOS. |
* T80 ; Passer au noyau soft T80 * Z80 ; Revenir au Z80 externe * ZPU ; Passer au noyau ZPU Evolution et demarrer zOS * FREQ 4000 ; Definir la frequence CPU a 4 MHz * FREQ 0 ; Restaurer la frequence par defaut
Controle video
Cette fonctionnalite n'est disponible que sur les plateformes tranZPUter SW, SW-700 et Fusion (T).
| Commande | Parametres | Description |
|---|---|---|
| VGA | <mode> |
Definir le mode de sortie VGA. 0 = eteint, 1 = 640x480, 2 = 800x600. |
| VBORDER | <colour> |
Definir la couleur de bordure VGA (0-15). |
| VMODE | <mode> |
Definir le mode video actif pour la machine emulee. |
Utiliser BASIC
TZFS peut localiser et charger automatiquement l'interpreteur Sharp SA-5510 BASIC depuis la carte SD :
* BASIC
TZFS recherche l'image SA-5510 BASIC dans le repertoire actif de la carte SD, la charge en RAM et l'execute. Comme TZFS charge BASIC depuis la carte SD plutot que depuis la ROM, il est simple de conserver plusieurs versions de BASIC sur la carte SD.
Executer CP/M 2.2
CP/M 2.2 est disponible sur toutes les plateformes TZFS :
* CPM
TZFS localise l'image CP/M sur la carte SD, la charge et transfere le controle au CCP de CP/M. L'invite passe a
A>. L'acces aux lecteurs est fourni via l'API de service du processeur E/S K64F ou ZPU, qui traduit les appels BIOS CP/M en operations de fichiers sur carte SD.
Depannage
Le moniteur demarre mais "TZFS" n'apparait pas dans la banniere
- Carte SD non inseree ou non detectee -- verifiez que la carte est correctement inseree dans le slot.
- Mauvais binaire firmware sur la carte SD -- assurez-vous que le binaire TZFS correspond a votre variante de carte.
- Carte SD non formatee en FAT -- le processeur E/S attend une carte formatee en FAT standard.
- Firmware du processeur E/S obsolete -- assurez-vous qu'il supporte l'API de requete de service TZFS.
Les commandes d'emulation, de commutation CPU ou VGA ne sont pas reconnues
- Execution sur FusionX ou picoZ80 -- les commandes marquees (T) ne sont pas disponibles sur ces plateformes. C'est un comportement attendu.
- Mauvaise cible de compilation -- verifiez que le firmware a ete compile avec le bon drapeau pour votre materiel.
Les chargements de bande echouent
- Incompatibilite de timing de bande -- utilisez le parametre
,Mpour selectionner le timing du modele de machine approprie. - Variation de vitesse de la tete de bande -- utilisez la commande TC pour ajuster la compensation.
- Etat de la bande -- les bandes agees peuvent avoir des pertes de signal. Nettoyez la tete avec de l'alcool isopropylique.
CP/M ne demarre pas ou affiche des erreurs BIOS
- Image CP/M absente de la carte SD -- assurez-vous que la carte SD contient l'image de demarrage CP/M dans le repertoire actif.
- Mauvais repertoire actif -- naviguez avec CD vers le repertoire contenant l'image CP/M.
- Timeout du service processeur E/S -- redemarrez la carte et reessayez.
La machine plante apres le chargement d'un programme
- Programme pour un mauvais modele de machine -- activez l'emulation materielle appropriee avant le chargement.
- Le programme ecrase l'espace de travail TZFS -- utilisez LCNX pour charger sans executer et inspectez l'adresse de chargement avec D.
Sites de reference
| Ressource | Lien |
|---|---|
| Page du projet TZFS | /sharpmz-upgrades-tzfs/ |
| Guide technique TZFS | /sharpmz-upgrades-tzfs-technicalguide/ |
| Guide du developpeur TZFS | /sharpmz-upgrades-tzfs-developersguide/ |
| Page du projet tranZPUter SW | /tranzputer/ |
| Page du projet tranZPUter Fusion | /tranzputerfusion/ |
| picoZ80 (remplacement Z80 RP2350) | /picoz80/ |
| Manuel utilisateur RFS (firmware companion) | /sharpmz-upgrades-rfs-usermanual/ |
| Reference technique serie Sharp MZ | Incluse dans le repertoire docs/ du depot |