Для управления видеокартой «METEOR-2013», которая предназначена для ускорения графики в
ZX SPECTRUM-совместимых компьютерах, разработаны простые и эффективные команды типа PRINT, PLOT, DRAW, POKE, PAPER, INK, BORDER, похожие по назначению на соответствующие команды BASICa.
Для указания места вывода на экран используются координаты X и Y. Спрайты загружаются
в память видеокарты и не занимают места в основной памяти компьютера. Во время игры с помощью соответствующих команд видеокарты спрайты копируются по номерам в указанные координаты экрана.
Спрайты можно накладывать друг на друга с использованием прозрачного цвета фона спрайта.
В одной игре можно использовать спрайты нескольких размеров. Имеется возможность задавать границы окна для печати спрайтов. При печати части спрайтов, выходящие за границы окна, обрезаются. Поверх спрайтов можно рисовать нужным цветом точками и линиями.
Параметры новых режимов - 256х192 и 320х240 точек, 255 цветов с палитрой + «прозрачный» цвет.
Два экрана - теневой и отображаемый. Координаты (0,0) в левом верхнем углу экрана.
Палитра - 3х6 бит (как BMP 256), размещена во внутренней памяти FPGA 256 * 18 бит.
Для команд работы с видеокартой «METEOR-2013» выделены адреса 5800H-58FFH в области атрибутов стандартного экрана ZX-SPECTRUM. Команда определяется по адресу, а данные, которые записывает Z80 по этому адресу, используются как параметры для этой команды. Команды в видеокарте накапливаются в буфере для исключения ожидания Z80 при выполнении сложных команд. Видеокарта затем выполняет накопленные команды из буфера.
История оптимизации команд для работы с видеокартой:
Код:130714-05 - глобальная оптимизация команд с целью ускорения заполнения экрана спрайтами 130711-01 - убраны команды задания границ копирования части спрайтов. Добавлены команды рисования точки 130707-01 - добавлены команды управления курсором. 130630-01 - координаты курсора на экране теперь могут быть отрицательными для автоматического обрезания спрайта при выходе за границу экрана. Координата Y теперь тоже состоит из старшего и младшего байта. 130629-02 - вместо команды установки младшего байта номера спрайта с копированием спрайта добавлены команты PRINT_AUTOINC_X, PRINT_AUTOINC_Y для печати спрайта с автоинкрементом координат. 130629-01 - Уточнение имен команд 130628 - В ходе написания примера работы с видеокартой уточнены названия команд и т.п. Также удобнее по одному адресу записывать номер команды, а по другому - значение этого параметра. Потом ПЛИС сможет записывать оба байта одним словом в буфер FIFO. 130624 - добавлен адрес спрайта с номером 0 130622 - вместо HL для адресации команд и данных теперь применятеся индексная адресация с IY 130621 - предложен буфер команд в FPGA для того чтобы не нужно было ждать готовности видеокарты. Запись команд и данных по адресу в HL.




Ответить с цитированием