256x192 — различия между версиями

Материал из SpeccyWiki
Перейти к: навигация, поиск
Строка 1: Строка 1:
'''256x192''' - условное название стандартного видеорежима [[ZX Spectrum]]. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек. В памяти экран начинается с адреса #4000, и занимает 6144 байт плюс 768 байт атрибутов.
+
'''256x192''' - условное название стандартного видеорежима [[ZX Spectrum]]. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек.
 +
Блок 8x8 точек принято называть знакоместом, в связи с тем, что обычно такая область связана с одним из символов. По ширине в экран умещается 32 знакоместа, по высоте - 24 (в Бэйсике - только 22). Отсчёт принято проводить сверхну вниз, слева направо: самое верхнее левое знакоместо имеет адрес (x=0; y=0), самое верхнее правое - адрес (x=31; y=0), самое нижнее левое - адрес (x=0; y=24).
 +
Каждая точка экрана описывается 1 битом в экранной области. 8 таких бит образуют 1 байт. Старший бит в байте соответствует левой точке знакоместа, младший бит - правой. Одна полная пиксельная линия (256 точек) использует 32 байта экранной области. Таким образом суммарно монохромная часть занимает 6144 байт.
  
Экран занимает не весь телевизионный растр, только центральную его часть. Остальная часть называется [[бордюр]]ом, возможно изменение его цвета.
+
Атрибутная часть содержит 768 байт. Каждый байт атрибутов содержит в себе следующую информацию (побитово):
 +
FBPPPIII
 +
 
 +
- III - три бита цвета чернил (INK). Возможны следующие значения: 000 - чёрный, 001 - синий, 010 - красный, 011 - бордовый, 100 - зелёный, 101 - бирюзовый, 110 - жёлтый, 111 - белый
 +
 
 +
- PPP - три бита цвета фона (PAPER). Варианты аналогично INK.
 +
 
 +
- B - бит яркости. При включении этого бита добавляется яркость к каждому из цветов, кроме чёрного.
 +
 
 +
- Старший бит F - бит мерцания (flash). При его включении с периодичностью раз в секунду атрибуты выводятся в инвертированном виде - вместо INK выводится PAPER и вместо PAPER выводится INK.
 +
Бит F экранной области используется очень редко.
 +
 
 +
Использования бита яркости вместе с битами цветности INK и PAPER позволяет организовать на экране палитру из 15 цветов.
 +
 
 +
В памяти экран начинается с адреса #4000 (16384 десятичное)
 +
 
 +
Экранная область памяти нелинейна - она описывается черезполосно по третям.
 +
Первые 32 байта (адреса #4000-#401F) описывают верхние 256 точек экрана - вехние части знакомест (x=0..31; y=0).
 +
Следующие 32 байт (адреса #4020-#403F) описывает верхние 256 точек знакомест (x=0..31; y=1)
 +
Адреса #40E0-#40FF описывают верхние 256 точек знакомест (x=0..31; y=7).
 +
Следующие адреса (#4100-41FF)описывают вторые сверху линии точек знакомест (x=0..31; y=0..7)
 +
Полностью верхняя треть экрана описывается в указанном порядке адресами #4000-#47FF (знакоместа x=0..31; y=0..7)
 +
 
 +
Вторая (#4800-#4FFF)и третья (#5000-#57FF) треть экрана описываются таким же способом.
 +
Экран занимает не весь телевизионный растр, только центральную его часть. Остальная часть называется [[бордюр]]ом, возможно изменение его цвета, по схемам аналогичным INK и PAPER, только без указания яркости.
 +
 
 +
Следом идёт атрибутная область (#5800-#5AFF) - она имеет линейную структуру - слева направо и сверху вниз.
 +
 
 +
Вывод картинки на экран монитора/телевизора происходит с частотой в 50 Герц генератором видеоизображения.
 +
Вывод происходит последовательно, по ходу луча - слева направо, сверху вниз.
 +
Каждое знакоместо луч трассирует 8 раз - сверху вниз по пиксельной линии. При этом читается содержимое атрибутной и монохромной части, сливаясь они выводятся образуя пиксельную линию экрана телевизора/монитора.
 +
После первого прохода луча по знакоместу, содержимое атрибутной части может быть изменено. Это приведёт к тому, что при повторном проходе луча будет выведена полоска точек 1x8 другого, нежели в предыдущий раз, цвета. Таким образом, быстро меняя содержимое атрибутной области, можно получить знакоместо, в котором атрибутами будут задаваться цвета отдельной полоски точек 1x8.
 +
Это эффект получил название [[Multicolor]], и часто используется в самых различных программах, например в [[Demo]], в играх и т.д.
  
 
[[Категория:Видеорежимы]]
 
[[Категория:Видеорежимы]]

Версия 18:36, 8 октября 2007

256x192 - условное название стандартного видеорежима ZX Spectrum. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек. Блок 8x8 точек принято называть знакоместом, в связи с тем, что обычно такая область связана с одним из символов. По ширине в экран умещается 32 знакоместа, по высоте - 24 (в Бэйсике - только 22). Отсчёт принято проводить сверхну вниз, слева направо: самое верхнее левое знакоместо имеет адрес (x=0; y=0), самое верхнее правое - адрес (x=31; y=0), самое нижнее левое - адрес (x=0; y=24). Каждая точка экрана описывается 1 битом в экранной области. 8 таких бит образуют 1 байт. Старший бит в байте соответствует левой точке знакоместа, младший бит - правой. Одна полная пиксельная линия (256 точек) использует 32 байта экранной области. Таким образом суммарно монохромная часть занимает 6144 байт.

Атрибутная часть содержит 768 байт. Каждый байт атрибутов содержит в себе следующую информацию (побитово): FBPPPIII

- III - три бита цвета чернил (INK). Возможны следующие значения: 000 - чёрный, 001 - синий, 010 - красный, 011 - бордовый, 100 - зелёный, 101 - бирюзовый, 110 - жёлтый, 111 - белый

- PPP - три бита цвета фона (PAPER). Варианты аналогично INK.

- B - бит яркости. При включении этого бита добавляется яркость к каждому из цветов, кроме чёрного.

- Старший бит F - бит мерцания (flash). При его включении с периодичностью раз в секунду атрибуты выводятся в инвертированном виде - вместо INK выводится PAPER и вместо PAPER выводится INK. Бит F экранной области используется очень редко.

Использования бита яркости вместе с битами цветности INK и PAPER позволяет организовать на экране палитру из 15 цветов.

В памяти экран начинается с адреса #4000 (16384 десятичное)

Экранная область памяти нелинейна - она описывается черезполосно по третям. Первые 32 байта (адреса #4000-#401F) описывают верхние 256 точек экрана - вехние части знакомест (x=0..31; y=0). Следующие 32 байт (адреса #4020-#403F) описывает верхние 256 точек знакомест (x=0..31; y=1) Адреса #40E0-#40FF описывают верхние 256 точек знакомест (x=0..31; y=7). Следующие адреса (#4100-41FF)описывают вторые сверху линии точек знакомест (x=0..31; y=0..7) Полностью верхняя треть экрана описывается в указанном порядке адресами #4000-#47FF (знакоместа x=0..31; y=0..7)

Вторая (#4800-#4FFF)и третья (#5000-#57FF) треть экрана описываются таким же способом. Экран занимает не весь телевизионный растр, только центральную его часть. Остальная часть называется бордюром, возможно изменение его цвета, по схемам аналогичным INK и PAPER, только без указания яркости.

Следом идёт атрибутная область (#5800-#5AFF) - она имеет линейную структуру - слева направо и сверху вниз.

Вывод картинки на экран монитора/телевизора происходит с частотой в 50 Герц генератором видеоизображения. Вывод происходит последовательно, по ходу луча - слева направо, сверху вниз. Каждое знакоместо луч трассирует 8 раз - сверху вниз по пиксельной линии. При этом читается содержимое атрибутной и монохромной части, сливаясь они выводятся образуя пиксельную линию экрана телевизора/монитора. После первого прохода луча по знакоместу, содержимое атрибутной части может быть изменено. Это приведёт к тому, что при повторном проходе луча будет выведена полоска точек 1x8 другого, нежели в предыдущий раз, цвета. Таким образом, быстро меняя содержимое атрибутной области, можно получить знакоместо, в котором атрибутами будут задаваться цвета отдельной полоски точек 1x8. Это эффект получил название Multicolor, и часто используется в самых различных программах, например в Demo, в играх и т.д.