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



 

Часть 4


                     Команды управления блоком
                     -------------------------

         Команды управления блоком позволяют вам определить область текста, которую затем можно
    копировать,  перемещать,  удалять,  записывать в файл, смещать или импортировать из другого
    окна редактора.  Когда блок определен,  его текст выделяется другим цветом.  Для  изменения
    цвета  переднего  плана  и/или  фона  блока  текста  вы  можете  использовать клавиши <ФСД>
    (ScrollLock) (см. "Изменения цвета").

         <УПР+K B> (Ctrl+K B) - установка начала блока.

         <УПР+K K> (Ctrl+K K) - установка конца блока.

         <УПР+K T> (Ctrl+K T) - выделение слова.

         <УПР+K L> (Ctrl+K L) - выделение строки.

         <УПР+K H> (Ctrl+K H) - переключатель выделения блока.

         <УПР+K C> (Сtrl+K C) - копирование блока в текущую позицию курсора.

         <УПР+K V> (Ctrl+K V) - перемещение блока в текущу позицию курсора.

         <УПР+K Y> (Ctrl+K Y) - удаление блока.

         <УПР+K W> (Ctrl+K W) - запись содержимого блока в файл.

         <УПР+K R> (Ctrl+K R) - чтение содержимого файла в блок.

         <УПР+K G> (Ctrl+K G) - получение блока из различных окон редактора и копирование его в
    текущую позицию курсора. Это удобный способ импортирования текста из других окон редактора.

         <УПР+K P> (Ctrl+K P) - вывод содержимого блока на стандартное печатающее устройство.

         <УПР+K I> (Ctrl+K I) - смещение текста блока. Если установлено смещение положительное,
    блок будет сдвинут вправо, если отрицательное - блок будет сдвинут влево.


                          Режимы редактора
                          ----------------

         В этом режиме устанавливают режимы редактирования. Режимы возможны следующие:

         <УПР+O V> (Ctrl+O V) - переключение режимов "Вставка" и "Затирание" (то же,  что <ВСТ>
    (Ins) и <УПР+V> (Ctrl+V)).

         <УПР+O I> (Ctrl+O I) - включение/выключение режима "Автосмещение". Если режим включен,
    начало вставляемой строки будет автоматически смещаться к началу предыдущей  строки.  Также
    клавиша <Табуляция> (Tав) перемещает начало слова к началу слова в предыдущей строке.

         <УПР+O T>  (Ctrl+O  T) - переключение режимов вставки необходимого количества пробелов
    или одиночного символа табуляции при нажатии на клавишу <Табуляция> (Tав).

         <УПР+O W> (Ctrl+O W) - установка размера табуляции.  В дополнение кперечисленным  выше
    вариантам редактора есть системные варианты, которые можно найти в меню "Режимы редактора",
    расположенном под основным меню.  Эти варианты позволяют вам устанавливать режимы автомати-
    ческого сохранения, имя файла и расширения по умолчанию, количество резервных копий файлов,
    верхнюю и нижнюю границы прокрутки текста в окне редактора.  Эти возможности описаны в раз-
    делах "Верхняя граница прокрутки" и "Нижняя граница прокрутки".

                           Поиск и замена
                           --------------

         Режим поиска позволяет вам выполнять поиск заданной строки во всем файле; режим замены
    позволяет вам заменить указанную строку символов на другую.

         <УПР+Q F>  (Ctrl+Q F) - запрашивается строка для поиска,  затем производится поиск за-
    данной строки. Если строка найдена, курсор перемещается в начало найденной строки. См. ниже
    для дополнительной информации о вариантах поиска.

         <УПР+Q A> (Ctrl+Q A) - запрашивается строка для поиска и строка-заменитель, затем про-
    изводится поиск заданной строки и замена ее на строку-заменитель. См. ниже для дополнитель-
    ной информации о вариантах замены.

         <УПР+L> (Ctrl+L)  - повторение последнего поиска или замены с той же строкой и вариан-
    том.

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

         B - поиск или замена назад от позиции курсора по направлению к началу файла.

         U -  при  сравнении  игнорировать в строке различие между символами верхнего и нижнего
    регистров.

        W - при поиске строки выполнять сравнение только с целыми словами.

         G - выполнить глобальную замену во всем файле.

         L - выполнить локальную замену в текущем отмеченном блоке.

         R - выполнить глобальную замену от позиции курсора до конца файла. Если установлен ре-
    жим B, замена выполняется от позиции курсора до начала файла.

         N - выполнить замену без запроса на подтверждение.

         number - выполнить поиск или замену заданное число раз.

         Вышеописанные варианты могут комбинироваться. Например, вариант GUN выполняет глобаль-
    ную замену без чувствительности к регистру клавиатуры и без  запроса  на  подтверждение.  В
    строке  поиска символ <УПР+A> (Ctrl+A) является универсальным и сравнивается с любым симво-
    лом.  Универсальный символ может быть  введен  в  строку  поиска  нажатием  клавиш  <УПР+P>
    (Ctrl+P) и <УПР+A> (Ctrl+A).

                      Другие команды редактора
                      ------------------------

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

         <УПР+U> (Ctrl+U) - преобразование слова в текущей позиции курсора в  верхний  регистр.
    Это может быть полезно для Modula -2 (зарезервированные слова).

         <ЗАГ+F7> (Shif+F7) - установить для текущего слова тот же регистр,  что и в предыдущем
    вхождении данного слова в файле. Может быть использовано для корректировки ошибок в Modula-
    2 при использовании верхнего или нижнего регистра клавиатуры.

         <УПР+Q 1> (Ctrl+Q 1) - установить маркер 1 в текущей позиции курсора.

         <УПР+Q 2> (Ctrl+Q 2) - установить маркер 2 в текущей позиции курсора.

         <УПР+K 1> (Ctrl+K 1) - перейти к маркеру 1.

         <УПР+K 2> (Ctrl+K 2) - перейти к маркеру 2.

         Маркеры могут быть использованы для отметки различных позиций в файле при редактирова-
    нии или при перемещении текста.

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

         F8 - перейти к следующей ошибочной позиции после текущей позиции курсора.

         F7 - перейти к ближайшей ошибочной позиции перед текущей позицией курсора.


                    КОМПИЛЯЦИЯ И ЗАПУСК ПРОГРАММ
                    ============================

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

                             Компиляция
                             ----------

         <ДОП+C> (Alt+C)

         Для начала компиляции файла вы можете либо выбрать в основном меню режим "Компилирова-
    ние",  либо нажать комбинацию клавиш <ДОП+C> (Alt+C). Если вы редактировали файл с расшире-
    нием .MOD,  компилятор начнет обрабатывать этот файл.  В противном случае вы должны  будете
    указать имя файла для компиляции.
         После выполнения компиляции появится следующее окно:

                   ========JPI Modula-2==========
                   ||                          ||
                   || Compiling  PROTOCOL.MOD  ||
                   || Line 2128                ||
                   || Compilation completed    ||
                   || No Errors Found          ||
                   || Press any key            ||
                   ||                          ||
                   ==============================

         Во время компиляции в окне компилятора выводится информация  об  имени  компилируемого
    файла, текущем файле определений и текущей компилируемой строке. Дополнительно отображается
    относительный размер уже откомпилированной части файла в виде столбика термометра и индика-
    тор активности диска,  выводимый в правом верхнем углу при каждом обращении к ДОС.  В любой
    момент вы можете прервать компиляцию нажатием клавиши <КЛЮЧ> (Esc).
         Различные режимы компилятора,  которые могут быть установлены при генерации информации
    отладчика,  модифицируют поведение компилятора. Эти режимы описаны в разделе "Режимы компи-
    лятора".

                         Ошибки компиляции
                         -----------------

         В процессе компиляции сообщается количество обнаруженных ошибок.  Когда информация  об
    ошибках сообщена,  вы можете немедленно отредактировать файл, нажав клавишу <ВВОД> (Enter).
    При этом редактирование в окне редактирования ошибок начнется точно с позиции  первой  най-
    денной ошибки. В нижней строке окна отображается ошибка, содержащаяся в текущей строке. Для
    перемещения между обнаруженными ошибками вы можете использовать клавишу  при  перемеще-
    нии к следующей ошибке и клавишу  для перемещения к предыдущей ошибке.  Позиции найден-
    ных ошибок по мере редактирования текста будут корректироваться, что позволит вам исправить
    все  найденные ошибки.  Компилятор хранит информацию только о 30 сообщениях об ошибке.  При
    превышении этого предела компиляция прерывается. См. раздел "Редактор" для подробной инфор-
    мации о редактировании файла.
         После того, как вы сделали все нужные исправления, вы можете продолжить компиляцию на-
    жатием клавиш <КЛЮЧ> (Esc) или <ДОП+C> (Alt+C).
         Если вы хотите всегда прерывать компиляцию при обнаружении первой же ошибки, вы можете
    установить режим "Остановка при первой ошибке" (см.  раздел "Остановка при первой ошибке").

                           Главный модуль
                           --------------

         Функции Make,  Run, Link запрашивают имя главного модуля. Эта информация запрашивается
    у  вас перед каждым выполнением данных команд.  Последнее введенное имя главного модуля ис-
    пользуется для выбора по умолчанию.

                     Построить программу (Make)
                     --------------------------

         <ДОП+M> (Alt+M)

         Компилятор JPI  Modula-2 имеет автоматические Make-средства.  Они позволяют определять
    зависимости и автоматически перекомпилировать все данные модулей в вашей программе.
         Затем, если компиляция всех файлов завершилась успешно, исполняемый (.EXE) файл созда-
    ется путем объединения объектных модулей вместе.
         Например, если  вы  изменили  отдельный файл определений,  Make-средства автоматически
    обеспечивают, что все модули, импортирующие измененное определение, будут перекомпилированы
    для создания согласованной программы.
         Для вызова Make-команды вы можете выбрать режим Make в основном меню или нажать комби-
    нацию  клавиш <ДОП+M> (Alt+M).  После ввода имени главного модуля отображается ниже изобра-
    женное окно Make и обработка начинается.


               ============JPI Modula-2===========
               ||                               ||
               ||  Making DBSEARCH              ||
               ||                               ||
               ||  DBSEARCH   No Errors found   ||
               ||  DBREAD     No Errors found   ||
               ||             Make completed    ||
               ||                               ||
               ||  Linking DBSEARCH             ||
               ||  Link completed               ||
               ||  Press any key.               ||
               ||                               ||
               ===================================


         В окне режима Make отображаются имена всех компилируемых файлов, затем, если все файлы
    скомпилированы без ошибок,  отображается информация о ходе компоновки программы.  Если были
    обнаружены ошибки,  операция Make прерывается и,  также как при компиляции, вы можете сразу
    исправить ошибки,  нажав клавишу <ВВОД> (Enter). После завершения всех исправлений вы може-
    те, нажав на клавишу <КЛЮЧ> (Esc) или <ДОП+M> (Alt+M), вновь запустить операцию Make.
         Вы можете  прервать  операцию  Make  в  любой момент времени,  нажав на клавишу <КЛЮЧ>
    (Esc).
         Если операция  Make завершена без ошибок,  вы можете запустить завершенную программу в
    системе JPI или вне ее.
         Для компиляции  всех  модулей  программы вы можете использовать в меню режимов команду
    Make-All. При этом перекомпилируются все необходимые для программы файлы, независимо от не-
    обходимости компиляции. См. режим Make-All.

                          Запуск программ
                          ---------------

         <ДОП+R> (Alt+R)

         Вы можете выполнить вашу программу в системе, используя команду Run из основного меню,
    или нажав клавишу <ДОП+R> (Alt+R).  Перед выполнением предварительно автоматически исполня-
    ется операция Make, если после последней обработки Make выполнялось редактирование (предва-
    рительно установите в состояние ВКЛ режим Авто-Make,  см. раздел "Авто-Make"). Затем откры-
    вается окно в полный экран,  в котором выполняется ваша программа.  После завершения  вашей
    программы вам будет предложено нажать на клавишу <КЛЮЧ> (Esc) для возврата в систему,  в то
    же состояние, которое вы оставили перед этим. Вы можете перемещать окно с запросом, исполь-
    зуя клавишу <ФСД> (ScrollLock), если необходимо рассмотреть что-либо под ним.
         Для уточнения времени выполнения вашей программы должен быть установлен  режим  "Timed
    Run" (см. "Timed Run").

                     Ошибки времени выполнения
                     -------------------------

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

         Индекс вышел за пределы                      (* $I+ *)
         Контроль изменения индекса массива

         Арифметическое переполнение                  (* $D+ *)
         Контроль переполнения при арифметических операциях

         Переполнение стека                           (* $S+ *)
         Контроль переполнения стека при вызовах процедур.
         Вы можете не продолжать выполнение программы после возникновения этой ошибки.

         Значение вышло за пределы поддиапазона       (* $R+ *)
         Контроль выхода за пределы поддиапазона

         Перечисляемое значение вышло за предел       (* $R+ *)
         Контроль выхода за предел перечисляемых значений

         Разыменование пустого указателя              (* $Z+ *)
         Контроль разыменования указателя, содержащего значение
         NIL (т.е. непроинициализированного указателя)

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

       Run Time Error [AAAA/SSSS:0000] Error Type Continue (y/n),

         где Error Type (тип ошибки) - одна из ошибок времени выполнения,  приведенная в списке
    выше,  AAAA - абсолютный сегмент ошибки, SSSS - относительный сегмент (который можно видеть
    в карте загрузки) и 0000 - смещение ошибки. Для поиска ошибок времени выполнения в исходном
    тексте программ вы можете использовать команду Find-Error (поиск ошибки) в режимах выполне-
    ния  Option  Run.  Предварительно у вас будет запрошено имя основного модуля и адрес ошибки
    (SSSS:0000),  затем будет осуществлен поиск и отображена позиция ошибки в  исходном  тексте
    (см. раздел "Поиск ошибки").


                        Компоновка программы
                        --------------------

         <ДОП+L> (Alt+L)

         Компоновщик JPI  Modula-2 - крайне быстрый компоновщик.  Это значит,  что в компоновке
    используются только действительно использующиеся в программе коды,  при этом компоновщик не
    нуждается в новой дополнительной информации,  кроме имени основного модуля,  для компоновки
    программы.
         Уже было описано,  что компоновщик вызывается, как часть в Make- и Run- последователь-
    ностях. Также есть возможность вызывать компоновщик самостоятельно. Для вызова компоновщика
    вы  должны  в основном меню выбрать режим Link (компоновщик),  который затем запросит у вас
    имя основного модуля и начнет выполнять компоновку. Составляющие объектные файлы компонуют-
    ся вместе в исполняемый (.EXE) файл,  а также создается файл карты загрузки (.MAP),если ре-
    жим Map-File (файл карты загрузки) в меню режимы компоновщика  установлен  в  состояние  ON
    (ВКЛ).  Другие параметры, управляющие режимами компоновщика, описаны в разделе "Режимы ком-
    поновщика".

                         Ошибки компоновки
                         -----------------

         Если при  компоновке вашей программы обнаружены ошибки,  после завершения компоновки в
    окне ошибок выводится информация об ошибках.  Для выхода из окна ошибок  вы  должны  нажать
    клавишу <КЛЮЧ> (Esc).  Сообщения об ошибках также выводятся в файл карты загрузки. Если при
    компоновке обнаружены ошибки,  EXE-файл не создается.  Некоторые же фатальные ошибки  могут
    подавляться путем установки режима подавления предупреждающих сообщений в меню режимов ком-
    поновщика. Ниже приведены возможные режимы компоновки:

         Date/time error (ошибка даты/времени) - подразумевается, что вы используете несогласо-
    ванные  во времени/дате модули в вашей программе.  Вы можете использовать операции Make или
    Make-All для удаления этих несоответствий (см. "Обработка программы").

         Non-main module (нет главного модуля) - это сообщение  выводится,  если  вы  пытаетесь
    скомпоновать модуль реализации вместо основного модуля.

         Bad object file (плохой объектный файл) - это сообщение возникает, если вы используете
    запорченный или ошибочный объектный файл.

         Unexpected segment def (неожиданное определение сегмента) - это  сообщение  возникает,
    если вы используете запорченный или ошибочный объектный файл.

         Unexpected group  def (неожиданное определение группы) - это сообщение возникает, если
    вы используете запорченный или ошибочный объектный файл.

         Not enough memory (недостаточно памяти) - в этом случае система не  имеет пространства
    для  компоновки  вашей  программы.  Вы должны попытаться использовать отдельный компоновщик
    (см. "Отдельные компилятор и компоновщик").

         Group/Segment exceeds 64K (группа/сегмент превышает 64К) - это сообщение может  возни-
    кать, если вы используете директивы компилятора $M или $D и при этом создаете сегмент боль-
    ше, чем 64К.

         Definition duplicated (повторное определение) - многократное определение символа.

         Fixup overflow (переполнение организации) - неверная организация.

         Symbol is Unresolved (неразрешимый символ) - описание неразрешимого символа.

         Последние три ошибки не могут возникнуть в обычной программе,  написанной на Modula-2,
    но они могут случаться, когда компонуются объектные файлы других языков или ассемблера.

                             МЕНЮ ОПЦИЙ
                             ==========

         <ДОП+O> (Alt+O)

         Система JPI Modula-2 разработана как очень гибкая  система,  позволяющая  адаптировать
    себя  под  ваши особенные потребности и предпочитаемые возможности.  С этой целью каждая из
    основных компонент имеет набор режимов,  которые вы можете изменять. Эти режимы сохраняются
    в файле сеанса и файле конфигурации,  что позволяет вам установленные режимы запоминать при
    выходе из системы.
         Меню режимов  может быть вызвано из основного меню при помощи клавиши <ДОП+O> (Alt+O).
    Это меню содержит пять подменю:  Compiler (компилятор), Linker (компоновщик), Run (исполне-
    ние), Editor (редактор) и Setup (установка). Меню также содержит соманду Make-All.

                         Опции компилятора
                         -----------------

         Ниже приведены опции компилятора, описанного в разделе "Компилятор".

         E - останов после первой ошибки.
         В случае,  если режим установлен (ON),  компиляция прерывается после первого сообщения
    об ошибке, позволяя вам немедленно скорректировать ошибку и повторно скомпилировать файл.
         Если режим отключен, запоминается до 30 ошибок готовых к коррекции.

         F - контроль имени файла.
         Этот режим обычно установлен (ON) и заставляет компилятор контролировать, совпадают ли
    имена модулей с именами файлов,  их содержащих. Если режим сброшен (OFF), компилятор не со-
    общает о несогласовании имен модулей и файлов.

         N - номера строк.
         Если включено (ON), компилятор будет генерировать номера строк в .MAP-файле. Эти номе-
    ра строк могут быть использованы для определения местонахождения строки, которая исполняет-
    ся при отладке программы, а также могут использоваться отладчиком на уровне исходного текс-
    та.

         V - изменяемые переменные.
         Если установлено (ON),  компилятор будет хранить все переменные в памяти. Если сброшен
    (OFF), будут использоваться регисты, где это возможно. Этот режим полезен при отладке прог-
    раммы, так как переменные в памяти могут быть проконтролированы, но в других случаях обычно
    опция отключена (OFF).

                         Опции компоновщика
                         ------------------

         Эти режимы  управляют операциями компоновщика,  описанного в разделе "Компоновка прог-
    раммы".

         M - файл карты загрузки.
         Если установлено (ON), компоновщик генерирует текстовый MAP-файл, который содержит ин-
    формацию о сегментах,  о месте расположения процедур и глобальных переменных,  информация о
    номерах строк и расположении выявленных ошибок времени выполнения, а так же сгенерированные
    сообщения   компоновщика   об   ошибках.   Файлу   карты   загрузки    присваивается    имя
    MainModuleName.MAP.  Если режим отключен, MAP-файл не генерируется. Формат сгенерированного
    MAP-файла совместим с форматом файла карты загрузки фирмы Microsoft и может быть  использо-
    ван при отладке программ такими отладчиками, как Microsoft Symdeb и CodeView.

         I - инициализация сегментов.
         Если установлено (ON), компоновщик инициализирует нулями области сегментов обычно неи-
    нициализируемых данных. Это не требуется для программ, написанных на Modula-2, так как дан-
    ные не предполагают инициализации.  Поэтому обычно этот режим сброшен (OFF),  что позволяет
    создавать более компактные EXEфайлы.

         S - подробная карта загрузки для сегментов.
         Если режим установлен (ON),  генерируется полная сегментная карта загрузки для каждого
    сегмента,  включаемого при компоновке.  Это обеспечивает дополнительной информацией для от-
    ладки, но обычно этот режим отключен (OFF), так как при этом генерируется слишком много ин-
    формации.

         C - чувствительность компоновщика к регистрам клавиатуры.
         Если установлено (ON), компоновщик различает идентификаторы с верхним и нижним регист-
    рами клавиатуры.  Это обычно требуется для Modula-2, в которой различаются регистры клавиа-
    туры. Режим может быть отключен (OFF), когда компонуются другие языки или ассемблерный код.

         W - подавление предупреждающих сообщений.
         Если режим  установлен,  компоновщик подовляет не фатальные сообщения об ошибках.  См.
    раздел "Ошибки компоновщика" для подробной информации об ошибочных сообщениях компоновщика.


                           Опции запуска
                           -------------

         Опции выполнения изменяют действия команды "Выполнить" (Run), описанной в разделе "Вы-
    полнение программ".

         C - командная строка.
         Позволяет ввести командную строку ДОСа,  которая передается программе,  запущенной  на
    выполнение из среды JPI Modula -2.

         A - автоматический контроль версий (Auto Make).
         Если установлено "ON",  то перед запуском программы будет сделан автоматический  конт-
    роль версий, чтобы обеспечить соответствие программы текущей дате.

         T - хронометрированное выполнение.
         Если установлено "ON",  то время выполнения программы выдается на экран по  завершении
    программы. Формат времени: H:M:S:HS, где H - часы, M - минуты, S - секунды, HS - сотые доли
    секунд; исключается время, требуемое на загрузку программы с диска.

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

         Run Time Error [AAAA/SSSS:0000]. Continue (y/n),

         где SSSS:0000 - адрес ошибки.

         Эта команда не требуется,  если программа исполняется из среды, поскольку ошибка лока-
    лизуется автоматически.  Примите во внимание,  что для поиска ошибки  выполнения  требуется
    MAPфайл.





                        Опции редактирования
                        --------------------

         Опции редактора изменяют действия редактора среды JPI Modula-2, которые описаны в раз-
    деле "Редактор".

         A - автоматическое сохранение файлов.
         Будучи установлена в "ON" эта опция заставляет редактор сохранять все измененные файлы
    автоматически когда либо программа выполняется,  либо осуществляется вход в DOS-shell, либо
    выход из среды JPI Modula-2.  Это гарантирует, что, если какаялибо программа будет разруше-
    на,  редакторские правки не будут потеряны.  Она также позволяет программам, выполненным из
    среды JPI Modula-2,  читать последние версии отредактированных файлов. В случае "OFF" среда
    будет запрашивать, сохранять ли отредактированные файлы в момент выхода из среды, но не бу-
    дет автоматически сохранять файлы перед выполнением программ.

         F - файлы по умолчанию.
         Эта опция позволяет вам установить имена файлов,  устанавливаемых по умолчанию,  в мо-
    мент первого входа в окно редактора.  Файлы по умолчанию первоначально установлены в *.MOD,
    но могут быть изменены, чтобы быть разными для каждого редакторского окна, отражая ваше ис-
    пользование этого окна. Например, вы можете захотеть установить файлы по умолчанию для окон
    2 и 4 в *.DEF с целью быстро выбрать файлы описаний для редактирования в этих окнах.

         E - расширение по умолчанию.
         Эта опция позволяет вам установить расширения по умолчанию, которые добавляются к име-
    нам файлов, вводимым без расширения. Расширение по умолчанию может быть изменено для каждо-
    го окна. Первоначально все расширения по умолчанию установлены в .MOD.

         N - число резервных копий.
         Позволяет установить количество резервных файлов, которые возвращаются при каждом сох-
    ранении файла. Пределы значений 0-9. 0 означает, что ни одной резервной копии не создается.
    Первый наиболее свежий резервный файл имеет расширение .BAK, второй - .BK2, третий - .BK3 и
    т.д. Число копий изначально установлено в 1.

         T - верхняя зона прокрутки.
         Устанавливает число  строк от вершины,  от которых редакторское окно начинае прокрутку
    при движении вверх.  Изначальное значение 0.  Увеличение этого значения позволяет обеспечи-
    вать нахождение видимых строк над курсором.

         B - нижняя зона прокрутки.
         Устанавливает число строк от конца файла,  от которых редакторское окно начинает прок-
    рутку при движении вниз. Изначальное значение - 1. Увеличивая это значение, вы можете обес-
    печить нахождение видимых строк ниже курсора.

                          Опции установки
                          ---------------

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

         C - проверка снежения CGA.
         Эту опцию  нужно  установить в "ON",  если ваш монитор CGA "снежит" при выведении окон
    среды. При "ON" выведение окон сравнительно медленнее. По умолчанию - "OFF".

         B - прокрутка БИОСа.
         Если "ON",  эта  опция устанавливает режим,  при котором прокрутка окон редактора осу-
    ществляется вызовом БИОСа IBM. Этот режим может вызвать ускорение прокрутки, когда проверка
    снежения CGA установлена в "ON", но также может вызвать мерцание экрана во время прокрутки.
    Обычно режим установлен в "OFF".

         H - верхний фон.
         Устанавливает включение  верхних фоновых цветов,  достижимых CGA IBM.  См.  "Изменения
    цветов" для деталей.

         X - сплошной курсор.
         Если "ON", то курсор будет в виде сплошного мигающего блока, если "OFF", то нормальной
    мигающей черточкой подчеркивания.

         R - перезагрузить файл переназначения.
         Загружает новый файл переназначения, замещающий все предыдущие. См. "Файл переназначе-
    ния".

         L - загрузить опции/окна.
         Загружает .CFG файл, который был прежде сохранен командой "Сохранить опции/окна". Заг-
    ружает цвет, положение и размер каждого окна и все значения опций.

         S - сохранить опции/окна.
         Сохраняет установки опции и окна в файл .CFG, который затем может быть загружен коман-
    дой "Загрузить опции/окна", описанной выше. Это позволяет вам быстро сменить различные кон-
    фигурации среды.


                      Построить все (Make All)
                      ------------------------

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



                        ИНФОРМАЦИОННОЕ ОКНО
                        ===================

         Быстрый вызов  <ДОП+I> (Alt+I)

         Информационное окно  содержит  полезную информацию о текущем значении среды.  Включает
    следующее:

         - дата и время;
         - текущий зарегистрированный диск и директория;
         - имена файлов и текущий размер редактируемых файлов;
         - свободная память в среде;
         - свободная память на диске.


                        ФАЙЛ ПЕРЕНАЗНАЧЕНИЙ
                        ===================

         В пределах среды JPI Modula-2 возможно определить путь поиска, по которому файлы нахо-
    дятся в файловой системе ДОСа. Это позволяет вам помещать различные виды файлов в различные
    поддиректории.  Файл, который определяет эти пути поиска, является простым текстовым файлом
    M2.RED, содержащим одну или более строк формата:

            MatchName = DirectoryPath { ; DirectoryPath }

         MatchName есть спецификация имени файла,  которая может содержать "дикие" символы (* и
    ?), и DirectoryPath есть расположение для этих файлов, которые согласуются с MatchName. Пу-
    ти к нескольким оглавлениям могут определяться посредством их разделения с помощью ";". Ес-
    ли существует более, чем одно описание пути оглавления, каждый путь будет искаться последо-
    вательно до тех пор, пока файл не будет найден.
         Это лучше продемонстрировать на примере.  Предположим,  что M2.RED содержит  следующий
    текст:

                    *.DEF = .;\M2\LIB;\NIGEL\MOD
                    *.OBJ = \M2\OBJ
                   M2.ERR = \M2\EXE
                   M2.$$$ = \M2\EXE
                   M2.OVL = \M2\EXE
                   M2.MNU = \M2\EXE

         Затем всякий раз,  когда имя файла, которое согласуется с *.DEF, определяется, окруже-
    ние сперва пробует искать каталог "." (текущий каталог). Затем, если файл не находится, в \
    M2\LIB,  и затем, в конце, в \NIGEL\MOD. Такие все файлы, которые согласуются с *.OBJ будут
    искаться в каталоге \M2\OBJ.
         Всякий раз,  когда новый файл создается, он является всегда созданным в первом катало-
    ге,  который согласуется с именем файла. Это имеется в виду, что как в упоминавшемся приме-
    ре,  все .DEF файлы будут создаваться в текущем каталоге и все .OBJ файлы будут создаваться
    в \M2\OBJ.
         Заметим, что всякий раз,  когда вы вводите полное имя пути (т.е. полный путь каталога)
    к окружению,  переадресация не происходит. Это позволяет вам не принимать во внимание, если
    требуется.
         Файл переадресации всегда ищется сверху до тех пор,  пока файл не найдется. Это позво-
    лит вам описать единственную файловую переадресацию, так же как и в случае отсутствия.

                      TESTDB.MOD = \M2\TESTING
                      READDB.MOD = \M2\TESTING
                           *.MOD = .;\M2\WORK

         Текущий каталог должет всегда определяться как ".", так как Null компонент игнорирует-
    ся.


                 ПАКЕТНЫЙ КОМПИЛЯТОР И КОМПОНОВЩИК
                 =================================

         Транслятор JPI  Modula-2  и компоновщик могут быть вызваны из командной строки ДОС или
    из командного файла .BAT.
         Формат команды для того, чтобы запустить пакетный компилятор, есть:
                       M2/C имя файла/опции
         Формат команды для того, чтобы запустить компоновщик:

                    M2/L имя файла/опции
         Например, чтобы транслировать программу WPTEST, вы можете ввести команду:
                            M2/C wptest
         на подсказку ДОС, а, чтобы компоновать программу, вы можете ввести команду:
                           M2/L wptest/M
         Ключи пакетного компилятора описываются в ГЛАВЕ 7.  Ключами пакетного компоновщика яв-
    ляются:
         /M - создает map-файл
         /I - устанавливает в начальное состояние все сегменты
         /S - детализируется map сегментов
         /N - никаких отсутствующих библиотек
         /T - отследить первую ссылку к модулю
         /W - поддерживать предупреждающие сообщения
         /C - нижний случай значимости в символах
         Смотри "Опции компоновщика" для более полного описания.


                           НАСТРОЙКА МЕНЮ
                           ==============

         Файл описания  меню (M2.MNU) содержит текст,  который описывает структуру Системы Меню
    Среды JPI Modula-2 и клавиши кратчайших путей и редактирования.
         Файл описания  меню  является  простым текстовым файлом,  который читается в то время,
    когда окружения вводятся.  Точный формат файла описывается ниже в "Формат файла определения
    меню", но, чтобы понять идею компоновки описаний, вы должны рассмотреть упущения предложен-
    ного M2.MNU.
         Вы поощряетесь  экспериментировать,  изменяя файл описания меню,  открывать установку,
    которая удовлетворяет вас наилучшим образом.
         Перед тем, как вы будете редактировать M2.MNU, вы должны сохранить копию файла, в слу-
    чае, если вы позднее захотите вернуть назад к отсутствующим определениям, предложенных сис-
    темой JPI Modula-2. Следующие разделы обсуждают изменения, которые вы можете сделать внутри
    файла описания меню.

                    Изменение типа Главного меню
                    ----------------------------

         Тип Главного меню определяется строкой,

                   !PopUp[ JPI Modula-2 ] | 

         которая описывает  вертикальное  "PopUp"  вид меню.Если вы хотите иметь горизонтальное
    "Pull-Down" меню,  вы должны изменить PopUp на PullDown. Если вам требуется меню вида "Bar"
    (т.е. меню Pull-Down без рамки), вы должны изменить PopUp на LinePull.
         Если вы хотите изменить отображаемый заголовок вверху меню,  вы  можете  редактировать
    JPI  Modula-2 между квадратными скобками ('[' и ']').  Возможно вы можете захотеть изменить
    его на

         !PullDown [ My JPI M2, Hands Off! ] | 

         Вы можете также изменить клавишу,  которая вызывает главное меню посредством изменения
     после '|'.  Например, если вам требуется <ЗАГ+F10> (Shift+F10), чтобы вызвать главное
    меню, вы должны иметь строку

         !PullDown [ My JPI M2, Hands Off! ] | 

         Изменения других клавиш быстрого вызова описывается в "Изменение клавиш кратчайших пу-
    тей".

                       Изменение текста меню
                       ---------------------

         В файле определения меню вы можете изменить текст,  отображаемый в меню, редактируемый
    подходящую линию.  Например,  если вы хотите изменить Files, чтобы читалось PeDos в Главном
    Меню, вы можете изменить строку

         {F}iles   | 
         to
         {P}cDos   | 
         Заметим, что символ, заключенный в скобки '{' и '}' определяет командный символ, кото-
    рый вызывает линию меню.  Этот командный символ может быть в середине слова  (Pc{D}os)  или
    опустить все вместе, если нет необходимости.
         Число заглавных пробелов перед пакетом меню определяет Уровень меню внутри дерева  ме-
    ню; таким образом должно изменяться только, если дерево меню изменяется (смотри ниже).

                       Изменение дерева меню
                       ---------------------

         Так же как изменяя текст меню,  вы можете изменять действительную структуру дерева ме-
    ню,  под чем подразумевается, что вы можете переупорядочить меню, создать новое подменю или
    даже удалить ненужные команды.  Для того,  чтобы проиллюстрировать изменение  дерева  меню,
    предположим, вы хотите сгруппировать "Compilation Functions" вместе в одно меню.
         Для того, чтобы выполнить линии, содержащие:

         {E}dit        | Editor        
         {C}ompile     | Compiler      
         {M}ake        | Make          
         {L}ink        | Linker        
         {R}un         | Runprogram    
         {O}ptions     |               

         должны быть изменены к:

         {E}dit        | Editor        
         {C}ompilation
           {C}ompile   | Compiler      
           {M}ake      | Make          
           Make{A}ll   | Make All
           {L}ink      | Linker        
           {R}un       | Run program   
         {O}ptions     |               

         которое создает новое подлинно подчиненное команде Compilation.
         Структурное расположение текста меню (т.е. число заглавных пробелов) определяет начало
    и конец каждого меню. В выше приведенном примере это подразумевает, что дополнительные про-
    белы добавляются перед {C}ompile служит причиной создания нового подменю.  Это подменю про-
    должается до {O}ptions,  где структурное расположение возвращает его к предыдущему  уровню.
    Вы должны просмотреть Options-Menu для дальнейших примеров, вложенных под меню.

                 Изменение клавиш Кратчайшего Пути
                 ---------------------------------

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

               {C} - Command line     | Command Line
         к
               {C} - Command line     | Command Line 

         Вы можете разместить множество клавиш после линии, если вам требуется больше, чем одна
    клавиша,  чтобы активизировать некоторую функцию.  Смотри "Последовательности клавиш",  где
    полностью описываются спецификации клавиш кратчайшего пути.
         Имеется возможность определить клавиши независимо от меню. Примером этому служит функ-
    ция Review Screen, которая определяется следующим образом:

         !Key  | Review Screen 
         !Клавиша  | Обзор Экран 

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

                        Внешние команды ДОС
                        -------------------

         Как вы можете всегда заметить,  после '|' и перед клавишами быстрого вызова в  меню  и
    линиях  определения  клавиш находится Action Name (имя действия).  Это имя определяет дейс-
    твие,  которое выполняется,  когда линия меню выбирается или когда клавиша быстрого  вызова
    понимается.
         В добавление к действиям предопределенных окружением (которые перечисляются  в  разде-
    лах:  "Глобальные  действия"  и  "Действия редактора") вы можете также установить командную
    строку ДОС,  которая будет выполняться в соответствии с ДОС оболочкой всякий раз, как выби-
    рается линия меню. Таким образом, вы можете прикрепить ваши собственные программы к окружа-
    ющему меню и клавишам.  Например, если вам требуется команда ДОС 'locate *.MOD' как функция
    меню, тогда вы можете добавить линию:

                {L}ocate   | 'locate *.mod' 

    к определению меню. Требуемая команда ДОС должна заключиться одинарными или двойными симво-
    лами кавычек и возможная подсказка для параметров размещением '%M' или '%P' внутри  команд-
    ной строки. Смотри "Внешние команды" для уточнения.

                      Клавиши меню и редактора
                      ------------------------

         Редактор среды имеет свою собственную спецификацию клавиш и меню.  Отделение их от ос-
    тального определения меню посредством линии
         !Editor
         Все после  этой линии активизируется только внутри редактора.  Если вы хотите добавить
    или изменить клавиши редактора или меню, вы должны редактировать линии после !Editor.


               Изменение Строк Подсказок (HelpLines)
               -------------------------------------

         Вы можете изменить две линии подсказок внутри округления.  Первой является линия подс-
    казок главного меню,  которая определяется до линии !Editor, а вторая является линией подс-
    казок редактора,  которая определяется после !Editor. Смотри "Строки подсказок", где приве-
    ден формат линий подсказок.


                   ФОРМАТ ФАЙЛА ОПРЕДЕЛЕНИЯ МЕНЮ
                   =============================

         Файл определениия меню содержит линии текста,  которые могут быть либо Директивами Ме-
    ню,  либо Тексты Меню.  Пустая линия является не значащей и может поэтому вводиться для яс-
    ности.  Директивы Меню сообщают систему меню Типами Меню,  Заголовками Меню,  Текстом Линий
    Подсказок и Клавишами Кратчайшего Пути.  Текст меню определяет структуру дерева меню и наз-
    наченные функции.

                           Директивы меню
                           --------------

         Директивы меню всегда начинаются с '!'.  Следом за '!' идет имя директивы вместе с лю-
    быми требуемыми параметрами. Директивы вместе с некоторыми примерами следующие:

                            Комментарий
                            -----------

         !! <текст комментария>
         Директива комментария - это игнорируемая строка и может использоваться для комментиро-
    вания определений меню.
         Пример:

         !! JPI Default Modula-2 Menu Definition

                              Тип меню
                              --------

         !PopUp [ MenuTitle ]  |  KeySequences
             Заголовок меню    Последовательность клавиш
         или
         !PullDown [ MenuTitle ]  |  KeySequences
         или
         !LinePull  |  KeySequences

         Это определяет тип и заголовок меню верхнего уровня и любые КП-клавиши, которые должны
    вызывать меню. Заголовок меню и КП-клавиши не обазательны.
         Тип верхнего меню должен быть одним из следующих:
         - Pop Up (по умолчанию), которое имеет вертикальный выбор меню.
         - Pull Down, которое имеет горизонтальный выбор меню.
         - Line Pull, которое является Pull Down меню без рамки и заголовка.
         Заголовок меню - это текст, заключенный квадратными скобками ([ и ]) и будет появлять-
    ся в центре вверху рамки охватывающих меню.
         Одна или более последовательностей клавиш может определяться, чтобы вызвать меню. Фор-
    мат последовательности клавиш описывается в "Последовательности клавиш".
         Пример:

         !PullDown [ JPI Modula-2 ] | 

                          Раздел редактора
                          ----------------

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

                          Строки подсказок
                          ----------------

         !HelpLine [ текст строки подсказки ]
         Две пользовательских строки подсказки могут определять-
    ся. Первая является строкой подсказки и отображается,  когда любое меню является  активным.
    Это  определение должно быть расположено в любой линии до директивы !Editor.  Вторая строка
    подсказки отображения во время  редактирования.  Она  должна  размещаться  после  директивы
    !Editor.
         Пример:

         !HelpLine [ {F10}-main menu {Esc}-close {Alt-X}-exit ]

         Внутри текста строки подсказки { } могут использоваться,  чтобы выделять  более  яркий
    текст.  Esc-последовательности  ~nnn  могут использоваться,  чтобы описать символ с помощью
    ASCII величиной nnn (например, ~26 - это символ правой стрелки).

                         Определение клавиш
                         ------------------

         !Key | Action KeySequences
         !Клавиша | Действие ПоследовательностиКлавиш

         Для того,  чтобы определить клавиши, которые вызывают команды, не находящиеся ни в ка-
    ком  меню,  может  использоваться  директива !Key.  Эта директива назначает специфицируемые
    действия к одной или более последовательностей клавиш.  Формат действий (которое может быть
    командой  ДОС) определяется в разделе "Внешние команды" и формат последовательностей клавиш
    определяются в "Последовательности клавиш". Всякий раз, как последовательность клавиш нажи-
    мается,  вызывается соответствующее действие.  Клавиши,  определенные до директивы !EDitor,
    будут активны в любом месте среды,  а клавиши, определенные после - будут активны только во
    время  редактирования.  Примером редакторской клавиши является Клавиша Правильного регистра
    ( Case Correct Key) (смотри "Другие команды редактора"), которая определена следующим обра-
    зом:

         !Key | Ed Case Correct   

                         Заголовок подменю
                         -----------------

         ![ sub menu title text ]
         ![ Текст заголовка подменю ]

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

         {Q} - quick commands | 
            ![ Quick Menu ]
            {F} - find        | EdFind 
            {G} - goto line   | EdGotoLine 


                          Определение меню
                          ----------------

         Строка меню определяет уровень меню,  текст меню, командный символ, вызываемую функцию
    и любые КП-клавиши.
         Формат определения строки меню:

         MenuText  |  Action KeySequences
         ТекстМеню | Действие  ПоследовательностиКлавиш

         Уровень меню определяется числом префиксных пробелов перед текстом меню.  Это  значит,
    что когда определение нового подменю начинается,  его текст сдвигается дальше вправо. Когда
    определение подменю заканчивается,  текст отодвигается влево к некоторому абзацу  до  роди-
    тельского меню.
         Пример:

         {O}ptions                         |          
           {C}ompiler                      |
             {F} - Optimize          : --- | CompOptF 
             {E} - Stop on lst error : --- | CompOptE
             {N} - Line numbers      : --- | CompOptN
           {R}un                           |
             {C} - Command line            | CommandLine 
             {A} - Auto make   : ---       | RunOptA
             {T} - Timed run   : ---       | RunOptT

         Это декларирование меню вызывается Options и подменю,  которые вызываются  Compiler  и
    Run соответственно.
         Action есть имя функции, которая должна быть вызвана и описывается в следующем разделе
    "Меню действий".  Заметим,  что строки меню,  которые вызывают подменю (Options, Compiler и
    Run в приведенном выше примере) должны иметь определения Action,  но  могут  связываться  с
    клавишей быстрого вызова.
         Без текста меню вы можете определить единственный символ команды (символ,  который вы-
    зывает эту строку меню) посредством заключения этого символа в фигурные скобки {}.
         Символ команды,  определенный этим путем,  должен быть уникальным для этого отдельного
    меню.
         Префиксные и постфиксные пробелы игнорируются внутри текста  меню  (однако  префиксные
    пробелы определяют уровень меню, как описывалось выше). Если вам требуется несколько пробе-
    лов к началу или в конце текста,  вы должны использовать символ подчеркивания (_),  который
    будет переводиться в значащие пробелы внутри отображаемого текста меню. Некоторые предопре-
    деленные действия требуют 3 подчеркивания (т.е.  __ _) для того,  чтобы обозначить значащие
    пробелы к концу текста меню, чтобы отобразить состояние опции (например, ON/OFF). Это пока-
    зано ниже.

                          Действия по меню
                          ----------------

         Действия по  меню  вызываются либо посредством клавиши,  либо посредством выбора меню.
    Существует два различных вида действий:  предопределенные действия и внешние действия. Пре-
    допределенные действия вызывают команды среды,  в отличие от внешних действий,  запускающих
    внешние программы под управлением ДОС.

                     Предопределенные действия
                     -------------------------

         Они специфицируются  посредством  имени,  посредством первых восьми значений символов.
    Ниже следует список предопределенных действий вместе с номерами  страниц  раздела,  который
    описывает эти функции.

                        Глобальные действия
                        -------------------

         Глобальные действия, которые могут вызываться в любом тексте окружения - следующие:
         Load File                  Command  Line
         Pick File                  Run Opt A*
         Save File                  Run Opt T*
         Save All Files             Auto Save Files *
         Main Module                Default Filenames
         Change Dir                 Default Extensions
         Directory                  No Of Backups *
         DOS Shell                  Top Scroll Zone *
         Execute                    Bottom Scroll Zone *
         Quit                       Env Opt B *
         Editor                     Env Opt S *
         Compiler                   Env Opt H *
         Make                       Env Opt C *
         Linker                     Load Red File
         Run Programm               Load Config File
         Comp Opt E *               Save Config File
         Comp Opt F *               Make All
         Comp Opt N *               Info
         Comp Opt U *               Edit1
         Comp Opt V *               Edit2
         Link Opt M *               Edit3
         Link Opt I *               Edit4
         Link Opt S *               Edit0
         Link Opt N *               Zoom Window
         Link Opt T *               Cycle Windows
         Link Opt C *               Review Screen
         Link Opt W *


                         Действия редактора
                         ------------------

         Действия редактора, которые могут вызываться повсюду в редакторе - следующие:
         Ed Load File               Ed Opt Indent *
         Ed Write File              Ed Opt Hard Tabs *
         Ed Find                    Ed Opt Tab Widtn *
         Ed Replace                 Ed Word Left
         Ed Start Screen            Ed Page Down
         Ed End Screen              Ed Move Right
         Ed Start File              Ed Move Up
         Ed End File                Ed Word Right
         Ed Start Line              Ed Del Forward
         Ed End Line                Ed Del Backward
         Ed Goto Begin Block        Ed Tab
         Ed Goto End Block          End Find Again
         End Prev Position          Ed Ins Line
         Ed Del End Line            Ed Ins Below
         Ed Restore Line            Ed Prefix
         Ed Goto Line               Ed Page Up
         Ed Begin Block             Ed Move Left
         Ed End Block               Ed Del Word
         Ed Hide Block              Ed Upper Case
         Ed Mark Word               Ed Scrl Down
         Ed Mark Line               Td Move Down
         Ed Copy Block              Ed Del Line
         Ed Move Block              Ed Scrl Up
         Ed Del Block               Ed Next Error
         Ed Read Block              Ed Prev Error
         Ed Write Block             Ed Case Correct
         Ed Get Block               Ed Goto M1
         Ed Print Block             Ed Goto M2
         Ed Indent Block            Ed Set M1
         Ed Insert                  Ed Set M2

         Действия редактора могут использоваться только как действия внутри секции Editor опре-
    деления меню в то время, как глобальные действия могут использоваться в любой секции.
         Функции, помеченные '*',  требуют пространство для трех левых символьных полей в конце
    текста меню, как описывается в "Определение меню".


                          Внешние команды
                          ---------------

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

         {B}ackup Files   |  'copy *.mod a:'
         !Key    | "find 'Version" *.MOD" 

         то затем, если вход меню Backup Files выбирается, то выполняется команда:

         Copy *.mod a:
         и, когда нажимается клавиша , то выполняется команда

         find 'Version' *.MOD


                      Параметры внешних команд
                      ------------------------

         Если вы хотите передать имя Главного модуля команде, которая должна выполняться, то %М
    в  командной строке будет заменяться именем Главного Модуля,  если оно было установлено или
    запросит Главный Модуль,  если нет. Аналогично %Р (строка запроса) в командной строке будет
    запрашивать параметр во время отображения строки запроса. %P будет затем заменяться введен-
    ной строкой. Например,

         {E}rase         | 'del %P(File to delete: )'
         {D}ebug         | 'debug %M.EXE'

         Выбор Erase  запрашивает файл для удаления (File to delete:) и затем,  когда имя файла
    введено и нажат <ВВОД> (Enter), выполняется команда

         del filename

         Аналогично выбор Debug запрашивает имя Главного Модуля, затем выполняется команда

         debug mainfile.exe.


         В командную строку можно поместить столько %P, сколько требуется.

                     Последовательности клавиш
                     -------------------------

         Директива !Key и точки входа в меню могут иметь одну или более прикрепленных  последо-
    вательностей  клавиш.  Эти последовательности клавиш состоят из имен клавиш,  заключенных в
    угловые скобки '<' и '>'. Примеры последовательностей клавиш включают:
                    ДОП+A
                   УПР+Z
                 УПР+Q, затем D
               УПР+K, затем M, затем 1
                 F2+ЗАГ
                НАЧ, затем КОН

         Следующие клавиши допустимы:

         F1-F10, УПРF1-УПРF10   (CtrlF1-CtrlF10),   ЗАГF1-ЗАГF10
         (ShiftF1-ShiftF10), ДОПF1-ДОПF10 (AltF1-AltF10),
         ДОП0-ДОП9 (Alt0-Alt9),  ДОПA-ДОПZ (AltA-AltZ),  стрелка
         вверх (UpArr), СЛЕД (PageDown), стрелка вниз (DownArr),
         ПРЕД (PageUp), НАЧ (Home), КОН (End), УДЛ (Del), стрел-
         ка влево  (LeftArr),  стрелка  вправо  (RightArr),  ВСТ
         (Ins), ДОП = (AltEqual), УПР стрелка вверх (CtrlUpArr),
         УПР СЛЕД     (CtrlPageDown),     УПР    стрелка    вниз
         (CtrlDownArr), УПР   ПРЕД   (CtrlPageUp),    УПР    НАЧ
         (CtrlHome), УПР   КОН   (CtrlEnd),  УПР  стрелка  влево
         (CtrlLeftArr), УПР стрелка вправо  (CtrlRightArr),  ЗАГ
         табу ляция (ShiftTab).

         Если определена двухсмысленная последовательность клавиши в определении меню (например
    ( и ), то система меню будет ожидать короткий интервал после вво-
    да начальной последовательности. Если в это время вводится остаток более длинной последова-
    тельности,  то выполняется эта длинная последовательность. Это может использоваться для то-
    го, чтобы создать автоматические "pop-up" меню в определении меню.
         Для того,  чтобы выделить возможность автоматического pop-up из конфигурации стандарт-
    ного меню,  следует выделить короткую клавишную последовательность (т.е. ,  и
    .


                   НАСТРОЙКА СООБЩЕНИЙ ОБ ОШИБКАХ
                   ==============================

         Сообщения об ошибках,  производимые компилятором,  могут быть созданы  или  переведены
    посредством редактирования файла M2.ERR.
         Формат этого файла - это ASCII файл, с одной строкой на соответствующее одно сообщение
    об ошибках. Каждая строка должна начинаться с номера ошибки, за которым следует текст сооб-
    щения об ошибке.  Макросы могут определяться для обычно встречающегося текста с помощью на-
    чинания строки символами %A - %Z, за которыми следует текст макроопределения.
         Например,
         %Z File  system  error  определяет  макро %Z,  которым будет расширяться к File system
    error везде, где %Z появится либо в Error, либо в Macro тексте определений.
         Следующие макросы предопределяются компилятором.
         %A Должно использоваться для определения строки/позиции строки,  используемой пакетным
            компилятором.
         %C Заполняется содержимым позицией ошибки.
         %L Заполняется содержимым строки ошибки.
         %F Имя файла, в котором появилась ошибка.
         %N Название компилятора, работавшего, когда появилась ошибка.


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