User Tag List

Страница 90 из 167 ПерваяПервая ... 868788899091929394 ... ПоследняяПоследняя
Показано с 891 по 900 из 1664

Тема: SjASMPlus Z80 кросс ассемблер

  1. #891

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Цитата Сообщение от breeze Посмотреть сообщение
    Да, вы немного угадали макрос строит структуру db, но…
    Код:
        MACRO MCreateSprite posX, posY, width, height, pal
             
           db posY&#ff
           db (posy/256)+(((height/8)-1)*2)+#20
    
           db posX&#ff
           db (posX/256)+(((width/8)-1)*2)
    
           db #00 ;чтото про TNUM
           db (pal&#0f*16)
    
    
    /*
            db    low posY        ; Y0-7     | 8 bit младшие даные Y координаты (0-255px)
                ;FLAR S Y8
            db    %00100000|((height/8)-1)<<1|high posY    ; Y8       | 0й бит - старшие данные Y координаты (256px >)
                            ; YS       | 1,2,3 бит - высота в блоках по 8 px
                            ; RESERVED | 4й бит - зарезервирован
                            ; ACT      | 5й бит - спрайт активен (показывается)
                            ; LEAP     | 6й бит - указывает, что данный спрайт последний в текущем слое. (для перехода по слоям)
                            ; YF       | 7й бит - указывает, что данный спрайт нужно отобразить зеркально по вертикали
       
            db    low posX        ; X0-7     | 8 bit младшие даные X координаты (0-255px)
                ;F  R S X8
            db    %00000000|((width/8)-1)<<1|high posX    ; X8       | 0й бит - старшие данные X координаты (256px >)
                            ; XS       | 1,2,3 бит - ширина в блоках по 8 px
                            ; RESERVED | 4й бит - зарезервирован
                            ; -        | 5,6й бит - не используются
                            ; XF       | 7й бит - указывает, что данный спрайт нужно отобразить зеркально по горизонтали
                ;TNUM
            db    %00000000        ; TNUM       | Номер тайла для левого верхнего угла.
                            ;          | 0,1,2,3,4,5й бит - Х координата в битмап
                ;SPALTNUM        ;          | 6,7й бит +
            db    %00000000|(pal<<4)    ; TNUM     | 0,1,2,3 бит - Y координата в битмап
                            ; SPAL     | 4,5,6,7й биты номер палитры (?)
    */
        ENDM
    возможно я не так понял как пользоваться low/high ?

    ---------- Post added at 17:46 ---------- Previous post was at 17:27 ----------

    Но теперь другая проблема. Мегаумный компилятор округляет 0.1 до 1 //_—
    пробуй
    в каком месте округляет?
    С уважением,
    Jerri / Red Triangle.

  2. #892

    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    breeze, у тебя какая версия асма? У меня твой макрос нормально скомпилировался.

  3. #893

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

    Exclamation

    Цитата Сообщение от Blade Посмотреть сообщение
    breeze, у тебя какая версия асма? У меня твой макрос нормально скомпилировался.
    Не в версии асма дело, я ж не говорил что оно не компилит. Просто ошибку выдавало.

    Короче уже сам разобрался, проблема была в 255, заменил на 256 всё ОК. Не внимательно просто заменил.

    Если кому интересно, рабочий вариант:

    Код:
        MACRO MCreateSprite posX, posY, width, height, pal
    
            db    posY%256        ; Y0-7     | 8 bit младшие даные Y координаты (0-255px)
                ;FLAR S Y8
            db    %00100000|((height/8)-1)<<1|(posY/256)    ; Y8       | 0й бит - старшие данные Y координаты (256px >)
                            ; YS       | 1,2,3 бит - высота в блоках по 8 px
                            ; RESERVED | 4й бит - зарезервирован
                            ; ACT      | 5й бит - спрайт активен (показывается)
                            ; LEAP     | 6й бит - указывает, что данный спрайт последний в текущем слое. (для перехода по слоям)
                            ; YF       | 7й бит - указывает, что данный спрайт нужно отобразить зеркально по вертикали
            
            db    posX%256        ; X0-7     | 8 bit младшие даные X координаты (0-255px)
                ;F  R S X8
            db    %00000000|((width/8)-1)<<1|(posX/256)    ; X8       | 0й бит - старшие данные X координаты (256px >)
                            ; XS       | 1,2,3 бит - ширина в блоках по 8 px
                            ; RESERVED | 4й бит - зарезервирован
                            ; -        | 5,6й бит - не используются
                            ; XF       | 7й бит - указывает, что данный спрайт нужно отобразить зеркально по горизонтали
                ;TNUM
            db    %00000000        ; TNUM       | Номер тайла для левого верхнего угла.
                            ;          | 0,1,2,3,4,5й бит - Х координата в битмап
                ;SPALTNUM        ;          | 6,7й бит +
             db    %00000000|(pal<<4)    ; TNUM     | 0,1,2,3 бит - Y координата в битмап
                            ; SPAL     | 4,5,6,7й биты номер палитры (?)
    
        ENDM

  4. #894

    Регистрация
    25.03.2013
    Адрес
    г. Лондон, Великобритания
    Сообщений
    948
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    breeze, я всё ещё не могу воспроизвести сообщение об ошибке. Скажи, пожалуйста, какие-нибудь значения height и posY на которых у тебя вылетало. Если что, я довольно последовательно изничтожил деления из моих констант, и всё время пишу с high/low, так что мне интересно понять, откуда растут ноги у твоей проблемы.
    "introspec" читается как "интроспек". некоторые читают как "интроспец", но я никакой не спец. я спек.

  5. #895

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

    По умолчанию

    Цитата Сообщение от introspec Посмотреть сообщение
    breeze, я всё ещё не могу воспроизвести сообщение об ошибке.
    Ну я как бы писал выше:

    Цитата Сообщение от breeze Посмотреть сообщение
    при передачи числа в качестве параметра > 255 получаю такую хрень:
    Реально писал 64*4

  6. #896

    Регистрация
    27.03.2005
    Адрес
    CПб
    Сообщений
    711
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от breeze Посмотреть сообщение
    Реально писал 64*4
    Тогда надо писать high (posY), low (posY). У high, low приоритет выше, чем у умножения, и без скобок получается так: (high 64) * 4

  7. #897

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

    По умолчанию

    Цитата Сообщение от Blade Посмотреть сообщение
    Тогда надо писать high (posY), low (posY). У high, low приоритет выше, чем у умножения, и без скобок получается так: (high 64) * 4
    ОК. Спасибо, буду знать.

  8. #898

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а насколько реально внедрить в sjAsm опцию похожую в pasmo сохранение как .TAP?
    пользоваться своим костылем уже поднадоело.

  9. #899

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    denpopov, сохраняй сна - для отладки самое оно
    С уважением,
    Jerri / Red Triangle.

  10. #900

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

    По умолчанию К спецам по gcc 4.8.2, Си++ 11 и sjasm 0.42c

    Кто знает как победить? Не отключая warnings:
    Код:
    # cat rawsource.h 
    class RawSource {
    public:
      RawSource(string);
      RawSource(StringList);
      StringList ReadUntil(StringList,StringList,string);
      void Process();
      SourceList &GetSource() { return _source; }
      void ClearSource() { _source.clear(); }
      void AddToSource(SourceList n) { _source.splice(_source.end(),n); }
    protected:
      RawSource() {}
      void _Preprocess();
      string _KillComments();
      void _Group1(string&);
      void _ReplaceDefs(string &);
      void _Group2(string&);
      void _CutLines(string&);
      int _ParseLabel(string&);
      void _ParseRepeat(string&);
      void _ExpandMacros(string&);
      int _AssemblerDirectives(string&);
      void _Mnemonics(string&);
      int _nextline();
      StringList _sl;
      iStringList _it;
      SourceList _source;
      string _unexpectedin;
      int _unexcurlin,_unexlistcurlin;
      void virtual _Parse(string&);
    };
    
    class RSRepeat : public RawSource {
    public:
      RSRepeat() {}
      void parserepeat(string &s) { _ParseRepeat(s); }
    };
    
    class RSStructure : public RawSource {
    private:
      void _Parse(string&);
      int _offset,_defaultalign;
      bool _global;
      Structure &_s;
      bool _mustalign;
      int _newalign;
    public:
      RSStructure(int n_offset, int n_align, bool n_global, Structure &n_s, StringList &sl) : 
          _offset(n_offset), _defaultalign(n_align), _global(n_global), _s(n_s), _mustalign(false), RawSource(sl) {}
    };
    Код:
    # make
    g++ -Wp,-MD,.deps/datadir.d -Wall -O2 -c -o datadir.o datadir.cpp
    In file included from sjasm.h:125:0,
                     from datadir.cpp:29:
    rawsource.h: In constructor «RSStructure::RSStructure(int, int, bool, Structure&, StringList&)»:
    rawsource.h:78:8: предупреждение: «RSStructure::_mustalign» будет инициализирован после [-Wreorder]
       bool _mustalign;
            ^
    rawsource.h:82:109: предупреждение:   базового класса «RawSource» [-Wreorder]
           _offset(n_offset), _defaultalign(n_align), _global(n_global), _s(n_s), _mustalign(false), RawSource(sl) {}
                                                                                                                 ^
    rawsource.h:81:3: предупреждение:   when initialized here [-Wreorder]
       RSStructure(int n_offset, int n_align, bool n_global, Structure &n_s, StringList &sl) : 
       ^

    Ретрокладовая продажи

    продажи
    [свернуть]

Страница 90 из 167 ПерваяПервая ... 868788899091929394 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  2. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03
  3. Хороший ПЦшный ассемблер - залог успеха!
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 08.08.2005, 15:25
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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