Изменения небольшие:
Команды типа
ld a,(hl)
and d ; вырезаем по маске
ld (hl),a
Заменяем на
ld l,l ; записываем маску
ld (hl),d
Изменения небольшие:
Команды типа
ld a,(hl)
and d ; вырезаем по маске
ld (hl),a
Заменяем на
ld l,l ; записываем маску
ld (hl),d
"L-256"
Да как бе по большей части всегда затрагивается 2 горизонтальных байта при движении по пикселю, как изменять адрес дополнительной видеопамяти?
inc h
"L-256"
При линейном буфере с адреса 0000 координата Y записывается в младший байт адресного регистра, а координата X (в байтах) - в старший байт.
Однобайтовая неиспользуемая команда Z80 ld l,l используется для быстрого включения режима рисования нулевыми битами в видеопамяти.
Последний раз редактировалось zx-kit; 16.04.2020 в 16:49.
"L-256"
Не очень понятно...
Экран отражён с адреса 0 или надо в адрес 0 поочередно пихать координаты?
Буфер, где готовится следующий кадр игры, начинается с адреса 0000. Размер буфера 8 кбайт адресного пространства Z80.
Координата Y записывается в младший байт адресного регистра, а координата X (в байтах) - в старший байт.
Однобайтовая неиспользуемая команда Z80 ld l,l используется для быстрого включения режима рисования нулевыми битами в видеопамяти.
Команды типа
ld a,(hl)
and d ; вырезаем по маске
ld (hl),a
Заменяем на
ld l,l ; записываем маску
ld (hl),d
Адрес байта справа:
inc h
Последний раз редактировалось zx-kit; 16.04.2020 в 19:45.
"L-256"
В видеопамяти для независимой записи точек в байте - восемь микросхем ОЗУ.
"L-256"
Если
LD L,y
LD H,x
LD (HL),n
То адресное пространство не 8.192 кб а 49.152 кб
Или y=(0-255) x=(0-31) ???
- - - Добавлено - - -
По команде ld (hl),d VPU должен считать 2 байта из памяти, очистить по маске в этих 2 байтах и записать обратно 2 байта с наложенной маской?
Потом то же самое сделать уже для цветов?
- - - Добавлено - - -
Зачем 8 микросхем памяти?
Ты хочешь память с 64 битами данных?
- - - Добавлено - - -
При 25 МГц можно 5 раз наложить экран сам на себя при разрешении 256x192x256 цветов на каждую точку с SRAM 64 кб x 8 бит.
То есть сделать задний фон и после этого вывести на экран 3 тысячи спрайтов 8x8 с 1 байтным цветом на пиксель.
Когда цвета кратны байту то по маске не надо считывать ничего из памяти, там где в маске 0 цвет просто не пишется в память, когда цвета кратны 1 биту то считывать придётся по любому или брать память 8 штук с 1 битным входом/выходом иииии ....где то мы уже это видели.... и изменять данные через мультиплексор без пересчитывания, писать только те биты где маска 1.
То есть, брать 8 штук РУ7 и с плис 8 раздельных выходов W/R под каждый бит...........но это по моему уже какое то извращение.....
Последний раз редактировалось Nesser; 17.04.2020 в 01:38.
Буфер 256*32=8192.
8 микросхем чтобы выборочно записывать точки. Одновременно. На частоте 14 MHz.
Половину времени ОЗУ требуется для вывода на TV.
Последний раз редактировалось zx-kit; 17.04.2020 в 01:50.
"L-256"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)