Finalizando essa série de posts, vamos agora gerar o arquivo executável .COM a partir do arquivo IHX para rodar no MSX-DOS.
A primeira coisa a fazer é instalar as bibliotecas do MSX-DOS no SDCC. Elas podem ser baixadas em http://msx.atlantes.org/index_en.html. Lá você vai encontrar também a descrição de cada uma delas.
- crt0msx_msxdos.s
- crt0msx_msxdos_advanced.s
- types.h
- putchar.s
- getchar.s
- dos.s/dos.h
- dos2.s/dos2.h
- interrupt.s/interrupt.h
- ioport.s/ioport.h
- conio.c/conio.h
- heap.c/heap.h
- keyboard.s/keyboard.h
- vdp.s/vdp.h
- mem.c/mem.h
Após o download, será necessário “assemblar” e compilar as bibliotecas antes de copiá-las para os diretórios correspondentes. O SDCC já deverá estar instalado. Basta seguir o procedimento abaixo.
Para os arquivos extensão .S
– sdasz80 -o nome do arquivo.S
Ex.: sdasz80 -o crt0msx_msxdos.s
Para os arquivos extensão .C
– sdcc -c -o nome do arquivo.C
Ex.: sdcc -mz80 -c -o conio.rel conio.c
Sempre que for feita uma referência a algum comando contido nessas bibliotecas, será necessário referenciá-la através do comando INCLUDE no programa, como nos exemplos abaixo:
#include “conio.h”
#include “dos.h”
Copie todos os arquivos com extensão .H e .REL para dentro do diretório INCLUDE do SDCC.
Será necessário também um pequeno ajuste no Eclipse para ele executar corretamente. Clique no menu Project / Properties / C-C++ Build / SDCC Assembler. Substitua o comando AS51 por S51.
Abaixo temos um exemplo de um programa para testar o compilador.
void main(void)
{
puts(“Hello, world :-)rn”);
exit(0);
}
Para compilá-lo, utilize o linha de comando abaixo no prompt da linha de comandos:
sdcc -mz80 –code-loc 0x0107–data-loc 0 –no-std-crt0 crt0msx_msxdos.rel putchar.rel getchar.rel dos.rel conio.rel <nome do arquivo.C>
Onde:
–no-std-crt0: Indica que o compilador não deve utilizar o código padrão para o Z80
0x0107 : Código de localização do crt0msx_msxdos.rel. Para utilizar o crt0msx_msxdos_advanced utilize o código 0x0178.
Caso você faça referência a outras bibliotecas no seu arquivo-fonte, inclua todas elas na linha de comando do compilador.
Não se esqueça de colocar o nome do arquivo (último parâmetro).
Para finalizar, basta converter o arquivo .IHX para .COM. Será necessário utilizar o programa HEX2BIN. Ele pode ser baixado em http://gnuwin32.sourceforge.net/packages/hex2bin.htm.
Sua sintaxe é simples.
hex2bin <nome do arquivo.ihx>
Ele gerará um arquivo binário no formato (.BIN). Basta renomeá-lo para (.COM) para ele rodar no MSX-DOS.
Mais informações podem ser encontradas em http://msx.atlantes.org/index_en.html