Лично моя претензия к IAR - невозможность повлиять на его развитие. Всё остальное проистекает из этого данного прискорбного факта. А когда начинаешь пилить серьёзный проект и привязываешься намертво к средству разработки - потом морально очень тяжело упереться в какой-то трудно преодолимый косяк, намекающий на "забудь".
Какая тебе разница прямой там компиль или нет? Нативодрочер? А ты копал как, к примеру, устроен FPC или хотя бы тот же SDCC? Или LLVM. Там куча промежуточных уровней и представлений.
Ну, printf для ретро не особо и нужен. И вообще это не показатель, сколько там затянула его внутренняя реализация и мало ли чего он там тянет с собой. Это не про качество кода и не про эффективность.
Ну, дело вкуса. Тут как бы даже на качество игр на Васике не жаловались. Наоборот, прикольно. Говорю же - дрочер. Ну иди коди на асме игры на эффективном printf из Solid C ;-)
Разделение на явушников и ассемблерщиков условное. Я бы скорее разделил на желающих и не желающих что-то сделать для ретро. А начать с ЯВУ и получить путёвку в асм наименее болезненным способом - очень даже можно.
Я так и предлагаю, только через Си. Кто тут скажет, что на встроенном в Си асме нельзя писать?
Итак, резюме: не слушаем никого и пробуем что-то делать. Но я бы всё-таки советовал на Си. Никому нельзя верить. Мне - можно (c)
принципиально таких косяков, в sdcc или iar нету. но, хотелось бы узнать, кто и как может повлиять на развитие sdcc?
снова хочу вспомнить пример про инициализацию массивов - до версии 3.0.0 sdcc прекрасно это делал. т.е. указывать размерность массива не было необходимости.
начиная с 3.0.0 и до 4.2.0 этот баг присутствует. При чём в записях issue на сайте компилятора эта проблема всплывает по много раз.
это как пример того, что ни ты и кто- то ещё не способны повлиять на развитие компилятора. там модель передачи аргументов переделывали 10 лет, а ты хочешь какие то ещё баги или хотелки, чтобы там "на лету" вносили.
конечно, что-то туда внесли (наверное). и что, от этого лучше стало? а точно без этого было никак (например, не решить через асм)?
ещё раз - нужно определится, вам шашечки или ехать. когда в качестве аргумента приводят "да он же open source", это обычно шашечки.
разница огромная. или это прямая трансляция в ассемблер (да да, сколько то проходов) или сначала транслировать в один язык, потом в другой, потом в третий... и при этом при трансляции "завезётся" ещё N багов и проблем. нет уж. нафиг надо.
ну да, LLVM же прям сходу нам в Z80 компилить может, ага...
ну а в sdcc да, смотрел. и в старые версии (очень старые, прям доисторические, от куда корни растут). и что?
на github вон человек декомпил HiTech выложил. тоже посмотрел. и в "исходниках" Солида смотрел (там даже кое какие правки вносил).
hiTech, к примеру, делает промежуточную трансляцию в байт-код, из него потом уже в асм, асм в объектный файл, который потом линкуется. это не одно и тоже с трансляцией из одного языка в другой (например, с объектного в линейный).
да ну здорово живёшь. а в консоли как работать (если у машины есть консоль)? любая cp/m машина (профи, всякие атм, кворумы, MSX, даже Спринтер). это всё ретромашины.
пример с Hello word притянут, конечно, нет смысла ради одной строки символов пихать printf. но сути то это не меняет. в примере можно и печать хексов указать и прочее. вот и printf понадобился.
а потом ты удивляешься, почему никто не бежит кодить пачки игорей на обероне - кому интересны "крестики нолики"? и не сравнивай игры на ZX Basic и обероновские. "это другое".
Принципиальные косяки есть везде. Ну и да, я влиял на развитие SDCC через переписку с Филиппом Краузе, разработчиком бэк-энда Z80.
Уже обсудили, что драйвер FAT надо делать на асме. Не всем надо драйверы. Кому-то надо графические библиотеки, которые есть для SDCC, есть для z88dk, но нет для IAR. И не будет. Так шашечки или ехать? Смотря какие шашечки и смотря куда ехать. Кто-то неплохую игру сделал и на нативном компиле Васика.
Очень слабый аргумент. Но, по-моему, у тебя претензий к интерпретатору Васика меньше, чем к Оберону. Но мы на таких, как ты, не особо и надеемся, сами юзаем.
Кстати, Лёша Большаков мне как-то показывал код для Z80, сгенеренный LLVM. Я очень впечатлился тем, что там рекурсия развёрнута в цикл. Охрененно круто. А вот передачи параметров без стека там походу нет.
На это можно смотреть и как на одно и то же, просто тут промежуточным представлением выступает сам язык.
Официально заявляю, что среда XDev имеет возможность таргетить практически все ретро-платформы от калькулятора МК90 до игровых приставок NES и Sega. И это только благодаря трансляции в Си. Если бы я сел пилить бэк-энд в Z80, на что прозрачно намекает Sayman, то ZXDev был бы сейчас примерно там же, где и ZX Like Pascal.
Даже в консоли не нужна такая избыточная сишная громадина, как printf с его форматтером. Можно и поскромнее выводить. Видел как устроен ввод-вывод в Модуле-2 ?
У тебя в мозгах это вообще другое, но кто бы сомневался. Покажи тогда нам игорей на ЯВУ, которые круче, чем асмовские.
Я не удивляюсь. Люди косны и предвзяты. Я для себя доказал, что Оберон норм тема для ретро, а ты хоть лопни - на моё положительное конструктивное мнение по поводу Оберона это никак не повлияет.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
а что, кто-то под дулом пистолета заставляет так код писать?
макры есть и пользуйтесь на здоровье
это надо делать с любыми средствами
- - - Добавлено - - -
можно, но зачем, когда проще без? учить меньше, помнить меньше "особенностей", обусловленных слабостью платформы
Прихожу без разрешения, сею смерть и разрушение...
Ну не факт, спорно всё это. Кто пишет на Си - имеет гипотетическую переносимость между платформами. И тестовую площадку. Всяко удобнее через ЯВУ тестировать и делать различные служебные вещи. А асм как бы намекает на жёсткую привязку к платформе.
Если не спековские, то Metal Mutant. IDA в 90-е у меня об нее зубы обломал. Кто-то здесь много-много-много лет назад высказывал гипотезу, что это FORTH.
- - - Добавлено - - -
мне вообще такие софты не встречались, это что-то на уровне ИИ уже. Самое поганое, что ни один С-компилер не может даже устранить сам ошибки, возникающие при переносе софта даже в части кода, не зависящего от конкретного железа! А ни один линкер не может с чужими make-ами разобраться. Не говоря уже о совместимости назад к старым версиям, после преобразования проекта в более новую версию. Можно сказать, что у разработчиков ЯВУ тупо не хватает на все сил и времени. И в этом смысле разработчики ассемблеров и макроассемблеров конечно имеют гигантскую фору.
- - - Добавлено - - -
потому как тоже не имеет встроенных конверторов мнемоник и даже не понимает, какой код ему подсовывают на вход. Даже те, которые имеют ключ -cpu! А им бы неплохо иметь ключи -autodetect_cpu и -board. Особенно кросс-ассемблерам, которые на мощных компах запускаются.
- - - Добавлено - - -
макры ты сам и должен писать! Но это то еще занятие по "простоте". У С ведь тоже макры есть.
Последний раз редактировалось andrews; 17.03.2022 в 14:07.
Ну ты ж не станешь утверждать, что на Обероне возможны только крестики-нолики? Если человек, который интересуется Обероном, хочет делать именно такие игры, кто ему помешает? Но если найдётся тот, кто захочет сделать аркаду, то без проблем. Более того, подобные разработки есть, например, Bolder16K для Спектрума 16К и Львова ПК-01. Другое дело, что доля машкодовых подпрограмм в такой игре обычно не такая маленькая, но как же без этого в ретро-разработке.
Там, скорее всего, какой-то внутрифирменный байт-код. Разработчики любят такие штуки. Но чем чёрт не шутит, может и Форт.
А вот тут-то на первый план выходит польза от уровня Оберона. Оберон выступает объединяющим началом для всех компилей в Си - он может дать на выходе как ANSI C, так и K&R (есть соотв. опция). Проблемы со сборкой он конечно не решает, придётся разбираться с каждым отдельным компилером.
Как человек, много времени потративший на портирование игры Дурак (c) Copperfeet на самые разные ретро-платформы, могу с уверенностью сказать, что часть Оберон-кода в этой игре довольно велика. И перенос этой части между платформами сильно упрощается. Даже неизмеримо с асмом. Другое дело, что увязаешь в машинных особенностях каждой платформы. Вот именно для таких проектов и стоит это юзать. А в написании драйвера FAT у Оберона конечно нет преимуществ перед Си или, не дай бог, асмом.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)