Z88DK ist eine Sammlung von Softwareentwicklungstools, die auf die Maschinenfamilien 8080 und z80 abzielen. Es ermöglicht die Entwicklung von Programmen in C, Assemblersprache oder einer beliebigen Mischung aus beiden. Was z88dk einzigartig macht, ist seine Benutzerfreundlichkeit, die integrierte Unterstützung für viele z80-Maschinen und sein umfangreicher Satz an Assembler-Bibliotheks-Subroutinen, die den C-Standard und Erweiterungen implementieren.
Es gibt mehrere Möglichkeiten, z88dk zu installieren.
git clone --recursive https://github.com/z88dk/z88dk.git
. Um die Submodule zu einem bereits vorhandenen Klon hinzuzufügen, verwenden Sie git submodule update --init --recursive
. Zum Aufbau sollten die folgenden Anweisungen befolgt werden. Das Frontend von z88dk heißt zcc
und sollte aufgerufen werden, wenn Sie Kompilierungen durchführen möchten. Es kann C-Dateien (.c), vorverarbeitete C-Dateien (.i), kompilierte C-Dateien (.asm), optimierte kompilierte Dateien (.opt) oder zusammengesetzte Dateien (.o) verarbeiten, jede Kombination davon kann gemischt werden und Auf ihnen werden die entsprechenden Prozesse durchgeführt. Auch die Verarbeitung einer Dateiliste wird unterstützt, wobei die Verarbeitung jeder Datei der Reihe nach erfolgt (z. B. Vorverarbeitung, Kompilierung, Optimierung, Assemblierung), und am Ende können alle verarbeiteten Dateien bei Bedarf zu einer korrekt formatierten einzelnen ausführbaren Datei verknüpft werden.
Für einen neuen Benutzer (oder für eine etablierte Plattform) ist es normalerweise nicht erforderlich, die anderen Tools einzeln zu verwenden.
Viele Tools haben das Präfix z88dk-
um sie von Tools aus anderen Paketen zu unterscheiden, die möglicherweise mit demselben Namen installiert werden. In der Dokumentation wird das Präfix im Allgemeinen weggelassen, wenn auf sie verwiesen wird.
zcc
ist das Frontend der Toolchain. zcc kann aus jedem Satz von Eingabequelldateien eine Ausgabebinärdatei generieren.z88dk-sccz80
ist der native C-Compiler von z88dk. sccz80 ist von Small C abgeleitet, hat aber eine große Entwicklung bis zu dem Punkt erfahren, dass es nahezu C90-kompatibel ist.z88dk-zsdcc
ist die Anpassung des SDCC-Compilers durch z88dk. Unser Patch macht sdcc mit der z88dk-Toolchain kompatibel, ermöglicht den Zugriff auf die umfangreichen Assembler-Bibliotheken und vorgefertigten CRTs von z88dk, behebt Fehler bei der Codegenerierung, sofern vorhanden, und verbessert den generierten Code von sdcc.z88dk-z80asm
(nicht zu verwechseln mit mehreren externen Projekten namens z80asm) ist ein voll ausgestatteter Assembler/Linker/Bibliothekar, der Abschnitte implementiert.z88dk-z80nm
ist der Begleitarchivierer von z80asm. Es kann eine Auflistung von Funktionen oder Daten bereitstellen, die in einer Objekt- oder Bibliotheksdatei codiert sind.z88dk-appmake
verarbeitet die vom Toolkit generierten Rohbinärdateien in eine für bestimmte Zielmaschinen geeignete Form. Es kann beispielsweise Intel-Hex-Dateien, Bänder, ROMs usw. generieren.z88dk-ticks
ist ein Befehlszeilenemulator, der zur zeitlichen Steuerung der Ausführungsgeschwindigkeit von Codefragmenten verwendet werden kann. Ticks enthält einen Debugger und Disassembler.z88dk-gdb
stellt die Debugger-Schnittstelle von Ticks bereit und stellt eine Verbindung zu einem GDB-Server her, um das zeilenweise Debuggen von Software in Emulatoren oder auf echter Hardware zu ermöglichen.z88dk-dis
ist ein Befehlszeilen-Disassembler für 8080, 8085, GBZ80, Z80, Z180, Z80N, EZ80, R800 und Rabbit 2000/3000. Es kann zusätzlich von z80asm generierte Kartendateien lesen, um eine symbolischere Ausgabe bereitzustellen.z88dk-lib
ist ein Installationsprogramm für Bibliotheken von Drittanbietern. Es verwaltet die Installation, Entfernung und Auflistung der verfügbaren Bibliotheken.z88dk-zx0
und z88dk-zx7
sind PC-seitige Datenkomprimierungstools mit begleitenden Dekomprimierungsfunktionen in der z80-Bibliothek.z88dk-dzx0
und z88dk-dzx7
sind PC-seitige Dekomprimierer-Gegenstücke zu z88dk-zx0 und z88dk-zx7.Diese Tools werden normalerweise nicht direkt vom Benutzer aufgerufen:
m4
fungiert als Makro-Präprozessor von z88dk und kann optional Dateien vor dem C-Präprozessor oder Assembler verarbeiten.z88dk-ucpp
ist der C-Präprozessor, der für sccz80 und zsdcc aufgerufen wird.z88dk-zpragma
wird von der Toolchain verwendet, um in C-Source eingebettete Pragmas zu verarbeiten.z88dk-copt
ist eine Engine für reguläre Ausdrücke, die als Peephole-Optimierer für sccz80 und als Nachbearbeitungstool für sccz80 und zsdcc verwendet wird. Die von z88dk bereitgestellten Assemblersprachenbibliotheken verschaffen ihm Leistungsvorteile gegenüber anderen z80-Compilern. Weitere Informationen finden Sie im Abschnitt „Benchmarks“ im Wiki.
Mit CMake können Z88DK-Projekte erstellt werden (eine Toolchain wird bereitgestellt). Weitere Informationen finden Sie im CMake-Wiki.
Einige Dinge, die Sie wissen sollten:
Wenn Sie eine Kompilierungszeile erstellen, müssen Sie entscheiden, welchen Compiler Sie verwenden und mit welcher C-Bibliothek Sie verknüpfen möchten. Sie treffen diese Entscheidung basierend darauf, für welche Ziele Sie kompilieren möchten und welche Funktionen Sie benötigen.
Die klassische C-Bibliothek ist die Haupt-C-Bibliothek von z88dk und verfügt über CRTs, die die Generierung von Programmen für über 100 verschiedene Maschinen der Z80-Familie ermöglichen. Der Grad der Unterstützung für jeden wird in der Vergangenheit durch das Benutzerinteresse bestimmt. Die Dokumentation beginnt hier und Beispielprogramme finden Sie in z88dk/examples, wobei Kompilierungszeilen am häufigsten am Anfang von .c-Dateien erscheinen. Im Laufe der Zeit wurden nicht standardmäßige Implementierungen durch solche ersetzt, die mit einer neuen Bibliothek vorhanden sind.
Die neue C-Bibliothek war eine Neufassung von z88dk mit dem Ziel, eine große Teilmenge der C11-Konformität zu erreichen. Der Großteil der Standardbibliothek wurde inzwischen in Classic integriert, unterstützt jedoch immer noch einige Ziele, die von Classic nicht unterstützt werden: hbios, rc2014, scz180, yaz180 sowie einige, die Bibliotheken von Drittanbietern für einige duplizierte Ziele integrieren: Sega Master System, ZX Spectrum , und ZX-Spektrum als nächstes. Darüber hinaus handelt es sich um ein Basisziel für die Z180. Mit der Z80 können Programme für jede Z80-Maschine kompiliert werden. Die Dokumentation beginnt hier und Beispielprogramme finden Sie unter z88dk/libsrc/_DEVELOPMENT/EXAMPLES, wobei Kompilierungszeilen am häufigsten am Anfang von .c-Dateien erscheinen.
Z88DK-Homepage Enthält einen Link zu den Nightly Builds, wo Sie ein aktuelles Paket erhalten können.
Installationsanweisungen
Fehlerberichterstattung
Einführung in das Kompilieren mithilfe der klassischen C-Bibliotheksbeispiele in z88dk/examples
Einführung in das Kompilieren mit den neuen C-Bibliotheksbeispielen in z88dk/libsrc/_DEVELOPMENT/EXAMPLES
Die Verwendung von z88dk mit dem Ziel rc2014 deckt die Untertypen cpm, hbios und rc2014 ab.
Die Verwendung von z88dk mit zx deckt das zx-Ziel und damit auch das zxn-Ziel ab.