| Вариант палитры |
Предлагается для обсуждения вариант палитры совместимый с палитрой АТМ2 (Turbo2+), но расширенный до четырёх бит на компоненту (всего 4096 комбинаций/цветов).
В первую очередь это ориентированно на компьютеры имеющие режим "цвет на точку"(16C) (Pentagon1024SL22), но может использоваться и в других компьютерах в обычном ZX-режиме.
|
| Как происходит программирование цвета в АТМ2? |
Порт палитры "висит" на том же адресе, что и системный регистр BetaDiskInterface (#FF). Запись в его разрешается одним из битов системного порта АТМ (сигнал PEN2 порта #77).
Номер цвета, предназначенного для программирования, выставляется на бордюр. АТМ2 имеет 16 цветов бордюра. "Четвертый" бит - это инверсный сигнал A3. Т.о. для установки номеров 0..7 записываем это число в порт #FE, а для записи номеров 8..15 записываем номер-8 в порт #F6.
Пока на экране отображается бордюр, программируем через порт #FF значения компонент для выставленного номера цвета (удобно/логично это делать сразу после прерывания).
Значение битов порта #FF для АТМ2:
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| g | r | b | G | 1 | 1 | R | B |
b r g и B R G соответственно младшие и старшие биты значений для компонент (2 бита на компоненту и 64 возможных комбинаций трёх компонент) (Значения инверсны!)
(так же см. это стр.19-20)
|
| Больше цветов! |
Идея расширения палитры состоит в использовании старших битов адреса порта #xxFF для дополнительных бит компонент.
Это будет выглядеть так:
| A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 |
| G0 | R0 | B0 | G1 | 1 | 1 | R1 | B1 |
|
|
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| G2 | R2 | B2 | G3 | 1 | 1 | R3 | B3 |
|
Т.е. например, G0 - самый младший бит зелёной компоненты, а G3 - самый старший. (Значения инверсны!)
|
| Пример. |
Был доработан Pentagon1024SL2.2 по следующей схеме:

(Штатные R42..R47 и VD17..VD19 удалены)
ЛА2 - выборка порта #FF (пока сделано так, что порт палитры находится в области открытых портов)
ТМ2 - "четвёртый" бит бордюра (BRIGHT на бордюре в Z-состоянии)
Одна из проблем - как добыть сигнал гашения (BLANK) из ПЛИС. Предлагается два варианта:
1) Если нет проблем при работе TR-DOS в режиме турбо, то для BLANK можно задействовать вывод 15 DD3.
2) Если использовать внешний генератор(делитель) для тактовой частоты AY/YM (сигнал X2), то для BLANK можно задействовать вывод 45 DD3.
Прошивка EPM7128 с сигналом BLANK на выводе 15
Прошивка EPM7128 с сигналом BLANK на выводе 45
Модифицированная прошивка GLUK 6.4 с установкой палитры (использовать вместе с TR-DOS 6.10E)
SETPAL.asm Пример установки готовой палитры из таблицы
BRGtoPAL.asm Пример вычисления и установки палитры из отдельных компонент
SHOWPAL.scl палитры переключаются клавишами 1..5
RADIAL.scl "вращение" палитры
PALCLC.scl "калькулятор" палитры (ZX версия)
PALCLC_w32.zip "калькулятор" палитры (Win32 версия) (~150Kb)
GIRL.scl картинка для ZX-экрана с палитрой (программный multicolor 8x2, Q_A_O_P)
ART.scl картинки для режима 16C с палитрой (~620Kb)
|
| Как это выглядит? |
Изображения захвачены с реального компьютера.
02, 04, 08,
10, 12, 21,
27, 38, 39,
girl JPG (~50..100Kb)
02, 04, 08,
10, 12, 21,
27, 38, 39,
girl BMP (~300..460Kb)
PALCLC.avi (H264, ~70Kb)
SHOWPAL.avi (H264, ~370Kb)
RADIAL.avi (XviD, ~190Kb)
Осциллограмма серой шкалы
|
| Планы. |
Данная схема для Pentagon1024SL2.2 собрана по временному варианту.
Над чем стоит подумать:
1) На сколько оставлять совместимой эту схему с АТМ2? Т.е. убрать порт в область TR-DOS или нет?
2) "Разрешитель" (PEN2) на порту #77 сделать на рассыпухе будет сложно. Может спрятать палитру за Глюковскими часами? (7 бит #EFF7) (половинка ТМ2 свободна, сигнал выбора EFF7 на плате есть;)
|
| Плюсы/минусы. |
+ Применение одного из существующих стандартов, совместимость(полная/частичная) с АТМ2. Софт будет использовать одни и теже куски кода для разных клонов.
+ При апгрейде самого АТМ2 (всего две микросхемы + новые ЦАПы), полная совместимость с оригинальной палитрой 64 цвета.
- относительная сложность апгрейда на 155РУ2 и их труднодоставаемость.
|