Z88DK est un ensemble d'outils de développement logiciel destiné aux familles de machines 8080 et z80. Il permet le développement de programmes en C, en langage assembleur ou tout mélange des deux. Ce qui rend le z88dk unique, c'est sa facilité d'utilisation, sa prise en charge intégrée de nombreuses machines z80 et son ensemble complet de sous-programmes de bibliothèque de langage assembleur implémentant le standard C et ses extensions.
Il existe plusieurs façons d'installer z88dk.
git clone --recursive https://github.com/z88dk/z88dk.git
. Pour ajouter les sous-modules à un clone déjà existant, utilisez git submodule update --init --recursive
. Pour construire, les instructions suivantes doivent être suivies. Le frontal de z88dk s'appelle zcc
, c'est celui que vous devez appeler si vous souhaitez faire des compilations. Il peut traiter des fichiers C (.c), des fichiers C prétraités (.i), des fichiers C compilés (.asm), des fichiers compilés optimisés (.opt) ou des fichiers assemblés (.o), n'importe quelle combinaison d'entre eux peut être mélangée et les processus pertinents seront effectués sur eux. Le traitement d'une liste de fichiers est également pris en charge, le traitement de chaque fichier étant effectué tour à tour (c'est-à-dire prétraiter, compiler, optimiser, assembler), et à la fin, tous les fichiers traités peuvent être liés en un seul exécutable correctement formaté si vous le souhaitez.
Il n’est généralement pas nécessaire qu’un nouvel utilisateur (ou pour une plate-forme établie) ait besoin d’utiliser les autres outils individuellement.
De nombreux outils ont un préfixe z88dk-
pour les distinguer des outils d'autres packages pouvant être installés sous le même nom. La documentation omet généralement le préfixe lorsqu'elle y fait référence.
zcc
est le frontal de la chaîne d'outils. zcc peut générer un binaire de sortie à partir de n'importe quel ensemble de fichiers source d'entrée.z88dk-sccz80
est le compilateur C natif de z88dk. sccz80 est dérivé de small c mais a connu beaucoup de développement au point qu'il est presque conforme à c90.z88dk-zsdcc
est la personnalisation par z88dk du compilateur sdcc. Notre correctif rend sdcc compatible avec la chaîne d'outils z88dk, lui donne accès aux vastes bibliothèques de langage assembleur de z88dk et aux crts prêts à l'emploi, corrige les bogues de génération de code lorsqu'ils sont présents et améliore le code généré par sdcc.z88dk-z80asm
(à ne pas confondre avec plusieurs projets externes appelés z80asm) est un assembleur/éditeur de liens/bibliothécaire complet implémentant des sections.z88dk-z80nm
est l'archiveur compagnon de z80asm. Il peut fournir une liste de fonctions ou de données codées dans un objet ou un fichier bibliothèque.z88dk-appmake
traite les binaires bruts générés par la boîte à outils sous une forme adaptée à des machines cibles spécifiques. Par exemple, il peut générer des fichiers Intel Hex, des bandes, des ROM, etc.z88dk-ticks
est un émulateur de ligne de commande qui peut être utilisé pour chronométrer la vitesse d'exécution des fragments de code. Ticks comprend un débogueur et un désassembleur.z88dk-gdb
fournit l'interface du débogueur à partir de ticks et se connecte à un serveur gdb pour permettre le débogage ligne par ligne des logiciels dans des émulateurs ou sur du matériel réel.z88dk-dis
est un désassembleur de ligne de commande pour 8080, 8085, GBZ80, Z80, Z180, Z80N, EZ80, R800 et Rabbit 2000/3000. Il peut en outre lire les fichiers cartographiques générés par z80asm pour fournir une sortie plus symbolique.z88dk-lib
est un installateur pour les bibliothèques tierces. Il gère l'installation, la suppression et la liste des bibliothèques disponibles.z88dk-zx0
et z88dk-zx7
sont des outils de compression de données côté PC avec des fonctions de décompression associées dans la bibliothèque z80.z88dk-dzx0
et z88dk-dzx7
sont des contreparties de décompresseur côté PC des z88dk-zx0 et z88dk-zx7.Ces outils ne sont normalement pas directement invoqués par l'utilisateur :
m4
agit comme le préprocesseur de macro de z88dk et peut éventuellement traiter les fichiers avant le préprocesseur ou l'assembleur c.z88dk-ucpp
est le préprocesseur c invoqué pour sccz80 et pour zsdcc.z88dk-zpragma
est utilisé par la chaîne d'outils pour traiter les pragmas intégrés dans la source C.z88dk-copt
est un moteur d'expression régulière utilisé comme optimiseur de judas pour sccz80 et comme outil de post-traitement pour sccz80 et zsdcc. Les bibliothèques de langage assembleur fournies par z88dk lui confèrent des avantages en termes de performances par rapport aux autres compilateurs z80. Pour plus de détails, veuillez consulter la section Benchmarks du Wiki.
CMake peut être utilisé pour créer des projets Z88DK (une chaîne d'outils est fournie). Veuillez vous référer au wiki CMake.
Quelques choses à savoir :
Lorsque vous formez une ligne de compilation, vous devez décider quel compilateur vous utiliserez et avec quelle bibliothèque c vous établirez un lien. Vous prendrez cette décision en fonction des cibles pour lesquelles vous souhaitez compiler et des fonctionnalités dont vous avez besoin.
La bibliothèque C classique est la bibliothèque C principale de z88dk et possède des crts qui permettent de générer des programmes pour plus de 100 machines différentes de la famille z80. Le niveau de support pour chacun est historiquement déterminé par l’intérêt des utilisateurs. La documentation commence ici et des exemples de programmes peuvent être trouvés dans z88dk/examples, les lignes de compilation apparaissant le plus souvent en haut des fichiers .c. Au fil du temps, il a remplacé les implémentations non standard par celles qui existent avec la nouvelle bibliothèque.
La nouvelle bibliothèque c était une réécriture de z88dk visant un large sous-ensemble de conformité C11. La majeure partie de la bibliothèque standard a maintenant été incorporée dans classic, cependant elle prend toujours en charge certaines cibles non prises en charge par classic : hbios, rc2014, scz180, yaz180 ainsi que certaines bibliothèques tierces incorporant certaines cibles dupliquées : sega master system, zx Spectrum. , et spectre zx ensuite. De plus, une cible simple pour les z180 et z80 peut être utilisée pour compiler des programmes pour n'importe quelle machine z80. La documentation commence ici et des exemples de programmes peuvent être trouvés dans z88dk/libsrc/_DEVELOPMENT/EXAMPLES avec des lignes de compilation apparaissant le plus souvent en haut des fichiers .c.
Page d'accueil du Z88DK Comprend un lien vers les versions nocturnes où vous pouvez obtenir un package à jour.
Instructions d'installation
Rapport de bogues
Introduction à la compilation à l'aide des exemples de la bibliothèque Classic C dans z88dk/examples
Introduction à la compilation à l'aide des nouveaux exemples de bibliothèque C dans z88dk/libsrc/_DEVELOPMENT/EXAMPLES
L'utilisation de z88dk avec la cible rc2014 couvre les sous-types cpm, hbios et rc2014.
L'utilisation de z88dk avec zx couvre la cible zx et, par extension, la cible zxn.