Ты даже не понял что ты сделал. Ты -2 сдвиг сделал. Ты хоть в какой то точке способен разобраться? Нужно читать внимательно а не выдумывать
Ты даже не понял что ты сделал. Ты -2 сдвиг сделал. Ты хоть в какой то точке способен разобраться? Нужно читать внимательно а не выдумывать
вообще говоря адрес палитры сдвинулся на 1 байт.Ты -2 сдвиг сделал.
Sayman, что ты городишь вообще
ds - stands for "define space".
db stands for "define byte"
Ну и чего ты голову морочиш? Нормальный человек как бы понимает что если спереди убран выравнивающий ds то он должен быть добавлением после блока, что бы следующие данные не уползли. Т.е. собственную криворукость выдавать за архитектурные косяки платформы это конечно круто
s_kosorev,![]()
понимает что если спереди убран выравнивающий db
вот объясни мне, в чём различие, если я данные беру с адреса 0x0a38 или с адреса 0x0a37? почему, к примеру, на спринтере мне не нужно двигать адреса. вот я закинул палитру прям следующим байтом после кода, без всякого деления и выравнивания. указал адрес источника, и она погрузилась. а тут я сделал тоже самое, убрал один выравнивающий байт и палитра, ВНЕЗАПНО, перестала загружаться, хотя, есть там...
...
defw pallete
...
ds $&1 ;выравниваем по четному адресу
DISPLAY "BLAH=",$ (тут напечатает адрес палитры, т.е. 0x0a38 изначально или 0x0a37 если убрать выравнивание).
map_pal
pallete incbin "gfx/fon.png.pal"
ds $200-($-pallete)
pallete_l equ $-pallete
и т.д.
вы уж не поленитесь. исходник соберите.
можно оставить выравнивание. чёрт с ним, я просто беру и кидаю палитру сразу после последнего байта кода (т.е. не чётный адрес). вот хоть убейте, всё в точности. и это при том, что адрес палитры в регистре уже учтён.
а если эмуль выдаёт не соответствие к реальной железке, тогда это не ко мне вопрос, а к его автору.
опять таки, чёрным по белому, ТСлабом (автором конфы) написано, что: Записывая в младший байт регистра адреса число, младший бит НЕОБХОДИМО занулять, что как бы намекает на то, что 0й бит нифига не игнорируется.
если есть не состыковка между мануалом и действительностью, я тогда тут причём? не надо обвинять меня в кривости там, где моей вины нет.
Последний раз редактировалось Sayman; 19.08.2016 в 14:20.
ZXM-Phoenix 1024 Rev.02+ProfROMUni+SMUC2b
ZX-Evolution Rev.C
ZX Spectrum +2A
Yamaha YIS503IIIR
Atari 65XE
Ну смотри блок начинался с 0x10FF, его выровняли на 0x1100 так как честность. Ты убрал sb и поличил и за честности DMA будет брать с адреса 0x10FE. Ты убрал байт а сдвинул на 2 фактически. Ну элементарно же
Sayman, то есть тебе не доходит?
что пересылка дма ВСЕГДА идёт с чётного адреса? и работает 16битно?
и что можно сделать
align 2
pallete incbin "gfx/fon.png.pal"
и в отправку?
и что одной транзакцией ты можешь переслать сразу 128 кб, при этом - процессор свободен и может заниматься вычислениями?
юзай лдир, чо.
Опа, стопэ. А как же обязанность дождаться от дма статус свободен? Не так уж он и свободен, как бы, если каждый раз всё будет стоять и ждать.процессор свободен и может заниматься вычислениями?
ты что то путаешь, мне не надо юзать лдир...как бы...юзай лдир, чо.
- - - Добавлено - - -
Нафиг мне эти выравнивания там, где они не нужны?
Почему палитра 555, а не 888?
С какого перепугу быстрый девайс в виде иде был вдруг вытиснен и заменён на более тормозный и не удобный в виде сд?
С чего вдруг палитру не дают читать?
Диспечер памяти можно было сделать явно более удобным, учитывая, что автор ложил на все существующие стандарты.
И т.д.
Как я и говорил в самом начале, набор кастылей.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)