Устройство и принцип действия.



Блок-схема скважинного прибора представлена на рис.2. Он состоит из следующих узлов: детекторов D1 и D2, усилителей – преобразователей тока в напряжение У1 и У2, компараторов энергетического «окна» КОМ1 и КОМ2,счетчиков импульсов С1 и С2, цифро-аналоговых преобразователей ЦАП1 и ЦАП2, микропроцессора МП, памяти программ ППЗУ, периферийной БИС ввода/вывода информации ПБИС, приемо-передающей цепи ППЦ, блока управления питанием БУП, блока запуска нейтронной трубки БЗ, излучателя нейтронов ИН и источников питания ИП на напряжения +/-5В, +/-12В, +30В, 2кВ. Детекторы D1 и D2 состоят из сцинтилляционного кристалла NaJ размером 18×160 и 16×40 соответственно и фотоэлектронных усилителей ФЭУ-102, попарно помещенных в отдельные корпуса. Выходными сигналами детекторов являются импульсы тока длительностью 0,7-1,0 мкс.

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

Усилители У1 и У2 реализованы (на операционном усилителе DA1 для У1) (рис. 4) по одинаковым схемам для обоих зондов. Усилители предназначены для согласования высокоомного выхода ФЭУ с низкоомными входами компараторов, для чего они выполнены по схеме преобразования импульсов тока в импульсы напряжения.

Компараторы КОМ1 и КОМ2 (рис. 4) предназначены для формирования энергетического «окна» при регистрации гамма-излучения наведенной активности кислорода и каждый состоит из 3-х микросхем (DA2, DA3 и DD1 для КОМ1) (см. рис. 4). Установка порогов срабатывания компараторов по нижнему и верхнему уровню окна производится напряжениями U1 и U2 соответственно.

Эти напряжения вырабатываются с помощью цифроаналоговых преобразователей ЦАП1 и ЦАП2,установленных в блоке ЦАП (рис. 5). Выходные сигналы компараторов управляют триггером DD1, а также поступают в схему счетчиков, расположенных на плате процессора (рис. 6). ЦАП1 и ЦАП2 построены на микросхемах DD7, DA1,DA3 и DD8, DA2, DA4 соответственно. Регистр DD7 служит для приема и хранения задаваемого оператором кода нижнего уровня энергетического «окна», а регистр DD8 – верхнего уровня «окна». В соответствии с хранящимися в регистрах кодами, микросхемы ЦАП DA1 и DA2 совместно с усилителями DA3 и DA4 вырабатывают напряжения U1 и U2 для компараторов.

Счетчики С1 и С2 (рис. 6) реализованы для одного зонда на микросхемах DD4 (порт А и таймер), DD5 и DD6; а для другого зонда на микросхемах DD4 (порт В и таймер), DD7 и DD8. Счетчики служат для постоянного счета проходящих через энергетическое «окно» импульсов напряжения, возникающих при регистрации гамма-излучения. Съем информации со счетчиков производится «на лету» процессором через порты А и В по прерываниям от таймера, время работы которого задается оператором. Вычитание предыдущего отсчета из текущего и передача результата в соответствующую ячейку памяти (канал) дает распределение счетов по времени (по каналам с 1-го по 16-й) внутри одного цикла (после одного запуска

 

 

 

излучателя нейтронов). Поцикловое и поканальное суммирование счетов в ячейках памяти за время прохождения заданного интервала по глубине (обычно 40 см) дает наряду с временным распределение импульсов от ГИРЗ по глубине, позволяющее на поверхности вычислять искомые параметры Тпл и τпл с целью получения каротажной диаграммы. Цифровые значения счетов в каналах с помощью телеметрической системы (микросхемы DD1и DD4 на рис. 5) (рис. 1 или рис. 6) передаются в наземный прибор.

 

 

 

В качестве памяти программ в скважинном приборе применена микросхема DD3 (К573РФ5), в которой размещается программа функционирования скважинного прибора в 4-х режимах, задаваемых оператором.

При включении аппаратуры, а также по желанию оператора прибор переходит в режим теста, при котором из скважинного прибора в наземный с частотой 100 Гц поступает кодовая комбинация 5020Н. Это – первый режим. Во втором режиме (ИНГК) с частотой 20 Гц запускается излучатель.

При каждом запуске через заданную оператором задержку регистрируются счета импульсов ГИРЗ в 16-ти последовательных интервалах времени (каналах), длительность которых также задается оператором. Через 8 мс после запуска излучателя, когда интенсивность импульсов ГИРЗ спадет до естественного фона гамма-излучения, начинается подсчет импульсов излучения НАК (наведенной активности кислорода) в заданном энергетическом «окне» (приблизительно от 3-х до 10 МэВ), который продолжается до следующего запуска излучателя, т.е. 42 мс. Затем указанные операции повторяются с суммированием и запоминанием соответствующих счетов в выделенных ячейках оперативной памяти (микросхема DD4 на рис. 6). Из памяти полученная информация с помощью телесистемы передается в наземный прибор и далее в персональный компьютер для обработки.

В третьем режиме (ГК) производится непрерывный подсчет импульсов естественного излучения горных пород со съемом информации через каждые 10 мс и передачей в наземный прибор результатов суммирования в 5-ти последовательных двухбайтовых ячейках памяти 20-ти отсчетов, т.е. через каждые 200 мс числовые величины счета импульсов ГК за этот интервал времени запоминаются в 5-ти ячейках памяти и затем (через 1 сек) передаются в наземный блок для дальнейшей обработки.

Четвертый режим (ГКС) аналогичен третьему с той разницей, что подсчет импульсов естественного излучения производится в энергетических «окнах» характерных для изотопов калия (К), урана (U) и тория (Th)

Плата микропроцессора МП (см. рис.6) содержит микросхемы DD1 (собственно МП), DD2 (регистр адреса), DD9 (делитель) и DD4 (схема ОЗУ с портами ввода/вывода и таймером). При инициализации скважинного прибора МП функционирует в режиме, заданном оператором, по программе, команды которой выбираются с помощью регистра адреса DD2, а исполнение – с помощью портов ввода/вывода, чтение или запись информации в которые производится процессором.

 Приемо-передающая цепь – ППЦ (рис. 5) является скважинной частью примененной в приборе телесистемы и включает в себя кодер/декодер DD1, передатчик, приемник DD4 (рис. 3) и трансформатор Т1 (установлен на шасси прибора) для согласования с геофизическим кабелем. Прием и передача информации осуществляется кодом «Манчестер-II» в соответствии с программой функционирования аппаратуры.

Излучатель нейтронов (ИН) VL1 предназначен для генерации импульсного потока быстрых нейтронов. В состав излучателя входят: нейтронная трубка ТНТ-1411 или ТНТ-1415, высоковольтные трансформаторы, ионный источник, резисторы защиты и поджига (см. рис. 3).

 Внешний конденсатор С5 входит в состав узла питания ионного источника. В режиме ожидания запуска верхняя обкладка конденсатора С5 заряжается напряжением 4 кВ. При «поджиге» высоковольтного разрядника FV1 этот конденсатор разряжается через первичные обмотки высоковольтных

 

 

 

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

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

 

 

 

 

Блок запуска – БЗ излучателя (рис. 7) представляет собой схему формирования высоковольтного импульса напряжения, под действием которого нейтронная трубка вырабатывает импульсный поток быстрых нейтронов. Транзистор VT1 импульсом «пуск», поступающим через порт С микросхемы DD4, открывает тиристор VS1 и разряжает конденсатор С2 через трансформатор Т1. Полученный на выходной обмотке этого трансформатора импульс возбуждает нейтронную трубку.

Источники питания ИП представляют собой (рис. 3) систему, включающую в себя: источники вторичного электропитания +/- 5 В. и +/- 12 В, источник высокого напряжения (2 кВ) для питания 2-х ФЭУ и источник высокого напряжения (4 кВ) для питания нейтронной трубки. Источник вторичного электропитания состоит из задающего генератора (рис. 8), блока силового транзистора (рис. 9), трансформатора Т2 с диодными мостами (рис. 3) и платы стабилизации (рис. 10).

 

 

 

 

Источник питания ФЭУ реализован с помощью задающего генератора (рис. 11), усилителя мощности (рис. 12), трансформатора Т3 и умножителя (рис. 13).

Для питания излучателя применена схема коммутации (рис. 14), входными сигналами которой являются соответствующие выходы задающего генератора (рис. 8), а выходные сигналы подаются на входы блоков силовых транзисторов (рис. 9), включенных по двухтактной трансформаторной схеме.

 

 

 

Выходные напряжения двух Т4 и Т5 (рис. 3) трансформаторов после умножителей (рис. 15) суммируются и полученное в результате напряжение + 4 кВ подается на нейтронную трубку.

 

 

 

 

 

 

 

Плата коммутации питания (рис. 16) предназначена для обеспечения работы источника вторичного электропитания при включении аппаратуры.

 

 

После появления выходного напряжения +12В плата коммутации отключается. Отключение производится переводом открытого состояния транзистора VT1 в непроводящее состояние шунтированием перехода база-эмиттер открытым тиристором VD1.

 

 

 

 

 

В качестве наземного вторичного прибора в генераторе используется компьютеризированный каротажный регистратор «Гектор», который в свою очередь связан с бортовым персональным компьютером типа «Notebook» по интерфейсу RS-232C. Функционирование комплекса – скважинный прибор, «Гектор» и персональный компьютер – осуществляется с помощью программного обеспечения, состоящего из двух частей: управляющей программы «LOG», находящейся в РС, и программы работы скважинного прибора, записанной в микросхеме ПЗУ DD3 (К573РФ5) на плате процессора (рис. 6).

Блок-схема алгоритма работы скважинного прибора представлена на рис. 17.

Рис. 17. Блок-схема алгоритма работы скважинного прибора

 

Блоки 1-18 алгоритма реализуют следующие функции:

1. Режим инициализации: указание стека, программирование периферийной БИС, обнуление рабочего участка ОЗУ, программирование таймера на 10мс., ввод цифровых значений верхнего и нижнего уровней энергетического «окна», передача слова 5020Н в наземный прибор, останов (ожидание прерываний RST 7.5 от таймера или RST 5.5 от оператора каротажной станции).

2,3. Цикл длительностью 10мс. – режим цифрового теста. В блоке 2 установка «флага» - ячейку памяти 180ЕН в 1, аккумулятора А в 1, перенос содержимого А в регистр В с целью освобождения аккумулятора для текущих пересылок. В блоке 3 – пересылка слова 5020Н в наземный прибор, обнуление «флага» 180ЕН = 0, останов в ожидании прерываний 7.5 или 5.5.

4. Обработка прерывания 5.5: приём от оператора 6-ти управляющих слов. Задержка введена для ожидания прихода очередного слова, вызывающего прерывание 5.5.

5. Подготовительные операции к анализу принятых слов. Первый байт первого слова определяет режим работы генератора: ЕFН – режим регистрации естественного гамма-излучения; DFH – режим регистрации ГИРЗ и КНАМ. Анализ этих слов позволяет разделить алгоритм на две ветви: регистрацию естественного ГК и регистрацию ИНГК.

 

                       Режим ГК.

6. Программирование таймера на 10мс., ЦАП на верхний и нижний уровни энергетического «окна», «флага» 180ЕН в 1 и останов в ожидании прерывания 7.5.

7. Регистрация импульсов естественного γ-излучения (чтением портов 19Н и 1АН) в 10-ти последовательных ячейках ОЗУ (по пять двухбайтовых отсчетов, накопленных за 200мс.) для 2-х зондов – ячейки 1810Н, 1811Н,….., 1822Н, 1823Н. Передача накопленных данных в наземный прибор и повторение цикла – 5ячеек* 200мс.=1сек. Переход к п.6.

 

                       Режим ИНГК.

8. Программирование верхнего и нижнего уровней энергетического «окна» в области ГИРЗ, «флага» ИНГК 180ЕН=02, проверка второго байта первого управляющего слова на разрешение запуска излучателя и, если разрешение есть, то - запуск, если нет, то переход на начало программы.

9. Запуск излучателя нейтронов, программирование таймера на время первой задержки Тзад1 и на первое канальное время Тк1. Указание области ОЗУ для данных (начальный адрес 18А4Н), затем останов в ожидании прерывания от Тзад1 (RST7.5).

10. Регистрация 1-го отсчета (после Тзад1) в области ГИРЗ по двум зондам в ячейки памяти с адресами 18А4Н и 18А5Н. Останов.

11. Регистрация отсчетов ГИРЗ по 16-ти каналам по двум зондам в область памяти 18А6 – 18С4Н.

12. Программирование таймера на время Тк2, верхнего и нижнего уровней энергетического «окна» в области КНАМ. Обработка зарегистрированного ГИРЗ (перенос данных из области памяти с 18А4Н в область с 1810Н с суммированием). Указание областей ОЗУ для дальнейшей работы – 18А4Н и 1850Н. Останов.

13. Регистрация 1-го отсчета в области КНАМ в ячейки 18А4Н и 18А5Н.

14. Регистрация 2-го отсчета в области КНАМ в ячейки 18А6Н И 18А7Н. Вычисление разностей 18А6Н – 18А4Н = ΔΝ1  и 18А7Н – 18А5Н = ΔΝ2 и перенос результатов в последовательные ячейки памяти с адреса 1850Н с суммированием по оставшимся 20-ти каналам. Проверка количества циклов (28Н – 14Н = 14Н = 20D).

15. «Флаг» 180ЕН в аккумулятор А и проверка прохождения последнего цикла 29Н.

16. Программирование количества циклов (ГИРЗ + КНАМ) 14Н раз, для чего отводим в качестве «флага» ячейку 180FH.

17. Повторяем (ГИРЗ + КНАМ) 14Н(20D) раз.

18. Пересылаем в наземный прибор накопленный файл данных объёмом А3Н байт (ГИРЗ + КНАМ), ограниченный маркерами начала файла – 9999 и конца файла – 3333. Установка «флагов» 180FН = 01, 180ЕН = 02, таймера на Тзад1 и Тк1, начала ОЗУ по адресу 1810Н и останов в ожидании прерывания 7.5 по концу Тзад1. Переход к п.8.

Для смены режима работы прибора необходимо произвести разовое выключение/ включение питания и вновь запрограммировать прибор.

Разработка и отладка программы производится с помощью программно-логической модели микропроцессора 8085 на персональном компьютере. Программа реализована на ПЭВМ типа IBM PC в среде MS DOS. Программа работает в режиме программно-логической модели МП К1821ВМ85 (с расширенной системой команд). Программный интерфейс оператор - ПЭВМ организован в виде меню. Программа обеспечивает выполнение прикладной программы для МП в пошаговом режиме, в режиме прогона с остановом по контрольным точкам и по дополнительным условиям; обеспечивает доступ ко всем внутренним регистрам МП, а также внешней памяти и портам ввода/вывода; программирование карты памяти; трассировку последних 1023 инструкций, выполненных процессором. Перечисленные режимы поддер­живаются как в режиме модели, так и при работе с микропроцессорным устройством (МПУ) пользователя в реальном масштабе времени.  При работе в режиме программно-логической модели дополнительной аппаратуры не требует­ся. Ниже описана последовательность действий оператора при работе с программой.

 

Для запуска программы необходимо набрать команду Е8085.

Если установлен режим программно-логической модели, то произ­водится очистка памяти и контрольных точек.

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

Е8085 EXAMPLE.HEX

       Основное меню программы содержит следующие команды:

Ram - редактирование памяти.

Ports - редактирование портов ввода/вывода.

Step - выполнение шага программы.

Over - выполнение процедуры/шага программы.

Go - запуск программы.

Nstep - выполнение заданного числа шагов.

Reset - сброс микропроцессора.

Disk - чтение/запись загружаемых файлов.

Mode/Map - задание режимов, установка карты памяти.

Hdw - статическая отладка МПУ.

Edit - редактирование и компиляция.

 

Выбор команды меню выполняется с помощью клавиш управления курсором: "стрелка влево", "стрелка вправо". Запуск команды - клавишей "ENTER". Клавиша "ESC" позволяет выйти из любого меню в предыдущее и служит также для отмены любого выбранного режима (см. ниже). На­жатие этой клавиши в основном меню вызывает подменю вертикального типа:

"Конец работы" - подтверждение завершения работы;

"DOS Shell" - временный выход в DOS., программа остается в памяти, возврат по команде EXIT.

Выбор команды и ее инициирование производятся клавишами стрелок и Enter.

Выбираемая команда меню индицируется цветом фона и сопровож­дается подсказкой в 24 строке экрана. За текстом подсказки в скоб­ках указан альтернативный способ вызова данной команды - посредс­твом комбинации клавиш Alt и буквы латинского алфавита, которая выделена в команде как прописная. Например, для перехода к прос­мотру и редактированию регистров специальных функций из любого другого режима можно не выходить в меню, а нажать комбинацию кла­виш Alt-S. Такой способ выбора команды повышает удобство и ско­рость работы с программой.

Предусмотрен ввод контрольной точки останова программы пользователя по заданному адресу - комбинацией клавиш Ctrl-F8, а также автоматическое выполнение цикла: редактор текста - ассемблер - редактор связей - загрузка файла, - клавишей F9.

 На экране постоянно отображаются 4 окна:

Регистры Трасса программы Программа Стек,

Доступ к данным в окнах осуществляется клавишей Tab. При этом активное окно выделяется двойной рамкой. Переключение активного окна производится следующим нажатием на клавишу Tab. В 23 и 24 строках экрана выводится подсказка. Для возврата в меню нужно нажать клавишу ESC. Предусмотрен альтернативный доступ к окнам - по номеру окна. Номер окна указан в левом нижнем углу рамки в виде: [N], где N-1..4. Для входа в окно нужно нажать комбинацию клавиш Alt-номер, например А1t-3.

В окне "Регистры" представлена информация о текущем значении процессора: значения регистров и флагов микропроцессора, состояние внешних входов прерываний. Все ресурсы доступны для редактирования при активизации ок­на (клавишей Tab).

В окне "Трасса программы" отображаются значения счетчика команд и соответствующие мнемоники для последних 17 выполненных инструкций. Цветом выделена инструкция, которая будет выполнена при следующем шаге. В буфере трассы программы фиксируются значения счетчика команд для последних 1023 выполненных инструкций. Прос­мотр трассы обеспечивается при активизации окна.

В окне "Программа" отображаются коды и дисассемблированные инструкции программы, загруженные в память. Адреса переходов и данные представлены в шестнадцатеричном виде. Инструкция, на кото­рую указывает счетчик команд РС, выделена цветом. В окне просмотра помещается 18 инструкций. Просмотр и редактирование (если окно ак­тивизировано) осуществляется по принципу "ролика", способ выбора и изменения содержимого ячеек памяти тот же, что и при редактирова­нии кодов. Для корректного дисассемблирования памяти программ не­обходимо правильно задать начальный адрес просмотра, запрашиваемый управляющей программой. Адрес должен соответствовать первому байту (коду операции) инструкции. Следует учитывать, что области конс­тантных массивов в памяти программ дисассемблером не распознаются. Для правильного отображения конкретного участка программы нужно в качестве точки начала дисассемблирования задавать адрес первого оператора просматриваемой процедуры.

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

Программа имеет также встроенную функцию ассемблирования. Это позволяет редактировать содержимое памяти программ, пользуясь мнемониками языка Ассемблер. В отличие от транслятора с языка данная программа не поддерживает мнемонических идентификаторов адресов (меток) и данных (за исключением случая, когда загружена таблица символических имен). Ввод этих величин производится в шестнадцатеричных кодах.

При вводе строки на языке Ассемблер обеспечивается ее редак­тирование. Ввод завершается клавишами " стрелка вверх", " стрелка вниз" и Enter. Если строка введена правильно, то модифицируется соответствующее количество байт памяти и результат отображается на экране, в противном случае содержимое памяти не изменяется. Сообщений об ошибках не выдается.

В режиме редактирования дисассемблированной программы можно вызывать дополнительные сервисные функции. Информация о доступных функциях выведена в 23 и 24 строках экрана. В отличие от режима редактирования памяти в кодах в данном режиме имеется возможность выполнения инструкций программы без вы­хода в меню:

F7 - выполнение шага (аналогично команде меню Step);

F8 - выполнение процедуры/шага (аналогично команде меню Over);

Ctrl-F9 - прогон программы (аналогично команде меню Go);

F4 - прогон программы до курсора.

Ctrl-F4 - изменение состояния счетчика команд, значение PC устанавливается  равным адресу инструкции, на которую указывает курсор.

В окне "Стек" индицируется фрагмент памяти, на который указывает регистр SP. Цветом выделена область памяти, которая, возмож­но, является стеком программы пользователя. Границей данной области является ячейка памяти по адресу, содержащемуся в регистре SP, При активизации окна данные можно просматривать в режиме " ролика." и при необходимости редактировать.

В нижней части окна "Стек" отображается текущая глубина стека и максимальное значение глубины, достигнутое при выполнении прог­раммы. Сброс показаний происходит при выполнении сброса процес­сора командой меню "Сброс".

Программа обеспечивает прямое экранное редактирование отобра­жаемых ресурсов.

В режиме Ram осуществляется экранное редактирование памяти МП. При входе в данный режим на экране отображается содержимое памяти в шестнадцатеричных кодах; курсор указывает на ячейку с адресом, который просматривался при последнем входе в данный режим. Для выбора редактируемой ячейки памяти используются клавиши: стрелки вверх, вниз, влево, вправо; Home, End, PgUp, PgDn. Для редак­тирования выбранной ячейки следует нажать клавишу любого шестнадцатеричного символа (0.. F). Ввод однозначного числа завершается нажатием любой из клавиш редактирования или Enter, при нажатии клавиши второго символа ввод числа считается завершенным и курсор автоматически переходит к ячейке со следующим адресом.

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

- переход к произвольному адресу (F2);

- заполнение кодом (константой) ячеек памяти в заданном диапазоне адресов (F3 ) ;

       - очистка (сброс) контрольных точек в диапазоне (F5);

- сдвиг заданного фрагмента памяти программ на область адре­сов, начинающуюся с заданного (F8);

- установка/сброс контрольной точки по заданному адресу
(Ctrl-F8) .

- поиск заданной последовательности кодов (F10);

- установка/сброс контрольных, точек по редактируемым адресам (Ins).

Имена и назначение функциональных клавиш (F1-F10) в процессе рабо­ты индицируются в окне меню.

Для заполнения константным кодом фрагмента памяти (F3) требу­ется в появившемся на экране окне параметров подтвердить парамет­ры, задаваемые по умолчанию (код = 0, начальный адрес = 0, конеч­ный адрес = FFFF), или установить новые. Выбор изменяемого пара­метра осуществляется клавишами "стрелка вверх" и "стрелка вниз", редактирование - клавишами шестнадцатеричных символов, а также "стрелка влево", "стрелка вправо", BackSpase. Фиксация нового па­раметра происходит при нажатии клавиши Enter или переходе к следу­ющему параметру. Для выполнения операции заполнения кодом необхо­димо установить курсор на поле "ОК" и нажать Enter, для отмены операции - нажать ESC.

Для выполнения поиска фрагмента памяти с кодами, совпадающими с заданной последовательностью (F10), необходимо в окне "Модель для поиска" ввести кодовую последовательность в шестнадцатеричных кодах. При этом каждая пара символов считается значением очередно­го байта модели поиска. Допускаются пробелы в любом количестве. Если число символов нечетное, то последний символ считается млад­шим значащим в байте. Ввод модели поиска заканчивается нажатием Enter. Поиск начинается с текущего адреса просмотра памяти +1, конечный адрес равен FFFF. Поиск осуществляется до первого выполнения заданного условия.

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

Установка/сброс контрольных точек останова выполнения программы производится клавишей Ins. При этом для правильной работы системы контрольная точка должна устанавливаться на первом байте инструкции. Установленная контрольная точка (К.Т.) отображается на экране заштрихованным треугольником около кода инструкции. Если К. Т. уже установлена по адресу, на который указывает курсор, то нажатие клавиши Ins приведет к ее удалению. Установка К.Т. допуска­ется во всем диапазоне адресов памяти программ.

С помощью клавиши F5 можно удалять К.Т. в заданном диапазоне адресов памяти программ. Задание границ диапазона производится аналогично режиму заполнения константным кодом.

Для копирования фрагмента памяти (инициируется клавишей F6) нужно задать границы фрагмента и начальный адрес копии.

Установка/сброс контрольной точки по заданному адресу инициируется комбинацией клавиш Ctrl-F8. В появившемся окне отображается дисассемблированная инструкция по адресу, на котором последний раз устанавливалась контрольная точка. Изменить адрес можно, набрав его в шестнадцатеричном виде и нажав Enter; установить/сбросить К.Т. - клавишей Ins.

Порты ввода/вывода (команда меню Ports - редактирование портов ввода/вывода) представлены в виде пространства с адреса­ми 0..255 с байтовой организацией. Просмотр и редактирование ячеек портов производится аналогично редактированию памяти. Выполнение программы осуществляется командами меню Step, Over, Go, Nstep. Данные команды служат для выполнения программы пользователя по шагам или в непрерывном режиме.

При активизации команды Step выполняется текущая инструкция программы пользователя и результат ее выполнения отображается во всех рабочих окнах.

По команде Nstep производится выполнение заданного количества инструкций (не более 65534). Инструкции могут выполняться двумя способами:

- по шагам, с соответствующим отображением состояний после каждого шага;

- в режиме прогона, акти­визируется только при работе с эмулятором.

Соответственно, при активизации данной команды появляется окно с запросом способа выполнения и количества шагов:

                   По шагам: FFFF

                   Прогон : FFOO.

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

Команда Over используется для выполнения процедуры, то есть все инструкции, следующие за командой Call, выполняются автомати­чески в пошаговом режиме (без отображения результатов на экране и фиксации в трассе) до соответствующей команды возврата. Вложенные процедуры также выполняются. Если произошло переполнение стека или возврат из процедуры происходит по адресу, не соответствующему входу в нее, то выдается сообщение об ошибке: "Переполнение стека" или "Ошибка управления стеком" соответствен­но. При зацикливании программы останов производится нажатием кла­виши ESC. Для всех инструкций, отличающихся от Call, выполнение команды Over аналогично команде Step.

Выбор команды Go активизирует запуск программы в непрерывном режиме (без отображения на экране, с фиксацией трассы). Перед вы­полнением команды запрашивается адрес запуска (по умолчанию теку­щий адрес PC). Остановить выполнение программы можно нажав клавишу Enter.

Если включен режим символической отладки, то при выполнении команды Go вместо адреса можно вводить имя метки.

При выполнении инструкции, отмеченной контрольной точкой (см. описание редактирования памяти программ) в режимах Go, Nstep происходит останов и выдается сообщение "Останов по контрольной точке". Следует иметь в виду, что команда, помеченная контрольной точкой, будет выполнена, а затем производится останов. При остано­ве обновляется информация во всех окнах. При работе с моделью во всех режимах производится контроль стека и выдаются сообщения об ошибках, аналогично команде Over.

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

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

        - в процессе выполнения команд Go, Over., Nstep имеется возможность имитации сигналов на внешних входах МП: Int,
Trap, Rst5.5, Rst6.5, Rst7.5, Sid (в зависимости от установленного типа МП). При этом на экране отображаются мнемонические имена данных линий, логические состояния моделирования внешних воздействий на эти линии и имена функциональных клавиш (Fl -F5), которые позволяют изменять состояние внешнего воздействия с клавиатуры;

- при выполнении инструкции ввода данных из порта (in NN)
производится запрос данных от оператора. В появившемся окне индицируется текущее значение PC, мнемоника команды и значение вводимых данных. Предлагаемое по умолчанию значе­ние равно содержимому соответствующей ячейки массива портов (равно последней записанной в данный порт величине). Если величину вводимых данных изменять не требуется, то для продолжения выполнения программы достаточно нажать клавишу Enter;

- обеспечивается подсчет тактов синхронизации, требуемых для
выполнения инструкций программы пользователя. Состояние счетчика тактов индицируется в 25 строке экрана (выделено цветом). Индикация состояния счетчика происходит при каж­дом останове выполнения программы. Счетчик обнуляется при выполнении команды Reset или клавишей F10.

При работе в основном меню можно устанавливать/сбрасывать контрольные точки останова (клавиши Ctrl-F8) так же, как и при ра­боте с памятью программ (см. выше).

В режиме Reset выполняется установка счетчика команд и внутренних флагов в исходное состояние в соответствии с функционирова­нием кристалла прототипа. Кроме того, обнуляется счетчик тактов и инициализируется система контроля стека.

В режиме Disk производится выбор рабочего диска/директории, чтение файла программы пользователя и запись программы в файл в загружаемом формате. Управляющая программа работает с файлами в форматах HEX (Intel) и BIN (двоичный формат, абсолютное отображение памяти, другой вариант имени - ABS) с соответствующим расшире­нием имени файла. Формат НЕХ используется по умолчанию.

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

Если курсор (выделение цветом) указывает на файл (имя напечатано строчными буквами), то считается, что данный файл должен быть загружен в память. Загрузка инициируется клавишей Enter. При ошиб­ке операции доступа к файлу выдается сообщение об ошибке. Для про­должения работы нужно нажать любую клавишу.

Если курсор указывает на вышележащую (“…”) или нижележащую (имя напечатано прописными буквами) директорию, то нажатие клавиши Enter инициирует переход к данной директории.

Способ просмотра директории меняется клавишей F8. В одном случае директория отображается в виде "brief" - только имена фай­лов, в другом - "full" - имя, размер, дата создания.

Для изменения рабочего диска необходимо нажать клавишу "D". В появившемся окне нужно ввести имя диска (директории) и нажать Enter . В этом же режиме можно задавать маски для просмотра директории (wildcards) в соответствии с правилами DOS.

Запись в файл программы из памяти производится по команде "W" . Для записи файла в формате BIN нужно ввести расширение имени файла BIN или ABS, по умолчанию HEX. После ввода имени файла пос­ледовательность действий аналогична операции чтения.

По команде 'Т" производится запись файла программы в дисассемблированном виде. Строки формируются в формате, аналогичном просмотру памяти в режиме дисассемблера.

По команде Mode/Map предлагается выполнение одной из следующих операций:

МОДЕЛЬ - установка режима программно-логической модели;

ЭМУЛЯТОР - установка режима работы с эмулятором, инициализация интерфейса и аппаратуры эмулятора; 

УСЛОВИЯ ОСТАНОВА - переход к режиму программирования условий    останова;

     КАРТА ПАМЯТИ - переход к режиму программирования карты памяти;

АВТОЗАПУСК - включение/выключение автоматического запуска продолжения выполнения программы при останове по контрольной точке. Используется только при работе с эмулятором.

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

В режиме "УСЛОВИЯ ОСТАНОВА" задаются дополнительные условия останова выполнения программы пользователя. Способы останова зави­сят от текущего режима модель/эмулятор.

При работе с моделью можно задавать условия останова по значению одного или нескольких регистров МП, При вызове данной опции (клавишей Enter) в появившемся окне предлагается список анализиру­емых регистров и их контрольные значения. Для включения режима проверки состояния регистра в процессе выполнения программы поль­зователя нужно установить курсор на соответствующую строку и на­жать клавишу Enter. Включение проверки индицируется символом "±" слева от имени регистра. Выключение проверки производится так же клавишей Enter. Редактирование контрольного значения регистра осу­ществляется аналогично предыдущим режимам.

Команда Hdw активизирует режим статической отладки.

В управляющей программе предусмотрены четыре режима статичес­кой отладки МПУ. Вызов данных режимов осуществляется при активном окне Hdw клавишами:

F4 - "Чтение памяти", отработка цикла чтения памяти, F5 - "Запись .в память", отработка цикла записи памяти. F6 - "Чтение порта", отработка цикла чтения порта ввода/вывода; F7 - "Запись в порт", отработка цикла записи в порт ввода/вывода .

Для выхода из режима статической отладки нужно нажать клавишу ESC.

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

Рабочее окно разделено на два основных поля: "Команды" и "Оп­ции". Выбор команды и установка опций производится клавишами стре­лок и "табуляция".

В поле "Команды" можно активизировать следующие операции:

Edit - вызов редактора текста для редактирования рабочего файла;

     List - вызов программы просмотра файла листинга;

    Assemble - вызов кросс-ассемблера и обработка рабочего файла;

 Link - вызов редактора связей;

 Load - загрузка результата трансляции в программно-логическую модель;

Compile - автоматическое выполнение последовательности команд Assembler-  Link - Load;

Make - автоматическое выполнение последовательности команд

Ed it - Assembler - Link – Load.

В поле "Опции" задаются следующие параметры:

Файл - имя рабочего файла: может содержать полный путь поиска; передается в качестве параметра при выполнении команд Edit и Assembler; используется при формировании имен входных файлов в командах Link, List, Load.

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

Ассемблер - имя файла кросс-ассемблера: может содержать полный путь поиска; при вызове в качестве параметра переда­ется имя рабочего файла (команда Assemble). Если используется кросс-ассемблер TASH.EXE фирмы Spech Tech. Inc., то автоматически вставляется ключ "-85" для вызова таблицы настройки.

Ред.связей - имя файла кросс-редактора связей: может содержать полный путь поиска; при вызове в качестве параметра передается имя рабочего файла с расширением . OBJ (команда Link). He используется при работе с кросс-ассемблером TASM.EXE фирмы Spech Tech, Inc.

OBJ файлы - список имен объектных файлов для кросс-редактора связей: может содержать полный путь поиска; имена фай­лов разделяются символами "," или ";" и могут упоминаться без расширения имени (по умолчанию .OBJ) . Не используется при работе с кросс-ассемблером TASM.EXE фирмы Spech Tech. Inc.

Загрузка - указывается расширение имени файла, загружаемого при выполнении команды Load, необходимо для работы с символическим отладчиком.

Просмотр - имя программы для просмотра листинга: может содержать полный путь поиска; при вызове в качестве пара­метра передается имя рабочего файла с расширением . LST (в команде List).

            Сохранение памяти при вызове программы:

· если включено ("ON"), то при вызове внешних программ на диске в текущей директории сохраняется содержимое массивов памяти, портов, контрольных точек, символических имен. Память, занятая этими массивами, осво­бождается для запуска внешней программы. При возвра­те в оболочку Е8085 содержимое массивов восстанавли­вается.

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

Выбор имен файлов в поле "Опции" может производиться в режиме просмотра директории, аналогично режиму "Диск". Для этого нужно установить курсор в режим редактирования требуемого параметра и нажать клавишу F3. В отображаемой директории автоматически уста­навливается маска в соответствии с расширением имени файла, ука­занного в строке параметра.

Сообщения, генерируемые кросс-ассемблером или редактором свя­зей запоминаются в файле с именем Е8085.$$$. Последняя строка со­общений выводится на экран в окне Edit.

Символическая отладка подразумевает возможность рабо­тать с именами меток, присвоенными пользователем в исходном тексте программы.

Программа поддерживает два способа ввода информации о симво­лических именах, установленных в программе пользователя.

В первом случае имена меток извлекается из файла листинга программы. Для включения режима символической отладки нужно загру­зить файл с расширением .LST. При этом загружается па­мять (коды) и внутренняя таблица символических имен. Формат строки листинга должен быть следующий:

Номер_строки Адрес Байты_данных <Метка:> <Инструкция и т.д.>,

где символами < > указаны необязательные поля.

Поддерживается работа с листингами, сформированными кросс-ассемблерами TASM фирмы Speech Technology Inc. и Х8085 фирмы 2500AD.

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

Если при загрузке найдена хотя бы одна метка, то включается режим символической отладки. В этом случае при отображении дисассемблированных инструкций указывается метка, установленная на дан­ном адресе, и, в командах переходов, метки вместо адресов. Если по данному адресу метка во внутренней таблице не найдена, то дисассемблер отображает абсолютные адреса.

Второй способ загрузки символической таблицы поддерживает отладку программы, скомпонованной с помощью редактора связей. Инфор­мация об именах меток извлекается из файла символических имен в формате ZАХ. Для формирования файла символических имен при трансляции программы кросс-пакетом фирмы 2500 A.D. нужно выполнить следующие действия:

1. ввести в исходный текст программы директиву SYMBOLS ON;

2. при редактировании связей активизировать ключ Z, например,
запустить программу LINK командой

link -с NAME -z , где NAME.OBJ - объектный файл программы пользователя.

В результате будет сформирован файл символических имен с именем NAME.SYM.

При загрузке файла данных в форматах HEX или BIN производится поиск файла с тем же именем и расширением SYM; при наличии такого файла автоматически загружается таблица символических имен.

При включенном режиме символической отладки меняется конфигу­рация окон: отключается окно "Трасса" и расширяется окно '"Програм­ма". Состояние режима индицируется сообщением в правом нижнем углу окна "Программа":

                         F3:[Sym Qn ] или F3:[Sym Off].

Соответственно, можно включать и отключать режим символической от­ладки клавишей F3. Включение режима возможно только в том случае, если загружена таблица символических имен.

      Кросс-ассемблер Х8085 дает пользователю возможность преобра­зовывать программы, написанные на языке ассемблера микропроцессора серии К1821ВМ85, в перемещаемые модули объектного кода. Эти модули впоследствии могут быть скомпонованы с другими объектными модулями и настроены на выполнение с определенного адреса программой редак­тор связей. Основные функции кросс-ассемблера:

 - синтаксический и семантический контроль исходного текста программы;

- преобразование исходного текста в объектный код;

- формирование листинга ассемблирования.

 Программа работает в операционной системе MSDOS (версия DOS 3.30) на IBM AT. Требуемый объем памяти составляет 512К минус количество памяти, занимаемое самой операционной системой. Исходный текст программы на языке ассемблера формируется в виде файла любым редактором текста и может содержать не более 30 000 строк.

Запустить кросс-ассемблер на выполнение можно двумя способами: в режиме подсказок и в режиме командной строки. В режиме подсказок после загрузки операционной системы и вызова Norton Commander необходимо войти в нужную директорию и, подведя курсор под файл X8085.EXE, нажать клавишу "Enter". В процессе работы программа будет выдавать сообщения, ответом на которые задается режим работы кросс-ассемблера. В режиме командной строки вызов программы и задание необходимых ключей осуществляется в одной строке.

После загрузки программы на экране выдается заголовок, затем высвечивается запрос на вывод листинга с указанием ключей:

Listing Destination (N ,T,D,E,L, P , <CR>=N ) :

где N - не выводить,

T - выводить на терминал,

D - выводить на диск,,

Е - выводить только ошибки,

L - выводить листинг (вкл/выкл),

Р - выводить на принтер;

<CR> -равносильно "N".

Если ответить "D" или "Р", то задается вопрос - выводить ли таблицу перекрестных ссылок:

Generate Cross Reference ? (Y/H <CR>=N): где Y - да, N - нет.

Если ответить "L" (вывод листинга контролируется директивой ассемблера List On/Off), то выводится дополнительная подсказка:

LIST ОN/OFF Listing Destination (T , D, P , <CR>=T) :

где значение ключей остается прежним.

Если ответить "Е" (в листинг будут выводиться только ошибки), то выводится дополнительная подсказка:

Error Only Listing Destination (T, D, P, <CR>=T ) : Затем запрашиваются имена входного и выходного файлов.

Input Filename: Output Filename:

Если расширение входного файла не указано, то оно по умолчанию принимается .ASM. Расширение выходного файла по умолчанию равно .OBJ. Если не указано имя выходного файла, то ему присваивается имя входного файла с расширением .OBJ.

Командная строка содержит следующую информацию:

- вызов кросс-ассемблера X8085;

- имя входного файла;

- имя выходного файла;

- ключи вывода листинга.

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

Общий вид командной строки:

Х8748 [-Q] Input_Filename [Output_Filename]

[-Т,-Р,-D,-РХ,-DX][,А:\NEW\]

Ключ "Q" (Quiet) располагается перед именем входного файла и означает, что из ассемблера на экран выводятся только сообщения об ошибках и сами ошибочные строки.

Ключ "X" указывает на вывод в листинг таблицы перекрестных ссылок. Значение остальных ключей уже было   описано в режиме подсказок. Если листинг выводится на другой дисковод или в другую директорию, то место назначения указывается в конце командной строки и отделяется от ключей вывода запятой.

Кросс-ассемблер обрабатывает исходную программу за два прохо­да. При первом проходе читается входной файл., контролируется каж­дая строка исходной программы, создается таблица перекрестных ссы­лок. При втором проходе создается объектный код и листинг ассемблирования. В процессе ассемблирования независимо от ключей, заданных при запуске ассемблера, действуют следующие команды:

Ctrl-S -     остановить вывод с терминала

Ctrl-Q -     запустить вывод с терминала

Esc-C - закончить ассемблирование

Esc-T - отобразить вывод на терминале

Esc-P - отобразить вывод на принтере

Esc-D  -     послать вывод на диск

Esc-M -     многократный вывод (на терминал и диск)

Esc-N   -     нет вывода

Входным файлом для кросс-ассемблера является исходный текст программы на языке ассемблера микропроцессора К1821ВМ85, записанный на диск в виде файла любым редактором текста данной операционной системы. Расширение имени входного файла по умолчанию принимается равным .ASM. Выходными файлами являются файл объектного кода с расширением имени .OBJ и файл листинга с расширением .LST.

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

Основные функции кросс-редактора связей:

- распределение сегментов модулей в адресном пространстве;

- разрешение внешних ссылок;

- формирование выходного файла и таблиц глобальных символов в определенных форматах;

- выявление ошибок редактирования;

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

Программа работает в операционной системе MSDOS (версия DOS 3.30) на IBM AT. Требуемый объем памяти составляет 512К минус количество памяти, занимаемое самой операционной системой. Размер выходного файла ограничивается объемом оперативной памяти (RAM) микропроцессора (микро-ЭВМ). Поиск внешних ссылок может осуществляться редактором связей в 50 библиотеках. Редактор связей может обрабатывать до 20 объектных файлов, поэтому количество одновременно открытых файлов в системе (файл CONFIG.SYS) должно быть увеличено еще и с учетом количества файлов, открываемых в резидентных программах.

Каждый объектный файл может иметь до 256 различных сегментов, определяемых пользователем. Размер каждого сегмента не ограничен. Адреса смещений сегментов могут указываться как в самом файле, так и задаваться в процессе редактирования. Отдельные сегменты в файлах могут использоваться только для ссылок. Это означает, что информация из сегмента, предназначенного для связи, будет использована, но сам сегмент не будет включен в выходной файл.

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

В режиме подсказок после загрузки операционной системы и вызова Norton Commander необходимо войти в нужную директорию и, подведя курсор под файл LINK.EXE, нажать клавишу "Enter".

Режим файла данных идентичен режиму подсказок, за исключением того, что ответы на подсказки размещаются в файле. При запуске редактора необходимо указать имя командного файла,

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

После загрузки программы на экране выдается заголовок, затем запрашивается имя входного файла и адрес смещений сегментов, входящих в этот файл.

Input Filename:

Enter Offset For 'Code'   :

Enter Offset For 'Data'   :

Эти сообщения повторяются до тех пор, пока все входные файлы не будут перечислены. Расширение входных файлов по умолчанию принимается равным .OBJ. Шестнадцатеричное значение смешения прибавляется к значению любой директивы OB.G объектного файла. При ответе, состоящем из нажатия клавиши "ENTER", кросс-редактор связей будет помещать каждый сегмент программы сверху предыдущего сегмента. Знак минус означает перераспределение сегмента и невключение его в выходной файл.

После того, как все объектные файлы перечислены, на запрос имени следующего входного файла надо нажать клавишу "ENTER" и на экране появится запрос имени выходного файла:

Output Filename:

Если не указано имя выходного файла, то присваивается имя первого входного объектного файла.

Затем редактор связей запрашивает имя файла библиотеки:

Library Filename:

Ответ из нажатия клавиши "ENTER" завершает ввод имен файлов библиотек.

    В следующем сообщении запрашиваются ключи вывода результатов работы кросс-редактора связей:

Options (D,3,А,М,Z,Х,Н,Е,Т:1,2,3,<CR>=Defult):

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

    3 - вывод файла, содержащего таблицу глобальных символов (длина имени символа равна 32);

А - вывод файла, содержащего таблицу глобальных символов (длина имени символа равна 10);

М - вывод файла в формате MICROTEK, в него входят локальные и глобальные символы, при этом в исходный файл должна быть включена директива SYMBOL ON;

Z - вывод файла в формате ZAK, в него входят локальные и глобальные символы, при этом в исходный файл должна быть включена директива SYMBOL ON;

X - вывод выходного файла, готового к выполнению;

Н - вывод выходного файла в шестнадцатеричном формате INTEL;

Е - вывод выходного файла в расширенном шестнадцатеричном формате INTEL;

Т - вывод выходного файла в шестнадцатеричном формате TEKTRONIX;

 1- вывод выходного файла в формате MOTOROLA S19;

 2- вывод выходного файла в формате MOTOROLA S23;

 3- вывод выходного файла в формате MOTOROLA S37;

Если указано более одного ключа, то последний ключ будет иметь приоритет по отношению к предыдущим.

Режим файла данных используется для большого и сложного редактирования. Файл данных должен иметь расширение .LNK. Редактор связей считывает этот файл построчно. В каждой его строке указывается подсказка. Для того, чтобы создать файл данных, необходимо прогнать режим подсказок и записать каждый ответ на подсказку. С помощью любого редактора текста сформировать из этих ответов файл с расширением .LNK. Любая строка, имеющая в первой колонке символы ";" или "*" , рассматривается как строка комментария.

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

- вызов кросс-редактора связей LINK;

- имена входных файлов с указанием смещения;

- имя выходного файла;

- ключи вывода результатов.

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

Общий вид командной строки:

LINK[-Q]-CFilel[-LNNNN]File2[-LNNNN]...[-OFile][-Options]

Ключ "-Q" устанавливает редактор связей в режим Quiet, что означает вывод на экран сообщений об ошибках и самих ошибочных строк.

Ключ "-С" указывает редактору связей на режим командной  строки.

Затем указываются имена входных объектных файлов. Каждый файл может иметь смещение (NNNN в шестнадцатеричном виде), следующее за ключом "-L" , Если смещение не указано, то сегменты файла устанавливаются сверху сегментов предыдущего файла в соответствии с именами.

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

В поле "Options" указываются ключи вывода результатов редактирования, знак минус ставится для указания любого количества ключей. Значение ключей уже было описано в режиме подсказок.В процессе редактирования указанное значение смещения будет прибавляться к любому адресу, созданному кросс-ассемблером. Таблица символов, полученная в результате ассемблирования, будет перенастроена с учетом смещения. Распределение сегментов в памяти будет осуществляться по общему правилу:

· сегменты объединяются по имени;

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

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

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

Сегменты только для ссылок применяются в тех случаях, когда программа постоянно находится в ПЗУ, а область данных - в ОЗУ . Желательно иметь выходной файл, содержащий только ту часть программы, которая сохраняется в ПЗУ.

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

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

Символ "@", стоящий перед адресом загрузки, является признаком косвенного редактирования. Все сегменты с косвенными адресами редактирования автоматически устанавливаются в стек сверху предыдущего сегмента с таким же точно именем в предыдущем файле.

При использовании косвенного редактирования надо помнить следующие правила:

если имя сегмента отмечено как косвенное, то
каждое идентичное имя сегмента в последующих файлах
будет автоматически отмечаться как косвенное;

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

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

Далее представлен листинг соответствующей программы.

2500 A.D. 8085 Macro Assembler - Version 4.02a

1 0000 C3 4D 00        JMP BEGIN      ;ПЕPЕХОД К НАЧАЛУ

2 0003 00                               NOP

3 0004 00                               NOP

4 0005 00                               NOP

5 0006 00                               NOP

6 0007 00                               NOP

7 0008 00                               NOP

8 0009 00                               NOP

9 000A 00                              NOP

10 000B 00                            NOP

11 000C 00                            NOP

12 000D 00                             NOP

13 000E 00                            NOP

14 000F 00                            NOP

15 0010 00                            NOP

16 0011 00                            NOP

17 0012   00                            NOP

18 0013 00                            NOP

19 0014 00                            NOP

20 0015 00                            NOP

21 0016 00                            NOP

22 0017 00                            NOP

23 0018 00                            NOP

24 0019 00                            NOP

25 001A 00                            NOP

26 001B 00                            NOP

27 001C 00                            NOP

28 001D 00                            NOP

29 001E 00                            NOP

30 001F 00                            NOP

31 0020 00                            NOP

32 0021 00                            NOP

33 0022 00                            NOP

34 0023 00                            NOP

35 0024 00                            NOP

36 0025 00                            NOP

37 0026 00                            NOP

38 0027 00                            NOP

39 0028 00                            NOP

40 0029 C3 4D 00                  JMP BEGIN      ;ПЕPЕХОД К НАЧАЛУ   

41 002C C3 9E 00                     JMP R55            ;АНАЛИЗ ПPЕPЫВАНИЯ RST 5.5

42 002F 00                            NOP

43 0030 00                            NOP

44 0031 00                            NOP

45 0032 00                            NOP

46 0033 00                            NOP

47 0034 00                            NOP

48 0035 00                            NOP

49 0036 00                            NOP

50 0037 00                            NOP

51 0038 00                            NOP

52 0039 C3 4D 00                  JMP BEGIN

53 003C C3 CD 01                     JMP AR75         ;АНАЛИЗ ПPЕPЫВАНИЯ RST 7.5

54 003F 00                            NOP

55 0040 00                            NOP

56 0041 00                            NOP

57 0042 00                            NOP

58 0043 00                            NOP

59 0044 00                            NOP

60 0045 00                            NOP

61 0046 00                            NOP

62 0047 00                            NOP

63 0048 00                            NOP

64 0049 00                            NOP

65 004A 00                            NOP

66 004B 00                            NOP

67 004C 00                            NOP

68                                 

69 004D                 BEGIN:

70 004D F3                            DI                     ;ЗАПPЕТ ПPЕPЫВАНИЙ

71 004E 31 F0 18        LXI SP,18F0h   ;СТЕК ПО АДPЕСУ 18F0h

72 0051 3E 4C                         MVI A,4Ch       ;PУ55 В PЕЖИМЕ : P.А.-ВВОД,P.В.-ВВОД,

73 0053 D3 10                         OUT 10h           ;P.С.-ВЫВОД

74 0055 06 00                         MVI B,00h     ;ОБНУЛЕНИЕ p.B

75 0057 21 00 18                      LXI H,1800h       ;p.HL - 1800h            

76 005A 3E A6                         MVI A,A6h         ;ОБНУЛЕНИЕ ЯЧЕЕК ПАМЯТИ С

77 005C                 ZERO:

78 005C 70                            MOV M,B           ;АДРЕСА 1800h ПО 18A6h

79 005D 23                            INX H

80 005E BD                            CMP L

81 005F C2 5C 00                  JNZ ZERO

82 0062 01 10 67                      LXI B,6710h     ;PЕЖИМ 2 И 10мс В ТАЙМЕP

83 0065 CD DC 04                CALL TIME        ;СТАPТ ТАЙМЕPА

84 0068 21 00 18                   LXI H,1800h       ;p.HL-1800h

85 006B 3E 5F                         MVI A,5Fh         ;В КВУ - ПОPОГ 5Fh

86 006D D3 08                         OUT 08h

87 006F 3E 50                         MVI A,50h        ;В КНУ - ПОPОГ 50h

88 0071 D3 80                         OUT 80h

89 0073 01 20 50                      LXI B,5020h     ;ПЕPЕДАЧА В НАЗЕМНЫЙ ПPИБОP ЧИСЛА 5020

90 0076 CD E7 04                 CALL VGOUT

91 0079 3E 3E                        MVI A,3Eh         ;СБPОС ТPИГГЕPА ДЕКОДЕPА

92 007B D3 13                       OUT 13h

93 007D 3E 1E                       MVI A,1Eh

94 007F D3 13                        OUT 13h         

95 0081 3E 1A                        MVI A,1Ah        ;МАСКА НА RST 6.5

96 0083 30                           SIM

97 0084 C3 0A 05                JMP HALTEN      ;ПЕPЕХОД К ОЖИДАНИЮ

98 0087                  BEGIN1:

99 0087 01 20 50                    LXI B,5020h         ;ПЕPЕДАЧА В НАЗЕМНЫЙ ПPИБОP ЧИСЛА 5020

100 008A CD E7 04              CALL VGOUT

101 008D 3E 3E         MVI A,3Eh         ;СБPОС ТPИГГЕPА ДЕКОДЕPА

102 008F D3 13                     OUT 13h

103 0091 3E 1E                         MVI A,1Eh

104 0093 D3 13                     OUT 13h

105 0095 3E 00                       MVI A,00h         ;ОБНУЛЕНИЕ СЧЕТЧИКА 7.5

106 0097 32 0E 18                     STA 180Eh        

107 009A 3E 1A                      MVI A,1Ah         ;МАСКА НА RST 6.5

108 009C 30                          SIM

109 009D C9                          RET                     ;ПЕPЕХОД К ОЖИДАНИЮ

110 009E                R55:

111 009E 3A 0C 18                     LDA 180Ch         ;СЧЕТЧИК 5.5 PАВЕН НУЛЮ ?

112 00A1 EE 00                     XRI 00h

113 00A3 C2 A9 00                 JNZ R551             ;ЕСЛИ НЕТ,ПЕPЕХОД

114 00A6 21 00 18               LXI H,1800h         ;ЕСЛИ ДА,ТО p.HL-1810h

115 00A9                R551:

116 00A9 3E 0E        MVI A,0Eh           ;МАСКА НА RST 7.5 И RST 6.5

117 00AB 30                         SIM

118 00AC 3E 3C                   MVI A,3Ch           ;ВЫБОP CS-C PУ-55 И СБPОС ТPИГГЕPА

119 00AE D3 13                      OUT 13h              ;ДЕКОДЕPА

120 00B0 DB 28                   IN 28h                  ;ВВОД СТ.БАЙТА УПPАВ.СЛОВА

121 00B2 77                         MOV M,A

122 00B3 23                         INX H

123 00B4 DB 48                   IN 48h                  ;ВВОД МЛ.БАЙТА УПPАВ.СЛОВА

124 00B6 77                         MOV M,A

125 00B7 23                         INX H

126 00B8 3E 1E        MVI A,1Eh          ;СНЯТЬ CS-C PУ-55

127 00BA D3 13                   OUT 13h

128 00BC 3A 0C 18             LDA 180Ch            ;СЧЕТЧИК 5.5 УВЕЛИЧИТЬ НА ЕДИНИЦУ

129 00BF 3C                         INR A

130 00C0 32 0C 18                    STA 180Ch

131 00C3 3E 3E                      MVI A,3Eh          ;СБPОС ДЕКОДЕPА

132 00C5 D3 13           OUT 13h

133 00C7 3E 1E           MVI A,1Eh

134 00C9 D3 13           OUT 13h

135 00CB              AR55:

136 00CB 3A 0C 18                LDA 180Ch      ;СЧЕТЧИК 5.5 PАВЕН 6

137 00CE EE 06           XRI 06h

138 00D0 CA D6 00                JZ AR551          ;ЕСЛИ ДА,ТО ПЕPЕХОД К АНАЛИЗУ СЛОВ

139 00D3 C3 1E 05                 JMP HALTEN3

140 00D6                AR551:

141 00D6 3E 0F           MVI A,0Fh       ;МАСКА НА RST 7.5,RST 6.5,RST 5.5

142 00D8 30                           SIM

143 00D9 3E 4C          MVI A,4Ch       ;ОСТАНОВ ТАЙМЕРА

144 00DB D3 10                     OUT 10h

145 00DD 21 00 18                     LXI H,1800h

146 00E0 CD B3 05               CALL ZADER8

147 00E3 0E 99                        MVI C,99h        ;ПОСЫЛКА КОМАНДНОГО СЛОВА

148 00E5 06 99                        MVI B,99h        ;9999

149 00E7                SR1:

150 00E7 20                           RIM              ;

151 00E8 E6 20                     ANI 20h

152 00EA C2 E7 00              JNZ SR1

153 00ED CD 0F 05             CALL ZADER1

154 00F0 3E 1C                    MVI A,1Ch          ;ВЫБОP CS-С

155 00F2 D3 13                    OUT 13h

156 00F4 79                           MOV A,C

157 00F5 D3 20                    OUT 20h              ;МЛ.БАЙТ

158 00F7 78                           MOV A,B            ;СТ.БАЙТ 

159 00F8 D3 40                    OUT 40h

160 00FA 3E 0C        MVI A,0Ch         ;СТАPТ ST-С

161 00FC D3 13        OUT 13h

162 00FE 3E 3E         MVI A,3Eh         ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

163 0100 D3 13                     OUT 13h                ;ТPИГГЕPА ДЕКОДЕPА

164 0102 3E 1E                     MVI A,1Eh

165 0104 D3 13                     OUT 13h

166 0106 CD 0F 05               CALL ZADER1                    

167 0109                 SR2:

168 0109 3E 93                       MVI A,93h         ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ

169 010B BD                          CMP L         

170 010C DA 1C 01              JC SR3             ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

171 010F 4E                          MOV C,M          ;МЛ.БАЙТ В ВГ-6

  172 0110 23                          INX H                ;p.HL + 1

173 0111 46                          MOV B,M          ;СТ.БАЙТ В ВГ-6

174 0112 23                          INX H                 ;p.HL + 1         

175 0113 CD E7 04               CALL VGOUT     ;П.П. ПЕPЕДАЧИ

176 0116 CD 0F 05               CALL ZADER1

177 0119 C3 09 01                JMP SR2

178 011C                SR3:              

179 011C 06 33                       MVI B,33h          ;ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3333

180 011E 0E 33                       MVI C,33h

181 0120                 SR4:

182 0120 20                                RIM                     ;

183 0121 E6 20                      ANI 20h

184 0123 C2 20 01                JNZ SR4

185 0126 CD 0F 05               CALL ZADER1

186 0129 3E 1C                     MVI A,1Ch         ;ВЫБОP CS-С

187 012B D3 13         OUT 13h

188 012D 79                           MOV A,C

189 012E D3 20                     OUT 20h             ;МЛ.БАЙТ

190 0130 78                            MOV A,B           ;СТ.БАЙТ 

191 0131 D3 40                     OUT 40h

192 0133 3E 0C                     MVI A,0Ch         ;СТАPТ ST-С

193 0135 D3 13                     OUT 13h

194 0137 3E 3E                     MVI A,3Eh          ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

195 0139 D3 13                     OUT 13h             ;ТPИГГЕPА ДЕКОДЕPА 196 013B 3E 1E              MVI A,1Eh

197 013D D3 13         OUT 13h

198 013F CD 0F 05               CALL ZADER1

199 0142 3E 00                       MVI A,00h         ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

200 0144 32 0F 18                STA 180Fh                                   

201 0147 E1                           POP H

202 0148 E1                           POP H

203 0149 E1                           POP H

204 014A E1                           POP H

205 014B E1                           POP H

206 014C 21 10 18                LXI H,1810h

207 014F 3E 00                       MVI A,00h         ;ОБНУЛЯЕМ СЧЕТЧИК 5.5

208 0151 32 0C 18                STA 180Ch

209 0154 32 0D 18                STA 180Dh

210 0157 32 0E 18                STA 180Eh

211 015A 32 0F 18                STA 180Fh

212 015D                AR558:

213 015D 3A 00 18               LDA 1800h        ;D5,D4 = 00

214 0160 E6 30                       ANI 30h

215 0162 C2 6B 01               JNZ AR552       ;ЕСЛИ НЕТ,ПЕPЕХОД К СЛЕДУЮЩЕМУ АНАЛИЗУ

216 0165 3E 0A                       MVI A,0Ah       ;ЕСЛИ ДА,УСТАНОВИТЬ МАСКУ НА RST 6.5

  217 0167 30                          SIM                    ;ПЕPЕХОД К НАЧАЛУ

218 0168 C3 4D 00               JMP BEGIN

219 016B                AR552:

220 016B 3A 0B 18              LDA 180Bh       ;ВЫЧИСЛЕНИЕ СТ.БАЙТА Тз2 ДЛЯ РЕЖИМА 3

221 016E E6 3F                     ANI 3Fh            

222 0170 F6 00                      ORI 00h

223 0172 32 0B 18                STA 180Bh

224 0175 3A 00 18                LDA 1800h

225 0178 E6 30                       ANI 30h

  226 017A EE 10         XRI 10h

227 017C C2 A4 01              JNZ AR553

228 017F 3A 00 18                LDA 1800h

229 0182 E6 01                       ANI 01h

230 0184 CA 8C 01              JZ AR554

   231 0187 3A 03 18               LDA 1803h

232 018A D3 08         OUT 08h

233 018C                AR554:

234 018C 3A 00 18               LDA 1800h

235 018F E6 02                       ANI 02h

236 0191 CA 99 01               JZ AR555

237 0194 3A 02 18                LDA 1802h

238 0197 D3 80                       OUT 80h

239 0199                 AR555:

240 0199 3E 02                       MVI A,02h

241 019B 32 0E 18               STA 180Eh

242 019E 3E 0B         MVI A,0Bh

243 01A0 30                          SIM

244 01A1 C3 ED 01              JMP AR753

245 01A4                AR553:

246 01A4 3A 00 18               LDA 1800h

247 01A7 E6 01                       ANI 01h

248 01A9 CA B1 01              JZ AR556

249 01AC 3A 03 18              LDA 1803h

250 01AF D3 08         OUT 08h

251 01B1                AR556:

252 01B1 3A 00 18               LDA 1800h

253 01B4 E6 02                    ANI 02h

254 01B6 CA BE 01             JZ AR557

255 01B9 3A 02 18               LDA 1802h

256 01BC D3 80                    OUT 80h

257 01BE                AR557:

258 01BE 01 10 67               LXI B,6710h

259 01C1 CD DC 04             CALL TIME

260 01C4 3E 01                       MVI A,01h

261 01C6 32 0E 18               STA 180Eh

262 01C9 3E 0B         MVI A,0Bh

263 01CB 30                          SIM

264 01CC C9                          RET    

265 01CD              AR75:

266 01CD 3E 0F         MVI A,0Fh

267 01CF 30                           SIM

268 01D0 3A 0E 18               LDA 180Eh        ;СЧЕТЧИК 7.5 УВЕЛИЧИВАЕМ НА ЕДИНИЦУ

269 01D3 3C                          INR A

270 01D4 32 0E 18               STA 180Eh

271 01D7 47                           MOV B,A         

272 01D8 EE 01         XRI 01h

273 01DA CA 87 00              JZ BEGIN1        ;ЕСЛИ ДА,ТО ПЕPЕХОД К НАЧАЛУ 1

274 01DD 78                          MOV A,B

275 01DE EE 02         XRI 02h

276 01E0 C2 53 03               JNZ AR75E        ;ЕСЛИ НЕТ,ТО ПЕPЕХОД

277 01E3 3A 00 18               LDA 1800h         ;D4,D5 = 01 ?

278 01E6 E6 30                       ANI 30h

279 01E8 EE 01                       XRI 01h

280 01EA C2 50 02               JNZ AR752         ;ЕСЛИ НЕТ,ТО ПЕPЕХОД

281 01ED                AR753:

282 01ED  3A 0F 18               LDA 180Fh         ;СЧЕТЧИК ЦИКЛОВ УВЕЛИЧИВАЕМ НА 1

283 01F0 3C                          INR A                       

284 01F1 32 0F 18                STA 180Fh         

285 01F4 3A 04 18                LDA 1804h          ;ЗАПИСЫВАЕМ МЛ.БАЙТ Тз1 В ТАЙМЕP

286 01F7 4F                          MOV C,A            

287 01F8 3A 05 18                LDA 1805h          ;ЗАПИСЫВАЕМ СТ.БАЙТ Тз1 В ТАЙМЕP И

288 01FB E6 3F         ANI 3Fh               ;УСТАНАВЛИВАЕМ PЕЖИМ 3 ТАЙМЕPА

289 01FD F6 00                       ORI 00h            

290 01FF 47                          MOV B,A                     

291 0200 CD DC 04             CALL TIME        ;СТАPТ ТАЙМЕPА

292 0203 3A 06 18                LDA 1806h

293 0206 4F                          MOV C,A

294 0207 3A 07 18                LDA 1807h

295 020A E6 3F         ANI 3Fh

296 020C F6 40                       ORI 40h

297 020E 47                          MOV B,A

298 020F CD DC 04              CALL TIME

299 0212 3A 01 18                LDA 1801h         ;D15 = 1 ?  

300 0215 E6 F0                       ANI F0h

301 0217 CA 49 02               JZ AR7531          ;ЕСЛИ НЕТ,ИЗЛУЧАТЕЛЬ НЕ ВКЛЮЧАЕМ

302 021A F3                           DI

303 021B 3E 1F                       MVI A,1Fh          ;СТАPТ ИЗЛУЧАТЕЛЯ

304 021D D3 13         OUT 13h

305 021F 00                            NOP

306 0220 00                            NOP

307 0221 00                            NOP

308 0222 00                            NOP   

309 0223 00                            NOP

310 0224 00                            NOP

311 0225 00                                NOP

312 0226 00                            NOP   

313 0227 3E 1E                       MVI A,1Eh         ;СНЯТЬ СТАРТ ИЗЛУЧАТЕЛЯ

314 0229 D3 13                       OUT 13h

315 022B 3A 04 18               LDA 1804h         ;ЗАПИСЫВАЕМ МЛ.БАЙТ Тз1 В ТАЙМЕP

316 022E 4F                          MOV C,A            

317 022F 3A 05 18                LDA 1805h         ;ЗАПИСЫВАЕМ СТ.БАЙТ Тз1 В ТАЙМЕP И

318 0232 E6 3F                       ANI 3Fh              ;УСТАНАВЛИВАЕМ PЕЖИМ 3 ТАЙМЕPА

319 0234 F6 00                       ORI 00h            

320 0236 47                          MOV B,A                     

321 0237 CD DC 04              CALL TIME       ;СТАPТ ТАЙМЕPА

322 023A 3A 06 18               LDA 1806h

323 023D 4F                          MOV C,A

324 023E 3A 07 18               LDA 1807h

325 0241 E6 3F                       ANI 3Fh

326 0243 F6 40                       ORI 40h

327 0245 47                          MOV B,A

328 0246 CD DC 04              CALL TIME

329 0249                 AR7531:

330 0249 21 10 18                LXI H,1810h      ;p.HL=1810h

331 024C 3E 1B         MVI A,1Bh         ;МАСКА RST6.5 и RST5.5

332 024E 30                          SIM

333 024F C9                          RET                 

334 0250                 AR752:

335 0250 3A 00 18                LDA 1800h         ;D5,D4 = 01 ИЛИ 11 ?

336 0253 E6 30                       ANI 30h

337 0255 CA 4D 00              JZ BEGIN           ;ЕСЛИ НЕТ,ТО ПЕPЕХОД К НАЧАЛУ      

338 0258 3A 0F 18                LDA 180Fh         ;СЧЕТЧИК ЦИКЛОВ PАВЕН НУЛЮ ?

339 025B FE 00                       CPI 00h

340 025D C2 73 02               JNZ AR7522       ;ЕСЛИ НЕТ,TO ПЕPЕХОД К МЕТКЕ AR7522 

341 0260 21 10 18                LXI H,1810h       ;ЕСЛИ ДА,ТО p.HL=1810h И В ТАЙМЕP ЗАПИСЫВАЕМ

342 0263 01 10 67                LXI B,6710h       ;10 мс В PЕЖИМЕ 2

343 0266 CD DC 04              CALL TIME       ;СТАPТ ТАЙМЕPА

344 0269 3A 0F 18                LDA 180Fh         ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

345 026C 3C                          INR A

346 026D 32 0F 18                STA 180Fh

347 0270 21 10 18                LXI H,1810h

348 0273                 AR7522: 

349 0273 DB 19         IN 19h                 ;ЧИСЛО С ПОPТА (A) ЗАПИСЫВАЕМ В p.B

350 0275 47                          MOV B,A

351 0276 DB 1A                  IN 1Ah                ;ЧИСЛО С ПОPТА (B) ЗАПИСЫВАЕМ В p.C

352 0278 4F                          MOV C,A

353 0279 78                          MOV A,B           ;СPАВНИВАЕМ ЧИСЛО С ПОPТА (A) С ПPЕДЫДУЩИМ,

354 027A BA                          CMP D                ;ЕСЛИ ПPЕДЫДУЩЕЕ БОЛЬШЕ ПО ЗНАЧЕНИЮ,  

  355 027B DA B8 02              JC AR752J0        ;ТО ПЕPЕХОД К МЕТКЕ AR752J0

356 027E 92                          SUB D                 ;ВЫЧИТАЕМ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ

357 027F                 AR752G0:

358 027F 86                            ADD M

359 0280 77                            MOV M,A           ;ЗАПИСЫВАЕМ В ПАМЯТЬ РАЗНОСТЬ

360 0281 50                            MOV D,B            ;В р.D ЗАПИСЫВАЕМ ЧИСЛО С ПОРТА (A)

361 0282 2C                          INR L                   ;УВЕЛИЧИВАЕМ р.HL НА ЕДИНИЦУ

362 0283 3E 00                      MVI A,00h

363 0285 8E                           ADC M

364 0286 77                            MOV M,A

365 0287 2C                           INR L

366 0288 79                          MOV A,C            ;СРАВНИВАЕМ ЧИСЛО С ПОРТА (B) С ПРЕДЫДУЩИМ,

367 0289 BB                          CMP E                 ;ЕСЛИ ПРЕДЫДУЩЕЕ БОЛЬШЕ,ТО

368 028A DA C0 02              JC AR752K0        ;ПЕРЕХОД К МЕТКЕ AR752K0

369 028D 93                          SUB E                  ;ВЫЧИТАЕМ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ

370 028E                AR752H0:   

371 028E 86                           ADD M             

372 028F 77                          MOV M,A           ;ЗАПИСЫВАЕМ В ПАМЯТЬ РАЗНОСТЬ

373 0290 59                          MOV E,C             ;В р.E ЗАПИСЫВАЕМ ЧИСЛО С ПОРТА (B)

374 0291 2C                          INR L                   ;УВЕЛИЧИВАЕМ р.HL НА ЕДИНИЦУ

375 0292 3E 00                      MVI A,00h

376 0294 8E                           ADC M

377 0295 77                            MOV M,A

378 0296 2C                           INR L

379 0297 3A 0F 18                LDA 180Fh          ;УВЕЛИЧИВАЕМ СЧЕТЧИК ЦИКЛОВ НА ЕДИНИЦУ

380 029A 3C                          INR A

381 029B 32 0F 18                STA 180Fh

382 029E FE 06                       CPI 06h                 ;СЧЕТЧИК ЦИКЛОВ РАВЕН 7 ?

383 02A0 CA C8 02              JZ AR7528            ;ЕСЛИ ДА,ТО ПЕРЕХОД К МЕТКЕ AR7528

384 02A3                AR7525:

385 02A3 3E 01                       MVI A,01h            ;СЧЕТЧИК RST 7.5 = 1

386 02A5 32 0E 18                STA 180Eh

387 02A8 3E 1B         MVI A,1Bh            ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

388 02AA 30                          SIM

389 02AB C9                          RET                       ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ                 

390 02AC              AR7529:

391 02AC 3E 01         MVI A,01h            ;СЧЕТЧИК RST 7.5 = 1

392 02AE 32 0E 18               STA 180Eh

393 02B1 32 0F 18                STA 180Fh

394 02B4 3E 1B         MVI A,1Bh           ;УСТАНАВЛИВАЕМ МАСКУ НА RST 6.5

395 02B6 30                          SIM

396 02B7 C9                          RET                      ;ВОЗВРАТ К ОЖИДАНИЮ ПРЕРЫВАНИЙ                 

  397 02B8                AR752J0:

398 02B8 3E FF         MVI A,FFh          ;ВЫПОЛНЯЕМ ВЫЧИСЛЕНИЕ

399 02BA 92                          SUB D                  ;(256)-(ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ)+(СЧИТАННОЕ   

400 02BB 80                          ADD B                 ;ЗНАЧЕНИЕ) + (1)

401 02BC 3C                          INR A

402 02BD C3 7F 02              JMP AR752G0       ;ПЕРЕХОД К МЕТКЕ AR752G0

403 02C0                AR752K0:

404 02C0 3E FF         MVI A,FFh           ;

405 02C2 93                          SUB E

406 02C3 81                          ADD C

407 02C4 3C                          INR A

408 02C5 C3 8E 02               JMP AR752H0

409 02C8                AR7528:

410 02C8 21 10 18                LXI H,1810h

411 02CB 3A 0D 18            LDA 180Dh

412 02CE 3C                          INR A

413 02CF 32 0D 18               STA 180Dh

414 02D2 FE 14         CPI 14h

415 02D4 C2 AC 02              JNZ AR7529    

416 02D7                AR7521:

417 02D7 21 10 18                LXI H,1810h         ;В р.HL=1810h

418 02DA 06 99         MVI B,99h            ;ПЕРЕДАЧА КОМАНДНОГО СЛОВА 9999

419 02DC 0E 99         MVI C,99h

420 02DE                                  NO2:

421 02DE 20                           RIM                       ;

422 02DF E6 20         ANI 20h

423 02E1 C2 DE 02              JNZ NO2

424 02E4 CD 0F 05               CALL ZADER1

425 02E7 3E 1C         MVI A,1Ch           ;ВЫБОP CS-С

426 02E9 D3 13                     OUT 13h

427 02EB 79                           MOV A,C

428 02EC D3 20         OUT 20h               ;МЛ.БАЙТ

429 02EE 78                           MOV A,B             ;СТ.БАЙТ 

430 02EF D3 40         OUT 40h

431 02F1 3E 0C                     MVI A,0Ch           ;СТАPТ ST-С

432 02F3 D3 13                     OUT 13h

433 02F5 3E 3E                    MVI A,3Eh           ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

434 02F7 D3 13                     OUT 13h               ;ТPИГГЕPА ДЕКОДЕPА

435 02F9 3E 1E                     MVI A,1Eh

436 02FB D3 13         OUT 13h

437 02FD CD 0F 05              CALL ZADER1

438 0300                 AR7523:

439 0300 3E 24                       MVI A,24h            ;В РЕГИСТРЕ HL ЗНАЧЕНИЕ РАВНО 181Ah ?

440 0302 BD                          CMP L

441 0303 CA 17 03               JZ AR7524            ;ЕСЛИ ДА,ТО ПЕРЕХОД К МЕТКЕ AR7524

442 0306 46                          MOV B,M             ;ЕСЛИ НЕТ,ТО ПЕРЕДАЧА СЛОВА И ПЕРЕХОД

443 0307 3E 00                       MVI A,00h

444 0309 77                          MOV M,A

445 030A 2C                          INR L                     ;К МЕТКЕ AR7523

446 030B 4E                          MOV C,M

447 030C 77                          MOV M,A

448 030D 2C                          INR L

449 030E CD E7 04              CALL VGOUT

450 0311 CD 0F 05               CALL ZADER1

451 0314 C3 00 03                JMP AR7523

452 0317                 AR7524:

453 0317 06 33                       MVI B,33h             ;ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3333

454 0319 0E 33                       MVI C,33h

455 031B                                   NO8:

456 031B 20                           RIM                        ;

457 031C E6 20                     ANI 20h

458 031E C2 1B 03               JNZ NO8

459 0321 CD 0F 05              CALL ZADER1

460 0324 3E 1C                    MVI A,1Ch             ;ВЫБОP CS-С

461 0326 D3 13                     OUT 13h

462 0328 79                            MOV A,C

463 0329 D3 20                     OUT 20h             ;МЛ.БАЙТ

464 032B 78                           MOV A,B           ;СТ.БАЙТ 

465 032C D3 40         OUT 40h

466 032E 3E 0C         MVI A,0Ch         ;СТАPТ ST-С

467 0330 D3 13                     OUT 13h

468 0332 3E 3E                     MVI A,3Eh          ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

469 0334 D3 13                     OUT 13h              ;ТPИГГЕPА ДЕКОДЕPА

470 0336 3E 1E                     MVI A,1Eh

471 0338 D3 13         OUT 13h

472 033A 3E 0A         MVI A,0Ah

473 033C 30                           SIM

474 033D CD 0F 05              CALL ZADER1

475 0340 3E 0B                     MVI A,0Bh

476 0342 30                            SIM

477 0343 21 10 18                LXI H,1810h       ;В р.HL ЗАПИСЫВАЕМ ЗНАЧЕНИЕ 1810h

478 0346 3E 01                       MVI A,01h           ;СЧЕТЧИК ЦИКЛОВ = 1

479 0348 32 0F 18                   STA 180Fh

480 034B 3E 00                     MVI A,00h

481 034D 32 0D 18               STA 180Dh

482 0350 C3 A3 02               JMP AR7525       ;ПЕРЕХОД К МЕТКЕ AR7525         

483 0353                 AR75E:        

484 0353 78                      MOV A,B

485 0354 FE 03                       CPI 03h

486 0356 C2 69 03                JNZ AR751          ;ЕСЛИ НЕТ,ПЕPЕХОД К МЕТКЕ AR751

487 0359 21 A4 18                LXI H,18A4h

488 035C 7E                            MOV A,M

489 035D DB 19                    IN 19h

490 035F 77                          MOV M,A

491 0360 2C                          INR L

492 0361 DB 1A                    IN 1Ah

493 0363 77                          MOV M,A

494 0364 2C                          INR L

495 0365 3E 1B                       MVI A,1Bh          ;6.5, 5.5

496 0367 30                          SIM

497 0368 C9                          RET                                        

498 0369                 AR751:

499 0369 FE 14                       CPI 14h                ;СЧЕТЧИК RST 7.5 БОЛЬШЕ 18 ?

500 036B D2 E0 03               JNC AR754          ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR754

501 036E                AR75F:   

502 036E DB 19        IN 19h                   ;ВВОД ЧИСЛА С ПОPТА (A)

503 0370 77                         MOV M,A

504 0371 2C                         INR L

505 0372  DB 1A                   IN 1Ah                  ;ВВОД ЧИСЛА С ПОPТА (B)

506 0374 77                         MOV M,A

507 0375 2C                         INR L 

508 0376 78                         MOV A,B

509 0377 FE 12                      CPI 12h

510 0379 C2 8A 03              JNZ AR75V0

511 037C 3A 0A 18             LDA 180Ah

512 037F D3 14                      OUT 14h

513 0381 3A 0B 18              LDA 180Bh 514 0384 D3 15                             OUT 15h

515 0386 3E CC         MVI A,CCh

516 0388 D3 18                     OUT 18h                                          

517 038A                AR75V0: 

518 038A 78                           MOV A,B

519 038B FE 13                     CPI 13h

520 038D   C2 D2 03              JNZ AR75Y10

521 0390 3E D0                     MVI A,D0h

522 0392 D3 14                    OUT 14h

523 0394 3E 47                      MVI A,47h

524 0396 D3 15                     OUT 15h

525 0398 3E CC         MVI A,CCh

526 039A D3 18         OUT 18h

527 039C 3A 09 18               LDA 1809h

528 039F D3 08                     OUT 08h

529 03A1 3A 08 18               LDA 1808h

530 03A4 D3 80         OUT 80h

531 03A6                                   

532 03A6 21 A4 18               LXI H,18A4h

533 03A9 11 10 18                LXI D,1810h

534 03AC              AR75V01:

535 03AC 7D                          MOV A,L

536 03AD FE C4                    CPI C4h                                           

537 03AF  CA D6 03              JZ AR75Y0

538                                

539 03B2 46                           MOV B,M

540 03B3 2C                          INR L

541 03B4 2C                          INR L

542 03B5 7E                           MOV A,M

543 03B6 B8                         CMP B

544 03B7 DA C9 03              JC AR75V02

545 03BA 90                          SUB B

546 03BB              AR75V03:

547 03BB EB                         XCHG

548 03BC 86                          ADD M

549 03BD 77                             MOV M,A

550 03BE 2C                          INR L

551 03BF 3E 00                    MVI A,00h

552 03C1 8E                          ADC M

553 03C2 77                           MOV M,A

554 03C3 2C                          INR L

555 03C4 EB                          XCHG

556 03C5 2D                          DCR L

557 03C6 C3 AC 03              JMP AR75V01

558 03C9                AR75V02:

559 03C9 4F                           MOV C,A

560 03CA 3E FF      MVI A,FFh

561 03CC 90                          SUB B

562 03CD 81                          ADD C

563 03CE 3C                          INR A 

564 03CF C3 BB 03              JMP AR75V03                                                                

565 03D2                AR75Y10:

566 03D2 3E 1B         MVI A,1Bh          ; 6.5, 5.5

567 03D4 30                           SIM

568 03D5 C9                          RET

569 03D6                AR75Y0:

570 03D6 11 50 18                LXI D,1850h

571 03D9 21 A4 18                    LXI H,18A4h  

572 03DC 3E 1B                    MVI A,1Bh          ; 6.5, 5.5

573 03DE 30                           SIM

574 03DF C9                          RET

575                                

576 03E0                AR754:

577 03E0 FE 14                       CPI 14h

578 03E2 C2 F3 03               JNZ AR756

579 03E5 FE 14                     CPI 14h

580 03E7 DB 19         IN 19h

581 03E9 77                          MOV M,A

582 03EA 2C                       INR L

583 03EB DB 1A                   IN 1Ah

584 03ED 77                          MOV M,A

585 03EE 2C                          INR L

586 03EF 3E 1B         MVI A,1Bh          ; 6.5, 5.5

587 03F1 30                          SIM

588 03F2 C9                          RET                 

589 03F3                 AR756:

590 03F3 00                          NOP

591 03F4 DB 19         IN 19h

592 03F6 77                          MOV M,A

593 03F7 2C                           INR L

594 03F8 DB 1A                    IN 1Ah

595 03FA 77                          MOV M,A

596 03FB 2D                          DCR L

597 03FC 7E                           MOV A,M

598 03FD   2D                          DCR L

599 03FE 2D                           DCR L

600 03FF 46                            MOV B,M

601                                             CMP B

602                                             JC AR75J1

603                                             SUB B

604 0400                 AR75G1:      

605 0400 EB                          XCHG     

606                                             ADD M               ;

607 0401 77                          MOV M,A          ;

608 0402 2C                          INR L                 ;

609                                             MVI A,00h         ;

610                                             ADC M               ;

611                                             MOV M,A          ;

612 0403 2C                          INR L

613 0404 EB                          XCHG

614 0405 2C                           INR L

615 0406 2C                          INR L

616 0407 2C                           INR L

617 0408 7E                           MOV A,M

618 0409 2D                           DCR L

619 040A 2D                          DCR L

620 040B 4E                           MOV C,M

621                                             CMP C

622                                               JC AR75K1

623                                             SUB C

624 040C                AR75H1:   

625 040C EB                          XCHG

626                                             ADD M              ;

627 040D 77                          MOV M,A         ;

628 040E 2C                          INR L                 ;

629                                             MVI A,00h         ;

630                                             ADC M              ;

631                                             MOV M,A         ;

632 040F 2C                          INR L

633 0410 EB                           XCHG

634 0411 2C                           INR L

635 0412 3A A6 18               LDA 18A6h

636 0415 32 A4 18                STA 18A4h

637 0418 3A A7 18               LDA 18A7h

638 041B 32 A5 18               STA 18A5h      

639 041E 3A 0E 18               LDA 180Eh

640 0421 FE 28                       CPI 28h

641 0423 C2 2A 04               JNZ AR75X0

642 0426 3E 8C                       MVI A,8Ch

643 0428 D3 10                       OUT 10h

644 042A                AR75X0:

645 042A 3A 0E 18               LDA 180Eh

646 042D FE 29         CPI 29h

647 042F CA 48 04               JZ AR757

648 0432 3E 1B                       MVI A,1Bh                  

649 0434 30                          SIM

  650 0435 C9                          RET                 

651 0436                 AR75J1:

652 0436 4F                            MOV C,A

653 0437 3E FF                       MVI A,FFh

654 0439 90                          SUB B

655 043A 81                          ADD C

656 043B 3C                          INR A

657 043C C3 00 04               JMP AR75G1

658 043F                 AR75K1:

659 043F 47                            MOV B,A

660 0440 3E FF                       MVI A,FFh

661 0442 91                          SUB C

662 0443 80                          ADD B

663 0444 3C                          INR A

664 0445 C3 0C 04               JMP AR75H1

665 0448                 AR757:        

666 0448 3A 0F 18                LDA 180Fh

667 044B FE 14                       CPI 14h

668 044D C2 CA 04              JNZ AR759

669 0450 CD 0F 05               CALL ZADER1

670 0453 21 10 18                LXI H,1810h

671 0456 0E 99                       MVI C,99h           ;ПОСЫЛКА КОМАНДНОГО СЛОВА

672 0458 06 99                       MVI B,99h              ;9999

673 045A                NO3:

674 045A 20                           RIM                     ;

675 045B E6 20                      ANI 20h

676 045D C2 5A 04               JNZ NO3

677 0460 CD 0F 05               CALL ZADER1

678 0463 3E 1C                     MVI A,1Ch          ;ВЫБОP CS-С

679 0465 D3 13                     OUT 13h

680 0467 79                            MOV A,C

681 0468 D3 20                     OUT 20h              ;МЛ.БАЙТ

682 046A 78                           MOV A,B             ;СТ.БАЙТ 

683 046B D3 40         OUT 40h

684 046D 3E 0C         MVI A,0Ch          ;СТАPТ ST-С

685 046F D3 13                     OUT 13h

686 0471 3E 3E                     MVI A,3Eh          ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

687 0473 D3 13                     OUT 13h              ;ТPИГГЕPА ДЕКОДЕPА

688 0475 3E 1E                     MVI A,1Eh

689 0477 D3 13                     OUT 13h

690 0479 CD 0F 05               CALL ZADER1                    

691 047C                AR758:

692 047C 3E A3         MVI A,A3h          ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ ?

693 047E BD                          CMP L         

694 047F DA 93 04               JC AR7591           ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

695 0482 4E                          MOV C,M            ;МЛ.БАЙТ В ВГ-6

696 0483 3E 00                       MVI A,00h           ;ОБНУЛИТЬ Я.П. МЛ.БАЙТА

697 0485 77                          MOV M,A                  

698 0486 23                          INX H                  ;p.HL + 1

699 0487 46                          MOV B,M            ;СТ.БАЙТ В ВГ-6

700 0488 77                          MOV M,A            ;ОБНУЛИТЬ Я.П. СТ.БАЙТА

701 0489 23                          INX H                   ;p.HL + 1       

702 048A CD E7 04              CALL VGOUT         ;П.П. ПЕPЕДАЧИ

703 048D CD 0F 05              CALL ZADER1

704 0490 C3 7C 04               JMP AR758

705 0493                 AR7591:                 

706 0493 06 33                       MVI B,33h            ; ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3333

707 0495 0E 33                       MVI C,33h

708 0497                 NO9:

709 0497 20                            RIM                       ;

   710 0498 E6 20                     ANI 20h

711 049A C2 97 04               JNZ NO9

712 049D CD 0F 05              CALL ZADER1

713 04A0 3E 1C         MVI A,1Ch            ;ВЫБОP CS-С

714 04A2 D3 13         OUT 13h

715 04A4 79                           MOV A,C

716 04A5 D3 20         OUT 20h                ;МЛ.БАЙТ

717 04A7  78                           MOV A,B               ;СТ.БАЙТ 

718 04A8 D3 40         OUT 40h

719 04AA 3E 0C                    MVI A,0Ch            ;СТАPТ ST-С

720 04AC D3 13                    OUT 13h

721 04AE 3E 3E         MVI A,3Eh            ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

722 04B0 D3 13         OUT 13h                ;ТPИГГЕPА ДЕКОДЕPА

723 04B2 3E 1E         MVI A,1Eh

724 04B4 D3 13         OUT 13h

725 04B6 3E 0A         MVI A,0Ah

726 04B8 30                           SIM

727 04B9 CD 0F 05              CALL ZADER1

728 04BC 3E 0B                    MVI A,0Bh

729 04BE 30                           SIM

730 04BF 3E 00                       MVI A,00h            ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

731 04C1 32 0F 18                STA 180Fh

732 04C4 3E 0B         MVI A,0Bh

733 04C6 30                           SIM

734 04C7 CD B3 05              CALL ZADER8                                             

735 04CA               AR759:

736 04CA 3A 03 18              LDA 1803h

737 04CD D3 08                    OUT 08h

738 04CF 3A 02 18               LDA 1802h

739 04D2 D3 80         OUT 80h

740 04D4 3E 00                       MVI A,00h

741 04D6 32 0E 18               STA 180Eh

742 04D9 C3 5D 01              JMP AR558        

743 04DC              TIME:

744 04DC 79                           MOV A,C

745 04DD D3 14                    OUT 14h

746 04DF 78                            MOV A,B

747 04E0 D3 15                      OUT 15h

748 04E2 3E CC                     MVI A,CCh

749 04E4 D3 10                      OUT 10h

750 04E6 C9                            RET

751 04E7                                    VGOUT:

752 04E7 3E 1B       MVI A,1Bh

753 04E9 30                           SIM

754 04EA                                   NO:

755 04EA 20                           RIM                       ;

756 04EB E6 20         ANI 20h

757 04ED C2 EA 04              JNZ NO

758 04F0 CD 0F 05               CALL ZADER1

759 04F3 3E 1A         MVI A,1Ah           ;ВЫБОP CS-D

760 04F5 D3 13                     OUT 13h

761 04F7 79                            MOV A,C

762 04F8 D3 20                     OUT 20h                     ;МЛ.БАЙТ

763 04FA 78                           MOV A,B              ;СТ.БАЙТ 

764 04FB D3 40         OUT 40h

765 04FD 3E 12         MVI A,12h             ;СТАPТ ST-D

766 04FF D3 13                     OUT 13h

767 0501 3E 3E                     MVI A,3Eh             ;СНЯТЬ СТАPТ ST-D,ВЫБОP CS-D,СБPОС

768 0503 D3 13                     OUT 13h                 ;ТPИГГЕPА ДЕКОДЕPА

769 0505 3E 1E                     MVI A,1Eh

   770 0507 D3 13         OUT 13h

771 0509 C9                           RET

772 050A                HALTEN:

773 050A FB                          EI

774 050B 76                          HLT

775 050C C3 0A 05              JMP HALTEN

776 050F                 ZADER1:

777 050F 3E FF                       MVI A,FFh

778 0511                 ZADER2:                 

779 0511 3D                          DCR A

780 0512 00                          NOP

781 0513 00                          NOP

782 0514 00                          NOP

783 0515 00                          NOP

784 0516 00                          NOP

785 0517 C2 11 05                JNZ ZADER2

786 051A 00                          NOP

787 051B 00                          NOP

788 051C 00                          NOP

789 051D C9                          RET

790                                

791 051E                HALTEN3:

792 051E FB                           EI

793 051F 3E FF                       MVI A,FFh

794 0521                 HALTEN3A:

795 0521 3D                           DCR A

796 0522 00                            NOP

  797 0523 00                            NOP

798 0524 00                            NOP

799 0525 C2 21 05                JNZ HALTEN3A            

800 0528 3E FF                      MVI A,FFh

801 052A                HALTEN3B:

802 052A 3D                         DCR A

803 052B 00                          NOP

804 052C 00                          NOP

805 052D 00                          NOP

806 052E C2 2A 05              JNZ HALTEN3B

807 0531 3E FF                      MVI A,FFh

808 0533                 HALTEN3C:

809 0533 3D                          DCR A

810 0534 00                           NOP

811 0535 00                           NOP

812 0536 00                           NOP

813 0537 C2 33 05               JNZ HALTEN3C             

814 053A 3E FF        MVI A,FFh

815 053C                HALTEN3D:

816 053C 3D                         DCR A

817 053D 00                          NOP

818 053E 00                          NOP

819 053F 00                           NOP

820 0540 C2 3C 05              JNZ HALTEN3D             

821                                

822 0543 21 10 18               LXI H,1810h

823 0546 0E 99                      MVI C,99h           ;ПОСЫЛКА КОМАНДНОГО СЛОВА

824 0548 06 99                      MVI B,99h           ; 9999

825 054A                TEN32:

826 054A 20                           RIM                    ;

827 054B E6 20                     ANI 20h

828 054D C2 4A 05              JNZ TEN32

829 0550 CD 0F 05              CALL ZADER1

830 0553 3E 1C                          MVI A,1Ch         ;ВЫБОP CS-С

831 0555 D3 13                     OUT 13h

832 0557 79                            MOV A,C

833 0558 D3 20                     OUT 20h             ;МЛ.БАЙТ

834 055A 78                           MOV A,B           ;СТ.БАЙТ 

835 055B D3 40         OUT 40h

836 055D 3E 0C         MVI A,0Ch         ;СТАPТ ST-С

837 055F D3 13                     OUT 13h

838 0561 3E 3E                     MVI A,3Eh          ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

839 0563 D3 13                     OUT 13h              ;ТPИГГЕPА ДЕКОДЕPА

840 0565 3E 1E                     MVI A,1Eh

841 0567 D3 13                     OUT 13h

842 0569 CD 0F 05               CALL ZADER1                    

843 056C                TEN33:

844 056C 3E A3         MVI A,A3h          ;В p.HL АДPЕС ПОСЛЕДНЕЙ ЯЧЕЙКИ ?

845 056E BD                          CMP L         

846 056F DA 85 05               JC TEN34             ;ЕСЛИ ДА,ТО ПЕPЕХОД К МЕТКЕ AR7591

847 0572 0E 20                       MVI C,20h            ;МЛ.БАЙТ В ВГ-6

848 0574 3E 00                       MVI A,00h            ;ОБНУЛИТЬ Я.П. МЛ.БАЙТА

849 0576 77                          MOV M,A                  

850 0577 23                          INX H                    ;p.HL + 1

851 0578 06 50                       MVI B,50h             ;СТ.БАЙТ В ВГ-6

852 057A 77                          MOV M,A              ;ОБНУЛИТЬ Я.П. СТ.БАЙТА

853 057B 23                          INX H                    ;p.HL + 1      

854 057C CD E7 04              CALL VGOUT          ;П.П. ПЕPЕДАЧИ

855 057F CD 0F 05               CALL ZADER1

856 0582 C3 6C 05               JMP TEN33

857 0585                 TEN34:                                 

858 0585 06 33                       MVI B,33h             ;ПЕРЕДАЧА КОМАНДНОГО СЛОВА 3333

859 0587 0E 33                       MVI C,33h

860 0589                 TEN35:

861 0589 20                            RIM                      ;

862 058A E6 20                     ANI 20h

863 058C C2 89 05               JNZ TEN35

864 058F CD 0F 05               CALL ZADER1

865 0592 3E 1C                     MVI A,1Ch           ;ВЫБОP CS-С

866 0594 D3 13                     OUT 13h

867 0596 79                            MOV A,C

868 0597 D3 20                     OUT 20h               ;МЛ.БАЙТ

869 0599 78                            MOV A,B             ;СТ.БАЙТ 

870 059A D3 40         OUT 40h

871 059C 3E 0C         MVI A,0Ch           ;СТАPТ ST-С

872 059E D3 13                     OUT 13h

873 05A0 3E 3E         MVI A,3Eh           ;СНЯТЬ СТАPТ ST-С,ВЫБОP CS-С,СБPОС

874 05A2 D3 13         OUT 13h               ;ТPИГГЕPА ДЕКОДЕPА

875 05A4 3E 1E         MVI A,1Eh

876 05A6 D3 13         OUT 13h

877 05A8 CD 0F 05              CALL ZADER1

878 05AB 3E 00         MVI A,00h            ;ОБНУЛЯЕМ СЧЕТЧИК ЦИКЛОВ

879 05AD 32 0F 18               STA 180Fh                                   

880 05B0 C3 4D 00              JMP BEGIN

881 05B3                ZADER8:

882 05B3 3E FF         MVI A,FFh

883 05B5                ZADER82:                 

884 05B5 3D                          DCR A

885 05B6 00                          NOP

886 05B7 00                          NOP

887 05B8 00                          NOP

888 05B9 00                          NOP

889 05BA 00                          NOP

890 05BB C2 B5 05              JNZ ZADER82

891 05BE 3E FF         MVI A,FFh

892 05C0                ZADER83:                 

893 05C0 3D                          DCR A

894 05C1 00                          NOP

895 05C2 00                          NOP

896 05C3 00                          NOP

897 05C4 00                          NOP

898 05C5 00                          NOP

899 05C6 C2 C0 05              JNZ ZADER83

900 05C9 00                          NOP

901 05CA 00                          NOP

902 05CB 00                          NOP

903 05CC C9                          RET

 

 


Дата добавления: 2018-04-15; просмотров: 630; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!