User Tag List

Страница 17 из 38 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 377

Тема: Ищу Си для Z80

  1. #161

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    при написании какой то процедуры на асме, чтобы прога не тупанула, нужно вести для хайтеха стек. при входе нужно дёрнуть адрес возврата и все аргументы.
    в данном случае я скорей всего тупанул, т.к. для процедуры нет аргументов. но если они есть, то делать нужно как уже сказал. можно пушами и попами, можно через ld hl,2 add hl,sp или через ix. но тогда при выходе ix обязательно нужно восстановить, иначе всё дохнет.
    Манипулировать стеком надо только если нужно прочитать передаваемые параметры (т.к. они лежат выше по стеку чем адрес возврата). В остальных случаях достаточно просто не портить стек - компилятор после возврата из твоей функции всегда подымает стек на нужную величину чтобы скомпенсировать им же ранее загруженные на стек параметры функции.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #162

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sergey, расскажи, пожалуйста, как можно прикрутить к code::blocks компиляцию через bat файл? ты говорил, что умеешь с ним готовить всякие компиляторы...или я путаю?
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  3. #163

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Error404, ты не вкурсе, у хайтеха видать глюк или комплект стоковых библиотек не полный. в библиотеке libf.lib нет процедуры flxor (float xor). всю башку уже сломал над этой хренью...
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  4. #164

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Error404, ты не вкурсе, у хайтеха видать глюк или комплект стоковых библиотек не полный. в библиотеке libf.lib нет процедуры flxor (float xor). всю башку уже сломал над этой хренью...
    Ну, наверное экзотики там может и не быть. Хor вообще-то битовая функция. Битовые функции над вещественными числами это какой-то особый вид извращений.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #165

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Sergey, расскажи, пожалуйста, как можно прикрутить к code::blocks компиляцию через bat файл? ты говорил, что умеешь с ним готовить всякие компиляторы...или я путаю?
    Нет. С code::blocks я пока использую SDCC. И для постобработки (для получения SCL со скомпиленной в boot прогой) - скрипт на REXX.
    Сборка CP/M-компиляторами осуществляется REXX-скриптом с помощью эмулятора CP/M, из командной строки. На выходе - SCL с boot`ом.
    SCL - частность, - скрипт можно допилить и на другие форматы.

    Конкретизируй, пожалуйста, что тебе нужно.

    Короче, сони.
    Прилагаю архив с дистрибутивом HiTech C v3.09, к которому добавлен эмулятор CP/M (cpm.exe) и два скрипта на REXX с интуитивнопонятными названиями. На выходе у обоих скриптов SCL-файл будет одинаковый (оптимизированный).
    Разница в том, что скрипт "optim" выдаст еще два исходника на ассемблере, до и после оптимизации.
    Использование:
    HiTech2zx48scl.rex source_name.c [, *.lib... [*.obj...]]
    библиотека "libc.lib" добавляется в линковку автоматически.

    P.S.
    Для оптимизации кода НЕ нужно вручную проделывать все шаги вместо компилятора. Достаточно указать последнему ключик "-O". И тот же результат достигается в одну строчку: "cpm.exe C.COM -Dz80 -C -O myprog.c".
    Вложения Вложения
    Последний раз редактировалось Sergey; 04.04.2015 в 13:57.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  6. #166

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не понял пост выше. Это таки для интеграции в GUI или просто что-то спектрумовое?

    Что касается вызова компилятора, то вызов "по составляющим" дает +1.5к к буферам компилятора/оптимизатора/еtс, т.к. в противном случае сс сажает в верхушке TPA резидента ($EXEC), который уменьшает ТПА, а все что он делает - это вызов той самой кучки бинарей, которые можно вызвать самому и за счет этого собрать более крупные файлы не нарвавшись на "out of memory"
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #166
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #167

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Я не понял пост выше. Это таки для интеграции в GUI или просто что-то спектрумовое?
    Это не для GUI - я не настолько знаю code::blocks (правильнее сказать, вообще не знаю) чтобы прикрутить туда в качестве компилятора cp/m-программу. Приложенные скрипты предназначены для сборки из командной строки windows. Также там есть пример: cls.c.

    по-пробуй (если у тебя установлен Regina REXX): optimHiTech2zx48scl.rexx cls.c
    должны появиться файлы cls.asm, cls_opt.asm, cls.bin и cls.scl.

    Цитата Сообщение от Error404 Посмотреть сообщение
    ... вызов "по составляющим" дает +1.5к к буферам компилятора/оптимизатора/еtс..."
    Вот это полезная информация. Спасибо.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  9. #168

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sayman, кстати, а ты, что, С-компилером для Спринтера не пользуешься?!
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #169

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sergey, не особо. для спринтера си мало пригоден в плане чего-то графического. объёмы данных слишком большие, чтобы на си с ними ворочать. и памяти мало (всего 64кб, а точнее, ТПА всего 48кб или даже меньше, если учесть, что вывод в одно окно графики, то и вовсе 32кб). утилиты под дос писать мало интереса, да и хватает как бы. да и ещё не удобно, что на си стэк фигово контролировать. есть риск, что код сишный залезет на область стэка. да и дальние вызовы там геморные.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  11. #170

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    Sergey, не особо.
    Я имел ввиду использование нативного SolidC для SprinterDOS
    Цитата Сообщение от Sayman Посмотреть сообщение
    для спринтера си мало пригоден в плане чего-то графического. объёмы данных слишком большие, чтобы на си с ними ворочать.
    Да кто-же всё ЦЕЛИКОМ-то на Сях пишет?! Делай либы на асме и дёргай их из Сей. Низкоуровневые процедуры пишут только на асме. И как-то это не вяжется с твоими вопросами, как сделать crt0.s для сборки екзешников для Спринтера.

    Цитата Сообщение от Sayman Посмотреть сообщение
    что на си стэк фигово контролировать. есть риск, что код сишный залезет на область стэка. да и дальние вызовы там геморные.
    Это невозможно. Стек может испортить только криво написанная подрограмма на асме, которая за стеком не следит.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

Страница 17 из 38 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •