Орион-128/Радио 04-91/Редактор Микрон

Материал из Emuverse
Данный материал защищён авторскими правами!

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

Автор: В. СУГОНЯКО, В. САФРОНОВ

Источник: http://retro.h1.ru/Orion/Micron/EdMicron.php

РЕДАКТОР «МИКРОН» В СРЕДЕ «ORDOS»

Пользователям ПРК «Paдио-86РК» хорошо знаком инструментальный пакет программ «МИКРОН», включающий РЕДАКТОР, АССЕМБЛЕР и ДИЗАССЕМБЛЕР [1], [2]. Этот пакет относится к категории корректных программ, то есть таких, которые при работе с ПРК «Радио-86РК» обращаются к системным ресурсам компьютера только в обусловленном порядке — через таблицу входов в стандартные подпрограммы и драйверы МОНИТОРа. Если конструкции других компьютеров имеют близкую программную архитектуру и подобную таблицу входов, то корректно построенные программы легко на них адаптируются.

Можно спорить об оптимальности и целесообразности отдельных функций таблицы. Однако это уже сложившийся стандарт, стандарт — де факто на радиолюбительские компьютеры с микропроцессором КР580ВМ80А. Следует заметить, что и промышленность, выпуская бытовые компьютеры, программно совместимые с радиолюбительским, также придерживается этой таблицы, однако, к сожалению, тут не обошлось без исключений и импровизаций.

ПРК «Орион-128» имеет такую же таблицу. Авторы стремились добиться максимальной совместимости, а там, где это оказалось невозможным из-за явных различий в структуре и архитектуре компьютеров, — оградить пользователя от конфликта. Опыт эксплуатации ПРК «Орион-128» показал, что так называемые корректные программы выполняются вполне приемлемо без каких-либо изменений в них. Работая с «МОНИТОРОМ-1», можно практически оставаться в среде очень близкой к «РК86», во всяком случае привычной для тех, кто уже имеет достаточные навыки в работе с этим компьютером. Правда, следует помнить, что при этом необходимо предварительно запустить программу эмуляции экрана ПРК «Радио-86РК» [3]. В этой программе необходимо исправить допущенную авторами неточность и записать значение 8ВН по адресам 0А821Н и 0A9D3H, а по адресам 0А822Н и 0A9D4H — А8Н. Кстати, если произвести небольшие изменения, то можно использовать эмулятор и с «МОНИТОРОМ-2». Изменения заключаются в следующем: по адресам 0А81ВН, 0А81СН, а также 0А820Н — 0А827Н необходимо записать значение 00Н. По адресу 0А81ЕН-84Н и 0A81FH — А8Н.

Вернемся, однако, к начатой теме и расскажем о работе вышеназванного пакета в среде операционной системы «ORDOS». Основное внимание авторы уделили редактору текстов, как наиболее часто используемой программе. Работать с ним на ПРК «Орион-128» можно по-разному.

Например, так. Программой CHR$ — считывают с магнитной ленты пакет в квазидиск. Допустим, это РЕДАКТОР — АССЕМБЛЕР. После считывания «CHR$» присваивает условное имя файлу и поэтому его необходимо переименовать в СОМ-файл (командный файл, то есть выполняемый). Имя можно выбрать любое по своему усмотрению (не более 8 символов), но последним символом в данном случае должен быть «$» (24Н). Напомним: это признак того, что после считывания его с квазидиска в ОЗУ операционная система должна передать управление на стартовый адрес этого файла.

Можно считать программы с магнитной ленты и директивой «I» «МОНИТОРА-1». Затем запустить ОС «ORDOS» и директивой «SAVE» занести РЕДАКТОР в квазидиск. Напомним синтаксис директивы- «S ED 0, FFF(BK]». В этом случае никаких переименований делать не нужно. Подобным образом заносятся и текстовые файлы, необходимо только убедиться, что адрес размещения (стартовый адрес) текстовых файлов — 2100Н (для версии редактора 32К), а имя этого файла не содержит признак запуска «$».

Если вы будете вводить новый текст или программу, запустите только редактор. Синтаксис директивы «LOAD»: "L ED [ВК] " (вместо «L» можно вводить пробел). Как работать с пакетом «МИКРОН» описано в [1 ] и [2]. Сохранить «наработанный» текст на магнитной ленте можно директивой АР2+O, а директивой АР2+I считать его в память компьютера. Текст можно сохранить и в виде файла с помощью директивы «SAVE» ОС «ORDOS».

Если необходимо редактировать текст, уже имеющийся в квазидиске, то поступают следующим образом: сначала считывают с диска файл текста, а затем сам редактор. На вопрос редактора «NEW?» необходимо нажать клавишу «N». Конечно, так работать очень неудобно, потому что диалог с пользователем в этих программах рассчитан на без операционную среду, или мониторную. Чтобы поправить положение, необходимо модифицировать программу редактора, то есть заменить директивы работы с магнитофоном директивами работы с диском.

Авторы использовали программу, приведенную в таблице 1 [2]. Все изменения в исходный вариант редактора вносятся на уровне исправлений объектного кода согласно табл.1 настоящей статьи.

Кроме замены блока по адресам 05АСН — 0716Н, необходимо изменить еще несколько ячеек согласно табл.2.

Директивы АР2+I, АР2+М, АР2+0, АР2+С, сохраняя общее функциональное назначение, выполняют теперь несколько другие функции.

  • Директива АР2+I — загрузка файла с квазидиска в буфер текста «РЕДАКТОРА». Адрес «посадки», указанный в атрибутах файла, не имеет значения — файл всегда загружается в ОЗУ начиная с адреса 2100Н.
  • Директива АР2+М — дозагрузка, к имеющемуся в буфере «РЕДАКТОРА» тексту, еще одного файла с диска.
  • Директива АР2+O — сохранение текста из буфера редактора на квазидиске в виде файла.
  • Директива АР2+С — вывод каталога диска «В».

При выполнении директив АР2+I, АР2+М, АР2+O на запрос редактора «ИМЯ?» необходимо ввести имя файла, состоящее не более чем из восьми символов (требования такие же, как и в ОС «ORDOS»), остальные символы (если были введены) игнорируются.

Таблица 2.

АДРЕС БЫЛО СТАЛО ЧЕМ ВЫЗВАНЫ ИЗМЕНЕНИЯ
0B2 75 9F СТЕК, А ЗНАЧИТ И ВЕРХНЯЯ
0021 77 9F ГРАНИЦА БУФЕРА ТЕКСТА
01A9 0E 7E ЗАМЕНА 'ПСЕВДОГРАФИЧЕСКОГО' СИМВОЛА НА ‘>‘
07B4 55 1F Адpec ПЕРЕХОДА ПРИ ВЫПОЛНЕНИИДИРЕКТИВЫ “СТР”.
07В5 07 00 ИЗМЕНЕНИЯ ЭТОГО АДРЕСА ПРОИЗВОДЯТ ТОЛЬКОЕ СЛИ “РЕДАКТОР ИСПОЛЬЗУЕТСЯ В АВТОНОМНОМ РЕЖИМЕ (БЕЗ АССЕМБЛЕРА ИЛИ ДИЗАССЕМБЛЕРА).
07D8 56 45 ИЗМЕНИТЬ ИМЯ ДИРЕКТИВЫ “V” НА“C” - КАТАЛОГ


Редактор производит проверку на повторное имя файла (выводите я сообщение «повторное имя») и на переполнение квазидиска (сообщение — «мало ОЗУ К/диска»). Если сохраняемый файл превышает область адреса 0С00Н (ОЗУ цвета) квазидиска, файл сохраняется, но выключается цветной режим отображения. Это справедливо только в том случае, если максимальный размер квазидиска не был предварительно ограничен, например, директивой «COLOR» программы «М128$». При работе с «ORDOS» следует избегать включения цветного режима отображения директивой «С» «МОНИТОРА-1», так как она не проверяет содержимое квазидиска в области ОЗУ цвета (где могут храниться файлы), а заполняет его кодом выбранного цвета. Это приведет к потере не только файла, но и сделает недоступным содержимое всего диска «В», что потребует его переформатирования.

При выполнении директив АР2+I и АР2+М проверяется, уместится ли текст в буфере «РЕДАКТОРА» (2100Н — 9FBFH). Если текстовый файл имеет большие размеры, выводится сообщение «мало ОЗУ».

Авторы не ставили перед собой цель модернизировать весь пакет. Это сложная работа, особенно если нет авторского исходного текста. К тому же необходимо отметить, что программы АССЕМБЛЕР и ДИЗАССЕМБЛЕР требуют более значительных изменений для того, чтобы в том же объеме освободить место для директив работы с диском. Авторы, однако, считают необходимым дать несколько советов по работе с этими программами.

При работе с АССЕМБЛЕРОМ объектный код, полученный в результате трансляции исходной текста программы, заносят на квазидиск директивой «SAVE» «ORDOS». Начальный и конечные адреса транслятор выводит в конце работы. Не забывайте к имени добавлять признак самозапуска, если это выполняемая программа. Если программа оттранслирована для работы в адресах буфера АССЕМБЛЕРа — 1100Н, то запустить программу можно директивой «G» "МОНИТОРА-1 или «GOTO» в- М128$.

Если же производится дизассемблирование, то необходимо файлу с дизассемблируемой программой предварительно установить адрес «посадки» файла равным 1100Н. Это делается с помощью «М128$». Проследите, чтобы в имени этого файла не было символа "$ " (вы поняли почему?). После этого загружают его в 03У и затем загружают редактор — дизассемблер. После дизассемблирования и редактирования полученный листинг с помощью директивы редактора АР2+O заносят на диск «В».

ЛИТЕРАТУРА

  1. В. Барчуков, Г. Зеленко, Е. Фадеев. Редактор и ассемблер для «Радио-86РК».-Радио, 1987, № 7.
  2. В. Барчуков, Е. Фадеев. Дизассемблер для «Радио-86РК». -Радио, 1988, № 3.
  3. В. Сугоняко, В. Сафронов. Наладка ПРК «Орион-128».- Радио, 1990, № 5, с. 38.

Отсканировано с журнала Радио № 4 1991 г.

Отредактировано Лесных Ю. 2001 г.