Цитата Сообщение от Lethargeek Посмотреть сообщение
Не, тогда 8 уровней серого не получишь.

Тогда уж так (ненулевой критерий):
r0=((r2 or r1) and rb0) or (rb0 and not(r2 or r1 or b2 or b1))
b0=((b2 or b1) and rb0) or (rb0 and not(r2 or r1 or b2 or b1))

Правое в скобках нужно для учета ситуации, когда все старшие биты R=B=0. Кстати немножко наврал, для некоторых "чистых" цветов самый темный оттенок получится слегка "грязноватым", хотя вряд ли будет сильно заметно (2DDp: для gr0 - заметнее, просто ярче).
А вот чисто глобальный вопрос - а вообще какая 256я палитра нужна Спеку? А то чёт вас на серых оттенках зациклило.. а мож они вообще нафик нужны - для серого есть же режим W&3Greyscale per pixel или вообще Gigascreen+..