Редактор Микрон от РК 86 в среде ОР ДОС, Орион-128
Работа с редактором Микрон Ориона-128
Продаю платы и наборы микросхем, куплю микросхемы
Стандарты ПО, адресов и портов
РЕДАКТОР "МИКРОН" В СРЕДЕ "ORDOS"
Пользователям ПРК "Paдио-86РК" хорошо знаком инструментальный пакет программ "МИКРОН", включающий РЕДАКТОР, АССЕМБЛЕР и ДИЗАССЕМБЛЕР [1], [2]. Этот пакет относится к категории корректных программ, т. е. таких, которые при работе с ПРК "Радио-86РК" обращаются к системным ресурсам компьютера только в обусловленном порядке - через таблицу входов в стандартные подпрограммы и драйверы МОНИТОРа. Если конструкции других компьютеров имеют близкую программную архитектуру и подобную таблицу входов, то корректно построенные программы легко на них адаптируются.
Про ассемблер и дизасемблер для Ориона-128 читайте здесь.
Можно спорить об оптимальности и целесообразности отдельных функций
таблицы. Однако это уже сложившийся стандарт, стандарт - де факто на
радиолюбительские компьютеры с микропроцессором КР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"), остальные символы (если были
введены) игнорируются.
Редактор производит проверку на повторное имя файла ( выводите я сообщение "повторное имя") и на переполнение квазидиска (сообщение - "мало ОЗУ К/диска"). Если сохраняемый файл превышает область адреса 0С00Н (ОЗУ цвета) квазидиска, файл сохраняется, но выключается цветной режим отображения. Это справедливо только в том случае, если максимальный размер квазидиска не был предварительно ограничен, например, директивой "COLOR" программы "М128$". При работе с "ORDOS" следует избегать включения цветного режима отображения директивой "С" "МОНИТОРА-1", так как она не проверяет содержимое квазидиска в области ОЗУ цвета (где могут храниться файлы), а заполняет его кодом выбранного цвета. Это приведет к потере не только файла, но и сделает недоступным содержимое всего диска "В", что потребует его переформатирования.
АДРЕС |
БЫЛО |
СТАЛО |
ЧЕМ ВЫЗВАНЫ ИЗМЕНЕНИЯ |
00B2 |
75 |
9F |
СТЕК, А ЗНАЧИТ И ВЕРХНЯЯ |
0021 |
77 |
9F |
ГРАНИЦА БУФЕРА ТЕКСТА |
01A9 |
0E |
7E |
ЗАМЕНА 'ПСЕВДОГРАФИЧЕСКОГО' СИМВОЛА НА ‘>‘ |
07B4 |
55 |
1F |
Адpec ПЕРЕХОДА ПРИ ВЫПОЛНЕНИИДИРЕКТИВЫ “СТР”. |
07В5 |
07 |
00 |
ИЗМЕНЕНИЯ ЭТОГО АДРЕСА ПРОИЗВОДЯТ ТОЛЬКОЕ СЛИ “РЕДАКТОР ИСПОЛЬЗУЕТСЯ ВАВТОНОМНОМ РЕЖИМЕ (БЕЗАССЕМБЛЕРА ИЛИ ДИЗАССЕМБЛЕРА). |
07D8 |
56 |
45 |
ИЗМЕНИТЬ ИМЯ ДИРЕКТИВЫ “V” НА“C” - КАТАЛОГ |
При выполнении директив АР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 г.
На предыдущую страницу На главную страницу На следующую страницу