Изменения небольшие:
Команды типа
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
Да как бе по большей части всегда затрагивается 2 горизонтальных байта при движении по пикселю, как изменять адрес дополнительной видеопамяти?
inc h
При линейном буфере с адреса 0000 координата Y записывается в младший байт адресного регистра, а координата X (в байтах) - в старший байт.
Однобайтовая неиспользуемая команда Z80 ld l,l используется для быстрого включения режима рисования нулевыми битами в видеопамяти.
Не очень понятно...
Экран отражён с адреса 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
В видеопамяти для независимой записи точек в байте - восемь микросхем ОЗУ.
Если
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 микросхем памяти? :confused:
Ты хочешь память с 64 битами данных?
- - - Добавлено - - -
При 25 МГц можно 5 раз наложить экран сам на себя при разрешении 256x192x256 цветов на каждую точку с SRAM 64 кб x 8 бит.
То есть сделать задний фон и после этого вывести на экран 3 тысячи спрайтов 8x8 с 1 байтным цветом на пиксель.
Когда цвета кратны байту то по маске не надо считывать ничего из памяти, там где в маске 0 цвет просто не пишется в память, когда цвета кратны 1 биту то считывать придётся по любому или брать память 8 штук с 1 битным входом/выходом иииии ....где то мы уже это видели.... и изменять данные через мультиплексор без пересчитывания, писать только те биты где маска 1.
То есть, брать 8 штук РУ7 и с плис 8 раздельных выходов W/R под каждый бит...........но это по моему уже какое то извращение.....
Буфер 256*32=8192.
8 микросхем чтобы выборочно записывать точки. Одновременно. На частоте 14 MHz.
Половину времени ОЗУ требуется для вывода на TV.