- Hitech-C
- Aztech-C
- BDS-C
- MSX-C
- Solid-C
Embora todas tem seus méritos e deficiências, aqui vamos focar principalmente no MSX-C, por ser o C oficial da ASCII, que já conta com uma boa biblioteca nativa para MSX 1 e MSX 2, suportando inclusive o MSX-DOS 2.
Entretanto, nem tudo são flores, o MSX-C tem algumas limitações que podem dificultar um pouco a tarefa de programar, principalmente para iniciantes. Apenas para citar um exemplo, nativamente ele suporta apenas o tipo INT (numéricamente falando), nao tendo FLOAT, LONG ou SHORT. Isto pode ser contornado usando a bibilioteca MATH, que suporta os tipos XDOUBLE e SLONG. Na prática isso significa que você não pode ter algo como:
#include <stdio.h>
int main(argc, argv)
int argc;
char *argv[];
{
float x,y,r;
x = 2.45;
y = 0.75;
a = x + y;
printf("Resultado: %3.2f", a);
return 0;
}
que deve ser escrito como:
#include <stdio.h>
#include <math.h>
int main(argc, argv)
int argc;
char *argv[];
{
XDOUBLE x,y,r;
atoxd(&x,"2.45");
atoxd(&y,"0.75");
xdadd(&a,&x,&y);
printf("Resultado: %3.2f", &a);
return 0;
}
XDOUBLE é uma estrutura de 8 bytes e SLONG uma de 4 bytes. As rotinas do MATHPACK são relativamente eficientes, não sendo muito diferentes do que temos no MSX-BASIC, bastando apenas se acostumar com um pouco de malabarismo em contas de ponto flutuante ou inteiros longos.