User Tag List

Показано с 1 по 10 из 10

Тема: Спрайты, ps/2 и куча утилит.

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

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

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    SfS, в SDCC нужно обязательно сохранять IX и восстанавливать его значение при выходе из любой процедуры.

    Код:
    void	spr0_out0(const Sprite0* adr, BYTE x, BYTE y)__naked{
    __asm
        ld    ix,#2
        add   ix,sp
    ...
        jp    spr0_out0
    __endasm;
    }
    Код:
    void	spr0_out0(const Sprite0* adr, BYTE x, BYTE y)__naked{
    __asm
        push  ix
        ld    ix,#4
        add   ix,sp
    ...
        call  spr0_out0
        pop   ix
        ret
    __endasm;
    }
    Ведь SDCC адресует локальные переменные процедуры через IX. Так сделано по нескольким причинам, в частности для упрощения рекурсии.

    У меня была такая редкая труднонаходимая ошибка, которую никто не нашёл, а может и не стал искать, кому же нужна чужая минидемо когда все заняты своими мегапрожектами.

    http://zx.pk.ru/showpost.php?p=480804&postcount=9
    http://zx.pk.ru/showpost.php?p=555967&postcount=39

    Цитата Сообщение от Oleg N. Cher
    Исправлен глюк со сбросом примера на Laser Basic. Проблема будет интересна всем, кто юзает SDCC. Это даже не глюк, допущенный случайно. Дело в том, что я после извлечения параметров функций допускал изменение регистра IX. А делать оказывается этого нельзя, ибо SDCC иногда полагается на его значение после возвращения из функции. (Как написал Филипп: “IX is a calle-saves register”).
    P.S. Можно ли добавить в библиотеку libspr возможность работы со спрайтом, выходящим за край экрана (и справа, и слева, и сверху, и снизу)? Т.е. я понимаю, что можно, но есть ли желание этим заняться?
    Последний раз редактировалось Oleg N. Cher; 01.06.2014 в 14:33.

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

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

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

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

Похожие темы

  1. Спрайты из игр
    от newart в разделе Графика
    Ответов: 16
    Последнее: 11.08.2022, 07:52
  2. Продам спектрум дельта С + БП и куча плат
    от REMR в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 10.01.2012, 23:35
  3. Куча БК-0010 без КМ-ок
    от Andrey_Ak в разделе Барахолка (архив)
    Ответов: 90
    Последнее: 16.09.2010, 09:33
  4. Куча софта и документации spectrum
    от klingon в разделе Для начинающих
    Ответов: 6
    Последнее: 01.08.2010, 17:53
  5. сдесь куча всего
    от bigral в разделе Софт
    Ответов: 3
    Последнее: 16.03.2008, 19:55

Ваши права

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