




     Министерство приборостроения, средств автоматизации и

                       систем управления








                  Операционная система МОС ВП

          Подсистема редактирования и форматирования

               УНИВЕРСАЛЬНЫЙ ТЕКСТОВЫЙ РЕДАКТОР

                     Руководство оператора


                       Лист утверждения













                     2б.00152-01 34 02-ЛУ


                       Представители предприятия-разработчика

                               Руководитель темы
                               Зам. директора ИНЭУМ

                                          Хрущев С.Н.
                                 "___"_________ 1987 г.

                               Ответственный исполнитель темы
    
                                Зав. отделением
                                          Остапенко Г.П.
                                 "___"_________ 1987 г.

                                Зав. отделом
                                          Праченко В.Д.

                                 "___"________ 1987 г.

                                Н.С.

                                          Самборский А.Г.
                                 "___"_________ 1987 г.

                                Нормоконтролер

                                          Скворцов В.А.
                                 "___"_________ 1987 г.


                             1987

 Перв.примен.

 2б.00152-01                                             Литера










  Утвержден

  2б.00152-01 34 02-ЛУ








                Операционная система МОС ВП

                
          Подсистема редактирования и форматирования

               УНИВЕРСАЛЬНЫЙ ТЕКСТОВЫЙ РЕДАКТОР

                     Руководство оператора


                     2б.00152-01 34 02

                        Листов 214/2К



























                             1987

 Перв.примен.

 2б.00152-01                                          Литера












  

  








                Операционная система МОС ВП

                
          Подсистема редактирования и форматирования

               УНИВЕРСАЛЬНЫЙ ТЕКСТОВЫЙ РЕДАКТОР

                     Руководство оператора






                      00152-01 34 02

                        Листов 212




















                      


                             1987









                            - 2 -

                        00152-01 34 02




                           АННОТАЦИЯ




       В данном  документе  описаны  режимы  функционирования

  универсального редактора  текстов  EDT.  Приведены  команды

  строкового режима редактирования и команды редактирования в

  экранном режиме с использование и без  использования  функ-

  циональной клавиатуры терминала. Указано соответствие функ-

  циональных клавиш командам редактирования. Описаны дополни-

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

  теля по редактированию текстов.








































                            - 3 -

                        00152-01 34 02






                          СОДЕРЖАНИЕ





  1.  НАЗНАЧЕНИЕ И УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ            11


  2.  ХАРАКТЕРИСТИКИ И ОСОБЕННОСТИ ПРОГРАММЫ               12


  2.1.    Условные обозначения                             12

  2.2.    Типы команд EDT                                  14

  2.2.1.    Команды строкового режима 1                    14

  2.2.2.    Команды экранного режима 2                     15

  2.2.3.    Команды   экранного   (функционального)

            режима 3                                       15

  2.2.4.    Команды SET и SHOW                             16

  2.3.    Указатель строки                                 16

  2.4.    Нумерация строк                                  17

  2.4.1.    Обычная нумерация строк                        17

  2.4.2.    Фиксированные номера строк                     19

  2.5.    Буферизация данных                               21

  2.6.    Справочная функция HELP                          22

  2.7.    Защита процесса редактирования                   24

  2.7.1.    Журнал-файл и ключ /RECOVER                    25

  2.7.2.    Редактирование журнал-файла                    28

  2.8.    Стартовые командные файлы                        30

  2.9.    Переназначение функций клавиш                    32


  3.  ВЫПОЛНЕНИЕ ПРОГРАММЫ И СООБЩЕНИЯ ОПЕРАТОРУ           34


  3.1.    Командная строка DCL                             35

  3.2.    Ключи командной строки DCL                       36



                            - 4 -

                        00152-01 34 02


  3.3.    Командная строка MCR                             38

  3.4.    Ключи командной строки MCR                       39

  3.5.    Примеры использования командных строк и

          ключей                                           39


  4.  СТРОКОВЫЙ РЕЖИМ РЕДАКТИРОВАНИЯ                       42


  4.1.    Аргументы команд строкового режима               42

  4.1.1.    Область единичной строки                       43

  4.1.2.    Группа смежных строк                           46

  4.1.3.    Группа несмежных строк                         47

  4.1.4.    Спецификация текстового буфера                 48

  4.2.    Структура команд строкового режима               49

  4.2.1.    Команда CHANGE                                 49

  4.2.2.    Команда CLEAR                                  50

  4.2.3.    Команда COPY                                   51

  4.2.4.    Команда DEFINE KEY                             53

  4.2.5.    Команда DEFINE MACRO                           53

  4.2.6.    Команда DELETE                                 55

  4.2.7.    Команда EXIT                                   57

  4.2.8.    Команда FIND                                   59

  4.2.9.    Команда HELP                                   60

  4.2.10.   Команда INCLUDE                                61

  4.2.11.   Команда INSERT                                 62

  4.2.12.   Команда MOVE                                   63

  4.2.13.   Команда NULL (имитация ТYРE)                   65

  4.2.14.   Команда PRINT                                  66

  4.2.15.   Команда QUIT                                   66

  4.2.16.   Команда REPLACE                                67

  4.2.17.   Команда RESEQUENCE                             68

  4.2.18.   Команды SUBSTITUTE                             69



                            - 5 -

                        00152-01 34 02


  4.2.19.   Команда SUBSTITUTE NEXT                        72

  4.2.20.   Команда TYPE                                   73

  4.2.21.   Команда WRITE                                  76


  5.  ЭКРАННЫЙ РЕЖИМ РЕДАКТИРОВАНИЯ (РЕЖИМ 2)              78

  5.1.    Элементы текста                                  79

  5.2.    Структура команды экранного режима 2             82

  5.2.1.    Команда ADV (ADVANCE)                          84

  5.2.2.    Команда APPEND                                 84

  5.2.3.    Команда ASC (ASCII)                            84

  5.2.4.    Команда BACK (BACKUP)                          85

  5.2.5.    Команда CHGC (CHANGE CASE)                     86

  5.2.6.    Команда CUT                                    86

  5.2.7.    Команда D (DELETE)                             87

  5.2.8.    Команда DEFK (DEFINE KEY)                      89

  5.2.9.    Команда EX (EXIT)                              89

  5.2.10.   Команда EXT (EXTENDED)                         89

  5.2.11.   Команда FILL                                   91

  5.2.12.   Команда I (INSERT)                             92

  5.2.13.   Команда NULL (имитация TYPE)                   93

  5.2.14.   Команда PASTE                                  94

  5.2.15.   Команда QUIT                                   94

  5.2.16.   Команда R (REPLACE)                            94

  5.2.17.   Команда REF (REFRESH)                          96

  5.2.18.   Команда S (SUBSTITUTE)                         96

  5.2.19.   Команда SEL (SELECT)                           97

  5.2.20.   Команда SHL (SHIFT LEFT)                       98

  5.2.21.   Команда SHR (SHIFT RIGHT)                      98

  5.2.22.   Команда SN (SUBSTITUTE NEXT)                   99

  5.2.23.   Команда TAB                                   100



                            - 6 -

                        00152-01 34 02


  5.2.24.   Команда TADJ (TAD ADJUST))                    102

  5.2.25.   Команда TC (TAB COMPUTE)                      103

  5.2.26.   Команда TD (TAB DECREMENT)                    103

  5.2.27.   Команда TI (TAB INCREMENT)                    103

  5.2.28.   Команда TOP                                   104

  5.2.29.   Команда UNDC (UNDELETE CHARACTER)             104

  5.2.30.   Команда UNDW (UNDELETE WORD)                  104

  5.2.31.   Команда UNDL (UNDELETE LINE)                  105

  5.2.32.   Условный знак ^                               105


  6.  ФУНКЦИОНАЛЬНОЕ РЕДАКТИРОВАНИЕ                       106


  6.1.    Функциональная клавиатура                       106

  6.2.    Основные функции                                108

  6.2.1.    Функция GOLD                                  109

  6.2.2.    Функция HELP                                  110

  6.2.3.    Функция RESET                                 110

  6.2.4.    Обновление экрана (CTRL/W)                    111

  6.2.5.    Возврат в режим 1 (CTRL/Z)                    111

  6.3.    Завершение процесса редактирования              111

  6.3.1.    Сохранение редакции                           112

  6.3.2.    Удаление редакции                             112

  6.4.    Вставка текста                                  113

  6.4.1.    Ввод символов                                 114

  6.4.2.    Функция OPEN LINE                             114

  6.5.    Перемещение курсора                             116

  6.5.1.    Клавиши со стрелками                          116

  6.5.2.    Направление редактирования                    118

  6.5.2.1.  Функция ADVANCE                               119

  6.5.2.2.  Функция BACKUP                                119

  6.5.3.    Перемещение курсора по элементам текста       120



                            - 7 -

                        00152-01 34 02


  6.5.3.1.  Функция WORD                                  120

  6.5.3.2.  Функция EOL (конец строки)                    121

  6.5.3.3.  Функция LINE                                  121

  6.5.3.4.  Функция BACK SPACE                            122

  6.5.4.    Перемещение курсора по буферу                 122

  6.5.4.1.  Функция PAGE                                  123

  6.5.4.2.  Функция SECTION                               123

  6.5.4.3.  Функция TOP                                   124

  6.5.4.4.  Функция BOTTOM                                124

  6.6.    Поиск фрагмента текста                          124

  6.6.1.    Функция FIND                                  125

  6.6.2.    Функция FNDNXT (последующий поиск)            126

  6.7.    Удаление и восстановление текста                128

  6.7.1.    Удаление и восстановление символов            128

  6.7.1.1.  Клавиша DELETE                                128

  6.7.1.2.  Функция DEL S (удаление символа)              129

  6.7.1.3.  Функция UND S (восстановление символа)        130

  6.7.2.    Удаление и восстановление слова               131

  6.7.2.1.  Клавиша <LF> (перевод строки)                 132

  6.7.2.2.  Функция DEL W (удаление слова)                132

  6.7.2.3.  Функция UND W (восстановление слова)          133

  6.7.3.    Удаление и восстановление строки              133

  6.7.3.1.  Управляющий символ CTRL/U                     133

  6.7.3.2.  Функция DEL EOL (удаление конца строки)       134

  6.7.3.3.  Функция DEL L (удаление строки)               135

  6.7.3.4.  Функция UND L (восстановление строки)         136

  6.8.    Выбор    текстового     диапазона     и

          перемещение текста                              136

  6.8.1.    Функция SELECT                                137

  6.8.2.    Функция CUT                                   137



                            - 8 -

                        00152-01 34 02


  6.8.3.    Функция PASTE                                 137

  6.8.4.    Использование  функций   SELECT,   CUT,

            PASTE                                         138

  6.8.5.    Функция APPEND                                140

  6.9.    Замена текста                                   142

  6.9.1.    Функция REPLACE                               143

  6.9.2.    Функция SUBS                                  147

  6.10.   Использование команд строкового режима          149

  6.10.1.   Функция ENTER                                 150

  6.10.2.   Функция COMMAND                               150

  6.10.3.   Использование функций ENTER и COMMAND         150

  6.10.4.   Исправление  ошибок  при  вводе  команд

            режима 1                                      151

  6.11.   Специальные    символы,    переключение

          регистра      алфавитных      символов,

          заполнение строк                                152

  6.11.1.   Функция SPECINS                               152

  6.11.2.   Функция CHNGCASE                              153

  6.11.3.   Функция FILL                                  154

  6.12.   Установка интервалов табуляции                  156

  6.13.   Управляющие символы CTRL/K и CTRL/C             157


  7.  КОМАНДЫ ГРУППЫ "SЕТ" И "SНОW"                       159


  7.1.    Команды группы "SET"                            160

  7.1.1.    Команда SET CASE                              160

  7.1.2.    Команда SET CURSOR M:N                        161

  7.1.3.    Команда SET ENTITY                            162

  7.1.4.    Команда SET KEYPAD                            164

  7.1.5.    Команда SET LINES N                           164

  7.1.6.    Команда SET MODE                              165



                            - 9 -

                        00152-01 34 02


  7.1.7.    Команда SET [NO]NUMBERS                       165

  7.1.8.    Команда SET [NO]QUIET                         165

  7.1.9.    Команда SET SCREEN L                          166

  7.1.10.   Команда SET SEARCH                            167

  7.1.11.   Команда SET TAB N                             168

  7.1.12.   Команда SET [NO]TRUNCATE                      173

  7.1.13.   Команда SET [NO]VERIFY                        174

  7.1.14.   Команда SET [NO]WRAP N                        175

  7.2.    Команды группы SHOW                             176

  7.2.1.    Команда SHOW BUFFER                           176

  7.2.2.    Команда SHOW CASE                             177

  7.2.3.    Команда SHOW CURSOR                           177

  7.2.4.    Команда SHOW ENТIТY                           177

  7.2.5.    Команда SHOW KEY                              178

  7.2.6.    Команда SHOW SСREEN                           179

  7.2.7.    Команда SHOW SEARСH                           179

  7.2.8.    Команда SHOW ТERMINAL                         179

  7.2.9.    Команда SHOW VERSION                          179


  8.  ПЕРЕОПРЕДЕЛЕНИЕ ФУНКЦИЙ КЛАВИШ                      180


  8.1.    Команда DEFINE KEY                              181

  8.1.1.    Управляющий символ СТRL/K                     184

  8.1.2.    Счетчик повторений                            187


  Приложение 1. Функциональная клавиатура                 189


  Приложение 2. Сообщения об ошибках                      193


  Приложение 3. Устройства, поддерживаемые рдос кп        201


  Приложение 4. Символьный код                            204





                           - 10 -

                        00152-01 34 02


  Приложение 5. Код RADIХ-50                              211










          
   









































  







                           - 11 -

                        00152-01 34 02


         1. НАЗНАЧЕНИЕ И УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ                  
  




       Программа EDТ представляет собой  текстовый  редактор,

  поддерживаемый различными операционными системами  СМ  ЭВМ.

  Он предназначен для редактирования файлов, содержащих  сим-

  вольные тексты (тексты программ, документацию и т.п.).

       ЕDТ можно использовать для создания файлов, для  ввода

  и  редактирования  текстовой  информации   в   файле,   для

  сохранения и удаления работы, проведенной во  время  сеанса

  редактирования.

       ЕDТ функционирует в режимах:

       - строковом (режим 1);

       - экранном,   без    использования    функциональной

         клавиатуры (режим 2);

       - экранном,    с    использованием    функциональной

         клавиатуры (режим 3).

       Режим  1  может  быть  использован   для   работы   на

  терминалах всех типов, входящих в комплексы СМ ЭВМ.

       Режим    2    поддерживается    только    терминалами,

  обеспечивающими аппаратное управление  курсором,  например:

  ВТА-2000-3, ВТА-2000-15, VDТ-52130 (ВНР), VDТ-52129  (ВНР),

  СID-7220 (Куба), MERA-7948 (Пнр), "ЭЛЕКТРОНИКА".

       Режим  3  может  быть   использован   при   работе   с

  терминалами,    имеющими     функциональную     клавиатуру:

  "ЭЛЕКТРОНИКА", VDТ-52130 (ВНР), СID-7220 (Куба), MERA-7948.












                           - 12 -

                        00152-01 34 02


          2. ХАРАКТЕРИСТИКИ И ОСОБЕННОСТИ ПРОГРАММЫ




       При  редактировании  необходимо   учитывать   основные

  особенности, характерные для каждого из  режимов  редактора

  EDТ, а  также  общие  для  всех  режимов  возможности  EDТ,

  которые  позволяют  упростить  процесс   редактирования   и

  сделать его более эффективным.

       Характерные особенности включают:

       - два способа нумерации строк;

       - принцип буферизации данных;

       - возможность   получения   справочной    информации

         (функция HELР);

       - защиту процесса редактирования;

       - возможность создания стартовых командных файлов;

       - способность   редактора   переопределять   функции

         ключей.



       2.1. Условные обозначения


       При  описании  программы  EDТ  используются  следующие

  условные обозначения:

  <GOLD> + <FNDNХТ/FIND>

       - команды, заключенные в  угловые  скобки,  являются

         обозначением клавиш функциональной клавиатуры. Две

         клавиши, разделенные  знаком  "+",  означают,  что

         пользователь должен нажать сначала одну,  а  потом

         другую клавишу последовательно;



       П_р_и_м_е_ч_а_н_и_е. Клавиши функциональной клавиатуры

  соответствуют конкретным командам EDТ при редактировании  в



                           - 13 -

                        00152-01 34 02


  режиме 3. Так,  функциональная  клавиша  <8>  соответствует

  командам FNDNХТ и FIND. Если нажатию этой клавиши не  пред-

  шествует нажатие клавиши  <GOLD>,  то  это  означает  выбор

  команды FNDNХТ. Если сначала нажимается клавиша  <GOLD>,  а

  затем клавиша <8>, то  это  означает  выбор  команды  FIND.

  Таким образом, клавиша <GOLD> по существу определяет  выбор

  соответствующего  регистра  (верхнего  или   нижнего)   для

  остальных функциональных клавиш.  Соответствие  команд  EDТ

  функциональным клавишам для различных типов терминалов при-

  ведено в приложении 1.

  (7)

       - обозначение    клавиши    на    алфавитно-цифровой

         клавиатуре;

  GOLD/Х

       - комбинация, означающая одновременное нажатие  двух

         клавиш: <GOLD> - на функциональной клавиатуре, (X)

         - на алфавитно-цифровой клавиатуре;

  [ ]

       - задание необязательных параметров внутри командной

         строки.  Параметры  описывают  аргументы,  которые

         обрабатывает  команда,  такие  как  файл,  строка,

         слово. Например, [арг]  указывает  на  возможность

         задания пользователем диапазона строк;

  ( )

       - задание альтернативных параметров внутри командной

         строки;

  !

       - задание  в  описании  логической  функции   "или".

         Например:  'авс'!"авс"  означает   что   допустимо

         задание как 'авс', так и "авс";



                           - 14 -

                        00152-01 34 02


  M[OVE]

       - выделение минимальной  аббревиатуры  команды  EDТ.

         Т.е.  Допускается  задание  как  полной   команды,

         например MOVE, так и ее аббревиатуры, например  м.

         В квадратные скобки заключена необязательная часть

         названия команды;

  _

       - обозначение курсора. Курсор в  документе  ставится

         перед символом на который  он  указывает.  Следует

         заметить, что в  распечатке  документа  получается

         фиктивный сдвиг символа, на который указывает кур-

         сор, вправо.



       2.2. Типы команд EDТ



       Синтаксис команд редактора EDТ основан  на  английском

  языке. Команды EDТ подразделяются на следующие группы:

       - команды строкового режима 1;

       - команды экранного режима 2;

       - команды экранного (функционального) режима 3;

       - команды SEТ и SHOW.



       2.2.1. Команды строкового режима 1



       Команды строкового режима редактирования  обрабатывают

  одну или несколько строк текста  (раздел  4).  Эти  команды

  можно использовать также в экранных режимах 2 и 3,  однако,

  более целесообразно их применять для манипулирования  боль-

  шими блоками текста.  Пользователь  может  расширить  набор

  команд, определив макрокоманды, которые  состоят  из  одной



                           - 15 -

                        00152-01 34 02


  или нескольких существующих команд строкового режима.



       2.2.2. Команды экранного режима 2



       Команды экранного режима 2 позволяют  выполнять  самые

  существенные функции редактирования (раздел 5). Эти команды

  целесообразно использовать при работе  с  видеотерминалами,

  не имеющими функциональную клавиатуру. Операция  переназна-

  чения функциональных клавиш и управляющих символов (СТRL/Х)

  осуществляется на базе команд экранного  режима  2  (раздел

  8).



       2.2.3. Команды   экранного   (функционального)

              режима 3



       Команды экранного режима 3 выполняются только на  тер-

  миналах,  имеющих  функциональную  клавиатуру,   а   именно

  VDТ-52130, СID-7220,  "ЭЛЕКТРОНИКА",  MERA-7948.  В  режиме

  функционального редактирования достаточно нажать  одну  или

  две клавиши для выполнения определенных действий  редактора

  (раздел 6). Более того, режим 3 позволяет выполнять команды

  строкового режима 1 и  экранного  режима  2,  что  повышает

  эффективность его использования.  Каждая  клавиша  функцио-

  нальной клавиатуры (кроме клавиши <GOLD>) может быть  пере-

  назначена, т.е. пользователь  сам,  по  желанию  определяет

  необходимую команду для отдельной клавиши ( раздел 8).











                           - 16 -

                        00152-01 34 02


       2.2.4. Команды SEТ и SHOW



       Команды группы SEТ и SHOW управляют функциями редакти-

  рования (раздел 7). С помощью этих команд можно:

       - установить операционные характиристики, такие  как

         ширина выводимого на экран терминала текста, длина

         строки и т.д;

       - показать состояние данного процесса редактирования

         в зависимости от установленных характеристик.



       2.3. Указатель строки



       Указатель  строки  -  внутренний  механизм  редактора,

  определяющий место проведения редакции в данный момент вре-

  мени. Различают неявный указатель  редактирования,  исполь-

  зуемый в строковом режиме  функционирования  EDТ  и  явный,

  совпадающий с курсором в экранном режиме редактирования.

       Местоположение неявного указателя редактирования опре-

  деляет целую строку текста, которая может быть верхней  или

  нижней границей области действия команд строкового  режима.

  Текущая позиция указателя строки (текущая  строка)  отобра-

  жается на экране после нажатия  клавиши  <СR>  в  ответ  на

  подсказку-символ  "*"  строкового  режима   редактирования.

  Более подробную информацию о местоположении указателя стро-

  ки после выполнения определенной команды можно найти  в  ее

  описании (раздел 4).

       В экранных режимах редактирования перемещение указате-

  ля строки по тексту внутри буфера совпадает с  перемещением

  курсора на экране терминала. Курсор - это видимое представ-

  ление позиции указателя строки в буфере, положение которого



                           - 17 -

                        00152-01 34 02


  меняется по элементам текста.

       При работе с видеотерминалами, имеющими функциональную

  клавиатуру, перемещение курсора по экрану осуществляется  с

  помощью клавиш функциональной клавиатуры. Стрелки,  изобра-

  женные на  клавишах,  определяют  направление  передвижения

  курсора (вверх, вниз, вправо, влево).



       2.4. Нумерация строк


       В процессе редактирования EDТ проводит нумерацию строк

  редактируемого текста. Различают 2 типа строковых номеров:

       1) номера, которые EDТ присваивает строкам в текстовом

  буфере. Эти номера облегчают  задание  спецификации  строки

  или группы строк при использовании таких  команд  как  ТYРE

  или DELEТE в строковом режиме редактирования. Процесс авто-

  матического  присвоения  номеров  строкам  текста  является

  обычным способом нумерации строк;

       2) фиксированные номера используются при  редактирова-

  нии исходных программ  или  файлов,  состоящих  из  записей

  переменной длины с фиксированной частью,  например,  файлов

  СУД (система управления данными).



       2.4.1. Обычная нумерация строк



       Обычную нумерацию EDТ  проводит  автоматически,  путем

  присвоения каждой введенной в текстовый буфер строке своего

  номера. Если пользователь создает новый файл, номера  строк

  присваиваются после завершения  ввода  текста.  Эти  номера

  выводятся на экран слева  от  строки  при  задании  команды

  вывода текста на экран (команда ТYРE)  в  строковом  режиме



                           - 18 -

                        00152-01 34 02


  функционирования EDТ.  При  записи  содержимого  текстового

  буфера в выходной файл присвоенные редактором номера  строк

  теряются,  т.е.  Они  не  являются  частью   редактируемого

  текста. Исключение составляет команда РRINТ, которая  зано-

  сит в выходной файл строки с номерами, присвоенными EDТ.  В

  экранных режимах редактирования строковые номера не отобра-

  жаются на  экране.  Обычная  нумерация  начинается  с  1  и

  проводится с шагом 1. При вставке текста добавляемым  стро-

  кам EDТ назначает номера в виде десятичных чисел (если  все

  последовательные целые числа уже использованы), например:


          ***************************************************
          *ТYРE WHOLE <СR>

             1        строка 1
             2        строка 2
             3        строка 3
             3.1      строка 3.1
             3.2      строка 3.2
             4        строка 4

          [EOB]
          *_
          ***************************************************

       Строковые номера могут  быть  назначены  редактором  в

  пределах от 0.00001 до 42949.67295.

       Для  изменения  последовательности  строковых  номеров

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

  RESEQUENСE. Если команда задана без  [арг]  (п.  4.2.17)  и

  ключа /SEQUENСE, EDТ перенумеровывает все строки, начиная с

  текущей до конца буфера  (строки,  предшествующие  текущей,

  сохраняют свои номера) с шагом нумерации - 1.

       Ключ /SEQUENСE позволяет установить необходимые  поль-

  зователю параметры для перенумерации строк (см. п.4.2.17).








                           - 19 -

                        00152-01 34 02


       2.4.2. Фиксированные номера строк



       Данный пункт представляет интерес  для  пользователей,

  работающих с операционной системой, в состав которой входит

  СУД.

       Если входной файл состоит из записей VFС (формат VFС -

  это запись переменной  длины  с  фиксированной  управляющей

  частью), то фиксированные номера, полученные из  поля  VFС,

  становятся обычными номерами строк.

       При выходе из  редактора  по  команде  EХIТ  с  ключом

  /SEQUENСE M:N EDТ записывает файл в формате  VFС,  размещая

  данные фиксированных номеров в  управляющей  части  записи.

  Если далее открыть редактор для работы с этим файлом,  фик-

  сированные номера становятся обычными.

       Однако, фиксированные номера строк нельзя  увидеть  до

  тех пор, пока не будет скомпилирована  программа.  Фиксиро-

  ванные номера печатаются в листинге скомпилированной  прог-

  раммы.

       Так как подпрограммы в некоторых программах  дублируют

  номера строк во время компиляции, полезно иметь  последова-

  тельность фиксированных номеров в случае появления  сообще-

  ния об ошибке.

       На примере программы, написанной на языке  ФOРТРAH-IV,

  покажем расположение фиксированных номеров в листинге ском-

  пилированной программы.













                           - 20 -

                        00152-01 34 02


          ***************************************************
          *ТYРE WHOLE <СR>
             1        I=I+1
             2        SТOР
             3        END
             4        SUBROUТINE а
             5        J=J+1
             6        END
          [EOB]
          *_
          ***************************************************

       Для создания фиксированных номеров выход из  редактора

  осуществляется по команде:

          *EХIТ/SEQUENСE:100:10

       Выходной файл создается в формате  VFС.  Фиксированные

  номера начинаются с номера 100  и  увеличиваются  с  шагом,

  равным 10.


          ***************************************************
          00100   0001         I=I+1
          00110   0002         SТOР
          00120   0003         END
                   .
                   .
                   .
          00130   0001         SUBROUТINE а
          00140   0002         J=J+1
          00150   0003         END
                   .
                   .
                   .
          ***************************************************

       Номера строк в подпрограмме такие же, как  в  основной

  программе, в то время, как фиксированные номера  возрастают

  последовательно с определенным шагом. Следовательно пользо-

  ватель может обращаться к  строкам  внутри  программы  пос-

  редством фиксированных номеров, распечатанных в листинге.






                         






                           - 21 -

                        00152-01 34 02


       2.5. Буферизация данных



       После вызова EDТ  создает  текстовый  буфер  с  именем

  MAIN. Если в командной строке в спецификации входного файла

  указан уже существующий файл, EDТ копирует его содержимое в

  буфер MAIN. Если пользователь создает новый файл, то MAIN в

  момент старта EDТ пустой и  заполняется  по  мере  введения

  текста в буфер. ЕDТ выполняет  команды  редактирования  над

  содержимым буфера, не изменяя содержимое файла.

       ЕDТ может создавать другие буфера,  отличные  от  MAIN

  при любом обращении к ним по имени. Имя буфера содержит  от

  1 до 30 алфавитно-цифровых символов (первый символ - обяза-

  тельно  буква  латинского  алфавита).   ЕDТ   автоматически

  создает также один дополнительный  буфер  с  именем  РASТE.

  Текст, заносимый в этот буфер посредством команды  СUТ  или

  AРРEND, остается там до  момента  вторичного  использования

  команд СUТ или AРРEND (команда AРРEND заносит текст в буфер

  РASТE, не очищая последний).

       Имеется  возможность   одновременного   редактирования

  нескольких файлов,  об'единения  и  расчленения  файлов  на

  части.

       При редактировании один из буферов  является  текущим.

  Обычно в  качестве  текущего  буфера  используется  главный

  буфер MAIN. Имя текущего буфера в  командах  редактирования

  не задается.

       При необходимости в  качестве  текущего  буфера  может

  быть выбран любой другой буфер. Переключение  на  работу  с

  другим буфером может быть выполнено для одной  команды  или

  для группы  команд.  В  команде  должно  быть  указано  имя

  буфера, которому предшествует знак равенства "=".



                           - 22 -

                        00152-01 34 02


       Например, команда:

          *INСLUDE A.ТХТ=ABUF

  означает копирование файла A.TXT в буфер ABUF.

       Во втором случае необходимо установить требуемый буфер

  в качестве текущего. Такая установка возможна  в  строковом

  режиме путем задания команды:

          *F=имя буф

       Параметры команды

  имя буф

       - имя требуемого буфера.

       При  выходе  из  редактора  по  команде  EХIТ  следует

  помнить, что в выходной файл  выводится  содержимое  только

  главного  буфера   MAIN,   содержимое   остальных   буферов

  теряется.

       Поэтому перед завершением работы редактора  необходимо

  удостовериться в наличии всех,  созданных  пользователем  в

  процессе редактирования буферов,  проверить  сохраненную  в

  них информацию. Эта процедура выполняется по  команде  SHOW

  BUFFER (п. 7.2.1).

       Максимальный размер всех буферов в EDТ не должен  пре-

  вышать 250.000 строк (по 80 символов в каждой строке).



       2.6. Справочная функция HELР



       При необходимости, в процессе работы EDТ  можно  полу-

  чить справку о самом редакторе. Существует 2 способа  полу-

  чения справочной информации:

       1) использование команды HELР (режим 1 и режим 3);

       2) нажатие клавиши <HELР> на функционнальной клавиату-

  ре (режим 3).



                           - 23 -

                        00152-01 34 02


       Команда  HELР  задается  после  подсказки-символа  "*"

  строкового режима редактирования или после вывода на  экран

  подсказки (команда:) в режиме 3 (результат нажатия  клавиши

  <СOMMAND>. Более подробно  формат  команды  HELР  описан  в

  пункте 4.2.9.

       Ввод

          *HELР <СR>

       Сопровождается появлением сообщения, описывающего:

       - необходимый формат для запроса справки о команде в

         режиме HELР;

       - список команд,  о  которых  имеется  информация  в

         справочнике HELР.

       Пример вывода справки о команде ТYРE.

        *****************************************************
        *HELР ТYРE <СR>

        ТYРE

        Команда ТYРE (аббревиатура: т) выводит на экран
        заданный диапазон строк.

        Формат:           ТYРE [AРг][/BRIEF:N][/SТAY]

        Первая строка заданного диапазона становится текущей
        строкой.

        Если спецификация области начинается с неалфавитного
        символа, ключевое слово ТYРE может быть опущено.

        Есть допонительная информация о:
        /BРRIEF           /SТAY
        *_
        *****************************************************


       Если  пользователю  необходимо   получить   справочную

  информацию  о  ключах  /BRIEF  или  /SТAY,  формат  команды

  задается в виде:









                           - 24 -

                        00152-01 34 02


          *HELР ТYРE/BRIEF (/SТAY)

       Полную диаграмму  расположения  функциональных  клавиш

  вспомогательной клавиатуры можно вывести на экран посредст-

  вом использования клавиши <HELР> в режиме 3.

       Нажатие клавиши <HELР> приводит к появлению на  экране

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

  вишах функциями редактора, а также описание некоторых функ-

  циональных клавиш, расположенных на основной клавиатуре,  и

  управляющих символов.

       Переназначение      функций      клавиш       основной

  (алфавитно-цифровой) или  вспомогательной  (функциональной)

  клавиатур не отображается на диаграмме HELР.

       Получив диаграмму, пользователь имеет возможность зап-

  росить информацию о любой функциональной клавише. Для этого

  нужно нажать эту клавишу.  Например,  нажатие  клавиши  <5>

  вызывает на экране описание функций BAСKUР и TOP.  В  конце

  каждого текста даются указания:

       - для возврата на уровень диаграмм - нажать  клавишу

         <СR>;

       - получить справку о другой  клавише  -  нажать  эту

         клавишу;

       - продолжить  процесс  редактирования  -  достаточно

         ввести пробел.

       Вызов справочника HELР не влияет на процесс редактиро-

  вания.



       2.7. Защита процесса редактирования



       Защиту процесса редактирования от системных  и  техни-

  ческих  сбоев   EDТ   осуществляет   путем   ведения   т.н.



                           - 25 -

                        00152-01 34 02


  журнал-файла. Обычный выход из редактора  по  команде  EХIТ

  приводит к переписи содержимого буфера с проведенной редак-

  цией в  выходной  файл,  который  хранится  на  устройстве,

  заданном в командной строке при запуске EDТ.



       2.7.1. Журнал-файл и ключ /REСOVER



       В процессе редактирования EDТ создает  на  диске  спе-

  циальный журнал-файл, содержащий  протокол  редактирования.

  Все алфавитно-цифровые  символы,  набранные  с  клавиатуры,

  заносятся в этот файл. Если сеанс редактирования завершает-

  ся по причине краха системы или выхода из строя эвм, а так-

  же, если выход из редактора был осуществлен по команде EХIТ

  или QUIТ с ключом /SAVE (п. 4.2.7,п. 4.2.15),  пользователь

  может  восстановить  потерянную  редакцию.  В  этом  случае

  журнал-файл сохраняется на диске в том же каталоге и  имеет

  то же имя,  что  и  редактируемый  файл.  Расширение  имени

  журнал-файла по умолчанию - .JOU. Например,  если  редакти-

  руется файл USER.DAТ, то в том же каталоге, в котором нахо-

  дится редактируемый файл, создается  журнал-файл  USER.JOU.

  При необходимости, в  командной  строке  EDТ  можно  задать

  любое имя журнал-файла.

       Повторить автоматически  весь  процесс  редактирования

  возможно, указав в командной строке EDТ ключ /REСOVER.  При

  этом не исключена возможность потери последней части редак-

  ции, что связано с механизмом записи протокола редактирова-

  ния в журнальный файл.

       Если  процесс  редактирования  завершается   нормально

  (аварийная ситуация отсутствует), журнал-файл уничтожается.

  Журнал-файл сохраняет  редакцию  независимо  от  режима,  в



                           - 26 -

                        00152-01 34 02


  котором находился пользователь.

       Следующий пример иллюстрирует возможности журнал-файла

  и ключа /REСOVER в строковом режиме редактирования. В  при-

  мере даны варианты командных строк  интерпретаторов  DСL  и

  MСR, функционирующих в операционной системе МОС ВП  (раздел

  3).

       Пример.

          DСL

          ***************************************************
          EDIТ/EDТ <СR>
          FILE:USER.DAТ <СR>
          INРUТ FILE DOES NOТ EХISТ
          входной файл отсутствует
          [EOB]
          *_
          ***************************************************



          MСR

          ***************************************************
          EDТ <СR>
          EDТ>USER.DAТ <СR>
          INРUТ FILE DOES NOТ EХISТ
          входной файл отсутствует
          [EOB]
          *_
          ***************************************************


          ***************************************************
          *INSERТ
                          программа EDТ представляет собой
                          текстовый редактор,
                          поддерживаемый различными
                          операционными системами.
                          (СТRL/Z)
          *_
          ***************************************************


       П_р_и_м_е_ч_а_н_и_е. Имитировать  аварийный  выход  из

  Редактора можно с помощью команды QUIТ/SAVE.  Команда  QUIТ

  уничтожает буферную копию файла USER.DAТ, а ключ /SAVE сох-

  раняет на диске журнал-файл USER.JOU. QUIТ/SAVE использует-

  ся здесь для демонстрации процесса защиты и  восстановления



                           - 27 -

                        00152-01 34 02


  редактируемого файла.

       Ввод QUIТ/SAVE и нажатие <СR> завершает сеанс редакти-

  рования:

          *QUIТ/SAVE <СR>

       Восстановление  файла  USER.DAТ  происходит  следующим

  образом:


          DСL

          ***************************************************
          EDIТ/EDТ/REСOVER <СR>
          FILE:USER.DAТ <СR>
          ***************************************************


          MСR

          ***************************************************
          EDТ/REСOVER <СR>
          EDТ>USER.DAТ <СR>
          ***************************************************

       После задания спецификации файла USER.DAТ EDТ  выводит

  на экран следующее:


          ***************************************************
          входной файл отсутствует
          INSERТ
          программа EDТ представляет собой
          текстовый редактор,
          поддерживаемый различными
          операционными системами.
          ^Z
          QUIТ/SAVE

          [EOB]
          *_
          ***************************************************

       Чтобы убедиться в правильности выполнения  содержимого

  файла USER.DAТ нужно вывести на экран содержимое буфера:












                           - 28 -

                        00152-01 34 02


          ***************************************************
          *ТYРE WHOLE <СR>

             1           программа EDТ представляет собой
             2           текстовый редактор,
             3           поддерживаемый различными
             4           операционными системами.
          [EOB]
          *_
          ***************************************************

       После восстановления редакции можно  продолжать  рабо-

  тать с этим же файлом.  При  этом  протокол  редактируемого

  файла будет заноситься в конец журнал-файла,  созданного  в

  предыдущем сеансе редактирования. Использовать один  и  тот

  же журнальный файл можно до момента выхода из редактора  по

  команде EХIТ или QUIТ.



       2.7.2. Редактирование журнал-файла



       В журнал-файл можно вносить изменения в случае  непра-

  вильно выполненной  команды  над  содержимым  буфера  путем

  использования его в качестве входного при запуске EDТ.  При

  этом необходимо задание ключа /NOJOURNAL  (подраздел  3.2),

  чтобы избежать создания нового журнал-файла.

       Пример.

       Предположим,  пользователь  допустил  ошибку,   набрав

  команду "D" вместо "Т"  для  вывода  на  экран  содержимого

  буфера:


          ***************************************************
          *D WHOLE <СR>
          4 стр. Удал.
          [EOB]
          *_
          ***************************************************

       Команда D WHOLE удаляет содержимое  буфера,  восстано-

  вить которое удастся, выполнив следующую процедуру:




                           - 29 -

                        00152-01 34 02


          *QUIТ/SAVE <СR>


          DСL

          EDIТ/EDТ/NOJOURNAL USER.JOU <СR>


          MСR

          EDТ/NOJOURNAL USER.JOU <СR>

          ***************************************************
          1            INSERТ
          *_
          ***************************************************

       ЕDТ выводит первую строку журнал-файла.  Воспроизведе-

  ние всего содержимого файла осуществляется по команде:


          ***************************************************
          *ТYРE WHOLE <СR>
             1           INSERТ
             2           программа EDТ представляет собой
             3           текстовый редактор,
             4           поддерживаемый различными
             5           операционными системами
             6           ^Z
             7           QUIТ/SAVE
             8           ТYРE WHOLE
             9           D WHOLE
            10
          QUIТ/SAVE
          [EOB]
          *
          ***************************************************

       Удалением строки 9 пользователь исправит свою ошибку.

          ***************************************************
          *DELEТE 9 <СR>
          1 стр. Удал.
             10        QUIТ/SAVE
          *EХIТ <СR>
          ***************************************************

       Теперь отредактированный журнал-файл  можно  использо-

  вать для восстановления потерянной редакции.  Сообщения  об

  ошибках,    встречающиеся    в    процессе    использования

  журнал-файла, и их описания приведены в приложении 1.







                           - 30 -

                        00152-01 34 02


       2.8. Стартовые командные файлы



       Стандартный набор команд EDТ, который должен обрабаты-

  ваться перед началом редактирования, целесообразно задавать

  в т.н. Стартовом командном файле, что позволяет  упростить,

  по мере необходимости, процесс редактирования.

       При запуске EDТ с помощью стартового командного  файла

  можно автоматически произвести следующие операции:

       1) определить ключи;

       2) установить  управляющие  функции,  например,  длину

  строки, количество выводимых на экран строк и т.д.

       3) определить макрокоманды, которые  EDТ  выполняет  в

  строковом режиме при вводе имени макрокоманды;

       4) указать спецификацию текствого изображения на экра-

  не;

       5) определить элемент текста, представляющий собой ряд

  символов, который EDТ рассматривает как единицу  редактиро-

  вания (например, слово или предложение).

       Имя  стартового  командного  файла  по   умолчанию   -

  EDТINI.EDТ. При запуске EDТ автоматически ведет поиск этого

  файла в том же каталоге, в котором находится  редактируемый

  входной файл. Если файл EDТINI.EDТ найден, то он  обрабаты-

  вается и  выполняются  все  заданные  действия.  Если  файл

  EDТINI.EDТ отсутствует, то процесс редактирования начинает-

  ся без каких-либо установочных операций.

       При необходимости может быть задано произвольное имя и

  расширение имени файла стартового командного файла,  а  сам

  файл может располагаться на любом устрйстве и в любом ката-

  логе. В этом случае в командной строке EDТ следует задавать

  спецификацию стартового командного файла.



                           - 31 -

                        00152-01 34 02


       П_р_и_м_е_ч_а_н_и_е.  Дополнительное  нажатие  клавиши

  <СR> при наборе команд в стартовом командном файле подразу-

  мевает выполнение опреденной  команды.  Это  означает,  что

  каждая пустая строка в командном файле соответствует  восп-

  роизведению редактором одной строки  текста  и  перемещению

  курсора на строку ниже.

       Примеры стартовых командных файлов:


   1.  ЕDТINI.ЕDТ


          **************************************************
          *INSERТ <СR>
                  SEТ KEYРAD <СR>
                  SEТ NOТRUNСAТE <СR>
                  SHOW SСREEN <СR>
                  (СТRL/Z)
          *_
          *************************************************

       Выполнение командного файла  по  умолчанию  EDТINI.EDТ

  при запуске редактора приводит к следующему эффекту:

       - редактор готовится к  работе  в  режиме  3  -  SEТ

         KEYРAD (пункт 7.1.4);

       - команда SEТ NOТRUNСAТE воспроизводит ряд символов,

         превышающих максимально допустимую  длину  строки,

         на следующей строке  после  нажатия  клавиши  <СR>

         (пункт 7.1.12);

       - команда SEТ SСREEN выводит  на  экран  максимально

         допустимое количество  символов  в  строке  (пункт

         8.1.9).














                           - 32 -

                        00152-01 34 02



   2.   ОРТIОN.СОМ


          ***************************************************
          *INSERТ <СR>
                  SEТ ENТIТY РAGE '.РAGE' <СR>
                  SEТ WRAР 50 <СR>
                  INСLUDE HEAD1.СOM=HEAD1 <СR>
                  INСLUDE HEAD3.СOM=HEAD3 <СR>
                  INСLUDE DAТA.ТХТ=MAIN <СR>
                  (СТRL/Z)
          *_
          ***************************************************

       После определения файла OРТION.СOM как командного, EDТ

  выполняет действия из этого файла и выходит в режим строко-

  вого редактирования.

       Посредством командного файла  OРТION.СOM  пользователь

  устанавливает ограничитель для элемента текста  -  страницы

  (.РAGE), правую границу текста (50 символов). ЕDТ  включает

  файлы HEAD1.СOM и HEAD3.СOM в текстовые буферы,  соответст-

  венно под именами HEAD1 и  HEAD3.  Файл  DAТA.ТХТ  редактор

  помещает в буфер MAIN перед входным файлом, включенным туда

  при задании командной строки EDТ.



       2.9. Переназначение функций клавиш



       Всем клавишам функциональной  клавиатуры  и  некоторым

  клавишам основной алфавитно-цифровой  клавиатуры,  а  также

  управляющим символам (СТRL/Х) назначены определенные  функ-

  ции в EDТ. Однако,  существует  возможность  переназначения

  функций клавиш, которые  используются  только  в  режиме  3

  (функциональное редактирование).

       Для осуществления данной  операции  необходимо  знать,

  что:

       1) функции клавиш основаны на командах экранного режи-




                           - 33 -

                        00152-01 34 02


  ма 2. Если пользователь переопределяет клавишу,  значит  он

  присваивает одну или несколько команд режима 2 этой  клави-

  ше;

       2) переназначать можно все клавиши функциональной кла-

  виатуры (за исключением <GOLD>), некоторые клавиши основной

  алфавитно-цифровой клавиатуры и управляющие символы;

       3) существует три способа переназначения функций  кла-

  виш:

       - в строковом режиме посредством команды DEFINE KEY;

       - в режиме 2 посредством команды DEFK;

       - в режиме 3 используется комбинация СТRL/K.









































                           - 34 -

                        00152-01 34 02


        3. ВЫПОЛНЕНИЕ ПРОГРАММЫ И СООБЩЕНИЯ ОПЕРАТОРУ




       В МОС ВП запуск редактора EDТ зависит от типа  интерп-

  ретатора командных строк, функционирующего в данный  момент

  в операционной системе.

       В МОС ВП различают два таких интерпретатора:

  DСL

       - интерпретатор диалогового командного языка;

  MСR

       - интерпретатор команд оператора, функционирующий  в

         в МОС ВП в режиме совместимости.

       Каждый интерпретатор характеризуется своей собственной

  подсказкой оператору, которая свидетельствует  о  том,  что

  терминал находится в командном режиме, т.е. готов к  приему

  очередной команды оператора, например команды запуска EDТ.

       В ТАБЛ. 1 ПРИВЕДЕН СВОДНЫЙ  ПЕРЕЧЕНЬ  ТАКИХ  СИСТЕМНЫХ

  подсказок.

                                                     Таблица 1

             Системные интерпретаторы и подсказки

   -----------------------------------------------------------
     Операционная   !   Интерпретатор   !     Подсказки
       система      !                   !
   -----------------------------------------------------------
                    !                   !
       МОС ВП       !       DСL         !    $
                    !                   !
                    !       MСR         !    >



       п_р_и_м_е_ч_а_н_и_е. Для интерпретатора MСR для запус-

  ка редактора используется имя EDТ.  Необходимо  следить  за

  тем, чтобы в системе были установлены задачи с этим  именем

  (для МОС ВП в режиме совместимости).





                           - 35 -

                        00152-01 34 02


       Далее приводятся примеры  запуска  EDТ  для  указанных

  интерпретаторов командных строк.

   6+

       3.1. Командная строка DСL



       Формат командной строки DСL

          EDIТ/EDТ[/KлЮЧ1,/KлЮЧ2,.../KлЮЧN] [вхф]

       Параметры командной строки

  EDIТ/EDТ

       - команда вызова текствого редактора EDТ;

  /KлЮЧ1,/KлЮЧ2,.../KлЮЧN

       - ключи команды;

  вхф

       - спецификация    входного    файла,     подлежащего

         редактированию.

       Спецификации файлов задаются в соответствии с требова-

  ниями операционной системы.

       Если  входной  файл,  указанный  в  командной   строке

  отсутствует, то в процессе  редактирования  происходит  его

  создание с помощью команды  INSERТ.  В  этом  случае  после

  ввода командной строки EDТ выводит сообщение:


          EDIТ/EDТ техт.тхт <СR>
          INРUТ FILE DOES NOТ EХISТ
          входной файл отсутствует
          [EOB]
          *

       EDТ находится в строковом режиме редактирования, о чем

  свидетельствует появление  подсказки-символа  "*".  Признак

  [EOB] означает конец буфера.

       При нажатии клавиши  <СR>  после  ввода  EDIТ/EDТ  без

  указания имени файла на экране появляется запрос-подсказка:




                           - 36 -

                        00152-01 34 02


          -FILE:
          -файл:

  и редактор переходит в состояние ожидания  ввода  командной

  строки, в которой задается спецификация файла.



       3.2. Ключи командной строки DСL



       Ключи,  используемые  в  командной  строке  DСL,  дают

  возможность   пользователю    дополнительными    средствами

  управлять  редактором  в   процессе   редактирования.   При

  включении ключа в командную строку необходимо  использовать

  символ косой черты "/". Описание ключей приводится в  табл.

  2.

                                                   Таблица 2

                  Ключи командной строки DСL

   ---------------------------------------------------------
      Ключ      ! Значение     !       Описание ключа
                ! по умолчанию !
   ---------------------------------------------------------
   /OUТРUТ:BЫХФ ! /OUТРUТ:BЫХФ !  Ключ  /OUТРUТ   определяет
   /NOOUТРUТ    !              !спецификацию выходного  фай-
                !              !ла, который создается  в ре-
                !              !зультате  редактирования. По
                !              !умолчанию, если ключ /OUТРUТ
                !              !отсутствует,  выходной  файл
                !              !создается  с  тем  же   име-
                !              !нем, что и входной. При этом
                !              !содержимое выходного файла -
                !              !это новая версия редакции.
                !              !  Ключ /NOOUТРUТ  задается в
                !              !случае ненадобности сохране-
                !              !ния копии редактируемого или
                !              !вновь  создаваемого  файла в
                !              !виде   файла  с  расширением
                !              !.BAK
                !              !
   /СOMMAND     !/СOMMAND:     !  Ключ     /СOMMAND      вы-
       [:комф]  !   EDТINI.EDТ !зывает для выполнения коман-
   /NOСOMMAND   !              !дный файл перед началом  се-
                !              !анса   редактирования.  Если
                !              !ключ /СOMMAND задан без спе-
                !              !цификации  файла  или вообще
                !              !не задан, EDТ производит по-
                !              !иск в каталоге  пользователя
                !              !файла EDТINI.EDТ. Если файла



                           - 37 -

                        00152-01 34 02


                                         Продолжение табл. 2
   ---------------------------------------------------------
      Ключ      ! Значение     !       Описание ключа
                ! по умолчанию !
   ---------------------------------------------------------
                !              !EDТINI.EDТ  нет  или  указан
                !              !ключ /NOСOMMAND,  EDТ выдает
                !              !подсказку-символ "*" строко-
                !              !вого режима, не изменяя  при
                !              !этом значения  характеристик
                !              !операционной системы, задан-
                !              !ных по умолчанию
                !              !
   /JOURNAL     ! /JOURNAL     !  Ключ /JOURNAL[:жУРФ]  обе-
       [:журф]  !              !спечивает  создание   файла-
   /NOJOURNAL   !              !журнала в соответствии с за-
                !              !данной   спецификацией.   По
                !              !умолчанию или, если в  ключе
                !              !/JOURNAL не указана специфи-
                !              !кация файла, создается  жур-
                !              !нал-файл с именем  выходного
                !              !файла  и  расширением  имени
                !              !.JOU.    Отрицание     ключа
                !              !/NOJOURNAL приводит к отмене
                !              !создания журнал-файла
                !              !
   /REСOVER     ! /NOREСOVER   !  Ключ   /REСOVER   вызывает
   /NOREСOVER   !              !журнальный  файл,  созданный
                !              !в предыдущем сеансе редакти-
                !              !рования  для  восстановления
                !              !нарушенной редакции. Осталь-
                !              !ная часть  командной  строки
                !              !должна быть  аналогична  ко-
                !              !мандной  строке,  вызывающей
                !              !начало редактирования.  Ключ
                !              !/NOREСOVER запрещает восста-
                !              !новление с  помощью  журнал-
                !              !файла (п. 2.7.1)
                !              !
   /READ_ONLY   ! /NOREAD_ONLY !  Ключ  /READ_ONLY  отменяет
   /NOREAD_ONLY !              !создание журнал-файла и  вы-
                !              !ходного файла. Если  пользо-
                !              !ватель,  указав  /READ_ONLY,
                !              !попытается выйти из редакто-
                !              !ра без определения выходного
                !              !файла,  произойдет   ошибка.
                !              !ключ /READ_ONLY целесообраз-
                !              !но применять  при  необходи-
                !              !мости проверки файла без его
                !              !редакции. Ключ /NOREAD_ONLY-
                !              !- умолчание, по которому EDТ
                !              !создает выходной файл и жур-
                !              !нальный файл




                                    




                           - 38 -

                        00152-01 34 02


       3.3. Командная строка MСR



       Формат командной строки MСR 

          EDТ[[выхф][,журф]=]вхф[,комф]

       Параметры командной строки

  EDТ

       - команда вызова текстового редактора;

  выхф

       - спецификация выходного файла;

  журф

       - спецификация журнал-файла;

  вхф

       - спецификация входного файла, подлежащего  редакти-

         рованию;

  комф

       - спецификация стартового командного файла (по умол-

         чанию - файл EDТINI.EDТ).

       Обязательным для запуска  редактора  является  задание

  имени входного файла. В случае  отсутствия  имени  входного

  файла EDТ выдает запрос-подсказку после запуска редактора:

          EDТ <СR>
          EDТ>

       если  входной  файл,  указанный  в  командной  строке,

  отсутствует (например,  пользователь  хочет  создать  новый

  файл) EDТ выводит на экран сообщение:

          INРUТ FILE DOES NOТ EХISТ
          входной файл отсутствует
          [EOB]
          *

  и переходит в  строковый  режим  редактирования,  признаком

  которого является подсказка-символ "*".





                           - 39 -

                        00152-01 34 02


       3.4. Ключи командной строки MСR



       В табл. 3 приведены ключи,  используемые  в  командной

  строке MСR. Там же даны их описания. Допускается  использо-

  вание аббревиатуры ключа до двух первых символов. Знак  [-]

  означает   противоположное   действие   ключа,    например,

  /-REСOVER указывает на отмену /REСOVER.

                                                   Таблица 3

                  Ключи командной строки MСR

   ---------------------------------------------------------
      Ключ      !   Значение   !     Описание ключа
                ! по умолчанию !
   ---------------------------------------------------------
   /СOMMAND     ! /СOMMAND     !  Подраздел 3.2
   /-СOMMAND    !              !
                !              !
   /JOURNAL     ! /JOURNAL     !  Подраздел 3.2
   /-JOURNAL    !              !
                !              !
   /REСOVER     ! /REСOVER     !  Подраздел 3.2
   /-REСOVER    !              !
                !              !
   /RO          ! /-RO         !  Идентичен ключу в команд-
   /-RO         !              !ной строке DСL - /READ_ONLY
                !              !(см. подраздел 3.2)


       3.5. Примеры использования командных строк и

            ключей



       Пример 1.

          DСL

          EDIТ/EDТ ТEХТ.DAТ <СR>



          MСR

          EDТ ТEХТ.DAТ <СR>

       EDТ копирует содержимое файла ТEХТ.DAТ в главный текс-

  товый буфер и создает журнал-файл с именем ТEХТ.JOU. Выход-

  ному файлу EDТ назначает также имя ТEХТ.DAТ.



                           - 40 -

                        00152-01 34 02


       Пример 2.

          DСL

          EDIТ/EDТ/OUТРUТ:FILE.HLР/JOURNAL:REС.EDТ FILE.ТХТ



          MСR

          EDТ FILE.HLР,REС.EDТ=FILE.ТХТ

       EDТ копирует содержимое файла FILE.ТХТ в главный текс-

  товый буфер и открывает журнал-файл с именем REС.EDТ. После

  завершения сеанса редактирования и выхода из  редактора  по

  команде EХIТ EDТ переписывает  отредактированный  текст  из

  главного текстового буфера в выходной файл FILE.HLР. В слу-

  чае некорректного выхода из редактора или неожиданного пре-

  рывания процесса редактирования, журнал-файл REС.EDТ  помо-

  жет восстановить редакцию.

       Пример 3.

          DСL

   EDIТ/EDТ/OUТРUТ:FILE.HLР/REСOVER/JOURNAL:REС.EDТ FILE.ТХТ



          MСR

          EDТ FILE.HLР,REС.EDТ=FILE.ТХТ/REСOVER

       EDТ копирует содержимое файла FILE.ТХТ в главный текс-

  товый буфер MAIN и затем выполняет команды, содержащиеся  в

  журнальном файле REС.EDТ (результат предыдущего  редактиро-

  вания). В конце чтения журнального файла, EDТ  находится  в

  том же состоянии, в каком он был по  окончании  предыдущего

  сеанса редактирования.  В  журнальный  файл  заносятся  все

  алфавитно-цифровые символы, вводимые с клавиатуры  термина-

  ла. В процессе восстановления журнал-файл продолжает накап-

  ливать информацию.  Выходному  файлу  EDТ  присваивает  имя

  FILE.HLР.



                           - 41 -

                        00152-01 34 02


       Пример 4.

          DСL

          EDIТ/EDТ/OUТРUТ:РROBA.DAТ/СOMMAND:FORM.DAТ РROBA.ТХ



          MСR

          EDТ РROBA.DAТ=РROBA.ТХТ,FORM.DAТ

       EDТ копирует  содержимое  файла  РROBA.ТХТ  в  главный

  буфер MAIN, а  затем  читает  содержимое  командного  файла

  FORM.DАТ . После  того,  как  выполнится   командный   файл

  FORM.DAТ, редактор выдает подсказку-звездочку "*" строково-

  го режима редактирования. Выходному файлу присваивается имя

  РROBA.DAТ.

       Сообщения об ошибках, выводимые в процессе  редактиро-

  вания перечислены в приложении 2.



































                           - 42 -

                        00152-01 34 02


              4. Строковый режим редактирования




       Строковый режим обычно используется при работе с печа-

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

  пользователей, работающих с видеотерминалами, но  предпочи-

  тающих редактировать  текст  с  пронумерованными  строками.

  Об'ектом редактирования в строковом режиме является  строка

  или группа строк.

       Строковый режим допускает  использование  аббревиатуры

  команд, от минимальной (одного символа) до полного названия

  команды.



       4.1. Аргументы команд строкового режима


       В командах строкового режима задаются аргументы,  бла-

  годаря которым команды могут выполняться в строковом режиме

  в пределах:

       - одной строки;

       - указанного диапазона строк;

       - любого текстового буфера или части его, ограничен-

         ного указателем.

       Аргумент команды - это спецификация  области  действия

  команды, представленная в виде символических имен или выра-

  жений.

       Различают  аргумент,  определяющий  единичную  строку,

  аргумент, определяющий группу смежных строк  (номера  строк

  являются последовательными) и группу несмежных строк (номе-

  ра строк задаются выборочно).

       Для определения или явного указания имени буфера необ-

  ходимо ввести "=имя" или "BUFFER имя", (где имя - имя  тре-



                           - 43 -

                        00152-01 34 02


  буемого буфера) как часть спецификации области. По  умолча-

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

  об'ектом действия команды является текущая строка.



       4.1.1. Область единичной строки



       Область отдельной (единичной) строки  определяет  одну

  строку текстового буфера, которую обрабатывает команда EDТ.

       Табл. 4 содержит различные варианты спецификаций  еди-

  ничной строки, которые используются в  формате  команд  как

  аргументы. В квадратные скобки "[ ]" заключены необязатель-

  ные параметры, символ "!" (или) разграничивает альтернатив-

  ные аргументы. Аргументы  задаются  в  командах  строкового

  режима редактирования.

                                                    Таблица 4

                  Аргументы единичной строки

   ----------------------------------------------------------
      Аргумент      !              Значение
   ----------------------------------------------------------
    .               !  Текущая строка
                    !
   N[.M]            !  Строка, заданная своим номером,
                    !где  N - целая часть десятичного числа;
                    !     М - десятичная часть
                    !
   'текст'!"текст"  !  Текст, который  задается  для  поиска
                    !необходимой строки от указателя до кон-
                    !ца текстового буфера. Текст - набор лю-
                    !бых алфавитно-цифровых символов
                    !
   '-текст'!"-текст"!  Текст, который задается для    поиска
                    !необходимой строки. Поиск  ведется   от
                    !указателя к началу буфера. Если 'текст'
                    !не определен для поиска,  т.е.   Заданы
                    !"пустые" кавычки, EDТ находит последнюю
                    !строку в буфере
                    !
   [арг]+[N]        !  Строка, отстоящая на N-СТРOK от стро-
                    !ки, определенной в [арг], где N - целое
                    !число. Спецификация строки в [арг]  за-
                    !дается одним из вышеперечисленнных спо-
                    !собов. Направление поиска - от указате-
                    !ля к концу буфера. По умолчанию:



                           - 44 -

                        00152-01 34 02


                                          Продолжение табл. 4
   ----------------------------------------------------------
      Аргумент      !              Значение
   ----------------------------------------------------------
                    !  [арг] - текущая строка;
                    !  N=1
                    !
   [арг]-[N]        !  Строка, отстоящая на N-строк от стро-
                    !ки, определенной в [арг], где N - целое
                    !число. Направление поиска - от указате-
                    !ля   к  началу  буфера. Спецификация  в
                    ![арг] задается одним из вышеперечислен-
                    !ных способов. По умолчанию:
                    !  [арг]- текущая строка;
                    !  N=1
                    !
   BEGIN            !  Первая  строка  в  текстовом   буфере
                    !
   END              !  Пустая строка, следующая за последней
                    !строкой текста  в текстовом  буфере. На
                    !экране появляется  [EOB] - признак кон-
                    !ца буфера
                    !
   LASТ             !  Последняя строка в  буфере, предшест-
                    !вующем текущему
                    !
   ORIGINAL N       !  Строка, номер которой назначается  во
                    !время первоначального копирования вход-
                    !ного файла в главный буфер MAIN. В слу-
                    !чае перенумерации строк, задав первона-
                    !чальный номер, можно вывести на   экран
                    !любую,интересующую пользователя, строку

       Примеры задания спецификаций единичной строки:

       Пример 1.

          *DELEТE . <СR>                            
          1 стр. Удал.

       ЕDТ удаляет текущую строку и выводит сообщение "1 стр.

  Удал."

       Пример 2.

          *ТYРE 12.11 <СR>
             12.11        строка под номером 12.11.

       ЕDТ выводит строку 12.11

       Пример 3.

          *ТYРE -'аргумент' <СR>
             65           аргумент команды - это ...
          * " "<СR>
             118          если аргумент не задан, ...





                           - 45 -

                        00152-01 34 02


       EDТ находит первую строку, предшествующую  текущей,  в

  которой  встретилось  слово  'аргумент'.  Последующий  ввод

  "пустых" кавычек (подразумеваемая команда ТYРE) приводит  к

  нахождению следующей строки, содержащей  слово  'аргумент'.

  Направление поиска в этом случае - "вперед".

       Пример 4.

          *INSERТ .+12 <СR>

       EDТ готовит текстовый буфер для ввода текста, устанав-

  ливая курсор на 12-й строке по счету  после  текущей,  т.е.

  первоначального положения курсора.

       Пример 5.

          *'авс' +3 <СR>
               27         строка, третья по счету после...

       ЕDТ ведет поиск в направлении "вперед" первого появле-

  ния символов "авс". Далее, отсчитав в  том  же  направлении

  третью строку, перемещает курсор  на  эту  позицию.  Строка

  выводится на экран.

       Пример 6.

          *FIND LASТ <СR>

       EDТ перемещает курсор на последнюю строку в  текстовом

  буфере, который  был  использован  до  текущего  текстового

  буфера.

       Пример 7.

          *ТYРE ORIGINAL 32 <СR>
             251           строка, интересующая пользователя.

       ЕDТ выводит  на  экран  строку,  первоначальный  номер

  которой был -  32.  В  дальнейшем  процессе  редактирования

  пользователь произвел перенумерацию строк.



       П_р_и_м_е_ч_а_н_и_е. Если файл содержит  фиксированные

  Номера строк, EDТ принимает их за первоначальные  строковые



                           - 46 -

                        00152-01 34 02


  номера.  Если  таковых  не  существует,  EDТ  использует  в

  качестве первоначальных номера, присвоенные в текущем  про-

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



       4.1.2. Группа смежных строк



       Область смежных строк включает группу строк с последо-

  вательными номерами внутри текстового  буфера.  В  табл.  5

  приведены аргументы смежных строк и их значения. В квадрат-

  ные скобки "[ ]" заключены необязательные параметры, символ

  "!" (или) разделяет альтернативные аргументы.

                                                    Таблица 5

                    Аргументы смежных строк

   ----------------------------------------------------------
       Аргументы       !              Значение
   ----------------------------------------------------------
   [арг-1]:[арг-2]!    !  Диапазон строк, ограниченный арг-1
   [арг-1]ТHRU[арг-2]  !и арг-2 включительно. По  умолчанию,
                       !за арг-1 и арг-2 принимается текущая
                       !строка. Арг-1 и арг-2 являются  спе-
                       !цификациями   отдельной  (единичной)
                       !строки
                       !
   [арг]#N![арг]FOR N  !  N строк, начиная со строки, задан-
                       !ной своими обозначениями,
                       !где N - положительное число.
                       !по  умолчанию , за  арг  принимается
                       !текущая строка
                       !
   BEFORE              !  Все строки в текущем буфере от на-
                       !чала до текущей строки
                       !
   RESТ                !  Все строки в текущем буфере, начи-
                       !ная с текущей до конца буфера
                       !
   WHOLE               !  Все  строки  в   текущем   буфере

       Пример 1.

          *DELEТE 10 ТHRU 22 <СR>
          13 стр. Удал.

             Или

          *DELEТE 10:22 <СR>
          13 стр. Удал.

                                                    

                           - 47 -

                        00152-01 34 02



       EDТ удаляет строки с 10 по 22 включительно  и  выводит

  сообщение о количестве удаленных строк.

       Пример 2.

          *ТYРE "ABС":"DEF" <СR>

       На экран выводятся все строки, заключенные между стро-

  кой с  фрагментом  "авс"  и  строкой,  содержащей  фрагмент

  "DEF". Поиск ведется от указателя к концу буфера.

       Пример 3.

          *ТYРE 100#10 <СR>

       EDТ выводит на экран 10 строк,  начиная  со  строки  с

  номером 100.

       Пример 4.

          *DELEТE BEFORE <СR>
          20 стр. Удал.

       Удаляются все строки, предшествующие позиции курсора в

  текущем текстовом буфере, и выводится сообщение о количест-

  ве удаленных строк.



       4.1.3. Группа несмежных строк



       Область несмежных строк определяется несколькими выбо-

  рочными отдельными строками, которые задаются своими  обоз-

  начениями. В табл. 6 показаны  аргументы  группы  несмежных

  строк.

                                                    Таблица 6

                   Аргументы несмежных строк

   ----------------------------------------------------------
       Аргумент        !               Значение
   ----------------------------------------------------------
   [арг,арг,...]!      !  Все строки текущего буфера, каждая
   [арг AND арг AND...]!из  которых  задается  спецификацией
                       !единичной строки (п. 4.1.1)
                       !



                           - 48 -

                        00152-01 34 02


                                          Продолжение табл. 6
   ----------------------------------------------------------
       Аргумент        !               Значение
   ----------------------------------------------------------
   [арг] ALL 'текст'   !  Все строки в  арг,  которые содер-
                       !жат  указанный   фрагмент   строки -
                       !- 'текст'. Если   арг  не определен,
                       !подразумевается весь текстовый буфер

       Пример 1.

          *MOVE 3,7,10,22,26 то 60 <СR>
          *_

       EDТ перемещает указанные строки на позицию перед стро-

  кой 60 и затем перенумеровывает их для этого положения.

       Пример 2.

          *ТYРE ALL 'программа' <СR>
                .
                .
                .


       ЕDТ выводит все  строки  текущего  буфера,  содержащие

  слово "программа".



       4.1.4. Спецификация текстового буфера



       Пользователь  может  определить  спецификацию   любого

  текстового буфера, отличного от текущего. Имя буфера указы-

  вается перед спецификацией области.

       Формат спецификации текстового буфера

          [=имя][арг]![BUFFER имя][арг]

       Параметры

  имя

       - имя   буфера,    содержащее    от    1    до    30

         алфавитно-цифровых символов. Первый символ  должен

         быть алфавитным.

       Если имя буфера не определено, по умолчанию подразуме-

  вается текущий текстовый буфер. Если буфер используется без



                           - 49 -

                        00152-01 34 02


  спецификации области, действие команд  распростроняется  на

  весь текстовый буфер. Курсор устанавливается  при  этом  на

  первой строке рабочего буфера.

       Пример 1.

          *ТYРE =MAIN. <СR>

       EDТ входит в текстовый буфер MAIN, устанавливает  кур-

  сор на позицию текущей строки и выводит ее на экран.  Теку-

  щей, при этом, считается строка, на которой был  установлен

  указатель в момент выхода из буфера MAIN.

       Пример 2.

          *ТYРE BUFFER РASТE ALL 'редактор' <СR>

       EDТ выводит все строки, содержащие слово 'редактор'  в

  текстовом буфере РASТE.



       4.2. Структура команд строкового режима



       Команды  строкового  режима  вводятся  непосредственно

  после подсказки-символа "*". Команды,  описанные  в  данном

  подразделе, следуют в  алфавитном  порядке.  Необязательная

  часть названия команды или  ключа  заключена  в  квадратные

  скобки. Допустимая  минимальная  аббревиатура  команды  или

  ключа вынесена за квадратные скобки.

       Команды строкового режима имеют формат

          команда [арг][/ключ]



       4.2.1. Команда СHANGE



       Команда СHANGE запускает экранные режимы  редактирова-

  ния (режим 2 или режим 3),  зависящие  от  типа  терминала.

  Перед вводом команды СHANGE необходимо установить  характе-



                           - 50 -

                        00152-01 34 02


  ристики экранных режимов: SEТ KEYРAD или SEТ NOKEYРAD.

       Формат команды

          С[HANGE] [арг]

       Параметры команды

  арг

       - диапазон строк, первая строка которого  определяет

         начальное положение курсора.

       Для перехода в строковый режим необходимо ввести  ком-

  бинацию СТRL/Z в экранном режиме 3 (с использованием  функ-

  циональной клавиатуры) или выполнить команду EХIТ в  экран-

  ном режиме 2 (без использования функциональной клавиатуры).

       Если за командой СHANGE следует точка с  запятой  ";",

  то  оставшаяся  часть  командной  строки  после  знака  ";"

  интерпретируется как команда  или  набор  команд  экранного

  режима 2.

       Например, командная строка:

          *СHANGE;ТI ЕХ <СR>

  означает выполнение команд TAB и INSERТ в режиме 2 и  возв-

  рат в строковый режим по команде EХIТ.

       При указании  номера  строки  после  введения  команды

  СHANGE EDТ запускает один из экранных режимов и  устанавли-

  вает курсор на строке с указанным номером в главном тексто-

  вом буфере. Например:

          *СHANGE 43 <СR>



       4.2.2. Команда СLEAR



       Команда СLEAR позволяет удалять содержимое  текстового

  буфера.





                           - 51 -

                        00152-01 34 02


       Формат команды

          СL[EAR] имя

       Параметры комманды

  имя

       - имя буфера, содержимое которого нужно удалить.

       Команда SHOW BUFFER, заданная в строковом режиме, поз-

  воляет проверить результат выполнения команды СLEAR.

       Пример.

          *СLEAR EDIТOR <СR>

          ***************************************************
          *SHOW BUFFER <СR>
           EDIТOR  0     стр.
          =MAIN   10     стр.
           РASТE   2     стр.
          *
          ***************************************************

       В примере буфер с именем EDIТOR является обнуленным по

  команде СLEAR.



       4.2.3. Команда СOРY



       Команда СOРY копирует строки текста из одного  тексто-

  вого буфера в другой или перемещает строки внутри  текущего

  буфера. При этом строки из первоначального  месторасположе-

  ния не удаляются.

       Формат команды

          СO[РY] [арг1] то [AРг2][/Q[UERY]][/D[UРLIСAТE]:N]

       Параметры команды

  арг1

       - строка или группа строк, которая подлежит  копиро-

         ванию;

  арг2

       - строка, перед которой копируются строки,  заданные



                           - 52 -

                        00152-01 34 02


         в арг1.

       По умолчанию, если не задан арг2, копирование произво-

  дится перед текущей строкой.

       Ключ /QUERY позволяет проверить каждую строку,  задан-

  ную в арг1. Ключ /DUBLIСAТE:N дает  возможность  копировать

  строку или диапазон строк N-E количество раз.

       Если заданный диапазон строк находится  не  в  текущем

  буфере, то необходимо указать имя того буфера (=имя), отку-

  да будет извлечен текст  перед  арг1.  Если  строка,  перед

  которой вставляется копируемый текст, находится не в  теку-

  щем буфере, то имя буфера, куда будет помещен текст, указы-

  вается после "то".

       При использовании ключа /QUERY в команде СOРY  EDТ  до

  выполнения команды печатает строку,  заданную  в  арг1,  на

  терминале со знаком вопроса и ждет от  пользователя  указа-

  ний. Возможны  четыре  ответа,  в  зависимости  от  которых

  редактор тем или иным образом обрабатывает строку:

          Y (YES)  -  копирует строку в заданную область;

          N (NO)   -  не копирует строку в заданную область;

          А (ALL)  -  копирует  остальные  строки  из арг1 в

                      арг2 без их предварительного вывода на

                      экран;

          Q (QUIТ) -  прекращает  копирование  и переходит в

                      командный режим.

       После выполнения команды СOРY EDТ устанавливает указа-

  тель в начало вставленного текста.

       Пример 1.

          *СOРY 15 ТHRU 60 то 95 <СR>

       EDТ копирует строки с 15 по 60 текущего  буфера  перед

  строкой с номером 95.



                           - 53 -

                        00152-01 34 02


       Пример 2.

          *СOРY =MAIN то =ТEХТ/QUERY

       EDТ копирует содержимое текстового буфера MAIN в буфер

  техт, предварительно распечатывая каждую строку  на  экране

  со знаком "?". Пользователь должен указать один из  ответов

  (Y,N,A или Q) для продолжения выполнения команды СOРY.

       Пример 3.

          *СOРY BEGIN то 65/DUРLIСAТE:9

       EDТ копирует первую строку текущего текстового  буфера

  перед строкой с номером 65 того  же  буфера.  Эта  операция

  повторяется 9 раз.



       4.2.4. Команда DEFINE KEY


       Команда DEFINE KEY позволяет назначать функции  ключам

  функциональной клавиатуры в режиме 3. Более подробно коман-

  да DEFINE KEY описана в разделе 8.



       4.2.5. Команда DEFINE MAСRO



       Команда DEFINE MAСRO назначает имя  последовательности

  команд редактирования, т.е. имя макрокоманды.

       Формат команды

          DEF[INE] MA[СRO] мком

       Параметры команды

  мком

       - имя макрокоманды, состоящей из  последовательности

         команд редактирования.

       Команда DEFINE MAСRO назначает имя текстовому  буферу.

  Пользователь может ввести в заданный текстовый буфер  любое




                           - 54 -

                        00152-01 34 02


  количество  команд  EDТ.  Ввод  текста,  содержащего  набор

  команд редактирования, в текстовый буфер,  определенный  по

  команде DEFINE MAСRO, завершается по СТRL/Z. При  этом  имя

  макрокоманды в строковом режиме  редактирования  становится

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

       Пользователь может задать имя макрокоманды,  аналогич-

  ное существующей  команде  строкового  режима,  причем  эта

  команда становится надоступной в строковом режиме для  дан-

  ного процесса редактирования.

       Например, необходимо вставить часть текста  в  опреде-

  ленные места текстового буфера. Пользователь создает макро-

  команду и назначает ей имя INSERТ. Теперь при вводе  INSERТ

  как команды EDТ, редактор выполняет содержимое макрокоманды

  INSERТ.

       Возможно наличие вложенных макрокоманд в первоначально

  определенной макрокоманде. Глубина вложения  ограничивается

  только доступной памятью.

       Пример.


          ***************************************************
              10          строка текстового буфера
          *DEFINE MAСRO FORM <СR>
          *FIND=FORM <СR>
          *INSERТ <СR>
                          SEТ TAB 4 <СR>
                          SEТ ENТIТY SENТENСE ';' <СR>
                          SEТ NOWRAР <СR>
                          SEТ NOТRUNСAТE <СR>
                          FIND LASТ+1 <СR>
                          INSERТ; строка новой программы<СR>
                          (СТRL/Z)
          *FIND=MAIN
          *<СR>
              10          строка текстового буфера
          *_
          ***************************************************

       На уровне 10 строки  текущего  буфера  команда  DEFINE

  MAСRO определяет FORM как команду EDТ на время данного про-




                           - 55 -

                        00152-01 34 02


  цесса редактирования. Текстовому буферу  также  назначается

  имя FORM. С помощью команды  FIND  происходит  переключение

  редактора с текущего буфера на буфер с  именем  FORM,  куда

  вводятся строки, содержащие команды строкового режима. Ввод

  командных строк завершается по  СТRL/Z.  Команда  FIND=MAIN

  возвращает пользователя на позицию текстового буфера, пред-

  шествующую команде DEFINE MAСRO. После нажатия клавиши <СR>

  на экран выводится текущая строка с номером 10.

       Далее, для выполнения операций, заданных в макрокоман-

  де в ответ на подсказку-символ "*" строкового режима редак-

  тирования нужно ввести команду FORM. При  этом  выполняются

  следующие действия:

       1) первый шаг табуляции устанавливается равным 4;

       2) разграничителем для аргумента-предложения определе-

  на точка с запятой ";";

       3) устанавливается параметр NOWRAР (п. 7.1.14);

       4) устанавливается параметр NOТRUNСAТE (п. 7.1.12);

       5) EDТ  определяет  местоположение  последней  строки,

  предшествующей вводу команды FORM и  на  следующей  за  ней

  строке печатает сообщение:

          'строка новой программы'



       4.2.6. Команда DELEТE



       Команда  DELEТE  удаляет  строки  текста,  заданные  в

  области действия команды.

       Формат команды

          D[ELEТE] [арг][/Q[UERY]]







                           - 56 -

                        00152-01 34 02


       Параметры команды

  арг

       - строки, подлежащие удалению из указанного  тексто-

         вого буфера.

       При отсутствии арг удаляется текущая  строка.  Если  в

  командной строке  задана  для  удаления  группа  строк,  то

  редактор выводит на экран сообщение о количестве  удаленных

  строк. Ключ /QUERY управляет процессом удаления строк.  При

  задании ключа /QUERY EDТ выводит на  экран  каждую  строку,

  подлежащую удалению, со знаком вопроса "?" и ждет от  поль-

  зователя    указаний.    Возможны    четыре    ответа    на

  вопрос-подсказку:

          Y (YES)  - удаляется строка;

          N (NO)   - не удаляется строка;

          а (ALL)  - удаляются  все остальные строки,

                     заданные в арг;

          Q (QUIТ) - прекращается выполнение команды.

       Пример 1.

          ***************************************************
          *DELEТE <СR>
          1 стр. Удал.
              20          строка, следующая за удаленной.
          *_
          ***************************************************

       EDТ удаляет текущую строку и выводит на терминал стро-

  ку, следующую за удаленной, строку 20.

       Пример 2.

          ***************************************************
          *DELEТE 25 <СR>
          1 стр. Удал.
              26          нет больше строк между 25 и 26
          *_
          ***************************************************

       EDТ удаляет строку с номером 25 и выводит строку, сле-

  дующую за удаленной, строку 26.



                           - 57 -

                        00152-01 34 02


       Пример 3.

          ***************************************************
          *DELEТE BEFORE <СR>
          10 стр.удал.
              11          строка, следующая за областью.
          *_
          ***************************************************

       EDТ удаляет  все  строки,  предшествующие  текущей,  и

  выводит содержимое следующей за указанной  областью  строки

  11.

       Пример 4.

          ***************************************************
          *DELEТE 12 ТHRU 42/QUERY <СR>
              12          первая строка в области.
          ? N <СR>
              13          вторая строка в области.
          ? Y <СR>
          1 стр. Удал.
              14          третья строка в области.
          ? а <СR>
          29 стр. Удал.
              43          срока, расположенная вне области.
          *_
          *************************************************

       EDТ выводит каждую строку из указанной области со зна-

  ком "?". Пользователь может ввести один из четырех  возмож-

  ных ответов для продолжения или прекращения операции удале-

  ния.



       4.2.7. Команда EХIТ



       Команда EХIТ  завершает  процесс  редактирования.  При

  этом содержимое главного текстового буфера переписывается в

  выходной файл, определенный в этой  команде  или  в  начале

  диалога в ответ на  подсказку  EDТ>.  Содержимое  остальных

  текстовых буферов теряется.








                           - 58 -

                        00152-01 34 02


       Формат команды

          EХ[IТ] [иMЯФ][/SEQ[UENСE][:M[:N]]][/SA[VE]]

       Параметры команды

   имяф  - имя выходного файла;

   М     - начальный фиксированный номер строки;

   N     - шаг нумерации (п. 4.2.17).

       При использовании ключа /SEQUENСE EDТ назначает  стро-

  кам текста фиксированные номера в виде целых чисел, которые

  становятся частью файла. Возможно задание начального номера

  строки и шага нумерации.

       Ключ /SAVE сохраняет журнал-файл. Журнал-файл создает-

  ся с тем же именем, что и  выходной  файл,  определенный  в

  командной строке при запуске редактора с расширением  .JOU.

  Более подробно журнал-файл описан в п. 2.7.1.

       Примеры 1.

        *EХIТ

       EDТ переписывает содержимое главного текстового буфера

  в выходной файл, заданный в командной  строке  при  запуске

  редактора. После выполнения этой команды  управление  пере-

  дается монитору.

       Пример 2.

        *EХIТ NAME.NEW/SEQUENСE:5:5/SAVE

       EDТ переписывает содержимое главного текстового буфера

  в файл с именем NAME.NEW в формате VFС (п. 2.4.2.).  Фикси-

  рованный номер первой строки в файле  -  5,  и  последующие

  строки нумеруются с  шагом  равным  5.  Редактор  сохраняет

  журнал-файл.









                           - 59 -

                        00152-01 34 02


       4.2.8. Команда FIND




       Команда FIND перемещает указатель строки  в  текстовом

  буфере. При этом редактор не выводит  на  экран  строку,  к

  которой необходимо переместить указатель.

       Формат команды

          F[IND] арг

       Параметры команды

  арг

       - строка, к которой необходимо переместить указатель

         в текстовом буфере.

       Если строка, заданная  в  арг,  найдена,  EDT  выводит

  подсказку-символ "*".



       П_р_и_м_е_ч_а_н_и_е. При использовании  прописных  или

  Строчных русских букв  (в  случае  8-битового  кодирования)

  предварительно необходимо дать команду:

         SET SEARCH ехаст (см. п. 7.1.10)

       Пример  1.

          *FIND 45
          *

       EDT находит строку с номером 45  в  текущем  текстовом

  буфере.

       Пример 2.

          *FIND=STORE 45
          *

       EDT находит строку с номером  45  в  текстовом  буфере

  STORE.









                           - 60 -

                        00152-01 34 02


       4.2.9. Команда HELP



       Команда HELP выводит на экран информацию о запрашивае-

  мой команде, подкоманде, ключе и т.п.

       Формат команды

          H[ELP] [команда [подкоманда]]

       команда или подкоманда могут иметь один  из  следующих

  форматов:

       1) строка, состоящая из  алфавитно-цифровых  символов,

  например, командная строка или ключ;

       2) символ маскирования, заменяющий любой набор  симво-

  лов - "*".

       Для получения распечатки существующих  команд,  подко-

  манд, ключей и т.п. Необходимо ввести:

          *HELP <CR>

       Примеры 1.

          *HELP SUBSTITUTE NEXT <CR>

       EDT выводит на экран справочную информацию  о  команде

  SUBSTITUTE NEXT.

       Пример 2.

          *HELP CHANGE SUBCOMMAND <CR>

       EDT выводит на экран справочную информацию о подкоман-

  дах CHANGE.

       Пример 3.

          *HELP * <CR>

       EDT  в  алфавитном  порядке  распечатывает  справочные

  тексты всех команд, входящих в состав редактора. По  CTRL/S

  вывод на экран прекращается. Комбинация CTRL/Q возобновляет

  эту операцию.





                           - 61 -

                        00152-01 34 02


       4.2.10. Команда INCLUDE



       Команда INCLUDE копирует содержимое файлов в текстовые

  буферы. Строки, добавляемые посредством команды  INCLUDE  и

  пронумерованные  редактором,  вставляются   непосредственно

  перед строкой, заданной в командной строке.

       Формат команды

          INC[LUDE] имяф [арг]

       Параметры команды

  имяф

       - имя файла, который необходимо копировать в  задан-

         ный текстовый буфер;

  арг

       - определяет место (строку в текстовом  буфере)  для

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

         строк,  то  копирование  происходит  перед  первой

         строкой данного диапазона. Если  арг  отсутствует,

         то текст вставляется перед текущей строкой.

       После завершения выполнения  команды  EDT  выводит  на

  экран подсказку-символ "*".

       Пример 1.

          *INCLUDE TEXT.DAT

       EDT копирует содержимое файла с  именем  техт.  DAT  в

  текущий текстовый буфер перед текущей строкой.

       Пример 2.

          *INCLUDE TEXT.FIL=TEXT

       EDT копирует содержимое файла TEXT.FIL в буфер с  име-

  нем техт непосредственно перед первой строкой содержащегося

  в буфере текста.





                           - 62 -

                        00152-01 34 02


       Пример 3.

          *INCLUDE FILE.TEN=ELEVEN 60

       EDT копирует содержимое  файла  FILE.TEN  в  текстовый

  буфер с именем ELEVEN.  Редактор  помещает  текст  в  буфер

  перед строкой с номером 60.



       4.2.11. Команда INSERT



       Команда INSERT вставляет в текстовый буфер текст, вво-

  димый с терминала.

       Формат команды

          I[NSERT] [арг][;строка]

       Параметры команды

  арг

       - строка в текстовом буфере,  перед  которой  встав-

         ляется вводимый текст. Если  указывается  диапазон

         строк, то текст вставляется перед первой  строкой.

         По умолчанию, при отсутствии арг, текст вставляет-

         ся перед текущей строкой.

  Строка

       - строка, подлежащая вставке,  задается  непосредст-

         венно в командной строке.

       Команда INSERT выполняет  вставку  одной  единственной

  строки, заданной непосредственно в командной  строке  после

  знака ";".

       В остальных случаях  пользователь  сначала  определяет

  место вставки в текстовый буфер, затем со следующей  строки

  (после команды) вводит  текст.  Выполнение  команды  INSERT

  завершается комбинацией  CTRL/Z.  При  этом  EDT  возращает

  пользователя в строковый режим, признаком которого является



                           - 63 -

                        00152-01 34 02


  подсказка-символ "*".

       Пример 1.

          *INSERT 12 <CR>

       Вставка текста перед строкой с номером  12  в  текущем

  буфере. При этом EDT  назначает  всем  вставленным  строкам

  десятичные номера (п.  2.4.1).  ЕDT  остается  в  состоянии

  приема вводимого с клавиатуры текста до нажатия CTRL/Z.

       Пример 2.

          *INSERT =техт 30;новая версия редактора <CR>
          *_

       EDT вставляет сообщение "новая версия редактора" перед

  строкой 30 в буфере техт. После выполнения команды на экра-

  не появляется подсказка-символ "*".



       4.2.12. Команда MOVE



       Команда MOVE перемещает строки, указанные в специфика-

  ции области арг1, из одного  буфера  в  другой  или  внутри

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

  положения.

       Формат команды

          M[OVE] [APг1]TO[APг2][/Q[UERY]]

       Параметры команды

  арг1

       - строки текстового буфера, которые необходимо пере-

         местить;

  арг2

       - строка,  перед  которой  вставляется  пересылаемый

         текст. Если  арг2  содержит  несколько  строк,  то

         вставка производится перед первой строкой  указан-




                           - 64 -

                        00152-01 34 02


         ного диапазона.

       Ключ /QUERY  управляет  режимом  пересылки  указанного

  диапазона строк. При использовании ключа /QUERY  в  команде

  MOVE EDT до выполнения команды печатает строку, заданную  в

  арг1, на терминале со знаком вопроса и ждет от пользователя

  указаний. Возможны четыре ответа, в зависимости от  которых

  редактор тем или иным образом обрабатывает строку:

          Y (YES)  -  копирует строку в заданную область;

          N (NO)   -  не копирует строку в заданную область;

          А (ALL)  -  копирует остальные строки из арг1 в

                      арг2 без их предварительного вывода

                      на экран;

          Q (QUIT) -  прекращает копирование и переходит

                      в командный режим.

       После выполнения команды MOVE EDT устанавливает указа-

  тель в начало первой строки вставленного текста.

       Команда MOVE аналогична команде COPY с той лишь разни-

  цей, что строки заданные в арг1,  удаляются  из  начального

  месторасположения.

       Пример 1.

          *MOVE то 65 <CR>

       EDT вставляет текущую строку перед строкой  с  номером

  65. При этом текущая строка удаляется из начального  место-

  расположения.

       Пример 2.

          *MOVE =техт WHOLE то 47 <CR>

       EDT копирует содержимое буфера техт перед  строкой  47

  текущего буфера. Содержимое буфера техт при этом  затирает-

  ся. ЕDT назначает новые строковые номера перемещенным стро-

  кам.



                           - 65 -

                        00152-01 34 02


       Пример 3.

          *MOVE 24 THRU 88 ТО =MAIN 60 <CR>

       EDT перемещает строки с 24 по 88  текущего  буфера  на

  позицию перед строкой с номером 60 текстового буфера MAIN и

  затем удаляет этот диапазон строк из текущего  буфера.  ЕDT

  назначает новые строковые номера перемещенным строкам.



       4.2.13. Команда NULL (имитация TYPE)



       Команда (NULL) выполняет подразумеваемую команду TYPE,

  выполняется при нажатии клавиши <CR>, в результате чего EDT

  выводит на экран следующую после текущей строку текста.

       В команде можно  задавать  диапазон  строк  или  номер

  отдельной строки перед нажатием клавиши <CR>. Однако  аргу-

  ментам REST, WHOLE, BEGIN, END, LAST и ALL должен предшест-

  вовать знак "%".

       Формат команды

          [арг] <CR>

       Параметры команды

  арг

       - диапазон  строк,  который  необходимо  вывести  на

         экран.

       Пример 1.

          * - <CR>

       Знак минус определяет  направление  действия  команды.

  ЕDT выводит на экран строку, предшествующую текущей.

       Пример 2.

          *15 THRU 60 <CR>

       EDT последовательно выводит на экран каждую строку  из

  этого диапазона.



                           - 66 -

                        00152-01 34 02


       Пример 3.

           *%REST <CR>

       EDT выводит на экран все строки в  текущем  буфере  от

  текущей строки до конца.



       4.2.14. Команда PRINT



       Команда PRINT используется для копирования содержимого

  текстового буфера с пронумерованными строками в файл.  Лис-

  тинг файла при этом содержит номера строк, присвоенные EDT.

       Формат команды

          P[RINT] имяф [арг]

       Параметры команды

  имяф

       - имя файла, в который копируется содержимое тексто-

         вого буфера;

  арг

       - диапазон строк, подлежащий копированию.



       4.2.15. Команда QUIT



       Команда QUIT завершает текущий процесс  редактирования

  без сохранения содержимого главного текстового буфера.

       Формат команды

          QUIT[/SA[VE]]

       Ключ /SAVE используется для  сохранения  журнал-файла.

  Более подробно журнал-файл описан в п. 2.7.1.

       Пример 1.

          *QUIT <CR>





                           - 67 -

                        00152-01 34 02


       EDT возвращает пользователя на уровень приема  систем-

  ных команд. Содержимое текущего буфера при этом теряется.

       Пример 2.

          *QUIT/SAVE <CR>

       EDT   сохраняет   содержимое   текущего    буфера    в

  журнал-файле под именем, определенном  в  командной  строке

  при вызове редактора. ЕDT возвращает пользователя  на  уро-

  вень приема системных команд.



       4.2.16. Команда REPLACE



       По команде REPLACE удаляются строки, заданные в  аргу-

  менте командной строки и  на  их  место  вставляется  новый

  текст. После удаления фрагмента текста на экране появляется

  сообщение о количестве удаленных строк, а  затем  пользова-

  тель вводит новый текст.

       Формат команды

          R[EPLACE] [арг][;строка]

       Параметры команды

  арг

       - строки текстового буфера, подлежащие замене.  Если

         арг не указан, заменяется текущая строка.

       Выход из команды REPLACE осуществляется вводом  комби-

  нации CTRL/Z.

       ЕDT  перенумеровывает  строки   вставленного   текста,

  используя номера удаленных строк. Если вставленный текст по

  количеству строк превышает удаленный, то в этом случае  EDT

  присваивает десятичные номера строкам, число которых  выхо-

  дит за пределы указанного в аргументе диапазона.





                           - 68 -

                        00152-01 34 02


       Для замены одной единственной строки  на  одну  строку

  нового текста в аргументе указывается  номер  этой  строки,

  затем ставится знак - ";", ввод строки нового  текста  осу-

  ществляется до момента нажатия клавиши <CR>. После выполне-

  ния команды EDT выводит на  экран  подсказку-звездочку  "*"

  строкового  режима.  Указатель  устанавливается  на  начало

  строки, следующей за последней удаленной строкой.

       Пример 1.

          *REPLACE 3 THRU 12 <CR>
          10 стр. Удал.

       ЕDT удаляет строки с 3 по 12 в текущем текстовом бУФЕ-

  ре и позволяет пользователю вставлять  новый  текст  на  их

  место. После завершения операции вставки нажимается CTRL/Z.

       Пример 2.
        [6~
          *REPLACE 9;удалить и заменить эту строку <CR>

       EDT удаляет строку с номером 9 и вставляет текст, зак-

  люченный между знаком ";" и <CR>, как новую строку 9.



       4.2.17. Команда RESEQUENCE



       Команда RESEQUENCE присваивает новые номера строкам  в

  текстовом буфере.

       Формат команды

          RES[EQUENCE] [арг][/SEQ[UENCE][:M[:N]]]

       Параметры команды

  арг

       - строки, которые необходимо перенумеровать в  текс-

         товом буфере.

       Строки, заданные в аргументе для перенумерования долж-

  ны быть смежными. Если аргумент не указан, то перенумеровы-




                           - 69 -

                        00152-01 34 02


  ваются все строки в текущем текстовом буфере.

       При использовании ключа /SEQUENCE EDT присваивает пер-

  вой  строке  номер  м,  заданный  первым  параметром  ключа

  /SEQUENCE и далее номера увеличиваются с шагом N,  величина

  которого задается вторым параметром ключа.

       После выполнения команды RESEQUENCE  на  экране  появ-

  ляется сообщение  о  количестве  перенумерованных  строк  и

  подсказка-звездочка "*" строкового режима.

       По умолчанию, без использования  ключа  /SEQUENCE  EDT

  нумерует строки с шагом 1, начиная с первой строки, опреде-

  ленной в аргументе.

       Пример 1.

          *RESEQUENCE 22 THRU END <CR>

       EDT перенумеровывает строки текущего  буфера,  начиная

  со строки 22. Шаг нумерации равен 1.

       Пример 2.

          *RESEQUENCE =TEXT/SEQUENCE:10:10 <CR>

       EDT проводит перенумерацию строк содержимого буфера  с

  именем техт. Первый строковый номер равен 10. Шаг нумерации

  равен 10.



       4.2.18. Команды SUBSTITUTE



       Команда SUBSTITUTE производит замену одного  фрагмента

  строки на другой в  заданном  диапазоне  строк.  Количество

  заменяемых символов не должно превышать 64.

       Формат команды

   S[UBSTITUTE]/текст1/текст2/[арг][/B[RIEF][:N]]
                                   [/Q[UERY]]
                                   [/N[OTYPE]]





                           - 70 -

                        00152-01 34 02


       Параметры команды

  текст1

       - комбинация символов, которая подлежит замене;

  текст2

       - комбинация символов, заменяющая текст1;

  арг

       - диапазон строк текстового буфера, в  котором  идет

         поиск комбинации символов, подлежащих замене.

       Если арг не указан, EDT производит замену первой  най-

  денной комбинации символов, заданной в текст1. Выбор  аргу-

  мента начинается с текущей строки.

       После завершения операции замены  на  экран  терминала

  выводятся строки, в которых производилась замена.

       После выполнения команды указатель строки находится на

  первой строке, определенной в аргументе.

       При указании ключа /BRIEF:N на экран  терминала  выво-

  дятся первые N  символов  строки,  в  которой  производится

  замена. По умолчанию N=10.

       Использование ключа /QUERY позволяет каждую  замену  в

  строке производить выборочно по желанию пользователя.  Воз-

  можны четыре  ответа  на  вопрос-подсказку,  предшествующую

  операции замены:

          Y (YES)  - заменить этот фрагмент строки;

          N (NO)   - не менять этот фрагмент строки;

          А (ALL)  - произвести все остальные замены

                     без дальнейших вопросов;

          Q (QUIT) - прервать операцию замены.

       При использовании  ключа  /NOTYPE  строки,  в  которых

  производилась замена, не выводятся на экран терминала.





                           - 71 -

                        00152-01 34 02


       п_р_и_м_е_ч_а_н_и_я:

       1. Любой печатный неалфавитно-цифровой символ,  напри-

  мер, косая черта "/", знак денежной  единицы  "$",  процент

  "%" может быть  использован  как  разграничитель  фрагмента

  строки, подлежащего замене (текст 1) и фрагмента строки, на

  который он заменяется (текст 2). Следует помнить, что  сим-

  вол для разграничения текст1 и текст2 должен быть  одним  и

  тем же во всех  местах,  где  он  ставится.  Например,  EDT

  допускает одно из следующих обозначений:

          *SUBSTITUTE/символ/строка/ <CR>

          *SUBSTITUTE$символ$строка$ <CR>

  и не допускает:

          *SUBSTITUTE$символ/строка% <CR>

       Нельзя использовать печатный символ как  ограничитель,

  если он является частью текст1 или текст2. Например:

          *SUBSTITUTE%получить 50%%достаточно%

       2. Последний  ограничитель  можно  опустить,  если  за

  "текст 2" не следует аргумент или ключи.

       3. При использовании прописных  или  строчных  русских

  букв (в  случае  8-  битового  кодирования)  предварительно

  необходимо дать команду:

          SET SEARCH ехаст (см. п. 7.1.10)

       Пример 1.

          *SUBSTITUTE/цифра/буква/WHOLE/QUERY <CR>

       в текущем буфере осуществляется  поиск  последователь-

  ности символов "цифра". В каждом  случае  появления  строки

  содержащей последовательность символов "цифра", EDT отобра-

  жает ее на экране со знаком вопроса. Пользователь сам опре-

  деляет необходимость замены в этой конкретной строке.  Если

  ответом на вопрос является N (NO), EDT продолжает  поиск  в



                           - 72 -

                        00152-01 34 02


  текущем буфере появления последовательности символов  "циф-

  ра". Если дан ответ Y (YES), редактор производит  замену  в

  текущей строке и повторяет операцию при вторичном появлении

  последовательности  символов  "цифра"  в  этой  же  строке.

  Выполнение команды SUBSTITUTE заканчивается выводом  каждой

  откорректированной строки и сообщением о количестве  произ-

  веденных замен.

       Пример 2.

          ***************************************************
              20    команда CLEAR запускает экранный режим
          *SUBSTITUTE#CLEAR#CHANGE#/BRIEF:20 <CR>
              20    команда CHANGE запускает экранный режим
          1 SUBSTITUTE
          *
          ***************************************************

       EDT находит в текущей строке слово  "CLEAR",  заменяет

  его на "CHANGE" и выводит на экран откорректированную стро-

  ку под номером 20 и сообщение  о  количестве  произведенных

  изменений.



       4.2.19. Команда SUBSTITUTE NEXT



       Команда SUBSTITUTE NEXT повторяет функции, заданные  в

  команде SUBSTITUTE, если следует  непосредственно  за  ней.

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

  зафиксировал следующее появление комбинации символов, опре-

  деленной в текст1 в команде SUBSTITUTE. Курсор остается  на

  строке, где была произведена замена.

       Формат команды

          [S[UBSTITUTE]]N[EXT][текст1/текст2/]

       задание текст1 и текст2 возможно  и  в  самой  команде

  SUBSTITUTE NEXT. ЕDT ведет поиск следующего местонахождения

  текст1, начиная с текущей позиции в положительном направле-



                           - 73 -

                        00152-01 34 02


  нии. Строка, в которой была произведена замена,  становится

  текущей.

       Если в команде SUBSTITUTE NEXT не определены  области,

  подлежащие замене, EDT использует текст1 и текст2,  опреде-

  ленные в последней команде SUBSTITUTE.

       Пример 1.

       Допустим последняя команда SUBSTITUTE  выглядела  сле-

  дующим образом:

          *SUBSTITUTE /девять/десять/ <CR>

       необходимо найти следующую  строку,  содержащую  слово

  "девять" для замены на слово "десять". Эта операция  выпол-

  няется с помощью команды SUBSTITUTE NEXT.

          ***************************************************
              27          эта строка содержит слово "девять".
          *SUBSTITUTE NEXT <CR>
              27          эта строка содержит слово "десять".
          *
          ***************************************************

       Пример 2.

         ****************************************************
          *NEXT /девять/десять/ <CR>
              43          эта строка содержит слово "десять".
          *
          ***************************************************

       EDT ищет слово "девять",  начиная  с  текущей  строки,

  меняет на слово "десять" и выводит на экран скорректирован-

  ную строку.



       4.2.20. Команда TYPE



       Команда TYPE выводит на экран заданный диапазон  строк

  текстового буфера.

       Формат команды

          T[YPE] [арг] [/B[RIEF][:N]][/ST[AY]]




                           - 74 -

                        00152-01 34 02


       Параметры команды

  арг

       - строки текстового буфера, которые подлежат  выводу

         на экран терминала.

       Аргумент может содержать как одну строку, так и диапа-

  зон строк. При этом номера строк задаются в интервале выбо-

  рочно, т.е. наличие  смежных  строк  необязательно.  Первая

  строка, определенная в аргументе, становится текущей  стро-

  кой.

       Ключ /BRIEF:N выводит N первых символов от начала каж-

  дой строки указанного диапазона. По умолчанию N=10.

       Ключ /STAY не меняет положения указателя строки  (кур-

  сора).

       Пример 1.

          ***************************************************
             30           строка текущего буфера.
          *TYPE REST <CR>
             30           строка текущего буфера.
             31           последняя строка текущего буфера.
          [EOB]
          *
          ***************************************************

       EDT выводит на экран все строки от  текущей  до  конца

  буфера. Указатель находится на первой выведенной  на  экран

  строке 30.

       Пример 2.

          ***************************************************
          *TYPE 27 <CR>
             27           строка 27
          *
          ***************************************************

       EDT выводит текущую строку 27.










                           - 75 -

                        00152-01 34 02


       Пример 3.

          ***************************************************
          *TYPE 3,5,6,9,24 <CR>
             3            строка 3
             5            строка 5
             6            строка 6
             9            строка 9
            24            строка 24
          *
          ***************************************************

       EDT выводит строки 3,5,6,9,24 последовательно.  Строка

  3 - текущая.

       Пример 4.

          ***************************************************
          *TYPE 26#3 <CR>
             26           строка 26
             27           строка 27
             28           строка 28
          *
          ***************************************************

       EDT выводит три строки, начиная с 26-й.

       Пример 5.

          ***************************************************
          *TYPE 40:END ALL "ааа" <CR>
            41            1-я строка, содержащая "ааа".
            44            2-я строка, содержащая "ааа".
            53            последняя строка, содержащая "ааа".
          *
          ***************************************************

       EDT выводит все строки, начиная с 40, в которых встре-

  чается "ааа".

       Пример 6.

          ***************************************************
          *TYPE =техт "ввв" <CR>
            33            строка, содержащая "ввв".
          *
          ***************************************************

       EDT ищет буфер с именем техт, а  затем  в  нем  первую

  строку, в которой встретилась комбинация символов  "ввв"  и

  выводит ее на экран.







                           - 76 -

                        00152-01 34 02


       Пример 7.

          ***************************************************
            32            текущая строка
          *TYPE 1 THRU 15/STAY <CR>
             1            строка 1
             .
             .
             .
            15            строка 15
          *
          ***************************************************

       EDT выводит строки с 1-й по 15-ю текущего буфера. Кур-

  сор остается на строке 32.



       4.2.21. Команда WRITE



       Команда WRITE копирует определенный фрагмент  содержи-

  мого текстового буфера в указанный файл. Содержимое тексто-

  вого буфера остается неизменным.

       Формат команды

          WR[ITE] имяф[арг][/SEQ[UENCE][:M[:N]]]

       Параметры команды

  имяф

       - имя файла, в который копируется указанный диапазон

         строк;

  арг

       - диапазон  строк,  который  выводится  в  указанный

         файл.

       Если аргумент отсутствует, EDT создает файл из  содер-

  жимого текущего текстового буфера.

       При  использовании  ключа  /SEQUENCE  EDT  присваивает

  строкам фиксированные  номера,  которые  становятся  частью

  создаваемого файла.






                           - 77 -

                        00152-01 34 02


       Пример 1.

           *WRITE PART.FIL 10 THRU 90 <CR>

       EDT выводит строки с 10 по 90 в файл  PART.FIL.  После

  выполнения команды на экран выдается сообщение,  в  котором

  указано имя нового файла, количество выведенных строк.

       Пример 2.

           *WRITE NEW.DAT =TEXT1/SEQUENCE:10:10 <CR>

       EDT копирует содержимое буфера техт1 в  файл  NEW.DAT.

  ЕDT перенумеровывает строки, начиная со строки 10  с  шагом

  10, и располагает номера в фиксированных частях  файла.  На

  экран  выводится   сообщение   о   выполнении   команды   и

  подсказка-звездочка "*" строкового режима редактирования.


































        




                           - 78 -

                        00152-01 34 02


          5. Экранный режим редактирования (режим 2)




        Экранный режим редактирования применяется при работе с

  видеотерминалами, обеспечивающими прямую адресацию курсора.

  В процессе редактирования в экранном режиме все  команды  и

  текст вводятся с основной клавиатуры.  К  таким  терминалам

  относятся   терминалы   типа   VTA-2000-13/15,   VDT-52130,

  VDT-52100-C, CID-7220, MERA-7948, "ЭЛЕКТРОНИКА". Для  входа

  в   экранный   режим   редактирования   необходимо   ввести

  последовательно в строковом режиме команды:

       *SET TERMINAL VT52 <CR>

       *SET NOKEYPAD <CR>

       *CHANGE <CR>

       Установка  этих  параметров  осуществляет  переход   в

  экранный  режим.  При  этом  экран  терминала  очищается  и

  заполняется текстом  из  файла,  который  был  определен  в

  командной строке  при  запуске  редактора.  Экран  остается

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

  находится в левом  верхнем  углу  экрана.  В  момент  ввода

  команды   экранного   режима   курсор   (указатель   строки

  текстового буфера) перемещается вниз, в левый  нижний  угол

  экрана, т.е. в начало 24 строки. После нажатия клавиши <CR>

  курсор возвращается  на  свое  прежнее  место  в  текстовом

  буфере.  Таким  образом,  22  строки  на  экране  отводятся

  содержимому текущего буфера, 23-я строка  остается  пустой,

  24-я  отводится  для   ввода   команд   экранного   режима.

  Аппаратное  управление  курсором   позволяет   пользователю

  наблюдать   процесс   редакции   над   содержимым   буфера,

  происходящим на экране в данный момент времени.




                           - 79 -

                        00152-01 34 02


       5.1. Элементы текста



       Элемент текста представляет  собой  величину,  которую

  EDT воспринимает как единицу текста. Элемент указывается  в

  командах экранного режима. При  этом  команда  обрабатывает

  только заданный элемент текста. Задание элемента без указа-

  ния команды редактирования воспринимается как команда пере-

  мещения курсора (указателя строки) по содержимому буфера.

       В табл. 7  описаны  элементы  текста,  используемые  в

  экранном режиме 2.

                                                  Таблица 7

                        Элементы текста

    -------------------------------------------------------
                             !
           Элемент           !        Описание
    -------------------------------------------------------
    С (символ)               !  Одиночный символ
                             !
    W (слово)                !  Ряд  символов, ограниченный
                             !одним из установленных симво-
                             !лов ограничения, включая про-
                             !белы. По умолчанию  ограничи-
                             !телями слова являются: пробе-
                             !лы, <CR>, табуляция, <FF>. По
                             !команде SET ENTITY  (п.7.1.3)
                             !можно установить ограничители
                             !слова, отличные  от вышепере-
                             !численных
                             !
    BW (начало слова)        !  Ряд   символов   от   пози-
                             !ции курсора  до начала слова.
                             !если курсор находится в нача-
                             !ле слова, то  в  этом  случае
                             !BW - предыдущее слово
                             !
    EW (конец слова)         !  Комбинация символов  от по-
                             !зиции курсора до конца слова
                             !
    L (строка)               !  Строка   символов,    пред-
                             !ставляющая  собой  комбинацию
                             !символов, расположенных между
                             !ограничителями строк
                             !
    BL (начало строки)       !  Ряд   символов   от   пози-
                             !ции курсора до начала строки.
                             !если курсор находится в нача-
                             !ле строки, BL в этом случае -



                           - 80 -

                        00152-01 34 02


                                        Продолжение табл. 7
    -------------------------------------------------------
                             !
           Элемент           !        Описание
    -------------------------------------------------------
                             !предыдущая строка
                             !
    EL (конец строки)        !  Ряд   символов   от   пози-
                             !ции курсора до конца строки
                             !
    NL (следующая строка)    !  Ряд   символов   от   пози-
                             !ции курсора до начала следую-
                             !щей строки
                             !
    PAR (параграф)           !  Параграф - элемент  текста,
                             !определенный  самим пользова-
                             !телем. Ограничитель  парагра-
                             !фа задается  по  команде  SET
                             !ENTITY. По умолчанию в качес-
                             !тве конца параграфа  принима-
                             !ются два кода  <CR>,  следую-
                             !щие подряд,т.е. Пустая строка
                             !
    BPAR (начало параграфа)  !  Ряд    символов    от   по-
                             !зиции  курсора  до начала па-
                             !раграфа. Если указатель бУФЕ-
                             !ра (курсор) находится в нача-
                             !ле параграфа, область  дейст-
                             !вия BPAR - целый   предыдущий
                             !параграф
                             !
    EPAR (конец параграфа)   !  Ряд    символов   от  пози-
                             !ции  курсора  до конца параг-
                             !рафа (не включая символы  ог-
                             !раничения параграфа)
                             !
    SEN (предложение)        !  Элемент   текста,   опреде-
                             !ленный  самим  пользователем.
                             !по умолчанию символами  огра-
                             !ничения для предложения явля-
                             !ются точка ".",вопросительный
                             !знак "?",восклицательный знак
                             !"!".определение символа огра-
                             !ничения осуществляется по ко-
                             !манде SET ENTITY (см.п.7.1.3)
                             !
    BSEN                     !  Ряд   символов  от   курсо-
       (начало предложения)  !ра  до   начала  предложения.
                             !если курсор находится в нача-
                             !ле предложения,область дейст-
                             !вия BSEW - предыдущее предло-
                             !жение
                             !
    ESEN (конец предложения) !  Ряд    символов   от  пози-
                             !ции  курсора  до конца  пред-
                             !ложения (не  включая  символы
                             !ограничения)
                             !
    PAGE (страница)          !  Элемент   текста,   опреде-



                           - 81 -

                        00152-01 34 02


                                        Продолжение табл. 7
    -------------------------------------------------------
                             !
           Элемент           !        Описание
    -------------------------------------------------------
                             !ленный  самим  пользователем.
                             !по умолчанию страниицу состав
                             !ляет текст между двумя симво-
                             !лами <FF> (перевод  формата),
                             !включая второй знак <FF>. Ус-
                             !тановка символов  ограничения
                             !для страницы  производится по
                             !команде SET ENTITY(CM.п.7.1.3
                             !
    BPAGE (начало страницы)  !  Текст,  расположенный между
                             !позицией  курсора  и  началом
                             !страницы.  Если  пользователь
                             !находится  в начале страницы,
                             !область действия для  BPAGE -
                             !предыдущая страница
                             !
    EPAGE (конец страницы)   !  Текст от позиции курсора до
                             !конца страницы (исключая сим-
                             !волы ограничения страницы)
                             !
    BR (начало области)      !  Ряд  символов   от  позиции
                             !курсора  до  начала  текущего
                             !буфера
                             !
    ER (конец области)       !  Ряд  символов   от  позиции
                             ! курсора  до  конца  текущего
                             !буфера.
                             !  положительное   направление
                             !действия  команды   выбрано -
                             !"вперед" (от начала  к  концу
                             !буфера)
                             !
    V (вертикаль)            !  Элемент текста, эквивалент-
                             !ный L. Курсор перемещается по
                             !вертикали
                             !
    'строка'                 !  Комбинация символов, заклю-
                             !ченная в кавычки,используется
                             !при   операциях  поиска. Если
                             !'строка'  задана  в  командах
                             !D и CUT, то EDT помещает ука-
                             !занный  фрагмент  в  буфер  и
                             !удаляет ее
                             !
    SR (выборочная область)  !  Текст, верхняя граница  ко-
                             !торого  фиксируется  командой
                             !SEL, нижняя - положением кур-
                             !сора. Если команда SEL не вы-
                             !полнена,  и курсор   занимает
                             !место у текущей строки  поис-
                             !ка, за область SR принимается
                             !эта строка.если не зафиксиро-
                             !вано  ни то, ни другое состо-
                             !яние, SR относится к  команде



                           - 82 -

                        00152-01 34 02


                                        Продолжение табл. 7
    -------------------------------------------------------
                             !
           Элемент           !        Описание
    -------------------------------------------------------
                             !CHGC. Для команды CHGC  выде-
                             !ленной  областью  SR является
                             !одиночный  символ  в  текущем
                             !направлении (п. 5.2.5)


       5.2. Структура команды экранного режима 2



       Команда  экранного  режима  2  имеет  одну  устойчивую

  форму, а именно она представлена в  виде  полного  названия

  (APPEND,CUT) или в виде сокращенного (одного или нескольких

  символов),  например:  D,I,SEL,ADV.  Задание  команд  можно

  производить группами, т.е.  Несколько  команд  вводятся  на

  одной строке  без  дополнительных  ограничителей  (исключая

  пробелы).  После  нажатия  клавиши   <CR>   EDT   выполняет

  указанную серию команд, например:

          3LCD2WIПPOГPAMMA ^Z<CR>

       Формат   команды    символьного    экранного    режима

  определяется одним или несколькими следующими параметрами:

  команда

       - команда,   выполняющая    определенное    действие

         редактора;

  число

       - количество элементов текста в  пределах  от  1  до

         32767, которое  обрабатывает  данная  команда.  По

         умолчанию  действие  команды  распространяется  на

         один элемент текста;

  направление

       - знак плюс "+" указывает  на  направление  действия

         команды - вперед (вправо  или  вниз  от  курсора).




                           - 83 -

                        00152-01 34 02


         Знак минус "-" указывает на  направление  действия

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

         умолчанию   выбирается    текущее    положительное

         направление, т.е. при старте EDT  действие  команд

         совершается вперед по буферу до момента  изменения

         направления;

  элемент

       - основные  элементы  текста,  которые  обрабатывает

         команда: символ, слово,  строка,  предложение  или

         параграф (табл. 7);

  буфер

       - имя буфера, куда заносится для хранения  текст  по

         команде CUT  и  APPEND  и  откуда  извлекается  по

         команде PASTE.  По  умолчанию,  при  использовании

         этих команд текст помещается в  буфер  PASTE.  При

         запуске EDT текст помещается в  главный  текстовый

         буфер MAIN.

       В EDT  имеется  возможность  многократного  выполнения

  какой-либо команды или серии команд. Для осуществления этой

  операции командная строка заключается в  круглые  скобки  и

  перед ними ставится число повторений.

       Команды экранного режима 2 описаны в данном разделе  в

  алфавитном порядке. В квадратные скобки "[  ]"  заключаются

  параметры,   которые   задает    пользователь    по    мере

  необходимости. Символ "!"  (или)  означает  выбор  функций,

  например, [+!-] значит, что EDT может выполнять операции  в

  направлении "вперед" (+) или "назад" (-) внутри буфера.









                           - 84 -

                        00152-01 34 02


       5.2.1. Команда ADV (ADVANCE)



       Команда ADV устанавливает направление действия  команд

  - "вперед" (вправо или вниз от позиции курсора).

       Формат команды

          ADV



       5.2.2. Команда APPEND



       Команда  APPEND  помещает  указанные  элементы  текста

  текущего буфера в другой текстовый буфер.

       Формат команды

   [+!-][повтор-число]APPEND[+!-][элемент-
                                 -число][+!-]элемент[=буфер]

       По команде APPEND EDT удаляет  пересылаемый  текст  из

  текущего буфера. Если в  формате  команды  не  указано  имя

  буфера, куда необходимо поместить текст, EDT  по  умолчанию

  копирует его в буфер PASTE. Следует отличать команду APPEND

  от команды CUT, выполняющую  аналогичные  функции.  Команда

  APPEND добавляет копируемый текст в конец буфера-приемника.

  Примеры использования команды APPEND даны в описании коман-

  ды CUT (п. 5.2.6).



       5.2.3. Команда ASC (ASCII)



       При задании символьного кода в виде десятичного  числа

  в команде ASC на  экране  терминала  отображается  значение

  этого кода.








                           - 85 -

                        00152-01 34 02


       Формат команды

          [число]ASCII

       EDT игнорирует знак минус  "-",  предшествующий  коду.

  Коды ASCII даны в приложении 3.

       Пример.

          ***************************************************
          строка 1.
          строка 2.
          _
            .
            .
            .
          ***************************************************


          10ASC<CR>


          ***************************************************
          строка 1.
          строка 2.
          <LF>_
            .
            .
            .
          ***************************************************

       После ввода команды 10ASC и нажатия клавиши  <CR>  EDT

  вставляет символ <LF> перед позицией курсора.



       5.2.4. Команда BACK (BACKUP)



       Команда BACK устанавливает направление действия команд

  - "назад" (влево или вверх от  позиции  курсора).  Командой

  BACK   отвергается   положительное   направление   действия

  предыдущей команды ADVANCE, заданной явным образом  или  по

  умолчанию.

       Формат команды

          BACK







                           - 86 -

                        00152-01 34 02


       5.2.5. Команда CHGC (CHANGE CASE)



       Команда CHGC осуществляет перевод малых латинских букв

  в большие латинские и наоборот  внутри  заданного  элемента

  текста.

       Формат команды

          CHGC [элемент]



       5.2.6. Команда CUT



       Команда  CUT  помещает   указанные   элементы   текста

  текущего буфера в другой  текстовый  буфер,  предварительно

  очищая последний.

       Формат команды

   [+!-][повтор-число]CUT[+!-][элемент-
                                -число][+!-]элемент[=буфер]

       если в формате команды не  указано  имя  буфера,  куда

  необходимо поместить текст, EDT по умолчанию копирует его в

  буфер  PASTE.  ЕDT  удаляет  содержимое   буфера-приемника,

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

       Пример.

          **************************************************
          _строка 1.
          строка 2.
          строка 3.
          строка 4.
          строка 5.
            .
            .
            .
          ***************************************************


          CUT2L=SHOW<CR>








                           - 87 -

                        00152-01 34 02


          **************************************************
          _строка 3.
          строка 4.
          строка 5.
            .
            .
            .
          ***************************************************

          2APPENDL=SHOW<CR>

          ***************************************************
          строка 5.
          _
            .
            .
            .
          ***************************************************


          PASTE=SHOW<CR>


          ***************************************************
          строка 5.
          строка 1.
          строка 2.
          строка 3.
          строка 4.
          _
            .
            .
            .
          ***************************************************

       По команде CUT 2 строки от позиции курсора  помещаются

  в буфер с именем SHOW. ЕDT удаляет эти строки  из  текущего

  буфера. Далее команда 2APPENDL добавляет 2 строки от нового

  положения курсора в конец содержимого  буфера  SHOW.  После

  перемещения курсора в нижнюю позицию  (после  строки  5)  и

  ввода   команды   PASTE=SHOW,   EDT   копирует   содержимое

  текстового буфера SHOW перед позицией курсора.



       5.2.7. Команда D (DELETE)



       Команда D удаляет заданное число элементов текста.






                           - 88 -

                        00152-01 34 02


       Формат команды

   [+!-][повтор-число]D[+!-][элемент-
                              -число][+!-]элемент[=буфер]

       Пример.

          **************************************************
          _это первая строка.
          это вторая строка.
          это третья строка.
                .
                .
                .
          **************************************************


          D2W<CR>

          *************************************************
          _строка.
          это вторая строка.
          это третья строка.
                .
                .
                .
          *************************************************


          LDL<CR>


          *************************************************
          строка.
          _это третья строка.
                .
                .
                .
          *************************************************

       Допустим  положение  курсора  зафиксировано  в  начале

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

  ввести D2W. После выполнения команды курсор перемещается на

  начало  третьего  слова.  Набор  команд  LDL   осуществляет

  перевод курсора на начало  второй  строки  и  удаление  ее.

  Курсор при этом находится в начале строки 3.











                           - 89 -

                        00152-01 34 02


       5.2.8. Команда DEFK (DEFINE KEY)



       Использование команды DEFK является одним из  способов

  переназначения функциональных  клавиш  режима  3.  Функции,

  назначенные клавишам, аналогичны командам экранного  режима

  2. ЕDT выполняет команды, определенные по DEFK, после нажа-

  тия соответствующей клавиши. Более подробно переопределение

  функций клавиш функциональной клавиатуры описано в  разделе

  8.



       5.2.9. Команда ЕХ (EXIT)



       Команда ЕХ осуществляет переход из экранного режима  2

  в строковый режим редактирования.

       Формат команды

          ЕХ



       5.2.10. Команда ЕХТ (EXTENDED)



       Команда ЕХТ  позволяет  выполнять  команды  строкового

  режима при работе в экранном режиме редактирования.

       Формат команды

          ЕХТ

       Часть командной строки, расположенную  непосредственно

  после  ехт,  редактор  распознает  как  команду  строкового

  режима. После выполнения команды строкового режима редактор

  возвращается в экранный режим 2.









                           - 90 -

                        00152-01 34 02


       Пример.

          ***************************************************
          _строка 1.
          строка 2.
          строка 3.
          строка 4.
          строка 5.
          строка 6.
            .
            .
            .
          ***************************************************


          ЕХТ DEL 1 THRU 4 <CR>


          ***************************************************
          _строка 5.
          строка 6.
            .
            .
            .
          ***************************************************


          ЕХТ COPY=HEADER ТО 5<CR>


          ***************************************************
          _строка из буфера =HEADER.
          строка 5.
          строка 6.
            .
            .
            .
          ***************************************************

       EDT  удаляет  строки  с  1  по  4   текущего   буфера.

  Предположим,   что   номера   строк    текстового    буфера

  соответствуют номерам строк, представленным на экране.  ЕDT

  обновляет экран, помещая  строку,  следующую  за  последней

  удаленной, в верхнюю часть экрана. По  второй  команде  EDT

  копирует содержимое текстового буфера HEADER перед  строкой

  5, очищает экран для воспроизведения строки 5 и  одной  или

  несколько строк вставленного текста.








                           - 91 -

                        00152-01 34 02


       5.2.11. Команда FILL



       Команда   FILL   размещает   максимальное   количество

  символов на каждой строке, ширина  которой  устанавливается

  по команде SET WRAP (см. п.7.1.14).

       Формат команды

   [+!-][повтор-число]FILL[+!-][элемент-
                                 -число][+!-]элемент[=буфер]

       По  команде  FILL  происходит  перемещение  текста  до

  максимального заполнения строк. Строка заполняется  до  тех

  пор, пока не будет достигнут предел, установленный командой

  SET WRAP. ЕDT  не  заполняет  абсолютно  пустые  строки,  а

  заполняет строки между ними.  Значением  по  умолчанию  для

  заполнения строк является 80 символов.

       Пример.

          ***************************************************
          _программа EDT представляет
          собой текстовый
          редактор, поддерживаемый различными
          операционными системами.
                  .
                  .
                  .
          ***************************************************


          FILL4L<CR>


          ***************************************************
          программа EDT представляет собой текстовый редактор
          поддерживаемый различными операционными системами.
          _
                 .
                 .
                 .
          ***************************************************

       Первые четыре строки  представляют  часть  содержимого

  текстового  буфера  после   определенного   числа   сеансов

  редактирования.  Ширина  экрана  по  SET  WRAP  установлена

  равной 52. После ввода команды FILL4L EDT заполняет строки,



                           - 92 -

                        00152-01 34 02


  размещая по 52 символа на каждой строке.



       5.2.12. Команда I (INSERT)



       Команда I подготавливает текущий текстовый  буфер  для

  включения нового текста.

       Формат команды

          I

       Текст вставляется перед текущей позицией курсора.  ЕDT

  помещает вставленный текст  в  текстовый  буфер  на  место,

  определенное положением курсора.

       Пример.

          ***************************************************
          строка 1.
          строка 2.
          _
            .
            .
            .
          ***************************************************


          I<CR>


          ***************************************************
          строка 1.
          строка 2.
          строка, вставленная после строки 2 (CTRL/Z)
          _
            .
            .
            .
          ***************************************************

       В данном примере на экран выведены две строки текущего

  буфера, курсор находится в начале  строки  3.  Для  вставки

  нового текста вводится команда I с нажатием  клавиши  <CR>.

  Команда I воспроизводится в  нижнем  левом  углу  экрана  и

  остается там до момента выхода  из  операции  включения  по

  CTRL/Z.




                           - 93 -

                        00152-01 34 02


       5.2.13. Команда NULL (имитация TYPE)



       Посредством  данной  псевдокоманды  можно   перемещать

  курсор на указанное число элементов текста.

       Формат команды

   [+!-][повтор-число][+!-][элемент-число][+-]элемент[=буфер]


       Пример.

          ***************************************************
          _строка первая.
          строка вторая.
          строка третья.
               .
               .
               .
          ***************************************************


          2L<CR>


          ***************************************************
          строка первая.
          строка вторая.
          _строка третья.
               .
               .
               .
          ***************************************************


          W3C<CR>


          ***************************************************
          строка первая.
          строка вторая.
          строка тре_тья.
               .
               .
               .
          ***************************************************

       После ввода команды 2L и <CR> EDT переместит курсор  в

  начало третьей строки. Затем вводом W3C и  <CR>  добиваемся

  перемещения курсора на одно слово и три символа влево.  Все

  эти  операции  можно  осуществить,  задав  одну   командную

  строку, а именно 2LW3C или  последовательно  три  командные



                           - 94 -

                        00152-01 34 02


  строки (2L, W, 3С).



       5.2.14. Команда PASTE



       По  команде  PASTE  содержимое  указанного  текстового

  буфера копируется перед позицией курсора.

       Формат команды

   [+!-][повтор-число]PASTE[+!-][элемент-
                                  -число][+!-]элемент[=буфер]

       Выполненная  команда  PASTE   не   меняет   содержимое

  указанного  буфера.  Если  имя  буфера  не   определено   в

  командной строке, то EDT принимает  значение  по  умолчанию

  для PASTE буфера. Пример выполнения команды PASTE  приведен

  в описании команды CUT.



       5.2.15. Команда QUIT



       Команда   QUIT   осуществляет   аварийный   выход   из

  редактора,  т.е.  завершает  процесс   редактирования   без

  сохранения отредактированного текста. При этом пользователь

  возвращается на уровень приема системных команд, на  экране

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

       Формат команды

          QUIT



       5.2.16. Команда R (REPLACE)



       Команда R производит замену определенных  в  командной

  строке элементов  текста  на  новые  с  предварительным  их

  удалением.




                           - 95 -

                        00152-01 34 02


       Формат команды

    [+!-][повтор-число]R[+!-][элемент-
                               -число][+!-]элемент[=буфер]

       EDT  удаляет  выбранные  элементы  текста,   а   затем

  переключается на режим вставки. Выход из  режима  включения

  осуществляется по CTRL/Z.


       Пример.

          **************************************************
          строка 1.
          строка 2.
          _ошибочная строка.
          ошибочная строка.
          строка 5.
             .
             .
             .
          ***************************************************


          R2L<CR>


          ***************************************************
          строка 1.
          строка 2.
          строка 3.
          строка 4.
          строка 5.
             .
             .
             .
          ***************************************************

       Команда R производит замену третьей и четвертой  стро-

  ки, в которых допущены ошибки,  на  правильные.  Переместив

  курсор на позицию первого символа третьей по счету  строки,

  задается команда R2L. ЕDT удаляет из буфера указанные стро-

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

  - по CTRL/Z.











                           - 96 -

                        00152-01 34 02


       5.2.17. Команда REF (REFRESH)



       По команде REF происходит очищение экрана с дальнейшим

  восстановлением текста из буфера.

       Формат команды

          REF

       Эта команда используется в тех случаях, когда на экра-

  не терминала  появляются  посторонние  сообщения,  мешающие

  нормальному ходу редактирования.



       5.2.18. Команда S (SUBSTITUTE)



       Команда S производит замену одной комбинации  символов

  на другую.

       Формат команды

          [+!-][число]S/S1/S2/

       В  командной  строке  [число]  определяет   количество

  замен, а знак "-" переключает редактор на поиск в  обратном

  (отрицательном) направлении. В качестве разграничителя мож-

  но использовать любой печатный неалфавитно-цифровой символ,

  если он не встречается в строке, подлежащей замене (S1) или

  в заменяющей ее строке (S2). Например, знак косой черты "/"

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

  "ввод/вывод" на текст "операция ввода/вывода". Здесь  можно

  использовать любой другой символ,  например  знак  денежной

  единицы:

          S$ввод/вывод$операция ввода/вывода$









                           - 97 -

                        00152-01 34 02


       5.2.19. Команда SEL (SELECT)



       Команда SEL  позволяет  определить  начальную  границу

  выделенной области текста.

       Формат команды

          SEL

       Выделенная область, верхняя граница которой фиксирует-

  ся командой SEL, а нижняя - положением курсора,  рассматри-

  вается редактором как элемент текста. Действие команд расп-

  ространяется на выделенную область, если после команды ука-

  зать - SR.

       Пример.

          ***************************************************
          _первая строка.
          вторая строка.
          промежуточная строка между второй и третьей.
          третья строка.
          ***************************************************


          SEL <CR>
          2L3W


          ***************************************************
          первая строка.
          вторая строка.
          промежуточная строка _между второй и третьей.
          третья строка.
          ***************************************************

       В исходной позиции курсор _ в  начале  первой  строки.

  Ввод команды SEL  фиксирует  начальную  границу  выделяемой

  области. Далее курсор перемещается в конец  области  SR,  а

  именно занимает позицию у начального символа слова "между".

  Таким образом, выделенная область представляет  собой  сле-

  дующий фрагмент текста:


          первая строка
          вторая строка
          промежуточная строка м



                           - 98 -

                        00152-01 34 02


       5.2.20. Команда SHL (SHIFT LEFT)



       Команда SHL сдвигает изображение на экране влево.

       Формат команды

          [число] SHL

       Пользователь может управлять количеством сдвигов, пос-

  редством задания их числа в командной  строке.  Один  сдвиг

  равен восьми позициям (8 позиций - интервал табуляции). ЕDT

  не выводит на экран левую часть текста. (см. Пример в  опи-

  сании команды SHR). Команда SHL противоположна по  действию

  команде SHR.



       5.2.21. Команда SHR (SHIFT RIGHT)



       Команда SHR сдвигает изображение на экране вправо.

       Формат команды

          [число] SHR

       Количество сдвигов, заданное в командной строке позво-

  ляет сдвигать текст на определенный  интервал.  Один  сдвиг

  равен восьми позициям (8  позиций  -  интервал  табуляции).

  Команда SHR противоположна по действию команде SHL.

          * SET SCREEN 40 <CR>
          * CHANGE <CR>

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


          4 SHL <CR>






                           - 99 -

                        00152-01 34 02


          ***************************************************
          ограничена 40 символами.
          я установленный предел.
               .
               .
               .
          ***************************************************


          4 SHR <CR>


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

       В первой части примера команда SET  SCREEN  устанавли-

  вает максимальную ширину экрана. Первые две  строки  превы-

  шают установленный предел, при этом часть строки, выходящая

  за этот предел  (40  символов)  подавляется.  Команда  4SHL

  сдвигает текст на 32 символа влево. Подавленная часть стро-

  ки теперь доступна  для  чтения.  Команда  4SHR  возвращает

  текст в его первоначальную позицию.



       5.2.22. Команда SN (SUBSTITUTE NEXT)



       Команда SN использует S1 и S2, определенные в  послед-

  ней команде замены (сохраненные в буфере  строки  поиска  и

  замены) для замены следующего появления S1 на S2.

       Формат команды:

          [+!-][число]SN

       В командной строке задается число повторений  операции

  замены и направление действия команды. Знак  "-"  указывает

  на поиск заменяемой  строки  в  отрицательном  направлении,

  т.е. - назад к началу буфера.




                           - 100 -

                        00152-01 34 02


       Пример.

          ***************************************************
          _первое слово
          второе слово
          третье слово
              .
              .
              .
          ***************************************************


          S/слово/предложение/ <CR>


          ***************************************************
          первое предложение_.
          второе слово
          третье слово
              .
              .
              .
          ***************************************************


          2SN <CR>


          ***************************************************
          первое предложение
          второе предложение
          третье предложение_.
               .
               .
               .
          ***************************************************

       Начальная позиция курсора - первый символ первой стро-

  ки. По  команде  S/слово/предложение/  производится  замена

  заданных слов в текущей строке. После ввода команды  2SN  и

  нажатия клавиши <CR> EDT  осуществляет  операцию  замены  в

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

  слово.



       5.2.23. Команда ТАВ



       Команда ТАВ устанавливает позицию табуляции в одном из

  двух случаев:




                           - 101 -

                        00152-01 34 02


       1) если интервал табуляции не  установлен  по  команде

  SET ТАВ (п. 7.1.11), если курсор не спозиционирован в нача-

  ле строки, команда  тав  вставляет  необходимое  количество

  пробелов перед позицией курсора, смещая  его  до  значения,

  кратного 8 (интервал табуляции по умолчанию равен  8  пози-

  циям).

       2) если интервал табуляции установлен по  команде  SET

  ТАВ (см. п. 7.1.11),  и  курсор  спозиционирован  в  начале

  строки, команда TAB вставляет символы табуляции для переме-

  щения курсора на позицию, равную  значению  N  в  SET  ТАВ,

  умноженному на уровень смещения.

       Формат команды

          ТАВ

       Количество позиций смещения равно значению уровня сме-

  щения, умноженному на размер  табуляции.  Уровень  смещения

  равен 1 по умолчанию. Уровень смещения можно увеличить пос-

  редством команды TI и  уменьшить  посредством  команды  TD.

  Уровень смещения также устанавливается командой ТС.

       Пример.

          ***************************************************
          *SET ТАВ 4 <CR>
          *SET NOKEYPAD <CR>
          *CHANGE <CR>
          ***************************************************


          ***************************************************
          _первая строка
          вторая строка
          третья строка
               .
               .
               .
          ***************************************************


          ТАВ <CR>






                           - 102 -

                        00152-01 34 02


          ***************************************************
              _первая строка
          вторая строка
          третья строка
               .
               .
               .
          ***************************************************


          ТС <CR>
          TI <CR>

       Установив размер первой табуляции - 4 пробела,  входим

  в экранный режим 2. По команде TAB курсор сдвигается  на  4

  позиции вправо. Если  затем  переместить  курсор  на  число

  позиций, кратное  значению  "SET  TAB"+1  символ  и  ввести

  команду тс, то  получим  уровень  смещения,  который  равен

  величине, полученной в результате деления значения  текущей

  позиции курсора на значение SET TAB ( левое поле -  нулевая

  позиция ). В данном  примере  уровень  смещения  установлен

  равным 3. Команда TI увеличивает уровень смещения на 1.



       5.2.24. Команда TADJ (TAD ADJUST))


       Посредством данной команды осуществляется  регулировка

  уровня табуляции для выбранного диапазона строк.

       Формат команды

   [+!-][повтор-число]TADJ[+!-][элемент-
                                 -число][+!-]элемент[=буфер]

       Строковый диапазон задается  в  спецификации  области.

  Размер табуляции  и  [повтор-число]  устанавливают  уровень

  табуляции (см. описание команды TC).











                           - 103 -

                        00152-01 34 02


       5.2.25. Команда ТС (TAB COMPUTE)


       Команда ТС  устанавливает  значение  уровня  смещения,

  полученное в результате деления  величины,  соответствующей

  текущему положению курсора на значение SET TAB.

       Формат команды

          ТС

       Если курсор занимает позицию, не кратную значению  SET

  TAB, на экране появляется сообщение об ошибке (см. приложе-

  ние 3). ЕDT использует произведение значения уровня  смеще-

  ния и размера табуляции для установки первой позиции  табу-

  ляции для каждой строки. Последовательные позиции табуляции

  на одной и той  же  строке  кратны  установке  терминальной

  табуляции ( 8 пробелов ).



       5.2.26. Команда TD (TAB DECREMENT)


       Команда TD уменьшает уровень смещения.

       Формат команды

          [число] TD



       5.2.27. Команда TI (TAB INCREMENT)


       Команда TI увеличивает уровень смещения.

       Формат команды

          [число] TI











                           - 104 -

                        00152-01 34 02


       5.2.28. Команда ТОР


       По команде ТОР текущая строка устанавливается в  верх-

  ней части экрана.

       Формат команды

          ТОР



       5.2.29. Команда UNDC (UNDELETE CHARACTER)


       По команде UNDC содержимое  символьного  буфера  вклю-

  чается в текущий буфер перед позицией курсора.

       Формат команды

          [число] UNDC

       Символьный буфер содержит последний символ,  удаленный

  посредством одной из команд удаления символов. Для повторе-

  ния операции UNDC  используется  параметр  -  [число],  EDT

  включает содержимое символьного буфера в  текстовый  буфер,

  учитывая параметр - [число].



       5.2.30. Команда UNDW (UNDELETE WORD)


       По команде UNDW содержимое буфера  слов  включается  в

  текущий текстовый буфер перед позицией курсора.

       Формат команды

          [число] UNDW

       Буфер слов содержит последнее  слово,  удаленное  пос-

  редством одной из команд удаления слов. Для повтора  опера-

  ции восстановления используется параметр - [число].







                           - 105 -

                        00152-01 34 02


       5.2.31. Команда UNDL (UNDELETE LINE)

       По команде UNDL содержимое буфера строк  включается  в

  текущий буфер перед позицией курсора.

       Формат команды

          [число] UNDL

       Буфер строк содержит последнюю строку, удаленную  пос-

  редством одной из команд удаления строк.  Число  повторений

  операции восстановления задается в командной  строке  пара-

  метром - [число].



       5.2.32. Условный знак


       Условный знак (^) вводит управляющий символ в текст.

       Формат команды

          [число]^[A.....Z]

       Необходимый управляющий символ от (А  до  Z)  вводится

  после условного знака "^". ЕDT воспринимает "^" и  алфавит-

  ный символ как  один  управляющий  символ  (например,  ^G).

  Задание параметра - [число]  позволяет  выполнять  операцию

  несколько раз.






















                           - 106 -

                        00152-01 34 02


               6. Функциональное редактирование



       Функциональное редактирование в экранном режиме 3 реа-

  лизуется только на терминалах, имеющих функциональную  кла-

  виатуру.

       Клавиши функциональной клавиатуры расположены в правой

  части терминала и маркированы цифровыми символами, а  также

  знаками "." и ",".



       П_р_и_м_е_ч_а_н_и_е. Отдельные функциональные клавиши,
  
  Такие как <GOLD>, <HELP> и <DEL L/UND  L>  имеют  различное

  обозначение на клавиатуре в зависимости от типа терминала.

       В данном руководстве  описание  функциональных  клавиш

  приводится  относительно  клавиатуры  терминала  VDT-52130.

  Соответствие клавиш функциональной клавиатуры с  действиями

  редактора для различных типов терминалов дано в  приложении

  2.



       6.1. Функциональная клавиатура


       На рис. 1 представлена диаграмма  расположения  клавиш

  на функциональной клавиатуре терминала VDT-52130 и соответ-

  ветсвующие им функции.
















                           - 107 -

                        00152-01 34 02


        Диаграмма расположения клавиш на функциональной
                 клавиатуре терминала VDT-52130

                 -------------------
                 ! F1  ! F2  ! F3  !
                 -------------------

                                              -------
                 -------------------          !  DL !
   --------      !  7  !  8  !  9  !          ! /!\ !
   ! BACK !      -------------------          !  !  !
   ! SPACE!      !  4  !  5  !  6  !   ---------------------
   --------      -------------------   !  DC  !     !  IC  !
                 !  1  !  2  !  3  !   !<---- !     ! ---->!
   --------      -------------------   ---------------------
   ! LINE !      !  0  !  .  !ENTER!          !  IL !
   ! FEED !      -------------------          !  !  !
   --------                                   ! \!/ !
                                              -------

              -------------------
              !GOLD !HELP !DEL L!
              !     !     !UND L!
              -------------------

          --------------------------
          ! PAGE   !FNDNXT ! DEL W !
          !- - - - !- - - -!- - - -!        ---------
          !COMMAND ! FIND  ! UND W !        ! Вверх !
          --------------------------        !- - - -!
          !ADVANCE !BACKUP ! DEL с !        !REPLACE!
  ------- !- - - - !- - - -!- - - -! ------------------------
  !BACK ! ! BOTTOM !  TOP  ! UND с ! !влево !       !вправо !
  !SPACE! -------------------------- !- - - !       !- - - -!
  ------- !  WORD  !  EOL  !  CUT  ! !APPEND!       !SPECINS!
          !- - - - !- - - -!- - - -! ------------------------
  ------- !CHNGCASE!DEL EOL! PASTE !        ! Вниз  !
  !LINE ! --------------------------        !- - - -!
  !FEED ! !  LINE  !SELECT ! ENTER !        ! SECT  !
  ------- !- - - - !- - - -!- - - -!        ---------
          !  OPEN  ! RESET ! SUBS  !
          !  LINE  !       !       !
          --------------------------

                            Рис. 1

       Большинство клавиш могут выполнять две функции, напри-

  мер, клавише <5> назначены функции BACKUP и ТОР.  В  случае

  использования  стандартной  функции  (верхнее  значение   -

  BACKUP) нажимается клавиша <5>.  Выполнение  альтернативной

  функции (нижнее значение - ТОР) достигается за счет нажатия

  сначала клавиши <GOLD>, а затем клавиши 5.





                           - 108 -

                        00152-01 34 02


       Перемещение курсора по экрану осуществляется с помощью

  клавиш со стрелками, которые указывают направление  переме-

  щения.

       Клавиши <LF> и <BACK SPACE> имеют дополнительные функ-

  ции в режиме функционального редактирования.

       Возможно также  использование  клавиш  управления  для

  выполнения определенных действий редактора. Для этого нужно

  одновременно нажать клавишу (CTRL)  и  одну  из  алфавитных

  клавиш на основной клавиатуре.

       Более подробно  клавиши  функциональной  клавиатуры  и

  соответствующие им функции описаны в подразделах  6.2-6.13.

  В данном  описании  функции  клавиш  обрамлены  пунктирными

  линиями, а клавиши алфавитно-цифровой клавиатуры - заключе-

  ны в круглые скобки. На результат выполнения операции  ука-

  зывает стрелка. Диаграмма описываемой функции выглядит так:

          --------
          ! GOLD !  +  (7) ---> следующая используемая
          --------              функция выполнится 7 раз

       Отменить установленную функцию можно, выполнив  после-

  довательность:

          --------     --------
          !      !     !SELECT!
          ! GOLD !  +  !- - - !
          !      !     !RESET !
          --------     --------


       6.2. Основные функции


       К основным функциям экранного режима 3 относятся функ-

  ции GOLD, HELP, RESET и некоторые управляющие символы.  Эти

  функции требуются в качестве  дополнительных  или  являются

  основными при выполнении  операций  функционального  режима

  редактирования.




                           - 109 -

                        00152-01 34 02


       6.2.1. Функция GOLD


       Функция GOLD переключает редактор на  выполнение  аль-

  тернативных функций нижнего регистра функциональной клавиа-

  туры. Это достигается путем нажатия сначала клавиши <GOLD>,

  а  затем  соответствующей  другой  клавиши.  Например,  для

  выполнения функции тор (перевод курсора  в  начало  буфера)

  нужно нажать клавиши в последовательности:

          --------     --------
          !      !     !BACKUP!
          ! GOLD !  +  !- - - ! ----> курсор переместится
          !      !     ! TOP  !       в начало буфера
          --------     --------

       Функция GOLD остается активной до  следующего  нажатия

  одной из функциональных клавиш. GOLD также позволяет выпол-

  нять команду заданное число раз: первой нажимается  клавиша

  <GOLD>, второй - цифровая клавиша на  основной  клавиатуре.

  При этом цифра появляется в  нижнем  левом  углу  экрана  и

  остается там до завершения выполнения  операции.  В  третью

  очередь нажимается клавиша, соответствующая функции,  кото-

  рую необходимо выполнить.

       Пример.

          ***************************************************
          _редактирование файлов, содержащих в себе
          как исходные тексты программ, так и тексты
          служебной информации, осуществляется с
          помощью системных программ-редакторов.

          [EOB]
          ***************************************************


          --------             --------
          !      !             !DEL с !
          ! GOLD !  +  (7)  +  !- - - ! ----> удаляются
          !      !             !UND с !       7 символов
          --------             --------

       Первая  строка  в  буфере  после  выполнения   команды

  читается так:



                           - 110 -

                        00152-01 34 02


          _редактирование файлов, содержащих в себе



       6.2.2. Функция HELP


       Нажатие клавиши, соответствующей функции  HELP,  вызы-

  вает появление на экране диаграммы функциональной клавиату-

  ры и описаний управляющих символов CTRL/X (подраздел 2.6).

          --------
          ! HELP !
          --------

       В нижней части диаграммы  HELP  дается  инструкция  по

  получению справочной информации об отдельных клавишах  и  о

  возврате в режим редктирования. Таким образом, чтобы:

       - получить справку о какой-либо функциональной  кла-

         више - достаточно нажать эту клавишу;

       - возвратиться на  уровень  диаграммы  -  достаточно

         нажать клавишу <CR>;

       - выйти из режима HELP - ввести пробел.

       После выхода из HELP редактор возвращается на  тот  же

  самый уровень редактирования, на котором находился  пользо-

  ватель до момента нажатия клавиши <HELP>.



       6.2.3. Функция RESET


       Функция RESET используется в тех случаях, когда  необ-

  ходимо отменить функции, которые еще не выполнены  редакто-

  ром. Допустим,  пользователь  решил,  что  последовательное

  нажатие клавиш <GOLD> и (7) не приведет к желаемому  эффек-

  ту. Для отмены ранее заданной операции повтора  нужно  вос-

  пользоваться клавишей <SELECT/RESET>:





                           - 111 -

                        00152-01 34 02


          --------             --------     --------
          !      !             !      !     !SELECT!
          ! GOLD !  +  (7)  +  ! GOLD !  +  !- - - !
          !      !             !      !     !RESET !
          --------             --------     --------


       6.2.4. Обновление экрана (CTRL/W)


       Посредством управляющего символа CTRL/W осуществляется

  очищение экрана  с  дальнейшим  восстановлением  текста  из

  буфера. Обновление экрана сопровождается  удалением  симво-

  лов, например, из системного сообщения, которые могут  поя-

  виться на экране в процессе редактирования. Курсор остается

  на той же позиции, какую занимал до момента ввода CTRL/W.



       6.2.5. Возврат в режим 1 (CTRL/Z)


       Выход на командный уровень строкового режима  редакти-

  рования  осуществляется  с  помощью  управляющего   символа

  CTRL/Z.    Ввод     CTRL/Z     приводит     к     появлению

  подсказки-звездочки "*", что свидетельствует о  возврате  в

  режим 1. Чтобы снова войти в режим функционального редакти-

  рования, достаточно после звездочки ввести команду CHANGE и

  нажать клавишу <CR>:

          *CHANGE <CR>



       6.3. Завершение процесса редактирования


       Завершая сеанс редактирования, пользователь по желанию

  может сохранить или удалить проведенную редакцию. Текст,  с

  внесенными редактором поправками, запоминается в  текстовом

  буфере, поэтому команды сохранения и  удаления  выполняются




                           - 112 -

                        00152-01 34 02


  над содержимым текстового буфера. Следовательно, прежде чем

  "закрывать" редактор, нужно твердо  решить,  сохранять  или

  нет копию текстового буфера  в  файле  (в  случае  создания

  нового файла) и сохранять  или  нет  проведенную  коррекцию

  копии уже существующего файла.



       6.3.1. Сохранение редакции


       Чтобы выйти из редактора без потери работы,  проведен-

  ной в данном сеансе, можно действовать двумя способами:

       1)   нажать   последовательно   клавиши    <GOLD>    и

  <PAGE/COMMAND>.  Ввести  команду  EXIT  после  подсказки  и

  нажать клавишу <ENTER/SUBS>:

          --------     ---------
          !      !     !  PAGE !
          ! GOLD !  +  !- - - -!
          !      !     !COMMAND!
          --------     ---------


                        ---------
                        ! ENTER !
          команда: EXIT !- - - -!
                        ! SUBS  !
                        ---------

       2) ввести комбинацию CTRL/Z для возврата  в  строковый

  режим на уровнь  приема  команд.  Командой  EXIT  "закрыть"

  редактор.

       В том и другом случае выходной файл представляет собой

  копию содержимого текстового буфера.



       6.3.2. Удаление редакции


       С помощью команды QUIT  можно  удалить  все  поправки,

  внесенные в процессе редактирования. Команда QUIT - команда




                           - 113 -

                        00152-01 34 02


  экстренного "закрытия" редактора без сохранения проведенной

  редакции, относится как к вновь создаваемым, так  и  к  уже

  существующим файлам. Существует два способа удаления редак-

  ции посредством команды QUIT:

       1)  последовательное  нажатие  функциональных   клавиш

  <GOLD> и <PAGE/COMMAND>:

          --------     ---------
          !      !     ! PAGE  !
          ! GOLD !  +  !- - - -!
          !      !     !COMMAND!
          --------     ---------

       На подсказку "команда:" задается команда QUIT с после-

  дующим нажатием клавиши <ENTER/SUBS>:

                        ---------
                        ! ENTER !
          команда: QUIT !- - - -!
                        ! SUBS  !
                        ---------

       2) переход в строковый режим редактирования  посредст-

  вом CTRL/Z на подсказку-звездочку "*". "закрытие" редактора

  командой QUIT.

       В том и другом случае  процесс  редактирования  завер-

  шается с удалением проведенной редакции.



       6.4. Вставка текста


       Создание нового файла, т.е. включение текста в файл  в

  начале сеанса редактирования или добавление  текста  к  уже

  существующему файлу производится непосредственно с основной

  алфавитно-цифровой клавиатуры без использования  какой-либо

  функции.









                           - 114 -

                        00152-01 34 02


       6.4.1. Ввод символов


       Весь набор символов,  который  вводит  пользователь  с

  основной клавиатуры в процессе функционального редактирова-

  ния, вводится напосредственно перед курсором как текст.

       Запуск EDT и переход в режим функционального  редакти-

  рования предшествует включению текста в файл:

          DCL

          ***************************************************
          EDIT/EDT MYFILE.TXT <CR>
          входной файл отсутствует
          [EOB]
          *SET TERMINAL <CR>
          *CHANGE <CR>
          ***************************************************


          MCR


          ***************************************************
          EDT MIFILE.TXT <CR>
          входной файл отсутствует
          [EOB]
          *SET TERMINAL <CR>
          *CHANGE <CR>
          ***************************************************

       Текст вводится с основной клавиатуры:

          ***************************************************
          программа EDT функционирует в трех <CR>
          режимах: строковом, экранном и <CR>
          функциональном. <CR>
          _
          [EOB]
          ***************************************************


       6.4.2. Функция OPEN LINE


       Функциональная клавиша <OPEN  LINE>  используется  для

  вставки символа возврата каретки/перевода строки <CR> после

  курсора. Позиция курсора при этом остается неизменной. Если

  курсор находится в середине строки, то EDT  сместит  текст,




                           - 115 -

                        00152-01 34 02


  находящийся справа от  курсора,  вниз  в  начало  следующей

  строки.

       Диаграмма перемещения курсора относительно конца бУФЕ-

  ра (см. предыдущий пример) выглядит следующим образом:

   -----              ----------               курсор нахо-
   ! А !              !  WORD  !               дится в сере-
   ! ! ! (2 раза)  +  !- - - - ! (2 раза) -->  дине второй
   ! ! !              !CHNGCASE!               строки
   -----              ----------

          ***************************************************

          режимах: строковом, _экранном и

          ***************************************************

       Описание клавиш

          -----
          ! А !
          ! ! !
          ! ! !
          !   !
          ----- ,  <WORD/CHNGCASE>

  дано в п. 6.5.1, подпункте 6.5.3.1.

        После нажатия клавиши:

          --------     ----------
          !      !     !  LINE  !
          ! GOLD !  +  !- - - - !
          !      !     !OPENLINE!
          --------     ----------

  местоположение курсора определяется следующим образом:

          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,_
          экранном и
          функциональном.
          [EOB]
          ***************************************************

       Если курсор находится в начале или в конце строки,  то

  посредством клавиш <GOLD>, <LINE/OPEN LINE> будет вставлена

  пустая строка.








                           - 116 -

                        00152-01 34 02


          --------     ----------
          !      !     !  LINE  !
          ! GOLD !  +  !- - - - !
          !      !     !OPENLINE!
          --------     ----------

          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,_

          экранном и
          функциональном.
          [EOB]
          ***************************************************



       6.5. Перемещение курсора


       Функции, описываемые в данном пункте позволяют переме-

  щать курсор по экрану, а  также  устанавливать  направление

  перемещения курсора во время сеанса редактирования.



       6.5.1. Клавиши со стрелками


       Четыре клавиши со стрелками, расположенные на функцио-

  нальной клавиатуре (рис. 2.), позволяют  перемещать  курсор

  вверх, вниз, вправо, влево по тексту на экране.

       Описание этих клавиш сведено в табл. 8.






















                           - 117 -

                        00152-01 34 02


                                                    Таблица 8

                     Клавиши со стрелками

   ----------------------------------------------------------
      Изображение    !
      клавиш на      !           Описание
      клавиатуре     !
   ----------------------------------------------------------
      -----          !  Клавиша со стрелкой вверх перемещает
      ! А !          !курсор на предыдущую позицию по верти-
      ! ! !          !кали. Если предыдущая строка не расши-
      ! ! !          !рена до  прежней  позиции курсора, EDT
      !   !          !устанавливает курсор в конце строки
      -----          !
                     !
      -----          !  Клавиша со  стрелкой вниз перемещает
      ! ! !          !курсор на одну  позицию вниз по верти-
      ! ! !          !кали. Если последующая  строка не рас-
      ! V !          !ширена до прежней позиции  курсора EDT
      !   !          !устанавливает курсор в конце строки
      -----          !
                     !
      --------       !  Клавиша со стрелкой влево перемещает
      !      !       !курсор на предыдущий символ. Если кур-
      ! <--  !       !сор на границе левого поля, EDT  уста-
      !      !       !навливает  курсор  в  конце предыдущей
      --------       !строки
                     !
                     !
      --------       !  Клавиша со стрелкой вправо перемеща-
      !      !       !ет  курсор  на  следующий символ. Если
      ! -->  !       !курсор находится после крайнего право-
      !      !       !го символа, то EDT устанавливает  кур-
      --------       !сор на первом символе следующей строки





  Пример 1.       -----
                  ! А !
                  ! ! !
                  ! ! !
                  !   !
                  -----


                  *****************************************
                  программа EDT функ_ционирует в трех
                  режимах: строковом,

                  экранном и
                  функциональном.
                  [EOB]
                  *****************************************






                           - 118 -

                        00152-01 34 02


  Пример 2.       -----
                  ! ! !
                  ! ! !  (3 раза)
                  ! V !
                  !   !
                  -----


                  ******************************************
                  программа EDT функционирует в трех
                  режимах: строковом,

                  экранном и_
                  функциональном.
                  [EOB]
                  ******************************************


  Пример 3.       --------
                  !      !
                  ! <--  !  (4 раза)
                  !      !
                  --------


                  *******************************************
                  программа EDT функционирует в трех
                  режимах: строковом,

                  экранн_ом и
                  функциональном.
                  [EOB]
                  *******************************************


  Пример 4.       --------
                  !      !
                  ! -->  !  (3 раза)
                  !      !
                  --------


                  *******************************************
                  программа EDT функционирует в трех
                  режимах: строковом,

                  экранном _и
                  функциональном.                   
                  [EOB]
                  *******************************************



       6.5.2. Направление редактирования


       Функции ADVANCE и BACKUP изменяют направление редакти-




                           - 119 -

                        00152-01 34 02


  рования. Функциям, действия которых  направлены  в  ту  или

  иную сторону, относятся следующие:

          LINE, WORD, EOL, FIND, PAGE,
          FNDNXT, CHNGCASE, SUBS


       6.5.2.1. Функция ADVANCE


       Функция ADVANCE устанавливает направление редактирова-

  ния - "вперед", т.е. при  выполнении  определенных  функций

  курсор перемещается в конец файла,  вправо  и  вниз.  Чтобы

  использовать эту функцию, нужно нажать клавишу:


          ---------
          !ADVANCE!
          !- - - -!
          !BOTTOM !
          ---------

       Функция ADVANCE установлена по умолчанию.  Направление

  "вперед" изменяется на противоположное посредством  нажатия

  клавиши <BACKUP/TOP>.



       6.5.2.2. Функция BACKUP


       Функция BACKUP изменяет  прямое  направление  движения

  курсора на обратное, т.е. курсор перемещается в начало фай-

  ла, влево и вверх. Функция BACKUP реализуется нажатием кла-

  виши:


          ---------
          !BACKUP !
          !- - - -!
          !  Тор  !
          ---------

       Действия команд в обратном  направлении  будут  выпол-

  няться до тех пор, пока оно не будет изменено на противопо-

  ложное нажатием клавиши <ADVANCE/BOTTOM>.



                           - 120 -

                        00152-01 34 02


       6.5.3. Перемещение курсора по элементам текста


       В процессе редактирования курсор может перемещаться по

  экрану по элементам текста. Элемент текста - это ряд симво-

  лов, который EDT воспринимает как единицу текста, такую как

  слово, строка или страница. Направление движения курсора по

  элементам  текста  устанавливается  функциями   ADVANCE   и

  BACKUP.



       6.5.3.1. Функция WORD


       Словом для EDT является один или  несколько  символов,

  ограниченных пробелами. Клавиша <WORD/CHNGCASE>  перемещает

  курсор на одно слово вперед или на  одно  слово  назад.  По

  команде SET ENTITY можно установить ограничители  слова  по

  усмотрению пользователя.

       Пример.

       Допустим курсор был установлен в начале первой строки:


          ----------
          !  WORD  !
          !- - - - ! (3 раза)
          !CHNGCASE!
          ----------


          ***************************************************
          программа EDT функционирует _в трех
          режимах: строковом
               .
               .
               .
          [EOB]
          ***************************************************

       Если курсор находится в конце  строки,  и  направление

  движения курсора установлено "вперед", EDT перемещает  кур-

  сор на следующую строку.




                           - 121 -

                        00152-01 34 02


       6.5.3.2. Функция EOL (конец строки)


       Клавиша <EOL/DEL EOL> перемещает курсор в конец  теку-

  щей строки в прямом  направлении  или  в  конец  предыдущей

  строки в обратном направлении, например:


          --------
          ! EOL  !
          !- - - ! (3 раза)
          !DELEOL!
          --------


          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          экранном и_
          функциональном.
          [EOB]
          ***************************************************


       6.5.3.3. Функция LINE


       Функция LINE перемещает курсор вниз в начало следующей

  строки или назад в начало текущей строки  (другими  словами

  на границу левого поля экрана), например:


          -----------
          !  LINE   !
          !- - - - -!
          !OPEN LINE!
          -----------


          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          экранном и
          _функциональном.
          [EOB]
          ***************************************************

       Изменив направление движения курсора, доб'емся следую-

  щего эффекта:




                           - 122 -

                        00152-01 34 02


          ----------       -----------
          ! BACKUP !       !  LINE   !
          !- - - - !   +   !- - - - -!
          !  TOP   !       !OPEN LINE!
          ----------       -----------


          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          _экранном и
          функциональном.
          [EOB]
          ***************************************************


       6.5.3.4. Функция BACK SPACE


       Клавиша (BACK SPACE) помещает курсор в  начало  строки

  (в крайнее левое положение), например, относительно  преды-

  дущего примера (п.п. 6.5.3.3.) нажатие клавиши:


          ---------
          ! BACK  !
          ! SPACE !  (3 раза)
          ---------

       Вызовет следующее перемещение курсора:

          ***************************************************
          _программа EDT функционирует в трех
          режимах: строковом,

          экранном и
          функциональном.
          [EOB]
          ***************************************************


       6.5.4. Перемещение курсора по буферу


       Курсор можно перемещать в конец или в начало буфера, а

  также по страницам и секциям.










                           - 123 -

                        00152-01 34 02


       6.5.4.1. Функция PAGE


       Клавиша <PAGE/COMMAND> перемещает курсор в начало сле-

  дующей или предыдущей  страницы  текста  в  зависимости  от

  установленного направления движения.


          ----------
          !  PAGE  !
          !- - - - !
          !COMMAND !
          ----------

       Ограничитель  страницы  задается  в  строковом  режиме

  редактирования командой SET ENTITY (см. п. 7.1.3). По умол-

  чанию, ограничителем страницы является код <FF>. В приложе-

  нии 3 представлен список символьных кодов КОИ-7.



       6.5.4.2. Функция SECTION


       SECTION перемещает курсор на одну 16-строковую секцию.


                         -------
          --------       !  !  !
          !      !       !  !  !
          ! GOLD !   +   !  V  !
          !      !       !- - -!
          --------       !SECT !
                         -------

       Если диапазон имеющихся строк меньше 16, то EDT  уста-

  новит курсор на последней в этом  диапазоне  строке,  и  на

  экране появится одно из сообщений:


          BACKUP PAST тор OF BUFFER
          достигнуто начало буфера

          ADVANCE PAST BOTTOM OF BUFFER
          достигнут конец буфера

       Направление перемещения курсора зависит от установлен-

  ной функции ADVANCE или BACKUP.




                           - 124 -

                        00152-01 34 02


       6.5.4.3. Функция ТОР


       Функция ТОР  устанавливает  курсор  в  начале  буфера.

  Выполнение этой функции требует нажатия двух клавиш:


          --------      ---------
          !      !      !BACKUP !
          ! GOLD !  +   !- - - -!
          !      !      !  ТОР  !
          --------      ---------

       EDT выводит на экран то количество строк,  какое  было

  определено командой SET LINES (п. 7.1.5). Если пользователь

  не установил необходимое для  вывода  на  экран  количество

  строк, по умолчанию распечатываются первые 22 строки.



       6.5.4.4. Функция BOTTOM


       Функция BOTTOM позиционирует  курсор  в  конце  буфера

  перед символом [EOB]  (признак  конца  буфера).  Выполнение

  этой функции требует нажатия 2-х клавиш:


          --------       ----------
          !      !       !ADVANCE !
          ! GOLD !   +   !- - - - !
          !      !       ! BOTTOM !
          --------       ----------

       EDT выводит на экран установленное пользователем коли-

  чество строк (команда SET LINES описана  в  п.  7.1.5).  По

  умолчанию на экране  воспроизводятся  последние  22  строки

  текста.



       6.6. Поиск фрагмента текста


       Функции, описываемые в  данном  подразделе,  позволяют

  вести поиск текстового фрагмента.



                           - 125 -

                        00152-01 34 02


       6.6.1. Функция FIND


       Функция FIND соответствует нижнему  регистру  функцио-

  нальной клавиатуры, поэтому  для  выполнения  этой  функции

  необходимо нажать две клавиши:


          --------       ----------
          !      !       ! FNDNXT !
          ! GOLD !   +   !- - - - !
          !      !       !  FIND  !
          --------       ----------

       Эта операция сопровождается появлением в нижнем  левом

  углу экрана сообщения-подсказки:

          SEARCH FOR:
          что искать?

       В ответ на запрос-подсказку пользователь вводит желае-

  мую строку и завершает ввод нажатием одной из клавиш:

  <ADVANCE> или <BACKUP>

       - для определения направления поиска;

  <ENTER>

       - для ведения поиска в текущем, ранее выбранном нап-

         равлении.



       П_р_и_м_е_ч_а_н_и_е. При использовании  прописных  или
  
  Строчных русских букв  (в  случае  8-битового  кодирования)

  предвариительно необходимо дать команду:

        SET SEARCH ехаст (см. п. 7.1.10)


       Пример.

          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          экранном и
          функциональном_.
          [EOB]
          ***************************************************



                           - 126 -

                        00152-01 34 02



          --------       ----------
          !      !       ! FNDNXT !
          ! GOLD !   +   !- - - - !   Что искать? _
          !      !       !  FIND  !
          --------       ----------

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

  необходимо найти, с нажатием клавиши  <ADVANCE/BOTTOM>  или

  <BACKUP/TOP>:


                           ----------
                           ! BACKUP !
          что искать? ФУ   !- - - - !
                           !  ТОР   !
                           ----------

       Курсор указывает на первый символ заданного  фрагмента

  в установленном направлении:


          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          экранном и
          _функциональном.
          [EOB]
          ***************************************************

       Использование функций ADVANCE или BACKUP для определе-

  ния направления действия команды также применимо к функциям

  EOL или SECTION.

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

  буфере строки поиска. Содержимое этого  буфера  может  быть

  использовано в качестве об'екта действия  такими  функциями

  как FNDNXT, CUT, SUBSTITUTE, CHNGCASE и REPLACE.



       6.6.2. Функция FNDNXT (последующий поиск)


       Функция FNDNXT ведет поиск фрагмента текста, сохранен-

  ного в буфере  строки  поиска.  Например,  если  последней,

  заданной для поиска в команде FIND, была комбинация  симво-



                           - 127 -

                        00152-01 34 02


  лов "ФУ", то следующее появление "ФУ" в установленном  нап-

  равлении будет найдено  посредством  использования  функции

  FNDNXT.

       ЕDT сохраняет искомый фрагмент в буфере  до  тех  пор,

  пока не будет введена новая строка для поиска или не  будет

  осуществлен выход из EDT.

       Пример.

       Пример, приведенный в п. 6.6.1 иллюстрирует  результат

  использования функции FIND для поиска  комбинации  символов

  "ФУ". Нажатие клавиши:


          ----------
          ! FNDNXT !
          !- - - - !
          !  FIND  !
          ----------

  приводит к нахождению следующего появления "ФУ"  в  тексте.

  Курсор устанавливается на первом символе искомого слова.


          ***************************************************
          программа EDT _функционирует в трех
          режимах, строковом,

          экранном и
          функциональном.
          [EOB]
          ***************************************************

       При необходимости, можно изменить  направление  поиска

  нажатием клавиш:


          ----------        ----------
          !ADVANCE !        ! FNDNXT !
          !- - - - !   +    !- - - - !
          ! BOTTOM !        !  FIND  !
          ----------        ----------

       При этом курсор займет положение:









                           - 128 -

                        00152-01 34 02


          ***************************************************
              .
              .
              .
          _функциональном.
          [EOB]
          ***************************************************


       6.7. Удаление и восстановление текста


       Функции, описываемые в  данном  подразделе,  позволяют

  удалять текст из буфера и восстанавливать удаленный  текст.

  Каждая из функций, которая удаляет символы, слова или стро-

  ки, запоминает элемент текста в буфере для возможного даль-

  нейшего восстановления.



       6.7.1. Удаление и восстановление символов


       В подпунктах 6.7.1.1, 6.7.1.2, 6.7.1.3. Приведено опи-

  сание клавиш, с помощью которых можно удалять и  восстанав-

  ливать отдельные символы текста.



       6.7.1.1. Клавиша DELETE


       Клавиша    DELETE,    расположенная    на     основной

  алфавитно-цифровой клавиатуре,  используется  для  удаления

  символа, стоящего слева от курсора, и сохранения этого сим-

  вола в буфере. Восстановление удаленного  символа  возможно

  до тех пор, пока в буфер не будет занесен следующий удален-

  ный символ. Если курсор занимает крайнюю позицию слева,  то

  EDT нажатием клавиши (DEL) удаляет  начальный  ограничитель

  строки и помещает текст в конец предыдущей строки.






                           - 129 -

                        00152-01 34 02


       Пример.

       В примере клавиша (DEL) удаляет символ возврата карет-

  ки и/или перевода строки - <CR>:


          ***************************************************
          программа EDT функционирует в трех
          режимах, строковом

          экранном и
          _функциональном.
          [EOB]
          ***************************************************


          (DEL)


          ***************************************************
          программа EDT функционирует в трех
          режимах, строковом

          экранном и _функциональном.
          [EOB]
          ***************************************************

       Нажатием клавиши <CR> восстанавливается удаленный сим-

  вол.


          ***************************************************
          программа EDT функционирует в трех
          режимах: строковом,

          экранном и
          _функциональном.
          [EOB]
          ***************************************************


       6.7.1.2. Функция DEL с (удаление символа)


       Клавиша, соответствующая функции DEL  с,  используется

  для удаления символа, на который указывает курсор.  Удален-

  ный символ хранится в  буфере  для  дальнейшего  возможного

  восстановления.

          _функциональном.






                           - 130 -

                        00152-01 34 02


          --------
          ! DELC !
          !- - - !
          ! UNDC !
          --------

          -ункциональном.



       6.7.1.3. Функция UND с (восстановление символа)


       Функция UNDC восстанавливает символ, который был  уда-

  лен последним  нажатием  клавиши  <DELC/UNDC>  или  клавиши

  (DELETE). Например:

          _ункциональном.


          --------       ---------
          !      !       ! DEL с !
          ! GOLD !   +   !- - - -!
          !      !       ! UND с !
          --------       ---------


          _функциональном.

       Функции DEL с и UND с целесообразно применять для исп-

  равления опечаток.

       Пример.

       Допустим, при наборе текста в названии редактора  была

  допущена  опечатка:  вместо  "EDT"  пользователь  напечатал

  "TED". Для исправления этой ошибки курсор нужно  установить

  на позиции начальной буквы "Т".


          ***************************************************
          программа TED функционирует в трех
          режимах строковом,

          экранном и
          _функциональном.
          [EOB]
          ***************************************************







                           - 131 -

                        00152-01 34 02


          --------       ---------
          !      !       !BACKUP !      Курсор переместится
          ! GOLD !   +   !- - - -! -->  в начало буфера
          !      !       !  TOP  !
          --------       ---------


          ----------
          !  --->  !   (10 раз)    -->  курсор позициони-
          ----------                    руется на букве "т"

       Далее, символ "Т" помещается в буфер посредством нажа-

  тия клавиши <DEL C/UND С>:


          ---------
          ! DEL с !
          !- - - -!
          ! UND с !
          ---------

          программа _ED функционирует в трех

       Передвинув курсор на 2 позиции вправо (в конец слова),

  нужно нажать последовательно клавиши:


                              --------     ---------
          --------            !      !     ! DEL с !
          ! ---> ! (2 раза) + ! GOLD !  +  !- - - -!
          --------            !      !     ! UND с !
                              --------     ---------

       В результате символ "Т" будет  восстановлен  в  нужном

  месте:

       Программа ED_T функционирует в трех



       6.7.2. Удаление и восстановление слова


       В подпунктах 6.7.2.1, 6.7.2.2, 6.7.2.3 приведено  опи-

  сание клавиш, с помощью которых  удаляется  и  восстанавли-

  вается элемент текста - слово (подраздел 5.1).










                           - 132 -

                        00152-01 34 02


       6.7.2.1. Клавиша <LF> (перевод строки)


       Клавиша <LF> расположена на алфавитно-цифровой клавиа-

  туре и маркирована - (LINE FEED) (см. рис. 2).

       Клавиша (LINE FEED)  удаляет  символы  от  курсора  до

  начального символа в слове включительно. При  этом  символ,

  на который указывает курсор, не удаляется.

       Если курсор находится на  первом  символе  слова,  EDT

  удаляет предшествующее слово и пробелы между  ними,  напри-

  мер:

          ---------
          ! <---  !  (2 раза)
          ---------

  курсор переместится на 2 позиции влево:

          программа _EDT функционирует в трех


          (LINE FEED)


          _EDT функционирует в трех


       6.7.2.2. Функция DEL W (удаление слова)


       Посредством клавиши <DEL W/UND W>  можно  удалить  ряд

  символов, начиная с символа, на который  указывает  курсор,

  до первого символа следующего слова. Каждая операция DEL  W

  очищает содержимое буфера слов и включает в него новое сло-

  во. Нажатие клавиши:


          ---------
          ! DEL W !
          !- - - -!
          ! UND W !
          ---------

  приводит к удалению слова "EDT":





                           - 133 -

                        00152-01 34 02


       _функционирует в трех



       6.7.2.3. Функция UND W (восстановление слова)


       Функция UND W помещает содержимое  буфера  слов  перед

  позицией курсора в текущем буфере. В буфере слов  находится

  тот текст, который был удален в предыдущей  операции  нажа-

  тием клавиши <DEL W/UND W) или (LINE  FEED),  следовательно

  происходит восстановление удаленного слова:


          --------       ---------
          !      !       ! DEL W !
          ! GOLD !   +   !- - - -!
          !      !       ! UND W !
          --------       ---------

          _EDT функционирует в трех


       6.7.3. Удаление и восстановление строки


       В подпунктах 6.7.3.1, 6.7.3.2, 6.7.3.3 описаны способы

  удаления строки текста или ее части.



       6.7.3.1. Управляющий символ CTRL/U


       Управляющий символ CTRL/U  удаляет  текст,  начиная  с

  позиции курсора до начала строки. При этом символ, на кото-

  рый указывает курсор, не удаляется. Если курсор  установлен

  на крайнем символе слева, т.е. в начале строки, то EDT уда-

  ляет полностью предыдущую строку, помещая  ее  в  строковый

  буфер.

       Пример.

       Воспользовавшись клавишей  <WORD/CHNGCASE>,  установим

  курсор на букве "В" (см. предыдущий пример)



                           - 134 -

                        00152-01 34 02


          ----------
          !  WORD  !
          !- - - - !  (2 раза)
          !CHNGCASE!
          ----------

          EDT функционирует _в трех

       Введем CTRL/U. При этом оставшаяся часть строки  будет

  читаться так:


          _в трех



       6.7.3.2. Функция DEL EOL (удаление конца строки)


       Функции DEL EOL удаляет все символы, находящиеся спра-

  ва от курсора, вплоть до конца строки, включая тот  символ,

  на который указывает курсор. Если курсор находится в  конце

  строки, нажатие клавиш <GOLD> и <EOL/DEL  EOL>  приводит  к

  удалению следующей строки.

       Пример.

       Для иллюстрации результата выполнения функции DEL  EOL

  воспользуемся следующим текстом:


          ***************************************************
          редактор EDT функционирует в трех
          операционных системах: ОС РВ и РДОС КП
          для увк типа СМ 4 и МОС ВП для 32-х
          разрядных СМ ЭВМ._
          [EOB]
          ***************************************************

       С помощью клавиш управления курсором установим  его  в

  начале второй строки:


          ----------     -----------     -------
          ! BACKUP !     !  LINE   !     !  А  !
          !- - - - !  +  !- - - - -!  +  !  !  ! (2 раза)
          !  ТОР   !     !OPEN LINE!     !  !  !
          ----------     -----------     -------






                           - 135 -

                        00152-01 34 02


          ***************************************************
          редактор EDT функционирует в трех
          _операционных системах: ОС РВ и РДОС КП
          для УВК типа СМ 4 и МОС ВП для 32-х
          разрядных СМ ЭВМ.
          [EOB]
          ***************************************************

       Последовательное нажатие клавиш <GOLD> и <EOL/DEL EOL>

  приводит к удалению текста в данной строке.


          ***************************************************
          редактор EDT функционирует в трех
          _
          для УВК типа СМ 4 и ВОС СМ для 32-х
          разрядных СМ ЭВМ.
          [EOB]
          ***************************************************

       Восстановить удаленную строку можно, использовав функ-

  цию UND L (подпункт 6.7.3.4).


          --------     ---------
          !      !     ! DEL L !
          ! GOLD !  +  !- - - -!
          !      !     ! UND L !
          --------     ---------


          ***************************************************
          редактор EDT функционирует в трех
          _операционных системах: ОС РВ и РДОС КП
          для УВК типа СМ 4 и МОС ВП для 32-х
          разрядных СМ ЭВМ.
          [EOB]
          ***************************************************


       6.7.3.3. Функция DEL L (удаление строки)


       Функция DEL L удаляет  текст  от  позиции  курсора  до

  ограничителя следующей строки включительно. Курсор устанав-

  ливается на первом символе следующей строки.

       Выполнение функции DEL L требует нажатия клавиши:









                           - 136 -

                        00152-01 34 02


          ---------
          ! DEL L !
          !- - - -!
          ! UND L !
          ---------


          ***************************************************
          редактор EDT функционирует в трех
          _для УВК типа СМ 4 и МОС ВП для 32-х
          разрядных СМ ЭВМ.
          [EOB]
          ***************************************************


       6.7.3.4. Функция UND L (восстановление строки)


       Функция UND L восстанавливает текст, удаленный  коман-

  дами CTRL/U, DEL EOL или DEL L. При этом необходимо  учиты-

  вать, что  восстанавливается  часть  текста,  помещенная  в

  буфер в процессе последнего нажатия одной из  соответствую-

  щих клавиш.

       Пример.

          --------     ---------
          !      !     ! DEL L !
          ! GOLD !  +  !- - - -!
          !      !     ! UND L !
          --------     ---------


          ***************************************************
          редактор EDT функционирует в трех
          _операционных системах: ОС РВ и ДОС КП
          для УВК типа СМ-4 и МОС ВП для 32-х
          разрядных СМ ЭВМ.
          [EOB]
          ***************************************************


       6.8. Выбор    текстового     диапазона     и

            перемещение текста


       Примеры, приведенные в конце описания функций  SELECT,

  CUT, PASTE, APPEND, иллюстрируют возможности их использова-

  ния.




                           - 137 -

                        00152-01 34 02


       Данный подраздел описывает, как использовать выбранный

  диапазон текста для его перемещения в буфере.



       6.8.1. Функция SELECT


       Функция SELECT фиксирует  верхний  или  нижний  предел

  выбранного текстового диапазона, который подлежит  удалению

  или перемещению. Для определения начальной  границы  текста

  достаточно нажать  клавишу  <SELECT/RESET>,  предварительно

  подогнав курсор в начало требуемого диапазона. Затем курсор

  необходимо переместить в прямом или обратном направлении  в

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

  соответствующих клавиш  одну  из  следующих  функций:  CUT,

  APPEND, или REPLACE.



       6.8.2. Функция CUT


       Функция CUT удаляет выделенную часть текста из  файла,

  помещая ее в  буфер  PASTE.  Содержимое  буфера  (результат

  выполнения предыдущей  операции  CUT)  при  этом  теряется.

  Использование функции CUT особенно выгодно в  тех  случаях,

  когда необходимо удалить или переместить большие  текстовые

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

  занимаемой курсором в момент нажатия клавиши <SELECT/RESET>

  и текущим местоположением курсора.



       6.8.3. Функция PASTE


       Функция PASTE помещает содержимое буфера  PASTE  перед

  текущей позицией курсора.



                           - 138 -

                        00152-01 34 02


       6.8.4. Использование  функций   SELECT,   CUT,

              PASTE


       Иллюстрация процедуры выделения части текста для  вре-

  менного хранения в буфере с целью дальнейшего  восстановле-

  ния показана на примере текста.


       ******************************************************
       Редактор EDT можно использовать для
       создания файлов,
       для ввода и перемещения текстовой информации в файле,
       для сохранения и удаления работы,
       проведенной во время сеанса редактирования._
       [EOB]
       ******************************************************

       SELECT - для определения начальной границы выделенного

  текста курсор установим в начале второй  строки,  используя

  клавиши:


          --------     ----------     -------
          !      !     ! BACKUP !     !  !  !
          ! GOLD !  +  !- - - - !  +  !  !  !
          !      !     !  Тор   !     !  V  !
          --------     ----------     -------


     ******************************************************
     редактор EDT можно использовать для
     _создания файлов,
     для ввода и перемещения текстовой информации в файле,
     сохранения и удаления работы,
     проведенной во время сеанса редактирования.
     [EOB]
     *******************************************************


   нажатием клавиш:


          ----------     -----------
          ! SELECT !     !  LINE   !
          !- - - - !  +  !- - - - -!  (2 раза)
          ! RESET  !     !OPEN LINE!
          ----------     -----------


   выделяем область для выполнения команды CUT:





                           - 139 -

                        00152-01 34 02


       ******************************************************
       Создания файлов,
       Для ввода и перемещения текстовой информации в файле_,
       ******************************************************


       П_р_и_м_е_ч_а_н_и_е. В  случае  допущения  ошибки  при

  определении верхней границы выделенной области можно  отме-

  нить действие функции SELECT посредством использования аль-

  тернативной функции - RESET:


          --------     ----------
          !      !     ! SELECT !
          ! GOLD !  +  !- - - - !
          !      !     ! RESET  !
          --------     ----------

       CUT - для выполнения функции CUT необходимо определить

  текстовый диапазон по команде SELECT.  В  противном  случае

  при нажатии <CUT/PASTE> EDT выводит сообщение:


          NO SELECT RANGE ACTIVE
          нет выделенной области

       В данном случае нажатие клавиши:


          ---------
          !  CUT  !
          !- - - -!
          ! PASTE !
          ---------

  приводит к удалению выделенной области из файла и помещению

  ее в буфер PASTE.


          ***************************************************
          редактор EDT можно использовать для
          _сохранения и удаления работы,
          проведенной во время сеанса редактирования.
          [EOB]
          ***************************************************

       PASTE - для помещения содержимого буфера PASTE в опре-

  деленное место, например, в конец  буфера,  следует  нажать

  последовательно клавиши:





                           - 140 -

                        00152-01 34 02


          -------              --------     ---------
          !  !  !              !      !     !  CUT  !
          !  !  ! (2 раза)  +  ! GOLD !  +  !- - - -!
          !  V  !              !      !     ! PASTE !
          -------              --------     ---------


       ******************************************************
       редактор EDT можно использовать для
       сохранения и удаления работы,
       проведенной во время сеанса редактирования.
       _создания файлов,
       для ввода и перемещения текстовой информации в файле,
       [EOB]
       ******************************************************

       Текст можно восстанавливать в различных местах до  тех

  пор, пока содержимое буфера PASTE не заменится на другое  в

  процессе последующих операций CUT или APPEND.



       6.8.5. Функция APPEND


       Функция APPEND удаляет выделенную область из  текущего

  буфера и помещает ее в конец буфера PASTE. Выделенной  счи-

  тается часть текста между позицией курсора в момент нажатия

  клавиши <SELECT/RESET> и позицией курсора в момент  обраще-

  ния к функции APPEND.

       Пример.

       Допустим, пользователю для приведения текста (см. пре-

  дыдущий пример) к первоначальному виду необходимо вторую  и

  третью строку добавить к двум последним и все четыре строки

  поместить в конец текстового буфера. Выполнение этой опера-

  ции можно разбить на несколько этапов:

       1) курсор находится в начале четвертой строки. Опреде-

  лим две последние строки:

       _создания файлов,
       Для ввода и перемещения текстовой информации в файле,


   как выделенный текстовый диапазон:



                           - 141 -

                        00152-01 34 02




          ----------     -------
          ! SELECT !     !  !  !
          !- - - - !  +  !  !  !  (2 раза)
          ! RESET  !     !  V  !
          ----------     -------

       2) поместим  выделенный  текстовый  диапазон  в  буфер

  PASTE посредством нажатия функциональной клавиши:


          ---------
          !  CUT  !
          !- - - -!
          ! PASTE !
          ---------


          ***************************************************
          редактор EDT можно использовать для
          сохранения и удаления работы,
          проведенной во время сеанса редактирования.
          _
          [EOB]
          ***************************************************

       3) переместим курсор в начало второй  строки  (на  две

  позиции вверх).


          -------
          !  А  !
          !  !  !  (2 раза)
          !  !  !
          -------


          ***************************************************
          редактор EDT можно использовать для
          _сохранения и удаления работы,
          проведения во время сеанса редактирования.
          [EOB]
          ***************************************************

       4) выделим текстовый  диапазон  для  помещения  его  в

  конец буфера PASTE.


          ----------     -----------
          ! SELECT !     !  LINE   !
          !- - - - !  +  !- - - - -!  (2 раза)
          ! RESET  !     !OPEN LINE!
          ----------     -----------





                           - 142 -

                        00152-01 34 02


       Выделенный диапазон:

          сохранения и удаления работы,
          проведенной во время сеанса редактирования.

       5) используем функцию APPEND для добавления выделенной

  области к содержимому буфера PASTE:


          --------     ----------
          !      !     !  <---  !
          ! GOLD !  +  !- - - - !
          !      !     ! APPEND !
          --------     ----------


          ***************************************************
          редактор EDT можно использовать для
          _
          [EOB]
          ***************************************************

       6) поместим содержимое  буфера  PASTE  перед  позицией

  курсора:


          --------     ---------
          !      !     !  CUT  !
          ! GOLD !  +  !- - -  !
          !      !     ! PASTE !
          --------     ---------


       ******************************************************
       Редактор EDT можно использовать для
       Создания файлов,
       Для ввода и перемещения текстовой информации в файле,
       Сохранения и удаления работы,
       Проведенной во время сеанса редактирования.
       _
       [EOB]
       ******************************************************


       6.9. Замена текста


       Функции  REPLACE  и  SUBS  позволяют  заменять  текст,

  заданный в операции поиска, на содержимое буфера PASTE.









                           - 143 -

                        00152-01 34 02


       6.9.1. Функция REPLACE


       Функция REPLACE удаляет из текущего буфера  выделенную

  область текста, заменяя ее на содержимое буфера PASTE.

       Примеры:

       1. На примере текста, введенного с основной  клавиату-

  ры, продемонстрируем процедуру замены первого  встреченного

  слова "функции" на слово "команды":


          ***************************************************
          _использование функции SELECT необходимо для
          выполнения функции CUT, что предшествует
          этапу замены текста в операции REPLACE.
          [EOB]
          ***************************************************

       Операция REPLACE осуществляется в несколько этапов:

       1)  нажать  клавишу  <SELECT/RESET>  и  ввести   слово

  "команды":


          ---------
          !SELECT !
          !- - - -!
          ! RESET !
          ---------


       ******************************************************
       Команды _использование функции SELECT необходимо для
       Выполнения функции CUT, что предшествует
          .
          .
          ..
       [EOB]
       ******************************************************

       2) нажать клавишу <CUT/PASTE> для запоминания  введен-

  ного выражения в буфере PASTE.












                           - 144 -

                        00152-01 34 02


       ******************************************************
       _использование функции SELECT необходимо для
       Выполнения функции CUT, что предшествует
          .
          .
          .
       [EOB]
       ******************************************************

       3) переместить курсор в начало слова, которое подлежит

  замене и определить его как выделенную область:


          ----------     ---------     ----------
          !  WORD  !     !SELECT !     !  WORD  !
          !- - - - !  +  !- - - -!  +  !- - - - !
          !CHNGCASE!     ! RESET !     !CHNGCASE!
          ----------     ---------     ----------


          ***************************************************
          использование функции _SELECT необходимо для
          выполнения функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************

       4)   нажать   последовательно   клавиши    <GOLD>    и

  <BBEPX/REPLACE> для замены слова "функции" на слово "коман-

  ды".


          --------     -----------
          !      !     !  Вверх  !
          ! GOLD !  +  !- - - - -!
          !      !     ! REPLACE !
          --------     -----------


          ***************************************************
          использование команды _SELECT необходимо для
          выполнения функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************

       2. В операции замены  текста  REPLACE  возможен  поиск

  заменяемого фрагмента текста (функция FIND). В примере сло-

  во "операции" заменяет слова "команды" и "функции".




                           - 145 -

                        00152-01 34 02


       Установив курсор в  начале  первой  строки,  используя

  клавишу (BACK SPACE), выполним операцию замены в  несколько

  этапов;

       1) нажать клавишу <SELECT/RESET> и ввести текст:


   **********************************************************
   операции _использование команды SELECT необходимо для
   выполнения функции CUT, что предшествует
           .
           .
           .
   [EOB]
   **********************************************************

       2) нажать клавишу CUT для  помещения  текста  в  буфер

  PASTE.


          ---------
          !  CUT  !
          !- - - -!
          ! PASTE !
          ---------


          **************************************************
          _использование команды SELECT необходимо для
          выполнения функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          **************************************************

       3) использовать функцию FIND для поиска текста, подле-

  жащего замене:


          --------     ----------
          !      !     ! FNDNXT !
          ! GOLD !  +  !- - - - !
          !      !     !  FIND  !
          --------     ----------

       Нажатие соответствующих функции FIND  клавиш  вызывает

  появление подсказки-запроса:









                           - 146 -

                        00152-01 34 02


                              -----------
                              ! ADVANCE !
          что искать? команды !- - - - -!
                              ! BOTTOM  !
                              -----------


       Курсор установится на слове "команды":


          ***************************************************
          использование _команды SELECT необходимо для
          выполнения функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************

       4)   нажать   последовательно   клавиши    <GOLD>    и

  <BBEPX/REPLACE> для замены слова  "команды"  на  содержимое

  буфера PASTE:


          --------     -----------
          !      !     !  Вверх  !
          ! GOLD !  +  !- - - - -!
          !      !     ! REPLACE !
          --------     -----------


          ***************************************************
          использование операции _SELECT необходимо для
          выполнения функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************

       Для дальнейшей замены слова "функции" на слово "опера-

  ции" нужно повторить два  последних  шага,  т.е.  выполнить

  функции FIND, REPLACE:


   --------     --------                         ---------
   !      !     !FNDNXT!                         !ADVANCE!
   ! GOLD !  +  !- - - ! --> что искать? функции !- - - -!
   !      !     ! FIND !                         !BOTTOM !
   --------     --------                         ---------

  курсор установится на определяемом слове:






                           - 147 -

                        00152-01 34 02


          ***************************************************
          использование операции SELECT необходимо для
          выполнения _функции CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************

       Вторичное нажатие  клавиши  <GOLD>  и  <BBEPX/REPLACE>

  приведет к следующему результату:


          --------     -----------
          !      !     !  Вверх  !
          ! GOLD !  +  !- - - - -!
          !      !     ! REPLACE !
          --------     -----------


          ***************************************************
          использование операции SELECT необходимо для
          выполнения операции _CUT, что предшествует
                  .
                  .
                  .
          [EOB]
          ***************************************************


       6.9.2. Функция SUBS


       Функция SUBS выполняет действие, аналогичные  REPLACE,

  т.е. заменяет заданную в операции поиска комбинацию  симво-

  лов на содержимое буфера PASTE. SUBS работает так  же,  как

  функция REPLACE, совершая автоматически при  этом  операцию

  "последующего поиска" (функция FNDNXT описана в п. 6.6.2).

       Пример.

       На примере текста:


          ***************************************************
          _использование операции SELECT необходимо для
          выполнения операции CUT, что предшествует
          этапу замены текста в операции REPLACE.
          [EOB]
          ***************************************************

  покажем, как заменить  слово  "операции",  встречающееся  в




                           - 148 -

                        00152-01 34 02


  нескольких местах текста, на выражение "функции режима 3".

       Допустим, курсор установлен в  начале  буфера.  Замена

  текстового фрагмента по всему буферу или части его в режиме

  поиска осуществляется в несколько этапов:

       1)  нажать  функциональную  клавишу  <SELECT/RESET>  и

  ввести выражение "функции режима 3" с основной  клавиатуры.

  Введенный текст помещается в выделенную область.


          ----------
          ! SELECT !
          !- - - - !
          ! RESET  !
          ----------


   **********************************************************
   функции режима 3 _использование операции SELECT необходимо
   для  выполнения операции CUT, что предшествует
   этапу замены текста в операции REPLACE.
   [EOB]
   **********************************************************

       2) нажать клавишу <CUT/PASTE> для запоминания  выраже-

  ния "функции режима 3" в буфере PASTE. Текст  помещенный  в

  выделенную область, исчезает с экрана:


          ***************************************************
          _использование операции SELECT необходимо для
          выполнения операции CUT, что предшествует
          этапу замены текста в операции REPLACE.
          [EOB]
          ***************************************************

       3) поиск текста, подлежащего замене, происходит  путем

  последовательного нажатия клавиши <GOLD>  и  <FNDNXT/FIND>.

  Курсор указывает  на  первое  появление  фрагмента  текста,

  заданного в ответ на запрос-подсказку операции FIND.


   --------     --------                          ---------
   !      !     !FNDNXT!                          !ADVANCE!
   ! GOLD !  +  !- - - ! --> что искать? операции !- - - -!
   !      !     ! FIND !                          !BOTTOM !
   --------     --------                          ---------





                           - 149 -

                        00152-01 34 02


          ***************************************************
          использование _операции SELECT необходимо для
          выполнения операции CUT, что предшествует
          этапу замены текста в операции REPLACE.
          [EOB]
          ***************************************************

       4) замена текста, определенного по FIND, на содержимое

  буфера PASTE  осуществляется  посредством  нажатия  клавиши

  <GOLD> и <ENTER/SUBS>.  Курсор  при  этом  перемещается  на

  позицию начального символа следующего появления заменяемого

  текста:


          --------     ---------
          !      !     ! ENTER !
          ! GOLD !  +  !- - - -!
          !      !     ! SUBS  !
          --------     ---------


          ***************************************************
          использование функции режима 3 SELECT необходимо
          для выполнения _операции CUT, что предшествует
          этапу замены текста в операции REPLACE.
          [EOB]
          ***************************************************

       5) последующее нажатие клавиши <GOLD>  и  <ENTER/SUBS>

  приведет к замене слова "операции"  на  выражение  "функции

  режима 3" последовательно по всему буферу. Если нужно  про-

  пустить какое-то появление требуемого слова, следует нажать

  клавишу <FNDNXT/FIND> вместо <GOLD> и <ENTER/SUBS>.



       6.10. Использование команд строкового режима


       Функции: ENTER и COMMAND выполняют команды  строкового

  режима в процессе функционального  редактирования.  Наличие

  такой возможности заметно подчеркивает преимущества  режима

  функционального редактирования. Примеры использования ENTER

  и COMMAND приведены после описания данных функций.





                           - 150 -

                        00152-01 34 02


       6.10.1. Функция ENTER


       Функция ENTER используется в двух случаях: при  поиске

  текстового фрагмента (функция  FIND)  и  при  необходимости

  выполнения команд строкового режима. В обоих случаях  функ-

  ция ENTER является завершающим шагом при выполнении опреде-

  ленного действия.  Функция  FIND  требует  нажатия  клавиши

  <ENTER/SUBS>  после  введения  строки  поиска  в  ответ  на

  запрос-подсказку, если направление поиска было  установлено

  заранее ( п. 6.5.2).

       Нажатие клавиши  <ENTER/SUBS>  приводит  к  выполнению

  команды строкового режима, заданной в операции COMMAND.



       6.10.2. Функция COMMAND


       Функция COMMAND позволяет использовать команды строко-

  вого режима, не выходя из режима функционального редактиро-

  вания. Ввод команды с  основной  клавиатуры  осуществляется

  после нажатия клавиши <GOLD> и  <PAGE/COMMAND>.  Выполнение

  указанной  команды   происходит   после   нажатия   клавиши

  <ENTER/SUBS>.



       6.10.3. Использование функций ENTER и COMMAND


       В результате нажатия клавиш <GOLD> и <PAGE/COMMAND>  в

  левом нижнем углу экрана появляется запрос-подсказка:


          --------     -----------
          !      !     !  PAGE   !
          ! GOLD !  +  !- - - - -! ---> команда:_
          !      !     ! COMMAND !
          --------     -----------




                           - 151 -

                        00152-01 34 02


       В ответ на запрос-подсказку вводится требуемая  коман-

  да:

          KOMAHдA:SET TRUNCATE

       Для выполнения заданной команды необходимо нажать кла-

  вишу <ENTER/SUBS>:


          ---------
          ! ENTER !
          !- - - -!
          ! SUBS  !
          ---------

       Выполнение команды  строкового  режима  сопровождается

  обновлением экрана, после чего пользователь возвращается  в

  режим функционального  редактирования.  При  задании  таких

  команд как EXIT и QUIT и использовании функции  ENTER,  EDT

  завершает сеанс редактирования.



       6.10.4. Исправление  ошибок  при  вводе  команд

               режима 1


       Если  при  нажатии  последовательности  функциональных

  клавиш была допущена ошибка, ее можно исправить посредством

  использования функции ENTER, например:


          --------     ---------              ---------
          !      !     ! PAGE  !              ! ENTER !
          ! GOLD !  +  !- - - -! --> команда: !- - - -!
          !      !     !COMMAND!              ! SUBS  !
          --------     ---------              ---------

       Исправить текст, введенный  по  COMMAND,  можно  двумя

  способами:

       1) удалить последний введенный символ нажатием клавиши

  (DEL):







                           - 152 -

                        00152-01 34 02


          --------     -----------
          !      !     !  PAGE   !
          ! GOLD !  +  !- - - - -! --> KOMAHдA:QUIP(DEL)QUI
          !      !     ! COMMAND !
          --------     -----------

       2) удалить всю командную строку нажатием (CTRL/U):


          --------     -----------
          !      !     !  PAGE   !
          ! GOLD !  +  !- - - - -! --> KOMAHдA:QUI (CTRL/U)
          !      !     ! COMMAND !
          --------     -----------

       Управляющий символ CTRL/U удаляет командную  строку  и

  возвращает курсор на текущую позицию в режиме  редактирова-

  ния. Однако, если был введен символ "Т" с последующим нажа-

  тием клавиши <ENTER/SUBS>, EDT выполнит указанную команду.



       6.11. Специальные    символы,    переключение

             регистра      алфавитных      символов,

             заполнение строк


       Функции, описываемые  в  данном  подразделе  позволяют

  включать специальные символы, менять малые латинские  буквы

  на большие латинские и наоборот, выполнять операции  запол-

  нения строк (FILL) в пределах выделенной области.



       6.11.1. Функция SPECINS


       Функция SPECINS дает  возможность  включения  в  текст

  непечатных символов в кодах ASCII. В приложении 3 приведена

  таблица эквивалентов символов ASCII в виде десятичных  зна-

  чений.

       Нажатие клавиши <GOLD> предшествует вводу  с  основной

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




                           - 153 -

                        00152-01 34 02


       Пример.

       Допустим, в файл нужно вставить символ "перевода стро-

  ки" - <LF>. Эта операция требует:

       1) нажатия клавиши <GOLD> и ввода числового эквивален-

  та символа <LF>, т.е. числа - 10.

       2)  последовательного  нажатия   клалавиш   <GOLD>   и

  <BпPABO/SPECINS>.

       Применение функции SPECINS является единственным  спо-

  собом включения  символа  "возврата  каретки"  -  <CR>  без

  использования его в качестве строкового ограничителя.


          --------
          !      !
          ! GOLD !  +  (10)
          !      !
          --------


          --------     -----------
          !      !     ! Вправо  !
          ! GOLD !  +  !- - - - -! ---> <LF>
          !      !     ! SPECINS !
          --------     -----------


       6.11.2. Функция CHNGCASE


       Функция CHNGCASE переключает регистр алфавитных симво-

  лов, т.е. меняет малые латинские буквы на большие латинские

  и наоборот. Нажатие клавиш <GOLD> и <WORD/CHNGCASE>  приво-

  дит к изменению алфавитного символа, на  который  указывает

  курсор, например:

          редактор E_DT

  ***********************************************************
   --------     ----------
   !      !     !  WORD  !
   ! GOLD !  +  !- - - - ! ---> буква "D" малая латинская              
   !      !     !CHNGCASE!      меняется на "D" большую
   --------     ----------      латинскую





                           - 154 -

                        00152-01 34 02


          редактор E_DT

       Следует обратить внимание, что курсор после выполнения

  команды перемещается на позицию вправо, если  по  умолчанию

  направление действия команд является  положительным  (режим

  "ADVANCE"). Если EDT находится  в  состоянии  "BACKUP",  то

  курсор переместится на позицию влево.



       6.11.3. Функция FILL


       Функция FILL производит заполнение строк в  выделенной

  области до установленного по SET WRAP предела (п.  7.1.14).

  На терминале VDT-52130 эта функция  реализуется  с  помощью

  управляющего символа CTRL/F.

       Пример.

       Допустим, максимальное количество  символов  в  каждой

  строке внутри выделенной области не  должно  превышать  20.

  Функция FILL обеспечивает заполнение строк до  20  символов

  без переноса строк.

       На примере следующего текста покажем результат исполь-

  зования функции FILL:


          ***************************************************
          _при редактировании один из буферов является
          текущим. Обычно в качестве текущего
          используется главный буфер MAIN. Имя
          текущего буфера в командах редактирования
          не задается.
          [EOB]
          ***************************************************

       1) нажать клавишу <GOLD> и <PAGE/COMMAND> для выполне-

  ния команды COMMAND:









                           - 155 -

                        00152-01 34 02


          --------     -----------
          !      !     !  PAGE   !
          ! GOLD !  +  !- - - - -!  Команда:
          !      !     ! COMMAND !
          --------     -----------

       2) набрать с основной клавиатуры команду SET WRAP  20,

  установив при этом максимальную длину строки - 20 символов.

  Затем нажать клавишу <ENTER/SUBS>  для  выполнения  команды

  SET WRAP 20:


                               ----------
                               ! ENTER  !
          команда: SET WRAP 20 !- - - - !
                               !  SUBS  !
                               ----------

       3) выделить область строк,  длина  которых  не  должна

  превышать 20 символов, используя функцию  SELECT.  Перемес-

  тить курсор в конец выделенного диапазона:


          ----------     -------               ---------
          ! SELECT !     !  !  !               !  EOL  !
          !- - - - !  +  !  !  !  (2 раза)  +  !- - - -!
          ! RESET  !     !  V  !               !DEL EOL!
          ----------     -------               ---------


          ***************************************************
          при редактировании один из буферов является
          текущим. Обычно в качестве текущего используется
          главный буфер MAIN. Имя_
          текущего буфера в командах редактирования
          не задается.
          [EOB]
          ***************************************************

       4) ввести управляющий  символ  CTRL/F  для  выполнения

  операции FILL.

          СTRL/F













                           - 156 -

                        00152-01 34 02


          ***************************************************
          при редактировании
          один из буферов
          является текущим.
          обычно в качестве
          текущего
          используется
          главный буфер MAIN.
          имя_
          текущего буфера в командах редактирования
          не задается.
          [EOB]
          ***************************************************
          !                  !
          !<--20 символов -->!


       6.12. Установка интервалов табуляции


       В  подразделе  описаны  способы  установки  интервалов

  табуляции в режиме  функционального  редактирования.  Более

  подробную информацию можно найти в описании  команд  группы

  SET в разделе 7.

       В табл. 9 приведены  управляющие  символы,  с  помощью

  которых производится установка интервалов табуляции.

                                                  Таблица 9

      Управляющие символы установки интервалов табуляции

    -------------------------------------------------------
    Управляющий символ   !          Назначение
    -------------------------------------------------------
       CTRL/A            !  Устанавливает  первую табуляцию
                         !для позиции курсора, кратной пер-
                         !воначальному значению параметра N
                         !в  команде  SET TAB. Если текущая
                         !позиция  курсора  не кратна N, на
                         !экран выдается сообщение об ошиб-
                         !ке
                         !
       CTRL/E            !  Увеличивает установленное  зна-
                         !чение первой табуляции на величи-
                         !ну N (N - параметр SET TAB)
                         !
       CTRL/D            !  Уменьшает установленное  значе-
                         !ние первой  табуляции на величину
                         !N (N - параметр команды SET TAB)
                         !
       CTRL/T            !  Выполняет  операцию  TAB ADJUST
                         !(п.5.2.24) над выборочным  диапа-
                         !зоном строк. Строки  смещаются на



                           - 157 -

                        00152-01 34 02


                                        Продолжение табл. 9
    -------------------------------------------------------
    Управляющий символ   !          Назначение
    -------------------------------------------------------
                         !один интервал вправо, если не за-
                         !дано противоположное  направление
                         !смещения  или  число  повторений.
                         !число повторений для данной функ-
                         !ции задается посредством  нажатия
                         !сначала  клавиши  <GOLD>, а затем
                         !цифровой клавиши на основной кла-
                         !виатуре


       П_р_и_м_е_ч_а_н_и_е.  Вместо  клавиши   (CTRL)   можно

  использовать фукциональную клавишу <GOLD> для ввода следую-

  щих управляющих символов:

        CTRL/A        CTRL/E
        CTRL/D        CTRL/U
        CTRL/Z        CTRL/W
        CTRL/T


       6.13. Управляющие символы CTRL/K и CTRL/C

  CTRL/K

       - позволяет реализовать функцию DEFINE KEY для  наз-

         начения новых функций клавишам функциональной кла-

         виатуры (кроме клавиши <GOLD>) и некоторым  управ-

         ляющим  символам.  Более  подробно  переназначение

         клавиш описано в разделе 8.

  СTRL/C

       - завершает текущую операцию и возвращает  пользова-

         теля на командный уровень.  СTRL/C  не  влияет  на

         процесс  редактирования.  Например,  если  сначала

         была нажата клавиша <GOLD>, а  затем  пользователь

         решил ввести CTRL/C вместо какой-либо другой  кла-

         виши, операция прерывается, и экран остается преж-

         ним. Курсор возврашается на позицию, которую зани-

         мал до момента нажатия  клавиши  <GOLD>,  в  левом




                           - 158 -

                        00152-01 34 02


         нижнем углу экрана появляется сообщение:

          ABORTED BY CTRL/C
          прерывание-CTRL/C


























































                           - 159 -

                        00152-01 34 02


               7. Команды группы "SET" и "SHOW"



       Команды группы "SET" и "SHOW" - это команды строкового

  режима редактирования, которые позволяют  задавать  устано-

  вочные и информационные характеристики строкового и  экран-

  ного  режимов  редактирования.  К  примеру,  команда   SET,

  используя определенный параметр, управляет такой операцион-

  ной характеристикой EDT, как ширина изображаемого на экране

  текста. По команде SHOW можно вывести на экран эту характе-

  ристику.

       Параметры команд "SET" и "SHOW" описаны  в  алфавитном

  порядке в данной главе и сведены в табл. 10.

                                                  Таблица 10

                   Параметры "SET" и "SHOW"

    --------------------------------------------------------
         Параметры           !          Параметры
       команды "SET"         !        команды "SHOW"
    --------------------------------------------------------
             -               !           BUFFER
                             !
    CASE                     !           CASE
                             !
    CURSOR   M:N             !           CURSOR
                             !
    ENTITY                   !           ENTITY
                             !
             -               !           KEY
                             !
    KEYPAD                   !           -
                             !
    LINES число              !           -
                             !
    MODE                     !           -
                             !
    [NO]NUMBERS              !           -
                             !
    [NO]QUIET                !           -
                             !
    SCREEN ширина            !           SCREEN
                             !
    SEARCH                   !           SEARCH
                             !
    TAB N                    !           -
                             !



                           - 160 -

                        00152-01 34 02


                                        Продолжение табл. 10
    --------------------------------------------------------
         Параметры           !          Параметры
       команды "SET"         !        команды "SHOW"
    --------------------------------------------------------
    TERMINAL                 !           TERMINAL
                             !
    [NO]TRUNCATE             !           -
                             !
    [NO]VERIFY               !           -
                             !
             -               !           VERSION
                             !
    [NO]WRAP N               !           -

                                                  

       7.1. Команды группы "SET"


       Команды группы "SET" в строковом режиме функционирова-

  ния EDT определяют некоторые условия редактирования. Каждое

  из этих условий остается в силе до момента выхода из редак-

  тора или до замены его другой командой "SET".



       7.1.1. Команда SET CASE


       По команде SET CASE (UPPER или  LOWER),  EDT  помечает

  выбранные символы предшествующим ему апострофом. Это  обоз-

  начение символов верхнего или нижнего регистра  воспроизво-

  дится на терминале в строковом режиме, но не переносится  в

  выходной файл при выходе из редактора.

       Формат команды

          SET CASE [UPPER:LOWER:NONE]

       Значением EDT по умолчанию для параметра CASE является

  значение NONE, которое не  обозначает  апострофом  ни  один

  символ. Команда SET CASE используется  преимущественно  при

  работе на терминалах с одним типом шрифта.






                           - 161 -

                        00152-01 34 02


       Пример.

       По команде SET CASE UPPER EDT маркирует все  буквенные

  символы верхнего регистра апострофом.

       Для терминала с  малыми  и  большими  буквами  строка,

  обработанная командой, выглядит так:

   команда 'S'E'T 'C'A'S'E ('U'P'P'E'R или 'L'O'W'E'R)...

       Команда SET CASE LOWER маркирует все буквенные символы

  нижнего регистра.

   'к'о'м'а'н'д'а SET (UPPER 'и'л'и LOWER)...



       7.1.2. Команда SET CURSOR M:N


       Команда SET CURSOR M:N устанавливает диапазон строк, в

  пределах которого перемещается курсор по экрану, не изменяя

  последнего. Если курсор выходит за верхний предел  установ-

  ленного диапазона, экран  обновляется  таким  образом,  что

  последняя строка на экране (22-я  строка)  исчезает,  текст

  смещается на одну строку вниз с выводом на экран  из  файла

  строки, предшествующей самой  верхней  (нулевой  строки  на

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

  предел установленного диапазона происходит смещение  текста

  по экрану в обратном направлении, т.е. снизу вверх. Исполь-

  зование параметра CURSOR M:N в "SET" приемлемо  только  для

  экранных терминалов  при  работе  в  символьном  (экранном)

  режиме редактирования.

       Формат команды

          SET CURSOR M:N

       Параметры команды

  М

       - количество строк для верхнего предела;



                           - 162 -

                        00152-01 34 02


  N

       - количество строк для нижнего предела.

       Отсчет М и N ведется с верхней нулевой строки на экра-

  не терминала. При достижении одного из пределов EDT  перед-

  вигает текст таким образом, чтобы пользователь имел  доступ

  к нужной ему строке. Допускаемые пределы для М и N -  целые

  числа от 0 до 21. Значениями по умолчанию  для  SET  CURSOR

  является М=7, N=14.


       Пример.

          *SET CURSOR 6:8


   **********************************************************
   _строка 0
   строка 1
   строка 2
   строка 3
   строка 4
   строка 5
   строка 6 верхний предел области перемещения курсора
   строка 7 строка из области перемещения курсора
   строка 8 нижний предел области перемещения курсора
                     .
                     .
                     .
   **********************************************************

       Седьмая строка, начиная со строки 0,  установлена  как

  первая строка в редактируемой области, а  девятая  является

  последней в редактируемой области. Если курсор  переместить

  за пределы этих строк, то EDT будет передвигать изображение

  либо вверх, либо вниз, до тех пор, пока  нужная  строка  не

  окажется в области перемещения курсора.



       7.1.3. Команда SET ENTITY


       Команда SET ENTITY устанавливает ограничители  элемен-

  тов текста, используемых в экранном  режиме  редактирования




                           - 163 -

                        00152-01 34 02


  (режим 2). Каждый из элементов (WORD, SENTENCE,  PARAGRAPH,

  PAGE) определяется строкой символов.

       Формат команды

          SET ENTITY [WORD!SENTENCE!PARAGRAPH!PAGE]'CTPOKA'

       Параметры команды

  строка

       - один или несколько символов ограничения. Для  эле-

         ментов WORD и SENTENCE каждый  символ  в  заданной

         строке может  быть  ограничителем.  Для  элементов

         PARAGRAPH и PAGE ограничителем является сама стро-

         ка.

       Значениями по умолчанию  для  ограничителей  элементов

  текста является:


          WORD         <LF> или <TAB>
                       или <FF> или <CR> или пробел
          SENTENCE     <.> или <!>
          PARAGRAPH    <CR> <CR>
          PAGE         <FF>

        Пример.

          ***************************************************
          *SET ENTITY WORD ' '','<CR>
          *SET ENTITY SENTENCE ','<CR>
          *CHANGE <CR>
          ***************************************************

       Ограничителями для WORD установлены: пробел или  запя-

  тая ",". Все  команды,  использующие  в  качестве  элемента

  текста - слово, действуют до ограничителя.  Если  ограничи-

  тель - пробел стоит справа, то он  включается  в  операцию,

  если пробел стоит слева, то он не  включается  в  операцию.

  Все другие ограничители слова рассматриваются как отдельные

  слова.

       Ограничителем для SENTENCE установлен символ ";".  Все

  команды,  использующие  предложение  в  качестве  элемента,




                           - 164 -

                        00152-01 34 02


  действуют до этого ограничителя. Данный ограничитель широко

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



       7.1.4. Команда SET KEYPAD


       Формат команды

          SET [KEYPAD!NOKEYPAD]

       Установка параметров KEYPAD или  NOKEYPAD  зависит  от

  выбранного пользователем экранного  режима  редактирования.

  SET NOKEYPAD соответствует режиму 2 ( раздел 5). SET KEYPAD

  соответствует режиму 3 ( раздел 6). Параметр KEYPAD являет-

  ся значением по умолчанию для данной команды  применительно

  к терминалам с функциональной клавиатурой.



       7.1.5. Команда SET LINES N


       Команда SET LINES N  устанавливает  количество  строк,

  выводимых редактором на экран в символьных (экранных) режи-

  мах редактирования.

       Формат команды

          SET LINES N

       Параметры команды

  N

       - количество строк в пределах от 1 до 22.

       Значение по умолчанию для параметра LINES N - N=22.

       Пример.

          *SET LINES 8 <CR>
          *CHANGE <CR>

       EDT воспроизводит 8 строк в верхней части экрана.






                           - 165 -

                        00152-01 34 02


       7.1.6. Команда SET MODE


       Команда SET MODE задается в стартовом командном  файле

  для запуска необходимого режима редактирования.

       Формат команды

          *SET MODE [LINE!CHANGE]

       При задании параметра MODE CHANGE EDT начинает процесс

  в экранном режиме редактирования. В этом случае нет необхо-

  димости в использовании команды CHANGE. Параметр MODE  LINE

  вызывает  строковый  режим  редактирования.  По   умолчанию

  редактор находится в строковом режиме.



       7.1.7. Команда SET [NO]NUMBERS


       Команда  SET  [NO]NUMBERS  управляет  выводом  номеров

  строк на экран в строковом режиме редактирования.

       Формат команды

          SET [NUMBERS!NONUMBERS]

       Параметр NUMBERS разрешает вывод номеров строк в левой

  части экрана. Эта установка является умолчанием для строко-

  вого режима редактирования.

       Параметр NONUMBERS отменяет вывод строк на экран.



       7.1.8. Команда SET [NO]QUIET


       Команда SET [NO]QUIET подавляет звуковой сигнал,  воз-

  никающий при ошибке в экранном режиме редактирования.

       Формат команды

          SET [QUIET:NOQUIET]





                           - 166 -

                        00152-01 34 02


       Значением по умолчанию  для  данной  команды  является

  параметр - NOQUIET.



       7.1.9. Команда SET SCREEN L


       Команда SCREEN L управляет максимальной длиной строки,

  выводимой редактором на экран.

       Формат команды

          SET SCREEN L

   где  L - длина строки в пределах от 0 до 255 символов.

       Если в экранном режиме пользователь введет больше сим-

  волов, чем допускает установленная длина строки, EDT  изоб-

  разит на экране терминала прямоугольник. В строковом режиме

  редактирования  EDT  воспроизводит  превышающее  количество

  символов на последующих строках. Значением по умолчанию для

  этого параметра является 80 символов.


       Пример.

          ***************************************************
                  .
                  .
                  .
          программа EDT представляет собой
          текстовый редактор, поддерживаемый различными
          (CTRL/Z)
          *SET SCREEN 40 <CR>
          *CHANGE <CR>
          ***************************************************


          ***************************************************
                  .
                  .
                  .
          программа EDT представляет собой
          текстовый редактор, поддерживаемый разли#
          ***************************************************

       В первой части примера по  умолчанию  для  SET  SCREEN

  установлено 80 символов в строке и  превышение  предела  не




                           - 167 -

                        00152-01 34 02


  наблюдается. После  установки  максимальной  длины  строки,

  равной 40, во второй строке примера появившейся прямоуголь-

  ник указывает на то, что строка содержит более 40 символов.



       7.1.10. Команда SET SEARCH


       Команда SET SEARCH устанавливает параметры для  поиска

  строки в режиме символьного редактирования (режим 2).

       1. SET SEARCH ехаст

       По команде SET SEARCH ехаст EDT ведет  поиск  заданных

  символов для точных сравнений малых и больших букв.

       Формат команды

          SET SEARCH [GENERA!EXACT]

       Значением по умолчанию для  этого  параметра  является

  GENERAL. ЕDT в этом  случае  игнорирует  различие  малых  и

  больших букв.



       П_р_и_м_е_ч_а_н_и_е. При работе с текстом,  содержащим

  большие или малые русские буквы (в случае 8-битового  коди-

  рования) необходимо указание команды:

       SET SEARCH ехаст

       2. SET SEARCH BOUNDED

       По команде SET SEARCH BOUNDED  редактор  останавливает

  поиск заданной строки на маркере следующей страницы. (стра-

  ница - элемент текста, см. подраздел 5.1).

       Формат команды

          SET SEARCH [BOUNDED!UNBOUNDED]

       По умолчанию или, указав значение UNBOUNDED, EDT ведет

  поиск в пределах целого буфера.





                           - 168 -

                        00152-01 34 02


       3. SET SEARCH END

       Выполнив команду SET SEARCH END, EDT оставляет  курсор

  в конце найденной строки.

       Формат команды

          SET SEARCH [BEGIN!END]

       Значением по умолчанию для  этого  параметра  является

  BEGIN, который оставляет курсор в начале строки. Если стро-

  ка не найдена, позиция курсора остается неизменной.


       Пример.

          ***************************************************
                  .
                  .
                  .
          *SET SEARCH ехаст <CR>
          *SET SEARCH BOUNDED <CR>
          *SET SEARCH END <CR>
          *TYPE 'TERMINAL "электроника"' <CR>
          ***************************************************

       EDT ведет поиск первого появления фрагмента  "TERMINAL

  "электроника"" в текущем текстовом буфере, начиная от теку-

  щей позиции курсора до маркера следующей  страницы.  Первое

  слово в данном фрагменте должно  быть  напечатано  большими

  буквами (английскими), второе - малыми буквами  (русскими).

  Когда строка найдена, EDT устанавливает курсор на  символе,

  следующем за этим словом.



       7.1.11. Команда SET TAB N


       Команда SET TAB N  устанавливает  количество  пробелов

  для позиции первой табуляции в экранном режиме редактирова-

  ния с использованием функциональной клавиатуры (режим 3).








                           - 169 -

                        00152-01 34 02


       Формат команды

          SET [TAB N:NOTAB]

   где  N - уровень смещения.

       Остальные позиции табуляции  для  терминалов  остаются

  неизменными (множества из 8 пробелов). Значение установлен-

  ной первой табуляции можно увеличить или уменьшить на вели-

  чину N, задаваемую в SET  TAB.  Увеличение  первоначального

  смещения осуществляется посредством использования  комбина-

  ции  GOLD/E.  Уменьшение  -  с  помощью  комбинации  клавиш

  GOLD/D. При этом уровень смещения равен  1,  т.е.  при  N=3

  (курсор после первого нажатия <TAB> - на позиции 4-го  сим-

  вола). Увеличение первой табуляции с помощью GOLD/E  приво-

  дит к смещению курсора после первого  нажатия  <TAB>  на  6

  символов.

       Если курсор находится на N-й позиции (кратной первона-

  чальному значению N в SET  TAB),  можно  установить  первую

  табуляцию для этой позиции посредством GOLD/A.

       Установка табуляции применима также к диапазону строк.

  В этом случае все строки внутри  заданного  диапазона  сме-

  щаются на определенную величину пробелов. Начало  диапазона

  определяется функцией  SELECT  символьного  редактирования.

  Затем курсор необходимо переместить в конец диапазона строк

  и ввести комбинацию GOLD/T с предшествующей функцией "GOLD"

  и  определением  направления  "+"  или  "-".  В  результате

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

  щается согласно значению N в SET TAB и  с  учетом  "+"  или

  "-".

       Пример 1.

       Пример демонстрирует результат выполнения команды  SET

  TAB N при установке табуляции.



                           - 170 -

                        00152-01 34 02


          ***************************************************
          первая строка в текстовом буфере.
          следующая строка в текстовом буфере.
          последняя строка в буфере.
          (CTRL/Z)
          *SET TAB 5 <CR>
          *CHANGE
          ***************************************************


          ***************************************************
          первая строка в текстовом буфере.
          <TAB>следующая строка в текстовом буфере.
          !-5-!
          <TAB><TAB><TAB> _последняя строка в буфере.
          !<-----16----->!
          ***************************************************

       CTRL/Z возвращает EDT в строковый  режим  редактирова-

  ния. Команда SET TAB 5 устанавлиивает первую  табуляцию  со

  смещением в 5 позиций. По команде CHANGE  EDT  переходит  в

  режим 3. Курсор перемещается в начало  второй  строки.  При

  нажатии <TAB> EDT сместит строку на 5 позиций (значение SET

  TAB). Переместив курсор в начало последней строки  и  нажав

  клавишу <TAB>  три  раза,  пользователь  добьется  смещения

  строки на 16 позиций. При этом  курсор  переместится  на  5

  позиций в результате  первого  использования  <TAB>,  на  3

  позиции - в результате второго нажатия <TAB>, на 8  позиций

  - в  третий  раз  (значением  по  умолчанию  для  табуляции

  является 8 пробелов).

       Пример 2.

       Пример показывает результат от увеличения и уменьшения

  первой  табуляции  посредством   использования   комбинаций

  GOLD/E и GOLD/D.


          ***************************************************
                  .
                  .
                  .
          (CTRL/Z)
          *SET TAB 13 <CR>
          *CHANGE <CR>
          ***************************************************



                           - 171 -

                        00152-01 34 02




   **********************************************************
   первая строка.
   вторая строка.
   третья строка.
   (TAB)        смещение от левой границы на 12 позиций<CR>
   (GOLD/E)(TAB)             смещение на 26 пробелов<CR>
   (GOLD/D)(TAB)обратное смещение на 12 пробелов<CR>
   **********************************************************

       Команда SET TAB 13 устанавливает первую табуляцию - 13

  позиций для режима  3,  уровень  смещения  при  этом  -  1.

  Остальные позиции табуляций  остаются  для  строки  равными

  значению по умолчанию, т.е. каждое нажатие (TAB) соответст-

  вует смещению на 8 позиций от левой границы экрана.  Комби-

  нация GOLD/E увеличивает уровень смещения, до 2.  Использо-

  вание (TAB) приводит к смещению строки на 26 позиций. (зна-

  чение "SET TAB", умноженное  на  уровень  смещения).  После

  добавления строки, смещенной на 26 позиций, и ввода  комби-

  нации GOLD/D и (TAB) уровень смещения уменьшится на 1. Сме-

  щение для начала следующей  строки  установится  равным  13

  пробелам.

       Пример 3.

       Пример  показывает,  как  использовать  функциональные

  клавиши <SELECT> и <GOLD/T> для смещения выбранного  диапа-

  зона строк.

          *SET TAB 4 <CR>
          *CHANGE <CR>


          ***************************************************
          <SELECT>
          первая строка.
          вторая строка.
          четвертая строка.
          (GOLD/T)
          ***************************************************








                           - 172 -

                        00152-01 34 02


          ***************************************************
              первая строка.
              вторая строка.
              третья строка.
              четвертая строка.
          _
          ***************************************************

       Команда SET TAB 4 устанавливает первую табуляцию на  4

  позиции. Команда CHANGE переводит редактор в режим  3.  ЕDT

  воспризводит содержимое текстового буфера. Установив курсор

  на начало  диапазона  строк,  подлежащих  обработке,  нужно

  нажать клавишу <SELECT>. Далее курсор перемещается в другой

  конец диапазона и после нажатия <GOLD/T>, EDT смещает  выб-

  ранный диапазон  на  4  позиции.  Оставшаяся  часть  буфера

  остается  неизменной.  Если  задать   <GOLD/3>,   а   затем

  <GOLD/T>, строки сдвинутся на 12 позиций (значение SET TAB,

  умноженное на 3).

       Пример 4.

       Пример демонстрирует  использование  клавиши  <GOLD/A>

  для установления уровня смещения и для последующих смещений

  первой табуляции.

          *SET TAB 5 <CR>
          *CHANGE <CR>


          ***************************************************
          певая строка.
          вторая строка.
          третья строка.
          (переместить курсор на 25 пOзиций)<GOLD/A>
          (TAB)               смещение на 25 пробелов.<CR>
          <GOLD/D>(TAB)       смещение на 20 пробелов.
          [EOB]
          ***************************************************

       Первая табуляция установлена по команде SET TAB  на  5

  позиций. В режиме 3 последняя строка смещается на 25  пози-

  ций (число пробелов кратно значению N в SET TAB). В резуль-

  тате ввода GOLD/A первая табуляция установится на 25  пози-

  ций, уровень смещения  при  этом  (25/5=5).  Увеличить  или



                           - 173 -

                        00152-01 34 02


  уменьшить уровень смещения можно, используя  соответственно

  комбинацию клавиш <GOLD/E> и  <GOLD/D>  (каждое  уменьшение

  или увеличение = 5 позициям).



       7.1.12. Команда SET [NO]TRUNCATE


       Команда SET TRUNCATE подавляет  воспроизведение  части

  строки, превышающей максимально-допустимую величину,  кото-

  рая установлена по команде SET SCREEN.

       Формат команды

          SET [TRUNCATE!NOTRUNCATE]

       По умолчанию выполняется  команда  SET  TRUNCATE.  При

  использовании команды SET NOTRUNCATE вводимый текст, превы-

  шающий значение L в SET SCREEN, воспроизводится  на  после-

  дующих строках.


       Пример.

          ***************************************************
          строка, превышающая ограничение - 40 символов <CR>
                  .
                  .
                  .
          (CTRL/Z)
          *SET SCREEN 40 <CR>
          *CHANGE <CR>
          ***************************************************


          ***************************************************
          строка, превышающая ограничение - 40 сим#
                  .
                  .
                  .
          (CTRL/Z)
          *SET NOTRUNCATE <CR>
          *CHANGE <CR>
          ***************************************************









                           - 174 -

                        00152-01 34 02


          ***************************************************
          строка, превышающая ограничение - 40 сим
          #волов.
                  .
                  .
                  .
          ***************************************************

       На первом изображенном в примере экране  длина  строки

  установлена равной 40 символам.  Команда  CHANGE  переводит

  EDT в экранный режим 2.  Если  введенная  строка  превышает

  установленную длину, то EDT выводит  на  экран  максимально

  допустимое количество символов и завершает строку  символом

  "#" (прямоугольник). Символ "#" означает, что в строке есть

  дополнительные символы, которые EDT не изображает.

       СTRL/Z возвращает пользователя в строковый режим. Пос-

  ле ввода команд SET NOTRUNCATE и CHANGE избыточные символы,

  превышающие ограничение по длине строки -  40,  воспроизво-

  дятся на следующей строке. Символ "#" означает, что  данная

  строка является продолжением предыдущей строки.



       7.1.13. Команда SET [NO]VERIFY


       При задании параметра VERIFY в группе SET  команды  из

  командных файлов и макрокоманд распечатываются  в  процессе

  их выполнения.

       Формат команды

          SET [VERIFY!NOVERIFY]

       Значением по умолчанию для этой команды является пара-

  метр - NOVERIFY, запрещающий распечатку содержимого команд-

  ных файлов и макрокоманд.









                           - 175 -

                        00152-01 34 02


       7.1.14. Команда SET [NO]WRAP N


       Команда SET  WRAP  N  устанавливает  предельную  длину

  строки в N символьных позиций.

       Формат команды

          SET [WRAP N!NOWRAP]

       Команда SET WRAP используется в 2-х случаях:

       1) когда пользователь вводит текст в  экранном  режиме

  2, и позиция курсора превышает значение  N,  EDT  переводит

  полное слово (не отделяя символы, вышедшие за предел  огра-

  ничения) на следующую строку. Если в данной цепочке  симво-

  лов нет пробелов, длина строки может быть любой, вплоть  до

  255 символов. Если текст включается в середину строки,  она

  может быть расширена за границу правого поля без переноса;

       2) в случае использования команды FILL, SET WRAP уста-

  навливает правое поле для заполнения. ЕDT заполняет  каждую

  строку в диапазоне до ограничителя слова, ближайшего к пре-

  делу N.

       Значением по умолчанию  для  данной  команды  является

  параметр NOWRAP.

       Пример.

          *SET WRAP 30 <CR>
          *CHANGE <CR>


          ***************************************************
          строка, содержащая 30 символов
          строка, содержащая больше 30
          символов._
          ***************************************************

       EDT устанавливает границу для правого поля экрана рав-

  ной 30 символам. Если в конце первой строки поставить точку

  "." (после слова "символов"), EDT воспроизведет слово "сим-

  волов" и точку на следующей строке. Вторая строка превышает



                           - 176 -

                        00152-01 34 02


  установленный предел в 30 символов как раз в слове  "симво-

  лов", поэтому EDT переносит это слово  в  начало  следующей

  строки.



       7.2. Команды группы SHOW


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

  режима  редактирования.  Используя  определенный   параметр

  пользователь может вывести на экран  информацию  о  текущем

  состоянии редактора.



       7.2.1. Команда SHOW BUFFER


       Команда SHOW BUFFER  распечатывает  на  экране  список

  буферов, используемых  в  данном  сеансе  редактирования  и

  количество строк текста в каждом из буферов.

       Формат команды

          SHOW BUFFER

       Буферы MAIN и PASTE являются обязательными и выводятся

  на экран в результате выполнения команды SET  BUFFER  даже,

  если они пустые. ЕDT маркирует имя текущего  буфера  знаком

  равенства.   Если   после   подсчета    строк    появляется

  символ-звездочка "*", значит во входном файле есть еще нес-

  колько строк, которые не считываются  редактором  в  буфер.

  Таким  образом,  приведенное  количество  строк  не  всегда

  является точным.





                               [6~





                           - 177 -

                        00152-01 34 02


       Пример.

          ***************************************************
                  .
                  .
                  .
          *SHOW BUFFER <CR>
          =MAIN   197*  стр.
           PASTE  0     стр.      6~
           MACRO  24    стр.
          *_
          ***************************************************

       EDT выводит список имен всех текстовых буферов,  кото-

  рые используются в данном сеансе редактирования. Буфер MAIN

  - текущий текстовый буфер.



       7.2.2. Команда SHOW CASE


       По команде SHOW CASE можно получить информацию о теку-

  щем формате букв (малые, большие).

       Формат команды

          SHOW CASE

       Параметр CASE определяется командой SET CASE.



       7.2.3. Команда SHOW CURSOR


       Команда SHOW CURSOR показывает  текущий  диапазон,  по

  которому перемещается курсор по экрану.

       Формат команды

          SHOW CURSOR

       Параметр CURSOR определяется командой SET CURSOR.



       7.2.4. Команда SHOW ENTITY


       По команде SHOW ENTITY выводится текущая установка для




                           - 178 -

                        00152-01 34 02


  заданного  элемента  текста  (WORD,  SENTENCE,   PARAGRAPH,

  PAGE).

       Формат команды

          SHOW ENTITY [WORD!SENTENCE!PAGE!PARAGRAPH]

       Ограничители  элементов  определяются   командой   SET

  ENTITY.



       7.2.5. Команда SHOW KEY


       Команда SHOW KEY дает справку  о  назначении  функцио-

  нальной клавиши в экранном режиме редактирования.

       Формат команды

       SHOW KEY [[GOLD][HOMEP!CONTROL буква]!GOLD символ]]

       Пользователь  может  изменить  назначение  клавиши   с

  помощью команды DEFINE KEY.


       Пример.

          ***************************************************
                     .
                     .
                     .
          *SHOW KEY 5 <CR>
           BACK.
          *_
          ***************************************************

       Допустим редактор  находится  в  строковом  режиме.  В

  результате ввода команды SHOW KEY и номера клавиши  (номера

  клавиш  функциональной  клавиатуры  показаны  на  рис.  2).

  Редактор изображает текущее  командное  значение  для  этой

  клавиши.











                           - 179 -

                        00152-01 34 02


       7.2.6. Команда SHOW SCREEN


       Команда SHOW SCREEN дает справку о максимальной  длине

  строки, выводимой EDT на экран.

       Формат команды

          SHOW SCREEN

       Параметр SCREEN определяется командой SET SCREEN.



       7.2.7. Команда SHOW SEARCH


       По команде SHOW SEARCH  выводятся  параметры  текущего

  поиска.

       Формат команды

          SHOW SEARCH

       Параметр SEARCH определяется командой SET SEARCH.



       7.2.8. Команда SHOW TERMINAL


       По команде SHOW TERMINAL распечатывается выбранный для

  работы тип терминала.

       Формат команды

          SHOW TERMINAL



       7.2.9. Команда SHOW VERSION


       По команде SHOW VERSION можно получить справку о номе-

  ре версии редактора EDT.

       Формат команды

          SHOW VERSION





                           - 180 -

                        00152-01 34 02


              8. Переопределение функций клавиш



       Каждая из клавиш функциональной клавиатуры и некоторые

  управляющие символы имеют соответствующую им цепочку симво-

  лов, которая определяет функции этой клавиши. Цепочка  сос-

  тоит из команд экранного режима редактирования  (режим  2).

  Например, функция BACKUP на функциональной клавиатуре  опи-

  сана цепочкой BACK., которая представляет команду режима 2.

       При переназначении  клавиш  необходимо  придерживаться

  следующих правил:

       1) строка может содержать несколько команд;

       2) если цепочка символов, определяющая команду  назна-

  чения, заканчивается точкой ".", то она  выполняется  сразу

  же после нажатия клавиши, соответствующей этой цепочке;

       3) если цепочка символов, определяющая команду  назна-

  чения, не заканчивается точкой ".",  то  EDT  хранит  ее  в

  буфере до тех пор, пока не будет задана  команда,  заканчи-

  вающаяся точкой ".";

       4) командная  строка  может  содержать  вопросительный

  знак  "?".  Если  после   вопросительного   знака   следует

  какое-либо сообщение, заключенное в одинарные  или  двойные

  кавычки, то EDT трактует это сообщение  как  подсказку  для

  ввода необходимых данных. Полная цепочка, включая знак (?),

  заключается также в одинарные или двойные кавычки.

       Например, цепочка "?'что искать?'." вызывает появление

  следующей подсказки:

          что искать?

       Пользователь может ввести до 64 символов  в  ответ  на

  подсказку.




                           - 181 -

                        00152-01 34 02


       8.1. Команда DEFINE KEY


       Команда DEFINE KEY  строкового  режима  редактирования

  позволяет переназначить функции клавиш функциональной  кла-

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

       Формат команды

  DEFINE KEY([GOLD](HOMEP!CONTROL буква)
                                      !GOLD символ)AS'CTPOKA'

       Формат данной команды позволяет  выбрать  клавиши  для

  назначения функций. В круглые скобки "( )" заключены описа-

  ния этих клавиш. Символ ":" (или) выделяет выбор  пользова-

  теля. Квадратные скобки "[ ]" показывают, где нужно исполь-

  зовать <GOLD> для назначения альтернативной функции клавиши

  функциональной клавиатуры или управляющего символа.

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

  номер

       - номер выбранной клавиши функциональной  клавиатуры

         (см. рис. 2);

  CONTROL буква

       - описание управляющих  символов.  Сначала  задается

         CONTROL, потом любой алфавитный символ на основной

         клавиатуре от "А" до "Z";

  GOLD

       - клавиша  <GOLD>  функциональной  клавиатуры,  пос-

         редством которой осуществляется доступ к альтерна-

         тивным функциям клавиш функциональной клавиатуры и

         управляющих символов;

  GOLD символ

       - описание клавиш основной  алфавитно-цифровой  кла-

         виатуры. Пользователь печатает GOLD и спецификацию




                           - 182 -

                        00152-01 34 02


         любой клавиши за исключением (0-9), (!), (%), ('),

         ("), также  можно  переназначить  клавишу  DELETE,

         используя резервное слово DELETE;

  'строка'

       - одна или  несколько  команд  экранного  режима  2,

         которые используются при переназначении клавиш.

       Например, чтобы определить стандартную функцию клавиши

  функциональной клавиатуры, нужно ввести номер клавиши. Что-

  бы определить альтернативную функцию для  клавиши  функцио-

  нальной клавиатуры, нужно ввести GOLD, а затем номер нужной

  клавиши.

       Пример 1.

       В примере используется команда DEFINE KEY для  опреде-

  ления команды, не заканчивающейся точкой.

   **********************************************************
   *INSERT
           _программа EDT представляет собой <CR>
           текстовый PEдAKTOP,<CR>
           поддерживаемый различными <CR>
           операционными CиCTEMAMи.<CR>
           (CTRL/Z)
   *
   [EOB]
   **********************************************************

       Курсор установлен на слове "программа". Допустим поль-

  зователь хочет назначить функцию DELETE клавише  <7>  функ-

  циональной клавиатуры. Для этого необходимо ввести:

          *DEFINE KEY 7 AS "+D" <CR>
          *CHANGE <CR>

       т.к. командная строка не заканчивается точкой ".",  то

  для выполнения этой команды, достаточно в режиме 3  опреде-

  лить элемент текста путем нажатия сначала  клавиши  <7>,  а

  затем функциональной клавиши WORD.  Результатом  выполнения

  этой операции является удаление одного слова.





                           - 183 -

                        00152-01 34 02


          ------------         -------------
          !    D     !         !   WORD    !
          !- - - - - !    +    !- - - - - -!
          ! COMMAND  !         ! CHNGCASE  !
          ------------         -------------


          ***************************************************
          _EDT представляет собой
          текстовый редактор,
          поддерживаемый различными
          операционными системами.

          [EOB]
          ***************************************************

       Также, возможно использование переназначенной  клавиши

  с другим элементом текста, например, LINE.

   -----------   -------------   -----------   -------------
   !    D    !   !    LINE   !   !    D    !   !   LINE    !
   !- - - - -! + !- - - - - -! + !- - - - -! + !- - - - - -!
   ! COMMAND !   ! OPEN LINE !   ! COMMAND !   ! OPEN LINE !
   -----------   -------------   -----------   -------------

       В этом случае удаляются две строки:

          ***************************************************
                  .
                  .
                  .
           _поддерживаемый различными
           операционными системами.

           [EOB]
          ***************************************************

       Пример 2.

       В этом примере показано переназначение  альтернативной

  функции клавиши <1>. Строка, заключенная в кавычки, с  обя-

  зательным символом "?" является подсказкой для  ввода  дан-

  ных. Сообщение 'команда режима 2': появляется в левом  ниж-

  нем углу экрана.

   *DEFINE KEY GOLD 1 AS "?'команда режима 2:'."<CR>
   *CHANGE <CR>

       Далее следует нажать клавишу <GOLD> и клавишу <1>  для

  получения результата.






                           - 184 -

                        00152-01 34 02


          Команда режима 2:

       в ответ на подсказку вводится команда режима 2,  кото-

  рая выполняется в процессе функционального редактирования.



       8.1.1. Управляющий символ CTRL/K


       В режиме 3 переопределение  функций  клавиш  осуществ-

  ляется посредством CTRL/K.  При  использовании  CTRL/K  EDT

  выводит сообщение:

          PRESS тне KEY YOU WISH то DEFINE
          нажмите клавишу для определения

       Далее нужно нажать выбранную клавишу. ЕDT реагирует на

  это так:

          NOW ENTER тне DEFINITION TERMINATED BY ENTER
          введите определение. Нажмите клавишу <ENTER>

       Назначение какой-либо функции можно произвести,  введя

  команды режима 2, либо,  используя  клавиши  функциональной

  клавиатуры. Команда SHOW KEY  (п.7.2.5)  выводит  на  экран

  диаграмму функций клавиш.

       Для  корректировки  ошибок,  допущенных   при   наборе

  командной строки, используется клавиша  (DEL).  Для  отмены

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

  ция CTRL/U. Однако отменить команду после  нажатия  клавиши

  <ENTER> нельзя.

       Присвоить определенные функции можно также и управляю-

  щим символам. Если нажать клавишу <УС> и какой-либо буквен-

  ный символ, то знак "^" и управляющий символ будут включены

  в командную строку. Например, CTRL/Z вводится как ^Z.

       Определенные символы, такие как <CR> и <LF> генерируют

  следующие комбинации: <CR> - ^м, <LF> - ^J.





                           - 185 -

                        00152-01 34 02


       Пример 1.

       Пользователь  часто   допускает   при   вводе   текста

  какие-либо ошибки. Для исправления этих ошибок  вручную  он

  удаляет первый символ, перемещает курсор  на  одну  позицию

  вперед и восстанавливает удаленный символ. При  обнаружении

  еще  одной  опечатки  пользователь  решает  воспользоваться

  функцией "DEFINE KEY", чтобы осуществить операцию исправле-

  ния автоматически.

       Строка, в которой обнаружена опечатка:

          EDT функциноирует в 3-х режимах.


          СTRL/K


          нажмите клавишу для определения

          ----------   -----
          !  GOLD  ! + ! 5 !
          ----------   -----


          введите определение. Нажмите клавишу <ENTER>


  ---------   ------   ------   ---------   -----   ---------
  ! DEL С !   !    !   !    !   ! DEL С !   !   !   ! ENTER !
  !- - - -! + !--->! + !GOLD! + !- - - -! + ! . ! + !- - - -!
  ! UND С !   !    !   !    !   ! UND С !   !   !   ! SUBS  !
  ---------   ------   ------   --------    -----   ---------

       Значения для этих клавиш  появляются  в  нижней  части

  экрана. Завершающая строка D+C+CUND DC. Исчезает  с  экрана

  после нажатия клавиши <ENTER>.

       После выполнения всех процедур, приведенных выше, кур-

  сор перемещается к символу "Н" в  слове  "функционирует"  и

  нажимаетя <GOLD/5>. В результате символы "Н"  и  "О"  поме-

  няются местами.

       Пример 2.

       Пример демонстрирует, как использовать функцию  назна-

  чения для включения в текст наиболее  употребляемого  слова



                           - 186 -

                        00152-01 34 02


  или фразы.

          (CTRL/K)


          нажмите клавишу для определения


          --------   -----
          ! GOLD ! + ! О !
          --------   -----



          введите определение. Нажмите клавишу <ENTER>



                                     ---------
                                     ! ENTER !
          программа (CTRL/Z) + (.) + !- - - -!
                                     ! SUBS  !
                                     ---------

       Завершающая строка - программа ^Z., где (CTRL/Z) восп-

  роизводится как ^Z.

       Слово "программа" вставляется в  текст  путем  нажатия

  клавиши <GOLD/O>.

       Пример 3.

       Пример демонстрирует,  каким  образом  присвоить  двум

  клавишам функцию многократных замен строк в  функциональном

  режиме редактирования. В данном  случае  используется  знак

  вопроса "?" в качестве подсказки  для  двух  строк,  строки

  поиска заданного фрагмента и строки замены.  Одной  клавише

  присваивается функция поиска  и  замены  первого  появления

  заменяемого фрагмента текста.  Посредством  другой  клавиши

  можно произвести замену в следующей строке с заданным фраг-

  ментом.

          (CTRL/K)


          нажмите клавишу для определения


          (CTRL/F)



                           - 187 -

                        00152-01 34 02




          введите определение. Нажмите клавишу <ENTER>


                                     ---------
                                     ! ENTER !
           S/?'SUBS: '/?' WITH: '/"" !- - - -!
                                     ! SUBS  !
                                     ---------


          CTRL/K


          нажмите клавишу для определения


          CTRL/R


          введите определение. Нажмите клавишу <ENTER>


                   ---------
                   ! ENTER !
           SN "".  !- - - -!
                   ! SUBS  !
                   ---------

       Первое назначение - команда замены. ЕDT  выдает  подс-

  казку для двух строк после нажатия (CTRL/F).  Пара  двойных

  кавычек в конце командной сроки ставится для поиска следую-

  щего появления заданного фрагмента.

       Второе назначение - команда следующей замены.



       8.1.2. Счетчик повторений


       Если клавише назначается несколько команд,  последова-

  тельность которых необходимо выполнить N-E количество  раз,

  то в этом случае целесообразно использовать счетчик  повто-

  рений, который реализуется  следующим  образом.  Последова-

  тельность команд заключается в круглые скобки, перед  кото-

  рыми указывается число повторений. ЕDT выполняет последова-

  тельность команд заданное количество раз после нажатия наз-



                           - 188 -

                        00152-01 34 02


  наченной клавиши.

       Пример.

          +L I*^Z.

       Функция, определенная для клавиши, заключается в  том,

  что курсор переместится в начало строки и на  этой  позиции

  вставится знак - звездочка  "*".  Предположим  теперь,  что

  счетчик повторений равен 10,  т.е.  знак  "*"  должен  быть

  включен в начало следующих  десяти  строк.  Если  командная

  строка выглядит так:

          10 + L I* ^Z.

       (10 относится только к команде +L), то EDT  переместит

  курсор вперед на 10 строк и вставит символ "*".

       Для выполнения поставленной  задачи  командную  строку

  нужно изменить на :

          10 (+L I*^Z).

       В этом случае счетчик повторений, равный 10, находится

  перед левой скобкой, и вся строка,  заключенная  в  скобки,

  выполняется 10 раз. Пользователь получит  желаемый  резуль-

  тат.

























                           - 189 -

                        00152-01 34 02


                                                 Приложение 1





                   Функциональная клавиатура




       В данном приложении на рис. 2, рис. 3 и рис. 4  предс-

  тавлены диаграммы функциональных  клавиатур  для  различных

  типов терминалов. На диаграмме показано расположение  функ-

  циональных клавиш и соответствующие им функции режима функ-

  ционального редактирования.









































                           - 190 -

                        00152-01 34 02


      Функциональная клавиатура терминала MERA 7948 (ПНР)




   +----+        +---------+---------+---------+---------+
   !    !        !/////////!/////////!/////////!    А    !
   ! BS !        !/////////!/////////!/////////!    !    !
   !    !        !/////////!/////////!/////////!    !    !
   +----+        +---------+---------+---------+---------+
                 !         !         !         !    !    !
                 !    7    !    8    !    9    !    !    !
                 !         !         !         !    V    !
   +----+ +---+  +---------+---------+---------+---------+
   !    ! !   !  !         !         !         !         !
   ! LF ! !DEL!  !    4    !    5    !    6    ! ------> !
   !    ! !   !  !         !         !         !         !
   +----+ +---+  +---------+---------+---------+---------+
                 !         !         !         !         !
                 !    1    !    2    !    3    ! <------ !
                 !         !         !         !         !
                 +---------+---------+---------+---------+
                 !                   !         !  \      !
                 !         0         !    .    !    \    !
                 !                   !         !      \  !
                 +-------------------+---------+---------+





   +-----+       +---------+---------+---------+---------+
   !     !       !         !         !  DEL L  !  Вверх  !
   !BACK !       !  GOLD   !  HELP   !- - - - -!- - - - -!
   !SPACE!       !         !         !  UND L  ! REPLACE !
   +-----+       +---------+---------+---------+---------+
                 !  PAGE   ! FNDNXT  !  DEL W  !  Вниз   !
                 !- - - - -!- - - - -!- - - - -!- - - - -!
                 ! COMMAND !  FIND   !  UND W  !  SECT   !
   +----+ +---+  +---------+---------+---------+---------+
   !    ! !   !  ! ADVANCE ! BACKUP  !  DEL С  !  Вправо !
   ! LF ! !DEL!  !- - - - -!- - - - -!- - - - -!- - - - -!
   !    ! !   !  ! BOTTOM  !   ТОР   !  UND С  ! SPECINS !
   +----+ +---+  +---------+---------+---------+---------+
                 !  WORD   !   EOL   !   CUT   !  Влево  !
                 !- - - - -!- - - - -!- - - - -!- - - - -!
                 !CHNGCASE ! DEL EOL !  PASTE  !  APPEND !
                 +---------+---------+---------+---------+
                 !        LINE       !  SELECT !  ENTER  !
                 !- - - - - - - - - -!- - - - -!- - - - -!
                 !     OPEN LINE     !  RESET  !  SUBS   !
                 +-------------------+---------+---------+

                            Рис. 2








                           - 191 -

                        00152-01 34 02


       Функциональная клавиатура терминала "электроника"



  +--------+---------+--------+          +--------+--------+
  !        !         !        !          !    А   ! \    ! !
  !   7    !    8    !    9   !          !    !   !  \---! !
  !        !         !        !          !    !   !        !
  +--------+---------+--------+ +--------+--------+--------+
  !        !         !        ! !        !  \     !        !
  !   4    !    2    !    3   ! ! <----- !    \   ! -----> !
  !        !         !        ! !        !      \ !        !
  +--------+---------+--------+ +--------+--------+--------+
  !        !         !        !          !    !   !
  !   1    !    2    !    3   !          !    !   !
  !        !         !        !          !    V   !
  +--------+---------+--------+ +--------+--------+--------+
  !                  !        ! !  ===== !    !   !    А   !
  !        0         !    ,   ! !    !   !    V   !    !   !
  !                  !        ! !    V   !    .   !  ===== !
  +------------------+--------+ +--------+--------+--------+




   +---------+---------+---------+        +--------+--------+
   !  PAGE   ! FNDNXT  !  DEL W  !        !  Вверх ! SELECT !
   !- - - - -!- - - - -!- - - - -!        !- - - - !- - - - !
   ! COMMAND !  FIND   !  UND W  !        ! REPLACE! RESET  !
   +---------+---------+---------+ +------+--------+--------+
   ! ADVANCE ! BACKUP  !  DEL С  ! !влево !  BACK  ! Вправо !
   !- - - - -!- - - - -!- - - - -! ! - - -!  SPACE !- - - - !
   ! BOTTOM  !   ТОР   !  UND С  ! !APPEND!        ! SPECINS!
   +---------+---------+---------+ +------+--------+--------+
   !  WORD   !   EOL   !   CUT   !        !  Вниз  !
   !- - - - -!- - - - -!- - - - -!        !- - - - !
   !CHNGCASE ! DEL EOL !  PASTE  !        !  SECT  !
   +---------+---------+---------+ +------+--------+--------+
   !        LINE       !  SELECT ! !      !        !  DEL L !
   !- - - - - - - - - -!- - - - -! ! GOLD !  HELP  !- - - - !
   !     OPEN LINE     !  RESET  ! !      !        !  UND L !
   +-------------------+---------+ +------+--------+--------+

                            Рис. 3








                                    [6~









                           - 192 -

                        00152-01 34 02


         Функциональная клавиатура терминала CID-7220




   +-----+                    +---------+---------+---------+
   !     !                    !         !         !         !
   ! <-- !                    !    7    !    8    !    9    !
   !     !                    !         !         !         !
   +-----+  +-------+-------+ +---------+---------+---------+
            !       !       ! !         !         !         !
            ! <==== ! ====> ! !    4    !    5    !    6    !
            !       !       ! !         !         !         !
   +----+   +-------+-------+ +---------+---------+---------+
   !   !!   !   А   !   !   ! !         !         !         !
   !<--!!   !   !   !   !   ! !    1    !    2    !    3    !
   !    !   !   !   !   V   ! !         !         !         !
   +----+   +-------+-------+ +---------+---------+---------+
            !       !       ! !         !         !         !
            ! <---- ! ----> ! !    0    !    ,    !    .    !
            !       !       ! !         !         !         !
            +-------+-------+ +-------------------+---------+




   +-----+                    +---------+---------+---------+
   !BACK !                    !  PAGE   ! FNDNXT  !  DEL W  !
   !SPACE!                    !- - - - -!- - - - -!- - - - -!
   +-----+                    ! COMMAND !  FIND   !  UND W  !
            +-------+-------+ +---------+---------+---------+
            !       !       ! ! ADVANCE ! BACKUP  !  DEL С  !
            ! HELP  ! GOLD  ! !- - - - -!- - - - -!- - - - -!
            !       !       ! ! BOTTOM  !   ТОР   !  UND С  !
   +----+   +-------+-------+ +---------+---------+---------+
   !    !   ! Вверх ! Вниз  ! !  WORD   !   EOL   !   CUT   !
   ! LF !   !- - - -!- - - -! !- - - - -!- - - - -!- - - - -!
   !    !   !REPLACE! SECT  ! !CHNGCASE ! DEL EOL !  PASTE  !
   +----+   +-------+-------+ +---------+---------+---------+
            ! Влево !вправо ! !  LINE   ! SELECT  !  ENTER  !
            !- - - -!- - - -! !- - - - -!- - - - -!- - - - -!
            !APPEND !SPECINS! !OPEN LINE!  RESET  !  SUBS   !
            +-------+-------+ +-------------------+---------+

                            Рис. 4

















                           - 193 -

                        00152-01 34 02


                                                 Приложение 2





                     Сообщения об ошибках




       В данном приложении сообщения  об  ошибках  следуют  в

  алфавитном порядке. Обращаясь к их  описанию,  пользователь

  имеет возможность быстро  устранить  возникшую  ошибку,  не

  прерывая процесс редактирования.

   ':'REQUIRED
   введите ':'

       - команда требует ввода специального  знака,  заклю-

         ченного в одинарные кавычки.

   АBORTED BY CTRL/C
   препывание-CTRL/C

       - сообщение появляется после ввода CTRL/C  в  режиме

         функционального редактирования. Комбинация  CTRL/C

         прерывает выполнение команды режима 3.

   АDVANCE PAST BOTTOM OF BUFFER
   достигнут конец буфера

       - сообщение указывает на попытку переместить  курсор

         за  нижнюю  границу  буфера,   признаком   которой

         является символ - [EOB].

   АТТЕМРТ ТО CUT OR APPEND то CURRENT BUFFER
   текущий буфер не допустим для CUT и APPEND

       - сообщение указывает на попытку  назначить  текущий

         текстовый буфер для  выполнения  команды  CUT  или

         APPEND. По умолчанию команды CUT и APPEND помещают

         текст в буфер PASTE.

   АТТЕМРТ ТО PAST CURRENT BUFFER
   текущий буфер запрещен в PASTE




                           - 194 -

                        00152-01 34 02


       - сообщение указывает на попытку  извлечь  текст  из

         текущего буфера командой PASTE. Перемещение тескта

         внутри текущего  буфера  посредством  команд  CUT,

         APPEND и PASTE  невозможно.  Имя  буфера-приемника

         задается в командной строке.  По  умолчанию  текст

         помещается в буфер PASTE.

   ВACKUP PAST ТОР OF BUFFER
   достигнуто начало буфера

       - сообщение указывает на попытку переместить  курсор

         на позицию, предшествующую первой строке  текущего

         буфера.

   СHANGE MODE MAY ВЕ ENTERED ONLY FROM ТНЕ TERMINAL
   изменение режима возможно только с терминала

       - пользователь не может управлять изменением  режима

         функционирования EDT из пакетного командного файла

         или из командного файла запуска  при  старте  EDT,

         т.к.в этом случае задание выполняется  в  отсоеди-

         ненном режиме и не связано с  физическим  термина-

         лом.

   СOMMAND BUFFER EXHAUSTED
   командный буфер заполнен

       - командная строка в экранном режиме  превышает  255

         символов.

   СOMMAND FILE COULD NOT ВЕ OPENED
   нельзя открыть командный файл

       - командный файл, определенный в  командной  строке,

         не открывается. ЕDT  также  выведет  сообщение  из

         системного файла сообщений об ошибках.

   СOMMAND FILE DOES NOT EXIST
   командный файл отсутствует

       - командный файл, определенный в  командной  строке,

         отсутствует в данном каталоге.




                           - 195 -

                        00152-01 34 02


   CONSISTENCY CHECK FAILED, PLEASE CHECK YOUR FILE
   контроль нарушен, пожалуйста проверьте ваш файл

       - расхождение между количеством  строк  и  символов,

         введенных во время сеанса редактирования и  числом

         строк и символов, выводимых в  выходной  файл  при

         завершении  работы  редактора,  может  привести  к

         ошибкам в выходном файле. Рекомендация пользовате-

         лю: проверить выходной файл.

   СOULD NOT ALIGN TABS WITH CURSOR
   позиц.курс.не кратна N в SET TAB

       - курсор находится на позиции, не  кратной  установ-

         ленному размеру табуляции (SET TAB N), при  выпол-

         нении команды тс (вычисление табуляции).

   DESTINATION FOR MOVE OR COPY NOT FOUND
   обл.действия для MOVE (COPY) не задана

       - в командах MOVE или COPY  не  задана  спецификация

         области действия.

   ЕNTITY MUST ве WORD,SENTENCE,PAGE,OR PARAGRAPH
   элементы: WORD, LINE, SENTENCE, PAGE, PARAGRAPH

       - команда SET ENTITY должна включать один из четырех

         возможных элементов текста: WORD (слово), SENTENCE

         (предложение), PAGE (страница), PARAGRAPH  (параг-

         раф).

   ЕRROR IN COMMAND
   ошибка в команде

       - команда введена неверно.

   ЕRROR IN COMMAND OPTION
   ошибка в ключе команды

       - команда содержит неверно заданный командный ключ.

   ЕRROR IN RANGE SPECIFICATION
   ош-ка в спецификации области

       - команда требует задания спецификации области.

   FILE SPECIFICATION REQUIRED
   укажите спецификацию файла



                           - 196 -

                        00152-01 34 02


       - спецификацию файла необходимо  указывать  в  таких

         командах как WRITE, PRINT, INCLUDE.

   НELP FILE COULD NOT ве OPENED
   нельзя открыть файл справок

       - файл-справочник "HELP" не доступен при обращении к

         нему.

   INPUT FILE COULD NOT ве OPENED
   нельзя открыть входной файл

       - команда содержит синтаксическую ошибку или  указан

         несуществующий каталог.

   INPUT FILE DOES NOT EXIST
   входной файл отсутствует

       - входной файл отсутствует в указанном каталоге.

   INPUT RECORD тоо LARGE, TRUNCATED тоо 255 CHARACTERS
   слишком длинная строка, усечена до 255 символов

       - запись  во  входном  файле  превышает  максимально

         допустимую длину строки - 255 символов.

   INSUFFICIENT MEMORY
   недостаточно памяти

       - недостаточно  памяти  для   завершения   последней

         команды. Это сообщение появляется  при  назначении

         нового текстового  буфера  или  при  использовании

         команды DEFINE KEY.

   INVALID BUFFER NAME
   неверное имя буфера

       - синтаксическая ошибка при назначении имени  буфера

         в командной строке.

   INVALID ENTITY
   неверный эл-нт

       - элемент текста, определенный в  команде  экранного

         режима 2, не распознается редактором (см.  подраз-

         дел 5.1).

   IVALID OPTION FOR ТНАТ COMMAND
   нет ключа для данной команды



                           - 197 -

                        00152-01 34 02


       - задание ключа (/ключ) для данной команды не допус-

         тимо.

   INVALID PARAMETER FOR SET OR SHOW
   неверный параметр для SET (SHOW)

       - команды группы SET и SHOW используют  определенный

         набор параметров (см. раздел 7).

   INVALID SUBCOMMAND
   неверная подком-да

       - в экранном режиме  2  допущена  ошибка  при  вводе

         команды.

   INVALID VALUE IN SET COMMAND
   неверное значение в SET

       - допущена ошибка в ключевом слове  (значении  пара-

         метра) команды группы SET.

   I/O ERROR ON WORK FILE
   ошибка в/в в раб.файле

       - EDT выводит данное сообщение, когда  на  диске  не

         хватет места для размещения  рабочего  файла.  Это

         сообщение сопровождается появлением дополнительно-

         го системного сообщения об ошибке.

   JOURNAL FILE COULD NOT ве OPENED
   невозможно открыть журнал-файл

       - журнал-файл отсутствует в каталоге пользователя.

   LINE EXCEEDED 255 CHARACTERS, TRUNCATED
   строка,превышающая 255 символов,усечена

       - максимальная длина строки в EDT допускается равной

         255 символов. Часть строки,  превышающая  установ-

         ленный предел, удаляется.

   МACRO OR KEY REQUIRED
   введите MACRO или KEY

       - команда DEFINE является незаконченной.  Необходимо

         в команду ввести MACRO или KEY.

   NO DEFINITION
   не определена



                           - 198 -

                        00152-01 34 02


       - пользователь запрашивает по команде SHOW KEY функ-

         циональное назначение для неопределенной клавиши.

   NO OUTPUT FILE NAME
   не задано имя выхф.

       - в команде EXIT не  задана  спецификация  выходного

         файла. Спецификация выходного файла задается  либо

         в командной строке при запуске редактора,  либо  в

         команде EXIT при завершении процесса  редактирова-

         ния.

   NO SELECT RANGE ACTIVE
   нет выделенной области

       - команды APPEND и CUT требуют определения  выделен-

         ной  области  (диапазона  текста)  до  момента  их

         использования.

   NO SUCH LINE
   нет строки

       - в спецификации области заданы несуществующие номе-

         ра строк. При поиске EDT не находит строку с таким

         номером.

   NUMERIC VALUE REQUIRED
   задать числ. значение!

       - команда должна иметь числовое значение. Символ "^"

         указывает на место вставки  числового  значения  в

         командную строку.

   ОUTPUT FILE COULD NOT ве OPENED
   ош.при создании выходного файла

       - EDT выведет дополнительное сообщение,  описывающее

         данную ошибку.

   РARENTHESIS MISMATCH
   проверьте кр. скобки

       - число правых круглых скобок не соответствует числу

         левых круглых скобок в командной строке  экранного

         режима редактирования.



                           - 199 -

                        00152-01 34 02


   PARSING STACK OVERFLOW
   грам. стек переполнен

       - редактору для  грамматического  разбора  командной

         строки требуется определенная  область  памяти.  В

         случае появления данной ошибки пользователь должен

         проверить командную строку. Если она набрана  пра-

         вильно, рекомендуется выполнять команды последова-

         тельно.

   РLEASE ANSWER Y(ES),N(O),Q(UIT),OR A(LL)
   возможные OTBETы:Y(ES),N(O),Q(UIT),A(LL)

       - эта подсказка появляется в результате  использова-

         ния командного ключа /QUERY и неправильного ответа

         на вопрос-подсказку - знак "?".

   QUOTED STRING REQUIRED
   введите строку в ' '

       - команда требует  строку,  заключенную  в  кавычки.

         Символ "^" указывает на  место,  где  должна  быть

         расположена строка в кавычках.

   RANGE MUST ве CONTIQUOUS
   задайте смежную область

       - в спецификации области команды  RESEQUENCE  должны

         быть заданы смежные строки.

   RANGE SPECIFIED BY /SEQUENCE WOULD CAUSE DUPLICATE OR
   NON-SEQUENTIAL NUMBERS
   спецификация обл. В RESEQUENCE вызывает двойную или
   непослед-ю нумерацию

       - спецификация   области,   заданная    в    команде

         RESEQUENCE, может вызвать двойную или непоследова-

         тельную нумерацию строк. Рекомендация пользователю

         - правильно задать спецификацию  области  действия

         команды.

   STRING WAS NOT FOUND
   строка не найдена

       - строка, заданная в спецификации области, не найде-



                           - 200 -

                        00152-01 34 02


         на.

   Тнат KEY IS NOT DEFINABLE
   неопределяемая клавиша

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

         DEFINE KEY, является недоступной для  этой  опера-

         ции.

   UNEXPECTED CHARACTERS AFTER END OF COMMAND
   неверные символы в конце командной строки

       - в  конце  командной  строки  введены  символы,  не

         являющиеся частью команды.

   UNRECOGNIZED COMMAND
   неправильная команда

       - EDT не распознает введенную команду.  Рекомендация

         пользователю - заново ввести команду.

   UNRECOGNIZED COMMAND OPTION
   неправильный командный ключ

       - команда включает  неправильно  заданный  командный

         ключ.

   WORK FILE OVERFLOW
   превыш-е раб.файла

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

         чину - 65536 блоков текста в процессе редактирова-

         ния.

   WORKING
   работа

       - это сообщение  появляется,  когда  для  выполнения

         команды  требуется  некоторое  время,  превышающее

         минимальное.













                           - 201 -

                        00152-01 34 02


                                                 Приложение 3





              Устройства, поддерживаемые РДОС КП




                                                    Таблица 1

    ---------------------------------------------------------
       Шифр  ! Страна изготовитель ! Мнемо- !
      СМ ЭВМ ! и национальный шифр ! ничес- !   Примечание
             !                     ! кое имя!
    ---------------------------------------------------------
     СМ 7206 ! ВНР, VDT 340        !   КВ:  ! Видеотерминал
             !                     !        !
     СМ 7204 ! СССР, ВТА-2000-1/2  !   КВ:  !    То же
             !                     !        !
     СМ 7219 ! ВНР, VDT-53100      !   КВ:  !     -"-
             ! СССР, ВТА-2000-30   !   КВ:  !     -"-
             ! ВНР, VDT-52130      !   КВ:  !     -"-
             ! СССР, ВТА-2000-     !   КВ:  !     -"-
             !      13/15          !        !
             !                     !        !
     СМ 5300 ! НРБ                 !   МТ:  ! Накопитель   на
     СМ 5302 !                     !        ! магнитной ленте
     СМ 5303 !                     !        ! с    плотностью
             !                     !        ! записи  800 BPI
             !                     !        !
     СМ 5305 ! СССР                !   ММ:  ! Накопитель   на
             !                     !        ! магнитной ленте
             !                     !        ! с   фазокодиро-
             !                     !        ! ванной  записью
             !                     !        !
     СМ 3514 ! СССР                !   DF   ! Электронный
             !                     !        ! диск
             !                     !        !
     СМ 5500 ! ВНР                 !   DF:  ! НМД  с   фикси-
             !                     !        ! рованными   го-
             !                     !        ! ловками
             !                     !        !
     СМ 5403 ! НРБ                 !   DK:  ! Накопитель   на
     СМ 5402 !                     !        ! кассетном диске
     СМ 5401 !                     !        ! емкостью    2,5
             !                     !        ! мбайт
             !                     !        !
     СМ 5408 ! СССР                !   DM:  ! Накопитель   на
             !                     !        ! кассетном диске
             !                     !        ! емкостью     14
             !                     !        ! мбайт
             !                     !        !
     СМ 5412 ! СССР                !   DR   ! Накопитель   на
             !                     !        ! сменном   диске
             !                     !        ! емкостью     80



                           - 202 -

                        00152-01 34 02


                                          Продолжение табл. 1
    ---------------------------------------------------------
       Шифр  ! Страна изготовитель ! Мнемо- !
      СМ ЭВМ ! и национальный шифр ! ничес- !   Примечание
             !                     ! кое имя!
    ---------------------------------------------------------
             !                     !        ! Мбайт
             !                     !        !
     СМ 5407 ! СССР                !   DP:  ! Накопитель   на
             !                     !        ! сменном   диске
             !                     !        ! емкостью     29
             !                     !        ! мбайт
             !                     !        !
     СМ 5502 ! ПНР                 !   DX   ! Накопитель   на
             !                     !        ! гибких  магнит-
             !                     !        ! ных дисках
             !                     !        !
     СМ 5205 ! ЧССР                !   DX:  ! Накопитель   на
             !                     !        ! гибких  магнит-
             !                     !        ! ных дисках
             !                     !        !
     СМ 5606 ! ВНР                 !   DX:  !    То же
             !                     !        !
     СМ 2001 ! ЧССР, СССР          !   -    ! Программируемый
             !                     !        ! таймер
             !                     !        !
     СМ 8514 ! СССР                !   DH:  ! Асинхронный
             !                     !        ! мультиплексор
             !                     !        !
     СМ 8502 ! СССР                !   DE:  ! Адаптер дистан-
             !                     !        ! ционной   связи
             !                     !        !
     СМ 8506 ! чсср                !   DI:  ! Синхронный
             !                     !        ! адаптер (сад)
             !                     !        !
       -     ! СССР                !   DZ:  ! Мультиплексор
             !                     !        ! передачи   дан-
             !                     !        ! ных асинхронный
             !                     !        !
       -     ! СССР                !   DJ:  !    То же
             !                     !        !
     СМ 6101 ! ВНР                 !   CR:  ! Считыватель   с
             !                     !        ! перфокарт
             !                     !        !
     СМ 6102 ! ГДР                 !   CR:  !    То же
             !                     !        !
     СМ 6200 ! ВНР                 !   PR:  ! Устройство вво-
             !                     !   РР:  ! да-вывода    на
             !                     !        ! перфоленту
             !                     !        !
     СМ 6204 ! ПНР                 !   PR:  !    То же
             !                     !   РР:  !
             !                     !        !
     СМ 6315 ! СССР, АЦПУ          !   LP:  ! Устройство  ши-
             !                     !        ! рокой    печати
             !                     !        !
     СМ 6307 ! ГДР, DARO 1156      !   LP:  ! Знакосинтезиру-
             !                     !        ! ющее печатающее
             !                     !        ! устройство



                           - 203 -

                        00152-01 34 02


                                          Продолжение табл. 1
    ---------------------------------------------------------
       Шифр  ! Страна изготовитель ! Мнемо- !
      СМ ЭВМ ! и национальный шифр ! ничес- !   Примечание
             !                     ! кое имя!
    ---------------------------------------------------------
             !                     !        !
     СМ 6302 ! ПНР, DZM 180        !   LP:  !    То же






















































                           - 204 -

                        00152-01 34 02


                                                 Приложение 4




                        Символьный код



                                                     Таблица 1

              Набор знаков символьного кода КОИ-7

  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
   NUL ! ПУС ! 000 ! 000 ! <УС/А> ! <CTRL/A> ! Пусто
       !     !     !     !        !          !
   SOH ! НЗ  ! 001 ! 001 ! <УС/А> ! <CTRL/A> ! Начало заго-
       !     !     !     !        !          ! ловка
       !     !     !     !        !          !
   STX ! НТ  ! 002 ! 002 ! <УС/В> ! <CTRL/B> ! Начало текста
       !     !     !     !        !          !
   ЕТХ ! КТ  ! 003 ! 003 ! <УС/С> ! <CTRL/C> ! Конец текста
       !     !     !     !        !          !
   ЕОТ ! КП  ! 004 ! 004 ! <УC/D> ! <CTRL/D> ! Конец передачи
       !     !     !     !        !          !
   ENQ ! КТМ ! 005 ! 005 ! <УС/Е> ! <CTRL/E> ! Кто там?
       !     !     !     !        !          !
   аск ! ДА  ! 006 ! 006 ! <УC/F> ! <CTRL/F> ! Подтверждение
       !     !     !     !        !          !
   BEL ! ЗВ  ! 007 ! 007 ! <УC/G> ! <CTRL/G> ! Звонок
       !     !     !     !        !          !
   BS  ! ВШ  ! 008 ! 010 ! ВШ или !BACK SPECE! Возврат на шаг
       !     !     !     ! <УС/Н> !   или    !
       !     !     !     !        ! <CTRL/H> !
       !     !     !     !        !          !
   НТ  ! ГТ  ! 009 ! 011 ! ГТ или ! TAB или  ! Горизонтальная
       !     !     !     ! <УC/I> ! <CTRL/I> ! табуляция
       !     !     !     !        !          !
   LF  ! ПС  ! 010 ! 012 ! ПС или ! LF или   ! Перевод строки
       !     !     !     ! <УC/J> ! <CTRL/J> !
       !     !     !     !        !          !
   VT  ! ВТ  ! 011 ! 013 ! <УС/К> ! <CTRL/K> ! Вертикальная
       !     !     !     !        !          ! табуляция
       !     !     !     !        !          !
   FF  ! ПФ  ! 012 ! 014 ! <УC/L> ! <CTRL/L> ! Перевод формата
       !     !     !     !        !          !
   CR  ! ВК  ! 013 ! 015 ! ВК или ! CR или   ! Возврат каретки
       !     !     !     ! <УС/М> ! <CTRL/M> !
       !     !     !     !        !   или    !
       !     !     !     !        ! RETURN   !



                           - 205 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
       !     !     !     !        !          !
   SO  ! ВЫХ ! 014 ! 016 ! <УC/N> ! <CTRL/N> ! Выход
       !     !     !     !        !          !
   SI  ! ВХ  ! 015 ! 017 ! <УС/О> ! <CTRL/O> ! Вход
       !     !     !     !        !          !
   DLE ! АР  ! 016 ! 020 ! <УС/Р> ! <CTRL/P> ! Авторегистр 1
       !     !     !     !        !          !
   DCL ! СУ  ! 017 ! 021 ! <УC/Q> ! <CTRL/Q> ! Символ 1 управ-
       !     !     !     !        !          ! ления устройст-
       !     !     !     !        !          ! вом
       !     !     !     !        !          !
   DC2 ! СУ2 ! 018 ! 022 ! <УC/R> ! <CTRL/R> ! Символ 2 управ-
       !     !     !     !        !          ! ления устройст-
       !     !     !     !        !          ! вом
       !     !     !     !        !          !
   DC3 ! СУ3 ! 019 ! 023 ! <УC/S> ! <CTRL/S> ! Символ 3 управ-
       !     !     !     !        !          ! ления устройст-
       !     !     !     !        !          ! вом
       !     !     !     !        !          !
   DC4 ! СУ4 ! 020 ! 024 ! <УС/Т> ! <CTRL/T> ! Стоп
       !     !     !     !        !          !
   NAK ! НЕТ ! 021 ! 025 ! <УC/U> ! <CTRL/U> ! Отрицание
       !     !     !     !        !          !
   SYN ! СИН ! 022 ! 026 ! <УC/V> ! <CTRL/V> ! Синхронизация
       !     !     !     !        !          !
   ЕТВ ! КБ  ! 023 ! 027 ! <УC/W> ! <CTRL/W> ! Конец блока
       !     !     !     !        !          !
   CAN ! АН  ! 024 ! 030 ! <УС/Х> ! <CTRL/X> ! Аннулирование
       !     !     !     !        !          !
   ем  ! КН  ! 025 ! 031 ! <УC/Y> ! <CTRL/Y> ! Конец носителя
       !     !     !     !        !          !
   SUB ! ЗМ  ! 026 ! 032 ! <УC/Z> ! <CTRL/Z> ! Замена
       !     !     !     !        !          !
   ESC ! АР2 ! 027 ! 033 ! АР2 или! <CTRL/   ! Авторегистр 2
       !     !     !     ! <УС/Ш> !   SHIFT> !
       !     !     !     !        ! или ESC  !
       !     !     !     !        !          !
   FS  ! РФ  ! 028 ! 034 ! <УС/Э> ! <CTRL/Э> ! Разделитель
       !     !     !     !        !          ! файлов
       !     !     !     !        !          !
   GS  ! РГ  ! 029 ! 035 ! <УС/Щ> ! <CTRL/Щ> ! Разделитель
       !     !     !     !        !          ! групп
       !     !     !     !        !          !
   RS  ! РЗ  ! 030 ! 036 ! <УС/Ч> ! <CTRL/Ч> ! Разделитель
       !     !     !     !        !          ! записей
       !     !     !     !        !          !
   US  ! РЭ  ! 031 ! 037 ! <УС/-> ! <CTRL/-> ! Разделитель
       !     !     !     !        !          ! элементов
       !     !     !     !        !          !



                           - 206 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
   SP  !     ! 032 ! 040 !        !          ! Пробел
       !     !     !     !        !          !
    !  !  !  ! 033 ! 041 !   !    !     !    ! Восклицательный
       !     !     !     !        !          ! знак
       !     !     !     !        !          !
    "  !  "  ! 034 ! 042 !   "    !     "    ! Кавычки
       !     !     !     !        !          !
    #  !  #  ! 035 ! 043 !   #    !     #    ! Номер
       !     !     !     !        !          !
       !  $  ! 036 ! 044 !   $    !          ! Знак денежной
       !     !     !     !        !          ! единицы
       !     !     !     !        !          !
    %  !  %  ! 037 ! 045 !   %    !     %    ! Процент
       !     !     !     !        !          !
    &  !  &  ! 038 ! 046 !   &    !     &    ! Коммерческое "И
       !     !     !     !        !          !
    '  !  '  ! 039 ! 047 !   '    !     '    ! Апостроф
       !     !     !     !        !          !
    (  !  (  ! 040 ! 050 !   (    !     (    ! Левая круглая
       !     !     !     !        !          ! скобка
       !     !     !     !        !          !
    )  !  )  ! 041 ! 051 !   )    !     )    ! Правая круглая
       !     !     !     !        !          ! скобка
       !     !     !     !        !          !
    *  !  *  ! 042 ! 052 !   *    !     *    ! Звездочка
       !     !     !     !        !          !
    +  !  +  ! 043 ! 053 !   +    !     +    ! Плюс
       !     !     !     !        !          !
    ,  !  ,  ! 044 ! 054 !   ,    !     ,    ! Запятая
       !     !     !     !        !          !
    -  !  -  ! 045 ! 055 !   -    !     -    ! Минус
       !     !     !     !        !          !
    .  !  .  ! 046 ! 056 !   .    !     .    ! Точка
       !     !     !     !        !          !
    /  !  /  ! 047 ! 057 !   /    !     /    ! Наклонная черта
       !     !     !     !        !          !
    0  !  0  ! 048 ! 060 !   0    !     0    !
       !     !     !     !        !          !
    1  !  1  ! 049 ! 061 !   1    !     1    !
       !     !     !     !        !          !
    2  !  2  ! 050 ! 062 !   2    !     2    !
       !     !     !     !        !          !
    3  !  3  ! 051 ! 063 !   3    !     3    !
       !     !     !     !        !          !
    4  !  4  ! 052 ! 064 !   4    !     4    !
       !     !     !     !        !          !
    5  !  5  ! 053 ! 065 !   5    !     5    !
       !     !     !     !        !          !
    6  !  6  ! 054 ! 066 !   6    !     6    !



                           - 207 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
       !     !     !     !        !          !
    7  !  7  ! 055 ! 067 !   7    !     7    !
       !     !     !     !        !          !
    8  !  8  ! 056 ! 070 !   8    !     8    !
       !     !     !     !        !          !
    9  !  9  ! 057 ! 071 !   9    !     9    !
       !     !     !     !        !          !
    :  !  :  ! 058 ! 072 !   :    !     :    ! Двоеточие
       !     !     !     !        !          !
    ;  !  ;  ! 059 ! 073 !   ;    !     ;    ! Точка с запятой
       !     !     !     !        !          !
    <  !  <  ! 060 ! 074 !   <    !     <    ! Меньше
       !     !     !     !        !          !
    =  !  =  ! 061 ! 075 !   =    !     =    ! Равно
       !     !     !     !        !          !
    >  !  >  ! 062 ! 076 !   >    !     >    ! Больше
       !     !     !     !        !          !
    ?  !  ?  ! 063 ! 077 !   ?    !     ?    ! Вопросительный
       !     !     !     !        !          ! знак
       !     !     !     !        !          !
    @  !  @  ! 064 ! 100 !   @    !     @    ! Коммерческое
       !     !     !     !        !          ! "ЭТ"
       !     !     !     !        !          !
    A  !  A  ! 065 ! 101 !   A    !     A    !
       !     !     !     !        !          !
    B  !  B  ! 066 ! 102 !   B    !     B    !
       !     !     !     !        !          !
    C  !  C  ! 067 ! 103 !   C    !     C    !
       !     !     !     !        !          !
    D  !  D  ! 068 ! 104 !   D    !     D    !
       !     !     !     !        !          !
    E  !  E  ! 069 ! 105 !   E    !     E    !
       !     !     !     !        !          !
    F  !  F  ! 070 ! 106 !   F    !     F    !
       !     !     !     !        !          !
    G  !  G  ! 071 ! 107 !   G    !     G    !
       !     !     !     !        !          !
    H  !  H  ! 072 ! 110 !   H    !     H    !
       !     !     !     !        !          !
    I  !  I  ! 073 ! 111 !   I    !     I    !
       !     !     !     !        !          !
    J  !  J  ! 074 ! 112 !   J    !     J    !
       !     !     !     !        !          !
    K  !  K  ! 075 ! 113 !   K    !     K    !
       !     !     !     !        !          !
    L  !  L  ! 076 ! 114 !   L    !     L    !
       !     !     !     !        !          !
    M  !  M  ! 077 ! 115 !   M    !     M    !
       !     !     !     !        !          !



                           - 208 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
    N  !  N  ! 078 ! 116 !   N    !     N    !
       !     !     !     !        !          !
    O  !  O  ! 079 ! 117 !   O    !     O    !
       !     !     !     !        !          !
    P  !  P  ! 080 ! 120 !   P    !     P    !
       !     !     !     !        !          !
    Q  !  Q  ! 081 ! 121 !   Q    !     Q    !
       !     !     !     !        !          !
    R  !  R  ! 082 ! 122 !   R    !     R    !
       !     !     !     !        !          !
    S  !  S  ! 083 ! 123 !   S    !     S    !
       !     !     !     !        !          !
    T  !  T  ! 084 ! 124 !   T    !     T    !
       !     !     !     !        !          !
    U  !  U  ! 085 ! 125 !   U    !     U    ! 5+
       !     !     !     !        !          !
    V  !  V  ! 086 ! 126 !   V    !     V    !
       !     !     !     !        !          !
    W  !  W  ! 087 ! 127 !   W    !     W    !
       !     !     !     !        !          !
    X  !  X  ! 088 ! 130 !   X    !     X    !
       !     !     !     !        !          !
    Y  !  Y  ! 089 ! 131 !   Y    !     Y    !
       !     !     !     !        !          !
    Z  !  Z  ! 090 ! 132 !   Z    !     Z    !
       !     !     !     !        !          !
    [  !  [  ! 091 ! 133 !   [    !     [    ! Левая скобка
       !     !     !     !        !          !
    \  !  \  ! 092 ! 134 !   \    !     \    !
       !     !     !     !        !          !
    ]  !  ]  ! 093 ! 135 !   ]    !     ]    ! Правя скобка
       !     !     !     !        !          !
    ^  !  ^  ! 094 ! 136 !   ^    !     ^    !
       !     !     !     !        !          !
       !     ! 095 ! 137 !   _    !     _    !
       !     !     !     !        !          !
       !  Ю  ! 096 ! 140 !   Ю    !     Ю    ! Буквы русского
       !     !     !     !        !          ! алфавита
       !     !     !     !        !          !
       !  А  ! 097 ! 141 !   А    !     А    !
       !     !     !     !        !          !
       !  Б  ! 098 ! 142 !   Б    !     Б    !
       !     !     !     !        !          !
       !  Ц  ! 099 ! 143 !   Ц    !     Ц    !
       !     !     !     !        !          !
       !  Д  ! 100 ! 144 !   Д    !     Д    !
       !     !     !     !        !          !
       !  Е  ! 101 ! 145 !   Е    !     Е    !
       !     !     !     !        !          !



                           - 209 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
       !  Ф  ! 102 ! 146 !   Ф    !     Ф    !      
       !     !     !     !        !          !
       !  Г  ! 103 ! 147 !   Г    !     Г    !
       !     !     !     !        !          !
       !  Х  ! 104 ! 150 !   Х    !     Х    !
       !     !     !     !        !          !
       !  И  ! 105 ! 151 !   И    !     И    !
       !     !     !     !        !          !
       !  Й  ! 106 ! 152 !   Й    !     Й    !
       !     !     !     !        !          !
       !  К  ! 107 ! 153 !   К    !     К    !
       !     !     !     !        !          !
       !  Л  ! 108 ! 154 !   Л    !     Л    !
       !     !     !     !        !          !
       !  М  ! 109 ! 155 !   М    !     М    !
       !     !     !     !        !          !
       !  Н  ! 110 ! 156 !   Н    !     Н    !
       !     !     !     !        !          !
       !  О  ! 111 ! 157 !   О    !     О    !
       !     !     !     !        !          !
       !  П  ! 112 ! 160 !   П    !     П    !
       !     !     !     !        !          !
       !  Я  ! 113 ! 161 !   Я    !     Я    !
       !     !     !     !        !          !
       !  Р  ! 114 ! 162 !   Р    !     Р    !
       !     !     !     !        !          !
       !  С  ! 115 ! 163 !   С    !     С    !
       !     !     !     !        !          !
       !  Т  ! 116 ! 164 !   Т    !     Т    !
       !     !     !     !        !          !
       !  У  ! 117 ! 165 !   У    !     У    !
       !     !     !     !        !          !
       !  Ж  ! 118 ! 166 !   Ж    !     Ж    !
       !     !     !     !        !          !
       !  В  ! 119 ! 167 !   В    !     В    !
       !     !     !     !        !          !
       !  Ь  ! 120 ! 170 !   Ь    !     Ь    !
       !     !     !     !        !          !
       !  Ы  ! 121 ! 171 !   Ы    !     Ы    !
       !     !     !     !        !          !
       !  З  ! 122 ! 172 !   З    !     З    !
       !     !     !     !        !          !
       !  Ш  ! 123 ! 173 !   Ш    !     Ш    !
       !     !     !     !        !          !
       !  Э  ! 124 ! 174 !   Э    !     Э    !
       !     !     !     !        !          !
       !  Щ  ! 125 ! 175 !   Щ    !     Щ    !
       !     !     !     !        !          !
       !  Ч  ! 126 ! 176 !   Ч    !     Ч    !



                           - 210 -

                        00152-01 34 02


                                           Продолжение табл. 1
  ------------------------------------------------------------
  Обозначение!Деся-!Вось-! Клавиши терминала !
   Символов  !тич- !мерич!-------------------!  Русское
  -----------!ный  !ный  ! Произ- ! Произ-   !
   Меж-! Рус-!     !     ! водства! водства  !
  Дуна-!ское ! код ! код !        ! стран    !  Наименование
  род- !     !     !     ! СССР   ! СЭВ      !
   ное !     !     !     !        !          !
  ------------------------------------------------------------
       !     !     !     !        !          !
   DEL ! ЗБ  ! 127 ! 177 !   ЗБ   !    DEL   ! Забой


















































                           - 211 -

                        00152-01 34 02


                                                 Приложение 5




                         Код RADIX-50



                                                   Таблица 1

                 Набор символов кода RADIX-50

   ---------------------------------------------------------
       Символ    ! Восьмеричный эквивалент !   Эквивалент
                 ! символьного кода кои-7  !    RADIX-50
   ---------------------------------------------------------
   Пробел        !        40               !      0
   A-Z           !      101-132            !      1-32
   $             !        44               !      33
   .             !        56               !      34
   Не использу-  !                         !      35
   ется          !                         !
   0-9           !       60-71             !      36-47

       Максимальное значение в коде RADIX-50 будет равно:
                                
          47*50**2+47*50+47=174777

       Табл. 2 позволяет переводить элементы символьного кода

  в эквивалентные коды RADIX-50.  Например,  строка  символов

  Х2В, записанных в символьном коде, в  коде  RADIX-50  будет

  иметь следующее значение  (арифметические  действия  выпол-

  няются в восьмеричной системе):

          Х=113000
          2=002400
          В=000002
        Х2В=115402


















                           - 212 -

                        00152-01 34 02


                                                   Таблица 2

                 Значение символов в RADIX-50

   ---------------------------------------------------------
    Одиночный знак  !  Второй знак  !   Третий знак
    или первый знак !               !
   ---------------------------------------------------------
          000000    !     000000    !     000000
        A 003100    !   A 000050    !   A 000001
        B 006200    !   B 000120    !   B 000002
        C 011300    !   C 000170    !   C 000003
        D 014400    !   D 000240    !   D 000004
        E 017500    !   E 000310    !   E 000005
        F 022600    !   F 000360    !   F 000006
        G 025700    !   G 000430    !   G 000007
        H 031000    !   H 000500    !   H 000010
        I 034100    !   I 000550    !   I 000011
        J 037200    !   J 000620    !   J 000012
        K 042300    !   K 000670    !   K 000013
        L 045400    !   L 000740    !   L 000014
        M 050500    !   M 001010    !   M 000015
        N 053600    !   N 001060    !   N 000016
        O 056700    !   O 001130    !   O 000017
        P 062000    !   P 001200    !   P 000020
        Q 065100    !   Q 001250    !   Q 000021
        R 070200    !   R 001320    !   R 000022
        S 073300    !   S 001370    !   S 000023
        T 076400    !   T 001440    !   T 000024
        U 101500    !   U 001510    !   U 000025
        V 104600    !   V 001560    !   V 000026
        W 107700    !   W 001630    !   W 000027
        X 113000    !   X 001700    !   X 000030
        Y 116100    !   Y 001750    !   Y 000031
        Z 121200    !   Z 002020    !   Z 000032
        $ 124300    !   $ 002070    !   $ 000033
        . 127400    !   . 002140    !   . 000034
          132500  1)!     002210  1)!     000035  1)
        0 135600    !   0 002260    !   0 000036
        1 140700    !   1 002330    !   1 000037
        2 144000    !   2 002400    !   2 000040
        3 147100    !   3 002450    !   3 000041
        4 152200    !   4 002520    !   4 000042
        5 155300    !   5 002570    !   5 000043
        6 160400    !   6 002640    !   6 000044
        7 163500    !   7 002710    !   7 000045
        8 166600    !   8 002760    !   8 000046
        9 171700    !   9 003030    !   9 000047

        -----------
          1) - отмечен неиспользующийся код.










                           - 213K -

                        00152-01 34 02


   ------------------------------------------------------------
   I                                                          I
   I                  Лист регистрации изменений              I
   I                                                          I
   I----------------------------------------------------------I
   IНомера листов (страниц)IВсего IN     IВходящий IПодп.IДатаI
   I-----------------------IлистовIдоку- IN сопро- I     I    I
   IИ IИз- IЗа- IНо- IАнну-I(стра-Iмента Iводитель-I     I    I
   Iз Iме- Iме- Iвых Iлиро-Iниц)  I      Iного до- I     I    I
   Iм Iнен-Iнен-I    Iван- Iв до- I      Iкум. и   I     I    I
   I. Iных Iных I    Iных  Iкум.  I      Iдата     I     I    I
   I----------------------------------------------------------I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
        
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!