mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
ЛР12. Обновление описания цветовой палитры VGA
This commit is contained in:
@@ -647,12 +647,18 @@ _Рисунок 4. Карта памяти vga-модуля_
|
||||
* нулевой символ первой строки — `0x0000_1050`
|
||||
* нижний правый символ — `0x0000_195F`
|
||||
|
||||
Цветовая схема каждой позиции состоит из двух цветов: цвета фона и цвета символа. Оба эти цвета выбираются из палитры 8 цветов, каждый из которых содержит два оттенка: цвет на полной яркости и цвет на половинной яркости (см. рис. 5). Один из цветов — черный, оба его оттенка представляют собой один и тот же цвет. Ниже приведены коды цветов их rgb-значения:
|
||||
Цветовая схема каждой позиции состоит из двух цветов: цвета фона и цвета символа. Оба эти цвета выбираются из палитры 8 цветов, каждый из которых содержит два оттенка: цвет на полной яркости и цвет на уменьшенной яркости (см. рис. 5). Один из цветов — черный, оба его оттенка представляют собой один и тот же цвет. Ниже приведены коды цветов их rgb-значения:
|
||||
|
||||

|
||||
|
||||
_Рисунок 5. Цветовая палитра vga-модуля_
|
||||
|
||||
Код цвета формируется следующим образом: старший бит определяет яркость оттенка цвета. Оставшиеся 3 бита кодируют используемый канал:
|
||||
|
||||
* 0 бит кодирует использование синего канала;
|
||||
* 1 бит кодирует использование зеленого канала;
|
||||
* 2 бит кодирует использование красного канала.
|
||||
|
||||
Таким образом, для установки цветовой схемы, необходимо выбрать два цвета из палитры, склеить их (в старших разрядах идет цвет символа, в младших — цвет фона) и записать получившееся 8-битное значение по адресу выбранной позиции в диапазоне адресов цветовой схемы (color_map).
|
||||
|
||||
К примеру, мы хотим установить черный фоновый цвет и белый цвет в качестве цвета символа для верхней левой позиции. В этом случае, мы должны записать значение `f0` (f(15) — код белого цвета, 0 — код черного цвета) по адресу `0x0000_1000` (нулевой адрес в диапазоне `color_map`).
|
||||
|
Reference in New Issue
Block a user