breeze,
у тебя внутри макроса стоит DB
а передаешь ты ему word (255+)
других вариантов не бывает
код покажи.
С уважением,
Jerri / Red Triangle.
introspec, вместо Byte ты передаешь Word
все остальное от лукавого
С уважением,
Jerri / Red Triangle.
Да, вы немного угадалимакрос строит структуру db, но…
возможно я не так понял как пользоваться low/high ?Код:MACRO MCreateSprite posX, posY, width, height, pal 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
---------- Post added at 17:46 ---------- Previous post was at 17:27 ----------
короче дело было в этих странных low/high, заменил на posX%255 и (posX/256) и всё ок стало.
Но теперь другая проблема. Мегаумный компилятор округляет 0.1 до 1 //_—
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
эээ… что-то не совсем понял. В первых здесь собираются биты и они означают разные статусы, и кроме того в low я уже заворачивал. Собственно с этого я и начал — вылетает «error: Bytes lost».
По сути мне нужен какой-то операнд, который скажет sjasm'u? что 0.1 это всё-таки 0, а не 1. Тобишь активировать округление в меньшую сторону.
Последний раз редактировалось breeze; 06.02.2014 в 19:28.
introspec, видишь я был прав![]()
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)