Лучше accel_mode - выбор ускорения: 0 - программно-аппаратное, 1 - блиттер.
Стирание лучше сделать без пересылки данных блиттером. Любой цвет 1xxxxxxx xxxxxxxx со старшим битом = 1 считается прозрачным.out_mode - режим вывода: 0 - вывод через регистр данных или блиттер, 1- режим ластика;
В режиме ластика при выводе через регистр данных запись любого значения в регистр данных приводит к к заполнению области вывода цветом очистки, при выводе блиттером область вывода заполняется цветом очистки.
1 и 2 не надо разделять. Проще подобрать 4 цвета для данного формата спрайта с маской для устранения клешинга.data_format - формат данных для вывода через регистр данных или блиттер:
0 - двуцветный вывод двумя первыми служебными цветами;
1 - двуцветный вывод двумя первыми служебными цветами с учётом маски;
2 - вывод служебными цветами;
Тут формат по одной точке для рисования картинок на экране ?3 - ВЫВОД ДВУБАЙТНЫМ ЗНАЧЕНИЕМ ЦВЕТА С УЧЁТОМ ПРОЗРАЧНОСТИ. Запись в регистр данных при таком формате последоватиельна - побайтово передаётся значение цвета.
Да, это пригодилось бы для блиттера, но он не пригоден для устранения клешинга атрибутов и отложен на второй этап разработки.alignment_value - значение ширины строки по которому происходит выравнивание данных блиттером при считывании данных из памяти.
bl_status - статус пересылки данных блиттером: 0 - пересылка закончена, 1 - пересылка идёт.
Пары регистров bl_addr_h:bl_addr_l - задают начало пересылаемой блиттером области данных внутри страницы( для регистра bl_addr_h биты 7 и 6 игнорируются).
bl_num_page - номер страницы в которой начинается область данных пересылаемой блиттером.
Адрес назначения во внутренней памяти видеокарты при пересылке блиттером вычисляется автоматически исходя из значений регистров xl, xh, yl, yh. Блиттер сам выравнивае выводимые данные в области вывода и определяет количество пересылаемых байт используя значения регистров dxl, dxh, dyl, dyh. Другими словами - со стороны памяти компьютера данные можно брать с выравниванеием или последовательно, а со стороны области вывода данные выводятся с выравниванием автоматически.
Так задумано для программно-аппаратного ускорения рисования спрайтов.
Соглашение о выводе через регистр данных:
Последовательная запись значений в регистр данных приводит к последовательному заполнению области вывода, определяемую регистрами xl, xh, yl, yh, dxl, dxh, dyl, dyh.
Вывод картинки из 8 слоев на телевизор занимает 8/14 времени. Значит на блиттер остается 6/14 времени. Частота работы статики 98 MHz. Если надо скопировать блиттером 224*256 точек, то при чтении из статической памяти это заняло бы (224*256*2*14) / (6*98) = 2,73 мс. При чтении из SDRAM и записи в SRAM копирование ускорится раза в два.Перезапись одного из перечисленных регистров приводит к началу последовательного вывода в начало новой области вывода. Что бы сделать сброс последовательного вывода и вернуться к выводу в начало области вывода не переопределяя последнюю - необходимо воспользоваться регистром out_control.
- - - Добавлено - - -
Если блиттеру дать команду скопировать область размером 224*256*2=114688 байт - экран в непосредственном режиме данных, то сколько времени будет происходить копирование?