Цель-минимум: собрать рабочий Hello World для Спектрума. Эмулятор CP/M берём здесь.
Пока столкнулся с тем, что не работает #asm / #endasm
Такой исходник:
Код:
void main (void) {
#asm
ld a,10
#endasm
}
даёт такой выхлоп:
H:\Archive\Projects\XDev\ZXDevHC\Bin\CPM>..\cpm C -O -M -S Hello.c
HI-TECH C COMPILER (CP/M-80) V3.09
Copyright (C) 1984-87 HI-TECH SOFTWARE
HELLO.C: main()
5: EOF in #asm
Поскольку явного EOF'а in #asm не наблюдается, пробую менять в исходнике код окончания строк с LF (UNIX) на CR (вроде в CP/M так). Тогда компилятор вообще зависает.
Если убрать секцию #asm/#endasm, пустой void main (void) {} собирается в HELLO.COM для CP/M размером 256 байт. Как сгенерить бинарь для ZX - пока непонятно. Возможно, придётся генерировать ассемблерный листинг и ассемблировать отдельно.
А вот что пишет один MSX'ер на форуме по MSX:

Сообщение от
Manuel
I've used Hi-Tech (free (as in beer), CP/M version) quite a bit. It's OK, but not great.
Также высокохвалёный Sayman'ом хайтех 3.09 не понимает комментов вида //