Сообщение от
ivagor
Может есть штатный способ с помощью оператора или функции бейсика, но я его не знаю/не помню.
В Бейсике Корвета есть оператор LUT, который в качестве аргумента принимает целочисленный массив с указанием начального индекса. Массив должен содержать (начиная с указанного индекса) последовательность из 16 физических цветов, определяющих все 16 логических.
Например, если требуется задать один цвет текста для всех графических слоев, то можно сделать это так:
Код:
10 LET QL = 5 :REM Цвет текста
20 DIM P%[15] :REM Целочисленный массив из 16 элементов
30 FOR I=0 TO 7
40 P%[I] = I :REM Цвета графики не меняем
45 P%[I+8] = QL :REM Задаем цвет для всех АЦЗУ-шных цветов
50 NEXT
60 LUT P%[0] :REM применяем палитру, начиная с нулевого индекса массива
Вообще, весьма удобный оператор: можно задать в одном массиве все необходимые программе цветовые схемы и переключать их одной короткой командой в любой момент. Или делать всякие эффекты с затуханиями/мерцаниями, один раз рассчитав всю последовательность смены палитры, не занимаясь пересчетами и программированием порта LUT вручную.