Важная информация

User Tag List

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

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

  1. #1
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

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

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

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

  3. #2
    FishBone Crew Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,586
    Благодарностей: 764
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Red face

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

  4. #3
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 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
    Member
    Регистрация
    08.01.2012
    Адрес
    г.Винница, Украина
    Сообщений
    65
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  6. #5
    Master
    Регистрация
    27.01.2005
    Сообщений
    527
    Благодарностей: 272
    Mentioned
    0 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. Этот пользователь поблагодарил SfS за это полезное сообщение:
    ALKO (14.09.2012)

  8. #6
    Veteran Аватар для ALKO
    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    1,429
    Благодарностей: 347
    Mentioned
    0 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. #7
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,234
    Благодарностей: 715
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #8
    goblinish
    Гость

    По умолчанию

    с чего так долго? трудно писать код на z80?

  11. #9
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,234
    Благодарностей: 715
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goblinish Посмотреть сообщение
    с чего так долго?
    долго что?

  12. #10
    goblinish
    Гость

    По умолчанию

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    долго что?
    трэд.

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

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

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

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

Похожие темы

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

Ваши права

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