Передовица » Макулатура » Штатная документация » Агат-7 Книга 6 » СисМон Руководство программиста 1985

СисМон Руководство программиста 1985

    УТВЕРЖДЕН
Фг.00003-02 33 01-ЛУ

МАШИНА ВЫЧИСЛИТЕЛЬНАЯ ЭЛЕКТРОННАЯ

ПЕРСОНАЛЬНАЯ "АГАТ"

Программное обеспечение

Системный монитор

Руководство программиста

Фг.00003-02 33 01

1985

 

* * *

АННОТАЦИЯ

В документе описывается назначение, условия применения, а также приведены основные характеристики программы "Системный монитор" (монитор) для персональной электронной вычислительной машины (ПЭВМ) "АГАТ".

СОДЕРЖАНИЕ

1. Назначение и условия применения программы             
2. Характеристики программы                              
3. Обращение к программе                                 
   3.1. Запуск монитора                                  
   3.2. Диалог монитора                                  
   3.3. Программные обращения к процедурам монитора     
                   

1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ

Программа "Системный монитор" - это минимум программного обеспечения, который необходим для работы пользователя с ПЭВМ "АГАТ".

Программа предназначена для выполнения трех основных функций:

при включении ПЭВМ "АГАТ" ("холодный" старт) программа осуществляет осмотр конфигурации и запускает выполнение элементов программного обеспечения;

обеспечивает обмен с базовыми устройствами ввода-вывода - видеоконтрольным устройством (ВКУ), клавиатурой, магнитофоном;

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

2. ХАРАКТЕРИСТИКИ ПРОГРАММЫ

Программа "Системный монитор" занимает в постоянном запоминающем устройстве (ПЗУ) объем памяти 2К байт и расположена с адреса cF800 по адрес cFFFF.

При включении питания ПЭВМ "АГАТ" автоматически осуществляется запуск программы с адреса подпрограммы, которая обрабатывает сигнал СБРОС.

Адрес подпрограммы обработки сигнала СБРОС записан в ячейках $FFFC-$FFFD.

Программа обеспечивает интерактивный режим работы с ПЭВМ "АГАТ". При нажатии клавиши СБР программа проверяет сохранность входных ячеек оперативной памяти.

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

Программа обеспечивает выдачу информации на экран в следующих режимах:

цветном текстовом (8 цветов, 32*32 знакоместа);

черно-белом текстовом (32*64 знакоместа).

Обмен с магнитофоном программа "Системный монитор" осуществляет со скоростью 1К бод.

В настоящем документе рассматриваются две версии программы:

"монитор - ПЗУ", размещенный в ПЗУ и доступный для работы до завершения загрузки той или иной системы программирования;

"монитор - Бейсик", загружаемый в тот же диапазон адресов ПЗУ в составе интерпретатора языка "Бейсик", и отличающийся несколько расширенным набором функций.

В руководстве описан "монитор - Бейсик". Отличия "монитора - ПЗУ" указаны в скобках (*...*).

3. ОБРАЩЕНИЕ К ПРОГРАММЕ

3.1. Запуск монитора

При включении питания ПЭВМ "АГАТ" программа начинает работу. Производится осмотр конфигурации периферийных контроллеров, установленных в разъемах шины ПЭВМ "АГАТ", и определяется наличие дискового контроллера. Если он найден, осуществляется загрузка с диска (см. Фг.00003-02 33 06). В противном случае, подключается диалог монитора.

3.2. Диалог монитора

Для включения диалога монитора достаточно передать управление по адресу $FF69 (65385 или -151 в 10-й системе счисления), что выполняется командами CALL-151 или CALL 65385 языка программирования "Бейсик".

Признаком готовности программы к диалогу служит появление на экране приглашения "*" в начале строки, в которой по мере набора с клавиатуры будет появляться требуемая директива. Справа от приглашения появляется курсор - мерцающий подчерк (* белый квадрат *), который указывает позицию вывода очередного символа ( при нажатии клавиши на его место выводится символ, а курсор сдвигается вправо).

Ввод строки с клавиатуры (не больше 255 символов) завершается нажатием клавиши "↵" (перевод строки). Программа начинает анализировать входную строку.

Монитор воспринимает информацию трех типов: адреса, данные, команды (директивы).

Для представления адреса используются четыре шестнадцатеричные цифры, для представления данных - две. Программа запоминает адреса в 5 ячейках. Три из них специальные: адрес последней опрошенной ячейки (ПОЯ), адрес следующей изменяемой ячейки (СИЯ) и адрес команды (АК). В диалоге монитора может использоваться одновременное нажатие двух клавиш:

УПР-Л - очистка всего экрана;

УПР-Щ - очистка до конца текущей строки;

УПР-Ч - очистка до конца экрана;

УПР-Г - звуковой сигнал;

УПР-Ь - отмена набранной строки.

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

"→" - чтение указанного курсором символа в буфер ввода;

"←" - удаление последнего введенного символа из буфера;

"↑" - перевод курсора экрана ВКУ на одну строчку вверх;

"↓" - перевод курсора на одну строчку вниз.

Если вначале нажать клавишу РЕД, а затем клавишу "→" или "←", тогда изменение буфера экрана не происходит. При этом только перемещается курсор на экране ВКУ. Нажатие любой другой клавиши возвращает первоначальные функции стрелкам.

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

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

3.2.1. Осмотр содержимого памяти

Если набрать адрес ячейки памяти, то на экране появится этот адрес и через тире и пробел - содержимое этой ячейки памяти. Ячейка памяти запоминается как ПОЯ и СИЯ.

Пустая директива (нажать только клавишу "↵") выводит содержимое памяти от ПОЯ+1 до ближайшего большего адреса, кратного 8. Если ПОЯ+1 было кратно 8, перед этой строкой выводится ее адрес. Таким образом, нажимая несколько раз перевод строки, можно выводить содержимое памяти по 8 байт с адресами.

Если набрать точку с последующим адресом, монитор выдаст на экран дамп памяти (ДП) - содержимое всех ячеек памяти после ячейки памяти, запомненной как ПОЯ, кончая ячейкой памяти, набранной после точки.

Описанные две команды можно объединить в одну для того, чтобы вывести на экран содержимое любого интервала памяти (ИП).

3.2.2. Изменение содержимого памяти

Если набрать двоеточие и последующие за ним данные (две шестнадцатеричные цифры), то содержимое ячейки памяти, запомненной как СИЯ, изменится и станет равным вновь набранному. Можно объединить эту команду с предыдущей. Для чего необходимо набрать адрес (он запомнится как СИЯ), двоеточие и данные. При этом можно изменить значение содержимого 85 ячеек памяти одновременно, набирая данные через пробел. После присвоения строки данных ячейка памяти, следующая за последней измененной, становится СИЯ.

3.2.3. Передвижение интервала памяти (ИП)

Передвижение интервала памяти осуществляется с помощью команды MOVE.

Для этого необходимо набрать директиву:

{адрес нового местоположения ИП} <

{адрес первой ячейки ИП}.{адрес последней ячейки ИП} М.

По этой команде монитор делает копию ИП и передвигает ее на указанное местоположение. Последняя ячейка первоначального ИП запоминается как ПОЯ, первая ячейка - как СИЯ.

Если второй адрес ИП меньше первого, то будет передвинуто содержимое только первой ячейки памяти.

Если адрес нового местоположения лежит внутри ИП, то содержимое подинтервала ИП, определяемого началом ИП и местоположением, будет повторяться далее на всем ИП. Этот эффект может использоваться, например, для заполнения одинаковой информацией больших ИП.

3.2.4. Сравнение двух ИП

С помощью команды VERIFY можно сравнить два интервала памяти, используя формат команды переписи:

{местоположение} {ИП} V.

Если будут найдены отличия, на экране ВКУ появится адрес ячейки памяти в первоначальном ИП, чье значение отличается от соответствующего значения ИП, начинающего с указанного местоположения. Если отличий не найдено, на экране ничего не появляется. Оба ИП не изменяются, ПОЯ и СИЯ определяются так же, как в команде MOVE. Если адрес местоположения лежит внутри первоначального ИП, то команду VERIFY можно использовать для проверки на одинаковость заполнения первоначального ИП подинтервалом от начала ИП до места выполнения.

3.2.5. Запись и считывание с МЛ

Программа позволяет записать ИП на магнитную ленту и снова считать ИП с МЛ для дальнейшего пользования.

Для записи на МЛ монитору необходимо подать адреса первой и последней ячейки ИП через точку и затем букву "W" (WRITE ). До того, как нажать клавишу "↵", необходимо нажать клавишу "запись" на магнитофоне и дать ленте прокрутиться несколько секунд.

Формат команды чтения с МЛ (READ ) такой же, что и команды записи на МЛ.

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

3.2.6. Работа с программами в машинных кодах

Используя диалог монитора, можно написать любую программу в машинных кодах. С помощью команды L (LIST ) можно посмотреть текст программы в мнемокоде системы команд. Выполнение программы осуществляется с помощью команды G (GO ). Форматы этих команд:

{адрес начала программы} L

или {адрес начала программы} G

Команды "L" и "G" устанавливают содержимое АК: при выполнении команды "G" АК становится равным набранному адресу (или остается неизменным, если ничего не набрано), при выполнении команды "L" АК устанавливается равным адресу следующей за последней выведенной ячейкой.

3.2.7. Задание текстовой страницы

С помощью команды "NT" можно вывести на экран ВКУ нужный участок памяти в виде текста, где N - номер текстовой страницы (участка памяти).

При этом, если N находится в интервале от 0 до 31, текст на экране ВКУ будет выдаваться в цветном режиме 32х32 символа. Если N - величина от 32 до 63, тогда текст будет выдаваться в режиме 32х64 символа.

Следует помнить, что каждая текстовая страница занимает $800 байт памяти. Нулевая страница начинается с адреса 0. Адрес текстовой страницы вычисляется по формуле:

A=$800 * N

Страница с N=32 начинается, как и нулевая, с адреса 0. Попытка использования страницы с нулевым адресом приводит к искажению содержимого рабочих ячеек системы и "зависанию" монитора.

3.2.8. Задание цвета текста

С помощью команды "NO" можно задать цвет текста, который выводится на экран ВКУ, где N - цифра от 0 до 7.

Каждая цифра означает цвет.

3.3. Программные обращения к процедурам монитора

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

Ниже перечислены некоторые подпрограммы монитора.

Для использования этих подпрограмм программами пользователя необходимо выполнить команду JSR - переход на начальный адрес подпрограммы, перед этим при необходимости задать начальные параметры (загрузив требуемые ячейки памяти).

3.3.1. Вывод символа

Подпрограмма вывода символа COUT.

Адрес подпрограммы FDE1 (*FDD4*).

Выводимый символ должен быть в аккумуляторе.

COUT передает управление по адресу, лежащему в CSW (ячейки 36, 37) (*обычно это COUT1*).

3.3.2. Вывод на экран

Подпрограмма вывода на экран COUT1.

Адрес подпрограммы FDE4 (*FDD7*).

COUT1 выводит символ в текущую позицию экрана. Содержимое всех регистров не меняется. COUT1 интерпретирует следующие управляющие коды:

8D - перевод строки;
88 - возврат на один символ влево;
95 - сдвиг на один символ вправо;
99 - перемещение на одну строчку вверх;
9A - перемещение на одну строчку вниз;
8C - очистка всего экрана;
9D - очистка до конца текущей строки;
9E - очистка до конца экрана;
87 - звуковой сигнал.

3.3.3. Установка инверсного режима

Подпрограмма установки инверсного режима SETINV.

Адрес подпрограммы Е75 (*FE77*).

SETINV устанавливает инверсный режим для COUT1.

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

Изменяется регистр А.

3.3.4. Нормальный режим

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

Адрес подпрограммы FE79 (*FE7B*).

SETNORM устанавливает нормальный режим для COUT1.

Символы выводятся как цветные точки на черном фоне.

Изменяется регистр А.

3.3.5. Исполнение "↵"

Подпрограмма исполнения "↵" CROUT.

Адрес подпрограммы FD8E (*FD75*).

CROUT осуществляет передачу символа "↵" ($8D) подпрограмме COUT.

3.3.6. Чистка до конца экрана

тут похоже опечатка

Подпрограмма возврата с чисткой экрана CROUT1.

Адрес подпрограммы FD89 (*FD70*).

CROUT1 очищает экран от текущей позиции курсора до угла (конца) текстового окна, потом вызывает CROUT

Может быть вызвана подачей на COUT символа $9E (УПР-Ч, функциональная "8").

3.3.7. Шестнадцатеричная печать байта

Подпрограмма шестнадцатеричной печати байта PRBYTE.

Адрес подпрограммы FDC9 (*FDC1*).

PRBYTE выводит содержимое аккумулятора в шестнадцатеричной системе. Регистр А изменяется.

3.3.8. Печать шестнадцатеричной цифры

Подпрограмма печати шестнадцатеричной цифры PRHEX.

Адрес подпрограммы FDD2 (*FDDA*).

PRHEX выводит последние четыре бита аккумулятора как одну шестнадцатеричную цифру.

Содержимое аккумулятора изменяется.

3.3.9. Печать содержимого регистров А и Х в шестандцатеричной системе

Подпрограмма печати содержимого регистров А и Х PRNTAX.

Адрес подпрограммы F932 (*F932*).

PRNTAX выводит содержимое регистров А и X как четыре шестнадцатеричные цифры.

Аккумулятор содержит первый выводимый байт, регистр Х - второй.

Содержимое аккумулятора не сохраняется.

3.3.10. Печать пробелов

Подпрограмма печати двух пробелов PRBLNK.

Адрес подпрограммы FF5A (*FF5A*).

Подпрограмма печати нескольких пробелов PRBL2.

Адрес подпрограммы FF5C (*FF5C*).

PRBL2 выводит от 1 до 256 пробелов.

В регистре X должно содержаться количество выводимых пробелов. Если регистр X=000, то выводится 256 пробелов.

3.3.11. Вывод звукового сигнала

Подпрограмма вывода звукового сигнала BELL может быть вызвана подачей на COUТ символа $87.

Адрес подпрограммы FCB4 (*FCAE*).

BELL выводит звуковой сигнал (УПР-Г).

3.3.12. Ввод входного символа

Подпрограмма ввода входного символа RDKEY.

Адрес подпрограммы FD0A (*FD04*).

RDKEY переходит к подпрограмме ввода, адрес которой лежит в ячейке KSW ( ¤38-39).

(* Обычно это программа KEYIN (см.п. 3.3.14) *).

3.3.13. Взять входной символ или РЕД-код

Подпрограмма РЕД-код или RDCHAR.

Адрес подпрограммы FB7A (*FD66*).

RDCHAR - дополнительная подпрограмма ввода, которая вводит символы, обращаясь к RDKEY (см.п.3.3.12), и при этом интерпретирует следующие редактирующие клавиши:

"↑" - перемещение курсора на 1 позицию вверх;

"↓" - перемещение курсора на 1 позицию вниз;

РЕД - переход в режим свободного горизонтального перемещения;

"→" - перемещение на 1 позицию вправо (в свободном перемещении);

"←" - перемещение на 1 позицию влево (в свободном перемещении).

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

3.3.14. Считать с клавиатуры

Подпрограмма считать с клавиатуры KEYIN.

Адрес подпрограммы FD0D (*FD07*).

KEYIN читает с клавиатуры, ожидая, пока нажмут клавишу.

После считывания кода символа KEYIN передвигает мерцающий курсор и возвращает код символа в аккумуляторе.

3.3.15. Взять входную строку

Подпрограмма взять входную строку GETLN.

Адрес подпрограммы FD6E (*FD55*).

GETLN выводит приглашение из ячейки $33.

Собирает символы входной строки во входной буфер (начинающийся с адреса $200), пока не встретится "↓".

В регистре X накапливается длина входной строки.

GETLNZ - вход в подпрограмму GETLN с адресом FD6B (*FD4F*).

Перед тем, как передать управление GETLN, курсор устанавливается в начало строки.

3.3.16. Задержка

Подпрограмма задержки WAIT.

Адрес подпрограммы FB2B (*$FB94*).

WAIT производит временную задержку, а затем передает управление основной программе.

Время задержки зависит от содержимого аккумулятора.

Если в аккумуляторе содержится величина А, то время задержки будет:

(5*А*А+27*А+26)/2 мкс.

WAIT возвращается с обнуленным аккумулятором.

Регистры Х и Y не изменяются.

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *