

          Экранный Редактор EdikM V3.0-1
        ----------------------------------

 Данная версия редактора, с любезного разрешения  разработчика  Игоря  Ныса,
переработана для применения на ПЭВМ  "Электроника  БК0011М".  Она  полностью
использует экранные возможности  Базовой  Операционной  Системы  (начиная  с
версии БОС 1.9).  Это  значительно  ускоряет  выполнение  функций  экранного
редактования (вставка/удаление строки, работа с окном  и  т.д.)  и  повышает
удобтво  работы  с  редактором.  Кроме  того,  в   данную   версию   введены
дополнительные функции, расширяющие возможности редактирования.
                            Удинцев Володя.


Вызов:

    .R[U] EDIKM
    *ИМЯ-ФАЙЛА[,ФАЙЛ-ПОДСТАН]	    - работа с 'BAK'- файлом
    *Вых-файл=ВХ.ФАЙЛ[,ФАЙЛ-ПОДСТАН]- результаты редактирования в "ВЫХ.ФАЙЛ"
    *<ВК>			    - печать версии и типа дисплея

        Ключи:
    /A		    - отображать CTRL/O, CTRL/N
    /C             - создать новый файл
    /E:Ext          - задать расширение по умолчанию
    /I              - просмотр файла или устройства
    /М		    - при старте редактора запустить подстановку с #0
    /8		    - формировать выходной файл КОИ8 (BASIC)

            Клавиатура БК0011М.
 Функции в верхней строке исполняются непосредственным нажатием клавиши, для
отработки  нижней  функции   необходимо   последовательно   нажать   клавиши
<ПРЕФИКС>(на клавиатуре клавиша <ШАГ>)  и  соответствующую  функциональную
клавишу.

+-----------------+------------------+------------------+
! Поиск           !     Вверх        ! Возврат каретки  !
!                 !        ^         !                  !
!    ИНД СУ       !        !         !     <==/         !
! Задание модели  ! На экран вверх   ! В конец и вк     !
+-----------------+------------------+------------------+
! Влево           !   Префикс        !     Вправо       !
!   <----         !      ШАГ         !      ---->       !
!                 !                  !                  !
! В начало строки !  Отмена префикса ! В конец строки   !
+-----------------+------------------+------------------+
! Сдвинуть строку !  Курсор вниз     ! Раздвинуть строку!
!                 !       !          !                  !
!         !<===   !       V          !   =!==>          !
! Стереть до конца!  На экран вниз   ! Восстановить     !
!     строки      !                  !   Стертое        !
+-----------------+------------------+------------------+
! Раздвинуть стр. ! Установить метку ! Сдвинуть строки  !
!                 !              ^   !                  !
!          АР2/<- !         АР2/ !   !          АР2/->  !
!   Выделенный    ! Поменять местами !   Выделенный	!
! текст из буфера !  курсор и метку  !  текст в буфер   !
+-----------------+------------------+------------------+

                -2-

  Некоторые  клавиши имеют специальное значение
        ( во второй колонке с префиксом )

ВК(<==/)  перенести остаток на новую строку,       в конец строки и ВК
ПС(АР2 \/)в начало следующей строки,               в конец предыдущей
ЗБ(<==)   стереть предыдущий символ,               стереть до начала строки
ГТ(ТАБ)   горизонтальная табуляция		 задать первую позицию
                             структурной табуляции
ТАБ(АР2 <==)настраиваемая табуляция           задать шаг настраив. табуляции

РУС     переключение на другой регистр

ЛАТ     переключение на латинский регистр

СБР     реализует ряд команд, не включенных в версии, младше 3.0 (см. ниже).

 Буквенно-цифровые клавиши реализуют команды после префикса:


  A-uxilary File  работа с внешними файлами. требует ввода еще одной буквы

для спецификации режима:

       A-ppend?    дозаписывает выделенную область в файл, открытый 'OPEN'

       C-lose?     закрывает дополнительный файл

       E-xtract?   вставляет в редактируемый файл выделенную область из
                   открытого для чтения дополнительного файла

       I-nput:     открывает указанный файл для ввода с возможностью
                   использования в режиме 'ОКНА'

       L-ook?	   включить режим одновременного просмотра основного и
                   дополнительного файла

       O-utput:    требует спецификации файла, открывает файл для записи.

       P-urge?     прекращает операцию с дополнительным файлом


       R-ead:      требует спецификации файла - считывается файл и вставляется
                   после текущего положения курсора.

       S-ave:      содержимое буфера ввода записывается в файл

       U-se:       использует указанный файл для загрузки буферов ввода
           каждая строка-буфер

       W-rite:     требует спецификации файла - выделенная область записывается
                   в файл, файл закрывается.


  B-ottom   В конец текста

  C-ase=    Задается вид выходного текста 2 или 4
            (только прописные буквы (2 регистра) или прописные со строчными (4))
        преобразуется выделенная область.

  D-elete?  Стереть выделенную область (между меткой и курсором)

  E-xit?    Выход, выходной файл в формате ASCII


                -3-

  F-ill?    Производит заполнение выделенной области текста,
            длина строки соответствует аргументу 'Wrap',
            заполнение не производится, если следующая строка - красная.
            ведущие пробелы оставляются.

  G-eneral search?
            Модель без учета регистра

  I-ndent?  Установить режим автоотступа

  J-ustify  Выравнивается текущая строка по аргументу 'Wrap'

  K-ey:
        На указанную клавишу  1..10 вводится последовательность
        символов, заканчивающаяся CTRL/C

  L-etter   Меняет регистр верхний/нижний (для слова)

  M-acro?   Задать макрокоманду. запомниаются последующие команды

  N-ext?    Записать текст до курсора в файл, дочитать из файла

  P-age?    Записать весь текст в памяти в файл, дочитать из файла

  Q-uit?    Аварийный выход, результаты редактирования не запоминаются

  R-epeat=  Повторение команды. Повторяется следующая команда

  S-ave     Закончить макро

  T-op      В начало текста

  U-pdate?  Установить режим замены

  V-isible  Делает 'видимым' дополнительный файл, открытый для чтения.
            В этом режиме допустимо использовать функции:

          - [ЭКРАН] вверх
          - [ЭКРАН] вниз
          - начало текста
          - конец текста
          - установить метку
          - идти к метке
      - задать модель
          - найти модель (поиск только вперед)

            Если включен режим "Look", курсор переходит в верхнюю
            <RET> возвращает к основному файлу функции управляются теми же
            клавишами, что и обычно

  W-rap=    Установить длину строки для автопереноса (по умолчанию - 78.)

e-X-ecute   Выполнить макро

  Z-one=    Установить первую видимую позицию текста

  *         Повторять в выделенной области

  <         На слово влево

  >         На слово вправо



                -4-
  [         Стереть слово

  ]         Восстановить слово

  +	    Поиск вперед (то же, что просто поиск)

  -	    Поиск назад (только в основном файле)

  /         Табулировать строку вправо

  \         Табулировать строку влево

  ^         Ввести следующий символ как контроловый

"ПРОБЕЛ"    Восстановить удаленную строку

1..9, 0	    Вставить соответствующий буфер ввода

            Команды на служебной клавиатуре:

<CTRL/W>
<CTRL/R>  Обновить экран
<CTRL/U>  Стереть до начала строки


   Выделенной считается область между меткой и курсором  (или  наоборот).  В
выделенную область входят все  строки,  начиная  с  помеченной  (меткой  или
курсором) и кончая той, за  которой  стоит  маркер  (или  метка).  В  данной
редакции могут существовать две выделенные  области  .-  между  меткой  1  и
курсорм (метка 1 индицируется символом <__> в последней  колонке  экрана)  и
между метками 2 и 3, индицируемыми символами <__>  и  <__>.  Вторая  область
может индицироваться так же  инверсией  цвета  символа  и  фона  внутри  нее
(поэтому далее будем называть ее условно "инверсной").

                          Дополнительные команды.
                          -----------------------

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

    Функциональные клавиши реализуют следующие команды после префикса:

СТРЕЛКА ВВЕРХ	- установить метку 2 <__>
СТРЕЛКА ВНИЗ	- установить метку 3 <__>

    Алфавитно-цифрловые клавиши реатлизуют:

8		- 80 символов в строке

6		- 64 символа в строке

3		- 32 символа в строке

O- inversion On/Off - включить/выключить индикацию "инверсной" области

M-ove area   -  переместить "инверсную" область. Текст из "инверсной" обла-
          сти помещается перед курсором. На прежнем месте уничтожается.  	
        "инверсная область" после операции не определена.


                -5-

C-opy  area  -  скопировать  "инверсную"  область.  Текст из   "инверсной"
                области помещается перед курсором, сохраняясь при этом и  на
        прежнем месте. "инверсная" область на прежнем месте.

D-elete area -  текст в инверсной области ухичтожается. "инверсная область"
        после операции не определена.

A-ppend?     -  дозаписывает "инверсную" область в файл, открытый 'OPEN'

W-rite:      -  требует спецификации файла - "инверсная" область записывается
                в файл, файл закрывается.

G-rafic	     -  на клавиши русского алфавита включить псевдографику. Следует
        использовать только в режиме ASCII-8.

J-auto-J-ustify-  автовыравнивание текста по аргументу Wrap.




             ОТВЕТЫ НА ЗАПРОСЫ
            -----------------


   Реакция на сообщения, появляющиеся в нижней строке зависит от
последнего символа:

  '?'   Это вопрос, можно отказаться от выполнения команды, набрав

Н (нет) или N (no) на любом регистре.

  '='   Требуется ввод числового аргумента команды. При вводе пустой
строки будет присвоено значение по умолчанию.

  ':'   Ввод текстовой строки

  '-'   Это сообщение об ошибке, просто закончите ввод

  ' '   Нет никакого знака - нужно ввести следующую букву

  '...' Временное сообщение, оно исчезнет после завершения выполнения
команды  или после нажатия двойного СУ/C

   Ввод любой строки должен заканчиваться символом <RET>. Для
редактирования в нижней строке можно пользоваться клавишей <DEL>
   Символ <LF> имеет здесь специальное значение - переход на новую строку.

   Нажатие <CTRL/C><CTRL/C> позволяет абортировать затянувшуюся командную
последовательность

   Eсли файл не помещается в память, редактор считывает текст, оставляя
примерно 10 блоков для вставки. Используя команды 'Page' И 'Next'
можно работать с большими файлами


                -6-

                    СООБЩЕНИЯ И ОШИБКИ
            ------------------


                Командного режима


?NYS-W-File exists, continue?
 - в режиме создания файла обнаружен файл с тем же именем

?NYS-I-Create new file, continue?
 - не найден файл с указанным именем, можно создать новый

?NYS-W-Only # blocks for insertion, continue?
 - для вставки текста доступно только # блоков (0..9)

?NYS-W-Subst file not found, continue?
  - не найден файл подстановок в командной строке

?NYS-F-Not enough memory
 - Нет памяти для работы редактора (необходимо около 16 кбайт)

?NYS-F-Ill switch
 - Неопознанный ключ

?NYS-F-NO DRIVER
 - драйвер указанного устройства отсутствует в таблицах монитора

?NYS-F-File not found
 - файл не найден

?NYS-F-Protected file already exists
 - нельзя редактировать защищенный файл с тем же именем

?NYS-F-Output device full
 - нет места для размещения выходного файла

?NYS-F-No file
 - попытка нефайлового доступа (нет имени файла)


           Экранного режима


- Search failed     модель не найдена на текущей странице текста

- Macro OVF	    переполнение макробуфера (длинная макрокоманда)

- Aux buffer ovf    переполнение дополнительного буфера

- Text buffer almost full
                    почти полон буфер текста, осталось около 1000 знаков
              используйте команды Next/Output для
            освобоЖдения буфера текста

- Text buffer full, page?
                    Буфер текста полон после <ВК> редактор сменит страницу

- No aux file for input
            Попытка перейти в режим 'окна' при не открытом файле


                -7-

- I/O ERROR
            Ошибка ввода/вывода, редактор остается в экранном режиме,
            но связь с файлами прерывается. Используйте
            дополнительные файлы для сохранения текущей страницы


- Aux file too large
            размер читаемого файла > 63 блоков или нет места в буфере
            текста. используйте команду Output для
                    освобождения буфера текста.


- Aux file operation failed
            это сообщение говорит о неудаче при работе с доп. файлом

            - ошибка в командной строке
            - файл не найден
            - ошибка ввода/вывода
            - нет драйвера в таблицах монитора
            - нет памяти для загрузки драйвера
            - использование 'Append' или 'Close' без 'Open'
            - отказ от 'Replace?' при попытке указать
              существующий файл для записи

- Aux file already open
            дополнительный файл уже открыт для ввода/вывода

 Replace?
            дополнительный файл с таким именем уже существует
                    (запись)

... Working
            выполняется повторение команды (Repeat)


       Распределение памяти



   Редактор выделяет память при стандартной генерации (символов):

  - для строки              160.
  -     макрокоманды        250.
  -     буфера сохранения  1500.
  -     файла подстановки   400.

   Всю оставшуюся память (до 70 блоков) редактор занимает под буфер текста
   и драйверы, при этом:

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

 - около 700. при таком об'еме свободной памяти выдается предупреждающее
   сообщение о том, что буфер почти полон.

 -       160. (размер строки) появляется сообщение 'буфер полон', надо
   сменить страницу


                -8-

  Фиксированные смещения и флаги (версия 3.0)

1000 расширение входного файла                             MAC (RADIX)
1002            выходного файла				   MAC (RADIX)
1004            доп. файла (только с ключом /I)		   MAC (RADIX)
1006 **
1010 начальная позиция настраиваемой табуляции              0
1012 шаг настраиваемой табуляции                            4
1014 позиция автопереноса (Wrap) - настраивается автоматически
     при загрузке. Менять не надо.

    Байтовые флаги (0/1)

1016 обобщенный (General) поиск                             0 (НЕТ)
1017 вставка/замена                                         0 (ВСТАВКА)
1020 автоотступ (Indent)
                0 (НЕТ)

** не рекомендуется менять содержимое этой ячейки

-----------------------------------------------------------------------
