Описание прог Artist, Art Studio, Gens3-Mons3, Gens4, Hisoft C v1.1, Hisoft Pascal v1.4, Tasword2 и TLW 1969 г.

Gens-3 - профессиональный двухпроходный ассемблер.



    G E N S - 3     ПРОФЕССИОНАЛЬНЫЙ ДВУХПРОХОДНЫЙ АССЕМБЛЕР

                  РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

      СТИВЕН ВИКЕРС,ПОД РЕДАКЦИЕЙ РОБИНА БРЕДБИРА

     ПЕЧАТАЕТСЯ ПО
     THE LEAGRAVE PRESS LTD,LUTTON AND LONDON,GREAT BRITAIN
     THIRD EDITION 1983.


              1.ВВЕДЕНИЕ
              ----------

     В НАСТОЯЩЕЕ ВРЕМЯ  ПРОФЕССИОНАЛЬНЫЙ,БЫСТРЫЙ  ДВУХПРОХОДНЫЙ
АССЕМБЛЕР GENS3 ЯВЛЯЕТСЯ ЛУЧШИМ ИЗ АССЕМБЛЕРОВ ДЛЯ  [Y-TQFCUSVN
Й ЛПНЯ'АУФСПЬ ОБ ПТОПЬФ [80. ПО ИПСПЭП  ТФЦР  ЗАРЕКОМЕНДОВАЛ  В
РАБОТЕ И ПОЛУЧИЛ САМЫЕ ЛЕСТНЫЕ ОТЗЫВЫ ПОЛЬЗОВАТЕЛЕЙ КОМПЬЮТЕРОВ
НА ПРОЦЕССОРЕ Z80.
     РУКОВОДСТВО НАПИСАНО С УЧЕТОМ ПОЖЕЛАНИЙ И СОВЕТОВ  ОБЛАДА-
ТЕЛЕЙ КОМПЬЮТЕРА ZX-SPECTRUM И ЯВЛЯЕТСЯ РЕДАКЦИЕЙ РАНЕЕ  ИЗДАН-
НОЙ КНИГИ.
     ТЩАТЕЛЬНО ИЗУЧИТЕ ВСЕ РАЗДЕЛЫ ДАННОЙ  КНИГИ  И  ПРИМЕРЫ  В
ПРИЛОЖЕНИИ И ТОЛЬКО ПОТОМ ПРИСТУПАЙТЕ К РАБОТЕ С GENS3.
     GENS3 ЗАНИМАЕТ ОКОЛО 8 КБАЙТ,ОН ИСПОЛЬЗУЕТ СВОЙ ВНУТРЕННИЙ
СТЕК И ЯВЛЯЕТСЯ НЕЗАВИСИМЫМ  ОТ  СОДЕРЖИМОГО  ПАМЯТИ  КОМПЬЮТЕ-
РА,ИМЕЕТ ВСТРОЕННЫЙ РЕДАКТОР.
     ПЕРЕД ЗАГРУЗКОЙ АССЕМБЛЕРА НЕОБХОДИМО ЗАРЕЗЕРВИРОВАТЬ  ДЛЯ
GENS3 ДОСТАТОЧНЫЙ ОБ'ЕМ ПАМЯТИ. НАИБОЛЕЕ РАЦИОНАЛЬНО GENS3 РАЗ-
МЕЩАТЬ В НИЖНЕЙ ЧАСТИ ПАМЯТИ.

     GENS3 ЗАГРУЖАЕТСЯ В КОМПЬЮТЕР ПРИ ПОМОЩИ КОМАНДЫ LOAD:

                 LOAD "GENS3" CODE XXXXX

( XXXXX - НЕОБХОДИМЫЙ АДРЕС ЗАГРУЗКИ,НАПРИМЕР 24064 )
   ДЛЯ ИНИЦИАЛИЗАЦИИ ПРОГРАММЫ ВВЕСТИ:

                 RANDOMIZE USR  XXXXX

     ЕСЛИ В  ПРОЦЕССЕ  РАБОТЫ  НЕОБХОДИМО  ПЕРЕИНИЦИАЛИЗИРОВАТЬ
ПРОГРАММУ,ВВЕДИТЕ ДЛЯ ХОЛОДНОГО СТАРТА ( РАЗРУШАЮТСЯ РЕЗУЛЬТАТЫ
ПРЕДЫДУЩЕЙ РАБОТЫ ):

                 RANDOMIZE USR  XXXXX + 56

   ДЛЯ ТЕПЛОГО СТАРТА (СОХРАНЕНИЕ  РАНЕЕ СОЗДАННЫХ ФАЙЛОВ):

                 RANDOMIZE USR  XXXXX + 61

     НЕОБХОДИМО ПОМНИТЬ,ЧТО GENS3 ОДИН РАЗ ИНИЦИАЛИЗИРУЕТСЯ  ПО
АДРЕСУ "XXXXX" .  НАПРИМЕР,ЕСЛИ  ВЫ  ВВЕЛИ  И  ИНИЦИАЛИЗИРОВАЛИ
GENS3 ПО АДРЕСУ 24064, ТО ДЛЯ ХОЛОДНОГО СТАРТА ИСПОЛЬЗУЕТСЯ АД-
РЕС 24120, А ДЛЯ ТЕПЛОГО СТАРТА 24125.

   ПОСЛЕ ИНИЦИАЛИЗАЦИИ ПО АДРЕСУ "XXXXXX" ПОЯВИТСЯ ВОПРОС:

                 "BUFFER SIZE ? "

     ВВЕДИТЕ ЧИСЛО ОТ 0 ДО 9 ( ПО УМОЛЧАНИЮ  ПРИНИМАЕТСЯ  4.  1
ЕДИНИЦА = 256 БАЙТ ). ЭТО ЧИСЛО УСТАНАВЛИВАЕТ ВЕЛИЧИНУ  ВКЛЮЧА-
ЮЩЕГО ("INCLUDE") БУФЕРА (СМ. РАЗДЕЛ 2.8 ДЛЯ ДЕТАЛИЗАЦИИ).
     ВЕЛИЧИНА 0 УСТАНАВЛИВАЕТ РАЗМЕР БУФЕРА РАВНЫЙ 64 БАЙТАМ.
     ПОСЛЕ ОТВЕТА НА ВОПРОС "BUFFER SIZE ?" ПОЯВИТСЯ  УКАЗАТЕЛЬ
КОМАНД РЕДАКТОРА ">" (СМ. ЧАСТИ 2 И 3 ЭТОЙ КНИГИ ).
     ВНИМАНИЕ! GENS3 ЗАПРЕЩАЕТ ПРЕРЫВАНИЯ, И ПОЭТОМУ, КОГДА ОНИ
ВАМ НУЖНЫ, ТО РАЗРЕШИТЕ ИХ КОМАНДОЙ  "ЕI".  KРОМЕ  ТОГО,  GENS3
ПОРТИТ РЕГИСТР "IR".

                        2. AССЕМБЛЕР
                        ------------

                 2.1 КАК РАБОТАЕТ GENS3
                 ----------------------

     GENS3 - БЫСТРЫЙ ДВУХПРОХОДНЫЙ АССЕМБЛЕР,KOTOРЫЙ  АССЕМБЛИ-
РУЕТ СТАНДАРТНЫЙ Z80 MНЕМОНИКУ, ДОБАВЛЯЯ УСЛОВНОЕ АССЕМБЛИРОВА-
НИЕ И МНОГО ПОЛЕЗНЫХ КОМАНД.
     ПРИ АССЕМБЛИРОВАНИИ ( ПОЛЬЗУЙТЕСЬ КОМАНДОЙ РЕДАКТОРА "А" -
СМ. ГЛАВУ ) СНАЧАЛА НЕОБХОДИМО ОТВЕТИТЬ НА ВОПРОС ОБ  ОПРЕДЕЛЕ-
НИИ РАЗМЕРА ТАБЛИЦЫ ( "TABLE SIZE ? " ) В ДЕСЯТИЧНЫХ ЦЕЛЫХ ЧИС-
ЛАХ. ЭТО ПРОСТРАНСТВО БУДЕТ ЗАКРЕПЛЕНО ЗА ТАБЛИЦЕЙ СИМВОЛОВ  ВО
ВРЕМЯ  АССЕМБЛЕРОВАНИЯ.  ПО  УМОЛЧАНИЮ  GENS3  ВЫБИРАЕТ  СТОЛЬ-
КО,СКОЛЬКО СЧИТАЕТ НУЖНЫМ. ОБЫЧНО ЭТОГО ОКАЗЫВАЕТСЯ ВПОЛНЕ ДОС-
ТАТОЧНО.
     ВНИМАНИЕ! КОГДА ИСПОЛЬЗУЕТСЯ РЕЖИМ  "INCLUDE",  НЕОБХОДИМО
ВЫДЕЛЯТЬ БОЛЬШЕ МЕСТА ДЛЯ ТАБЛИЦЫ ,  Т.К.  АССЕМБЛЕР  НЕ  МОЖЕТ
ПРЕДСКАЗАТЬ РАЗМЕР ФАЙЛА, КОТОРЫЙ БУДЕТ ВАМИ ВЫБРАН.
     ПОСЛЕ ОПРЕДЕЛЕНИЯ РАЗМЕРОВ ТАБЛИЦЫ НЕОБХОДИМО ВЫБРАТЬ ТРЕ-
БУЕМЫЙ РЕЖИМ ВВЕДИТЕ КОДЫ РЕЖИМОВ ( "OPTIONS" ),  ПРОСУММИРОВАВ
ИХ, ЕСЛИ НЕОБХОДИМА

КОМБИНАЦИЯ РЕЖИМОВ:

  РЕЖИМ  1 - РАСПЕЧАТКА ТАБЛИЦЫ СИМВОЛОВ В КОНЦЕ ПРОХОДА
  РЕЖИМ  2 - ОТКАЗ ОТ ГЕНЕРАЦИИ КОДОВ КОМАНД
  РЕЖИМ  3 - ОТКАЗ ОТ ГЕНЕРАЦИИ ЛИСТИНГА
  РЕЖИМ  8 - ВЫВОД ЛИСТИНГА НА ПРИНТЕР
  РЕЖИМ 16 - РАЗМЕЩЕНИЕ КОДОВ КОМАНД ( ЕСЛИ ОНИ ВЫРАБАТЫВАЮТСЯ )

     ПОСЛЕ ТАБЛИЦЫ СИМВОЛОВ.  СЧЕТЧИК  ПЕРЕМЕЩЕНИЯ  (  LOCALION
COUNTER ) ПРОДОЛЖАЕТ КОРРЕКТИРОВАТЬСЯ ТАК, ЧТО КОДЫ КОМАНД МОЖ-
НО ПОМЕЩАТЬ В ОДНУ СЕКЦИЮ ПАМЯТИ И ПРОГРАММА  БУДЕТ  РАБОТОСПО-
СОБНА В ЛЮБОМ МЕСТЕ ПАМЯТИ.
     РЕЖИМ 32 - ВЫКЛЮЧЕНИЕ ПРОВЕРКИ, КУДА НАПРАВЛЯЮТСЯ КОДЫ  КО-
МАНД. ПОЛЕЗЕН ДЛЯ УСКОРЕННОГО АССЕМБЛИРОВАНИЯ.

     НАПРИМЕР: РЕЖИМ 36 ПРОИЗВОДИТ БЫСТРОЕ АССЕМБЛИРОВАНИЕ, ПРИ
ЭТОМ НЕ ГЕНЕРИРУЕТСЯ ЛИСТИНГ И НЕ ПРОИЗВОДИТСЯ ПРОВЕРКА  РАЗМЕ-
ЩЕНИЯ КОДОВ КОМАНД.

     ВНИМАНИЕ! ЕСЛИ ИСПОЛЬЗУЕТСЯ РЕЖИМ 16, ТО ДИРЕКТИВА  АССЕМ-
БЛЕРА "ЕNT" НЕ ВЫЗОВЕТ НИКАКИХ РЕАКЦИИ.  ЧТОБЫ  ВЫЯСНИТЬ,  КУДА
ПОМЕЩЕНЫ КОДЫ КОМАНД, ИСПОЛЬЗУЕТСЯ КОМАНДА РЕДАКТОРА "X" -  ДЛЯ
ОПРЕДЕЛЕНИЯ КОНЦА ТЕКСТА ( ВТОРОЕ ЧИСЛО, ВЫВОДИМОЕ НА ЭКРАН ) И
ЗАТЕМ ДОБАВЛЯЕМ К НЕМУ РАЗМЕР ТАБЛИЦЫ СИМВОЛОВ + 2.

   АССЕМБЛИРОВАНИЕ ПРОИЗВОДИТСЯ В ДВА ПРОХОДА:

     1 ПРОХОД - ВЫЯВЛЯЮТСЯ ОШИБКИ И СОСТАВЛЯЕТСЯ ТАБЛИЦА СИМВО-
ЛОВ.

     2 ПРОХОД - ГЕНЕРИРУЮТСЯ КОДЫ КОМАНД И  ДАННЫХ  (  ЕСЛИ  НЕ
ИСПОЛЬЗУЕТСЯ РЕЖИМ 2).

     ВО ВРЕМЯ ПЕРВОГО ПРОХОДА НА ЭКРАН (ПРИНТЕР) НИЧЕГО НЕ  ВЫ-
ВОДИТСЯ, ЕСЛИ НЕ БЫЛО ОБНАРУЖЕНО ОШИБОК. В ПРОТИВНОМ СЛУЧАЕ НЕ-
ВЕРНАЯ СТРОКА БУДЕТ ОТОБРАЖЕНА НА ЭКРАНЕ С НОМЕРОМ  ОШИБКИ  ПОД
НЕЙ ( СМ. ПРИЛОЖЕНИЕ 4 ). ПОСЛЕ ЭТОГО НАЖМИТЕ "Е" ДЛЯ  ВОЗВРАТА
В РЕДАКТОР ИЛИ ЛЮБУЮ ДРУГУЮ КЛАВИШУ ДЛЯ ПРОДОЛЖЕНИЯ АССЕМБЛИРО-
ВАНИЯ СО СЛЕДУЮЩЕЙ СТРОКИ.

    В КОНЦЕ ПЕРВОГО ПРОХОДА ВЫВОДИТСЯ СООБЩЕНИЕ:

    " PАSS 1 ERRORS : NN".

     ПРИ ОБНАРУЖЕНИИ ОШИБОК АССЕМБЛИРОВАНИЕ  ОСТАНАВЛИВАЕТСЯ  И
ПЕРЕХОД КО ВТОРОМУ ПРОХОДУ НЕ ПРОИЗВОДИТСЯ. ЕСЛИ В ПОЛЕ ОПЕРАНДА
БЫЛИ ССЫЛКИ И МЕТКИ, НЕ ОБ'ЯВЛЕННЫЕ В ПОЛЕ МЕТОК, ТО  ВЫВОДИТСЯ
ПРЕДУПРЕЖДЕНИЕ:

     * WARNING * LABEL ABSENT (МЕТКА ОТСУТСТВУЕТ)  ДЛЯ  КАЖДОГО
НЕДОСТАЮЩЕГО ОБ'ЯВЛЕНИЯ МЕТКИ.

     ВО ВРЕМЯ ВТОРОГО ПРОХОДА ГЕНЕРИРУЮТСЯ  КОДЫ  КОМАНД  (ЕСЛИ
ЭТО НЕ БЫЛО ЗАПРЕЩЕНО ВЫБОРОМ РЕЖИМА 2).ЛИСТИНГ АССЕМБЛЕРА  ГЕ-
НЕРИРУЕТСЯ В ТОМ СЛУЧАЕ ,ЕСЛИ ОН НЕ БЫЛ ВЫКЛЮЧЕН ВЫБОРОМ РЕЖИМА
4 ИЛИ КОМАНДОЙ АССЕМБЛЕРА "*L-".

                ОБЫЧНАЯ ФОРМА ЛИСТИНГА

С000           210100           25             LABEL
                                                LD         HL,1
 1               6              15              21         26

     ПЕРВЫМ ОТОБРАЖАЕТСЯ ЗНАЧЕНИЕ СЧЕТЧИКА  ПАМЯТИ,ЕСЛИ  ТОЛЬКО
МНЕМОНИКА В ЭТОЙ СТРОКЕ НЕ ЯВЛЯЕТСЯ ОДНОЙ ИЗ  ПСЕВДОМНЕМОНИК  -
ORG,EQU ИЛИ ENT (СМ.РАЗДЕЛ 2,6). В  ЭТОМ  СЛУЧАЕ  ПЕРВЫМ  БУДЕТ
ПРЕДСТАВЛЕНО ЗНАЧЕНИЕ В ПОЛЕ ОПЕРАНДА ИНСТРУКЦИИ.
     ЭТА ЧАСТЬ ОБЫЧНО ВЫВОДИТСЯ ОБЫЧНО В ШЕСТНАДЦАТИРИЧНОМ  ВИ-
ДЕ,НО МОЖЕТ БЫТЬ ПРЕДСТАВЛЕНА  В  ДЕСЯТИЧНОМ,ЕСЛИ  ИСПОЛЬЗУЕТСЯ
КОМАНДА АССЕМБЛЕРА "*D+" (СМ. РАЗДЕЛ 2.8).
     СЛЕДУЮЩАЯ ЧАСТЬ (ОТ ПОЗИЦИИ 6, ДО 8 СИМВОЛОВ ДЛИНОЙ,  Т.Е.
ДО 4-Х БАЙТ) ЯВЛЯЕТСЯ КОДАМИ КОМАНД ИЛИ ДАННЫХ, ПОЛУЧЕННЫМИ ТЕ-
КУЩЕЙ ИНСТРУКЦИЕЙ (СМ. КОМАНДУ GENS3 "*C").
     ЗАТЕМ ИДЕТ НОМЕР СТРОКИ - ЧИСЛО В ДИАПАЗОНЕ ОТ 1 ДО  32656
     ПОЗИЦИИ 21-26 ПЕРВОЙ СТРОКИ СОДЕРЖАТ ПЕРВЫЕ 6 СИМВОЛОВ ЛЮ-
БОЙ МЕТКИ, ОБ'ЯВЛЕННОЙ В ЭТОЙ СТРОКЕ.
     СЛЕДУЮЩИЕ ДВЕ ЧАСТИ ОТНОСЯТСЯ ТОЛЬКО К  СИСТЕМАМ  С  УЗКИМ
ЭКРАНОМ - ПРИ ШИРИНЕ ЭКРАНА БОЛЬШЕ ЧЕМ 40 ПОЗИЦИЙ,  КАЖДАЯ  ЭК-
РАННАЯ СТРОКА ЛИСТИНГА АССЕМБЛЕРА СОДЕРЖИТСЯ ЦЕЛИКОМ  НА  ОДНОЙ
СТРОКЕ ЭКРАНА.
     ПОСЛЕ КАКОЙ-ЛИБО МЕТКИ ИДЕТ НОВАЯ СТРОКА - В НЕЙ  ПОКАЗАНА
МНЕМОНИКА В ПОЗИЦИЯХ 21-24, И В КОНЦЕ  -  КОММЕНТАРИИ,  КОТОРЫЕ
БЫЛИ ИСПОЛЬЗОВАНЫ В КОНЦЕ СТРОКИ.
     ТАКОЙ ФОРМАТ ВЫБРАН ДЛЯ УЛУЧШЕНИЯ ЧИТАЕМОСТИ  ЛИСТИНГА  НА
ЭКРАНАХ, КАК У ZX-SPECTRUM. GENS3 НЕ ОПРЕДЕЛЯЕТ ШИРИНУ  ЭКРАНА,
ПОТОМУ ЧТО ЭТО УВЕЛИЧИТ ОБ'ЕМ ПАМЯТИ И БУДЕТ  ОГРАНИЧИВАТЬ  ИС-
ПОЛЬЗОВАНИЕ СТАНДАРТНЫХ ПРОГРАММ ДЛЯ ZX-SPECTRUM.
     КОМАНДА "*C" АССЕМБЛЕРА МОЖЕТ ИСПОЛЬЗОВАТЬСЯ ДЛЯ ПОЛУЧЕНИЯ
БОЛЕЕ КОРОТКОЙ СТРОКИ ЛИСТИНГА АССЕМБЛЕРА - ЕЕ РЕЗУЛЬТАТОМ  БУ-
ДЕТ ИСКЛЮЧЕНИЕ 9 СИМВОЛОВ КОДОВ КОМАНД И ДАННЫХ, ЧТО  ПОЗВОЛЯЕТ
РАЗМЕСТИТЬ БОЛЬШИНСТВО СТРОК ЛИСТИНГА В ОДНОЙ  ЭКРАННОЙ  СТРОКЕ
(СМ. РАЗДЕЛ 2.8).
     СУЩЕСТВУЕТ ВОЗМОЖНОСТЬ МОДИФИЦИРОВАТЬ РАЗМЕЩЕНИЕ ЧАСТЕЙ  В
ЛИСТИНГЕ, ДЛЯ ЭТОГО НЕОБХОДИМО ВНЕСТИ ИЗМЕНЕНИЯ ПО 3-М  АДРЕСАМ
GENS3. КАК ЭТО СДЕЛАТЬ ПОКАЗАНО НИЖЕ.
     МЫ ДЕЛАЕМ РАЗЛИЧИЕ МЕЖДУ  СТРОКОЙ  АССЕМБЛЕРА,  ЯВЛЯЮЩЕЙСЯ
ТЕКУЩЕЙ СТРОКОЙ ЛИСТИНГА, СОДЕРЖАЩЕЙСЯ ВО ВНУТРЕННЕМ  БУФЕРЕ  И
ЭКРАННОЙ СТРОКОЙ -  СТРОКОЙ,  ПОЯВЛЯЮЩЕЙСЯ  НА  ЭКРАНЕ.  ОБЫЧНО
СТРОКА АССЕМБЛЕРА ВЫРАБАТЫВАЕТ БОЛЕЕ ЧЕМ ОДНУ ЭКРАННУЮ СТРОКУ.
     СОДЕРЖИМОЕ БАЙТА "START OF GENS3 + 51" УКАЗЫВАЕТ, С  КАКОЙ
ПОЗИЦИИ ( 5 ПО УМОЛЧАНИЮ )  БУДЕТ  ОПРЕДЕЛЕНА  ПЕРВАЯ  ЭКРАННАЯ
СТРОКА ДЛЯ ТЕКУЩЕЙ СТРОКИ АССЕМБЛЕРА. ИЗМЕНИТЕ ЭТОТ БАЙТ НА  0,
ЧТОБЫ РАЗВЕРНУТЬ СТРОКУ ( ПОЛЕЗНО ПРИ НАЛИЧИИ  ПРИНТЕРА  ПОЛНОЙ
ШИРИНЫ ) ИЛИ НА ЛЮБОЕ ДРУГОЕ ЗНАЧЕНИЕ ( <256 ) ДЛЯ ДРУГОЙ ПОЗИ-
ЦИИ.
     БАЙТ ПО АДРЕСУ "START OF GENS + 52 " ОПРЕДЕЛЯЕТ ПОЗИЦИЮ  (
НАЧИНАЯ С 1 ), С КОТОРОЙ БУДЕТ  НАЧИНАТЬСЯ  КАЖДАЯ  ПОСЛЕДУЮЩАЯ
СТРОКА - ПРОДОЛЖЕНИЕ.
     БАЙТ ПО АДРЕСУ "START OF GENS  +53  "  УКАЗЫВАЕТ,  СКОЛЬКО
СИМВОЛОВ ИЗ ОСТАТКА СТРОКИ АССЕМБЛЕРА БУДЕТ РАЗМЕЩЕНО НА ЭКРАН-
НОЙ СТРОКЕ ПОСЛЕ ПЕРВОЙ ЭКРАННОЙ СТРОКИ.
     НАПРИМЕР: ВЫ ХОТИТЕ, ЧТОБЫ ПЕРВАЯ ЭКРАННАЯ  СТРОКА  КАЖДОЙ
СТРОКИ АССЕМБЛЕРА СОДЕРЖАЛА 20 СИМВОЛОВ ( Т.Е. НЕ ВКЛЮЧАЛА ПОЛЕ
МЕТОК ) И ЧТОБЫ КАЖДАЯ ПОСЛЕДУЮЩАЯ ЭКРАННАЯ СТРОКА НАЧИНАЛАСЬ С
ПОЗИЦИИ 1 И ЗАПОЛНЯЛА ВСЮ СТРОКУ. ДОПУСТИМ, ВЫ ЗАГРУЗИЛИ  GENS3
С АДРЕСА 5Е00 (24064 ДЕСЯТИЧНОЕ), ТОГДА ДЛЯ ПОЛУЧЕНИЯ ТРЕБУЕМО-
ГО ВЫПОЛНИТЕ:

       POKE 24115,20: POKE 24116,1: POKE 24117,34

     (ДОЛЖЕН БЫТЬ МИНИМУМ ОДИН ПРОБЕЛ В НАЧАЛЕ КАЖДОЙ  ПОСЛЕДУ-
ЮЩЕЙ ЭКРАННОЙ СТРОКИ).
     ВЫШЕУКАЗАННАЯ МОДИФИКАЦИЯ ПРИЕМЛЕМА, ЕСЛИ  НЕ  ИСПОЛЬЗОВА-
ЛАСЬ КОМАНДА "*C" (ЕЕ ПРИМЕНЕНИЕ ЗАСТАВЛЯЕТ  СТРОКИ  АССЕМБЛЕРА
РАСПОЛАГАТЬСЯ В ЛИСТИНГЕ, КАК НЕОБХОДИМО).
     ЛИСТИНГ АССЕМБЛЕРА МОЖЕТ БЫТЬ ПРИОСТАНОВЛЕН В КОНЦЕ СТРОКИ
ОДНОВРЕМЕННЫМ НАЖАТИЕМ КЛАВИШ CAPS SHIFT И SPFCE, ЗАТЕМ НАЖМИТЕ
"Е" ДЛЯ ВОЗВРАТА В РЕДАКТОР ИЛИ ЛЮБУЮ ДРУГУЮ КЛАВИШУ  ДЛЯ  ПРО-
ДОЛЖЕНИЯ ЛИСТИНГА.

   ВО ВРЕМЯ ВТОРОГО ПРОХОДА МОГУТ ВСТРЕТИТЬСЯ ОШИБКИ:
* ERROR 10 * (СМ.ПРИЛОЖЕНИЕ А ) И " BAD ORG ".
    В КОНЦЕ ВТОРОГО ПРОХОДА ВЫВОДИТСЯ СООБЩЕНИЕ:

      "PASS 2 ERRORS : NN "
С ПОСЛЕДУЮЩИМ СООБЩЕНИЕМ ОБ ОТСУТСТВУЮЩИХ МЕТКАХ (СМ. ВЫШЕ ).
ЗАТЕМ ВЫВОДИТСЯ СООБЩЕНИЕ:

     "TABLE USED : XXXX FROM YYYY "

     КОТОРОЕ ИНФОРМИРУЕТ ОБ ИСПОЛЬЗОВАНИИ СИМВОЛЬНОЙ ТАБЛИЦЫ  И
ЕЕ МАКСИМАЛЬНОМ РАЗМЕРЕ. ЗАТЕМ , ЕСЛИ ДИРЕКТИВА  ENT  БЫЛА  ИС-
ПОЛЬЗОВАНА ПРАВИЛЬНО, ПОЯВИТСЯ СООБЩЕНИЕ:

      "EXECUTES: NNNNN "

     КОТОРОЕ ПОКАЗЫВАЕТ ТЕКУЩИЙ АДРЕС ОБ'ЕКТНОГО КОДА. ВЫ МОЖЕ-
ТЕ ВЫПОЛНИТЬ КОД, ИСПОЛЬЗУЯ КОМАНДУ РЕДАКТОРА "R". БУДЬТЕ  ВНИ-
МАТЕЛЬНЫ, НЕ ИСПОЛЬЗУЙТЕ ЕЕ, ПОКА УСПЕШНО НЕ ЗАВЕРШИТСЯ  АССЕМ-
БЛИРОВАНИЕ И НЕ ПОЛУЧИЛИ СООБЩЕНИЕ : " ЕXECUTES : NNNNN ".
     В КОНЦЕ, ЕСЛИ БЫЛ ЗАКАЗАН РЕЖИМ, ПОЯВИТСЯ АЛФАВИТНЫЙ  СПИ-
СОК МЕТОК И СВЯЗАННЫХ С НИМИ ЗНАЧЕНИЙ. ЧИСЛО ЗНАЧЕНИЙ,  ОТОБРА-
ЖАЕМЫХ В ОДНОЙ СТРОКЕ, МОЖЕТ БЫТЬ ИЗМЕНЕНО ПОСРЕДСТВОМ КОМАНДЫ:
     POKE "START OF GENS3 + 50  "  ,(НЕОБХОДИМОЕ  ЗНАЧЕНИЕ)  ПО
УМОЛЧАНИЮ ОНО РАВНО 2. ПОСЛЕ ЭТОГО УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ РЕДАК-
ТОРУ.


         2.2. ФОРМАТ УТВЕРЖДЕНИЯ АССЕМБЛЕРА.
         __________________________________


     КАЖДАЯ СТРОКА ТЕКСТА, ОБРАБАТЫВАЕМАЯ GENS3,  ДОЛЖНА  ИМЕТЬ
СЛЕДУЮЩИЙ ФОРМАТ, ГДЕ НЕКОТОРЫЕ ПОЛЯ НЕ ОБЯЗАТЕЛЬНЫ:

LABEL     MNEMONIK    OPERAND      COMENT

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

START LD         HL,LABEL       "PICK UP" LABEL

     ПРОБЕЛЫ И ЗНАКИ ТАБУЛЯЦИИ (ВСТАВЛЯЕМЫЕ РЕДАКТОРОМ)  ОБЫЧНО
ИГНОРИРУЮТСЯ. СТРОКА РАССМАТРИВАЕТСЯ ТАК:  ОПРЕДЕЛЯЕТСЯ  ПЕРВЫЙ
СИМВОЛ И ПОСЛЕДУЮЩИЕ ДЕЙСТВИЯ ЗАВИСЯТ ОТ ЕГО ЗНАЧЕНИЯ:

     ";" - ВСЯ СТРОКА РАССМАТРИВАЕТСЯ КАК КОММЕНТАРИЙ, Т.Е. ИГ-
НОРИРУЕТСЯ.

     "+" - ОЖИДАЕТСЯ СЛЕДУЮЩИЙ СИМВОЛ,С КОТОРЫМ ОБРАЗУЕТСЯ  КО-
МАНДА АССЕМБЛЕРА (СМ. РАЗДЕЛ 2.8). ВСЕ  СИМВОЛЫ  ПОСЛЕ  КОМАНДЫ
ВОСПРИНИМАЮТСЯ КАК КОММЕНТАРИИ.

     " " - ЗНАК КОНЦА СТРОКИ ПРОСТО ИГНОРИРУЕТСЯ

     " " - (ПРОБЕЛ ИЛИ ТАБУЛЯЦИЯ). ЕСЛИ ПЕРВЫЙ ЗНАК ПРОБЕЛ  ИЛИ
ТАБУЛЯЦИЯ, ТО GENS3 ОЖИДАЕТ СЛЕДУЮЩИЙ, ОТЛИЧНЫЙ ОТ ПРОБЕЛА  ИЛИ
ТАБУЛЯЦИИ, СИМВОЛ И СЧИТАЕТ  ЕГО  НАЧАЛОМ  МНЕМОНИКИ  ПРОЦЕССОРА
Z80.

     ЕСЛИ ПЕРВЫЙ СИМВОЛ СТРОКИ - ЛЮБОЙ ДРУГОЙ  ЗНАК,  TO  GENS3
СЧИТАЕТ ЕГО НАЧАЛОМ МЕТКИ (СМ.  РАЗДЕЛ  2.3).  ПОСЛЕ  ОБРАБОТКИ
МЕТКИ ИЛИ, ЕСЛИ ПЕРВЫЙ СИМВОЛ БЫЛ ПРОБЕЛ ИЛИ ТАБУЛЯЦИЯ,  АССЕМ-
БЛЕР ИЩЕТ ЗНАЧАЩИЙ СИМВОЛ И ОЖИДАЕТ, ЧТО ЭТО ДОЛЖЕН БЫТЬ СИМВОЛ
"КОНЕЦ СТРОКИ" ИЛИ НАЧАЛО МНЕМОНИКИ Z80 (СМ. ПРИЛОЖЕНИЕ  В)  ДО
ЧЕТЫРЕХ СИМВОЛОВ ДЛИНОЙ И ОГРАНИЧЕННЫЙ ЗНАКАМИ "ПРОБЕЛ/ ТАБУЛЯ-
ЦИЯ ИЛИ "КОНЕЦ СТРОКИ". ЕСЛИ МНЕМОНИКА ПРИГОДНА И ТРЕБУЕТ ОДНО-
ГО ИЛИ НЕСКОЛЬКИХ ОПЕРАНДОВ, ТО НАХОДИТСЯ И ОБРАБАТЫВАЕТСЯ ПОЛЕ
ОПЕРАНДОВ. В ПОЛЕ ОПЕРАНДА МОГУТ ПРИСУТСТВОВАТЬ ОДНИ МЕТКИ, ЭТО
ПОЛЕЗНО ДЛЯ УЛУЧШЕНИЯ ЧИТАЕМОСТИ  ЛИСТИНГА.  КОММЕНТАРИИ  МОГУТ
НАХОДИТСЯ В ЛЮБОМ МЕСТЕ ПОСЛЕ ПОЛЯ ОПЕРАНДОВ ИЛИ, ЕСЛИ МНЕМОНИ-
КА НЕ ТРЕБУЕТ ОПЕРАНДОВ, ПОСЛЕ ПОЛЯ МНЕМОНИКИ.

                  2.3.  МЕТКИ
                  ___________

     МЕТКИ - ЭТО СИМВОЛ, ЗАМЕНЯЮЩИЙ СОБОЮ ДО 16 БИТ ИНФОРМАЦИИ.
МЕТКА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ДЛЯ УКАЗАНИЯ АДРЕСА ОТДЕЛЬНОЙ ИН-
СТРУКЦИИ ИЛИ ОБЛАСТИ ДАННЫХ., ИЛИ  КАК  КОНСТАНТА  (ПОСРЕДСТВОМ
ДИРЕКТИВЫ EQU. СМ. РАЗДЕЛ 2.7).

     ЕСЛИ МЕТКА, АССОЦИИРУЕТСЯ С ВЕЛИЧИНОЙ, ПРЕВЫШАЮЩЕЙ  МАКСИ-
МАЛЬНУЮ 8 БИТОВУЮ КОНСТАНТУ, БУДЕТ ИСПОЛЬЗОВАНА В КАЧЕСТВЕ  ОД-
НОБАЙТОВОЙ КОНСТАНТЫ, ТО АССЕМБЛЕР ВЫДАЕТ СООБЩЕНИЕ ОБ ОШИБКЕ:

     LABEL    EQU         1234
              LD          A,LABEL

И ВЫДАСТ ВО ВРЕМЯ ВТОРОГО ПРОХОДА АССЕМБЛЕРА ОШИБКУ:

     * ERROR 10 *

     МЕТКА МОЖЕТ СОДЕРЖАТЬ ЛЮБОЕ КОЛИЧЕСТВО ДОПУСТИМЫХ СИМВОЛОВ
(СМ. НИЖЕ), ХОТЯ АССЕМБЛЕР РАЗЛИЧАЕТ МЕТКИ ТОЛЬКО ПО  ПЕРВЫМ  6
СИМВОЛАМ. МЕТКА НЕ ДОЛЖНА СОВПАДАТЬ С ЗАРЕЗЕРВИРОВАННЫМ  СЛОВОМ
(СМ. ПРИЛОЖЕНИЕ В), ХОТЯ ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА МОГУТ  ВХОДИТЬ
В МЕТКУ КАК ЧАСТЬ ЕЕ.

      СИМВОЛЫ, КОТОРЫЕ ДОПУСТИМЫ В МЕТКЕ:

 0....9, $ И А (БОЛЬШАЯ)........Z (МАЛАЯ)

     ВНИМАНИЕ ! В ДИАПАЗОН А.....Z ПОПАДАЮТ КРОМЕ  ПРОПИСНЫХ  И
ЗАГЛАВНЫХ БУКВ СИМВОЛЫ "[", "", "]", "", "", .

   LOOP, ALONGLABEL , L[1], L[2], B,
   LDIR (LDIR НЕ ЗАРЕЗЕРВИРОВАНО, TWO5.

        2.4. СЧЕТЧИК РАЗМЕЩЕНИЯ    (LOCATION COUNTER).
        _______________________

     АССЕМБЛЕР ОБСЛУЖИВАЕТ СЧЕТЧИК РАЗМЕЩЕНИЯ ТАК,  ЧТО  СИМВОЛ
МЕТКИ МОЖЕТ АССОЦИИРОВАН С АДРЕСОМ ИЛИ ЧИСЛОМ И ВВЕДЕН В ТАБЛИ-
ЦУ СИМВОЛОВ. ЗНАЧЕНИЕ СИМВОЛА (СИМВОЛОВ) ЗАДАЕТСЯ ПРИ ПОМОЩИ ДИ-
РЕКТИВЫ ORG (СМ. РАЗДЕЛ 2.6).

     СИМВОЛ "$" МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН ДЛЯ  ССЫЛКИ  НА  ТЕКУЩУЮ
ВЕЛИЧИНУ СЧЕТЧИКА. НАПРИМЕР: LD HL,$+5 ВЫРАБАТЫВАЕТ КОД,  КОТО-
РЫЙ ЗАГРУЗИТ РЕГИСТРОВУЮ ПАРУ HL ЗНАЧЕНИЕМ, НА  5  БОЛЬШЕ,  ЧЕМ
ТЕКУЩЕЕ ЗНАЧЕНИЕ СЧЕТЧИКА.

                2.5. ТАБЛИЦА СИМВОЛОВ
                _____________________

     КОГДА МЕТКА ВСТРЕЧАЕТСЯ В ПЕРВЫЙ РАЗ, ОНА ВВОДИТСЯ В  ТАБ-
ЛИЦУ СИМВОЛОВ ВМЕСТЕ С ДВУМЯ УКАЗАТЕЛЯМИ, КОТОРЫЕ УКАЗЫВАЮТ  В
ДАЛЬНЕЙШЕМ, КАК ЭТА МЕТКА ОТНОСИТСЯ (В СМЫСЛЕ ЛЕКСИГРАФИЧЕСКОГО
УПОРЯДОЧИВАНИЯ) К ДРУГИМ МЕТКАМ В ТАБЛИЦЕ.

     ЧИСЛОВОЕ ЗНАЧЕНИЕ МЕТКИ (ТАКЖЕ ВВОДИМОЕ В ТАБЛИЦУ),  ОПРЕ-
ДЕЛЯЕТСЯ СЧЕТЧИКОМ РАЗМЕЩЕНИЯ (МЕТКА ВСТРЕТИЛАСЬ В ПОЛЕ  МЕТОК)
ИЛИ ДИРЕКТИВОЙ АССЕМБЛЕРА EQU.
     ТАКАЯ ТАБЛИЦА, НАЗЫВАЕМАЯ ТАБЛИЦЕЙ СИМВОЛОВ В ВИДЕ  ДВОИЧ-
НОГО ДЕРЕВА, ПОЗВОЛЯЕТ ВВОДИТЬ СИМВОЛЫ И ПОЛУЧАТЬ ИХ  НАЗАД  ИЗ
ТАБЛИЦЫ ЗА ОЧЕНЬ КОРОТКОЕ ВРЕМЯ, ЧТО НЕОБХОДИМО  ДЛЯ  ТРАНСЛЯЦИИ
БОЛЬШИХ ПРОГРАММ.
     РАЗМЕР ЭКВИВАЛЕНТА ТАБЛИЦЫ СИМВОЛОВ КОЛЕБЛЕТСЯ ОТ 8 ДО  13
БАЙТ, В ЗАВИСИМОСТИ ОТ ДЛИНЫ СИМВОЛА.

     ЕСЛИ В ТЕЧЕНИЕ ПЕРВОГО ПРОХОДА  АССЕМБЛЕР  ОБНАРУЖИТ,  ЧТО
СИМВОЛ ОПРЕДЕЛЕН БОЛЕЕ ОДНОГО РАЗА, ВЫДАЕТСЯ  ОШИБКА,  ТАК  КАК
НЕИЗВЕСТНО, КАКОЕ ИЗ ЗНАЧЕНИЙ АССОЦИИРОВАТЬ С СИМВОЛОМ.

       * ЕRRОRS 4 *

     ЕСЛИ СИМВОЛ НЕ АССОЦИИРУЕТСЯ СО ЗНАЧЕНИЕМ ВООБЩЕ, ТОГДА  В
КОНЦЕ АССЕМБЛИРОВАНИЯ БУДЕТ ВЫДАНО СООБЩЕНИЕ:

      * WARNING * SYMBOL ABSENT

OТСУТСТВИЕ ОПРЕДЕЛЕНИЯ СИМВОЛА НЕ ПРЕКРАЩАЕТ АССЕМБЛИРОВАНИЯ.

     ВНИМАНИЕ ! ТОЛЬКО ПЕРВЫЕ ШЕСТЬ ЗНАКОВ ВВОДЯТСЯ  В  ТАБЛИЦУ
СИМВОЛОВ. ЭТО СДЕЛАНО ДЛЯ УМЕНЬШЕНИЯ РАЗМЕРА ТАБЛИЦЫ.

     В КОНЦЕ АССЕМБЛИРОВАНИЯ ВЫДАЕТСЯ СООБЩЕНИЕ,  ПОКАЗЫВАЮЩЕЕ,
СКОЛЬКО ИСПОЛЬЗОВАНО ИЗ ОТВЕДЕННОЙ ДЛЯ ТАБЛИЦЫ СИМВОЛОВ ПАМЯТИ.
ДЛЯ ИЗМЕНЕНИЯ ОБ'ЕМА ПАМЯТИ, ОТВОДИМОЙ ПОД ТАБЛИЦУ, УКАЖИТЕ НЕ-
ОБХОДИМОЕ ЗНАЧЕНИЕ В ОТВЕТЕ НА ВОПРОС:

        "ТАBLE SIZE :" (СМ.РАЗДЕЛ 2.8)


               2.6. ВЫРАЖЕНИЯ
               ______________

     ВЫРАЖЕНИЯ - ЭТО ЧАСТЬ ОПЕРАНДА, СОСТОЯЩАЯ ИЗ ОДНОГО  ТЕРМА
ИЛИ ИХ КОМБИНАЦИИ, РАЗДЕЛЕННЫХ ОПЕРАТОРАМИ.

  ТЕРМ   - ДЕСЯТИЧНАЯ КОНСТАНТА, НАПРИМЕР 1988
         - ШЕСТНАДЦАТИРИЧНАЯ КОНСТАНТА, НАПРИМЕР 496
         - ДВОИЧНАЯ КОНСТАНТА, НАПРИМЕР %101010
         - СИМВОЛЬНАЯ КОНСТАНТА, НАПРИМЕР "А"
         - МЕТКА, НАПРИМЕР L1234
         - СИМВОЛ $ - ОБОЗНАЧЕНИЕ ТЕКУЩЕГО ЗНАЧЕНИЯ
           СЧЕТЧИКА РАЗМЕЩЕНИЯ.

     ОПЕРАТОР - "+", "-", ""(ЛОГИЧЕСКОЕ AND),  "@"  (ЛОГИЧЕСКОЕ
ОR), "!" (ЛОГИЧЕСКОЕ XOR), "*" (ЦЕЛОЕ  УМНОЖЕНИЕ),  "/"  (ЦЕЛОЕ
ДЕЛЕНИЕ), "?" (ФУНКЦИЯ MOD, A?B=A-(A/B)*B).

     ПРИМЕЧАНИЕ: СИМВОЛ " " ИСПОЛЬЗУЕТСЯ ДЛЯ  ОБОЗНАЧЕНИЯ  ШЕС-
ТНАДЦАТИРИЧНОГО ЧИСЛА.

     "%" - ДВОИЧНОГО ЧИСЛА, " " - ДЛЯ СИМВОЛЬНЫХ КОНСТАНТ.

     GENS3 УСЕКАЕТ ЧИСЛОВЫЕ КОНСТАНТЫ ДО ВЕЛИЧИНЫ ИХ ШЕСТНАДЦА-
ТИ МЛАДШИХ БИТОВ (Т.Е. ПО МОДУЛЮ 65536).  ТАК  НАПРИМЕР,  70016
СТАНЕТ 4480, А 5А2С4 СТАНЕТ А2С4.
     ВНИМАНИЕ ! ПРИОРИТЕТ ОПЕРАЦИЙ НЕ ПОДДЕРЖИВАЕТСЯ, Т.Е.  ВЫ-
ЧИСЛЕНИЯ ЗНАЧЕНИЯ ВЫРАЖЕНИЯ ОСУЩЕСТВЛЯЕТСЯ СЛЕВА НАПРАВО.
     ЕСЛИ ВЫРАЖЕНИЕ ЗАКЛЮЧАЕТСЯ В СКОБКИ, ЭТО ОЗНАЧАЕТ, ЧТО ОНО
ДАЕТ ЗНАЧЕНИЕ АДРЕСА, ПО КОТОРОМУ ХРАНИТСЯ  ОПЕРАНД.  НАПРИМЕР:
LD HL,(LOC+5) ЗАГРУЗИТ РЕГИСТРОВУЮ ПАРУ  HL  ШЕСТНАДЦАТИБИТОВЫМ
ЧИСЛОМ, ХРАНЯЩИМСЯ В ЯЧЕЙКАХ ПАМЯТИ С АДРЕСАМИ LOC+5 И LOC+6.
     НЕКОТОРЫЕ ИНСТРУКЦИИ Z80  (НАПРИМЕР  JR  И  DJNR)  ТРЕБУЮТ
ВОСЬМИБИТОВЫХ ОПЕРАНДОВ В КАЧЕСТВЕ СМЕЩЕНИЯ ОТНОСИТЕЛЬНОЙ АДРЕ-
САЦИИ. GENS3 АВТОМАТИЧЕСКИ  ВЫЧИСЛЯЕТ  ЭТО  СМЕЩЕНИЕ  (ЗНАЧЕНИЕ
LOCATION COUNTER СЛЕДУЮЩЕЙ ИНСТРУКЦИИ МИНУС ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ
В ПОЛЕ ОПЕРАНДА ТЕКУЩЕЙ ИНСТРУКЦИИ). ПРИ ЭТОМ ЗНАЧЕНИЕ СМЕЩЕНИЯ
ДОЛЖНО НАХОДИТСЯ В ДИАПАЗОНЕ ОТ -127 ДО + 127. ДОПУСКАЕТСЯ УКА-
ЗЫВАТЬ ОТНОСИТЕЛЬНОЕ СМЕЩЕНИЕ ОТ ТЕКУЩЕЙ ИНСТРУКЦИИ. ДЛЯ  ЭТОГО
В ПОЛЕ ОПЕРАНДА ДОЛЖНО ПРИСУТСТВОВАТЬ ВЫРАЖЕНИЕ:  $+<СМЕЩЕНИЕ>,
А СМЕЩЕНИЕ МОЖЕТ ПРИНИМАТЬ ЗНАЧЕНИЕ ОТ -126 ДО 129.

    ПРИМЕРЫ ПРАВИЛЬНЫХ ВЫРАЖЕНИЙ:

   5000 - LABEL
  %1001101 ! %1011 -----------   %1000110
   3456 ?  1000    -----------    456
  4+5*3-8          -----------   19
  $-LFBEL+8        -----------
  2347/7-8         -----------   334
  "A"+128
  "Y"-";"+7
  (5*LABEL-%1000  %1111)
  17 @ %1000

     ВНИМАНИЕ ! ПРОБЕЛЫ МОГУТ БЫТЬ ВСТАВЛЕНЫ  МЕЖДУ  ТЕРМАМИ  И
ОПЕРАТОРАМИ, НО НЕ ВНУТРИ ТЕРМОВ.

     ЕСЛИ РЕЗУЛЬТАТ УМНОЖЕНИЯ ПРЕВЫСИТ ПО  АБСОЛЮТНОЙ  ВЕЛИЧИНЕ
32767, ТОГДА ПОЯВИТСЯ СООБЩЕНИЕ "*ERROR 14 *".



              2.7. ДИРЕКТИВЫ АССЕМБЛЕРА.
              _________________________

     GENS3 РАСПОЗНАЕТ НЕКОТОРЫЕ МНЕМОНИКИ, НАЗЫВАЕМЫЕ  ДИРЕКТИ-
ВАМИ АССЕМБЛЕРА. ОНИ НЕ ОКАЗЫВАЮТ ВОЗДЕЙСТВИЯ НА ПРОЦЕССОР  Z80
ВО ВРЕМЯ ВЫПОЛНЕНИЯ ОТТРАНСЛИРОВАННОЙ ПРОГРАММЫ. Т.Е. НЕ  ТРАН-
СЛИРУЮТСЯ В ВЫПОЛНЯЕМЫЕ КОМАНДЫ, ОНИ ТОЛЬКО УПРАВЛЯЮТ ПРОЦЕССОМ
ТРАНСЛЯЦИИ И ВЛИЯЮТ НА РЕЗУЛЬТИРУЮЩИЙ ОБЪ'ЕКТНЫЙ КОД.

       ORG <ВЫРАЖЕНИЕ>

     ПРИСВАИВАЕТ  ЗНАЧЕНИЕ   ВЫРАЖЕНИЯ   УКАЗАТЕЛЮ   РАЗМЕЩЕНИЯ
(LOCATION COUNTER). ЕСЛИ НЕ ВЫБРАНЫ РЕЖИМЫ 2 И/ИЛИ 16,  ТО  РЕ-
ЗУЛЬТАТОМ ВЫПОЛНЕНИЯ ДИРЕКТИВЫ ОRG БУДЕТ ЗАПИСЬ  РЕЗУЛЬТИРУЮЩИХ
В УКАЗАННЫЕ АДРЕСА, ПРИ ЭТОМ  ВОЗМОЖНО  ВОЗНИКНОВЕНИЕ  СИТУАЦИИ
"BAD ORG" И АССЕМБЛИРОВАНИЕ ПРЕКРАТИТСЯ (СМ. РАЗДЕЛ 2.0 ДЛЯ ДЕ-
ТАЛИЗАЦИИ ВОЗДЕЙСТВИЯ РЕЖИМОВ 2 И 16 НА ИСПОЛЬЗОВАНИЕ ORG).

       EQU <ВЫРАЖЕНИЕ>

     ДИРЕКТИВА ДОЛЖНА ПРЕДВАРЯТЬСЯ МЕТКОЙ. УСТАНАВЛИВАЕТ ЗНАЧЕ-
НИЕ МЕТКИ РАВНЫМ ЗНАЧЕНИЮ ВЫРАЖЕНИЯ. ВЫРАЖЕНИЕ НЕ ДОЛЖНО СОДЕР-
ЖАТЬ СИМВОЛОВ, ЗНАЧЕНИЯ КОТОРЫХ ЕЩЕ НЕ ОПРЕДЕЛЕНЫ.

       DEFB <ВЫРАЖЕНИЕ>,<ВЫРАЖЕНИЕ>.....

     КАЖДОЕ ВЫРАЖЕНИЕ ДОЛЖНО ОПРЕДЕЛЯТЬ 8 БИТОВ, БАЙТУ С  ТЕКУ-
ЩИМ АДРЕСОМ ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ. LOCATION  COUNTER
УВЕЛИЧИВАЕТСЯ НА 1. ПОВТОРЯЕТСЯ ДЛЯ КАЖДОГО ВЫРАЖЕНИЯ.

       DEFN <ВЫРАЖЕНИЕ>,<ВЫРАЖЕНИЕ>.....

     СЛОВУ (2 БАЙТА) С ТЕКУЩИМ АДРЕСОМ  ПРИСВАИВАЕТСЯ  ЗНАЧЕНИЕ
ВЫРАЖЕНИЯ. LOCATION COUNTER УВЕЛИЧИВАЕТСЯ НА 2. В ПАМЯТИ РАЗМЕ-
ЩАЕТСЯ СНАЧАЛА МЛАДШИЙ БАЙТ, А ЗАТЕМ СТАРШИЙ.

       DEFS <ВЫРАЖЕНИЕ>

     УВЕЛИЧИВАЕТ LOCATION COUNTER НА ВЕЛИЧИНУ ВЫРАЖЕНИЯ - ЭКВИ-
ВАЛЕНТ РЕЗЕРВИРОВАНИЯ БЛОКА ПАМЯТИ  РАЗМЕРОМ,  РАВНЫМ  ЗНАЧЕНИЮ
ВЫРАЖЕНИЯ.

       DEFM <СТРОКА>

     ЗАПИСЫВАЕТ N БАЙТ ASCII - ПРЕДСТАВЛЕНИЯ  СТРОКИ.  N  MОЖЕТ
ИЗМЕНЯТЬСЯ ОТ 1 ДО 256, ХОТЯ НА ПРАКТИКЕ ДЛИНА СТРОКИ ОГРАНИЧЕ-
НА РЕДАКТОРОМ. ПЕРВЫЙ ЗНАК В ПОЛЕ ОПЕРАНДА ТРАКТУЕТСЯ КАК ОГРА-
НИЧИТЕЛЬ СТРОКИ И В ПАМЯТЬ ЗАПИСЫВАЮТСЯ ASCII - КОДЫ  СИМВОЛОВ,
РАСПОЛОЖЕННЫХ МЕЖДУ ОГРАНИЧИТЕЛЯМИ.

     ENT <ВЫРАЖЕНИЕ>

     УСТАНАВЛИВАЕТ ИСПОЛНИТЕЛЬНЫЙ АДРЕС АССЕМБЛИРОВАННОГО  КОДА
РАВНЫМ ЗНАЧЕНИЮ ВЫРАЖЕНИЯ. ИСПОЛЬЗУЕТСЯ В КОМАНДЕ РЕДАКТОРА "R"
(СМ. ГЛАВУ 3).
   НЕЛЬЗЯ ЗАДАВАТЬ ENT БЕЗ УКАЗАТЕЛЯ ИСПОЛНИТЕЛЬНОГО АДРЕСА.



           2.8. ДИРЕКТИВЫ УСЛОВНОЙ ТРАНСЛЯЦИИ.
           __________________________________

     ДИРЕКТИВЫ УСЛОВНОЙ ТРАНСЛЯЦИИ ПОЗВОЛЯЮТ ПРОГРАММИСТУ ВКЛЮ-
ЧАТЬ В ПРОГРАММУ СЕКЦИИ ТЕКСТА, В ЗАВИСИМОСТИ ОТ ВЫПОЛНЕНИЯ ЗА-
ДАННЫХ УСЛОВИЙ. ЭТО ДОСТИГАЕТСЯ ВЫПОЛНЕНИЕМ СЛЕДУЮЩИХ ДИРЕКТИВ:

      "IF", "ELSE", "END"

      IF <ВЫРАЖЕНИЕ>

     ЕСЛИ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ РАВНО НУЛЮ, АССЕМБЛИРОВАНИЕ  ПРЕК-
РАЩАЕТСЯ ДО ТЕХ ПОР, ПОКА НЕ ВСТРЕТИТСЯ ДИРЕКТИВА ELSE ИЛИ END.

      ELSE

     ЭТА ДИРЕКТИВА "ВКЛЮЧАЕТ" ИЛИ "ВЫКЛЮЧАЕТ"  АССЕМБЛИРОВАНИЕ.
ЕСЛИ АССЕМБЛИРОВАНИЕ ВЫКЛЮЧЕНО БЫЛО "ВЫКЛЮЧЕНО" И НАОБОРОТ.

      ЕND

     ЗАВЕРШАЕТ БЛОК УСЛОВНОЙ ТРАНСЛЯЦИИ, Т.Е. "ВКЛЮЧАЕТ" АССЕМ-
БЛИРОВАНИЕ, ЕСЛИ ОНО БЫЛО "ВЫКЛЮЧЕНО" ДИРЕКТИВАМИ IF ИЛИ ELSE.

      ПРИМЕЧАНИЕ:

     ВЛОЖЕННОСТЬ ДИРЕКТИВ УСЛОВНОЙ ТРАНСЛЯЦИИ НЕ ДОПУСКАЕТСЯ  И
НЕ КОНТРОЛИРУЕТСЯ  ПРОГРАММНО,  ПОЭТОМУ  ПОПЫТКИ  ИСПОЛЬЗОВАНИЯ
ВЛОЖЕННЫХ ДИРЕКТИВ МОГУТ ПРИВЕСТИ К  НЕПРЕДСКАЗУЕМЫМ  РЕЗУЛЬТА-
ТАМ.



               2.9. КОМАНДЫ АССЕМБЛЕРА.
               _______________________

     КОМАНДЫ АССЕМБЛЕРА, КАК И ЕГО ДИРЕКТИВЫ, НЕ ПЕРЕВОДЯТСЯ  В
КОДЫ И НЕ ВЛИЯЮТ НА РЕЗУЛЬТИРУЮЩИЙ ОБ'ЕКТНЫЙ  КОД.  ОНИ  ТОЛЬКО
УПРАВЛЯЮТ ФОРМАТОМ ЛИСТИНГА.

     *Е         ВЫЗЫВАЕТ ВКЛЮЧЕНИЕ В ЛИСТИНГ ТРЕХ ПУСТЫХ СТРОК,
ЧТО ПОЛЕЗНО ДЛЯ РАЗДЕЛЕНИЯ МОДУЛЕЙ.

     *Н         <СТРОКА>
     СТРОКА, УКАЗАННАЯ В КОМАНДЕ, СЧИТАЕТСЯ ЗАГОЛОВКОМ И  ПОСЛЕ
КОМАНДЫ "*Е" АССЕМБЛЕР ПОМЕЩАЕТ ЭТОТ ЗАГОЛОВОК В  ЛИСТИНГ.  КО-
МАНДА "*Н" АВТОМАТИЧЕСКИ ОСУЩЕСТВЛЯЕТ "*Е".

     *S         ВЫЗЫВАЕТ ПРИОСТАНОВКУ ВЫДАЧИ ЛИСТИНГА НА ЭКРАН
(НО НЕ НА ПРИНТЕР).

     *L-        ПРЕКРАЩАЕТ ВЫДАЧУ ЛИСТИНГА, НАЧИНАЯ С  ТЕКУЩЕЙ
СТРОКИ.

     *L+        ВОЗОБНОВЛЯЕТ ВЫДАЧУ ЛИСТИНГА, НАЧИНАЯ С ТЕКУЩЕЙ
СТРОКИ

     *D+        ВЫЗЫВАЕТ ВЫДАЧУ ЗНАЧЕНИЙ LOCANION COUNTER В ДЕ-
СЯТИЧНОЙ СИСТЕМЕ СЧИСЛЕНИЯ ВМЕСТО  ШЕСТНАДЦАТИРИЧНОЙ.  ЗНАЧЕНИЯ
ВЫВОДЯТСЯ БЕЗ ОТМЕТКИ СИСТЕМЫ СЧИСЛЕНИЯ.

     *D-       ВЫЗЫВАЕТ ВЫДАЧУ  ЗНАЧЕНИЙ  LOCANION  COUNTER  В
ШЕСТНАДЦАТИРИЧНОЙ СИСТЕМЕ СЧИСЛЕНИЯ

     *C-       ПРЕКРАЩАЕТ ВКЛЮЧЕНИЕ В ЛИСТИНГ ПОЛУЧЕННЫХ  КОДОВ
КОМАНД, СОКРАЩАЯ ДЛИНУ СТРОКИ ЛИСТИНГА НА 9 СИМВОЛОВ. ПОЗВОЛЯЕТ
РАЗМЕЩАТЬ БОЛЬШИНСТВО АССЕМБЛИРОВАННЫХ СТРОК НА ОДНОЙ  ИЗ  32-Х
СИМВОЛЬНОЙ ЭКРАННОЙ СТРОКЕ.

     *C+       ВОЗВРАЩАЕТ К ПОЛНОМУ ЛИСТИНГУ  АССЕМБЛЕРА,  ОПИ-
САННОМУ В РАЗДЕЛЕ 2.0.

     *F        <ИМЯ ФАЙЛА>.

     ЭТО ОЧЕНЬ МОЩНАЯ КОМАНДА, ПОЗВОЛЯЮЩАЯ АССЕМБЛИРОВАТЬ ПРОГ-
РАММЫ, ЗАПИСАННЫЕ НА  МАГНИТНОЙ  ЛЕНТЕ.  ПРОИЗВОДИТ  СЧИТЫВАНИЕ
ЛЕНТЫ В БУФЕР (1 БЛОК ЗА 1 РАЗ) И ЗАТЕМ АССЕМБЛИРОВАТЬ ИЗ БУФЕ-
РА, ЧТО ПОЗВОЛЯЕТ ТРАНСЛИРОВАТЬ БОЛЬШИЕ ПРОГРАММЫ, Т.К. ТЕКСТО-
ВЫЙ ФАЙЛ НЕ ХРАНИТСЯ В ПАМЯТИ МАШИНЫ. ИМЯ ФАЙЛА (10  СИМВОЛОВ),
ПОДЛЕЖАЩЕГО АССЕМБЛИРОВАНИЮ,  УКАЗЫВАЕТСЯ  ЧЕРЕЗ  ПРОБЕЛ  ПОСЛЕ
"F". ЕСЛИ ИМЯ ОПУЩЕНО,  ТО  ОБРАБАТЫВАЕТСЯ  ПЕРВЫЙ  ВСТРЕЧАЕМЫЙ
ФАЙЛ НА ЛЕНТЕ.

     ТЕКСТОВЫЙ ФАЙЛ, ВКЛЮЧАЕМЫЙ ТАКИМ ОБРАЗОМ, ДОЛЖЕН БЫТЬ  ЗА-
ПИСАН НА ЛЕНТУ ПРИ ПОМОЩИ КОМАНДЫ РЕДАКТОРА  "Т"  (А  НЕ  "Р"),
Т.К. ЗАПИСЬ ДОЛЖНА ПРОИЗВОДИТСЯ С  ДОСТАТОЧНОЙ  ВЕЛИЧИНОЙ  МЕЖ-
БЛОЧНОГО ПРОМЕЖУТКА, ЧТО ПОЗВОЛЯЕТ ТРАНСЛИРОВАТЬ ТЕКСТ ИЗ БУФЕ-
РА ПЕРЕД ЗАГРУЗКОЙ СЛЕДУЮЩЕГО БЛОКА С ЛЕНТЫ.

     РАЗМЕР БЛОКА, ИСПОЛЬЗУЕМОГО ЭТОЙ КОМАНДОЙ (А ТАКЖЕ  КОМАН-
ДОЙ РЕДАКТОРА "Т"), ОПРЕДЕЛЯЕТСЯ  ПРИ  ПЕРВОНАЧАЛЬНОМ  ВХОДЕ  В
GENS3 ИЗ ОТВЕТА НА ВОПРОС:

            BUFFER SIZE ? (СМ. ГЛАВУ 1)

     ЧИСЛО, ВВЕДЕННОЕ ВАМИ И УМНОЖЕННОЕ  НА  256,  ДАЕТ  РАЗМЕР
БЛОКА В БАЙТАХ (ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ 4*256 БАЙТ).

     ВОЗМОЖНОСТЬ ВЛИЯТЬ НА РАЗМЕР БУФЕРА ПОЗВОЛЯЕТ  ОПТИМИЗИРО-
ВАТЬ  ОТНОШЕНИЕ:  РАЗМЕР/СКОРОСТЬ  ДЛЯ  ЛЮБОГО  ОБРАБАТЫВАЕМОГО
ФАЙЛА . НАПРИМЕР,ЕСЛИ ВЫ НЕ ХОТИТЕ ИСПОЛЬЗОВАТЬ КОМАНДУ "*F" ВО
ВРЕМЯ АССЕМБЛИРОВАНИЯ,ТОГДА,  ВОЗМОЖНО,  БУДЕТ  СПЕЦИФИЦИРОВАТЬ
РАЗМЕР БУФЕРА НУЛЕМ ДЛЯ МИНИМИЗАЦИИ  ПРОСТРАНСТВА,  ЗАНИМАЕМОГО
GENS3 И ЕГО РАБОЧЕЙ ОБЛАСТЬЮ.

     ВНИМАНИЕ ! РАЗМЕР БУФЕРА, УКАЗАННЫЙ ВО ВРЕМЯ ИСПОЛЬЗОВАНИЯ
КОМАНДЫ "*F", ДОЛЖЕН СОВПАДАТЬ С  РАЗМЕРОМ  БУФЕРА  ПРИ  ЗАПИСИ
ПРОГРАММЫ НА ЛЕНТУ.

     КОГДА АССЕМБЛЕР ОБНАРУЖИТ КОМАНДУ "*F", БУДЕТ ВЫДАНО СООБ-
ЩЕНИЕ:

           START THE TAPE

     ЭТО БУДЕТ И НА ПЕРВОМ И НА ВТОРОМ ПРОХОДАХ,  Т.К.  ВКЛЮЧА-
ЕМЫЙ ТЕКСТ ДОЛЖЕН БЫТЬ СКОПИРОВАН В ОБОИХ ПРОХОДАХ. ЛЕНТА ПРОС-
МАТРИВАЕТСЯ ДЛЯ ВКЛЮЧЕНИЯ ФАЙЛА С УКАЗАННЫМ ИМЕНЕМ ИЛИ ДО  ПЕР-
ВОГО ВСТРЕЧАЕМОГО НА ЛЕНТЕ. ЕСЛИ НАЙДЕН ФАЙЛ  С  НЕСООТВЕТСТВУ-
ЮЩИМ ИМЕНЕМ, ТО ВЫДАЕТСЯ СООБЩЕНИЕ: FOUND <ИМЯ ФАЙЛА>, И  ПОИСК
ПРОДОЛЖАЕТСЯ. В ПРОТИВНОМ СЛУЧАЕ  ПОЯВЛЯЕТСЯ  СООБЩЕНИЕ:  USING
<ИМЯ ФАЙЛА> И ФАЙЛ ЗАГРУЖАЕТСЯ И ОБРАБАТЫВАЕТСЯ БЛОК ЗА БЛОКОМ.
ПРИМЕР ИСПОЛЬЗОВАНИЯ ЭТОЙ КОМАНДЫ СМОТРИ В ПРИЛОЖЕНИИ С.

     ВСЕ КОМАНДЫ, КРОМЕ "*F", ОБРАБАТЫВАЮТСЯ АССЕМБЛЕРОМ ВО ВРЕМЯ
ВТОРОГО ПРОХОДА.

     ЕСЛИ АССЕМБЛИРОВАНИЕ БЫЛО "ВЫКЛЮЧЕНО" ОДНОЙ ИЗ ДИРЕКТИВ У-
СЛОВНОЙ ТРАНСЛЯЦИИ, ТО КОМАНДЫ,  НАХОДЯЩИЕСЯ  В  НЕТРАНСЛИРУЕМОЙ
СЕКЦИИ ТЕКСТА, НЕ ОБРАБАТЫВАЮТСЯ АССЕМБЛЕРОМ.

                     3.РЕДАКТОР
                     ----------

              3.1. ВВЕДЕНИЕ В РЕДАКТОР

     РЕДАКТОР, ПОСТАВЛЯЕМЫЙ СО  ВСЕМИ  ВЕРСИЯМИ  GENS3,  ПРОСТ,
ПРЕДНАЗНАЧЕН ДЛЯ РАБОТЫ СО ВСЕМИ  ОПЕРАЦИОННЫМИ  СИСТЕМАМИ  ДЛЯ
Z80, ОБЕСПЕЧИВАЕТ ВОЗМОЖНОСТЬ БЫСТРОГО И ЭФФЕКТИВНОГО  РЕДАКТИ-
РОВАНИЯ ПРОГРАММ.
     ДЛЯ УМЕНЬШЕНИЯ РАЗМЕРОВ ТЕКСТОВОГО ФАЙЛА, РЕДАКТОР ОСУЩЕС-
ТВЛЯЕТ СЖАТИЕ ИСХОДНОГО ТЕКСТА ЗА  СЧЕТ  УДАЛЕНИЯ  ПРОБЕЛОВ  ПО
СЛЕДУЮЩЕМУ АЛГОРИТМУ:

     ПРИ ВВОДЕ СТРОКИ С КЛАВИАТУРЫ, СИМВОЛЫ СТРОКИ ЗАПИСЫВАЮТСЯ
ВО ВНУТРЕННИЙ БУФЕР РЕДАКТОРА, ОТКУДА ПОСЛЕ ОКОНЧАНИЯ ВВОДА ТЕ-
КУЩЕЙ СТРОКИ (ВВОД ENTER), ОНА ПЕРЕПИСЫВАЕТСЯ В ТЕКСТОВЫЙ  ФАЙЛ
С ЗАМЕНОЙ ПОДРЯД ИДУЩИХ ПРОБЕЛОВ (В ТОМ ЧИСЛЕ И  ЕДИНСТВЕННОГО)
НА ЗНАК ТАБУЛЯЦИИ "ТАВ". В РЕЗУЛЬТАТЕ ПОЛУЧАЕТСЯ СТРОКА ВСЕ ПО-
ЛЯ АССЕМБЛЕРНОЙ ПРОГРАММЫ РАЗДЕЛЕНЫ ЗНАКАМИ ТАБУЛЯЦИИ.

     ПРОЦЕСС СЖАТИЯ ПРОЗРАЧЕН ДЛЯ ПОЛЬЗОВАТЕЛЯ,  КОТОРЫЙ  МОЖЕТ
ИСПОЛЬЗОВАТЬ ЗНАКИ УПРАВЛЕНИЯ "ТАВ" (CI- СМ.НИЖЕ) ДЛЯ ПОЛУЧЕНИЯ
АККУРАТНО ТАБУЛИРОВАННОГО ТЕКСТОВОГО ФАЙЛА, КОТОРЫЙ К  ТОМУ  ЖЕ
ЭКОНОМИЧЕН ПРИ ХРАНЕНИИ.

     П Р И М Е Ч А Н И Е: ВНУТРИ КОММЕНТАРИЕВ  СЖАТИЕ  ПРОБЕЛОВ
НЕ ОСУЩЕСТВЛЯЕТСЯ. ДОЛЖНО БЫТЬ ОБЕСПЕЧЕНО  ОТСУТСТВИЕ  ПРОБЕЛОВ
ВНУТРИ СИМВОЛОВ МЕТКИ, МНЕМОНИКИ КОМАНД И ОПЕРАНДОВ.

     В ЭТОМ РАЗДЕЛЕ ДЛЯ ОБОЗНАЧЕНИЯ ОТДЕЛЬНЫХ УПРАВЛЯЮЩИХ КОДОВ
ПРИМЕНЯЕТСЯ АБРИВИАТУРА:

     ENTER - КЛАВИША "ENTER" КЛАВИАТУРЫ.
     CC - "CAPS SHIFT" И "1" ОДНОВРЕМЕННО НАЖАТИЕ КЛАВИШИ  КЛА-
ВИАТУРЫ ИСПОЛЬЗУЮТСЯ ДЛЯ ПРЕКРАЩЕНИЯ ВВОДА.
     CH - КЛАВИША "DELETE".
     CI - "CAPS SHIFT" И "8". ПРОДВИГАЕТ  К  СЛЕДУЮЩЕЙ  ПОЗИЦИИ
ТАБУЛЯЦИИ.
     CX - "CAPS SHIFT И "5". СТИРАНИЕ ВВОДИМОЙ СТРОКИ.

     РЕДАКТОР ГОТОВ К РАБОТЕ СРАЗУ ЖЕ ПОСЛЕ ЗАПУСКА GENS3 И ПО-
ЯВЛЕНИЯ НА ЭКРАНЕ СТРОКИ:

      "COPYRIGHT HISOFT 1983. ALL RIGHTS RESEVED.

     ПОСЛЕ ЭТОГО МОГУТ ВВОДИТСЯ КОМАНДЫ РЕДАКТОРА, ИМЕЮЩИЕ СЛЕ-
ДУЮЩИЙ ФОРМАТ:

            C N1,N2,S1,S2 ENTER

            C  - КОМАНДА РЕДАКТОРА (СМ. РАЗДЕЛ 3,2)
            N1 - ЧИСЛО В ПРЕДЕЛАХ 1 - 32767
            N2 - ЧИСЛО В ПРЕДЕЛАХ 1 - 32767
            S1 - СТРОКА ДЛИНОЙ ДО 20 СИМВОЛОВ
            S2 - СТРОКА ДЛИНОЙ ДО 20 СИМВОЛОВ

     ЗАПЯТАЯ ИСПОЛЬЗУЕТСЯ ДЛЯ РАЗДЕЛЕНИЯ АРГУМЕНТОВ (ЭТО  МОЖНО
ИЗМЕНИТЬ, СМ. КОМАНДУ "S"), ПРОБЕЛЫ ИГНОРИРУЮТСЯ, КРОМЕ  ВХОДЯ-
ЩИХ В СОСТАВ СТРОКИ. НИ ОДИН ИЗ АРГУМЕНТОВ НЕ  ЯВЛЯЕТСЯ  ОБЯЗА-
ТЕЛЬНЫМ, ХОТЯ НЕКОТОРЫЕ ИЗ КОМАНД (НАПРИМЕР, DELETE) НЕ  ВЫПОЛ-
НЯЮТСЯ БЕЗ УКАЗАНИЯ N1 И N2. РЕДАКТОР ХРАНИТ  ПРЕДЫДУЩИЕ  АРГУ-
МЕНТЫ И ИСПОЛЬЗУЕТ ИХ ЗНАЧЕНИЯ, ЕСЛИ ВЫ НЕ УКАЗАЛИ АРГУМЕНТЫ  В
КОМАНДНОЙ СТРОКЕ.

    ПЕРВОНАЧАЛЬНО N1 И N2 РАВНЫ 10, A S1 И S2 - ПУСТЫЕ СТРОКИ.
ПРИ ВВОДЕ НЕВЕРНОЙ КОМАНДНОЙ СТРОКИ, НАПРИМЕР:

      F1 -, 100, HELLO

     РЕДАКТОР ИГНОРИРУЕТ ЕЕ И ВЫВОДИТ СООБЩЕНИЕ - "PARDON?".  В
ЭТОМ СЛУЧАЕ ВВОДИТЕ СТРОКУ СНОВА  (Ф1,10,HELLO).  СООБЩЕНИЕ  ОБ
ОШИБКЕ ВЫВОДИТСЯ ТАКЖЕ В СЛУЧАЕ, ЕСЛИ СТРОКА S1 БОЛЬШЕ 20  СИМ-
ВОЛОВ. В СТРОКЕ S2 ЛИШНИЕ СИМВОЛЫ ИГНОРИРУЮТСЯ.  КОМАНДЫ  МОЖНО
ВВОДИТЬ КАК СТРОЧНЫМИ ТАК И ПРОПИСНЫМИ БУКВАМИ. МОГУТ БЫТЬ  ИС-
ПОЛЬЗОВАНЫ ВСЕ ОПИСАННЫЕ ВЫШЕ СИМВОЛЫ  УПРАВЛЕНИЯ  (CI,  CX,  И
Т.Д.).

     В СЛЕДУЮЩЕМ РАЗДЕЛЕ ПОДРОБНЛЖНЫ ПРИСУТСТВОВАТЬ.Ы  РЕДАКТО-
РА. АРГУМЕНТЫ, ЮЧЕННЫЕ В КРУГЛЫЕ СКОБКИ, ДО


     3.2. КОМАНДЫ РЕДАКТОРА.


     3.2.1. ВСТАВКА ТЕКСТА.


     ТЕКСТ МОЖЕТ БЫТЬ ЗАПИСАН В ТЕКСТОВЫЙ ФАЙЛ ЛИБО ВВОДОМ  НО-
МЕРА СТРОКИ, ПРОБЕЛА И ЗАТЕМ ТРЕБУЕМОГО ТЕКСТА, ЛИБО С  ИСПОЛЬ-
ЗОВАНИЕМ КОМАНДЫ "I". EСЛИ ВЫ ВВЕДЕТЕ НОМЕР СТРОКИ И  СРАЗУ  ЖЕ
"ENTER" (Т.Е. БЕЗ ТЕКСТА), ТО СТРОКА  С  ДАННЫМ  НОМЕРОМ  БУДЕТ
УДАЛЕНА ИЗ ТЕКСТОВОГО ФАЙЛА, ЕСЛИ ОНА ЕСТЬ.

     ВО ВРЕМЯ ВВОДА ТЕКСТА ДОПУСКАЕТСЯ ИСПОЛЬЗОВАТЬ УПРАВЛЯЮЩИЕ
ФУНКЦИИ: CX (УДАЛЕНИЕ ДО НАЧАЛА СТРОКИ), CI (ПЕРЕХОД  К  СЛЕДУ-
ЮЩЕЙ ПОЗИЦИИ ТАБУЛЯЦИИ) И CC (ВЫХОД В КОМАНДНЫЙ РЕЖИМ), КЛАВИШУ
DELETE (CH) ДЛЯ УДАЛЕНИЯ ПРЕДЫДУЩЕГО СИМВОЛА СТРОКИ (НО  НЕ  ЗА
ЕЕ ПРЕДЕЛАМИ).

     ТЕКСТ ВВОДИТСЯ ВО ВНУТРЕННИЙ БУФЕР GENS3 И, ЕСЛИ ОН ПОЛОН,
ВВОД ПРЕКРАЩАЕТСЯ - ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ CH ИЛИ CX ДЛЯ  ОСВО-
БОЖДЕНИЯ МЕСТА В БУФЕРЕ.
     ЕСЛИ В ПРОЦЕССЕ ЗАНЕСЕНИЯ ТЕКСТА В ТЕКСТОВЫЙ ФАЙЛ РЕДАКТОР
ОБНАРУЖИТ, ЧТО КОНЕЦ ТЕКСТА ПРИБЛИЖАЕТСЯ К ВЕРШИНЕ RAM, ПОЯВИТ-
СЯ СООБЩЕНИЕ:

             "BAD MEMORY"

     ОНО ГОВОРИТ О ТОМ, ЧТО ТЕКСТ ВВОДИТЬ БОЛЬШЕ НЕЛЬЗЯ  И  ЧТО
ТЕКУЩИЙ

      КОМАНДА ВСТАВКИ:

     I, N, M - КОМАНДА ПЕРЕВОДИТ РЕДАКТОР В РЕЖИМ ВСТАВКИ С АВ-
ТОМАТИЧЕСКОЙ НУМЕРАЦИЕЙ СТРОК И С ЗАДАННЫМ ШАГОМ НУМЕРАЦИИ (N -
НОМЕР ПЕРВОЙ ВВОДИМОЙ СТРОКИ, М - ШАГ НУМЕРАЦИИ).

     ТЕКСТ ДОЛЖЕН ВВОДИТЬСЯ ПОСЛЕ ТОГО,  КАК  РЕДАКТОР  ВЫВЕДЕТ
НОМЕР ОЧЕРЕДНОЙ СТРОКИ. ПРИ ВВОДЕ ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ УП-
РАВЛЯЮЩИХ КОДОВ, ENTER - ЗАКАНЧИВАЕТ ВВОД СТРОКИ. ДЛЯ ВЫХОДА ИЗ
ЭТОГО РЕЖИМА ИСПОЛЬЗУЕТСЯ ФУНКЦИЯ "СС". ЕСЛИ ВЫ ВВОДИТЕ  СТРОКУ
С УЖЕ СУЩЕСТВУЮЩИМ НОМЕРОМ, ТО ПРЕЖНЯЯ СТРОКА БУДЕТ ЗАМЕНЕНА  С
НАЖАТИЕМ ENTER.
     ЕСЛИ АВТОМАТИЧЕСКИ  ФОРМИРУЕМЫЙ  НОМЕР  ПРЕВЫСИТ  ВЕЛИЧИНУ
32767, РЕЖИМ ВСТАВКИ ВЫКЛЮЧАЕТСЯ.
     ЕСЛИ ПРИ ВВОДЕ ДОСТИГАЕТСЯ КОНЕЦ ЭКРАННОЙ СТРОКИ (ПРИ  УС-
ЛОВИИ , ЧТО ВВЕДЕНО МЕНЬШЕ 64 СИМВОЛОВ - РАЗМЕР БУФЕРА), СОДЕР-
ЖИМОЕ ЭКРАНА СДВИГАЕТСЯ ВВЕРХ И ВЫ МОЖЕТЕ  ПРОДОЛЖАТЬ  ВВОД  НА
СЛЕДУЮЩЕЙ СТРОКЕ - АВТОМАТИЧЕСКАЯ НУМЕРАЦИЯ ЭФФЕКТИВНО РАЗДЕЛИТ
ТЕКСТ.


               3.2.2. ЛИСТИНГ ТЕКСТА


  ТЕКСТ МОЖЕТ БЫТЬ ПРОВЕРЕН ПРИ ПОМОЩИ КОМАНДЫ "L".

     L N,M - ВЫВОД ЛИСТИНГА ТЕКУЩЕГО ТЕКСТА НА ЭКРАН ОТ  СТРОКИ
С НОМЕРОМ N ПО М ВКЛЮЧИТЕЛЬНО. ПО УМОЛЧАНИЮ N=1, M=32767  (T.E.
ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ НЕ БЕРУТСЯ ИЗ ПРЕДЫДУЩЕЙ КОМАНДЫ).

     ДЛЯ ЛИСТИНГА ВСЕГО ТЕКСТОВОГО ФАЙЛА ИСПОЛЬЗУЕТСЯ  "L"  БЕЗ
АРГУМЕНТОВ. ЭКРАННЫЕ СТРОКИ ИМЕЮТ ПОЛЕ СЛЕВА  И  ПОЭТОМУ  НОМЕР
СТРОКИ ХОРОШО ВЫДЕЛЕН. ТАБУЛЯЦИЯ ПОЛЕЙ  АВТОМАТИЧЕСКАЯ,  ДАЮЩАЯ
ЧЕТКОЕ РАЗДЕЛЕНИЕ ПОЛЕЙ.
     ЧИСЛОМ ЭКРАННЫХ СТРОК ЛИСТИНГА  МОЖНО  УПРАВЛЯТЬ  КОМАНДОЙ
"К". ПОСЛЕ УКАЗАННОГО В ЭТОЙ КОМАНДЕ ЧИСЛА СТРОК, ВЫВОД  ПРИОС-
ТАНАВЛИВАЕТСЯ (ЕСЛИ НОМЕР СТРОКИ М ЕЩЕ НЕ ДОСТИГНУТ). ВВОД  УП-
РАВЛЯЮЩЕЙ ФУНКЦИИ СС ВЕРНЕТ РЕДАКТОР В КОМАНДНЫЙ РЕЖИМ, НАЖАТИЕ
ЛЮБОЙ ДРУГОЙ КЛАВИШИ ПРОДОЛЖАЕТ ВЫВОД ЛИСТИНГА.

     К,N - КОМАНДА УСТАНАВЛИВАЕТ ЧИСЛО ЭКРАННЫХ СТРОК  ЛИСТИНГА
ПЕРЕД ПАУЗОЙ (КАК ОПИСЫВАЛОСЬ ВЫШЕ). ЗНАЧЕНИЕ N  ВЫЧИСЛЯЕТСЯ  И
ХРАНИТСЯ . НАПРИМЕР, ИСПОЛЬЗУЙТЕ "К5", ЕСЛИ ЖЕЛАЕТЕ, ЧТОБЫ СЛЕ-
ДУЮЩАЯ КОМАНДА "L" ВЫВОДИЛА ПО ПЯТЬ ЭКРАННЫХ СТРОК ЗА РАЗ.


             3.2.3. РЕДАКТИРОВАНИЕ ТЕКСТА.


     ПЕРВОНАЧАЛЬНО ВВЕДЕННЫЙ ТЕКСТ, КАК ПРАВИЛО, ТРЕБУЕТ  ПОСЛЕ-
ДУЮЩЕГО РЕДАКТИРОВАНИЯ. РЕДАКТОР GENS3 ПРЕДОСТАВЛЯЕТ  РАЗЛИЧНЫЕ
КОМАНДЫ, ОБЛЕГЧАЮЩИЕ ЭТОТ ПРОЦЕСС.


                  D ,N,M

            СТРОКИ ОТ N ДО М УДАЛЯЮТСЯ ИЗ ТЕКСТОВОГО ФАЙЛА. ЕС-
ЛИ М>N, ИЛИ УКАЗАНО МЕНЬШЕ ДВУХ АРГУМЕНТОВ, КОМАНДА НЕ ВЫПОЛНЯ-
ЕТСЯ, ЧТО ПРЕДОТВРАЩАЕТ СЛУЧАЙНУЮ  ОШИБКУ.  ОДНУ  СТРОКУ  МОЖНО
УДАЛИТЬ, УКАЗАВ N=M, ЭТОГО ЖЕ МОЖНО ДОСТИЧЬ, ВВЕДЯ НОМЕР СТРОКИ
И ENTER.


                  M N,M

           ВЫЗЫВАЕТ ЗАМЕНУ ТЕКСТА С НОМЕРОМ М ТЕКСТОМ СТРОКИ N.
СТРОКА С НОМЕРОМ N ПЕРЕСТАНЕТ СУЩЕСТВОВАТЬ. ЕСЛИ N ОТСУТСТВУЕТ,
НИКАКИХ ДЕЙСТВИЙ НЕ ПРЕДПРИНИМАЕТСЯ. ИСПОЛЬЗОВАНИЕ КОМАНДЫ  "М"
ВЫЗЫВАЕТ ПЕРЕНУМЕРАЦИЮ ТЕКСТОВОГО ФАЙЛА, НАЧИНАЯ  СО  СТРОКИ  N
(ДОЛЖНА ПРИСУТСТВОВАТЬ В ФАЙЛЕ) С ШАГОМ М. ЕСЛИ В ПРОЦЕССЕ  ПЕ-
РЕНУМЕРАЦИИ НОМЕР ПРЕВЫСИТ ЗНАЧЕНИЕ 32767, НУМЕРАЦИЯ  ОСТАНЕТСЯ
БЕЗ ИЗМЕНЕНИЯ.


                  F N,M,F,S

               TEKСT В ДИАПАЗОНЕ СТРОК С НОМЕРАМИ  ОТ  N  ДО  М
ПРОВЕРЯЕТСЯ НА НАЛИЧИЕ ОБРАЗА "F". ЕСЛИ ОН БУДЕТ НАЙДЕН,  ВЫВО-
ДИТСЯ ЭТА СТРОКА ТЕКСТОВОГО ФАЙЛА И РЕДАКТОР ПЕРЕЙДЕТ  В  РЕЖИМ
EDIT (СМ. НИЖЕ). ТОГДА, ИСПОЛЬЗУЯ КОМАНДУ ДАННОГО РЕЖИМА, МОЖНО
ПРОДОЛЖАТЬ ПОИСК СЛЕДУЮЩЕГО ВХОЖДЕНИЯ ПРОИЗВЕСТИ ЗАМЕНУ  СТРОКИ
F НA СТРОКУ S И ПРОДОЛЖАТЬ ПОИСК (СМ. НИЖЕ БОЛЕЕ ПОДРОБНО). ПА-
РАМЕТРЫ КОМАНДЫ "F" МОГУТ БЫТЬ ЗАДАНЫ РАНЕЕ ДРУГОЙ КОМАНДОЙ,  В
ТАКОМ СЛУЧАЕ ДОСТАТОЧНО ПРОСТО ВВЕСТИ F ДЛЯ ИНИЦИАЛИЗАЦИИ ПОИС-
КА (СМ. ПРИМЕР В РАЗДЕЛЕ 3.3).


                  E,N

         РЕДАКТИРУЕТ СТРОКУ С НОМЕРОМ N. EСЛИ ТАКОЙ  СТРОКИ  НЕ
СУЩЕСТВУЕТ, НИКАКИХ ДЕЙСТВИЙ НЕ  ПРЕДПРИНИМАЕТСЯ.  В  ПРОТИВНОМ
СЛУЧАЕ СТРОКА КОПИРУЕТСЯ В БУФЕР И ОТОБРАЖАЕТСЯ НА ЭКРАНЕ ВМЕС-
ТЕ СО СВОИМ НОМЕРОМ. НОМЕР ДУБЛИРУЕТСЯ ПОД ОТОБРАЖЕННОЙ СТРОКОЙ
И ПРОИСХОДИТ ПЕРЕХОД В РЕЖИМ EDIT.

     ВСЕ ПОСЛЕДУЮЩЕЕ РЕДАКТИРОВАНИЕ ПРОИЗВОДИТСЯ В БУФЕРЕ, А НЕ
В ТЕКСТЕ. ТАКИМ ОБРАЗОМ ПЕРВОНАЧАЛЬНОЕ СОДЕРЖАНИЕ СТРОКИ В  ЛЮ-
БОЕ ВРЕМЯ МОЖЕТ БЫТЬ ВОССТАНОВЛЕНО.  В  ЭТОМ  РЕЖИМЕ  УКАЗАТЕЛЬ
ДВИЖЕТСЯ ВДОЛЬ ТЕКСТА СТРОКИ, НАЧИНАЯ С ПЕРВОГО СИМВОЛА И  ПРЕ-
ДОСТАВЛЯЮТСЯ РАЗЛИЧНЫЕ ПОДКОМАНДЫ ДЛЯ РЕДАКТИРОВАНИЯ СТРОКИ:

     " " (ПРОБЕЛ) - СДВИГАЕТ УКАЗАТЕЛЬ ТЕКСТА НА СЛЕДУЮЩИЙ СИМ-
ВОЛ. ЗА ПРЕДЕЛЫ СТРОКИ УКАЗАТЕЛЬ СДВИНУТЬ НЕВОЗМОЖНО.

     CH (DELETE) - СДВИГАЕТ УКАЗАТЕЛЬ ТЕКСТА НА ПРЕДЫДУЩИЙ СИМ-
ВОЛ. ЗА ПРЕДЕЛЫ СТРОКИ УКАЗАТЕЛЬ СДВИНУТЬ НЕВОЗМОЖНО.

     CI - СМЕЩЕНИЕ УКАЗАТЕЛЯ ТЕКСТА ВПЕРЕД ДО СЛЕДУЮЩЕЙ ПОЗИЦИИ
ТАБУЛЯЦИИ.

    ENTER        - КОНЕЦ РЕДАКТИРОВАНИЯ СТРОКИ.

     Q (QUIT) - ОТМЕНИТЬ РЕДАКТИРОВАНИЕ СТРОКИ, Т.Е.  ИГНОРИРО-
ВАТЬ ВСЕ ИЗМЕНЕНИЯ И ОСТАВИТЬ ЕЕ В ПРЕЖНЕМ ВИДЕ.

     R (RELOAD) - ПЕРЕГРУЗИТЬ БУФЕР РЕЖИМА EDIT  ИЗ  ТЕКСТА.Е.
ОТМЕНИТЬ ВСЕ ИЗМЕНЕНИЯ, СДЕЛАННЫЕ В СТРОКЕ,  И  ВОССТАНОВИТЬ  ДЛЯ
РЕДАКТИРОВАНИЯ В ИСХОДНОМ ВИДЕ.

     L (LIST) - ВЫВЕСТИ ОСТАТОК РЕДАКТИРУЕМОЙ СТРОКИ ЗА ПРЕДЕЛЫ
УКАЗАТЕЛЯ. СОХРАНЯЕТСЯ РЕЖИМ РЕДАКТИРОВАНИЯ. УКАЗАТЕЛЬ РАСПОЛО-
ЖЕН В НАЧАЛЕ СТРОКИ.

    К (KILL)     - УДАЛЯЕТ СИМВОЛ В ТЕКУЩЕЙ ПОЗИЦИИ УКАЗАТЕЛЯ.

     Z - СТИРАЕТ ОСТАТОК СТРОКИ, НАЧИНАЯ С ПОЗИЦИИ УКАЗАТЕЛЯ.

     F (FIN) - ИЩЕТ РАНЕЕ ЗАДАННЫЙ ОБРАЗЕЦ В СТРОКАХ  ПРОГРАММЫ
(СМ. КОМАНДУ РЕДАКТОРА "F"). ЕСЛИ В ТЕКУЩЕЙ СТРОКЕ  НЕ  НАЙДЕНО
ВХОЖДЕНИЕ ОБРАЗЦА, ОНА АВТОМАТИЧЕСКИ ЗАПИСЫВАЕТСЯ  В  ТЕКСТОВЫЙ
ФАЙЛ. ЕСЛИ В ДИАПАЗОНЕ СТРОК ПОИСКА КОМАНДЫ "F" НАХОДИТСЯ ВХОЖ-
ДЕНИЕ УКАЗАННОГО ОБРАЗЦА, ТО СТРОКА, СОДЕРЖАЩАЯ ОБРАЗЕЦ, СТАНО-
ВИТСЯ ТЕКУЩЕЙ ДЛЯ РЕЖИМА EDIT. УКАЗАТЕЛЬ ТЕКСТА ВСЕГДА РАСПОЛА-
ГАЕТСЯ В НАЧАЛЕ НАЙДЕННОГО ОБРАЗЦА.

     S (SUBSTITUTE)-ЗАМЕНЯЕТ НАЙДЕННЫЙ ОБРАЗЕЦ НА ВТОРОЙ  АРГУ-
МЕНТ КОМАНДЫ "F" И ИЩЕТ СЛЕДУЮЩЕЕ ВХОЖДЕНИЕ ОБРАЗЦА - ВЫПОЛНЯЕТ
КОМАНДУ "F" (СМ. ПРИМЕР В РАЗДЕЛЕ 3.3).

     I (INSERT) - ВСТАВЛЯЕТ СИМВОЛ В ТЕКУЩУЮ ПОЗИЦИЮ УКАЗАТЕЛЯ.
РЕДАКТОР ОСТАЕТСЯ В РЕЖИМЕ ВСТАВКИ, ПОКА НЕ БУДЕТ ВВЕДЕН ENTER,
ПОСЛЕ ЧЕГО ПРОИЗВОДИТСЯ ВОЗВРАТ К РЕЖИМУ EDIT С УКАЗАТЕЛЕМ, ПО-
ЛОЖЕННЫМ ЗА ПОСЛЕДНИМ  ВСТАВЛЕННЫМ   СИМВОЛОМ.   ИСПОЛЬЗУЯ   CH
(DELETE) В ЭТОМ ПОДРЕЖИМЕ, МОЖНО УДАЛЯТЬ ИЗ БУФЕРА СИМВОЛЫ СЛЕ-
ВА ОТ УКАЗАТЕЛЯ, А CI ПРОДВИГАЕТ УКАЗАТЕЛЬ НА СЛЕДУЮЩУЮ  ПОЗИЦИЮ
ТАБУЛЯЦИИ, ВСТАВЛЯЯ В БУФЕР ПРОБЕЛЫ.

     X - СДВИГАЕТ УКАЗАТЕЛЬ НА КОНЕЦ СТРОКИ И ОСУЩЕСТВЛЯЕТ  ПЕ-
РЕХОД В ПОДРЕЖИМЕ "I".

     C - ИЗМЕНЯЕТ ПОДРЕЖИМ, ПОЗВОЛЯЯ ЗАМЕНИТЬ СИМВОЛ В  ТЕКУЩЕЙ
ПОЗИЦИИ УКАЗАТЕЛЯ И ЗАТЕМ СДВИНУТЬСЯ НА СЛЕДУЮЩИЙ СИМВОЛ. ВЫХОД
ИЗ ЭТОГО ПОДРЕЖИМА - НАЖАТИЕ ENTER, ЧТО  ВОЗВРАЩАЕТ  В  EDIT  С
УКАЗАТЕЛЕМ, РАСПОЛОЖЕННЫМ ЗА ПОСЛЕДНИМ ИЗМЕНЕННЫМ СИМВОЛОМ.  CH
В ЭТОМ РЕЖИМЕ ПРОСТО СДВИГАЕТ УКАЗАТЕЛЬ НА ОДНУ ПОЗИЦИЮ  ВЛЕВО.
CI НЕ ДАЕТ НИКАКОГО ЭФФЕКТА.


               3.2.4. КОМАНДЫ МАГНИТОФОНА.


     ТЕКСТ ПРОГРАММЫ МОЖЕТ БЫТЬ ЗАПИСАН НА МАГНИТНУЮ ЛЕНТУ  ИЛИ
ЗАГРУЖЕН С ЛЕНТЫ ПРИ ПОМОЩИ КОМАНДЫ РЕДАКТОРА "Р", "G" И "Т".

     P N,M,S - НА ЛЕНТУ ЗАПИСЫВАЮТСЯ СТРОКИ С НОМЕРАМИ  ИЗ  ДИ-
АПАЗОНА N < X < M ПОД ИМЕНЕМ, УКАЗАННЫМ ПАРАМЕТРОМ S.  ПОМНИТЕ,
ЧТО ЭТИ АРГУМЕНТЫ МОГУТ БЫТЬ УСТАНОВЛЕНЫ  ПРЕДЫДУЩЕЙ  КОМАНДОЙ.
ПЕРЕД ВЫПОЛНЕНИЕМ КОМАНДЫ УБЕДИТЕСЬ, ЧТО МАГНИТОФОН  ВКЛЮЧЕН  В
РЕЖИМ "ЗАПИСЬ". НЕ ПРИМЕНЯЙТЕ ДАННУЮ КОМАНДУ, ЕСЛИ НА СЛЕДУЮЩИХ
ЭТАПАХ ВЫ БУДЕТЕ "ВКЛЮЧАТЬ" ЭТОТ ФАЙЛ - ИСПОЛЬЗУЯ  КОМАНДУ  "F"
АССЕМБЛЕРА. ДЛЯ ЭТОГО ПРЕДНАЗНАЧЕНА КОМАНДА "I".

     G ,,S - НА ЛЕНТЕ ПРОИЗВОДИТСЯ ПОИСК ФАЙЛА С ИМЕНЕМ S. КОГ-
ДА ФАЙЛ НАЙДЕН, ИНФОРМАЦИЯ ИЗ НЕГО ЗАПИСЫВАЕТСЯ В КОНЕЦ ТЕКУЩЕ-
ГО ТЕКСТА. ПРИ ПРИ ПУСТОМ ИМЕНИ ФАЙЛА, С ЛЕНТЫ ЗАГРУЖАЕТСЯ ПЕР-
ВЫЙ ВСТРЕТИВШИЙСЯ ФАЙЛ. ПОСЛЕ ВВОДА КОМАНДЫ "G", ПОЯВЛЯЕТСЯ СО-
ОБЩЕНИЕ: START TAPE... НАЖМИТЕ КЛАВИШУ МАГНИТОФОНА "ВОСПРОИЗВЕ-
ДЕНИЕ". ЕСЛИ ФАЙЛ НАЙДЕН, ПОЯВИТСЯ  "USING  <ИМЯ  ФАЙЛА>".  ПРИ
ЗАГРУЗКЕ С ЛЕНТЫ, ФАЙЛ ЗАПИСЫВАЕТСЯ В КОНЕЦ СУЩЕСТВУЮЩЕГО  ТЕК-
СТОВОГО ФАЙЛА (ЕСЛИ ОН ЕСТЬ) И ВЫПОЛНЯЕТСЯ ПЕРЕНУМЕРАЦИЯ С  НО-
МЕРА СТРОКИ РАВНОГО 1, С ШАГОМ 1, ВСЕГО ФАЙЛА.

     T ,N,M,S - НА ЛЕНТУ ЗАПИСЫВАЮТСЯ СТРОКИ С НОМЕРАМИ ИЗ  ДИ-
АПАЗОНА N < X < M ПОД ИМЕНЕМ, УКАЗАННЫМ ПАРАМЕТРОМ S, В ФОРМАТЕ
ПРИГОДНОМ ДЛЯ "ВКЛЮЧЕНИЯ" НА СЛЕДУЮЩЕЙ СТАДИИ С  ИСПОЛЬЗОВАНИЕМ
КОМАНДЫ АССЕМБЛЕРА "*F" (СМ. РАЗДЕЛ 2.8). ЗАПИСЬ НА  ЛЕНТУ  ВЫ-
ПОЛНЯЕТСЯ СРАЗУ ПОСЛЕ ВВОДА ENTER, ПОЭТОМУ ПРЕДВАРИТЕЛЬНО  НАДО
УБЕДИТЬСЯ, ЧТО МАГНИТОФОН ГОТОВ К ЗАПИСИ.


        3.2.5.  АССЕМБЛИРОВАНИЕ И ВЫХОД ИЗ РЕДАКТОРА.


     А - КОМАНДА ВЫПОЛНЯЕТ АССЕМБЛИРОВАНИЕ,  НАЧИНАЯ  С  ПЕРВОЙ
СТРОКИ ТЕКСТОВОГО ФАЙЛА (СМ. ГЛАВУ 2).

     R - ЕСЛИ ПРОГРАММА БЫЛА АССЕМБЛИРОВАНА БЕЗ  ОШИБОК  И  БЫЛ
УКАЗАН ИСПОЛНИТЕЛЬНЫЙ АДРЕС (ПРИ ПОМОЩИ ДИРЕКТИВЫ  ENT),  ТОГДА
ДАННАЯ КОМАНДА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ДЛЯ ЗАПУСКА ПРОГРАММЫ НА
ВЫПОЛНЕНИЕ. ПРОГРАММА МОЖЕТ ИСПОЛЬЗОВАТЬ ИНСТРУКЦИЮ GENS3 "RET"
(C9H) ДЛЯ ВОЗВРАТА В РЕДАКТОР ПОСЛЕ  ВЫПОЛНЕНИЯ,  ПРИ  УСЛОВИИ,
ЧТО СТЕК НАХОДИТСЯ В ТОМ ЖЕ СОСТОЯНИИ, ЧТО И ДО  ЗАПУСКА  ПРОГ-
РАММЫ.

     ВНИМАНИЕ ! ДИРЕКТИВА ENT НЕ ОКАЗЫВАЕТ ВЛИЯНИЯ  ПРИ  РЕЖИМЕ
АССЕМБЛИРОВАНИЯ 16.


                   3.2.6. ДРУГИЕ КОМАНДЫ


     В - КОМАНДА ВОЗВРАЩАЕТ  УПРАВЛЕНИЕ  ОПЕРАЦИОННОЙ  СИСТЕМЕ.
ДЛЯ ПЕРЕЗАПУСКА АССЕМБЛЕРА ИСПОЛЬЗУЙТЕ ЛИБО "ХОЛОДНЫЙ"  ,  ЛИБО
"ТЕПЛЫЙ" СТАРТ (СМ. ГЛАВУ 1).

     С - КОМАНДА  ПОЗВОЛЯЕТ  ПРЕОБРАЗОВЫВАТЬ  ТЕКСТОВЫЕ  ФАЙЛЫ,
СОЗДАННЫЕ GENS1 В ФОРМАТ GENS1 В ФОРМАТ GENS3. ДЛЯ ЭТОГО ВВЕДИ-
ТЕ ФАЙЛ ПРИ ПОМОЩИ КОМАНДЫ "G" И ПРЕОБРАЗУЙТЕ ЕГО ЕГО С ПОМОЩЬЮ
КОМАНДЫ "С", А ЗАТЕМ СНОВА ЗАПИШИТЕ НА ЛЕНТУ.

     ВНИМАНИЕ ! КОМАНДА НЕ ТРЕБУЕТ АРГУМЕНТОВ  И  МОЖЕТ  ЗАНЯТЬ
СУЩЕСТВЕННОЕ ВРЕМЯ ДЛЯ ПРЕОБРАЗОВАНИЯ.

     S ,,D - КОМАНДА ПОЗВОЛЯЕТ ИЗМЕНИТЬ СИМВОЛ, ИСПОЛЬЗУЕМЫЙ  В
КАЧЕСТВЕ РАЗДЕЛИТЕЛЯ АРГУМЕНТОВ КОМАНДНОЙ  СТРОКИ.  В  ИСХОДНОМ
СОСТОЯНИИ ФУНКЦИЮ РАЗДЕЛИТЕЛЯ ВЫПОЛНЯЕТ ЗАПЯТАЯ.

     ВНИМАНИЕ ! НОВЫЙ РАЗДЕЛИТЕЛЬ ДОЛЖЕН  ИСПОЛЬЗОВАТЬСЯ  ВЕЗДЕ
(ДАЖЕ В КОМАНДЕ "S") ДО ТЕХ ПОР, ПОКА НЕ БУДЕТ ЗАНОВО ПЕРЕОПРЕ-
ДЕЛЕН.

   ВНИМАНИЕ ! РАЗДЕЛИТЕЛЬ НЕ МОЖЕТ БЫТЬ П Р О Б Е Л О М.

     V - KOMAНДА ВЫВОДИТ ТЕКУЩЕЕ ЗНАЧЕНИЕ N1,  N2,  И  S1,  S2,
СОХРАНЕННЫЕ ПРИ ВЫПОЛНЕНИИ ПРЕДЫДУЩЕЙ КОМАНДЫ. ЭТО  МОЖЕТ  БЫТЬ
ПОЛЕЗНО ПЕРЕД ВЫПОЛНЕНИЕМ НОВЫХ КОМАНД ПРИ ИСПОЛЬЗОВАНИИ  ИХ  В
КАЧЕСТВЕ АРГУМЕНТОВ СОХРАНЕННЫХ ЗНАЧЕНИЙ.

     W N,M- KOMAНДА ВЫВОДИТ НА ПРИНТЕР СТРОКИ  ТЕКСТОВОГО  ФАЙЛА
ОТ N DO М. EСЛИ М И N НЕ УКАЗАНЫ, ВЫВОДИТСЯ ПОЛНОСТЬЮ ТЕКСТОВЫЙ
ФАЙЛ. ПЕЧАТЬ ПРИОСТАНАВЛИВАЕТСЯ ПОСЛЕ ВВОДА УКАЗАННОГО В КОМАН-
ДЕ "К" КОЛИЧЕСТВА СТРОК. ДЛЯ ПРОДОЛЖЕНИЯ ПЕЧАТИ  НАЖМИТЕ  ЛЮБУЮ
КЛАВИШУ.

     X - КОМАНДА ВЫВОДИТ НАЧАЛЬНЫЙ И КОНЕЧНЫЙ АДРЕС  ТЕКСТОВОГО
ФАЙЛА В ДЕСЯТИЧНЫХ ЕДИНИЦАХ. ЭТО МОЖЕТ БЫТЬ ПОЛЕЗНО ПРИ  ЗАПИСИ
ФАЙЛА СРЕДСТВАМИ ЯЗЫКА BASIC ИЛИ ПРИ ВЫЯСНЕНИИ КОЛИЧЕСТВА  СВО-
БОДНОЙ ПАМЯТИ, ОСТАВШЕЙСЯ ЗА  ТЕКСТОВЫМ  ФАЙЛОМ.  GENS3  ВСЕГДА
СЧИТАЕТ, ЧТО ЕГО ТЕКСТОВЫЙ ФАЙЛ РАСПОЛОЖЕН ОТ  АДРЕСА,  ВЫДАВА-
ЕМОГО КОМАНДОЙ "Х" И  ДО   АДРЕСА,   СОДЕРЖАЩЕГОСЯ   В   ЯЧЕЙКЕ
"TEXTEND", КОТОРАЯ РАСПОЛОЖЕНА ПО АДРЕСУ "START OF GENS3 + 54".
TAK ЕСЛИ ВЫ ХОТИТЕ, ПОПРАВИТЬ ТЕКСТОВЫЙ ФАЙЛ (ВОЗМОЖНО ПОЛУЧЕН-
НЫЙ ПРИ ПОМОЩИ MONS3), ВЫ ДОЛЖНЫ РАЗМЕСТИТЬ ЭТОТ ФАЙЛ НАЧИНАЯ С
АДРЕСА, ВЫДАВАЕМОГО КОМАНДОЙ "X", СООТВЕТСТВУЮЩИМ ОБРАЗОМ  ПОП-
РАВИТЬ ЗНАЧЕНИЕ "TEXTEND" И ВЫПОЛНИТЬ "ТЕПЛЫЙ"  СТАРТ.  СКАЖЕМ,
НАПРИМЕР, ЧТО ВЫ СОЗДАЛИ ТЕКСТОВЫЙ ФАЙЛ В ПРАВИЛЬНОМ МЕСТЕ И ОН
КОНЧАЕТСЯ (АДРЕС ПОСЛЕДНЕГО МАРКЕРА КОНЦА ЛИНИИ) АДРЕСОМ  9А02.
ПРИНИМАЯ ВО ВНИМАНИЕ, ЧТО GENS3 ЗАГРУЖЕН  С  АДРЕСА  24064,  ВЫ
ДОЛЖНЫ ВЫПОЛНИТЬ ИЗ ЯЗЫКА BASIC:

             POKE 24064+54,2    (02)
             POKE 24064+55,154  (9A)

       И ЗАТЕМ ЗАПУСТИТЬ GENS3 КОМАНДОЙ:

             RANDOMIZE USR24125

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


         3.2.7. ПРИМЕР ИСПОЛЬЗОВАНИЯ РЕДАКТОРА


     ДОПУСТИМ  ВЫ  ВВЕЛИ  СЛЕДУЮЩУЮ  ПРОГРАММУ  (ИСПОЛЬЗУЯ:  "I
10,10")

  10 ; DII RFNDOM
  20
  30 ; INPUT: HL CONTAIN PREVIOS NUMBER OF SEED
  40 ; OUTPUT: HL CONTAIN NEW RANDON NUMBER
  50
  60 RANDOMS     PUSH    HL      ; SAVE REGISTERS
  70 PUSH BC
  80             PUSH   HL,HL
  90             ADD    HL,HL    ; *2
 100             ADD    HL,HL    ; *4
 110             ADD    HL,HL    ; *8
 120             ADD    HL,HL    ; *16
 130             ADD    HL,HL    ; *32
 140             ADD    HL,HL    ; *64
 150             PIP    BC       ; OLD RANDOM NUMBER
 160             ADD    HL,DE
 170             LD     DE,A1
 180             ADD    HL,DE
 190             POP    BC       ; RESTORE REGISTERS
 200             POP    AF
 210             REV

     ЭТА ПРОГРАММА ИМЕЕТ СЛЕДУЮЩИЕ ОШИБКИ:
 40  - "RANDON" - ДОЛЖНО БЫТЬ "RANDОМ"
 70  - "PUSH BC" - НАЧИНАЕТСЯ В ПОЛЕ МЕТОК
 150 - ВМЕСТО "PIP" ДОЛЖНО БЫТЬ "POP"
 160 - НУЖДАЕТСЯ В КОММЕНТАРИИ (ЭТО НЕ ОШИБКА, ПРОСТО СТИЛЬ)
 210 - ВМЕСТО "REV" ДОЛЖНО БЫТЬ "RET"

НЕОБХОДИМО ДОБАВИТЬ ДВЕ ДОПОЛНИТЕЛЬНЫЕ СТРОКИ:

           ADD     HL,HL

     И ВСЕ ССЫЛКИ В СТРОКАХ 160-180 НА  РЕГИСТРОВУЮ  ПАРУ  "DE"
ДОЛЖНЫ БЫТЬ ЗАМЕНЕНЫ НА РЕГИСТРОВУЮ ПАРУ "BC".

     ДЛЯ ТОГО, ЧТОБЫ ВВЕСТИ ЭТИ ИСПРАВЛЕНИЯ,  ПОСТУПАЕМ  СЛЕДУ-
ЮЩИМ ОБРАЗОМ:

F40,40,RANDON,RANDON "ENTER"

ZATEM "S" ПОДКОМАНДА "E70" "ENTER"

I (РЕЖИМ ВСТАВКИ) (6 ПРОБЕЛОВ) "ENTER" "ENTER"

I 142,2 "ENTER"
   142    ADD HL,HL     ; *128
   144    ADD HL,HL     ; *256

F150,150,PIP,POP "ENTER"

ЗАТЕМ "S" ПОДКОМАНДА "E160" "ENTER"

ЗАТЕМ "Х" ;256 +41  "ЕNTER"

F160,180,DE,BC  "ENTER"

ЗАТЕМ 3 РАЗА "S" ПОДКОМАНДА "E210" "ENTER"

"CI" "CI" "C" (ИЗМЕНЕНИЕ РЕЖИМА)

Т  "ENTER" "ENTER"

N 10,10 ПЕРЕНУМЕРАЦИЯ ТЕКСТА

***************************************************************
*                                                             *
*ВНИМАНИЕ ! НАСТОЯТЕЛЬНО РЕКОМЕНДУЕМ ПРОРАБОТАТЬ НА ПРАКТИКЕ *
*                                                             *
*           ПРИВЕДЕННЫЙ ВЫШЕ ПРИМЕР ИСПОЛЬЗОВАНИЯ РЕДАКТОРА.  *
*                                                             *
***************************************************************

***************************************************************
*                                                             *
* ВНИМАТЕЛЬНО ИЗУЧИ ПРИЛОЖЕНИЯ, А ЗАТЕМ ПРИСТУПАЙ К РАБОТЕ    *
*                                                             *
***************************************************************



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Обзор новинок - Figus, Пыль звездных дорог (demo).
Hardware - Cистемное П3У Kворумa, плюсы и минусы.
Последняя страница - авторы номера.
Въедем - Описание игры : How to be a complete bastard.
О разном - Немного об INTERNET-е.

В этот день...   21 ноября