Бордюр
Бордюр, Бордер (Border) - часть изображения в стандартном видеорежиме по краям экрана. В отличии от основной части может только изменять цвет (путём вывода значений в младшие 3 бита (D0-D2) порта #FE). При этом возможно использование только цветов 0..7, то есть обычной яркости. Цветовая палитра по значениям соотвествует цветам чернил (INK) и/или фона (PAPER) экрана.
Прорисовка всего видеоизображения (экрана вместе с бордюром) производится лучом развёртки телевизора/монитора сверху вниз, слева направа с частотой 50 Герц после прихода сигнала немаскируемого прерывания. Первые 80 строчек прорисовываются только цветом бордюра, после этого начинается смежная прорисовка экран/бордюр, причём экран находится приблизительно в центре между началом и концом строчки монитора/телевизора (длина всей строчки около 450 точек). После того как проходит ещё 192 строчки (высота типичного экрана ZX-Spectrum), заканчивается экран, и опять пририсовывается только бордюр, до конца кадра телевизора/монитора.
Существует специальный регистр, который хранит текущий цвет бордюра - генератор видео-сигнала использует его при прорисовке бордюра. Если при прорисовке бордюра поменять содержимое этого регистра (обновляя содержимое регистра бордюра посредством записи данных в порт #FE), то цвет бордюра в том месте, где находится луч телевизора/монитора, будет соответствовать новому значению регистра бордюра, в то время как в уже прорисованной части бордюр будет иметь цвет, соответствующий старому значению регистра бордюра.
Таким образом, выводя различные данные в порт #FE по некоторому графику, отсчитывая от начала прерывания, можно создавать на бордюре различные изображения, дополняя таким образом основной экран ZX-Spectrum. Эффекты, использующие подобную технику, называются бордюрными эффектами. Схожая техника используется при формировании Multicolor'ов. Простейший вид бордюрного эффекта возникает при работе стандартных процедур ввода-вывода на ленту - они формируют разноцветные горизонтальные полосы.
Операция смены цвета бордюра (вывода данных в порт #FE) занимает 11-12 тактов, а 1 такт процессора соответствует 2 точкам прорисованного экрана или бордюра. Поэтому минимальная ширина области, имеющей свой собственный цвет на бордюре примерно равна трём знакоместам (22-24 точки) для стандартной частоты ЦП (3,5 МГц).
Примеры
- Rage - демо с несколькими сложными бордюрными эффектами
Ссылки
- Об эффектах на бордюре и кое о чём ещё - статья из ZX Format #5