Бордюр — различия между версиями
Zxdn (обсуждение | вклад) |
GriV (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Бордюр''', '''Бордер''' ('''Border''') - часть изображения в [[256x192|стандартном]] видеорежиме по краям экрана. В отличии от основной части может только изменять цвет (путём вывода значений в | + | '''Бордюр''', '''Бордер''' ('''Border''') - часть изображения в [[256x192|стандартном]] видеорежиме по краям экрана. В отличии от основной части может только изменять цвет (путём вывода значений в младшие 3 бита (''D0-D2'') порта [[Порт 254|#FE]]). При этом возможно использование только цветов 0..7, то есть обычной яркости. Цветовая палитра по значениям соотвествует цветам чернил (INK) и/или фона (PAPER) [[256x192|экрана]]. |
− | + | Прорисовка всего видеоизображения (экрана вместе с бордюром) производится лучом развёртки телевизора/монитора сверху вниз, слева направа с частотой 50 Герц после прихода сигнала немаскируемого прерывания. Первые 80 строчек прорисовываются только цветом бордюра, после этого начинается смежная прорисовка экран/бордюр, причём экран находится приблизительно в центре между началом и концом строчки монитора/телевизора (длина всей строчки около 450 точек). После того как проходит ещё 192 строчки (высота типичного [[256x192|экрана]] [[ZX-Spectrum]]), заканчивается экран, и опять пририсовывается только бордюр, до конца кадра телевизора/монитора. | |
− | + | Существует специальный регистр, который хранит текущий цвет бордюра - генератор видео-сигнала использует его при прорисовке бордюра. Если при прорисовке бордюра поменять содержимое этого регистра (обновляя содержимое регистра бордюра посредством записи данных в порт [[Порт 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 - демо с несколькими сложными бордюрными эффектами
Ссылки
- Об эффектах на бордюре и кое о чём ещё - статья из ZX Format #5