Предлагается для обсуждения вариант палитры совместимый с палитрой АТМ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 возможных комбинаций трёх компонент) (Значения инверсны!)
|
Больше цветов! |
Идея расширения палитры состоит в использовании старших битов адреса порта #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. |