C (SDCC)

(A maior parte das informações aqui foram adaptadas deste um artigo em inglês sobre como usar o SDCC para programar para o Amstrad CPC: Introduction to programming in C with SDCC: Compiling and testing a "Hello World".)

O SDCC (Small Device C Compiler) é um pacote de compilação da linguagem C que gera código para diversos processadores, dentre os quais o Z80. Este é um tutorial sobre como usá-lo para programar para o MC1000.

Pré-requisitos

Instale os seguintes produtos:

Preparação

O SDCC não sabe nada sobre o MC1000, então temos que criar alguns arquivos, o que pode ser feito com qualquer simples editor de texto ou de código:

Compile os arquivos com o programa sdasz80 do pacote do SDCC:

$ sdasz80 -o crt0_mc1000_load.s $ sdasz80 -o putchar_mc1000_load.s

A opção -o fará gerar os arquivos relocáveis crt0_mc1000_load.rel e putchar_mc1000_load.rel.

Utilização

Eis o infame arquivo de teste helloworld.c:

#include <stdio.h>  void main() { printf("HELLO, WORLD!\r\n"); }

Compile-o com o programa sdcc:

$ sdcc -mz80 --no-std-crt0 --code-loc 0x3ea --data-loc 0 crt0_mc1000_load.rel putchar_mc1000_load.rel helloworld.c

Algumas explicações:

O resultado da execução do programa sdcc são vários arquivos, dentre os quais helloworld.ihx, em formato hexadecimal da Intel. Execute agora o hex2bin:

$ hex2bin helloworld.ihx

O resultado será um novo arquivo helloworld.bin. Finalmente entra em ação o utilitário de cassete do MC1000 MC1000CasTools:

$ java MC1000CasTools -b helloworld.bin -wav

(Se o arquivo MC1000CasTools.class não estiver no diretório atual, indique o caminho até ele com a opção -cp caminho logo após a palavra java.)

Agora que temos um arquivo helloworld.wav, toque-o para carregar o programa no MC1000.