ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 6 5. VGA и другие режимы ----------------------------------------------------------------- Большая часть аппаратного обеспечения вычислительной техники разрабатывается с учетом совместимости, таким образом, чтобы аппаратное и программное обеспечение с появлением новых версий не становилось абсолютно бесполезным. Именно поэтому плата VGA дублирует функции предыдущих экранных адаптеров IBM, за исключением режимов PC Jr. Данная глава рассматривает все видео-режимы, воспроизводимые VGA. Режимы 0 - 17 и 19 остались "в наследство" от старых экранных адаптеров. И только режим 18 является специфическим режимом платы VGA. Режим 19 был впервые разработан для IBM PS/2-30, но стал доступным на PC посредством платы VGA. Мы также рассмотрим графический режим Hercules, так как в последующих главах мы вернемся к нему. 5.1 Видео-режимы и демонстрационные программы ----------------------------------------------------------------- Чтобы избежать путаницы, номер режима в имени некоторых программ дается в шестнадцатиричном представлении. Например, 0F соответствует видео-режиму IBM 15. Большинство примеров представляет собой компилированные Паскаль-программы. Поэтому в активную директорию должны быть помещены файлы Графического интерфейса Borland (HERC.BGI, CGA.BGI, EGACGA.BGI и ATT.BGI). Это не требуется делать для демонстрационных программ MOFRE0D, MODE10O, MODE13, MODE13- и MODE13S, поскольку они были написаны с использованием авторских расширений Паскаля. Компилированная версия каждой из этих программ имеет расширение .EXE. ----------------------------------------------------------------- MODE01.PAS: Демонстрация текстового режима 0/1 (MDA/CGA/Hercules) MODE02.PAS: Демонстрация IBM-режима 2/3 (EGA, текстовый 80*25) MODE03B.PAS: Демонстрация IBM-режима 3+ (VGA, текстовый 80*50) MODE04.PAS: Демонстрация IBM-режима 4 (320*200, CGA-графика) MODE05.PAS: Демонстрация IBM-режима 5 (320*200, CGA-графика) MODE06.PAS: Монохромный IBM-режим 6 (640*200, CGA-графика) MODE07.PAS: IBM-режим 7 (монохромный) (720*350, текстовый EGA) MODE0D.PAS: Демонстрация IBM-режима 13 (320*200, EGA-графика) MODE0E.PAS: Демонстрация IBM-режима 14 (640*200, EGA-графика) MODE0F.PAS: Монохромный IBM-режим 15 (640*350, EGA-графика) MODE10.PAS: Демонстрация IBM-режима 16 (640*200, EGA-графика) MODE10V.PAS: Демонстрация с VGA и манипуляциями палитрой MODE10-.PAS: Демонстрация с дополнительными манипуляциями VGA MODE10O.PAS: Демонстрация (файлы Графического интерфейса Borland (BGI) не нужны MODE11.PAS: Демонстрация IBM-режима 17 (640*480, EGA-графика) MODE12.PAS: Демонстрация IBM-режима 18 (640*200, VGA-графика) MODE12V.PAS: Демонстрация с VGA и манипуляциями палитрой MODE12-.PAS: Демонстрация с дополнительными манипуляциями VGA MODE12V2.PAS: Демонстрация с дополнительными манипуляциями VGA MODE13.PAS: Демонстрация IBM-режима 19 (320*200, 256 цветов) MODE13S.PAS: Демонстрация с дополнительными манипуляциями VGA MODEATT.PAS: Демонстрация режима ATT с высоким разрешением MODEHER.PAS: Монохромный графический режим Hercules (720*348) MODEHC-.PAS: Демонстрация с дополнительными манипуляциями VGA ----------------------------------------------------------------- 5.2 Специализации видео-режимов IBM ----------------------------------------------------------------- Команда DOS "MODE" позволяет прямой доступ лишь к нескольким конфигурациям и видео-режимам. Вы можете с ее помощью установить режимы от 0 до 3 с числом символов 40 или 80, цветные или черно-белые. Также возможна монохромная конфигурация. Гораздо большая гибкость достигается при вызове видео-режимов из языков программирования. Последние версии Бейсика, Паскаля и Си позволяют устанавливать из программы большинство видео-режимов. QuickBASIC имеет команду SCREEN с параметром "Mode", в котором можно задать номер текущего видео-режима. Параметр Mode может быть в диапазоне от 1 до 4 и от 7 до 13. Переход между текстовыми режимами выполняется командой WIDTH. Эта команда принимает параметры для задания числа строк и числа символов в строке. Для этого же служит команда SCREEN в Turbo BASIC. В Turbo Pascal и C обозначение режимов по номерам от 0 до 19 IBM исключено. Эти языки имеют сокращенные имена режимов и конфигураций, например монохромному видео-режиму 15 соответствует имя "EGAMONOHI". Ни один язык программирования не может вызвать все видео-режимы VGA без некоторых ухищрений. За исключением QuickBASIC версии 4.5, видео-режим IBM 19 (шестнадцатиричное 13) недостижим, а видио-режим IBM 13 (шестнадцатиричное 0D) может быть установлен только окружным путем. Эти два режима имеют относительно низкое разрешение 320*200 пикселей. Режим 13 имеет 16 цветов, а режим 19 позволяет выбрать до 256 цветов в общей палитре из 262144 цветов. Представленные в данном руководстве расширения языка программирования дают возможность получить доступ к режиму 19 (шестнадцатиричное 13), который также носит название многоцветного режима MCGA. 5.3 Специальные свойства графического режима Hercules ----------------------------------------------------------------- Хотя текстовый режим Hercules (монохромный) очень похож на текстовые режимы IBM, монохромный видео-режим с высоким разрешением платы Hercules не совместим ни с DOS, ни с IBM. Помимо всего прочего, это означает, что при включении этого режима весь экранный вывод DOS будет разрушен. Команда DOS "CLS" не очищает экран нормальным образом. То же самое с DOS-зависимыми командами Бейсика, Паскаля и Си. В большинстве VGA-совместимых плат этот режим может быть включен через монохромный режим IBM 7. Графические платы Hercules получили довольно широкое распространение, и несмотря на их несовместимость с DOS, большая часть программного обеспечения поддерживает их. Популярные графические программы могут использовать этот режим высокого разрешения. Данное руководство предлагает расширение языка Паскаль для всех пользователей различных графических плат Hercules. Эти дополнительные команды моделируют (насколько это возможно) вмдео-режим VGA 19. многие цвета платы VGA выводятся серыми тонами. Платам Hercules посвящена целая глава данной книги. 5.4. Уменьшенный шрифт для графических режимов ----------------------------------------------------------------- Использование большого числа цветов требует большого объема экранной памяти. Графические адаптеры решают эту проблему за счет компромисса между цветностью и разрешением. Чем больше используется цветов, тем ниже будет разрешение. Вот почему многоцветный режим 19 использует 256 цветов из 262144, но имеет разрешение только 320*200 пикселей. При текстовом выводе обычный, совместимый с IBM и DOS режим выводит на экран 25*40 символов. По сравнению с предлагаемыми данной платой замечательными цветовыми характеристиками такой шрифт выглядит слишком крупным и раздражающим. В этом случае полезно иметь более мелкий шрифт. Однако, для этого не используются функции BIOS знакогенератора. Это связано с тем, что BIOS не позволяет выводит один и тот же символ несколькими цветами. Функция вывода уменьшенного шрифта позволяет сразу работать с тремя цветами. Пользователь не может выбрать один из них произвольно. Он выбирается программой из текущей палеты как цвет сглаживания. В режиме 19 могут быть использованы процедуры Turbo Pascal MINPRINT, MINITEXTXY и GLASSPRINT. С небольшими поправками они могут работать во всех режимах IBM и Hercules. Уменьшенный текст демонстрируется программой MODE09.PAS. Для доступа и манипулирования режимом 13 (шестнадцатиричное 0D) пришлось создать новую программу, поскольку ни одна из существующих версий Паскаля не работает напрямую с этим режимом низкого разрешения EGA. 5.5 EGA- и CGA-вариации режима VGA ----------------------------------------------------------------- Платы CGA и EGA имеют фиксированные палитры с возможностью выбора до 64 цветов. Как вы уже знаете, вы можете запустить VGA в режимах CGA и EGA. Все правила, определяющие работу этих режимов на платах CGA и EGA, действительны и для платы VGA. Дополнительное свойство платы VGA состоит в том, что расширенные функции VGA-BIOS также могут работать в этих старых видео-режимах. Это позволяет выбирать цвета в общей палитре из 262144 цветов. Плата VGA не только работает в этих старых режимах, но и позволяет их улучшить их. Поскольку манипуляции VGA с этими режимами не могут быть воспроизведены на самих платах CGA и EGA, мы фактически имеем дело с вариациями этих старых видео-режимов. Демонстрационные программы, использующие эти дополнительные функции, идентифицируются лишней буквой в имени программы. На поставляемых с данной книгой дискетах находятся следующие программы: ----------------------------------------------------------------- MODE03B.PAS: Демонстрация IBM-режима 3+ (VGA, текстовый 80*50) MODE10V.PAS: Демонстрация IBM-режима 16 (640*200, EGA-графика) MODE10-.PAS: Демонстрация с дополнительными манипуляциями VGA MODE10O.PAS: Демонстрация (файлы Графического интерфейса Borland (BGI) не нужны) MODE12V.PAS: Демонстрация IBM-режима 18 (640*480, VGA-графика) MODE12-.PAS: Демонстрация с дополнительными манипуляциями VGA MODE12V2.PAS: Демонстрация с дополнительными манипуляциями VGA MODE13-.PAS: Многоцветный режим 19 (320*200, MCGA-графика) MODE13S.PAS: Демонстрация с дополнительными манипуляциями VGA ----------------------------------------------------------------- |