как ты это подсчитал? как бы, по манулу, вообще до 14мб/с... как бы. что-то у вас с математикой, у Ивана или у тебя (и у меня тоже).Цитата:
так если цикл 7мкс это 140 кб/с
Вид для печати
как ты это подсчитал? как бы, по манулу, вообще до 14мб/с... как бы. что-то у вас с математикой, у Ивана или у тебя (и у меня тоже).Цитата:
так если цикл 7мкс это 140 кб/с
Ну числобайт надо не делить а множать на время цикла. Во вторых в исходниках видно что базовая частота для cas которая 42/4 еще и блокируется сигналом CT1 который я по *****коду на ахдл не распарсил еще.
- - - Добавлено - - -
14мб это пропускная или копирование? На копирование надо в 2 раза больше трактовке если что
- - - Добавлено - - -
нашел первоисточник недопонимания комрада Sayman, он просто читать не умеет
цитата из доки
"Время работы акселератора = число пересылаемых байт /7000000 (секунд)"
Что означает что нужно количество байт поделить на 7млн и получится время в секундах, автор тоже тот еще объяснятель
В общем 7мб/сек макс скорость копирования
- - - Добавлено - - -
пруф http://winglion.ru/sprinter/sp2000.pdf
- - - Добавлено - - -
и внезапно все так сложилось у автора с математикой все ок
это как и есть 7 микросекунд, не?Цитата:
7000000 (секунд)
я там в мануале некоторые строчки по 10 раз перечитывал, чтобы понять ход его мысли)))Цитата:
автор тоже тот еще объяснятель
теперь мы пришли к тому, с чего начинали, т.е. к всё той же кратности адресов и транзакций у ДМА в тс конфе. ))))Цитата:
В общем 7мб/сек макс скорость копирования
нет, я так то понимаю, что столбцы там всякие, чётные и не чётные и даже представляю какая каша может получаться, если адрес не будет чётным (проверял даже). вопрос не в этом, а в том, "а зачем, если можно сделать более удобнее и без потери скорости"?
ладно, это к данной теме (по сабжу) не относится... извините.
А тем временем осознал что это CT1, это блин делитель на 1.5 итого частотам памяти 42/1.5/4 = 7мгц, надо схему смотреть но судя по высказывании о 14мб/сек вангую что simm72 либо запаралелен на 16 бит (что в теории правильно а на практике можно отхватить) либо отброшено половина сима, схему влом искать
- - - Добавлено - - -
нет! почитай, это результат будет в секундах
- - - Добавлено - - -
кратность то причем? Ну отбросили некратные операции, это нормально, там как работа с байтами на 16бит шине может DMA в 2-3 раза по занимаемым ресурсам увеличить а польза сомнительная
кратность при том, что если адрес источника не кратен 2 (т.е. иными словами не чётный, бит 0 выставлен и он внутри ДМА не игнорируется, судя по эмулятору), то чтение происходит с нечётного адреса. если не веришь мне, вон исходник демки jerry, там есть место, где он делает $&1 выравнивание на чётный адрес. убери выравнивание и посмотри на результат.Цитата:
кратность то причем?
т.е. я говорю о том, что подобные, некоторые, аппаратные решения накладывают какие-то ограничения там, где этого можно было бы избежать. если говорить в рамках ДМА, то вот меня ломает делать всякие выравнивания лишние, тратить ценные байты. когда этого можно было бы избежать, работай дма чуть иначе (не поленись разработчик железки, так скажем).
схема спринтера.
какая графика? спрайты всякие? ну я вот не художник. я беру спрайт со старшой какой-нить платформы, а он там большой. надо бы уменьшить. очень сильно не факт, что при масштабировании оптимальное качество будет именно "по нулям" (когда в размерах спрайта по х и у и по итогу в размере 0й бит = 0). а так я даже не суечусь, я выбираю такое масштабирование, которое на мой взгляд оптимально и мне не важно, кратно там оно чему-то или нет. графика байт на пиксель, какие там нафиг кратности? для чего?Цитата:
уж не знаю, графика как правило естественным образом кратна двум
перекачал по этой ссылке.Цитата:
перекачай эмулятор, поди версия древняя
результат:
Вложение 57928
что я сделал:
почему у меня всё слезло?Код:dma_cpy defb #30 ;dest
; ds $&1 ;выравниваем по четному адресу *вот тут я закоментил*
map_pa
ну знаешь, кому из пальца, а кому и нет. мне не удобно. кому-то ещё там другое не удобно и т.д. как я уже говорил, если начать рыть авторские факи и мануалы. можно много несостыковок найти и вот таких "высасывалок". тут надо ограничиться (высосано из пальца), там, там.Цитата:
в общем проблема высосана из пальца
ну, в общем, ладно. оставим это всё в покое...у меня всё ровно нет ТС и пока не планировал обзаводится этой штуковиной. был бы автор хотя бы русским (в плане нормальной связанной речи, а не в стиле удафком), можно было бы подумать.
в целом, могу написать, что конкретно мне в ТС не очень или очень не нравится, если сравнивать с тем же спринтером.
Ты даже не понял что ты сделал. Ты -2 сдвиг сделал. Ты хоть в какой то точке способен разобраться? Нужно читать внимательно а не выдумывать
вообще говоря адрес палитры сдвинулся на 1 байт.Цитата:
Ты -2 сдвиг сделал.
Sayman, что ты городишь вообще
ds - stands for "define space".
db stands for "define byte"
Ну и чего ты голову морочиш? Нормальный человек как бы понимает что если спереди убран выравнивающий ds то он должен быть добавлением после блока, что бы следующие данные не уползли. Т.е. собственную криворукость выдавать за архитектурные косяки платформы это конечно круто
s_kosorev, :v2_cheer:
:biggrin:Цитата:
понимает что если спереди убран выравнивающий 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й бит нифига не игнорируется.
если есть не состыковка между мануалом и действительностью, я тогда тут причём? не надо обвинять меня в кривости там, где моей вины нет.
Ну смотри блок начинался с 0x10FF, его выровняли на 0x1100 так как честность. Ты убрал sb и поличил и за честности DMA будет брать с адреса 0x10FE. Ты убрал байт а сдвинул на 2 фактически. Ну элементарно же
Sayman, то есть тебе не доходит?
что пересылка дма ВСЕГДА идёт с чётного адреса? и работает 16битно?
и что можно сделать
align 2
pallete incbin "gfx/fon.png.pal"
и в отправку?
и что одной транзакцией ты можешь переслать сразу 128 кб, при этом - процессор свободен и может заниматься вычислениями?
юзай лдир, чо.
Опа, стопэ. А как же обязанность дождаться от дма статус свободен? Не так уж он и свободен, как бы, если каждый раз всё будет стоять и ждать.Цитата:
процессор свободен и может заниматься вычислениями?
ты что то путаешь, мне не надо юзать лдир...как бы...Цитата:
юзай лдир, чо.
- - - Добавлено - - -
Нафиг мне эти выравнивания там, где они не нужны?
Почему палитра 555, а не 888?
С какого перепугу быстрый девайс в виде иде был вдруг вытиснен и заменён на более тормозный и не удобный в виде сд?
С чего вдруг палитру не дают читать?
Диспечер памяти можно было сделать явно более удобным, учитывая, что автор ложил на все существующие стандарты.
И т.д.
Как я и говорил в самом начале, набор кастылей.
на все твои вопросы есть обоснованные ответы.
но ты хочешь обьяснить своё незнание этой системы, кривизну своего (своего-ли?) кода - проблемами архитектуры.
а это не так.
вижу, тебе стоит продолжить копаться в спринтере.
s_kosorev, это тоже есть. можно установить вектор прерывания, которое отработает по окончанию транзакции.
Чем не полноценный компьютер? :)
Напоминает, глухой и слепой, оба немые. Ну зачем ждать DMА?
Объясните тупому?
Потесните, в чем "цинусус"? этих плоскостей? зачем убирать "клэшинг" в разрешениях, где по сути не видно ничего?
Во, здравый смысл, я уже не в силах воевать :)
Само разрешение 256x192 уже является клэшингом :)
Из-за пары клэшей столько всего придумали, при чём только в теории.
------------
Начали делать так начните с концепции, что вообще требуется, не надо гигагерцы и гигалитры, всё вполне можно уложить и в z80 (хотя MUL и DIV добавить не помешало бы).
тs-conf классно, но не настолько что бы можно было с комфортом работать.
Один только VideoDAC вместо IDE чего стоит, я даже покупку из-за этого отложил.
Nesser, я как бы об этом и пытался сказать...
4K нужно думать, как раз в выходу появятся на свалке бу моники такие
Nesser, может и хотят, только на все вопросы есть типа обоснованные ответы.
Nesser, "Один только VideoDAC вместо IDE чего стоит, я даже покупку из-за этого отложил. "
Понимаешь какая штука. Увы, в самой еве есть железные ограничения на вывод цвета.
" Это ограничение (64 цвета) так же было перенесено в современную архитектуру — PentEvo(ZX Evolution) на базе плис ALTERA."
отсюда и такой странный хак, как "VideoDAC в IDE". но при этом качество изображения становится реально отличным.
а у меня от сюда вытекает один вопрос. я просто не очень шарю в таких очень сильно железных делах, может кто прояснит? вот у Эвы для цветастости выделили у плисины по 2 ноги на каждый сигнал р, г, б. этого оказалось мало (64цвета, маловато будет) и ТС решил выкинуть ИДЕ, а свободные сигналы после иде использовать для передачи цвета. так?Цитата:
отсюда и такой странный хак
а вот и вопрос: у Спринтера при этом для передачи цвета выделен только один сигнал WR_COL. Почему спринтер может 24 бита (вообще 32 бита, но младшие 8 бит игнорируются) палитру с одним сигналом, а эво нет? Быть может реализация спринтера по части палитры имеет какой-то недостаток? я никаких полос или других помех (аля ШИМ) не наблюдаю. могу взять любую картинку и сконвертить её в 256 цветов с адаптивной палитрой (из фотошопа, там на выбор несколько вариантов конверсии, адаптивные самые точные тут, хотя где-то может и точнее есть) и всё будет прекрасно показано. в чём прикол? если никаких приколов нет. то что мешало ТСу сделать аналогично?
Для восьмибитной графики изображение на Метеоре будет динамичней чем на тсконфиге в растровом режиме, так изображения распределены по планам(слоям), которыми удобнее манипулировать. На тсконфиге в растровом режиме придётся перерисовывать весь экран, а это большая нагрузка на процессор.
Тайлоспрайтовый двиг не привычен для спектрумистов, и по концепции ближе к приставкам, что как бы стирает имидж спектрума как компьютера.
Smalovsky, если в каждый план засунуть 8bpp, то это хорошо. если там по 1 - 4 или по 8 цветов на план, то нафиг она эта многоплановость не нужна.
про тайлоспрайтовый двиг согласен, лучше сразу 3д двиг какой нить)))
Smalovsky, не смешивай ОДИН растр конфы и СЛОИ метеора
сравнивай СЛОИ конфы и СЛОИ метеора.
естественно что при 256цветах (1 байт на точку) обновить 64тысяч (320х200) байт процессором очень сложно. но тут очень приходится кстати ДМА.
Sayman, я тоже не железячник, поэтому сложно что-то сказать по факту.
но я лично знаю разработчика этой конфигурации, и могу сказать что чел очень опытный. видать, есть большие ограничения, заложенные в архитектуру самой Evolution.
Hacker VBI, я к тому. что пусть даже ИДЕ выкинули. на внешней платке ide VideoDac, я так думаю, можно было извратится да сделать нормальные 24 бита.
кстати, хотел спросить ещё. для примера, вывожу я спрайт на ТСконфе в заданных координата по Х и У. вывел, но потом мне нужно вернуться к одной из координат (или к обеим). порты с координатами читать можно? они запоминают последние значения?
нормального манула (без удаФовского языка) явно не хватает.
Мне Метеор больше нравится чем тсконфиг. Ещё бы был функционал для графических примитивов с аппаратной поддержкой в слоях - точки, линии, прямоугольники, многоугольники, заливка. И цвет для примитивов можно было бы выбирать произвольный.
Неплохо бы посмотреть прототипы скринов для Метеора, как это делал иноземцев для своего режима.
Sayman, есть цикл статей по программированию под конфу. Там две страницы, почти всё описано, и язык довольно понятный :)
Ищи по приставке в названии TSconf: и дальше то что интересно.
Вот статья по спрайтам
и как правильно говорит Buyan, спрайт представляет собою 6 байт, описывающих весь его вывод - координаты, размеры и т.д.
для спрайтов читать нечего, всё в основной памяти лежит. для того что бы обновить координаты спрайта - в этих 6 байтах указываются новые Х и У, и эти данные отправляются в систему (в память альтеры)
24 бита это хорошо конечно. с вдаком получаем 5/5/5бит цвета (15 бит), палитра уже большая.
s_kosorev, я же говорил, не умею я сильно железные темы вникать. Сигналы VDxx видимо это. Ну тады извиняйте, я думал там на wr_col завязано...