Орион-128/Радио 10-90/Инструментальный МОНИТОР

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

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

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

Источник: http://www.retro.h1.ru/Orion/InsMon/InstrMon.php

ИНСТРУМЕНТАЛЬНЫЙ МОНИТОР «ОРИОН-128»

Предлагаемая вашему вниманию программа МОНИТОР (названная «МОНИТОР-128», а файл — M128$) является загружаемой командой операционной системой ORDOS. Это одно из инструментальных средств для доступа не только к битам и байтам, но и к «железу» системы. Оно также позволяет получить доступ и к файловой структуре ORDOS.

«МОНИТОР-128» (дальше мы будем называть его просто МОНИТОР) является загружаемой программой и может храниться как в ROM-диске, так и считываться с магнитной ленты. Конечно, удобней его хранить в ROM-диске, особенно тем пользователям, которые занимаются системными проблемами и должны иметь инструмент, что называется, «под рукой».

В программе МОНИТОР включены двенадцать директив, оформленных в виде экранного меню (рис.1). Выбор директив осуществляется перемещением указателя (темная полоска) клавишами управления курсором «Вверх» и «Вниз». Установив указатель на необходимую директиву, вводят дополнительные реквизиты данной директивы и завершают ввод нажатием клавиши [ВК]. Чтобы исправить ошибки при вводе, необходимо вернуть курсор к ошибочному символу, а затем ввести правильные. После выполнения директивы МОНИТОР возвращается в режим управления меню.

Рассмотрим функциональное назначение и особенности работы директив.

DUMP — совмещенный вывод шестнадцатиричного и символьного дампа памяти на экран дисплея. Для выполнения этой директивы необходимо ввести только начальный адрес. После нажатия клавиши [ВК], на экран выводится блок памяти — 256 байт, начиная с указанного адреса. Далее МОНИТОР входит в режим ожидания. Повторное нажатие любой клавиши выводит очередную «порцию» дампа. Если нажать клавишу с символом «Р», вывод дампа повторно начнется с адреса, введенного при запуске директивы. Нажатие клавиши [.] (точка) прерывает работу директивы. Если через запятую после адреса ввести номер страницы (0—3), то на экран дисплея будет выведено содержимое указанной страницы памяти. Нулевые значения параметров и незначащие нули можно опускать.

MODIFY — предназначена для просмотра и изменения содержимого одной или нескольких ячеек памяти, как в основной странице, так и дополнительной (то есть в квазидиске). После ее ввода на экран вводится адрес ячейки и ее содержимое. Если необходимо изменить содержимое ячейки, набирают новое значение (два шестнадцатиричных символа) и нажимают клавишу [ВК]. Если изменений не требуется, ее нажимают сразу же. При каждом нажатии на клавишу [ВК] значение адреса автоматически увеличивается на единицу. Если ввести значение более двух символов, то программа интерпретирует это как новый адрес. Это обстоятельство позволяет производить изменения не только в последовательных ячейках, но и в различных участках памяти, не выходя из директивы. Нажатие клавиши [.] (точка) прерывает работу директивы.

GOTO — передает управление программе пользователя по заданному адресу. Предварительная установка регистров процессора не производится.

TRANSFER — перемещение массива информации в памяти из одной области в другую. В качестве параметров задают начальный и конечный адреса этого массива, а также начальный адрес его нового размещения. Адреса вводятся через запятую. Перемещение можно производить как «Вверх», так и «Вниз» на любое количество ячеек.

COMPAIR — сравнение двух массивов в памяти. Для этого, как и в директиве TRANSFER, задаются начальный и конечный адреса первого массива и начальный адрес второго массива. Адреса (по первому массиву), по которым произошло несовпадение, выводятся на экран дисплея. Можно приостановить вывод информации нажатием на любую символьную клавишу. Клавишей [.] (точка) можно прервать работу директивы в любой момент времени.

SEARCH — поиск байта или слова (двух байт). Для выполнения директивы вводят начальный и конечный адреса области памяти, в которой будет производиться поиск и искомый (эталонный) байт. На экран выводятся адреса совпадения эталонного байта с аналогичным байтом в памяти. При необходимости можно искать слово (два байта — чаще всего адрес). Для этого первым вводят младший, а затем старший байты. После вывода информации программа входит в режим ожидания. Чтобы выйти из этого состояния, нажмите любую символьную клавишу.

FILL — заполнение области памяти константой. Вводят начальный и конечный адреса области и байт константы. Работа директивы ничем не отличается от общепринятой в подобных МОНИТОРах.

HEX — директива возвращает код нажатой клавиши. Исключение составляют некоторые клавиши управления курсором дисплея.

ARITHMTIC — возвращает сумму и разность двухбайтовых шестнадцатиричных чисел. Значения вводятся через запятую. Результат выводится после символа «=». Первое значение — сумма чисел, второе — разность.

COLOR — настройка экрана дисплея на отображение информации в цвете. Директива работает аналогично соответствующей директиве «С» в основном МОНИТОРЕ, но отличается «интеллектуальностью», если вторая страница в области управления цветом занята файлами — директива не «сработает», и будет выведено сообщение «DISK!!!» Следует иметь в виду, что при включении цвета происходит ограничение размера квазидиска до 48 Кбайт, поэтому, если Вы предполагаете работать с большим объемом информации, воздержитесь от включения цвета. Для выключения цветного режима отображения информации введите в качестве байта цвета символ «М» (МОНОХРОМ).

Последние две директивы ориентированы на работу с файловой структурой операционной системы.

FILE ADDRES — изменение адреса «посадки» файла в ОЗУ. В каких случаях это необходимо? Вот пример. Вы можете набирать коды новой программы в любой удобной области памяти. Затем директивой «S» (операционной системы) формируете файл и заносите его в квазидиск. Операционная система установить стартовый адрес Вашего файла в ту область, где Вы набирали коды Вашей программы. Это может не соответствовать тем адресам, где программа должна работать в действительности. В этом случае необходимо изменить стартовый адрес (адрес «посадки»). Сделать это очень просто. Введите имя диска (конечно, эти манипуляции можно проводить только с диском «В»), затем без пробела символ ">, далее (тоже без пробела) имя файла и уже после этого, через пробел, новый шестнадцатиричный «стартовый» адрес файла, если вернуться в операционную систему (F4) и вывести каталог диска «В», то можно убедиться в правильности изменения адреса «посадки» файла. Конечно, у пользователя будут возникать и другие причины, требующие изменения адреса старта или размещения (если файл не самозапускаемый) файла в ОЗУ пользователя при его считывании с квазидиска.

FILE DUMP — поиск и просмотр дампа файла. Иногда возникает необходимость просмотреть содержимое файла на диске. Однако при большом их количестве трудно найти начало файла с помощью директивы «DUMP». В таких случаях используется директива «FILE DUMP». Директива по имени файла находит его начало и затем выводит дамп аналогично директиве «DUMP». Впоследствии, при повторных обращениях к содержимому данного файла, точно зная его адреса размещения, можно пользоваться уже директивами «DUMP» и «MODIFY». Следует заметить, что в МОНИТОРе это единственная директива, позволяющая просмотреть содержимое диска «А» (ROM-диска). Синтаксис ввода параметров аналогичен предыдущей директиве: имя диска, разделительный символ «:», имя файла. Его значения вводятся без разделительных пробелов.

Единственное ограничение в работе директив «FILE ADORES» и «FILE DUMP» — это недопустимость имен файлов, в которых присутствует символ «.» (точка). В таких случаях файл необходимо предварительно переименовать.

Итак, обобщим все вышесказанное.

DUMP <НАЧ.АДР>,<СТРАНИЦА>[ВК]
MODIFY <НАЧ.АДР>,<СТРАНИЦА>[ВК]
GОТО <АДР.ПЕРЕХОДА>[BK]
TRANSFER <АДР1>,<АДР2>,<АДРЗ>[ВК]
COMPAIR <АДР1>,<АДР2>,<АДРЗ>[BK]
SEARCH <АЦР1>,<АДР2>,<БАЙТ/СЛОВО>[ВК]
FILL <АДР1>,<АДР2>,<КОНСТ.>[ВК]
HEX <НАЖАТАЯ КЛАВ.>[ВК]
ARITHMETIC <ЗНАЧЕНИЕ1>,<ЗНАЧЕНИЕ2>[ВК]
COLOR <БАИТ ЦВЕТА)[ВK]
FILE ADDRES <ПРИМЕР: B:M128$ В000[ВК]>
FILE DUMP < -----"---- В:СН$[ВK]> 

Коды программы «МОНИТОР-128» приведены в табл.1, а контрольные суммы блоков — в табл. 2.

Таблица 2

0000 - 00FF АЕ56
0100 - 01FF FACD
0200 - 02FF ЗЗА0
0300 - 03FF D5EF
0400 - 04FF FB1E
0500 - 05FF F388
0600 - 06FF А222 

Коды программы «Монитор-256».

УСТАНОВКА МОНИТОРА

Рассмотрим вариант, когда МОНИТОР будет размещен в ROM-диске. Предположим, что вы уже запустили предыдущую программу «СН$» и разместили ее во втором ППЗУ ROM-диска. Она занимает адреса 0800Н— 0D2FH (по ROM-диску). Остальная часть второго ППЗУ свободна, однако ее недостаточно, чтобы разместить программу «М128$». Необходимо еще одно ППЗУ — третье. Технология «подстыковки» следующая: наберите коды программы «Ml 28$» и убедитесь, что в ней нет ошибок. Сохраните программу в свободной области ОЗУ. Считайте второе ППЗУ (где записана программа «СН$») в ОЗУ, разместив содержимое с адреса 0000Н. Затем директивой «Т» перенесите программу «Ml28$» и разместите ее, начиная с адреса 0530Н. Общий массив заносят в ППЗУ. Как запустить программу вы уже знаете из предыдущей публикации. Напомним, что свободную часть третьего ППЗУ необходимо заполнить значением 0FFH.

Таблица 3

1000 21 08 00 3E 01 0E 00 CD 39 F8 23 3E 01 0E B0 CD
1010 39 F8 СЗ FD BF 

Возможен второй вариант установки. Запустите операционную систему и отформатируйте диск «В». Нажав клавишу «Сброс», вернитесь в МОНИТОР. Наберите коды программы согласно таблице1 и убедитесь в отсутствии ошибок. Для гарантии сохраните на файл ленте директивой «О». Вернитесь в «ORDOS» (директива «Z») и директивой «S» создаете файл (S M128$ 10,6EF BK).

Убедитесь, что у вас на диске появился файл «M128$». Вы уже заметили, что стартовый адрес этого файла 0010Н, но программа работает в служебной области «ORDOS» — системы, начиная с адреса 0В000Н и перекрывает ее, то есть затирает «ССР», поэтому мы не могли производить набор кодов в этой области. В противном случае нашу программу некому было бы записать на диск. В будущем вы будете переназначать стартовый адрес (вспомните директива «FILE ADDRES») этим МОНИТОРОМ, а сейчас — нажмите «Сброс» и с помощью основного МОНИТОРа наберите коды подпрограммы, приведенной в таблице3, и запустите ее. Она произведет необходимые исправления в квазидиске и передаст управление операционной системе. Выведите каталог диска «В», убедитесь, что стартовый адрес программы «M128$» — 0В000Н. Запустите программу и проверьте ее работу, изучите особенности работы директив.

Остается лишь добавить, что к моменту установки предлагаемой программы в ROM-диске уже должна находиться программа «СН$», иначе вам не удастся перенести «МОНИТОР-128» на магнитную ленту и хранить его как файл для последующей работы с ним в среде операционной системы.

В. СУГОНЯКО, В. САФРОНОВ

Московская область.

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

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