Бордюр — различия между версиями

Материал из SpeccyWiki
Перейти к: навигация, поиск
м
 
(не показано 6 промежуточных версии этого же участника)
Строка 1: Строка 1:
'''Бордюр''', '''Бордер''' ('''Border''') - часть изображения в [[256x192|стандартном]] видеорежиме по краям экрана. В отличии от основной части может только изменять цвет (путём вывода значений в младшие 3 бита (''D0-D2'') порта [[Порт 254|#FE]]). При этом возможно использование только цветов 0..7, то есть обычной яркости. Цветовая палитра по значениям соотвествует цветам чернил (INK) и/или фона (PAPER) [[256x192|экрана]].
+
[[Изображение:Border.gif|thumb|320px|Полосы на бордюре, формируемые процедурой работы с лентой]]
 +
'''Бордюр''', '''Бордер''' ('''Border''') - часть изображения в [[256x192|стандартном]] видеорежиме по краям экрана. В отличие от основной части экрана эта область может только изменять цвет. Область бордюра требовалась для обеспечения нормальной читаемости символов на экранах телевизоров, которые использовались в качестве мониторов для домашних компьютеров начала 1980-х годов.
  
Прорисовка всего видеоизображения (экрана вместе с бордюром) производится лучом развёртки телевизора/монитора сверху вниз, слева направа с частотой 50 Герц после прихода сигнала немаскируемого [[прерывания]]. Первые 80 строчек прорисовываются только цветом бордюра, после этого начинается смежная прорисовка экран/бордюр, причём экран находится приблизительно в центре между началом и концом строчки монитора/телевизора (длина отображаемой части строки до 384 пикселей). После того как проходит ещё 192 строчки (высота [[256x192|экрана]] [[ZX-Spectrum]]), заканчивается экран, и опять пририсовывается только бордюр, до конца кадра телевизора/монитора.
+
Область бордюра по вертикали занимает первые 63..80 строк от начала кадра и оставшуюся часть после 192 строк основной области. По горизонтали бордюр занимает область слева и справа от основной области. Ширина одной полной строки растра ZX Spectrum - 384 точек, из которых 256 точек в центральной части занимает основная область, а остальные точки занимает бордюр. Точные значения [[256x192#Тайминги|отличаются]] для разных моделей оригинального [[ZX Spectrum]] и его клонов.
  
Существует специальный регистр, который хранит текущий цвет бордюра - генератор видео-сигнала использует его при прорисовке бордюра. Если при прорисовке бордюра поменять содержимое этого регистра (обновляя содержимое регистра бордюра посредством записи данных в порт [[Порт 254|#FE]]), то цвет бордюра в том месте, где находится луч телевизора/монитора, будет соответствовать новому значению регистра бордюра, в то время как в уже прорисованной части бордюр будет иметь цвет, соответствующий старому значению регистра бордюра.
+
Цвет бордюра изменяется путём вывода значений в младшие 3 бита (''D0-D2'') порта [[Порт 254|#FE]]). При этом возможно использование только цветов 0..7, то есть обычной яркости. Номера цветов совпадают с номерами, используемыми в [[атрибут]]ах.
  
Таким образом, выводя различные данные в порт [[Порт 254|#FE]] по некоторому графику, отсчитывая от начала прерывания, можно создавать на бордюре различные изображения, дополняя таким образом [[256x192|основной экран]] [[ZX Spectrum]]. Эффекты, использующие подобную технику, называются ''бордюрными эффектами''. Схожая техника используется при формировании [[Multicolor|Multicolor'ов]]. Простейший вид бордюрного эффекта возникает при работе стандартных процедур ввода-вывода на ленту - они формируют разноцветные горизонтальные полосы.  
+
При проходе луча развёртки по растру, при отображении каждого пикселя видеоконтроллер читает цвет бордюра из хранящего его регистра. Если изменять цвет бордюра во время прохода луча по растру, можно создавать на бордюре различные изображения. Эффекты, использующие подобную технику, называются ''бордюрными эффектами''. Схожая техника используется при формировании [[Multicolor|Multicolor'ов]]. Простейший вид бордюрного эффекта возникает при работе стандартных процедур ввода-вывода на ленту - они формируют разноцветные горизонтальные полосы.  
  
Операция смены цвета бордюра (вывода данных в порт [[Порт 254|#FE]]) занимает 11-12 тактов, а 1 такт процессора соответствует 2 точкам прорисованного экрана или бордюра. Поэтому минимальная ширина области, имеющей свой собственный цвет на бордюре примерно равна трём [[знакоместо|знакоместам]] (22-24 точки) для стандартной частоты ЦП (3,5 МГц).
+
Для синхронизации программы с ходом луча требуется использовать [[прерывание]], генерируемое видеоконтроллером в начале отображения кадра. Операция смены цвета бордюра (вывода данных в порт [[Порт 254|#FE]]) занимает 11-12 тактов процессора, один такт соответствует проходу луча по двум точкам растра. Поэтому минимальная ширина области, имеющей свой собственный цвет на бордюре примерно равна трём [[знакоместо|знакоместам]] (22-24 точки) для стандартной тактовой частоты процессора (3,5 МГц).
  
 
== Примеры ==
 
== Примеры ==
*[[Rage]] - демо с несколькими сложными бордюрными эффектами
+
*[[Rage (демо)|Rage]] - демо с несколькими сложными бордюрными эффектами
*[[QARX]] - игра 1989 года с текстом на бордюре
+
*[[QARX]] - игра [[1989]] года с текстом на бордюре
  
 
== Ссылки ==
 
== Ссылки ==
* [http://zxdn.narod.ru/coding/zf5bordr.txt Об эффектах на бордюре и кое о чём ещё] - статья из [[ZX Format]] #5
+
*[http://zxdn.narod.ru/coding/zf5bordr.txt Об эффектах на бордюре и кое о чём ещё] - статья из [[ZX Format]] #5
  
 
[[Категория:Видеорежимы]]
 
[[Категория:Видеорежимы]]
 +
[[Категория:Термины]]

Текущая версия на 22:09, 23 сентября 2008

Полосы на бордюре, формируемые процедурой работы с лентой

Бордюр, Бордер (Border) - часть изображения в стандартном видеорежиме по краям экрана. В отличие от основной части экрана эта область может только изменять цвет. Область бордюра требовалась для обеспечения нормальной читаемости символов на экранах телевизоров, которые использовались в качестве мониторов для домашних компьютеров начала 1980-х годов.

Область бордюра по вертикали занимает первые 63..80 строк от начала кадра и оставшуюся часть после 192 строк основной области. По горизонтали бордюр занимает область слева и справа от основной области. Ширина одной полной строки растра ZX Spectrum - 384 точек, из которых 256 точек в центральной части занимает основная область, а остальные точки занимает бордюр. Точные значения отличаются для разных моделей оригинального ZX Spectrum и его клонов.

Цвет бордюра изменяется путём вывода значений в младшие 3 бита (D0-D2) порта #FE). При этом возможно использование только цветов 0..7, то есть обычной яркости. Номера цветов совпадают с номерами, используемыми в атрибутах.

При проходе луча развёртки по растру, при отображении каждого пикселя видеоконтроллер читает цвет бордюра из хранящего его регистра. Если изменять цвет бордюра во время прохода луча по растру, можно создавать на бордюре различные изображения. Эффекты, использующие подобную технику, называются бордюрными эффектами. Схожая техника используется при формировании Multicolor'ов. Простейший вид бордюрного эффекта возникает при работе стандартных процедур ввода-вывода на ленту - они формируют разноцветные горизонтальные полосы.

Для синхронизации программы с ходом луча требуется использовать прерывание, генерируемое видеоконтроллером в начале отображения кадра. Операция смены цвета бордюра (вывода данных в порт #FE) занимает 11-12 тактов процессора, один такт соответствует проходу луча по двум точкам растра. Поэтому минимальная ширина области, имеющей свой собственный цвет на бордюре примерно равна трём знакоместам (22-24 точки) для стандартной тактовой частоты процессора (3,5 МГц).

Примеры

  • Rage - демо с несколькими сложными бордюрными эффектами
  • QARX - игра 1989 года с текстом на бордюре

Ссылки