§ Пины

Активных пинов, которые можно использовать, всего несколько.
Интерфейсные
  • clock — тактовая частота 25 мгц
  • reset_n — сброс видеопроцессора при =0
  • cmd — строб (из 0 в 1) на активацию работы видеопроцессора
  • page — активная экранная страница (0 или 1), куда будет писать данные
  • bsy — сигнал занятости модуля, если 1 — модуль выполняет программу из буфера программ
Работа с памятью
  • tx, ty — адрес текстуры (максимум 256 на 256)
  • td — входящие данные от памяти текстур
  • a — адрес видеопамяти (до 256 кб)
  • i,o,w — вход, выход, сигнал записи

§ Принцип работы

Модуль оперирует памятью на 256 Кб, которая разделена на три части:
  • 00000 — 0FFFF Видеостраница 0, 64Кб
  • 10000 — 1FFFF Видеостраница 1, 64Кб
  • 20000 — 3FFFF Буфер команд, до 128Кб
В видеостраницах содержатся данные о цветовом буфере и эти страницы могут быть и меньше чем 64Кб. В буфере команд, который начинается с 128К адреса, необходимо записывать из основного процессора команды и инструкции, которые будут выполняться по сигналу CMD.

§ Коды команд

01 LINE   (word:x1, word:y1, word:x2, word:y2), byte:color      Нарисовать линию (x1,y1)-(x2,y2) с цветом color
02 BLOCK  (word:x1, word:y1, word:x2, word:y2), byte:color      Не закрашенный блок цветом color
03 BLOCKF (word:x1, word:y1, word:x2, word:y2), byte:color      Закрашенный блок
04 POLY   (word:x2, word:y2), byte:color                        Дорисовать предыдущую линию до -(x2,y2) цветом color
05 CIRCLE (word:x, word:y), word:radius, byte:color             Рисовать окружность в центре (x,y), радиусом radius, цвет color
06 CIRCLEF(word:x, word:y), word:radius, byte:color             Закрашенная окружность
07 BITBLT (byte:tx, byte:ty, byte:tw, byte:th, word:x, word:y, word:w, word:h)
           Рисовать блок размером (w,h) в точке (x,y)
           Текстура начинается в текстурном буфере в точке (tx,ty), размер (tw,th) включительно.