






		  Вашему вниманию предлагается
		   программа расширения языка
			 batch - файлов











		     Melnik Batch Enchanced
			    ( MBE )
			  Version 2.00
		    Справочное руководство.



















			 Мельник Олег.
		    г.Каменец - Подольский.
			    1991 г.
                               -2-

		       1.Общие сведения.

   Программа Melnik Batch Enchanced ( далее именуемая как  MBE )
позволяет  Вам создавать  красочные  batch  -  файлы  без особых
усилий с Вашей стороны.
   Формат запуска программы следующий:

   MBE [путь]filename.MBE

   После набора этой команды MBE загружается и	начинает  выпол-
нять команды, записанные в файле filename.MBE.
   Если в качестве входного файла указано имя файла с расширени-
ем, отличным от .MBE,  оно отбрасывается, к имени файла добавля-
ется расширение  .MBE  и  предпринимается попытка открыть файл с
полученным именем.  Если расширение входного файла не указано, к
имени файла добавляется расширение .MBE.
   Файл должен состоять из строк, среди которых допускаются ком-
ментарии, содержащих имя команды и передаваемые ей аргументы.
   Если указанный файл не найден в текущей директории, программа
пытается найти его в подкаталогах, заданных командой path.    
   Пример:

	    # Это комментарий
	    Str"Распечатаем строку черным по белому", 5, 6, 0, 7

   Максимальная длина  строки  - 250 символов,	строки,  имеющие
больше чем 250 символов, усекаются.
   Если при выполнении во входном файле обнаружена ошибка, выда-
ется звуковой  сигнал  и на экран  выводится  ошибочная  строка,
слово **Error**, имя файла, номер ошибочной строки ( в скобках )
и сообщение об ошибке.
   Такой формат сообщения позволяет использовать программу в IDE
среде  Turbo - C++  через   Transfer  с  использованием  фильтра 
сообщений для TASM.
   С левого края команды допускаются пробелы и символы табуляции
в неограниченном количестве.
   Между аргументами также допускаются пробелы и символы табуля-
ции, аргументы должны отделяться один от другого запятыми.
   В строке запрещено использование символа ASCII 255 ( FFH ).
   Первым символом  после команды обязательно должен быть пробел
или кавычки.  Текст,  взятый в кавычки, не изменяется. Для того,
чтобы   включить   в   текст  символ кавычки, необходимо набрать
последовательность \".
   Пример:

      # Включим в текст кавычки
      Str"А теперь распечатаем кавычки: \"строка\"", 5, 7, 14, 0

      # Это неправильно:
      CursorTypeOff

	     # А это правильно:
	     CursorType Off

   Строка комментария должна начинаться символом '#'( перед  ним
разрешены только пробелы или символы табуляции ).
                               -3-

   Пример:
	     # Это строка комментария

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

   Command arg1, arg2, arg3,   А это комментарий

   Запятая после последнего аргумента нужна для того,  чтобы MBE
не принял комментарий за часть последнего аргумента.
   Пример:

	     # Примеры "хитрых" комментариев
	     StrPrn"Распечатаем строку",   Печать на принтер
	     Clock Off,   А теперь выключим часы

   Все команды MBE можно условно разделить на две группы:
       1. Команды,  после выполнения которых MBE переходит к вы-
	  полнению следующей команды .MBE -  файла  (  если  она
	  существует ).
       2. Команды,  после выполнения которых MBE выходит в  выз-
	  вавший его процесс с установкой кода выхода ( обычно в
	  batch - файл с установкой Errorlevel ).

   Само собой разумеется, что команды второго типа ( в случае их
применения ) должны быть последними командами .MBE - файла. Нет,
конечно Вы можете что-то написать в файле  и  после  них,  но  к
строкам, находящимся  ниже  строки,  содержащей оператор второго
типа, MBE никогда не обратиться.
   Пример:

	     # Читаем клавишу
	     GetKey
	     # А теперь невыполняемый оператор
	     AnyKey

   Эту особенность также можно использовать для вставки "хитрых"
комментариев.
   Пример:

	     # Опрашиваем пользователя
	     YesNo
	     А тут можно что-нибудь написать

   К командам первой группы относятся команды:

       Str, StrPrn, Fill, Window, CursorPos, CursorType ,Sound,
       Cls, SetClock, Clock, SetDate, Date, Star, ExtStar,
       StarDelay, SetStar, Command, AnyKey, IfEsc.

   К командам второй группы относятся команды:

       YesNo, KeyList, GetKey, Password, Manager.

   Необходимо учитывать,   что	установки,  сделанные  командами
SetClock,  Clock,  SetDate,  Date,  Star,   ExtStar,  StarDelay,
SetStar будут действительны только во время выполнения того .MBE
- файла, в котором они сделаны.
                               -4-

   Все команды могут указываться в различных регистрах.
   Пример:

	     # Все это правильно
	     StR"Черным по белому", 5, 8, 0,  7
	     sTr"Белым по черному", 5, 9, 15, 0

   В MBE предполагается определение цветов целыми числами.
   Tech Help!  рекомендует  следующие значения  для  определения
цвета:

		┌─ 0 - черный ──────┬─────────┐
		│  1 - синий	    │	      │
		│  2 - зеленый	    │	      │
		│  3 - голубой	    ├─ цвет   │
		│  4 - красный	    │  фона   │
		│  5 - розовый	    │	      │
		│  6 - коричневый   │	      │
		│  7 - серый ───────┘	      ├─ цвет
		│  8 - темно-серый	      │  букв
		│  9 - ярко-синий	      │
		│ 10 - светло-зеленый	      │
		│ 11 - светло-голубой	      │
		│ 12 - светло-красный	      │
		│ 13 - светло-розовый	      │
		│ 14 - желтый		      │
		└ 15 - белый ─────────────────┘

   Цвет фона должен лежать в пределах от 0 до 7 включительно.
   Цвет букв - от 0 до 15 включительно.
   Для получения мерцающего изображения необходимо добавить  128
к значению цвета переднего плана.
   Пример:

	     # Примеры различных цветов печати
	     Str"Розовый на зеленом", 5, 5, 5, 2
	     Str"Желтый на синем", 5, 6, 14, 1
	     Str"Ярко-синий на красном", 5, 7, 9, 4
	     Str"Синий мерцающий на розовом", 5, 8, 129, 5


			 2.Команды MBE.

   В данном разделе будут рассмотрены все команды программы MBE.
Команды будут описываться в следующем виде:

   Команда : В этой части описания  будет  приводиться	название
	     команды.
   Формат  : В этой части будет приводиться общая  форма  записи
	     команды.
   Описание: Тут   будет  приводиться  описание действия команды
	     и объяснение ее аргументов.
   Пример  : В этой части будет приводиться пример использования
	     описываемой команды.
                               -5-

			    2.1.Str.


   Команда : Str.
   Формат  : Str"строка", коорд_X, коорд_Y, цвет_букв, цвет_фона
   Описание: Команда  Str  выдает  на  экран  строку, начиная  с
	     позиции коорд_X и строки коорд_Y с указанным цветом
	     букв и с указанным цветом фона.
   Пример  :
	     # Напечатаем приветствие
	     # начиная с пятой позиции седьмой
	     # строки красными буквами на синем
	     # фоне
	     Str"Hello, world", 5, 7, 4, 1


			  2.2.StrPrn.

   Команда : StrPrn.
   Формат  : StrPrn"строка"
   Описание: Команда  StrPrn  распечатывает  на  вашем	принтере
	     заданную строку.
	     Внимание! Если принтер  не готов, содержимое экрана
	     будет испорчено системным сообщением об ошибке.
   Пример  :
	     # Распечатаем на принтере строку
	     StrPrn"Эта строка распечатана с помощью StrPrn"


			  2.3.Fill.

   Команда : Fill.
   Формат  : Fill"символ", коорд_X, коорд_Y, ширина, высота,
		 цвет_букв, цвет_фона
   Описание: Команда  Fill   заполняет	область  с  координатами
	     левого верхнего угла коорд_X, коорд_Y и с заданными
	     шириной и высотой,  символом с определенными цветом
	     переднего плана и цветом фона.
   Пример  :
	     # Заполним весь экран символом ASCII 176 ('░')
	     # светло-розовым по синему
	     Fill"░", 1, 1, 80, 25, 13, 1


			2.4.Window.

   Команда : Window.
   Формат  : Window коорд_X, коорд_Y, ширина, высота,
	     цвет_рамки, цвет_фона_рамки,
	     тип_окна,[[ символ, ] или [ код_типа, ]] тень, 
	     [ tr ] или [ символ, цвет_симв, цвет_фона_симв ]
   Описание: Команда Window рисует на экране окно, левый верхний
	     угол   которого  определен   координатами	коорд_X,
	     коорд_Y,  с  заданными  шириной  и  высотой, цветом
	     рамки  и  ее  фона, заданного типа, с тенью или без
	     ( 1 - с тенью,  0  - без  тени ). Нарисованное окно
	     заполняется  внутри заданным  символом с  заданными
	     цветом  символа  и  цветом  его  фона.  Если вместо
	     символа задано слово 'tr' - дальнейшие параметры не
	     требуются, в этом случае окно будет нарисовано  без
                               -6-

	     заполнения области внутри рамки каким-либо символом
	     , то-есть создается "прозрачное" окно.
	     Если  в  качестве  типа  окна  задан  0, после него 
	     необходимо вставить еще один символ. После этого на
	     экране  будет  нарисовано   окно,  составленное  из 
	     заданного  символа.  Тип  окна также можно задавать
	     числом от 1 до 99. Определены только первые 33 окна
	     , если же Вам небходимо получить окно, состоящее из
	     непредсказуемых  символов,  используйте   тип  окна 
	     больше 33.
	     Кроме  того,  тип  окна  можно  определять строкой, 
	     состоящей из четырех символов 'd' или 's'.   Каждый
	     из символов определяет соответствующую сторону окна
	     - первый символ определяет верхнюю сторону, второй-
	     левую сторону, третий - правую, четвертый - нижнюю.
				      1
				   ┌─────┐
				 2 │     │ 3
				   └─────┘
				      4
	     Для этого тип окна нужно указать как  99,  а  затем 
	     строкой определить типы соответствующих сторон.
	     Например: ..., 99, "ssdd",...
	     Символ 'd' - определяет  двойную  сторону,    's' -
	     одиночную.   Например,   строка  "ssdd"   определит
	     следующий тип окна:
			   ┌─────────────────────╖
			   │	                 ║
			   │	                 ║
			   ╘═════════════════════╝
	     Если  заданная  строка  типа  окна  будет содержать 
	     меньше четырех символов,  она  будет  дополнена  по 
	     принципу зеркала.
   Пример  :

	     # Нарисуем окно на весь экран,
	     # с синим цветом рамки на розовом фоне,
	     # двойное, без тени, заполненное внутри
	     # символом ASCII 177 ('▒') светло-зеленого
	     # цвета на черном фоне
	     Window 1, 1, 80, 25, 1, 5, 2, 0, "▒", 10, 0

	     # А теперь в этом окне нарисуем
	     # еще одно окно с шириной в 20 символов,
	     # высотой в 5 символов с белой рамкой на синем
	     # фоне, одиночное, с тенью, заполненное внутри
	     # символом 'Z' светло-красного цвета на
	     # коричневом фоне
	     Window 10, 7, 20, 5, 15, 1, 1, 1, "Z", 12, 6

	     # Нарисуем прозрачное окно типа ssdd,
	     # с синим цветом рамки на розовом фоне,
	     # с тенью 
	     Window 1, 1, 30, 11, 1, 5, 99, "ssdd", 1, tr

	     # Нарисуем прозрачное окно, составленное
	     # из символов '\' зеленым цветом на розовом
	     # фоне, с тенью 
	     Window 30, 10, 30, 11, 2, 5, 0, "\\", 1, tr
                               -7-

	     # Нарисуем прозрачное окно типа "ddds" зеленым
	     # цветом на розовом фоне, с тенью 
	     Window 50, 10, 30, 11, 2, 5, 99, "ddds", 1, tr


			  2.5.1.CursorPos.

   Команда : CursorPos.
   Формат  : Cursor коорд_X, коорд_Y
   Описание: Команда CursorPos устанавливает курсор в  место  на
	     экране с координатами коорд_X, коорд_Y.
   Пример  :
	     # Переместим курсор в позицию 5 строки 20
	     CursorPos 5, 20


			  2.5.2.CursorType.

   Команда : CursorType.
   Формат  : CursorType начальная_строка, конечная_строка
	     CursorType Off
	     CursorType Solid
	     CursorType Normal
   Описание: Команда CursorType устанавливает  размер курсора  в 
	     соответствие      с      заданными       значениями
	     начальная_строка, конечная_строка.
	     Значение начальная_строка должно лежать  в  периоде
	     от 0 до 32 ( при 32 курсор выключается ). 
	     Значение конечная_строка  должно лежать  в  периоде
	     от 0 до 31. 
	     Если  в  качестве  аргумента   команде   CursorType 
	     передается строка Off - курсор   выключается,  если
	     строка Solid - курсор   становится  большим,   если 
	     Normal - курсор принимает свой нормальный размер.
   Пример  :
	     # Выключим курсор
	     CursorType Off
	     # Сделаем смешным
	     CursorType 3, 5
	     # Сделаем большим
	     CursorType Solid
	     # И опять сделаем нормальным
	     CursorType Normal


			  2.6.Sound.

   Команда : Sound.
   Формат  : Sound частота, длительность, длительность_паузы,
		   количество_повторов
   Описание: Команда  Sound  выдает звуковой  сигнал с	заданной
	     частотой (  в герцах ) и  заданной длительности ( в
	     миллисекундах )   заданное  количество_повторов   с
	     заданной длительностью паузы ( в миллисекундах ).
   Пример  :
	     # Пикнем с частотой 100 Гц и длительностью
	     # 700 миллисекунд, с паузой 300 миллисекунд
	     # 3 раза
	     Sound 100, 700, 300, 3
                               -8-

			   2.7.Cls.

   Команда : Cls.
   Формат  : Cls цвет_букв, цвет_фона
   Описание: Команда   Cls  очищает   экран  с	заданным  цветом
	     переднего плана и заданным цветом фона.
   Пример  :
	     # Сделаем экран белым
	     Cls 0, 7


			  2.8.1.SetClock.

   Команда : SetClock.
   Формат  : SetClock"комментарий", поз_ком_X, поз_ком_Y,              
		     цвет_ком, цвет_фона_ком,			       
		     поз_час_X, поз_час_Y,  			       
		     цвет_час, цвет_фона_час			       
   Описание: Команда  SetClock  устанавливает  комментарий   для 
	     часов,   позицию   комментария   по    X,   позицию 
	     комментария  по  Y,  цвет  комментария  и цвет фона
	     комментария, позицию часов по X, позицию часов по Y
	     , цвет цифр часов и цвет фона часов.
	     Вывод  на	экран  текущего  времени  производится с
	     учетом  установленной  страна-зависимой информацией
	     ( режим смены времени и разделитель ).
	     Необходимо  заметить, что	все установки, сделанные
	     командой  SetClock, действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
	     Значения по умолчанию:
	     цвет цифр - 0,
	     цвет фона - 7.
   Пример  :
	     # Высветим часы красным по синему с комментарием 
	     # "Время:" синим по красному в начале верхней
	     # строки
	     SetClock"Время:", 1, 1, 3, 4, 7, 1, 4, 3


			  2.8.2.Clock.

   Команда : Clock.
   Формат  : Clock Off
	     Clock On
   Описание: Команда Clock включает / выключает часы.
	     Если  в  качестве	аргумента  задана  строка  Off -
	     индикация	текущего времени  на экране запрещается,
	     если строка On - индикация разрешается.
	     Необходимо  заметить, что	все установки, сделанные
	     командой	Clock,	 действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
                               -9-

	     Значение по умолчанию:
	     индикация времени разрешена.
   Пример  :
	     # Выключим часы
	     Clock Off
	     # А теперь включим
	     Clock On


			  2.9.1.SetDate.

   Команда : SetDate.
   Формат  : SetDate"комментарий", поз_ком_X, поз_ком_Y,              
		    цвет_ком, цвет_фона_ком,			       
		    поз_даты_X, поз_даты_Y,  			       
		    цвет_даты, цвет_фона_даты			       
   Описание: Команда  SetDate   устанавливает  комментарий   для 
	     даты,    позицию   комментария   по    X,   позицию 
	     комментария  по  Y,  цвет  комментария  и цвет фона
	     комментария, позицию  даты по X, позицию даты  по Y
	     , цвет цифр даты и цвет фона даты.
	     Вывод  на	экран  текущей   даты   производится   с
	     учетом  установленной  страна-зависимой информацией
	     ( формат вывода даты и разделители ).
	     Необходимо  заметить, что	все установки, сделанные
	     командой  SetDate,  действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
	     Значение по умолчанию:
	     индикация даты запрещена.
   Пример  :
	     # Высветим дату красным по синему с комментарием 
	     # "Дата:" синим по красному в начале верхней
	     # строки
	     SetDate"Дата:", 1, 1, 3, 4, 6, 1, 4, 3


			  2.9.2.Date.

   Команда : Date.
   Формат  : Date Off
	     Date On
   Описание: Команда Date включает / выключает индикацию даты.
	     Если  в  качестве	аргумента  задана  строка  Off -
	     индикация	даты  на экране запрещается, если строка
	     On - индикация разрешается.
	     Необходимо  заметить, что	все установки, сделанные
	     командой	Date,	 действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
	     Значение по умолчанию:
	     индикация даты запрещена.
   Пример  :
	     # Выключим дату
	     Date Off
	     # А теперь включим
	     Date On
                              -10-

			2.10.1.Star.
   Команда : Star.
   Формат  : Star Off
	     Star On
   Описание: Команда Star включает / выключает тушение экрана.
	     Если  в  качестве	аргумента  задана  строка  Off -
	     тушение экрана запрещается, если строка On- тушение
	     разрешается.
	     Необходимо  заметить, что	все установки, сделанные
	     командой	Star,	 действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
	     Значение по умолчанию:
	     тушение экрана разрешено.
   Пример  :
	     # Выключим тушение
	     Star Off
	     # А теперь включим
	     Star On

		 
			2.10.2.ExtStar.
   Команда : ExtStar.
   Формат  : ExtStar Off
	     ExtStar On
   Описание: Команда ExtStar включает / выключает запуск внешней
	     программы тушения экрана.
	     Если  в  качестве	аргумента  задана  строка  Off -
	     запускается внутренняя функция,  если строка On - в
	     момент  тушения  экрана  на  выполнение запускается
	     команда, заданная SetStar.
	     Необходимо  заметить, что	все установки, сделанные
	     командой  ExtStar,	 действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
	     Значение по умолчанию:
	     тушение экрана производится внутренней функцией.
   Пример  :
	     # Включим тушение внешней программой
	     ExtStar On
	     # А теперь выключим
	     ExtStar Off


			2.10.3.SetStar.
   Команда : SetStar.
   Формат  : SetStar"команда"
   Описание: Команда SetStar определяет внешний процесс  тушения
	     экрана.
	     Необходимо  заметить, что	все установки, сделанные
	     командой  SetStar,	 действуют   только   во   время
	     выполнения  текущего  .MBE   -  файла.  При  начале
	     выполнения  следующего .MBE  - файла  все установки
	     сбрасываются.
                              -11-

   Пример  :
	     # Каждую минуту будет выполняться dir
	     SetStar"dir/w" 
	     # Включим тушение внешней программой
	     ExtStar On
	     # Подождем минуту
	     AnyKey
	     # А теперь выключим
	     ExtStar Off

		 
			2.10.4.StarDelay.

   Команда : StarDelay.
   Формат  : StarDelay время_ожидания
   Описание: Команда    StarDelay   задает   время  ожидания ( в
	     минутах ) перед  тушением  экрана  при   отсутствии
	     реакции со	стороны  пользователя. 
	     Необходимо  учитывать,  что  StarDelay    сохраняет
	     заданное   значение  только  во  время   выполнения 
	     текущего .MBE - файла.
	     По умолчанию время задержки равно одной минуте.
   Пример  :
	     # Установим время ожидания три минуты
	     StarDelay 3


			 2.11.Command.

   Команда : Command.
   Формат  : Command"команда"
   Описание: Команда  Command  выполняет  заданную  команду  DOS 
	     ( можно использовать для запуска программ ).
   Пример  :
	     # Проверим диск
	     Command"ChkDsk"


			 2.12.AnyKey.

   Команда : AnyKey.
   Формат  : AnyKey
   Описание: Команда AnyKey приостанавливает выполнение текущего
	     .MBE  -  файла  до  тех  пор,  пока пользователь не
	     нажмет любую клавишу.
   Пример  :
	     # Подождем пользователя
	     AnyKey
	     # А теперь выведем сообщение
	     Str"Спасибо за труд!", 5, 5, 14, 3


			  2.13.IfEsc.

   Команда : IfEsc.
   Формат  : IfEsc
   Описание: Команда IfEsc  приостанавливает выполнение текущего
	     .MBE  -  файла  до  тех  пор,  пока пользователь не
	     нажмет клавишу Esc.
                              -12-

   Пример  :
	     # Пример IfEsc
	     Str"Пожалуйста, нажмите Esc", 5, 20, 5, 0
	     # Подождем
	     IfEsc
	     Str"Спасибо!", 5, 21, 5, 0


			  2.14.YesNo.

   Команда : YesNo.
   Формат  : YesNo
   Описание: Команда YesNo  приостанавливает выполнение текущего
	     .MBE  -  файла  до  тех  пор,  пока пользователь не
	     нажмет  клавишу  'Y'  или	клавишу  'N'  (  в любом
	     регистре ). После этого  выполнение текущего .MBE -
	     файла прекращается  и устанавливается код	выхода (
	     для .BAT - файла - Errorlevel ).
	     Возвращаемые значения:
	     при нажатии 'N' возвращается 0,
	     при нажатии 'Y' возвращается 1,
	     при ошибке возвращается 255.
   Пример  :
	     # Пример YesNo
	     Str"Вы хотите выйти в DOS?", 1, 1, 12, 0
	     YesNo

	     @Echo Off
	     Rem Часть	.BAT  - файла,	в которой обрабатывается
	     Rem код выхода от YesNo
	     Rem Вызываем .MBE - файл, заканчивающийся примером,
	     Rem приведенным выше
	     :Main
	     MBE YesNoDem
	     If Errorlevel 255 Goto Error
	     If Errorlevel   1 Goto Yes
	     If Errorlevel   0 Goto No

	     :Yes
	     Echo Выходим в DOS
	     Goto End

	     :No
	     Echo Не выходим
	     Goto Main

	     :Error
	     Echo Ошибка в работе программы!

	     :End
                              -13-

			 2.15.KeyList.

   Команда : KeyList.
   Формат  : KeyList"abcdefgh"
   Описание: Команда	KeyList    приостанавливает   выполнение
	     текущего .MBE - файла  до тех пор,пока пользователь
	     не  нажмет одну  из клавиш  ( в  любом регистре  ),
	     заданных в  списке при вызове  команды. После этого
	     выполнение текущего .MBE - файла прекращается и код
	     выхода  устанавливается  в  соответствие  с номером
	     нажатой клавиши в заданном списке.
	     Клавиша   может  быть  задана  как  латинской, так и
	     русской буквой( в альтернативной кодировке ).
	     Регистр буквы не имеет значения.
	     Возвращаемые значения:
	     при нажатой первой клавише возвращается 1,
	     при нажатой второй - 2,
	     при третьей - 3 и т.д.,
	     при ошибке возвращается 255.
   Пример  :
	     # Пример KeyList
	     KeyList"abc"

	     @Echo Off
	     Rem Пример .BAT - файла, обрабатывающего код выхода
	     Rem от KeyList
	     MBE KListDem
	     If Errorlevel 255 Goto Error
	     If Errorlevel   3 Goto C
	     If Errorlevel   2 Goto B
	     If Errorlevel   1 Goto A
	     Goto End

	     :C
	     Echo Нажато 'C'
	     Goto End

	     :B
	     Echo Нажато 'B'
	     Goto End

	     A:
	     Echo Нажато 'A'
	     Goto End

	     :Error
	     Echo Ошибка в работе программы!

	     :End


			 2.16.GetKey.

   Команда : GetKey.
   Формат  : GetKey
   Описание: Команда GetKey приостанавливает выполнение текущего
	     .MBE  -  файла  до  тех  пор,  пока пользователь не
	     нажмет   любую  клавишу.	После  этого  выполнение
	     текущего  .MBE -  файла прекращается  и код  выхода
	     устанавливается  равным  коду  нажатой  клавиши.  В
	     случае  нажатия  расширенной  клавиши  возвращается
	     второй байт ее кода ( т.е.  если нажать F10 ( код 0
	     - 68 ) код выхода будет равен 68 ).
                              -14-

   Пример  :
	     # Пример GetKey
	     GetKey

	     @Echo Off
	     Rem .BAT - файл
	     MBE GetKeyDm
	     If Errorlevel 255 Goto Error
	     If Errorlevel 128 Goto NoASCII
	     Echo Код нажатой клавиши меньше 127
	     Goto End

	     :NoASCII
	     Echo Код нажатой клавиши больше 127
	     Goto End

	     :Error
	     Echo Ошибка в работе программы!

	     :End


			 2.17.Password.

   Команда : Password.
   Формат  : Password"пароль", количество_попыток, 
		     частота, длительность
   Описание: Команда   Password   приостанавливает    выполнение
	     текущего   .MBE   -   файла    до  тех   пор,  пока
	     пользователь не наберет заданный  пароль  или  пока
	     он не исчерпает данное ему количество попыток.
	     После  этого  выполнение  текущего   .MBE  -  файла
	     прекращается   и   код   выхода  устанавливается  в
	     соответствие с результатом опроса пользователя.
	     Параметры частота и длительность определяют сигнал,
	     который  будет  слышен   при   вводе  пользователем
	     неправильного пароля.
	     Возвращаемые значения:
	     при угаданном пароле возвращается 1,
	     если пароль не угадан или же вышло количество даных
	     пользователю попыток - возвращается 0,
	     при ошибке возвращается 255.
	     Внимание!    При отгадывании пароля играет роль его 
			  регистр, то есть строки 
			  Password"Пароль", 3, 3000, 100
			  и
			  Password"пароль", 3, 3000, 100
			  приведут к различным результатам.
   Пример  :
	     # Пример Password
	     Password"key", 3, 3000, 100

	     @Echo Off
	     Rem .BAT - файл
	     MBE PsswrdDm
	     If Errorlevel 255 Goto Error
	     If Errorlevel 1 Goto Yes
	     Echo Не угадал!
	     Goto End
                              -15-

	     :Yes
	     Echo Угадал!!
	     Goto End

	     :Error
	     Echo Ошибка в работе программы!

	     :End


			 2.18.Manager.

   Команда : Manager.
   Формат  : Manager кол-во_поз,
		     коорд_X1, коорд_Y1, длина1, гор_кл1,
		     коорд_X2, коорд_Y2, длина2, гор_кл2,
		     ...
		     коорд_Xn, коорд_Yn, длинаn, гор_клn,
		     цвет_букв, цвет_фона, нач_поз, тип_меню
   Описание: Команда  Manager  управляет работой  меню. Курсор в
	     меню  будет  представлен  в  виде строки  заданного
	     цвета,   двигающейся    по   экрану.    Информация,
	     находящаяся  на  экране в месте  положения курсора,
	     будет переписана с	заданными цветом  букв и  цветом
	     фона.   Параметр  кол-во_поз   должен   быть  равен 
	     количеству позиций курсора  в  меню, за  ним должна
	     следовать координата  по  X  и координата по  Y для
	     первой  позиции, длина  курсора в  первой  позиции,
	     горячая  клавиша  для выбора этой позиции. Дальше в
	     том-же  порядке  должны  следовать  описания других
	     позиций   курсора,  после  них  должны  быть заданы
	     параметры цвета букв и цвета фона в текущей позиции
	     курсора,  номер позиции, на  которой  курсор  будет
	     стоять при запуске, тип меню.
	     Горячая  клавиша  может  быть задана как латинской, 
	     так и русской буквой( в альтернативной кодировке ).
	     Регистр буквы не имеет значения.
	     Параметр типа меню может иметь следующие значения:
	     0	-  меню  горизонтального типа ( "стрелка влево",
		   "стрелка вправо" ),
	     1	-  меню  вертикального	типа  ( работают клавиши
		   "стрелка вверх", "стрелка вниз" ),
	     2	-  иерархическое ( все четыре клавиши ).
	     Кроме стрелок, действуют клавиши  Home и End. Выбор
	     осуществляется клавишами Enter и Space.
	     После   исполнения   команды   Manager   выполнение
	     текущего	 .MBE	 -    файла    прекращается    и
	     устанавливается код выхода.
	     Возвращаемые значения:
	     0	 -  была нажата клавиша Esc,
	     255 -  обнаружена ошибка,
	     любое другое число - номер выбранной позиции.
   Пример  :

# Это кусочек программы Main.MBE
# Строка перенесена для наглядности
Manager 5,  2,1,8,O,  10,1,7,I,  17,1,8,W,  25,1,9,M,  34,1,7,Q,
	8,5,  1,0
                              -16-

	     @Echo Off
	     Rem А это кусочек MBEdemo.BAT
	     Rem Демонстрация работы программы	MBE
	     MBE Main
	     If Errorlevel 255 Goto Break
	     If Errorlevel 5 Goto Quit
	     If Errorlevel 4 Goto Manager
	     If Errorlevel 3 Goto Window
	     If Errorlevel 2 Goto Input
	     If Errorlevel 1 Goto Output
	     If Errorlevel 0 Goto Quit
	     Goto End


			   3.Разное.

   В состав комплекта программ MBE входят:
   1. MBE.exe	  - программа MBE.

		  File Name:  mbe.exe
		       Size:  28,090
		       Date:  9-07-1991

   2. MBEread.me  - этот файл.

		  File Name:  mberead.me
		       Size:  29,909
		       Date:  11-07-1991

   3. MBEfast.hlp - карта быстрой ссылки.

		  File Name:  mbefast.hlp
		       Size:  10,874
		       Date:  11-07-1991

   4. MBEdemo\	  -   файлы   "демонстрации"  возможностей   MBE
		      ( примеры ).

   Программа  не  является  коммерческим  продуктом,  поэтому Вы
можете распространять и копировать ее свободно, при условии:
   1.Бесплатного копирования и распространения.
   2.Распространения ИСКЛЮЧИТЕЛЬНО в оригинальной форме.

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

					 281905		    УССР
					 Хмельницкая	 область
					 г. Каменец - Подольский
					 улица Богуна,	  дом 54
					 Мельник Олег Васильевич
