Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > 03c8h 03c9h работа с палитрой через порты


Автор: Lonley 16.5.2004, 00:07
привет!!
---------------------
просто нужна информация по этому поводу
как заносится цвет его формирования
я порылся у себя в справчнике у меня нет sad.gif
этой информации мжет поделитесь smile.gif
------------------

Автор: Serzh 17.5.2004, 00:09
пишешь в 03C8 - индекс (номер цвета), далее два варианта
1 - пишешь в 03C9 три байта (красный, зеленый, синий).
2 - читаешь из 03C9 три байта (красный, зеленый, синий).

составляющие цвета задаются в интервале от 0 до 63
номера цветов в 256 цветной палитре так и передаются
в 16 цветной порядок такой:
0..5 - 0..5
6 - 20
7 - 7
8..15 - 56..63

Автор: oleg1973 17.5.2004, 10:32
Цитата
составляющие цвета задаются в интервале от 0 до 63

гдето код видел как 255 градаций включать

Автор: Lonley 18.5.2004, 11:29
спасибо большое вот теперь понятно
oleg1973
может поищешь на досуге когда время будет код этот smile.gif

Автор: Jin X 18.5.2004, 20:08
Поправка: чтобы читать, нужно не в 3C8 писать, а в 3C7.
А вообще, можно 1 раз записать в 3C8 ноль (или другой начальный номер цвета), затем нужное кол-во раз писать в 3C9 группами по три.
Т.е. для задания цветам 0..63 оттенков серого (0-black, 63-white) делаем так:
Код
 mov dx,3C8h
 xor al,al
 out dx,al
 inc dx
@@next:
 out dx,al
 out dx,al
 out dx,al
 inc ax
 cmp al,63
 jbe @@next


Код
в 16 цветной порядок такой:
0..5 - 0..5
6 - 20
7 - 7
8..15 - 56..63
Это, кстати, тоже переопределяется:
Код
mov dx,3DAh
in al,dx
mov dx,3C0
mov al,0..F  ; номер цвета
out dx,al
mov al,Значение  ; 0..63
out dx,al

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)