Добавил в набор программ
эмулятора ПК "Специалист" Редактор и Ассемблер,
чтобы была возможность попрограммировать он-лайн на Асме 8080.
Точнее - получилось 2 Редактора и Ассемблера, т.к. они в одном пакете.
Исходники вытащил из архива эмулятора В.Пыхонина. Программы предварительно
проверил. Они обе рабочие.
К сожалению, в старом "Специалисте" работа с Редактором и Ассемблером затруднена
тем, что требуется помнить неочевидные сочетания управляющих клавиш.
Но по минимуму справиться всё же можно...
Пришлось и самому себе напомнить, что там и как там:
РЕДАКТОР И АССЕМБЛЕР
А.Орлов. Ваш помощник — компьютер (Редактор и Ассемблер), «Моделист-конструктор», 1988 г. ¹10, с.20-22.
Пакет программ, состоящий из Редактора и Ассемблера, является адаптированной для компьютера «Специалист» версией пакета «Микрон» (см. «Радио», 1987 г., ¹ 7, с. 22— 26) с использованием Редактора от Дизассемблера (см. «Радио», 1988 г., ¹ 3, с. 27—31).
Коды данной версии приведены в таблице 1, контрольные суммы блоков — в таблице 2. Проверить последние можно с помощью директивы K Монитора.
В исходной версии программа использует клавиши <F2>, <F4>, <AP2>, <ТАБ>, которых нет в «Специалисте», поэтому их заменяют клавиши <SAVE>, <CONT>, <EDIT>, <RUN>.
------------
Клавишу <УС> заменяет <F> (например, код 03 можно получить последовательным нажатием на клавиши <F> и <#>).
Текстовый буфер Редактора начинается с адреса 3000H. Запускают Редактор директивой G0 Монитора, при этом на экране появляется надпись «ED *МИКРОН*». Ниже приведены директивы для работы с Редактором.
<EDIT> + <N> — очистка памяти для нового текста. Чтобы не произошла случайная очистка, директива выполняется только в случае ответа <Y> на запрос «NEW?». После очистки устанавливается режим ввода в текстовый буфер.
<ВК> — ввод в память набранной строки.
< -> >, < <- > —перемещение курсора для исправления ошибки.
<СТР> — завершение ввода строк. После нажатия этой клавиши можно редактировать введенный текст.
<EDIT> + <В> — просмотр начала текста.
<EDIT> + <Е> — просмотр конца текста.
<EDIT> + <down>—просмотр следующей страницы текста.
<EDIT> + <uр> — просмотр предыдущей страницы текста.
< \ > — перемещение курсора к началу первой строки.
<left>, <right>, <up>, <down> — перемещение курсора к месту редактирования.
<EDIT> + <А> — ввод новой строки или группы строк. Завершение ввода заканчивается <СТР>.
<EDIT> + <L> — используется для поиска группы символов. После набора группы символов и нажатия на <ВК> производится отображение фрагмента текста, в котором встретилась данная последовательность. Для отображения следующего фрагмента с заданной группой символов служит директива <EDIT> + <R>.
<SAVE> — производится сдвижка строки за счет символа, на который указывает курсор.
<CONT> — очищается место для пропущенного символа.
<EDIT> + <CONT> —включается автораздвижка символов. Выключить ее можно директивой <EDIT> + <SAVE>.
<EDIT> + <D>—маркировка первой строки удаляемого фрагмента текста.
<up>, <down>, <EDIT>+ <down> — перемещение курсора к строке, следующей после последней удаляемой. Для исключения фрагмента текста необходимо снова набрать <EDIT> + <D>.
Отменить неправильно набранную директиву удаления фрагмента текста можно клавишей <СТР>.
<EDIT> + <О>—запись текста на магнитофон. В ответ на директиву Редактор запрашивает имя файла (можно не указывать), после его набора +<ВК> производится запись.
<EDIT> + <|>—производится поиск и считывание текста с заданным именем с магнитофона. Параллельно на экран выводятся имена всех найденных файлов. Если имя не указать, то загрузится первый встретившийся текст. Когда при считывании обнаруживается ошибка, Редактор сигнализирует об этом соответствующей надписью. В противном случае на экран выводится начальный фрагмент загруженного текста.
<EDIT> + <V>—сравнение текстов в буфере ОЗУ и на ленте. Если тексты неидентичны, выводится сообщение «ОШИБКА», а когда они совпадают — то их начальный фрагмент.
<EDIT> + <М> — вводится дополнительный фрагмент к уже имеющемуся в ОЗУ. Эта директива позволяет компоновать текст из отдельных фрагментов, записанных на ленте. Любую директиву работы с магнитофоном можно отменить, нажав на клавишу <СТР>.
<F> + <E> — выход в Монитор.
<СТР> — выход в Ассемблер. Его можно запустить также директивой G800 Монитора. При выходе в Ассемблер выводится надпись «ASSM *МИКРОН*».
Кратко перечислим основные требования к тексту на Ассемблере (подробнее об этом можно прочитать в «Радио», 1987 г., ¹ 4, с. 17—21 и «Радио», 1987 г., ¹ 7, с. 24).
Метки могут состоять из любого числа русских и латинских букв или цифр, начинаться с буквы или с символов « @ » или « ? ». Различение меток происходит по первым шести символам. Причем в качестве меток нельзя использовать имена регистров микропроцессора; каждая метка должна оканчиваться двоеточием.
В программе можно использовать следующие операторы:
ORG — указывает начало области, в которой будет работать программа;
EQU — присваивает метке определенное значение;
DB, DW — служат для занесения байтов или слов в память;
DS N — резервирует N байтов в памяти;
END — указывает на конец программы.
Комментарии отделяются символом « ; ».
В качестве операндов могут быть использованы константы, арифметические выражения, содержащие знаки «+» и «—», имена меток и регистров микропроцессора, десятичные и шестнадцатиричные числа, а также выражения, содержащие адрес текущей строки, обозначаемый « $ ».
Оттранслировать программу можно, нажав одну из трех клавиш:
<1> — на экран выводится полный протокол трансляции. Приостановить трансляцию можно клавишей <СТР>, а продолжить, нажав на любую другую клавишу. При повторном нажатии на <СТР> происходит переход в Редактор.
<2> — на экран выводится список всех встретившихся меток.
<3> — на экран выводится сообщение об обнаруженных ошибках (их число) и два адреса: адрес конца программы в области, которая предназначена ей для работы, и адрес конца в буферной области. Эти данные выводятся также и в первых двух случаях.
Оттранслированная программа всегда находится в области памяти, начинающейся с 1200H. Если программа должна работать в другой области, то ее можно перенести с помощью директивы Т Монитора. Выйти из Ассемблера в Монитор можно, нажав на клавиши <F> + <E> или на клавишу с кодом меньше чем 31H.
Данная версия рассчитана на работу в компьютере, имеющем ОЗУ с 0000H по 7FFFH.
Д. ОРЛОВ,
г. Пушкино,
Московская обл.
Надо будет, видимо,
HTML-help написать, как я это сделал для
эмулятора микропроцессора 6502.