256x192 — различия между версиями
GriV (обсуждение | вклад) |
Zxdn (обсуждение | вклад) (мде..) |
||
Строка 1: | Строка 1: | ||
'''256x192''' - условное название стандартного видеорежима [[ZX Spectrum]]. Разрешение в этом видеорежиме - 256 на 192 точек. Изображение в памяти хранится как монохромное, но возможно задание двух цветов (фона и изображения) для каждого из блоков 8x8 точек. | '''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 десятичное) | В памяти экран начинается с адреса #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, в играх и т.д.