[an error occurred while processing this directive]
.сс
(*3.2.5. Запись и считывание с МЛ
Программа позволяет записать ИП на магнитную ленту и снова считать ИП с МЛ для дальнейшего пользования. (* В мониторе ПЗУ реализовано только чтение.*)
Для записи на МЛ монитору необходимо подать адреса первой и последней ячейки ИП через точку и затем букву "W" (WRITE ). До того, как нажать перевод строки, необходимо нажать клавишу "запись" на магнитофоне и дать ленте прокрутиться несколько секунд.
Формат команды чтения с МЛ "R" (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 символа. 
При использовании различных областей памяти для отображения в графических и текстовых режимах необходимо следить за возможными пересечениями их с рабочими зонами СП "Бейсик" с учетом исполнения ПЭВМ "АГАТ", применяемой для эксплуатации программы. Адреса текстовых экранов приведены в табл.1.
.сс
.пв
 Таблица 1
.ов
.ао0
----------------------------------------------------------
Номера:Адреса экранов 
экрана:---------------
      :Исполнение 7:
------:------------:
0??   : 0*         :
------:------------:
1     : 800***     :
------:------------:
2     :1000        :
------:------------:
3???  : 1800*      :
------:------------:
4-15  :2000-7800** :
------:------------:
16-31 :повторение  :
      :экранов с 0 :
      : до 15      :
------:------------:
32    : 0*         :
------:------------:
33    :800***      :
------:------------:
34    :1000        :
------:------------:
35    :1800*       :
------:------------:
36-47 :2000-7800** :
------:------------:
48-63 :повторение  :
      :экранов с 32:
      :до 47       *
------:------------:
.ао1


------------------------------
* Использование зоны приводит к нарушению работы системы.
** Зона пересекается с рабочей памятью интерпретатора "Бейсик", может испортиться программа пользователя или ее переменные. Использование зоны следует предусмотреть при размещении программы языка "Бейсик" /или переменных (см. Фг.00012-02 33 02).
*** Зона пересекается с рабочей памятью ДОС. Для ее использования необходимо отключить ДОС (директива отключения: 36<57A.57D M).
3.2.8. Задание  цвета текста
С помощью команды "NO" можно при работе в цветном текстовом режиме задать цвет текста, который выводится на экран ВКУ, где N - цифра от 0 до 7. Цвета нумеруются с 0 в порядке: черный, красный, зеленый, желтый, синий, фиолетовый, голубой, белый.
(* В мониторе ПЗУ используются также номера цветов ¤N0-¤N7 где N - номер (от 0 до 3) включаемой этой директивой палитры по табл.11 Фг3.032.002 ТО5.*)
3.2.9. Осмотр и изменение регистров
Содержимое регистров процессора, устанавливаемое при запуске программы по команде   "G" (см. п. 3.2.6.) можно получить, одновременно нажав клавиши УПР И Е (* латинское Р без УПР*) с последующим переводом строки.
 Для установки содержимого регистров требуемые значения набирают в порядке A (аккумулятор), X, Y (индексные регистры), P (регистр признаков), S (указатель стека), после <УПР-Е>:, например
      <УПР-Е>:00 07 40
устанавливает A,X и Y, оставляя неизменными P и S.
Если исполнение запущенной программы заканчивается возвратом, исходное содержимое регистров не изменяется. Если исполнение прерывыается по команде BRK (код команды 00), запоминается содержимое регистров на момент выполнения этой команды.
(* 3.2.10 Подключение периферийных контроллеров
Команда Х<УПР-П> выполняет запуск контроллера на разъеме Х. Дисковый контроллер при этом выполняет загрузку с установленного в нем диска, контроллер печати подключается к потоку вывода и выводит на принтер каждый байт, передаваемый на программу COUT. Нажатие <УПР-Я> при подключенном командой <УПР-П> принтере вызывает копирование текущего экрана на бумагу. Отключение контроллеров происходит при нажатии <УПР-СБР> или при выполнении команды 0<УПР-П>.*)
3.3. Программные обращения к процедурам монитора
Одной из возможностей, предоставляемых монитором, является использование его пользователем как системной библиотеки.
Ниже перечислены некоторые подпрограммы монитора.
Для использования этих подпрограмм программами пользователя необходимо выполнить команду  JSR - переход на начальный адрес подпрограммы, перед этим при необходимости задать начальные параметры (загрузив требуемые регистры и ячейки памяти).
3.3.1. Вывод символа
Подпрограмма вывода символа COUT.
Адрес подпрограммы FDE1 (*FDED*).
Выводимый символ должен быть в аккумуляторе.
COUT передает управление по адресу, лежащему в CSW (ячейки 36, 37) (*обычно это COUT1*).
3.3.2. Вывод на экран
Подпрограмма вывода на экран COUT1.
Адрес подпрограммы FDE4 (*FDF0*).
COUT1 выводит символ в текущую позицию экрана. Содержимое всех регистров не меняется. COUT1 интерпретирует следующие управляющие коды:
8D,8A - перевод строки;
88 - возврат на один символ влево;
95 - сдвиг на один символ вправо;
99 - перемещение на одну строчку вверх;
9A - перемещение на одну строчку вниз;
8C - очистка всего экрана;
9D - очистка до конца текущей строки;
9E - очистка до конца экрана;
(*85 - удаление символа под курсором;*)
(*86 - вставка пробела на место курсора;*)
87 - звуковой сигнал.
3.3.3. Установка инверсного режима
Подпрограмма установки инверсного режима SETINV.
Адрес подпрограммы FЕ7A (*FEB2*).
SETINV устанавливает инверсный режим для COUT1.
Все символы будут выводиться как черные точки на цветном фоне.
Изменяется регистр А.
В режиме 32х64 инверсным может быть только весь экран (см. п. 3.2.7).
3.3.4. Нормальный режим
Подпрограмма установки нормального режима SETNORM.
Адрес подпрограммы FE7E (*FEB5*).
SETNORM устанавливает нормальный режим для COUT1.
Символы выводятся как цветные точки на черном фоне.
Изменяется регистр А.
3.3.5. Исполнение перевода строки
Подпрограмма исполнения перевода строки CROUT.
Адрес подпрограммы FD92 (*FDE2*).
CROUT осуществляет передачу символа "перевод строки" (¤8D) подпрограмме COUT.
3.3.6. Чистка до конца экрана
Подпрограмма возврата с чисткой экрана CLREOP.
Адрес подпрограммы FC4B (*FC4D*).
CLREOP очищает экран от текущей позиции курсора до угла (конца) текстового окна.
Может быть вызвана подачей на COUT символа ¤9E (УПР-Ч, функциональная "8").
3.3.7. Шестнадцатеричная печать байта
Подпрограмма шестнадцатеричной печати байта PRBYTE.
Адрес подпрограммы FDCE (*FDCB*).
PRBYTE выводит содержимое аккумулятора в шестнадцатеричной системе. Регистр А изменяется.
3.3.8. Печать шестнадцатеричной цифры
Подпрограмма печати шестнадцатеричной цифры PRHEX.
Адрес подпрограммы FDD7 (*FDD4*).
PRHEX выводит последние четыре бита аккумулятора как одну шестнадцатеричную цифру. Содержимое аккумулятора изменяется.
3.3.9. Печать содержимого регистров А и Х
Подпрограмма печати содержимого регистров А и Х PRNTAX.
Адрес подпрограммы F93C (*F921*).
PRNTAX  выводит содержимое регистров А и X как четыре шестнадцатеричные цифры.
Аккумулятор содержит первый выводимый байт, регистр Х - второй. Содержимое аккумулятора не сохраняется.
3.3.10. Печать пробелов
Подпрограмма печати двух пробелов PRBLNK.
Адрес подпрограммы FF5A (*FF59*).

Подпрограмма печати нескольких пробелов PRBL2.
Адрес подпрограммы FF5C (*FF5B*).
PRBL2 выводит от 1 до 256 пробелов.
В регистре X должно содержаться количество выводимых пробелов. Если регистр X=00, то выводится 256 пробелов.
3.3.11. Вывод звукового сигнала
Подпрограмма вывода звукового сигнала BELL может быть вызвана подачей на COUТ символа ¤87.
Адрес подпрограммы FF3D (*FCC7*).
BELL выводит звуковой сигнал (УПР-Г).
3.3.12. Ввод входного символа
Подпрограмма ввода входного символа RDKEY.
Адрес подпрограммы FBCB (*FD21*).
RDKEY переходит к подпрограмме ввода, адрес которой лежит в ячейке KSW ( ¤38-39).
(* Обычно это программа KEYIN (см.п. 3.3.14) *).
3.3.13. Взять входной символ или РЕД-код
Подпрограмма РЕД-код или RDCHAR.
Адрес подпрограммы FB74 (*FD63*).
RDCHAR - дополнительная подпрограмма ввода, которая вводит символы, обращаясь к RDKEY (см.п. 3.3.14), и при этом интерпретирует следующие редактирующие клавиши:
"стрелка вверх" - перемещение курсора на 1 позицию вверх;
"стрелка вниз" - перемещение курсора на 1 позицию вниз;
РЕД - переход в режим свободного горизонтального перемещения (*отсутствует*);
"стрелка вправо" - перемещение на 1 позицию вправо (в свободном перемещении)(*отсутствует*);
"стрелка влево" - перемещение на 1 позицию влево (в свободном перемещении). Интерпретируемые символы не приводят к завершению программы, выполняется ожидание следующего нажатия на клавиатуре. Выход из режима свободного перемещения происходит по нажатию любой, отличной от стрелок влево и вправо, клавиши, которая при этом не вводится (*отсутствует*).
(*"F2" - удаление символа, на котором расположен курсор;*)
(*"F3" - вставка пробела на место курсора. Сдвигаемая часть строки справа от курсора заканчивается кодом очистки экрана ¤20.*)
3.3.14. Считать с клавиатуры
Подпрограмма считать с клавиатуры KEYIN.
Адрес подпрограммы FD11 (*FD24*).
KEYIN читает с клавиатуры, ожидая, пока нажмут клавишу.
После считывания  кода символа KEYIN передвигает мерцающий курсор и возвращает код символа в аккумуляторе.
Возвращаемые программами ввода с клавиатуры коды клавиш приведены в табл.2.
                                              Таблица 2
.цв
Коды клавиш
.ов
.ао0
-------------------------------------------------------------
Клавиша     Русский регистр  Латинский регистр  вместе с УПР 
           одна     с РЕГ    одна      с РЕГ    
-------------------------------------------------------------
  ;         BB       AB       BB        AB         BB
  1         B1       A1       B1        A1         B1
  2         B2       A2       B2        A2         B2
  3         B3       A3       B3        A3         B3
  4         B4       A4       B4        A4         B4
  5         B5       A5       B5        A5         B5
  6         B6       A6       B6        A6         B6
  7         B7       A7       B7        A7         B7
  8         B8       A8       B8        A8         B8
  9         B9       A9       B9        A9         B9
  0         B0       A0       B0        A0         B0
  -         AD       BD       AD        BD         AD
 'вверх'    99       99       99        99         99
 РЕД        9B       9B       9B        9B         9B
 Функ.1     90       90       90        90         90
 Функ.2     91       91       91        91         91
 Функ.3     92       92       92        92         92
  Й         6A       EA       CA        4A         8A
  Ц         63       E3       C3        43         83
  У         75       F5       D5        55         95
  К         6B       EB       CB        4B         8B
  E         65       E5       C5        45         85
  H         6E       EE       CE        4E         8E
  Г         67       E7       C7        47         87
  Ш         7B       FB       DB        5B         9B
  Щ         7D       FD       DD        5D         9D
  З         7A       FA       DA        5A         9A
  Х         68       E8       C8        48         88
  :         BA       AA       BA        AA         BA
 'влево'    88       88       88        88         88
 'вниз'     9A       9A       9A        9A         9A
 'вправо'   95       95       95        95         95
 Функ.4     93       93       93        93         93
 Функ.5     94       94       94        94         94
 Функ.6     9C       9C       9C        9C         9C
  Ф         66       E6       C6        46         86
  Ы         79       F9       C9        49         99
  В         77       F7       D7        57         97
  А         61       E1       C1        41         81
  П         70       F0       D0        50         90
  Р         72       F2       D2        52         92
  О         6F       EF       CF        4F         8F
  Л         6C       EC       CC        4C         8C
  Д         64       E4       C4        44         84
  Ж         76       F6       D6        56         96
  Э         7C       FC       DC        5C         9C
  .         AB       BB       AB        BB         AB
Пер. строки 8D       8D       8D        8D         8D
 Функ.7     9D       9D       9D        9D         9D
 Функ.8     9E       9E       9E        9E         9E
 Функ.9     9F       9F       9F        9F         9F
  Я         71       F1       D1        51         91
  Ч         7E       FE       DE        5E         9E
  С         73       F3       D3        53         93
  М         6D       ED       CD        4D         8D
  И         69       E9       C9        49         89
  Т         74       F4       D4        54         94
  Ь         78       F8       D8        58         98
  Б         62       E2       C2        42         82
  Ю         60       E0       C0        40         80
  ,         AC       BC       AC        BC         AC
  /         AF       BF       AF        BF         AF
  Ъ         7F       FF       DF        5F         9F
 Функ.0     81       81       81        81         81
 Функ.'.'   82       82       82        82         82
 Функ.'='   83       83       83        83         83
 Пробел     A0       A0       A0        A0         A0
 F1         84       84       84        84         84
 F2         85       85       85        85         85
 F3         86       86       86        86         86
--------------------------------------------------------
3.3.15. Взять входную строку
Подпрограмма взять входную строку GETLN.
Адрес подпрограммы FD72 (*FD96*).
GETLN выводит приглашение из ячейки  ¤33.
Собирает символы входной строки во входной буфер (начинающийся с адреса  ¤200), пока не встретится перевод строки.
GETLNZ - вход в подпрограмму GETLN с адресом FD6F (*FD93*).
Перед тем, как передать управление GETLN, курсор устанавливается в начало строки.
3.3.16. Задержка 
Подпрограмма задержки WAIT.
Адрес подпрограммы FB94 (*FB94, ¤FCA8*).
WAIT производит временную задержку, а затем  передает управление основной программе.
Время задержки зависит от содержимого аккумулятора.
Если в аккумуляторе содержится величина А, то время задержки будет:
.цв
(5*А*А+27*А+26)/2 мкс.
.ов
WAIT возвращается с обнуленным аккумулятором.
Регистры Х и Y не изменяются.
3.3.17 Включение экрана
Подпрограмма включения режима отображения SWSCRN.
Адрес подпрограммы F800 (*F800*).
Выполняется включение заданного графического или текстового режима отображения на экране ВКУ. Для текстовых режимов выполняется настройка программ монитора на вывод в зону памяти, соответствующую заданному экрану.
В регистре Х задается тип режима: 1 - графика 128х128; 2 - текст; 3 - графика 256х256. (* X не значащий, включает только текстовые режимы.*)
В аккумуляторе задается номер экрана от 1 до 3 для графических 128х128 и 256х256 режимов, от 1 до 63 для текстовых и графического 64х64 режимов.
Текстовые экраны с номерами от 1 до 31 - цветные 32х32 символа, с номерами от 33 до 63 - монохроматические 32х64 символа.
Размещение текстовых экранов описано в п. 3.2.7, графические 128х128 и 256х256 экраны занимают по 4 текстовых.
[an error occurred while processing this directive]