Системное программное обеспечение персональных ЭВМ


Пример 3



Пример 3

H R G B h r g b,

где h, r, g, b - соответственно яркостная, красная, зеленая, синяя составляющие цвета символа; R, G, B - красная, зеленая, синяя составляющие цвета фона; H - атрибут мигания (или яркостная составляющая цвета фона). Таким образом, комбинация hrgb определяет номер одного из 16 возможных цветов отображения символов.

Формируя коды символов и их цветовые атрибуты и записывая их в видеопамять, программист может обеспечить практически мгновенную смену изображения на экране терминала. Адрес видеопамяти, по которому расположено слово, описывающее знакоместо с координатами (x, y), вычисляется как:

B800 : 160y+2x,

если считать, что верхнее левое место экрана имеет координаты (0, 0).

Первая часть примера 9.3, используя прямую запись в видеопамять, выводит на экран все возможные комбинации цветов символа и фона. Вторая часть этого примера демонстрирует дополнительные возможности управления цветом.

Выше бит H цветового атрибута был назван атрибутом мерцания: если этот бит включен, то символ на этом знакоместе мерцает. Именно такая интерпретация бита H включена по умолчанию. Таким образом, для фона возможны 8 цветов, но с мерцанием или без него. Но есть возможность заставить работать бит H как яркостную составляющую, что расширяет набор фоновых цветов до 16.

Функция 0x10, подфункция 3 (AL=3) служит для переключения режима интерпретации старшего бита цветового атрибута как признака мерцания (BL=1) или яркостной составляющей (BL=0).

Функция 0x10, подфункция 0 позволяет выбрать палитру - задать цвет для любого из 16 возможный кодов цветового атрибута. При этом цвет выбирается из 64 возможных комбинаций (палитр), задаваемых байтом такого формата:




- Начало -  - Назад -  - Вперед -