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

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

Версия 14:58, 9 октября 2007

Бордюр, Бордер (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 - демо с несколькими сложными бордюрными эффектами

Ссылки