Z88DK é uma coleção de ferramentas de desenvolvimento de software voltadas para a família de máquinas 8080 e z80. Permite o desenvolvimento de programas em C, linguagem assembly ou qualquer mistura dos dois. O que torna o z88dk único é sua facilidade de uso, suporte integrado para muitas máquinas z80 e seu extenso conjunto de sub-rotinas de biblioteca de linguagem assembly que implementam o padrão C e extensões.
Existem várias maneiras de instalar o z88dk.
git clone --recursive https://github.com/z88dk/z88dk.git
. Para adicionar os submódulos a um clone já existente, use git submodule update --init --recursive
. Para construir, as seguintes instruções devem ser seguidas. O front end do z88dk é chamado zcc
, é isso que você deve chamar se quiser fazer alguma compilação. Ele pode processar arquivos C (.c), arquivos C pré-processados (.i), arquivos C compilados (.asm), arquivos compilados otimizados (.opt) ou arquivos montados (.o), qualquer combinação deles pode ser misturada e os processos relevantes serão feitos neles. Também é suportado o processamento de uma lista de arquivos, com o processamento de cada arquivo feito por vez (ou seja, pré-processar, compilar, otimizar, montar) e, no final, todos os arquivos processados podem ser vinculados a um único executável formatado corretamente, se desejado.
Normalmente não é necessário que um novo usuário (ou para uma plataforma estabelecida) precise usar as outras ferramentas individualmente.
Muitas ferramentas possuem o prefixo z88dk-
para distingui-las de ferramentas de outros pacotes que podem ser instalados com o mesmo nome. A documentação geralmente omite o prefixo ao se referir a eles.
zcc
é o front end do conjunto de ferramentas. zcc pode gerar um binário de saída a partir de qualquer conjunto de arquivos de origem de entrada.z88dk-sccz80
é o compilador c nativo do z88dk. sccz80 é derivado de c pequeno, mas teve muito desenvolvimento a ponto de ser quase compatível com c90.z88dk-zsdcc
é a personalização do compilador sdcc pelo z88dk. Nosso patch torna o sdcc compatível com o conjunto de ferramentas z88dk, dá acesso às extensas bibliotecas de linguagem assembly e crts prontos do z88dk, aborda bugs de geração de código quando presentes e melhora o código gerado pelo sdcc.z88dk-z80asm
(não deve ser confundido com vários projetos externos chamados z80asm) é um montador/vinculador/bibliotecário completo que implementa seções.z88dk-z80nm
é o arquivador complementar do z80asm. Ele pode fornecer uma lista de funções ou dados codificados em um objeto ou arquivo de biblioteca.z88dk-appmake
processa os binários brutos gerados pelo kit de ferramentas em um formato adequado para máquinas de destino específicas. Por exemplo, ele pode gerar arquivos hexadecimais Intel, fitas, ROMs, etc.z88dk-ticks
é um emulador de linha de comando que pode ser usado para cronometrar a velocidade de execução de fragmentos de código. Ticks inclui um depurador e um desmontador.z88dk-gdb
fornece a interface do depurador de ticks e se conecta a um gdbserver para permitir a depuração linha por linha de software em emuladores ou em hardware real.z88dk-dis
é um desmontador de linha de comando para 8080, 8085, GBZ80, Z80, Z180, Z80N, EZ80, R800 e Rabbit 2000/3000. Além disso, ele pode ler arquivos de mapas gerados pelo z80asm para fornecer uma saída mais simbólica.z88dk-lib
é um instalador para bibliotecas de terceiros. Gerencia instalação, remoção e listagem de bibliotecas disponíveis.z88dk-zx0
e z88dk-zx7
são ferramentas de compactação de dados do lado do PC com funções de descompactação complementares na biblioteca z80.z88dk-dzx0
e z88dk-dzx7
são contrapartes descompressores do lado do PC para o z88dk-zx0 e z88dk-zx7.Estas ferramentas normalmente não são invocadas diretamente pelo usuário:
m4
atua como pré-processador de macro do z88dk e pode, opcionalmente, processar arquivos antes do pré-processador c ou assembler.z88dk-ucpp
é o pré-processador c invocado para sccz80 e zsdcc.z88dk-zpragma
é usado pelo conjunto de ferramentas para processar pragmas incorporados no código-fonte c.z88dk-copt
é um mecanismo de expressão regular usado como otimizador de olho mágico para sccz80 e como ferramenta de pós-processamento para sccz80 e zsdcc. As bibliotecas de linguagem assembly fornecidas pelo z88dk oferecem vantagens de desempenho em relação a outros compiladores z80. Para obter detalhes, consulte a seção Benchmarks no Wiki.
CMake pode ser usado para construir projetos Z88DK (um conjunto de ferramentas é fornecido). Consulte o wiki do CMake.
Algumas coisas para saber:
Ao formar uma linha de compilação, você deve decidir qual compilador usará e a qual biblioteca C vinculará. Você tomará essa decisão com base em quais alvos deseja compilar e em quais recursos você precisa.
A biblioteca c clássica é a principal biblioteca c do z88dk e possui crts que permitem a geração de programas para mais de 100 máquinas diferentes da família z80. O nível de suporte para cada um é determinado historicamente pelo interesse do usuário. A documentação começa aqui e programas de exemplo podem ser encontrados em z88dk/examples com linhas de compilação aparecendo com mais frequência no topo dos arquivos .c. Com o tempo, ele substituiu implementações não padronizadas por aquelas que existem na nova biblioteca.
A nova biblioteca c foi reescrita do z88dk visando um grande subconjunto de conformidade com C11. A maior parte da biblioteca padrão agora foi incorporada ao clássico, no entanto, ela ainda suporta alguns alvos não suportados pelo clássico: hbios, rc2014, scz180, yaz180, bem como algumas bibliotecas de terceiros incorporadas para alguns alvos duplicados: sega master system, zx espectro e espectro zx a seguir. Além disso, um alvo básico para z180, z80 pode ser usado para compilar programas para qualquer máquina z80. A documentação começa aqui e programas de exemplo podem ser encontrados em z88dk/libsrc/_DEVELOPMENT/EXAMPLES com linhas de compilação aparecendo com mais frequência no topo dos arquivos .c.
Página inicial do Z88DK Inclui um link para compilações noturnas onde você pode obter um pacote atualizado.
Instruções de instalação
Relatório de bugs
Introdução à compilação usando exemplos da biblioteca C clássica em z88dk/examples
Introdução à compilação usando os novos exemplos da biblioteca C em z88dk/libsrc/_DEVELOPMENT/EXAMPLES
O uso do z88dk com o destino rc2014 abrange os subtipos cpm, hbios e rc2014.
Usar z88dk com zx cobre o alvo zx e, por extensão, o alvo zxn.