С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я конечно немного утрирую, но по моему опыту, любая более-менее интересная программа (это обычно 1000-2000 строк) у меня получается порядка 36-40к только кода (а ведь нужна еще и куча, и стек). Использую Hitech-C для CPM - пожалуй единственный 32-битный ANSI C для Z80, работающий нативно на Z80 (в отличие от SDCC, IAR и прочего для PC)
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Про команды ВГ-93 можно прочитать в книге "ZX-SPECTRUM и TR-DOS для пользователей и программистов". Она есть на сайте Virtual TR-DOS
Вот нашёл эту книжку:
http://trd.speccy.cz/book/ZX_TRDOS.ZIP
---------- Post added at 18:10 ---------- Previous post was at 18:01 ----------
Так всё и будет
НО!
Не в первом же классе учить детей решать квадратные уравнения
Все это мне напоминает ситуацию, а-ля - почему нельзя на площади заняться сексом с женщиной, советами достанут.
Хорошо, что я об этом не знал и писал на С программки для 8кбайтовых контроллеров
На самом деле - современные компиляторы С оптимизируют код хорошо. Сам ты его соптимизируешь ну щё процентов на несколько - не больше.
---------- Post added at 07:35 ---------- Previous post was at 07:32 ----------
А! так тебе обязательно НАТИВНО работающий? тады ой.
в принципе, для скорости написания проще использовать кросс-средства.
нативных оптимизирующих компиляторов С для Z80 не знаю.
Но согласись что это были довольно простые по логике програмки, далеко не ROM от спектрума и не типичная спектрум игрушка типа exolon. Как показывает практика то длинна кода и скорость при использовании ЯВУ падает в среднем в 3...4 раза так что надо памяти хотябы 256Кб а лучше 512кб частоту не 3Mhz а 20Mhz! И при этом желательно чтоб память была прямоадресуемая без всяких страниц и сегментов (типичный m68000 или mos65816).
ну это зависит от того, как писать, да и от компилятора сильно зависит
если не пользоваться 32х битной арифметикой, вычислениями с плавающей точкой и прочим, чего в процессоре нет, то работать будет быстро, а занимать мало
си - это же, как говорится, ассемблер высокого уровня.. я, например, не представляю, почему Hello, world на си может получиться значительно больше по объему, чем на асме
эксолон-не эксолон, а какой-нибудь maziacs (не менее типичная zx-игра) умять в 32 килобайта компиленного сишного кода вполне реально
Это где такая "практика" ? Давай говорить не о "яву", а о языке С, например. О современных компиляторах, а не о поделках 20-летней давности.
1. Скорость. Для того, чтобы алгоритм был "в 3-4" раза медленне, чем на асме - надо ОООЧЕНЬ постараться. Отключить полностью оптимизацию, писать как попало. Есть, конечно, исключения, но кто мешает сделать ассемблерную вставку ? Как правило, критическая часть кода занимает не более нескольких десятков комманд ассемблера.
Как правило, проигрыш в скорости - проценты. Никак не 3-4 раза.
2. Объём. Язык С позволяет разместить данные не менее плотно, чем ассемблер. Только удобств куда как больше.
3. Скорость разработки. Тут асм явно в проигрыше.
ИТОГ.
Проект лучше делать на С, а потом критические места - переписывать на асме.
Конечно, если программа - расчитана до такта, как некоторые демы - то тут всё на асме пишеться.
Но в свете написания ОС могу сказать, что тут про асм лучше забыть и не вспоминать без крайней нужды. Писал для ARM7 многозадачку потоковую. ядро заняло всего несколько килобайт.А для АРМ7 куда как более жирный, чем для Z80 получается. В ядро вошли - переключатель задач, менеджер памяти (куча), рудиментарная файловая система (для обращения к устройствам), куча сервисных функций.
Ассемблер использовал только для запуска процессора (расставить все стеки, запустить тактовый генератор) - и всё.
плюс мильон
к тому же разработка планируется совместной
читать чужой код не нравится никому, но взглянув на код на си можно хотя бы сразу понять, что он делает - по именам переменных, названиям функций...
а вот чтобы понять, что делает ассемблерная "простыня" придется потратить уйму времени
уж не говорю о том, что над сишным кодом можно написать небольшой win32|POSIX-враппер и отлаживать многие вещи прямо на PC, без эмулятора
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)