Z88DK — это набор инструментов разработки программного обеспечения, предназначенный для машин семейства 8080 и z80. Он позволяет разрабатывать программы на языке C, ассемблере или любой их смеси. Уникальность z88dk заключается в простоте использования, встроенной поддержке многих компьютеров z80 и обширном наборе подпрограмм библиотеки языка ассемблера, реализующих стандарт C и расширения.
Существует несколько способов установки z88dk.
git clone --recursive https://github.com/z88dk/z88dk.git
. Чтобы добавить подмодули к уже существующему клону, используйте git submodule update --init --recursive
. Для сборки следует следовать следующей инструкции. Интерфейс z88dk называется zcc
, именно его вам следует вызывать, если вы хотите выполнять какие-либо компиляции. Он может обрабатывать файлы C (.c), предварительно обработанные файлы C (.i), скомпилированные файлы C (.asm), оптимизированные скомпилированные файлы (.opt) или собранные файлы (.o), любую их комбинацию можно смешивать и на них будут выполняться соответствующие процессы. Также поддерживается обработка списка файлов, при этом обработка каждого файла выполняется по очереди (т.е. предварительная обработка, компиляция, оптимизация, сборка), а в конце все обработанные файлы при желании могут быть связаны в один правильно отформатированный исполняемый файл.
Новому пользователю (или уже существующей платформе) обычно не требуется использовать другие инструменты по отдельности.
Многие инструменты имеют префикс z88dk-
чтобы отличать их от инструментов из других пакетов, которые могут быть установлены с тем же именем. В документации при упоминании о них префикс обычно опускается.
zcc
— это интерфейсная часть набора инструментов. zcc может генерировать выходной двоичный файл из любого набора входных исходных файлов.z88dk-sccz80
— это собственный компилятор C z88dk. sccz80 произошел от маленького c, но претерпел значительные изменения до такой степени, что почти стал совместим с c90.z88dk-zsdcc
— это модифицированная версия компилятора sdcc, реализованная в z88dk. Наш патч делает sdcc совместимым с набором инструментов z88dk, предоставляет ему доступ к обширным библиотекам языка ассемблера z88dk и готовым электронным таблицам, устраняет ошибки генерации кода, где они присутствуют, и улучшает сгенерированный код sdcc.z88dk-z80asm
(не путать с несколькими внешними проектами под названием z80asm) — это полнофункциональный ассемблер/компоновщик/библиотекарь, реализующий разделы.z88dk-z80nm
— сопутствующий архиватор z80asm. Он может предоставить список функций или данных, закодированных в объектном или библиотечном файле.z88dk-appmake
преобразует необработанные двоичные файлы, созданные набором инструментов, в форму, подходящую для конкретных целевых компьютеров. Например, он может генерировать шестнадцатеричные файлы Intel, ленты, ПЗУ и т. д.z88dk-ticks
— это эмулятор командной строки, который можно использовать для измерения скорости выполнения фрагментов кода. Ticks включает в себя отладчик и дизассемблер.z88dk-gdb
обеспечивает интерфейс отладчика с помощью тиков и подключается к gdbserver, чтобы обеспечить построчную отладку программного обеспечения в эмуляторах или на реальном оборудовании.z88dk-dis
— это дизассемблер командной строки для 8080, 8085, GBZ80, Z80, Z180, Z80N, EZ80, R800 и Rabbit 2000/3000. Он может дополнительно читать файлы карт, созданные z80asm, для обеспечения более символического вывода.z88dk-lib
— установщик сторонних библиотек. Он управляет установкой, удалением и отображением списка доступных библиотек.z88dk-zx0
и z88dk-zx7
— это инструменты сжатия данных на ПК с сопутствующими функциями распаковки в библиотеке z80.z88dk-dzx0
и z88dk-dzx7
являются аналогами декомпрессора на стороне ПК для z88dk-zx0 и z88dk-zx7.Эти инструменты обычно не вызываются пользователем напрямую:
m4
действует как препроцессор макросов z88dk и может при необходимости обрабатывать файлы раньше препроцессора или ассемблера c.z88dk-ucpp
— это препроцессор c, вызываемый для sccz80 и zsdcc.z88dk-zpragma
используется цепочкой инструментов для обработки прагм, встроенных в исходный код c.z88dk-copt
— это механизм регулярных выражений, который используется в качестве оптимизатора глазка для sccz80 и в качестве инструмента постобработки для sccz80 и zsdcc. Библиотеки языка ассемблера, поставляемые z88dk, дают ему преимущества в производительности по сравнению с другими компиляторами z80. Подробную информацию можно найти в разделе «Бенчмарки» в Wiki.
CMake можно использовать для создания проектов Z88DK (прилагается набор инструментов). Пожалуйста, обратитесь к вики CMake.
Некоторые вещи, которые нужно знать:
Когда вы формируете строку компиляции, вы должны решить, какой компилятор вы будете использовать и с какой библиотекой C вы будете связываться. Вы примете это решение на основе того, для каких целей вы хотите скомпилировать и какие функции вам нужны.
Классическая библиотека c является основной библиотекой c z88dk и имеет crts, которые позволяют создавать программы для более чем 100 различных машин семейства z80. Уровень поддержки каждого из них исторически определяется интересами пользователей. Документация начинается здесь, а примеры программ можно найти в z88dk/examples, причем строки компиляции чаще всего появляются в верхней части файлов .c. Со временем он заменил нестандартные реализации существующими с новой библиотекой.
Новая библиотека c была переписанной версией z88dk с целью обеспечить большую часть соответствия C11. Большая часть стандартной библиотеки теперь включена в классическую версию, однако она по-прежнему поддерживает некоторые цели, не поддерживаемые классической версией: hbios, rc2014, scz180, yaz180, а также некоторые библиотеки сторонних производителей для некоторых дублированных целей: sega master system, zx Spectrum. , а затем спектр zx. Кроме того, базовую цель для z180 и z80 можно использовать для компиляции программ для любой машины z80. Документация начинается здесь, а примеры программ можно найти в z88dk/libsrc/_DEVELOPMENT/EXAMPLES, причем строки компиляции чаще всего появляются в верхней части файлов .c.
Домашняя страница Z88DK Содержит ссылку на ночные сборки, где можно получить обновленный пакет.
Инструкции по установке
Отчеты об ошибках
Введение в компиляцию с использованием примеров классической библиотеки C в z88dk/examples
Введение в компиляцию с использованием новых примеров библиотеки C в z88dk/libsrc/_DEVELOPMENT/EXAMPLES
Использование z88dk с целью rc2014 охватывает подтипы cpm, hbios и rc2014.
Использование z88dk с zx охватывает цель zx и, как следствие, цель zxn.