Программирование видеоадаптеров



         

Вывод пиксела - функция 0Ch


Использование функций BIOS для создания изображений, в частности для отображения отдельных пикселов, хотя и медленнее, чем прямая запись в видеопамять и программирование регистров, но более надежно с точки зрения совместимости для различных режимов и видеоадаптеров.

Функция используется в графических режимах для записи пиксела заданного цвета в любую страницу видеопамяти. Необходимо отметить, что у видеоадаптера CGA в графических режимах определена только одна страница видеопамяти.

Формат вызова функции 0Ch представлен ниже:

На входе:

AH

0Ch

AL

Номер цвета (значение ячейки видеопамяти, соответствующее пикселу)

BH

Номер страницы (для видеоадаптера CGA не используется)

CX

Координата X пиксела

DX

Координата Y пиксела

На выходе:

Не используются

Во всех режимах (кроме режима номер 13h) если бит D7 регистра AL содержит единицу, то новый пиксел накладывается на текущее содержимое экрана по логике булевой операции ИСКЛЮЧАЮЩЕЕ ИЛИ.

Номера цветов, которые можно использовать в различных режимах, перечислены в таблице, приведенной ниже. Цвета, соответствующие номерам цветов в таблице можно посмотреть в главе "Режимы работы видеоадаптеров".

Номер режима

Используемые номера цветов

4, 5

0 - 3

6

0 и 1

0Dh

0 - 15

0Eh

0 - 15

0Fh

0 и 1

10h

0 - 15

Начало системы координат находится в левом верхнем углу экрана. Оси координат направлены следующим образом: ось X - вправо, ось Y - вниз. Далее, если особо не оговорено, мы всегда будем использовать эту систему координат.

Программа, представленная в листинге 5.2, демонстрирует использование функций выбора цветовой палитры и вывода пиксела.

Листинг 5.2. Файл BIOS_C.C

#include <dos.h>

#include <stdio.h>

#include <conio.h>

void main(void);

void main(void) {

 

union REGS         inregs, outregs;

 

unsigned char   i, j;

 

// Устанавливаем режим 4  видеоадаптера




Содержание  Назад  Вперед