User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 43

Тема: sdcc. с чего начать.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию sdcc. с чего начать.

    Помогите разобраться. Как создать хотя б хелло ворлд этой штукой.

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

  3. #2

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    129
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    Red face

    Цитата Сообщение от ALKO Посмотреть сообщение
    Помогите разобраться. Как создать хотя б хелло ворлд этой штукой.
    Код:
    #include <stdio.h>
    
    main() {
      printf("Hello world");
      while(1) {};
    }
    Погуглить?

  4. #3

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    #include <stdio.h>

    main() {
    printf("Hello world");
    while(1) {};
    }
    хех... спасибо,не знал.

    Я про то, как скомпилировать под Z80.
    Как записать допустим какое-либо значение в какую-нибудь область памяти. И тд.

    этот самый printf - работает как ассемблерный call(процедура печати символа в ПЗУ) ?

    ---------- Post added at 23:58 ---------- Previous post was at 23:57 ----------

    там куча бинарников в папке, а что с ними делать...хз... как настроить компоновщик...

  5. #4

    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    94
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как записать допустим какое-либо значение в какую-нибудь область памяти
    Обычно под С это прямо не требуется, там идёт работа с переменными и указателями.
    Но если очень надо:
    *(char*)0xAAAA =0x55; // Записываем 55h по адресу ААААh

    насчёт того как скомпилить - не скажу, кури документацию.

  6. #5

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от predatoralpha Посмотреть сообщение
    Обычно под С это прямо не требуется, там идёт работа с переменными и указателями.
    Но если очень надо:
    *(char*)0xAAAA =0x55; // Записываем 55h по адресу ААААh

    насчёт того как скомпилить - не скажу, кури документацию.
    чёйто не требуется? Под контроллеры пишешь - постоянно так делаешь. Особливо под те, что порты и память не различают - ARM. Да и для AVR тоже можно.
    Только там обычно делают грамотно.

    Определяют макрос типа:

    #define MEMORY_REGISTER (*(unsigned char*)0xABCD)

    А потом можно записать в эту ячейку:

    MEMORY_REGISTER = 5;

    Или считать значение ячейки:

    unsigned char d = MEMORY_REGISTER;

    Например (для спека) очистка экрана:

    Код:
    #define SCREEN     ((unsigned char*)0x4000)
    #define SCREENL    6912
    
    void cls(){
          unsigned char* begin_scr = SCREEN;
          unsigned int i;
          for(i=0; i<SCREENL; i++){
                *(begin_scr++) = 0;
          }
    }
    Это учёбный пример, быстрее и короче очистить экран так:
    Код:
    #include <string.h>
    memset((void*)0x4000, 0, 6192);
    



    Цитата Сообщение от ALKO Посмотреть сообщение
    этот самый printf - работает как ассемблерный call(процедура печати символа в ПЗУ) ?[COLOR="Silver"]
    Не обязательно. printf выводит символы при помощи функции putchar. Напиши свой putchar и будет вывод куда угодно и как угодно

  7. #6

    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    94
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    16 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    чёйто не требуется? Под контроллеры пишешь - постоянно так делаешь. Особливо под те, что порты и память не различают - ARM. Да и для AVR тоже можно.
    Только там обычно делают грамотно.
    Под контроллеры - да. Да и то, правильней расписать порты в структуру, а потом эту структуру опциями линкера разместить в нужных адресах памяти.
    Но это частности.

  8. #7

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Не обязательно. printf выводит символы при помощи функции putchar. Напиши свой putchar и будет вывод куда угодно и как угодно
    Я б с радостью бы написАл. Но я не знаю как компилировать этой штукой.
    И не знаю компилирует ли она в асм или непосредственно в машинный код.
    Вот и решил спросить тех, кто знаком с данным компилятором.

    ---------- Post added at 07:22 ---------- Previous post was at 07:21 ----------

    Цитата Сообщение от SfS Посмотреть сообщение
    Например (для спека) очистка экрана:

    Код:
    #define SCREEN ((unsigned char*)0x4000)
    #define SCREENL 6912

    void cls(){
    unsigned char* begin_scr = SCREEN;
    unsigned int i;
    for(i=0; i<SCREENL; i++){
    *(begin_scr++) = 0;
    }
    }
    Именно про такой "хыллоу ворлд" я спрашивал.

  9. #8

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    И не знаю компилирует ли она в асм или непосредственно в машинный код.
    Практически любой компилятор си компилирует в асм, а потом ассемблирует полученное каким-нибудь ассемблером. Промежуточный ассемблерный листинг можно вытащить (ключ -S), но ассемблер у sdcc свой, и по синтаксису он несовместим ни с одним из известных мне спектрумских.

    printf
    Не сработает, у sdcc нет либы для поддержки спектрума.

    Я в какой-то теме писал когда-то простой хелло ворлд, счас поищу.

    Вот - http://zx.pk.ru/showpost.php?p=471807&postcount=7
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  10. #9

    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ALKO, покопайся в исходниках EvoSDK. там на этом SDCC игры можно писать и часть необходимых функций для работы на спеке реализована (правда с упором на 16С и прочие фенечки Эвы и АТМ).

  11. #10

    Регистрация
    26.01.2005
    Адрес
    Russia, Ulianovsk
    Сообщений
    5,428
    Записей в дневнике
    6
    Спасибо Благодарностей отдано 
    59
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    ALKO, покопайся в исходниках EvoSDK. там на этом SDCC игры можно писать и часть необходимых функций для работы на спеке реализована (правда с упором на 16С и прочие фенечки Эвы и АТМ).
    есть исходники как минимум двух игр: xonix (идет в комплекте) и innsmouth
    'SONGS FROM CRUEL WORLD' IS REMASTERED!
    unmilky sky and other albums is here
    speccy merchandise

    we can dance beneath the fireflies on an empty road
    there is the light that never goes out... (the smiths)
    если кто-то что-то как-то, то вот моя аська - 371432992

Страница 1 из 5 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. БК-0011: С чего начать, или вопросы нуба
    от BYTEMAN в разделе БК-0010/0011
    Ответов: 82
    Последнее: 13.06.2021, 22:20
  2. Голая Амига с чего начать
    от alex51 в разделе Amiga
    Ответов: 335
    Последнее: 22.02.2016, 00:26
  3. C чего начать геймдэв для горбатыша?
    от ALKO в разделе Для начинающих
    Ответов: 69
    Последнее: 24.01.2012, 15:49
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  5. Подскажите с чего начать знакомство со спекки...
    от aleksej в разделе Несортированное железо
    Ответов: 33
    Последнее: 28.12.2005, 23:00

Ваши права

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