Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие Макушкиной по МОЯ.doc
Скачиваний:
46
Добавлен:
16.11.2019
Размер:
1.33 Mб
Скачать

6.1 Графический режим

Для генерации цветных изображений в графическом режиме используются минимальные точки растра - пиксели или пэлы (pixel).

При среднем разрешении каждый байт представляет четыре точки, пронумерованных от 0 до 3:

Байт: |C1 C0|C1 C0|C1 C0|C1 C0|

Пиксели: 0 1 2 3

В любой момент для каждой точки возможны четыре цвета, от 0 до 3. Ограничение в 4 цвета объясняется тем, что двухбитовая точка имеет 4 комбинации значений битов: 00, 01, 10 и 11. Можно выбрать значение 00 для любого из 16 возможных цветов фона или выбрать значение 01, 10, и 11 для одной из двух палитр. Каждая палитра имеет три цвета:

C1 C0 Палитра 0 Палитра 1

0 0 фон фон

0 1 зеленый голубой

1 0 красный сиреневый

1 1 коричневый белый

Для выбора цвета палитры и фона используется INT 10H. Таким образом, если, например, выбран фон желтого цвета и палитра 0, то возможны следующие цвета точки: желтый, зеленый, красный и коричневый. Байт, содержащий значение 10101010, соответствует красным точкам. Если выбрать цвет фона - синий и палитру 1, то возможные цвета: синий, голубой, сиреневый и белый. Байт, содержащий значение 00011011, отображает синюю, голубую, сиреневую и белую точки.

6.2 Прерывание bios int 10h для графики

Функция AH=00 команды INT 10H устанавливает графический режим. Функция AH=11 команды INT 10H позволяет выбрать цвет палитры и вывести на экран графический символ. Код в регистре AH определяет функцию:

AH=00: Установка режима. Нулевое значение в регистре AH и 04 в pегистре AL устанавливают стандартный цветной графический режим:

MOV AH,00 ;Функция установки режима

MOV AL,04 ;Разрешение 320х200

INT 10H

Установка графического режима приводит к исчезновению курсора с экрана. Подробности по установке режима приведены в главе 9.

AH=0BH: Установка цветовой палитры. Число в регистре BH определяет назначение регистра BL:

BH=00 выбирает цвета фона и бордюра в соответствии с содержимым регистра BL. Цвет фона от 1 до 16 соответствует шест. значениям oт 0 до F; BH=01 выбирает палитру соответственно содержимому регистра BL (0 или 1):

MOV AH,0BH ;Функция установки цвета

MOV BH,01 ;Выбор палитры

MOV BL,00 ; 0 (зеленый, красный, корич.)

INT 10H ;Вызвать BIOS

Палитра, установленная один раз, сохраняется, пока не будет отменена другой командой. При смене палитры весь экран меняет цветовую комбинацию. При использовании функции AH=0BH в текстовом режиме, значение, установленное для цвета 0 в палитре, определяет цвет бордюра.

AH=0CH: Вывод точки на экран. Использование кода 0C в регистре AH позволяет вывести на экран точку в выбранном цвете (фон и палитра). Например, для разрешения 320х200 загрузим в регистр DX вертикальную координату (от 0 до 199), а в регистр CX - горизонтальную координату (от 0 до 319). В регистр AL поместим цвет точки (от 0 до 3):

MOV AH,0CH ;Функция вывода точки

MOV AL,цвет ;Цвет точки

MOV CX,столбец ;Горизонтальная координата

MOV DX,строка ;Вертикальная координата

INT 10H ;Вызвать BIOS

AH=0DH: Чтение точки с экрана. Данная функция позволяет прочитать точку для определения ее цвета. В регистр DX должна быть загружена вертикальная координата (от 0 до 199), а в регистр CX - горизонтальная (от 0 до 319). В регистре AH должно быть значение 0D. Функция возвращает цвет точки в регистре AL.