ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 5

4.  Расширения команд DOS
-----------------------------------------------------------------
В этой главе мы расскажем, как можно расширить DOS, добавив в него
набор внешних команд. Мы добавим в текущую директорию DOS 
несколько новых .EXE-файлов. Добавление этих внешних команд никак 
не влияет на внутреннюю, резидентную в памяти часть DOS. После
выполнения внешних команд и программ интерпретатор команд
операционной системы возвращается к приглашению DOS.

4.1  Пример программ для DOS
-----------------------------------------------------------------

     При создания новых команд  для  DOS  следует  придерживаться
следующих рекомендаций:

     Напишите программу на Паскале или на Си,  скомпилируйте ее и
сохраните. Программа может иметь команды  для  приема  и  анализа
параметров, передаваемых  ей в командной строке.  Программа может
работать, передавая или  не  передавая  параметры  функциям  BIOS
через вызовы прерываний.

     В Паскале   многие   написанные   таким   образом  программы
действуют только в качестве средства передачи параметров из DOS в
улучшенный VGA BIOS.

     Следующий исходный  код  становится  работающей командой DOS
после компиляции в среде Turbo Pascal (версий  4.0  -  5.5).  При
вызове из командной  строки  DOS  без параметров скомпилированная
программа включает режим IBM 19 (MCGA/VGA).

     Этот режим обычно называют многоцветным  режимом  MCGA,  так
как он  позволяет  выводить 256 цветов из общей палитры в 262,144
цветов.

    Рассмотрим поближе  исходный  код.  Оператор  Uses   вызывает
модуль Pascal  DOS.  Модули  Pascal  Graph  и  Crt не вызываются,
поскольку в  режиме  19  они   бесполезны.   Далее   определяются
регистры, и  значения  вводятся  в регистровые переменные.  Вызов
прерывания 16 и передача значения 0 в в  старшем  байте  регистра
вызывает функцию  BIOS  установки  видео-режима.  Более подробную
информацию о функциях и под-функциях BIOS см. в предыдущей главе.

     Эта программа имеет два  дополнительных  свойства,  полезных
при вызове режима 19:

     Кроме номера  видео-режима,  передаваемого во втором старшем
регистре  прерывания,  также  устанавливается  седьмой  бит  ("OR
128"). Он  говорит  BIOS,  что  не нужно очищать экран при вызове
нового видео-режима.  Содержимое экрана останется без  изменений,
несмотря на  то,  что изменился режим.  Второе свойство состоит в
том, что  эта  команда  может  быстро  восстановить  256   цветов
стандартной палитры, если ее вызвать, когда система уже находится
в режиме 19.

     Ниже приводится листинг на  Паскале  для  новой  команды  DOS
"VMODE19.EXE":

Program VMode19;      { команда DOS, без ввода параметров }
 uses dos;            { обращение к нужным модулям Паскаля }
 var                  { определение переменных: }
 Regs: Registers;     { регистры прерывания AH,AL,BH,BL,C... }
 begin                { начало главной части программы }
   with Regs do begin { подготовка регистров к прерыванию }
   AL:= 19 or 128;    { включение режима 19, без очистки экрана }
   AH:= 00 ;          { функция: установка видео-режима }
 end;                 { конец цикла с регистрами }
 Intr(16,Regs);       { вызов и выполнение прерывания 16 }
end.                  { конец программы }

     Следующий пример программы показывает команду DOS, с которой
можно манипулировать  параметрами,  вводимыми   пользователем   в
командной строке DOS. Синтаксис этой команды:

     BLEND цвет1 B G R цвет2 B G R

     Главное различие  этой  программы  от  "VMODE19"  состоит  в
вызове функции BIOS из специальной процедуры на Паскале.

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

     Команда "Blend" используется для изменения нескольких цветов
палитры сразу.  Требуемые параметры - это номер первого цвета для
изменения и значения его голубой (B),  зеленой (G) и красной  (R)
цветовых компонент.  Те  же  параметры  следуют  после последнего
цвета для изменения (цвет2).  Затем происходит изменение цветов с
номерами от цвет1 до цвет2.

     В видео-режимах  с  номерами  в  палитре  от 2 до 16 команда
может быть выполнена только если номера цветов  и  их  позиции  в
палитре соответствуют   (см.  описание  команды  "Table:"  ниже).
Несмотря на  ограниченное   число   номеров   в   палитрах   этих
видео-режимов, команда  "Blend"  будет  работать  без  каких-либо
других ограничений.

     Номера между заданными цветами  1  и  2  получат  переходные
значения цветов,  благодаря  чему  достигается гладкий переход от
цвета1 к цвету2.

     В видео-режиме 19 цвет1 и цвет2 могут иметь номера от  0  до
255. В   других   видео-режимах   допустимы   номера   от   0  до
максимального значения для данной палитры с 2,  4 или 16 цветами.
Цвет2 должен  быть  больше  цвета1,  Значения  цветовых компонент
голубого (B),  зеленого (G) или красного (R) это  соответствующие
значения интенсивности компоненты.  Они могут иметь значения от 0
до 63.  Если вы ввели неверное  значение,  программа  примет  его
равным ближайшему к нему максимальному или минимальному значению.

     Ниже приводится    листинг   Паскаль-программы   для   новой
программы DOS "BLEND.EXE":

Program Blend;                { команда DOS, без ввода параметров }
 uses dos;                    { обращение к нужным модулям Паскаля }
 var                          { определение глобальных переменных }
 MM: array[0..9] of integer;  { параметры командной строки }
 i,x: Integer;

Procedure Palette(ColorNumber,Blue,Green,Red: Integer);
 var
 Regs: Registers;             { определение внутренних переменных }
 begin
   if Blue>63 then Blue:=63; if Blue<0 then Blue:=0;
   if Green>63 then Green:=63; if Green<0 then Green:=0;
   if Red>63 then Red:=63; if Red<0 then Red:=0;
    with Regs do begin  { подготовить регистр к прерыванию }
     AL := $10;         { функция BIOS: установка регистра цвета }
     AH := $10;         { установка регистра палитры }
     BX := ColorNumber; { номер устанавливаемого цвета }
     CL := Blue;        { значение для голубой цветовой компоненты }
     CL := Green;       { значение для зеленой цветовой компоненты }
     CL := Red;         { значение для красной цветовой компоненты }
    end;                { конец цикла с регистрами }
   Intr($10,regs);      { вызов и выполнение прерывания 16 }
 end;

Procedure Blend(Color1,Blue1,Green1,Red1,
 Color2,Blue2,Green2,Red2: Byte);
 var                    { определение внутренних переменных }
 x,No,Bl,Gr,Re: Integer;{ для номеров цвета и значений компонент }
 begin                  { начало программного сегмента процедуры }
   n := Color2 - Color1;{ число манипулируемых цветов }
 for x:=0 to n do begin { исключая отрицательные числа }
   if n>0 then begin    {цикл изменения палитры }
     Bl:= (Blue1*(n-x) + Blue2*(x)) div n;
     Gr:= (Green1*(n-x) + Green2*(x)) div n;
     Re:= (Red1*(n-x) + Red2*(x)) div n;
   end;
     Palette(Color1+x,Bl,Gr,Re); { вызов процедуры }
 end; end;                       { конец цикла и процедуры }

 begin                        { начало главной программы }
  if Paramcount=0 then exit;  { выход, если нет параметров }
  for x:=0 to Paramcount do Val(ParamStr(x),MM[x],i);
                              { чтение и интерпретация ввода }
  Blend(MM[1],MM[2],MM[3],MM[4],MM[5],MM[6],MM[7],MM[8]);
                              { выполнение процедур/конец }
 end.

4.2  Команды VGA-DOS
------------------------------------------------------------------

Команда Расширение  Описание                                Режим
----------------------------------------------------------------------
ANTIALIA    .EXE  Сгладить цвета в области                (Режим 19)
BACKGROUND  .EXE  Задать цвет фона                        (Все режимы)
BALL        .EXE  Нарисовать многоцветный шар             (Режим 19)
BLEND       .EXE  Задать переход из оттенка в оттенок для (Все режимы)
                  диапазона палитры
BLOCK       .EXE  Нарисовать одноцветный блок             (Режим 19)
BORDER      .EXE  Задать цвет рамки                       (Все режимы)
CGAPALET    .EXE  Разрешить палитру CGA                   (Режим 0/1)
CGATEXT     .EXE  Разрешить текстовый режим CGA           (Режим 0/1)
CIRCLE      .EXE  Нарисовать одноцветный эллипс           (Режим 19)
COLUMN      .EXE  Нарисовать многоцветный столбец         (Режим 19)
DIMMING     .EXE  Уменьшить/увеличить яркость цвета       (Все режимы)
DIMPERC     .EXE  Уменьшить/увеличить яркость палитры (%) (Все режимы)
DISK        .EXE  Нарисовать одноцветный диск             (Режим 19)
EGAPALET    .EXE  Разрешить палитру EGA                   (Режим 2/3)
EGATEXT     .EXE  Разрешить текстовый режим EGA           (Режим 2/3)
FEATHER     .EXE  Нарисовать многоцветную линию           (Режим 19)
FRAME       .EXE  Нарисовать одноцветный прямоугольник    (Режим 19)
GREY        .EXE  Преобразовать цвета в оттенки серого    (Все режимы)
HORIZONTAL  .EXE  Нарисовать многоцветную горизонтальную  (Режим 19)
                  линию
JANSPALETTE .EXE  Пользовательская настройка палитры      (Все режимы)
LINE        .EXE  Нарисовать одноцветную линию            (Режим 19)
LOADASCII   .EXE  Загрузить в память ASCII-файл      (Текстовые режимы)
PALETTE     .EXE  Изменить цвет палитры                   (Все режимы)
PLOT        .EXE  Нарисовать цветной пиксель              (Режим 19)
SARAPALETTE .EXE  Пользовательская настройка палитры      (Все режимы)
SAVE        .EXE  Сохранить многоцветную графику          (Режим 19)
SAVEASCII   .EXE  Сохранить экран как ASCII-файл     (Текстовые режимы)
SHOW        .EXE  Загрузить многоцветную графику          (Режим 19)
SHOWPALETTE .EXE  Очистить экран/показать цвета палитры   (Режим 19)
SMOCIRCLE   .EXE  Сглаживает цвета эллипса                (Режим 19)
SMOOTH      .EXE  Сглаживает цвет пикселя                 (Режим 19)
SPHERE      .EXE  Нарисовать многоцветную сферу           (Режим 19)
STANDARD    .EXE  Восстановить стандартную палитру        (Все режимы)
TABLE       .EXE  Назначить цвета номерам                 (Все режимы)
TEXTCOLOR   .EXE  Выбрать цвет текста                (Текстовые режимы)
VGAPALET    .EXE  Разрешить 80x50 VGA с палитрой          (Режим 3+)
VGATEXT     .EXE  Разрешить текстовый режим 80x50 VGA     (Режим 3+)
VMODE       .EXE  Изменить видео-режим               (Цветные режимы)
VMODE19     .EXE  Разрешить видео-режим 19                (Режим 19)
VMODES      .EXE  Изменить видео-режим при помощи меню    (Все режимы)
WAIT        .EXE  Ожидание ввода с клавиатуры             (Все режимы)
ZEROKEY     .EXE  Очистить буфер клавиатуры               (Все режимы)
----------------------------------------------------------------------

4.3  Обзор команд VGA-DOS
-----------------------------------------------------------------

     Для запуска   этих   команд  необходимо  вводить  их  имя  в
командной строке  DOS  с  параметрами  (если  команда   принимает
параметры).

     Многие из  этих  команд  работают во всех режимах платы VGA.
Некоторые команды служат для переключения между режимами.  Многие
графические команды  работают  только  в  режиме  19 плат VGA или
MCGA. Две команды используются  для  загрузки  файлов  графики  в
режиме 19.  Две  дополнительные  команды  служат для сохранения и
загрузки ASCII-файлов  в  конкретных   видео-режимах.   Подробные
описания команд  и  принимаемых  ими  параметров  даются  ниже  в
алфавитном порядке.

ANTIALIA.EXE (сглаживание цветов области - режим 19)
-----------------------------------------------------------------

     Синтаксис: ANTIALIA X1 Y1 X2 Y2

     Эта команда может работать только после включения режима  19
плат VGA  или  MCGA.  Этот  режим  имеет палитру из 256 различных
цветов, которую можно выбрать из общей палитры в 262144 цветов.

     Команда "ANTIALIA"  эффективно  использует  эти  цвета.   Ее
функция состоит  в  сглаживании  цветов  в  прямоугольной области
экрана. Различия  и  контрастность  цветов  сглаживаются  в  этой
области путем  сравнения  соседних  точек  и  нахождения  для них
переходных оттенков.

     Параметры "X1",  "Y1",  "X2" и "Y2" задают верхний  левый  и
нижний правый  углы  прямоугольной области,  соответственно.  Эти
параметры разделяются пробелами и вводятся по  приглашению  DOS  в
командной строке после имени команды.

     Эти координаты  могут  иметь  любые  значения,  допустимые в
режиме 19.  Это от 0 до 319 для координаты x и от 0  до  199  для
координаты y.

     При вводе неверных значений координат программа сама изменит
их, сделав   равными   ближайшим   допустимым   максимальным   или
минимальным значениям. Команда не будет выполнена, если не заданы
параметры. Если координаты введены в неверной последовательности,
то программа  сама  поменяет  из местами.  Областями экрана также
можно манипулировать командами "BLOCK" (рисует одноцветный  блок)
и "COLUMN" (рисует многоцветный столбец).

     Сглаживание цветов  может  также  быть  выполнено  командами
"SMOOTH" (сглаживает цвет точки) и "SMOCIRCLE" (сглаживает  цвета
в окружности).

BACKGROUND.EXE (Задать цвет фона - все режимы)
-----------------------------------------------------------------

     Синтаксис: BACKGROUND B G R

     Эта команда  может  быть  использована во всех режимах платы
VGA. Она также работает, если ваша плата VGA находится в одном из
текстовых или  графических  регистров старых графических плат IBM
(MDA, CGA, EGA), однако сами эти старые платы не позволяют такого
рода манипулирование цветом.

     Данная команда  особенно  хорошо  соответствует  специальным
свойствам платы VGA, так как позволяет выбрать цвет фона из общей
палитры в 262144 цветов.

     Эта команда   требует   задание  трех  параметров  командной
строки: цветовые компоненты "B" (голубой),  "G",  (зеленый) и "R"
(красный). Каждый из этих параметров может иметь значение от 0 до
63, что соответствует 64*64*64=262144 цветам общей палитры.

     См. команду "PALETTE" ниже.  Если вы устанавливаете командой
PALETTE цвет номер 0,  это то же самое,  что использовать команду
BAKGROUND. Это происходит вследствие того,  что номер  палитры  0
всегда соответствует цвету фона.

BALL.EXE (Нарисовать многоцветный шар - режим 19)
-----------------------------------------------------------------

     Синтаксис: BALL Mx My Rx Ry Цвет1 Цвет2 Mix

     Это специализированная графическая  команда,  предназначенная
для использования  в  видео-режиме  IBM  19  (т.е.  перед запуском
команды вы должны активизировать видео-режим 19 командами  "VMODE
19" или "VMODE19".)

     Параметры командной  строки  состоят  из  четырех координат,
двух цветов и коэффициента смешивания.  "Mx"  и  "My"  определяют
точку  центра  шара,  а  "Rx" и "Ry" - радиус по x и по y.  Цвета
заполнения "Цвет1" и "Цвет2" берутся из текущей палитры VGA.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

     Коэффициент смешивания  "Mix"  задает переход между цветами.
"Mix=1" означает,  что для выбранного цвета соседние с ним  цвета
палитры будут использованы в равных пропорциях. "Mix=0" означает,
что соседние цвета не смешиваются с  установленным  цветом,  т.е.
коэффициент смешивания не действует.

     Для преобразования  цветного  диска в шар,  который выглядит
трехмерным, команда "BALL" должна быть скомбинирована с  командой
"BLEND" (см.  листинг  программы  выше в тексте и описание ниже).
Последняя сглаживает переходы между цветами в палитре  от  Цвета1
до Цвета2.

     Если Цвет1  и Цвет2 достаточно далеко отстоят друг от друга,
команда BALl  дает  сглаженные   переходы   между   цветами   при
закрашивании.

     Ниже мы также рассмотрим команду "SPHERE".  Эта команда тоже
рисует шарообразные объекты,  однако шаблон заполнения создается,
внутренним образом устанавливая область выбранной палитры.

BLEND.EXE (Переход между оттенками цветов в диапазоне палитры -
           все режимы)
-----------------------------------------------------------------

     Синтаксис BLEND C1 B G R C2 B G R

     Команда сразу  изменяет несколько цветов палитры.  Параметры
командной строки начинаются номером первого изменяемого  цвета  с
заданными для него цветовыми компонентами голубого (B),  зеленого
(G) и красного (R).

     Затем идет номер последнего изменяемого цвета палитры и  его
компоненты.

     В режиме  19  палитра  VGA  имеет 256 цветов.  Команда BLEND
позволяет изменить сразу любой диапазон палитры.

     В видео-режимах с числом цветов в палитре от  2  до  16  эта
команда может  быть использована после того,  как номера цветов и
их позиции в  палитре  соотнесены  командой  TABLE.  Несмотря  на
ограниченный набор цветов в этих режимах, команда BLED может быть
использована без каких-либо ограничений.

     BLEND заполняет цвета от C1 до C2 переходными  оттенками,  и
таким образом  достигается  гладкий  переход  от  одного  цвета к
другому.

     Параметры С1 и С2  могут  принимать  следующие  значения.  В
режиме 19  они  могут  лежать  в диапазоне от 0 до 255.  В других
видео-режимах этот параметр может иметь значения от 0 до 2, 4 или
16. С2 должен быть больше С1.  "B" (голубой), "G" (зеленый) и "R"
(красный) это отдельные  цветовые  компоненты.  Они  могут  иметь
значения интенсивности от 0 до 63.

     При задании  недопустимой  величины  программа автоматически
установит параметр   равным    ближайшему    максимальному    или
минимальному значению.

BLOCK.EXE (Нарисовать одноцветный блок - режим 19)
-----------------------------------------------------------------

     Синтаксис: BLOCK X1 Y1 X2 Y2 цвет

     Эта команда работает после того, как будет включен режим 19.
Команда Block  выбирает  для рисования одноцветного блока один из
256 цветов этого режима.

     Подобно другим  функциям,   параметры   представляют   собой
координаты углов блока и цвет заполнения.

     Координаты X1  и  Y1  должны  следовать  за именем команды в
командной строке  DOS  и  разделяться  пробелами.  Эти  параметры
определяют верхний левый угол блока. X2 и Y2 задают нижний правый
угол блока.

     Режим 19 позволяет задавать координаты по х от 0 до  319,  а
по y от 0 до 199.

     Можно задать  блок,  часть  которого лежит вне видимой части
экрана, и тогда этот блок будет виден лишь частично.

     Программа сама  преобразует  неверно  заданные  значения   к
соответствующим минимальным   или  максимальным  значениям.  Если
параметры не заданы,  то команда  не  работает.  Если  координаты
заданы в неверной последовательности (например, "BLOCK 200 100 10
10"), то  программа  автоматически   переставит   их   правильным
образом.)

     Для манипуляций прямоугольными областями также предназначены
команды ANTALIA (для сглаживания цветов в прямоугольной  области)
и COLUMN (рисует цветной столбец).

BORDER.EXE (Задать цвет рамки - все режимы)
-----------------------------------------------------------------

     Синтаксис: BORDER цвет

     Команда работает во всех видео-режимах платы VGA.  Она также
работает,  если ваша плата VGA находится в одном из текстовых или
графических регистров старых  графических  плат  IBM  (MDA,  CGA,
EGA).

     Параметр "Цвет"  задает  цвет  из текущей палитры VGA.  Этот
номер вводится через пробел после имени команды.

     Несмотря на простой способ ввода, вам доступен любой цвет из
палитры в  262144  цветов.  Вы  должны сперва установить желаемый
цвет в палитре командой PALETTE.

     Команда BORDER  не  позволяет  отдельно  задавать   цветовые
компоненты голубого,  зеленого  и красного.  Это отличает команду
BORDER от таких команд,  как BACKGROUND и TEXTCOLOR, хотя и те, и
другие служат для изменения цвета.

CGAPALET.EXE (Включают палитру CGA - режим 0/1)
-----------------------------------------------------------------

     Синтаксис: CGAPALETTE

     Выполнение этой команды начинается с установки  видео-режима
0/1. В  этом смысле она аналогична команде CGATEXT.  Однако,  при
помощи CGAPALETTE вы можете создать палитру,  состоящую из  любых
16 цветов из общего диапазона в 262144 цветов.

     Выполнение этой  команды  включает  новый режим и выводит на
экран новые цвета.

CGATEXT.EXE (Включает текстовый режим CGA - режим 0/1)
-----------------------------------------------------------------

     Синтаксис: CGATEXT

     Вызов этой  команды включает видео-режим 0/1.  Это текстовый
режим низкого разрешения,  позволяющий  вывести  на  экран  25*40
символов 16 разными цветами.

     Выполнение этой  команды  очищает  экран,  помещает курсор в
верхний левый угол экрана и включает стандартную палитру.

     Цвет 0 это фоновый цвет.  Обычно это черный цвет. Цвет рамки
экрана также устанавливается черный, номер цвета 0. Другие цвета
палитры это голубой (1),  зеленый (2),  синий  (3),  красный  (4),
фуксин (5),  коричневый (6),  светло-серый (7),  темно-серый (8),
светло-голубой  (9),  светло-зеленый  (10),  светлый-синий   (11),
светло-красный  (12),  светлый-фуксин  (13),  желтый (14) и белый
(15).

CIRCLE.EXE (Нарисовать одноцветный эллипс - режим 19)
-----------------------------------------------------------------

     Синтаксис: CIRCLE Mx My Rx Ry Цвет

     Это типичная  графическая  команда.  Она  предназначена  для
рисования эллипсов в видео-режиме 19.

     Параметры командной  строки  состоят  из  четырех координат,
двух цветов и коэффициента смешивания.  "Mx"  и  "My"  определяют
точку  центра  шара,  а  "Rx" и "Ry" - радиус по x и по y.   Цвет
заполнения "Цвет1" берется из текущей палитры VGA.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

COLUMN.EXE (Нарисовать многоцветный столбец - режим 19)
-----------------------------------------------------------------

     Синтаксис: COLUMN X1 Y1 X2 Y2 Цвет Mix

     Команда COLUMN    может    использовать   все   256   цветов
видео-режима 19 для рисования вертикального цветного столбца.

     Входные параметры состоят из координат  углов  прямоугольной
области, базового цвета заполнения и коэффициента смешивания.

     Координаты X1  и  Y1  должны  следовать  за именем команды в
командной строке  DOS  и  разделяться  пробелами.  Эти  параметры
определяют верхний левый угол блока. X2 и Y2 задают нижний правый
угол блока.

     Режим 19 позволяет задавать координаты по х от 0 до  319,  а
по y от 0 до 199.

     Базовый цвет   выводится   16   уровнями   интенсивности,  и
следовательно занимает 1/16 палитры из 256 цветов в  видео-режиме
19. Для   этого   требуется  настроенная  пользователем  палитра,
вызываемая автоматически  командой  PALETTE.  Вы   также   можете
вызвать специальную палитру командой JANSPALETTE, описанной ниже.

     Допустимы значения   параметра   Цвет   от   0  до  15,  что
соответствует 16 уровням интенсивности базового цвета в  палитре.
16 оттенков   базового  цвета  создаются  в  программе  как  блок
палитры.

     Этот блок цветов  палитры  становится  шаблоном  заполнения.
Цветовые оттенки дают столбцу трехмерность.

     Последний параметр это коэффициент смешивания Mix. Он задает
способ объединения   соседних   точек.    Для    данной    команды
рекомендуется коэффициент Mix, равный 2, что дает гладкий переход
между оттенками.  Тем самым границы между  16  оттенками  базового
цвета будут менее заметны.

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

     Для манипуляций прямоугольными областями также предназначены
команды ANTALIA (для сглаживания цветов в прямоугольной  области)
и BLOCK (рисует цветной блок).

DIMMING.EXE (Уменьшить/увеличить яркость цвета - все режимы)
-----------------------------------------------------------------

     Синтаксис: DIMMING C1 C2 D

     Эта команда может быть использована  во  всех  видео-режимах
для уменьшения  или  увеличения яркости отдельных цветов или всей
палитры.

     Параметры командной строки C1 и С2 это номера цветов текущей
палитры. Команда  действует на все цвета от С1 до С2.  Параметр D
задает абсолютное значение  для  изменения  цвета.  Положительное
значение увеличивает яркость, добавляя "D" к цветовым компонентам
интенсивности голубого,    зеленого    и    красного.    Значение
интенсивности  не  может  превысить  максимум  63.  Отрицательные
значения "D" вычитаются из интенсивности.  Интенсивность не может
быть меньше 0.

     Вы можете    использовать    эту   команду   для   изменения
интенсивности отдельного цвета,  задав одинаковые значения  С1  и
С2.

     По мере  приближения  значений интенсивности одного или двух
компонентов к граничным значениям 0 или 63 цвета имеют  тенденцию
к изменению. Это аналогично передержке или недодержке фотопленки.
Передержанные цвета   стремятся   превратиться   в    белый,    а
передержанные в черный.

     Команда DIMMING  следовательно,  более  эффективна при вводе
небольших значений D.  Это позволяет сохранять характер цвета при
уменьшении или увеличении его яркости.

DIMPERCENT.EXE  (Уменьшение или увеличения яркости палитры в
                 процентах - все режимы)
-----------------------------------------------------------------

     Синтаксис: DIMPERCENT C1 C2 P

     Может использоваться   во   всех  режимах  с  картой  VGA  с
аналоговым управлением.

     Эта команда  используется  для  уменьшения  или   увеличения
яркости цветов   палитры  в  процентах,  заданных  параметром  Р.
Положительные значения  увеличивают  яркость,   а   отрицательные
уменьшают.

     Параметры С1 и С2 те же,  что в команде DIMMING:  они задают
область палитры, на которую воздействует команда.

     DIMPERCENT преобразует параметр Р в  проценты.  Формула  для
значения, прибавляемого  или  вычитания из значения интенсивности
цвета, следующая:

     (63-интенсивность_цветового_компонента)/100*Р

     Эта команда позволяет более точно увеличивать или  уменьшать
интенсивность цветов.   Характер   цвета   никогда  полностью  не
теряется. Например,  зеленый цвет может  стать  бело-зеленым,  но
никогда не  станет ярко-желтым.  Насыщенность цвета этой командой
может несколько снижена.  Однако если даже цвет станет  несколько
беднее, общие характеристики цветового решения экрана сохранятся.

DISK.EXE (Нарисовать одноцветный и диск - режим 19)
-----------------------------------------------------------------

     Синтаксис: DISK Mx My Rx Ry Цвет

     Это типичная  графическая  команда.  Она  предназначена  для
рисования одноцветных  круглых  форм  или  закрашенных эллипсов в
видео-режиме 19. На языке графики такая форма называется диском.

     Параметры командной строки состоят из  четырех  координат  и
спецификации цвета.  Координаты  "Mx"  и  "My"  определяют  точку
центра шара,  а "Rx" и "Ry" - радиус по x  и  по  y.  Разрешаются
координаты вне  видимой  части  экрана в режиме 19.  Можно задать
радиус, выходящий  за  границы  экрана. Диск   будет   нарисован
правильно, но будет обрезан по краю экрана.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

     В качестве параметра "Цвет" может быть задан любой номер  от
0 до 255 из палитры VGA.

EGAPALETTE.EXE (Включают палитру EGA - режим 2/3)
-----------------------------------------------------------------

     Синтаксис: EGAPALETTE

     Эта команда включает видео-режим 2/2.

     Она аналогична   команде   EGATEXT.   Однако,   при   помощи
EGAPALETTE  вы  можете  создать  палитру,  состоящую  из любых 16
цветов из общего диапазона в 262144 цветов.

     Выполнение этой  команды  включает  новый режим и выводит на
экран новые цвета.

EGATEXT.EXE (Включает текстовый режим EGA - режим 2/3)
-----------------------------------------------------------------

     Синтаксис: EGATEXT

     Вызов этой  команды включает видео-режим 2/3.

     Это текстовый режим среднего разрешения, позволяющий вывести
на  экран  25*80  символов  16 разными цветами.  Такое разрешение
позволяет иметь в строке в два раза больше символов, чем в режиме
низкого разрешения 0/1 (см. "CGATEXT").

     Выполнение этой  команды  очищает  экран,  помещает курсор в
верхний левый  угол  экрана  и  включает  стандартную  палитру  с
цветами по умолчанию.

     Цвет 0 это фоновый цвет.  Обычно это черный цвет. Цвет рамки
экрана также устанавливается черный, номер цвета 0. Другие цвета
палитры это голубой (1),  зеленый (2),  синий (3),  красный  (4),
фуксин (5),  коричневый (6),  светло-серый (7),  темно-серый (8),
светло-голубой  (9),  светло-зеленый  (10),  светлый-синий (11),
светло-красный  (12),  светлый-фуксин  (13),  желтый (14) и белый
(15).

FEATHER.EXE (Нарисовать многоцветную линию - режим 19)

     Синтаксис: FEATHER X1 Y1 X2 Y2 C1 C2

     FEATHER эффективно  использует  многоцветные свойства режима
19 для рисования на экране цветных линий.

     Координаты X1 и Y1 задают начальную точку линии, а X2 и Y2 -
конечную точку.  Линия  начинается  цветом  С1,  а  заканчивается
цветом С2.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

     Координаты линии   не  ограничиваются  координатами  экрана.
Линии, координаты которых выходят  за  пределы  экрана,  рисуются
только частично.   Линия,  начальная  и  конечная  точки  которой
находятся вне экрана, может быть видна, если пересекает экран.

     Параметры С1  и   С2   задают   диапазон   цветов   палитры,
используемых при рисовании линии.

FRAME.EXE (Рисование одноцветного прямоугольника)
-----------------------------------------------------------------

     Синтаксис: FRAME X1 Y1 X2 Y2 цвет

     Эта команда работает только в  режиме 19.

     Координаты X1,  Y1,  X2 и Y2 определяют верхний левый угол и
нижний правый угол блока.  Прямоугольник не закрашивается и имеет
вид рамки.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

     Некоторые углы  рамки могут оказаться вне экрана.  На экране
будет видна только ее часть.

     Команда FRAME выбирает  для  рисования  рамки  один  из  256
цветов режима 19.

GREY.EXE (Преобразование цветов в оттенки серого - все режимы)
-----------------------------------------------------------------

     Синтаксис: GREY C1 C2

     Команда GREY преобразует цвета  в  оттенки  серого  во  всех
режимах VGA.

     Во время  преобразования  значения  интенсивности  компонент
компенсируется, так чтобы яркость экрана в целом  оставалась  без
изменений. Это выполняется вызовом из программы функций VGA BIOS.

     Параметры С1  и  С2  представляют  собой  первый и последний
цвета диапазона палитры, преобразуемого в оттенки серого.

     Например, GREY 0 255 преобразует все цвета текущей  активной
палитры любого режима VGA в оттенки серого.


HOROZONTAL.EXE (Рисование многоцветной горизонтальной линии -
                режим 19)
-----------------------------------------------------------------

     Синтаксис: HORIZONTAL X1 X2 Y C1 C2 Mix

     Как следует  из  ее  имени,  данная  команда  рисует  только
горизонтальные линии.  Поэтому  для  определения линии достаточно
трех параметров (две координаты x и одна y).

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

     Параметры С1  и   С2   задают   диапазон   цветов   палитры,
используемых при рисовании линии.

     Параметр Mix,  представляющий  собой  коэффициент  смешения,
управляет степенью  смешения оттенков при переходе между цветами.
При значении  0  сглаживание   оттенков   будет   выключено.   За
исключением ограничения на рисование линий только горизонтальных,
и коэффициента  смешивания,  эта   команда   аналогична   команде
FEATHER. Поскольку  нарисовать линию по трем координатам быстрее,
использовать FEATHER для рисования всех линий неэффективно.

     Эта команда используется как подпрограмма  и  вызывается  из
команд BALL, SPHERE и COLUMN.

JANSPALETTE.EXE (Пользовательская настройка палитры - все режимы)
-----------------------------------------------------------------

     Синтаксис: JANSPALETTE

     Создает палитру из 256 цветов из числа 262144  цветов  общей
палитры VGA.  Палитра  состоит  из  16 базовых цветов,  каждый из
которых имеет 16  разных  уровней  интенсивности.

     Вы можете одновременно выводить  все  256  цветов  только  в
режиме 19  MCGA/VGA с совместимым аналоговым монитором.  В других
режимах одновременно можно использовать не более 16  цветов.  Это
основные естественные цвета.

     Вызов данной   команды   заменяет   палитру   по   умолчанию
(стандартную палитру VGA).

     Для создания  специальных  палитр   также   служат   команды
SARAPALETTE и,  применительно  к конкретным режимам,  CGAPALETTE,
EGAPALETTE и PALETTE.

LINE.EXE (Рисование одноцветной линии - режим 19)
-----------------------------------------------------------------

     Синтаксис: LINE X1 Y1 X2 Y2 Цвет

     Вызов этой  команды  рисует  линию между координатами X1Y1 и
X2Y2. Параметр "Цвет" используется для  выбора  желаемого  номера
цвета из   текущей   палитры.   Эта  команда  работает  только  в
видео-режиме 19.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319,  а по y (по вертикали) от 0 до 199.  Если координаты
линии в режиме  19  выходят  за  пределы  экрана,  то  на  экране
появится только видимая часть линии.

LOADASCII.EXE (Загрузить в память ASCII-файл - текстовый режим)
-----------------------------------------------------------------

     Синтаксис: LOADASCII маршрут\имя.расширение

     Заданный файл будет загружен в экранную  память  компьютера,
начиная с адреса $B8000.

     При задании имени файла используйте полное имя и расширение.
Если желаемый файл находится не в текущей директории,  вы  должны
также задать маршрут к этой директории. Затем файл будет загружен
как ASCII-коды в экранную память,  независимо от его  содержания.
Экран не очищается.  Он замещается с изменением атрибутов.  Ранее
существовавшие цветовые  атрибуты   остаться   видимыми.   Команды
клавиатуры и  управляющие  последовательности  выводятся,  но  не
выполняются.

     Эта команда не может быть использована во  всех  графических
режимах IBM. Она не может работать в режимах, где экранная память
начинается с  шестнадцатиричного  адреса  $B000  или  ниже.   Эта
команда будет  работать  в текстовых режимах 0/1,  2/3 и 3+.  Как
правило, в текстовом режиме VGA 3+ с разрешением  80*50  символов
может быть загружено 4000 символов (байтов).  Режимы 0,  1, 2 и 3
имеют более  низкое   разрешение   и   соответственно   позволяют
загрузить 1000  или  2000  символов.  Если загружаемый файл имеет
менее 4000 байтов,  экран в режиме VGA 3+ будет заполнен не весь,
и команда  будет  прервана  ошибкой  DOS.  Программа  выведет  на
дисплей приглашение DOS и сообщение об ошибке.

     Чтобы предотвратить возврат к приглашению DOS  и  разрушение
только что   загруженного   экрана,  вы  должны  перед  LOADASCII
использовать стандартную команду DOS "ECHO OFF".

     Отметим, что стандартная команда DOS "CLS" не очищает  экран
полностью в  режиме  VGA  3+.  CLS  действует только на первые 25
строк. Режим 3+ с 50 строками на экране не полностью совместим  с
DOS.

PALETTE.EXE (Изменить цвет палитры - все режимы)
-----------------------------------------------------------------

     Синтаксис: PALETTE Номер B G R

     Данная команда предназначена для изменения конкретных цветов
палитры. Она   может   использоваться  со  всеми  палитрами  VGA.
Параметр "Номер"  задает  номер  цвета  в  палитре.  "B"   задает
интенсивность голубой   компоненты   цвета.  Интенсивность  может
принимать значение от 0  до  63.  То  же  самое  справедливо  для
"G" - зеленой компоненты и "R" - красной компоненты.

     Так как  каждая цветовая компонента может иметь 64 значения,
общая палитра VGA позволяет иметь 64*64*64 = 262144 цвета.

     Эта команда практически вряд ли может быть использована  для
установки всех  цветов в режимах с 16 или 256 цветами,  поскольку
для изменения каждого цвета она требует ввести четыре  параметра.
Лучше использовать ее для установки отдельных цветов палитры.

     Например, легко  использовать  эту  команду,  чтобы изменить
цвет текста   в   монохромном   режиме   7,   заменив    значения
интенсивности цветовых компонент цвета 8.

     Для одновременного изменения нескольких цветов палитры проще
воспользоваться командой BLEND.

PLOT.EXE (Нарисовать цветной пиксель - режим 19)
-----------------------------------------------------------------

     Синтаксис: PLOT X Y C

     Команда PLOT  рисует  цветные  пиксели  в  режиме  19.  Цвет
пикселя выбирается в палитре из 256 цветов режима 19.

     Точка помещается в координатах X и Y с цветом  C.  Параметры
вводятся после имени команды через один пробел.

     Режим 19 позволяет задавать по x (по горизонтали) координаты
от 0 до 319, а по y (по вертикали) от 0 до 199.

SARAPALETTE.EXE (Пользовательская настройка палитры - все режимы)
-----------------------------------------------------------------

     Синтаксис: SARAPALETTE

     SARAPALETTE предназначена  для  вызова специальной палитр из
256 цветов,  выбранных в общей палитре из  262144  доступных  VGA
цветов. Такая  палитра  особенно  хорошо  годится для изображения
оттенков кожи и лица.

     Первые 48 цветов представляют собой  розовые  оттенки  кожи.
Следующие 48  цветов  это  оттенки кожи.  В палитре также имеются
оттенки для изображения волос и фона.

     Вы можете одновременно выводить  все  256  цветов  только  в
режиме 19  MCGA/VGA с совместимым аналоговым монитором.  В других
режимах одновременно можно использовать не более 16  цветов.  Это
основные оттенки кожи.

     Вызов данной   команды   заменяет   палитру   по   умолчанию
(стандартную палитру VGA) палитрой SARAPALETTE.

     Для замены  всей  палитры  в  целом  также  служат   команды
JANSPALETTE, и  в  конкретных режимах,  CGAPALETTE,  EGAPALETTE и
PALETTE.

SAVE.EXE (Сохранить многоцветную графику - режим 19)
-----------------------------------------------------------------

     Синтаксис: SAVE маршрут\имя.расширение

     Используется для   создания   и  сохранения  файла  графики,
содержащего 64000 байтов 19 экранов текущего режима.  Номер цвета
каждого пикселя хранится в одном байте.

     256 возможных   номеров   цвета  независимы  от  содержимого
текущей палитры VGA, которая в этот файл графики не записывается.
Файл сохраняется  с именем и расширением,  которые вы задаете как
параметры. Если вы хотите поместить файл в  директорию,  отличную
от текущей, вы можете задать маршрут.

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

     Например, вы сохраняете файл графики PICTURE.PIC и  создаете
командный файл PICTURE.BAT.

     Если файл  графики  создавался  с  палитрой JANSPALETTE,  то
командный файл PICTURE.BAT должен иметь следующие команды:

     VMODE 19
     JANSPALETTE
     SHOW PICTURE.PIC

SAVEASCII.EXE (Сохранить экран как ASCII-файл - текстовые режимы)
-----------------------------------------------------------------

     Синтаксис: SAVEASCII маршрут\имя.расширение

     SAVEASCII сохраняет  содержимое  экранной памяти,  начиная с
шестнадцатиричного адреса $B8000.  Файл записывается  на  диск  с
указанными именем и расширением.

     Если желаемый файл должен находится не в текущей директории,
вы должны также задать  маршрут  к  этой  директории.  Содержимое
экранной памяти будет записано как ASCII-коды.

     Эта команда будет работать в текстовых режимах 0/1, 2/3 и 3+
(VGA).

     В текстовом режиме VGA 3+ с разрешением 80*50 символов будет
записано 4000 символов (байтов).

     Режимы 0,   1,  2  и  3  имеют  более  низкое  разрешение  и
соответственно  позволяют  записать  1000  или   2000   символов.
Остальная часть файла,  до 4000-го байта,  дополняется пробелами.
Закончив  работу,  команда  возвращается  к  приглашению  DOs   с
соответствующим сообщением.

     Чтобы предотвратить  возврат  к приглашению DOS и разрушение
текущего  содержимого   экрана,   вы   должны   перед   SAVEASCII
использовать стандартную команду DOS "ECHO OFF".

SHOW.EXE (Загрузить файл многоцветной графики - режим 19)
-----------------------------------------------------------------

     Синтаксис: SHOW маршрут\имя.расширение

     Данная команда  служит  для  загрузки  графического   файла,
который содержит  64000  байта  информации,  составляющей экран в
видео-режиме 19.

     Экран загружается  считыванием  номеров  цвета  для  каждого
пикселя из  заданного  файла.  Имя загружаемого файла должно быть
задано в командной строке через пробел после имени команды.  Если
файл находится не в текущей директории, то можно указать маршрут.

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

     Например, вы сохраняете файл графики PICTURE.PIC и  создаете
командный файл PICTURE.BAT.

     Если файл  графики  создавался  с  палитрой JANSPALETTE,  то
командный файл PICTURE.BAT должен иметь следующие команды:

     VMODE 19
     JANSPALETTE
     SHOW PICTURE.PIC

SHOWPALETTE.EXE (Очистить экран/показать цвета палитры - режим 19)
-----------------------------------------------------------------

     Синтаксис: SHOWPALETTE

     Команда SHOWPALETTE  выводит  на  экран  256  цветов текущей
палитры в режиме VGA/CGA  19.  После  очистки  экрана  на  экране
появляется текущая палитра цветов.  Координаты по горизонтали (х)
от 0 до 255 соответствуют номерам в палитре от 0 до  255.  Данный
шаблон по вертикали повторяется на весь экран.

     Номера палитры  от 0 до 64 повторяются в правой части экрана
в координатах от 256 до 319.  Это  дает  пользователю  прекрасный
обзор цветов текущей палитры.

SMOCIRCLE.EXE (Сглаживание цветов эллипса - режим 19)
-----------------------------------------------------------------

     Синтаксис SMOCIRCLE Mx My Rx Ry

     Данная команда работает только в  режиме  19  плат  VGA  или
MCGA. Она  может  использовать  все 256 цветов данного режима для
сглаживания цветов по внешнему краю эллиптической формы.  Разница
в цветах  и  контрастность  сглаживаются  путем  сравнения каждой
точки края формы с соседней. Этот процесс называется сглаживанием.

     Параметры этой команды задают сам эллипс. Mx и My задают его
центр, а Rx и Ry радиус по x и y.

     Отметим отсутствие  параметра  для  установки цветов.  Выбор
цвета осуществляется внутренним образом, самой программой.

     Функция сглаживания цвета данной команды аналогична той, что
используется в  команде  SMOOTH  (сглаживание  цвета  пикселя)  и
ANTIALIA (сглаживание цветов в прямоугольной области.

SMOOTH.EXE (Сглаживание цвета пикселя - режим 19)
-----------------------------------------------------------------

     Синтаксис: SMOOTH X Y

     SMOOTH работает  только в режиме 19.  Параметры X и Y задают
координаты сглаживаемого пикселя.

     Данная команда может использовать все 256 цветов режима  19.
Она служит  для сглаживания цвета пикселя относительно окружающих
его точек.

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

     Затем эти усредненные значения используются  для  вычисления
взвешенного среднего   значения   для  значений  каждой  цветовой
компоненты сглаживаемого пикселя.  Затем подпрограмма выбирает из
палитры цвет, наиболее точно соответствующий этому среднему. Этот
цвет и становится сглаживающим цветом.

     Этот процесс  называется  сглаживанием.  Сглаживание   также
выполняется другими  функциями  -  SMOCIRCLE (сглаживает цвета по
краю эллипса)  и  ANTIALI  (сглаживает  цвета   в   прямоугольной
области).

SPHERE.EXE (Нарисовать многоцветную сферу - режим 19)
-----------------------------------------------------------------

     Синтаксис SPHERE Mx My Rx Ry Цвет

     Это специальная   графическая   команда,   используемая    в
видео-режиме IBM 19.  Она может использовать для создания цветных
сфер или округленных объектов.

     Параметры состоят из четырех координат,  плюс  выбор  цвета.
Центр задается   параметрами   Mx   и   My.  Радиус  задается  по
соответствующим осям параметрами Rx и Ry.

     В качестве цвета закрашивания берется  один  из  256  цветов
текущей палитры  VGA.  В  качестве  подпрограммы  данная  команда
вызывает программу пользовательской палитры JANSPALETTE. Последняя
создает палитру из 16 базовых цветов,  каждый из которых имеет 16
вариантов интенсивности.

     Параметр "Цвет"  может  иметь  значение  от  0  до  16.   Он
относится не  к  конкретному  цвету,  а  к  блоку  из  16 уровней
интенсивности одного из  базовых  цветов  палитры.  Такой  способ
закрашивания придает объекту трехмерный вид.

STANDARD.EXE (Восстановить палитру - все режимы)
-----------------------------------------------------------------

     Синтаксис: STANDARD Номер

                STANDARD

     Существует две  формы  команды  STANDARD.  Первая   из   них
(STANDARD Номер)  восстанавливает стандартную палитру в различных
режимах IBM без очистки экрана.

     Параметр "Номер"  это  номер  режима  стандартной   палитры,
которую вы хотите активизировать. Возможный "Номер" для платы VGA
с аналоговым монитором может принимать значения от 0 до 7 и от 13
до 18. Эта команда не воспринимает номера режимов VGA 3+ и 19.

     Вторая форма (STANDARD без параметров) включает режим 19 без
очистки экрана. Многие команды VGA-DOS, описанные в данной главе,
работают только в режиме 19.

     Существует два  специальных  свойства  команды  STANDARD,  о
которых необходимо помнить.

     Во-первых, данная команда включает режим 19 непосредственно,
без ввода каких-либо параметров командной строки. Кроме того, при
выполнении команды STANDARD очистка  экрана  не  происходит.  Это
означает, что   после  изменения  режима  на  экране  сохраняется
предыдущее содержимое без изменений.

     Вторая функция данной команды включается только  если  режим
19 уже  установлен  к  моменту  ее  запуска.  Выполнение  команды
STANDARD в этих условиях восстанавливает стандартную палитру (или
палитру по умолчанию) для режима 19.

     Команды VMODE  и  VMODES  также  могут быть использованы для
включения режима 19, если вызвать их с параметром "19".

TABLE.EXE (Назначение цветов номерам - все режимы)
-----------------------------------------------------------------

     Синтаксис: TABLE

     Команда TABLE  подготавливает текущую палитру к манипуляциям
цветами. Эта команда в основном используется в режимах CGA и EGA,
работающих с  4  - 16 цветами,  так как позиции в палитре и номера
палитры VGA в этих режимах не совпадают.
     
     Номера цветов устанавливаются в соответствующие этим  номерам
позиции палитры,  таким образом, чтобы при изменении номера цвета
из палитры можно было получить верный цвет.
     
TEXTCOLOR.EXE (Выбор цвета текста из палитры  -  все текстовые
               режимы)
-----------------------------------------------------------------
     
     Синтаксис: TEXTCOLOR B G R
     
     Команда TEXTCOLOR изменяет  цвет  палитры  номер  семь.  Это
позволяет извлечь  пользу  из  стандарта  DOS,  в  соответствии с
которым режимы 0, 1, 2, 3 и 3+ используют в качестве цвета текста
цвет номер  семь.  Этот  цвет  соответствует  светло-серому цвету
платы CGA.
     
     Задавая значения  цветовых   компонент   B   (голубого),   G
(зеленого) и  R (красного),  вы можете установить цвет номер семь
равным любому цветы из общей палитры VGA - 262144 цветов.
     
     Рассмотрим несколько ограничений этой команды:
     
     Номер в палитре цвета текстов этой командой  не  изменяется.
Это можно выполнить при помощи команды DOS PROMPT.
     
     Например, если  вы  используете  команду PROMPT с параметром
"$e[NNm" для того, чтобы установить номер цвета текста в палитре,
отличный от   семи,  цвет  текста  можно  будет  изменить  только
командой PALETTE.  То же самое справедливо и для  всех  текстовых
режимов, использующих  в  качестве  номера  цвета  текста  номер,
отличный от седьмого.
     
VGAPALET.EXE (Включить режим VGA 80x50 с палитрой - режим 3+)
-----------------------------------------------------------------
     
     Синтаксис: VGAPALET
     
     Данная команда  включает виде-режим 3+ (VGA 50*80 символов).
Режим 3+ это вариант режима 3,  позволяющий выводить на экран  50
строк текста.  Таким  образом,  эта  команда  идентична  VGATEXT.
Однако VGAPALET позволяет вам выбрать 16 цветов палитры  из  всей
палитры VGA из 262144 цветов.
     
     После запуска  этой команды режим изменяется,  и новые цвета
выводятся на экран.
     
VGATEXT.EXE (Включение текстового режима VGA - режим 3+)
-----------------------------------------------------------------
     
     Синтаксис: VGATEXT
     
     Используется для   включения   видео-режима  3+  (VGA  50*80
символов). Это  текстовый  режим  высокого  разрешения,   который
позволяет выводить 50*80 символов 16 цветами.
     
     При выполнении  данной  команды  экран  очищается,  а курсор
помещается в  верхний  левый  угол.  Активизируются   16   цветов
стандартной палитры.  Цвет  номер  0  это  цвет фона.  Обычно это
черный цвет.  После изменения  режима  цвет  рамки  экрана  также
устанавливается черный.
     
     Специальное свойство  режима  3+  состоит в том,  что в этом
режиме на экране помещается в два раза больше строк по  сравнению
с режимом 3,  т.е. 50 строк вместо 25. Это означает, что режим 3+
несовместим с командами DOS,  так как они обычно  работают  с  25
строками текста.  Кроме  того,  режим 3+ не может быть установлен
посредством вызова BIOS командой VMODE.
     
VMODE.EXE (Изменить видео-режим)
-----------------------------------------------------------------
     
     Синтаксис: VMODE Номер
     
     Команда VMODE   задает  любой  видео-режим  IBM  при  помощи
параметра "Номер".  Команда очищает экран и включает  стандартную
палитру. Параметр  "Номер"  может  принимать  значения  от  0  до
максимально допустимого  для  данной   конфигурации   аппаратного
обеспечения.
     
     В случае платы VGA с аналоговым монитором это режимы от 0 до
7 и от 13 до 19.  для расширенных  плат  VGA  возможны  и  другие
режимы, в  зависимости  от  используемого аппаратного обеспечения
(например, режим  64  может   обозначать   16-цветный   режим   с
разрешением 800*600 пикселей.
     
     Существует одно   ограничение,   связанное   с   режимом  3+
(текстовый режим VGA с 50*80 символами  на  экране).  Этот  режим
является вариацией режима 3 (25*80 символов).  В этот режим можно
войти при помощи команд VGATEXT и VGAPALET.
     
VMODES.EXE (Изменение видео-режима при помощи меню)
-----------------------------------------------------------------
     
     Синтаксис: VMODES
     
     Команда VMODES   выполняет   функции,  аналогичные  функциям
описанной выше команды VMODE.
     
     Эта команда не принимает никаких параметров. Вместо этого на
экран выдается  список,  в  котором  пользователь  может  выбрать
интересующий его видео-режим. В этом списке-меню находятся номера
всех доступных   видео-режимов.  Пользователь  выбирает  желаемый
режим, вводя его  десятичный  или  шестнадцатиричный  (с   первым
символом $) номер.
     
     Для платы  VGA  с аналоговым монитором доступны видео-режимы
IBM от 0 до 7 и от 13 до 19.
     
VMODE19.EXE (Включить видео-режим 19 без очистки экрана)
-----------------------------------------------------------------
     
     Синтаксис: VMODE19
     
     Эта команда включает многоцветный режим 19,  используемый во
многих графических командах из нашего набора расширенных  функций
DOS.
     
     Режим 19  также можно установить командами VMODE или VMODES,
однако команда VMODE19 имеет некоторые специальные свойства.
     
     Во-первых, для  активации  режима  19   этой   командой   не
требуется ввод параметров.  Во-вторых,  при изменении видео-режима
этой командой экран не очищается,  и любые находившиеся на экране
изображения остаются без изменений.
     
     Кроме того,   эту  команду  можно  использовать,  если  ваша
система уже находится в режиме 19.
     
     Вызов команды в этом случае просто  восстановит  палитру  по
умолчанию.
     
     Тем же  эффектом обладает команда STANDARD при вызове ее без
параметров.
     
WAIT.EXE (Ожидание ввода с клавиатуры - все режимы)
-----------------------------------------------------------------
     
     Синтаксис: WAIT
     
     Эта команда  заставит  компьютер  ждать  ввода с клавиатуры,
прежде чем перейти к дальнейшим действиям.  Например, эта команда
может быть  использована  в  командных  файлах,  чтобы установить
логику выполнения программ  в  зависимости  от  пользовательского
ввода.
     
     Эта команда  работает только в текстовых режимах 1 - 3.  При
выполнении в графическом режиме  эта  команда  может  переключить
систему на текстовый режим.
     
ZEROKEY.EXE (Очистить буфер клавиатуры - текстовые режимы)
-----------------------------------------------------------------
     
     Синтаксис: ZAROKEY
     
     Эта команда очищает  буфер  клавиатуры.  ZEROKEY  может  быть
использована в командных файлах для исключения обработки ненужных
нажатий клавиш,  чтобы висящие в буфере нажатия  не  повлияли  на
выполнение программы.
     
     Например, эту  команду можно включить в командный файл перед
командой WAIT,  что позволит предотвратить срабатывание  WAIT  от
случайных нажатий, висящих в буфере клавиатуры.
     
     Эта команда   работает  в  текстовых  режимах  1  -  3.  При
выполнении в графическом режиме  эта  команда  может  переключить
систему на текстовый режим.
     
                           
4.4  Инсталяция команд VGA-DOS
-----------------------------------------------------------------
     
     Рассматриваемый в   данном   руководстве  расширенный  набор
команд DOS  поставляется  на  дискетах,  входящих   в   настоящий
комплект. Чтобы  убедиться  в их правильном функционировании,  вы
должны скопировать их на жесткий диск  и  сообщить  DOS,  где  их
искать. (Вы  должны поместить их в директорию,  маршрут к которой
задается командой PATH в файле AUTOEXEC.BAT).
     
     Пример AUTOEXEC.BAT приводился выше в  разделе,  посвященном
краткому описанию DOS.
     
     Вы можете  скопировать  новые  файлы  в  C:\DOS,  где обычно
находятся стандартные файлы DOS.  Вы также можете  создать  новую
директорию (командой MKDIR) для этих файлов,  например C:\VGA.  В
этом случае следует внести имя этой директории в маршрут  поиска,
устанавливаемый командой PATH.
     
     Решив, где должны храниться файлы,  вы должны скопировать их
на жесткий  диск  (инструкции  по   инсталяции   см.   в   данном
руководстве). После  этого  новые  команды  станут  доступны  для
использования, как и прочие команды DOS.
     
4.5  Вызов команд VGA-DOS по приглашению DOS
-----------------------------------------------------------------
     
     Самый простой  способ  проверить новые команды DOS состоит в
том, чтобы запустить их по приглашению DOS.  Для этого достаточно
просто ввести  имя  команды  с  необходимыми  для  ее  выполнения
параметрами. Параметры должны быть отделены от  имени  команды  и
друг от друга одним пробелом. При нажатии клавиши  команда
будет выполнена.
                
     Это хороший способ проверить работы команды.  Однако, вы при
этом увидите, что на экране останется приглашение DOS, нарушающее
графический экран.
     
     Чтобы избавиться  от  него,  можно  запускать   команды   из
командного файла.  Ниже,  в следующем разделе,  мы рассмотрим эту
возможность. Сначала приведем  несколько  примеров  вызова  новых
команд DOS  непосредственно  с  клавиатуры.  Каждая строка должна
набираться по приглашению DOS и  заканчиваться  нажатием  клавиши
:
     
     VMODE 19
     SHOWPALETTE
     JANSPALETTE
     PALETTE 7 44 55 63
     
     Вот еще несколько примеров:
     
     EGAPALETTE
     JANSPALETTE
     BLEND 1 44 33 22 16 33 44 63
     BORDER 8
     BACKGROUND 11 22 33
     TEXTCOLOR 0 0 0
     
     Ниже показана последовательность команд,  которая может быть
использована для создания картинки:
     
     CGAPALET
     VMODE 7
     BACKGROUND 33 33 22
     EGAPALET
     VGAPALET
     TABLE
     BLEND 1 63 22 63 15 44 55 63
     STANDARD
     SHOWPALETTE
     GREY 0 255
     PALETTE 128 22 22 63
     BLEND 8 5 8 15 255 35 63 44
     TEXTCOLOR 55 44 63
     CIRCLE 100 100 100 100 7
     BALL 160 100 160 100 8 255 2
     VMODE 19
     COLUMN 20 20 150 180 12 2
     SPHERE 240 99 80 80 8
     SARAPALETTE
     PALETTE 0 11 22 33
     SMOCIRCLE 240 99 80 80
     CIRCLE 160 100 100 90 112
     SMOCIRCLE 160 100 100 90
     FRAME 0 80 180 120 1
     ANTIALIA 0 80 180 120
     SAVE C:\VGA\TESTPIC.PIC
     
4.6  Вызов команд VGA-DOS из командных файлов
-----------------------------------------------------------------
     
     DOS может   манипулировать   несколькими   типами    файлов.
Командным файлам  отведена  в  DOS специальная роль,  так как они
состоят из последовательности команд  DOS.  Команды  в  командном
файле выполняются при вводе имени этого файла по приглашению DOS.
     
     Последние версии DOS сделали создание и выполнение командных
файлов даже  проще,  включив  в  них  некоторые  общие   элементы
программирования, принятые      в     распространенных     языках
программирования. Команды VGA,  описываемые в данной главе, можно
включать в командные файлы.
     
     Использование этих  команд в командных файлах увеличивает их
эффективность, позволяя запускать команды,  не отображая  процесс
запуска на   экране.   Для   этого   в  начало  файла  включается
стандартная команда "ECHO OFF".  Она отменяет эхо-отображение  на
экране приглашений DOS и имен запускаемых команд,  благодаря чему
графические изображения, создаваемые командами, не нарушаются.
     
     Командный файл можно создать командой  COPY  CON,  следующим
образом:
     
     После команды ведите имя файла,  который вы желаете создать.
Командный файл имеет расширение .BAT.
     
     Процесс начала командного  файла  LOUISE.BAT  можно  начать,
введя по приглашению DOS следующее:
     
     COPY CON LOUISE.BAT
     
     После нажатия  ваш ввод с клавиатуры будет помещаться
в командный файл с заданным  именем.    нужно  нажимать  в
конце данной  строки.  Закончив ввод файла,  нажмите   и
 Содержимое  файла  будет  записано  на  диск  в  файл   с
указанным вами именем.
     
     Попробуйте создать  следующий  командный файл,  при условии,
что ваша система имеет плату VGA и аналоговый монитор.
     
     COPY CON HULILAND.BAT
     ECHO OFF
     VMODE 19
     COLUMN 0 0 470 80 13 8
     COLUMN -150 81 320 200 5 8
     GREY 0 255
     ANTIALIA 0 79 320 82
     DISK 260 35 20 15 146
     SMOCIRCLE 260 35 20 15
     SARAPALETTE
     DIMPERCENT 208 224 50
     SMOCIRCLE 260 35 20 15
     SMOCIRCLE 260 35 19 14
     ANTIALIA 0 78 320 83
     COLUMN 59 100 62 112 10 0
     ANTIALIA 59 112 72 112
     BALL 60 80 20 20 150 187 0
     SMOCIRCLE 60 80 20 20
     COLUMN 118 150 122 170 7 0
     ANTIALIA 118 170 132 170
     BALL 120 100 50 50 96 124 1
     SMOCIRCLE 120 100 50 50
     COLUMN 197 170 202 190 4 0
     ANTIALIA 197 190 212 190
     BALL 200 120 50 50 48 85 4
     BALL 50 350 200 175 -16 32 48
     ANTIALIA 0 176 150 200
     ^Z
     
     Напоминаем, что   завершить   ввод   файла  нужно  нажатиями
, а затем .  Это показано символами "^Z" в  конце
файла в примере.
     
     Полученный файл  можно  запустить по приглашению DOS,  введя
его имя без расширения.  При этом будет командный  файл,  который
нарисует цветную  картинку  без каких-либо запросов пользователя и
сообщений DOS.
     
     Ниже показан   другой   командный   файл,    демонстрирующий
возможности расширенных команд DOS:
     
     COPY CON QUICKDEMO.BAT
     ECHO OFF
     VMODE 19
     SHOWPALETTE
     SPHERE 0 80 100 100 13
     SPHERE 200 200 100 100 4
     BLOCK 0 50 50 200 55
     BLOCK 100 90 150 180 80
     CIRCLE 125 160 10 10 239
     CIRCLE 125 166 10 10 239
     SMOCIRCLE 125 160 10 10
     DISK 320 200 100 140 200
     COLUMN 200 70 250 190 5 2
     SPHERE 160 100 80 40 8
     SMOCIRCLE 160 100 80 40
     FEATHER 0 125 320 40 1 15
     FEATHER 0 125 320 60 16 31
     FEATHER 0 125 320 80 32 47
     FEATHER 0 125 320 100 48 63
     FEATHER 0 125 320 120 64 79
     FEATHER 0 125 320 140 80 95
     FEATHER 0 125 320 160 96 111
     FEATHER 0 125 320 180 112 127
     PLOT 110 110 95
     SPHERE 120 120 15 15 10
     STANDARDPALETTE
     STANDARDPALETTE
     DIMPERCENT 1 200 50
     JANSPALETTE
     ANTIALIA 60 115 80 135
     SPHERE 160 0 250 70 12
     VER


Яндекс цитирования