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

Материал из SpeccyWiki
Перейти к: навигация, поиск
(мде..)
Строка 1: Строка 1:
 
'''256x192''' - условное название стандартного видеорежима [[ZX Spectrum]]. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек.
 
'''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 байт. Каждый байт атрибутов содержит в себе следующую информацию (побитово):
+
Блок 8x8 точек принято называть знакоместом, в связи с тем, что обычно такая область связана с одним из символов. По ширине в экран умещается 32 знакоместа, по высоте - 24. В [[Sinclair BASIC]] отсчёт принято проводить сверху вниз, слева направо: самое верхнее левое знакоместо имеет координаты (x=0; y=0), самое верхнее правое - (x=31; y=0), самое нижнее левое - (x=0; y=23).
FBPPPIII
+
  
- III - три бита цвета чернил (INK). Возможны следующие значения: 000 - чёрный, 001 - синий, 010 - красный, 011 - бордовый, 100 - зелёный, 101 - бирюзовый, 110 - жёлтый, 111 - белый
+
Каждая точка экрана описывается одним битом в экранной области. Восемь соседних по горизонтале точек хранятся в одном байте, при этом старший бит в байте соответствует левой точке знакоместа, младший бит - правой. Одна полная строка (256 точек) использует 32 байта экранной области. Суммарно монохромная часть занимает 6144 байт.
  
- PPP - три бита цвета фона (PAPER). Варианты аналогично INK.
+
Атрибутная часть содержит 768 байт и определяет цвета фона и изображения для каждого из знакомест. Байт атрибутов содержит в себе следующую информацию (побитово):
  
- B - бит яркости. При включении этого бита добавляется яркость к каждому из цветов, кроме чёрного.
+
*'''D0'''..'''D2''' - три бита цвета "чернил" (INK) - установленных бит в области монохромного изображения. Возможны следующие значения:
 +
**000 - чёрный
 +
**001 - синий
 +
**010 - красный
 +
**011 - бордовый
 +
**100 - зелёный
 +
**101 - бирюзовый
 +
**110 - жёлтый
 +
**111 - белый
 +
*'''D3'''..'''D5''' - три бита цвета "фона" (PAPER). - сброшенных бит в области монохромного изображения. Цвета кодируются аналогично INK.
 +
*'''D6''' - бит яркости. При включении этого бита яркость цветов в знакоместе повышается (одновременно для INK и PAPER), кроме чёрного цвета.
 +
*'''D7''' - бит мерцания (FLASH). При его включении с периодичностью раз в секунду отображаемые цвета INK и PAPER меняются местами.
  
- Старший бит F - бит мерцания (flash). При его включении с периодичностью раз в секунду атрибуты выводятся в инвертированном виде - вместо INK выводится PAPER и вместо PAPER выводится INK.
+
Использование бита яркости вместе с битами цвета INK и PAPER позволяет отображать на экране до 15 цветов (так как чёрный цвет не меняет яркость).
Бит F экранной области используется очень редко.
+
 
+
Использования бита яркости вместе с битами цветности INK и PAPER позволяет организовать на экране палитру из 15 цветов.
+
  
 
В памяти экран начинается с адреса #4000 (16384 десятичное)
 
В памяти экран начинается с адреса #4000 (16384 десятичное)

Версия 04:51, 9 октября 2007

256x192 - условное название стандартного видеорежима ZX Spectrum. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек.

Блок 8x8 точек принято называть знакоместом, в связи с тем, что обычно такая область связана с одним из символов. По ширине в экран умещается 32 знакоместа, по высоте - 24. В Sinclair BASIC отсчёт принято проводить сверху вниз, слева направо: самое верхнее левое знакоместо имеет координаты (x=0; y=0), самое верхнее правое - (x=31; y=0), самое нижнее левое - (x=0; y=23).

Каждая точка экрана описывается одним битом в экранной области. Восемь соседних по горизонтале точек хранятся в одном байте, при этом старший бит в байте соответствует левой точке знакоместа, младший бит - правой. Одна полная строка (256 точек) использует 32 байта экранной области. Суммарно монохромная часть занимает 6144 байт.

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

  • D0..D2 - три бита цвета "чернил" (INK) - установленных бит в области монохромного изображения. Возможны следующие значения:
    • 000 - чёрный
    • 001 - синий
    • 010 - красный
    • 011 - бордовый
    • 100 - зелёный
    • 101 - бирюзовый
    • 110 - жёлтый
    • 111 - белый
  • D3..D5 - три бита цвета "фона" (PAPER). - сброшенных бит в области монохромного изображения. Цвета кодируются аналогично INK.
  • D6 - бит яркости. При включении этого бита яркость цветов в знакоместе повышается (одновременно для INK и PAPER), кроме чёрного цвета.
  • D7 - бит мерцания (FLASH). При его включении с периодичностью раз в секунду отображаемые цвета INK и PAPER меняются местами.

Использование бита яркости вместе с битами цвета 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, в играх и т.д.