Выкладываю подсистему ZXDev3, основанную на Hi-Tech C v3.09 вместо SDCC. Это мой реверанс в сторону любителей сего компилятора. Я реализовал всего три процедуры из библиотеки Basic, убедился, что это возможно, и мне стало неинтересно. Это снапшот. По мере дальнейшей разработки он будет устаревать. Актуальная версия живёт здесь:
Баг-репорты и пожелания приветствуются.
ZXDev3 называется так по версии Hi-Tech C. Основанная на седьмой может называться ZXDev7. Если когда-нибудь будет сделана подсистема, основанная на IAR C, она будет называться ZXDevI. Но всё это я не планирую. Планирую осваивать z88dk, тем более что
Alcoholics Anonymous очень дружелюбен и отзывчив, отвечает на все вопросы очень подробно и прислушивается к хорошим советам. Да, отдельная подсистема ZXDevZ не планируется, вместо этого zsdcc будет встроен в основную подсистему ZXDev.
В одно нажатие F12 собирается вот это (запускается компиляция в эмуляторе CP/M, делается HelloC.tap и запускается):
Код: "OBERON"
(*$MAIN*) MODULE HelloC; IMPORT b := Basic;
BEGIN
b.BORDER(3);
b.COLOR(4); b.PRSTR("Hello ");
b.COLOR(5); b.PRSTR("Hello ");
b.COLOR(6); b.PRSTR("Hello ");
END HelloC.
Бинарь сей прожки занимает 179 байт. Меньше мне сделать не удалось (в SDCC легко).
Результирующий код выглядит обычно, параметры передаются на стеке (в SDCC иногда можно в регистрах). В целом довольно нормально, жить можно. Больше ничего в этом направлении делать не планирую. Разве что попробую собирать хайтеком
порт игры Dash, чисто чтобы сравнить качество кода. Но я уверен, оно будет сильно ниже, чем у zsdcc.
Если будете что-то делать в плане библиотек для Hi-Tech C v3.09, я заинтересован включить эти наработки в подсистему ZXDev3.