Для EGA-карты все эти регистры доступны только для чтения; VGA-адаптер поддерживает и запись, и чтение.

Проиллюстрируем это на процессе установки регистра битовой маски (Bit Mask) (установка остальных регистров проводится аналогично).

void setBitMask (char mask)
{
writeReg (EGAJ3RAPHICS, EGA_BITJv1ASK, mask);
}

4.7.2. Sequencer (порты 3C4-3C5)

Из регистров этой группы мы рассмотрим только регистр маски плоскости (Map Mask) и номер 2.

Процедура setMapMask устанавливает значение регистра маски плоскости. Рассмотрим, как проходит работа с видеопамятью.

При операции чтения байта из видеопамяти читаются сразу 4 байга - по одному из каждой плоскости. При этом прочитанные значения записываются в специальные регистры - "защелки" (latch-регистры), для прямого доступа недоступные. Байт, прочитанный процессором, является комбинацией значений latch-регистров.

При операции записи посланный процессором байт накладывается на значения btch-регистров по правилам, определяемым значениями других регистров, а результирующие 4 байта записываются ь соответствующие плоскости.

Так как при записи используются значения latch-регистров, то часто необходимо, чтобы перед записью в них находились исходные значения тех байтов, котоКомпьютерная графика. Полигональные модели рые затем изменяются. Это часто приводит к необходимости осуществлять чтение байта по адресу перед записью по этому адресу нового значения.

Правила, определяющие наложение при записи посланных процессором данных на значения latch-регистров, определяются установленным режимом записи, и, соответственно, режим чтения задает способ, которым определяется значение, прочитанное процессором.

Видеокарта EGA поддерживает два режима чтения и три режима записи; у карты VGA есть еще один дополнительный режим записи.

Установка режимов чтения и записи осуществляется записью соответствующих значений в регистр Mode. Бит 3 отвечает за режим чтения, биты 0 и 1 - за режим записи.

Функция setRWMode служит для установки режимов чтения и записи.

4.8. Режимы чтения


⇐ Предыдущая| |Следующая ⇒