256x192

Материал из SpeccyWiki
Перейти к: навигация, поиск

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, в играх и т.д.