Resumo para instalação do MSX-C 1.2

From Programação no MSX
Jump to navigation Jump to search
Error creating thumbnail: File missing
MSX-C 1.2

Sobre[edit]

Tutorial resumido para instalação de um ambiente de compilação C para MSX baseado em MSX-C 1.2 e MSX-DOS 2.

Preparação do Ambiente[edit]

Você deve preparar um ambiente com no mínimo o MSX-DOS 2 e 256Kb de RAM (mapper), mas para ter um ambiente mais confortável, recomenda-se usar o NEXTOR, 1Mb de Mapper, HD/SD e Turbo de 7 ou 10 Mhz, visto que a compilação direto no MSX é relativamente demorada para arquivos grandes.

Instalação do MSX-C[edit]

Uma vez preparado o ambiente, iniciamos o processo de instalação e configuração do MSX-C.

Começamos instalando o MSX-DOS 2 Tools:

  • Copie todos os arquivos do diretório \KIDS do floppy para o diretório \BIN do HD/SD.
  • O mesmo deve ser feito com o diretório \TOOLS do floppy, que também vai para o \BIN do HD/SD.
  • E por fim os arquivos do diretório \UTILITY do floppy devem ser copiados para o \BIN do HD/SD.

Passamos agora para a instalção do MSX-C 1.2 propriamente dita:

  • Copie todos os arquivos *.COM da raiz do floppy para o diretório \BIN do HD/SD.
  • Copie todos os arquivos do diretório \INCLUDE do floppy para o diretório \INCLUDE do HD/SD.
  • Todos os arquivos *.REL da raiz do floppy vão para o diretório \LIB do HD/SD.
  • Os arquivos *.TCO da raiz do floppy devem ser copiados para o diretório \BIN do HD/SD.

Opcionalmente, crie um diretório \C no seu HD e copie os seguintes arquivos:

  • Tudo que estiver em \BATCH no floppy vai para \C\BATH no HD/SD.
  • Os arquivos \SAMPLE do floppy vão para \C\SAMPLE no HD/SD.
  • E os arquivos \SRC do floppy são copiados para \C\SRC no HD/SD.

Em seguida modifique o AUTOEXEC.BAT incluindo as seguintes mudanças:

mode 80
set path=a:\;a:\bin
set include=a:\include
set temp=a:\temp
set shell=a:\command2.com

Certifique-se de que o diretório \TEMP esteja criado no seu HD/SD. O comando SET SHELL será importante numa próxima fase.

Teste[edit]

Para testarmos o básico do ambiente, criamos o famoso HELLO.C. Para isso vamos usar o AKID (copiado do MSX-DOS 2 Tools) como editor de textos e vamos assumir que seu HD/SD de trabalho esteja designado na unidade "A":

  • a:>AKID HELLO.C

e insira o programa:

#include <stdio.h>

 char main()
 {
   puts("Ola Mundo do MSX!");
 }

Para sair do AKID, pressione [F1] e em seguida [E].

Error creating thumbnail: File missing
AKID

Em seguida passe pelo processo de compilação, que será melhor descrito nos próximos tópicos:

  • A:>CF HELLO /* Vai gerar um arquivo temporário pré-compilado (.TCO) */
  • A:>CG HELLO /* Vai gerar um arquivo Assembly (.MAC) */
  • A:>M80 =HELLO/Z /* Vai gerar um arquivo Relocável (.REL) */
  • A:>L80 A:\LIB\CK,HELLO,A:\LIB\CLIB/S,A:\LIB\CRUN/S,A:\LIB\CEND,HELLO/N/Y/E:xmain /* Vai linkar o HELLO.REL com as bibliotecas do MSX-C e gerar um executável (.COM) */
Error creating thumbnail: File missing
CF/CG/M80/L80

Observação: o parâmetro "xmain" no final do comando de linkagem (L80) deve ser minúsculo (lembre-se que em C XMAIN != xmain !=XMain). Por fim basta executar o arquivo gerado (HELLO.COM):

A:>HELLO
Error creating thumbnail: File missing
HELLO.COM

MSX Library[edit]

Com a biblioteca padrão testada, vamos instalar agora a biblioteca específica do MSX:

  • Do floppy da MSX-C Lib copiamos os arquivos *.H da raiz para o diretório \INCLUDE do HD/SD.
  • Os arquivos *.REL da raiz do floppy vão para o diretório \LIB do HD/SD.
  • Jogamos os arquivos *.TCO da raiz do floppy para o diretório \LIB do HD/SD.
  • Também copiamos estes mesmos arquivos *.TCO para o diretório \BIN do HD/SD.

Testaremos agora a biblioteca do MSX com o seguinte código (seta.c):

#include <stdio.h>
 #include <glib.h>

 char main()
 {
   screen((TINY)2);
   pset(22,31,(TINY)6, (TINY)0);
   pset(21,32,(TINY)6, (TINY)0);
   pset(23,32,(TINY)6, (TINY)0);
   pset(20,33,(TINY)6, (TINY)0);
   pset(22,33,(TINY)6, (TINY)0);
   pset(24,33,(TINY)6, (TINY)0);
   pset(22,34,(TINY)6, (TINY)0);
   pset(22,35,(TINY)6, (TINY)0);
  
   while(!kbhit()) {}
   screen((TINY)0);
 }

Apenas o processo de linkagem é diferente, pois inclui a MLIB:

  • cf seta
  • cg seta
  • m80 =seta/z
  • l80 a:\lib\ck,seta,a:\lib\clib/s,a:\lib\mlib/s,a:\lib\crun/s,a:\lib\cend,seta/n/y/e:xmain
Error creating thumbnail: File missing
SETA.COM