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

       

Системы с двумя видеоадаптерами


В некоторых случаях желательно или необходимо, чтобы компьютер имел два дисплея. Например, для отладки приложений, созданных с использованием SDK Windows можно применять отладчики CodeView и Symdeb. Данные отладчики при отладке приложений Windows нуждаются в компьютере, имеющем два дисплея. На одном дисплее отображается исходный текст отлаживаемого приложения и информация отладчика, а другой используется самим приложением.

Фирма IBM разработала свои адаптеры MDA и CGA так, что они могут одновременно подключаться к одному компьютеру. Подключение двух адаптеров стало возможным благодаря ипользованию различного адресного пространства для регистров и видеопамяти этих адаптеров.

Адресное пространство, используемое EGA можно изменять. При подключении EGA к монохромному дисплею, адресация регистров и видеопамяти соответствует MDA, а при подключении к цветному дисплею - CGA. Таким образом видеоадаптер EGA может одновременно работать как с MDA, так и с CGA.

Видеоадаптер EGA может работать вместе с другим видеоадаптером при выполнении следующих требований:

  • Дисплей одного видеоадаптера должен быть монохромным, другого - цветным.
  • Нельзя одновременно использовать два видеоадаптера EGA.
  • Таким образом, если EGA работает с цветным дисплеем, то вторым (дополнительным) видеоадаптером может быть MDA или Hercules, работающие с монохромным дисплеем. Если же EGA работает с монохромным дисплеем, то вторым видеоадаптером может быть CGA с цветным дисплеем:

    Рисунок 4.1 Системы с двумя дисплеями.

    Ниже представлена таблица, в которой перечислены все возможные комбинации видеоадаптеров, которые можно подключать к одному компьютеру:

     

    MDA



    CGA

    EGA

    VGA

    Hercules

    MDA

     

    +

    +

    +

     

    CGA

    +

     

    +

     

    +

    EGA

    +

    +

       

    +

    VGA

    +

         

    +

    Hercules

    +

    +

    +

       

    Таблица 4.1 Совместимые типы видеоадаптеров.

    Может возникнуть вопрос: какой дисплей будет использоваться MS-DOS для вывода информации? Этим дисплеем, называющимся первичным, может быть любой из двух дисплеев. Для изменения первичного дисплея используют команды MS DOS MODE CO80 и MODE MONO. Чтобы цветной дисплей стал первичным исполняют команду MODE CO80, а чтобы первичным стал монохромный дисплей - команду MODE MONO.

    Рисунок 4.2 Смена первичного дисплея.

    Программы, написанные на языках высокого уровня, применяют для отображения первичный дисплей или другими словами - консоль. Некоторые приложения - например LOTUS 1-2-3 и Autocad позволяют пользователю работать с каждым дисплеем безотносительно к тому, какой из дисплеев является первичным.

    Видеофункции BIOS переключаются между видеоадаптерами в соответствии с состоянием битов D4 и D5 флага конфигурации, расположенного по адресу 0000:0410.



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