Программирование видеоадаптеров CGA, EGA и VGA

       

Управление режимом (MCR) (индекс17h)


Регистр содержит набор битов, управляющих контроллером ЭЛТ.

  • D7 Если бит равен нулю, то горизонтальный и вертикальный обратный ход луча невозможен.
  • D6 Если данный бит равен единице, то установлен байтовый режим, а если он равен нулю - двух-байтовый. Двух-байтовый режим поддерживает разделение данных между двумя цветовыми слоями. VGA дополнительно поддерживает четырех-байтовый режим (см. регистр ULR).


  • D6 D5 00 01
      MA0 MA13 MA15
      MA1 MA0 MA0
      MA2 MA1 MA1
      MA3 MA2 MA2
      MA4 MA3 MA3
      MA5 MA4 MA4
      MA6 MA5 MA5
      MA7 MA6 MA6
      MA8 MA7 MA7
      MA9 MA8 MA8
      MA10 MA9 MA9
      MA11 MA10 MA10
      MA12 MA11 MA11
      MA13 MA12 MA12
      MA14 MA13 MA13
      MA15 MA14 MA14

    Таблица 8.11 Преобразование адреса.

    Бит D5 равен нулю только для видеоадаптеров EGA с объемом видеопамяти 64К байт. При этом происходит сцепление слоев в графических режимах с высоким разрешением.

  • D4 Если бит равен единице, то все выходные линии контроллера ЭЛТ переводятся в третье состояние. Этот бит используется только при тестировании видеоадаптера.
  • D3 Если бит равен нулю, то счетчик адреса регенерации изображения увеличивается на единицу на каждое знакоместо экрана, а если бит равен единице, то на каждые два знакоместа.
  • D2 Бит может использоваться для увеличения в два раза вертикальной разрешающей способности. Если бит равен нулю, то счетчик числа линий экрана увеличивается после каждого обратного горизонтального хода луча, а если бит равен единице, то после каждых двух.
  • D1 Используется при эмуляции графических режимов видеоадаптера Hercules. Запись в этот бит нуля приводит к замещению бита D14 адресного регистра битом D1 из регистра счетчика горизонтальных строк.
  • D0 Используется при эмуляции графических режимов CGA. Запись в этот бит нуля приводит к выделению в видеопамяти двух областей по 8 Кбайт. Одна содержит даннные для четных, а другая для нечетных строк экрана. Это достигается путем замещения бита D13 адресного регистра битом D0 из регистра счетчика горизонтальных строк.


  • Содержание раздела