С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну, наверное да, должно звучать так.
Коммерческие компилеры я стараюсь не использовать, т.е. я про современные их версии (старые от CP/M уже отданы в public domain, коммерческие в том числе практически все, т.е. они уже бесплатные). Но и платные (в т.ч. например Hitech C v7.x) народ исследовал в соседних темах, и по их мнению современный SDCC по эффективности кода им как минимум не уступает (раньше уступал, и много). Претензия у меня к нему в том, что он нестабилен от патча к патчу, авторы через чур увлекаются рюшечками в ущерб полезному, плюс куча хвостов тянущаяся из 15-летнего прошлого и узости кругозора (как то: писать компилер для Z80 и не сделать init для самых распространенных Z80-систем оставив "сферическим компилером в вакууме", не сделать нормальный дебагер {дебагер есть, но там всё как нарочно не по стандартам} из за чего SDCC не вкрутишь в нормальное IDE что есть позор для 21 века - века дешевого и громадного ресурса ПК в сравнении с нашими 64к, и т.п.)
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Если использовать z88dk, то это больше не проблема. Теперь софт с их библиотеками (точнее, там теперь уже два набора библиотек, старый и новый) можно собирать sdcc:
zсc +cpm -compiler sdcc -create_app hello.c
Там, конечно, тянется всякой хрени на несколько кило, зато работает из коробки.
- - - Добавлено - - -
Это только под спектрум. Все остальные z80 платформы собираются хоть nightly build-ом.
z88dk давно не использую хотя поначалу пытался. Собственно мои эксперименты с С для Z80 в 21 веке с него и начинались. Затем SDCC и уже только потом пришел к Hitech С CPM-овскому. Оно же вроде даже не ANSI до сих пор как недавно на мой запрос сознался тут в соседней ветке Alcoholic Anonymous?
Может уже подшаманили чего? Года полтора назад Алан лично писал про то каким SDCC всё собирается (SDCC был еще из ветки 2.x + какие-то мутные патчи вида "вoт эти обязательно ставьте, а эти ни в коем случае" когда уже релизы 3.х во всю выпускались) и речь точно шла не про ZX.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Я что-то такое помню, но оно, наверное, уже в апстриме. Сейчас патчи нужны только для того, чтобы иметь возможность сгенерировать ядро, которое можно раскидать по 16-килобайтным банкам, которые маппятся в единственное окно и автоматом переключаются при вызове одной банки из другой. Актуально такое извращение только для спектрума.
Сам zcc - это лишь обертка. А внутри возможны два разных компилятора, переключаются ключом -compiler. Старый, sccz80, архаичен, хотя вроде всё-таки ANSI (C89). А пару лет назад там запилили поддержку SDCC. Синтаксис у него обычный современный, "ISO C11 standard with SDCC extensions". Вот, и в этой связке zcc при помощи SDCC совершенно прозрачно для пользователя генерит выходные файлы хоть в виде .COM для CP/M, хоть .TAP для спектрума, хоть ещё в виде десятка форматов для десятка архитектур.Оно же вроде даже не ANSI до сих пор как недавно на мой запрос сознался тут в соседней ветке Alcoholic Anonymous?
А IAR Z80 (4.06A) не рассматривается вообще? Дело в отсутствующих у него библиотек работы с файловой (дисковой) системой или в самом компиляторе? И дебаггер у него имеется. Не такой навороченный, как по современным меркам, но все же не самый плохой... Ну и сам компилятор рассчитан на линейную и "banked" память.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Имелся ввиду твой опыт.
Да, ессно платный. В сети есть его крякнутый full-пакет, только в нём нет сорцев библиотек.но я если честно не готов о нем говорить - не пробовал. К тому же наверняка он платный?
О пакете IAR Z80 складывается приятное впечатление как продуманного, профессионального инструмента. Листинги достаточно информативны, всё раскладывается по своим папкам (нет срача в одной папке всего и вся). У си и асм компиляторов (у линкёра тоже) имеются свои командные xcl-файлы, куда прописываются опции компиляции, исходные файлы проекта и в ком-строку компилятора можно указать только этот xcl-файл, а не длинющую строку из опций и исходников. Хоть пакет и 2001 года, но си-компилятор поддерживает (через typedef) всякие enum/struct/union примочки. Вобщем для z80 (и z180) камня мне кажется весьма достойный инструмент (по юзабельности тоже). Лучше уже не напишут. Но, ессно у каждого свои приоритеты и вкусы...![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)