logo
несколько программ / bsp33

Задать форму курсора в текстовом режиме

С помощью функции 0Ah программа может изменять форму курсора мыши в текстовом режиме.

Регистры на входе:

AX = 000Ah

BX = тип курсора:

0 - определяемый программно;

1 - определяемый аппаратно;

CX = маска экрана (для BX=0) или начальная строка курсора (для BX=1);

DX = маска курсора (для BX=0) или конечная строка курсора (для BX=1)

Регистры на выходе:

Регистры не используются

В зависимости от содержимого регистра BX драйвер мыши использует курсор, определяемый аппаратными средствами, либо курсор, определяемый программно. По умолчанию используется “программный курсор”, который отображается в виде символа с инвертированным значением атрибута. Курсор, сформированный аппаратными средствами, выглядит аналогично обычному текстовому курсору, его форма - прямоугольник. Размер этого прямоугольника можно задавать при помощи регистров CX и DX.

Для курсора, определяемого программно, вначале выполняется операция логического “И” над содержимым видеопамяти в том месте, куда указывает курсор, и маской экрана. Затем выполняется операция “Исключающее ИЛИ” с маской курсора.

Младший байт масок соответствует коду ASCII символа, старший - это байт атрибута символа.

Значения, используемые по умолчанию - BX=7700h, CX=FFFFh.

Если вам надо изменить цвет курсора, не меняя его форму, задайте CX=00FFh, BX=xx00h, где xx определяет цвет (смотри описание формата байта атрибутов в 21 томе «Библиотеки системного программиста», который называется «Программирование видеоадаптеров»).