Uknc RT-11 monrt

From Felixl.com
Jump to navigationJump to search
  




			ОПЕРАЦИОННАЯ СИСТЕМА RT11

			     МОНИТОР СИСТЕМЫ


			 Руководство программиста
			      00010-01 33 01


				АННОТАЦИЯ

		В  документе описываются  функции и характеристики  мониторов
	системы ФОДОС и программные запросы как  способ обращения  к монитора
	с целью выполнения тех или  иных действий, необходимых для выполнения
	программы.
		Перед   использованием    настоящего   документа   необходимо
	ознакомиться со следующими  документами:
		-"Операционная система ФОДОС. Общее описание. 00010-01 31 01"
		-"Операционная  система ФОДОС. Монитор  системы.  Руководство
	оператора. 00010-01 34 01"�

				 	- 3 -

				СОДЕРЖАНИЕ.

		1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ...................4  
		2. СТРУКТУРА ИНФОРМАЦИИ НА НОСИТЕЛЯХ.................5  
		   2.1. Структура системного тома....................5  
		   2.2. Структура тома магнитной ленты...............8   
		   2.3. Организация ввода-вывода.....................9   
		3. ХАРАКТЕРИСТИКИ МОНИТОРА..........................11  
		   3.1. Особые области памяти RT11..................12  
		   3.2. Алгоритмы свопинга..........................16  
		   3.3. Ячейки фиксированного смещения..............17  
		   3.4. Подпрограммы завершения.....................21  
		4. ОБРАЩЕНИЕ К МОНИТОРУ, ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ..22  
		   4.1. Программные запросы.........................22  
		5. СООБЩЕНИЯ........................................81  
		ПРИЛОЖЕНИЕ .........................................94  


				 	- 4 -

		Ядром   операционной   системы   RT11   является  монитор.  В
	зависимости от  конструкции  технических   средств   и   потребностей
	пользователь   может   использовать  один из  пяти  мониторов   RT11:
	RM - исполняющий  монитор  реального  времени,  резидентный в памяти;
	SJ(CD) - однозадачный монитор реального времени; FB - фоново-операти-
	вный монитор  реального  времени, обслуживающий две (до 8) задачи  на 
	комплексах с памятью до 56K; XM - монитор управления памятью до 248 K
	для не более 8 задач реального времени; TS - многопользовательский
	монитор разделения времени для комплексов с памятью 96 - 248 K, обслу
	живающий до 30 задач.

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

		Монитор RT11 предназначен для управления работой операционной
	системы и обеспечивает выполнение следующих функций:

		- обработка прерываний;
		- обработка ошибок;
		- связь с оператором;
		- обслуживание программных запросов;
		- управление файлами;
		- обеспечение одновременного выполнения двух задач
	пользователя (для монитора SJ - одной задачи);
		- обслуживание таймера.
		Условия  применения  монитора  RT11 аналогичны  условиям при-
	менения операционной системы в целом ( документ "Операционная система
	ФОДОС. Общее описание").
		Примечание. Для работы монитора системы необходимо наличие на
	системном томе файла свопинга SWAP.SYS. Для мониторов:
			FB,XM - 26 блоков
			CD,DS - 2 блока при SET USR NOSWAP
			   SJ - 24 блока�

					- 5 -

			2. СТРУКТУРА ИНФОРМАЦИИ НА НОСИТЕЛЯХ.

			2.1. Структура системного тома.

		Системный том RT11 содержит все компоненты системы -загрузчик
	системы,  монитор,  драйверы  устройств,  системные и вспомагательные
	программы. Структура системного тома  предусматривает запись перечис-
	ленных компонентов по блокам:

	 Блок:		 		Содержимое:
	  0			Начало загрузчика системы
	  1			Идентификация тома
	 2-5			Продолжение загрузчика системы
	 6-(Nx2) + 5		Каталог тома, N - число сегментов
				каталога
	 (Nx2) + 6 - до конца	Файлы

	Примечание:  1блок=256.  слов=512.  байт.  1сегмент  каталога=2блока.
	На  дисках  DX, MX  каталог=1сегмент. На  дисках  двойной  плотности,
	винчестере - каталог больше.

			2.1.1. Виды файлов.

		RT11  использует  "соприкасающуюся"  структуру  файлов. Такая
	структура   означает,  что  каждый  файл  на  томе  составляет группу
	смежных  физических  блоков  (т.е. файл  длиной  в  9 блоков занимает
	9 смежных блоков на томе). Различают следующие виды файлов:
	> постоянный файл-файл,который был открыт по .ENTER,а затем закрыт по
	 .CLOSE;файлы,включенные в листинг каталога тома,являются постоянными
	> временный  файл-файл, который  был  открыт по .ENTER,  но не закрыт
	  по .CLOSЕ; если  выполнен запрос  .CLOSE, временный файл становится
	  постоянным, при этом, если на томе уже существует постоянный файл с
	  тем же именем,то он стирается; если запрос.CLOSE  не  используется,
	  то  временный  файл  рассматривается как  пустой  файл;   временный
	  файл стирается,если создается новый временный файл с тем же именем;
	> пустой файл; т.е. область диска не используется.В листинге каталога
	  он определен как <Unused> N {неиспользуемый}, где N-длина свободной
	  области в блоках.�

					- 6 -

			2.1.2. Структура каталога тома.

		Каталог тома любого устройства  справочной  структуры состоит
	из  сегментов  и начинается с  6-го блока тома. Длина каталога  может
	изменяться  от 1. до 31. сегмента ( устанавливается при инициализации
	тома).
		Каждый сегмент занимает два блока  (512. слов)  и состоит  из
	заголовка сегмента и записей каталога.

			2.1.2.1. Формат заголовка сегмента.

		Заголовок  сегмента находится  в  начале сегмента  и занимает
	первые пять слов:

	    1	Число сегментов справочника (1<= N <=31.)
	    2	Номер  сегмента, логически  связанного с данным.  Если  0,  в
		справочнике  нет  сегментов,  логически  связанных с  данным.
	    3	Номер последнего  открытого  сегмента  (возрастает  при  фор-
		мировании  нового  сегмента).  Это  слово используется только 
		в первом сегменте
	    4	Число  дополнительных  байтов  в  записи   справочника
	    5	Номер  блока  тома,  с  которого  начинаются файлы, описанные
		в этом сегменте

		Примечание: в системе RT11 при непрерывной (без стирания) за-
	писи  файлов  на  том и заполнении сегмента  каталога, осуществляется
	перезапись  примерно   половины  файлов  в  свободный ( если он есть)
	сегмент каталога. В результате между сегментами устанавливается логи-
	ческая связь, которая отражается во втором слове  заголовка  сегмента
	и используется монитором для поиска файлов на томе. Логически связан-
	ные сегменты  не обязательно  являются  физически смежными  на  томе.�

					- 7 -

			2.1.2.2. Формат записи каталога.

		Запись каталога представляет собой  основную его  структурную
	единицу и содержит информацию  о  файле,  хранящемся на данном томе.
	Структура записи:

	 слово:
	   0	слово состояния
	   1	имя файла RADIX-50
	   2	имя файла RADIX-50
	   3	тип файла (расширение) RADIX-50
	   4	длина файла
	   5	номер задания/номер канала
	   6	дата (начало счисления=1 января 1972 г.)
	   *
	   *	дополнительные слова
	   *

	Нечетный байт слова состояния:			RAD50:
	1	временный файл				/ FP/
	2	свободная область			/ L2/
	4	постоянный файл				/ YX/
	10	конец сегмента				/AKH/
	204	защищенный (PROTECTED) файл		/UD2/

	Четный байт слова состояния - резервный.

		Имя и тип файла-последовательность символов  RADIX-50 ( кроме
	пробела, табуляции, знака $). Длина файла равна  числу занимаемых  им
	блоков. Попытки чтения/записи за пределами файла вызовут ошибку.Номер
	задания и номер канала устанавливаются  только  для временных файлов:
		При работе с монитором SJ четный байт содержит  номер канала,
	на котором открыт данный файл.При выполнении запроса .CLOSE указанный
	номер канала позволяет однозначно определить искомый временный  файл;
		При работе с монитором  FB четный байт содержит номер канала,
	нечетный байт - номер задания, открывшего данный файл. При выполнении
	запроса .CLOSE однозначное определение искомого временного файла обес
	печивается номером задания, т.к. задания  могут иметь временные файлы
	на своих каналах, имеющих одинаковые номера.�

					- 8 -

		Дата создания файла  заносится при выполнении запроса .ENTER:

		 15 14  10 9	5 4	 0 
		+--+------+------+--------+
		|  |месяц |день  |год-117 |
		+--+------+------+--------+

		Формат даты:
	15-й разряд не используется.
	Месяцы нумеруются от 1 до 12, дни - от 1 до 31.
	в RAD50 /ED2/ высвечивается как -BAD-
	
	
		Запись  справочника  имеет  длину 7 слов. Однако,пользователь
	может  разместить  дополнительные  слова  в  записи  справочника  при
	инициализации тома. RT11 не обслуживает дополнительные слова в записи
	справочника, поэтому пользователь должен  предусмотреть доступ к ним.

			2.1.2.3. Число файлов тома.

		Число файлов,которые можно  записать на томе зависит от числа
	сегментов каталога тома и числа дополнительных слов в записи каталога.
		Общее число записей в каталоге определяется выражением:
			31*[(512-5)/(7+N)]
	где N - число дополнительных слов в записи.
		Если  N=0, общее  число записей в каталоге ( файлов на томе )
	2232. . При  размещении дополнительных  слов в записи каталога  число
	файлов, хранящихся на томе, уменьшается.1 сегмент содержит до 145.фай
	лов.

			2.2. Структура тома магнитной ленты.

		RT11 использует магнитную ленту, структура которой предусмат-
	ривает идентификацию данных  с  помощью различных  маркеров и  меток.
	Каждый файл на   магнитной  ленте записывается  по блокам длиной 256.
	слов и имеет следующий формат:�

					- 9 -

		HDRn* --- данные ---* EOFn*
	где  HDR -идентификатор метки начала файла;
	     EOF -идентификатор метки конца файла;
	       n -номер метки;
	       * -ленточная марка.
	Том,содержащий один файл,имеет формат:
		VOL1 HDR1 * --- данные --- * EOF1 **
	где  VOL1 - идентификатор метки тома с номером 1.
		Том,содержащий два файла,имеет формат:
		VOL1NDR1* - - данные - - *EOF1*NDR2* - - данные - - *EOF2**
		Две  ленточные  марки,  следующие  за  меткой   конца  файла,
	указывают логический конец ленты, обозначаемый  LEOT.
		Лента, на  которой не записаны  файлы данных имеет  следующий
	формат:			VOL1**
		Каждая  метка  VOLn,  HDRn  или  EOFn  занимает  полный  блок
	длиной 256.  слов, в котором используются первые 80 байтов.
		Идентификатор  и номер метки  записываются по  байтам в кодах
	КОИ-7.
		Блок метки  тома  содержит  идентификацию  тома,  блок  метки
	начала файла  HDRn - имя файла, порядковый номер файла на ленте, дату
	создания и код системы.
		Блок метки конца файла  EOFn  построен аналогично блоку HDRn.
	Кроме характеристик блока  HDRn , указанных выше, блок  EOFn содержит
	десятичное число блоков в данном файле в кодах КОИ-7.
		Магнитная лента,содержащая в начале тома начальный загрузчик,
	имеет следующий формат:
	    VOL1 BOOT HDR1* - - данные - - *EOF1* ...* ,
	где   BOOT - блок  длиной 256.  слов, содержащий начальный загрузчик.

			2.3. Организация ввода-вывода.

		Управление операциями ввода-вывода в системе RT11 осуществля-
	ется монитором с помощью драйверов устройств.
		Драйверы устройств являются резидентными на системном устрой-
	стве и загружаются в оперативную память по запросу из программы	поль-
	зователя или по команде KMON.�

					- 10 -

		Все запросы на ввод-вывод данных интерпретируются монитором и
	адресуются драйверу соответствующего устройства. Если запрос не может
	быть удовлетворен по каким-либо причинам, он автоматически ставится в
	очередь.
			2.3.1. Элемент очереди ввода-вывода.
		
		Очередь ввода-вывода состоит из связанных элементов по 7 (SJ/
	FB-мониторы) или 10 (XM/TS) слов каждый. Элемент очереди  формируется
	монитором при поступлении запросов на ввод-вывод и используется драй-
	вером устройства для выполнения операции. Структура элемента очереди:

		+-----------------------------------------------+
		|	Адрес следующего элемента очереди	|
		|	Адрес слова состояния канала		|
		|	Номер начального блока файла		|     
		|		на томе				|
		|-------+-----------------------+---------------|
		| Номер	|	 Номер привода	|    Код	|
		|задания|	  устройства	|  функции	|
		|-------+-----------------------+---------------|
		|	Адрес буфера памяти			|
		|	Счетчик слов				|
		|	Функция завершения			|
		+-----------------------------------------------+

		1-е слово элемента очереди - адрес следующего элемента очере-
	ди,если он есть (иначе - 0).<Q.LINK=0;Q$LINK=-4>
		2-е слово - адрес слова состояния канала,на котором осуществ-
	ляется операция ввода-вывода.<Q.CSW=2;Q$CSW=-2>
		3-е слово -номер начального блока файла на томе для устройств
	файловой структуры (иначе - 0).<Q.BLKN=4;Q$BLKN=0>
		4-е слово:разряды 0-7 - код функции,которую необходимо выпол-
	нить; разряды 8-10 - номер привода устройства, на котором выполняется
	операция;разряды 11-13 - номер задания:0 -фоновое, 2 - основное.
	<Q.FUNC=6;Q$FUNC=2><Q.JNUM=Q.UNIT=7;Q$JNUM=Q$UNIT=3>
		5-е слово - адрес буфера оперативной памяти для запрашиваемой
	операции.<Q.BUFF=10;Q$BUFF=4>
		6-е слово - счетчик слов; <0 для операции записи, >0 для чте-
	ния и 0 - для поиска файла на томе.<Q.WCNT=12;Q$WCNT=6>�

					- 11 -
		7-е слово - адрес подпрограммы завершения:
		0 - синхронный режим ввода-вывода, управление - задаче  после
		    завершения операции;
		1 - модифицированный синхронный режим ввода-вывода,управление
		    возвращается задаче после запуска операции;
		Четный адрес - адрес подпрограммы завершения для асинхронного
	режима ввода-вывода.<Q.COMP=14;Q$COMP=10>
	(в угловых скобках-мнемоники и соотв. смещения, определяемые макроко-
	мандой .QELDF; смещения, содержащие в имени точку-относительно начала
	элемента  очереди, содержащие "$" -относительно  третьего слова). Для
	XM/TS мониторов Q.PAR=16; Q$PAR=12 содержит  значение, записываемое в
	PAR1(XM-монитор) или  PAR6(TS-монитор)  для получения  доступа  через
	Q.BUFF к данным в буфере программы;PAR-один из регистров адреса стра-
	ницы диспетчера памяти; длина элемента очереди в байтах Q.ELNG=16 для
	SJ/FB мониторов, Q.ELNG=24-для XM/TS.
		В системе RT11 предусмотрена  очередь ввода-вывода  из одного
	элемента ( в режиме FB для каждого задания - свой  элемент очереди ).
		Этого  достаточно для  работы в режиме синхронного выполнения
	операций ввода-вывода.Для работы в других режимах пользователь должен
	предусмотреть в своей  программе создание дополнительных элементов по
	запросу .QSET .


			3. ХАРАКТЕРИСТИКИ МОНИТОРА.

		Монитор системы RT11 имеет модульную структуру и включает сле
	дующие программные компоненты:
		- Резидентный монотор RMON;
		- Клавиатурный монотор KMON;
		- Программу обслуживания пользователя USR и Интерпретатор ко-
	мандной строки CSI;
		- Драйверы устройств.
		Работа RT11 под управлением монитора SJ обеспечивает выполне-
	ние одной  программы пользователя, под управлением  мониторов FB и XM
	обеспечивает  одновременное  выполнение двух  независимых программ, и
	кроме того, в режиме XM обеспечивает доступ к памяти объемом до 124 К
	слов.�

				 	- 12 -

			3.1. Особые области памяти RT11.

		Область памяти  для векторов  прерывания  и некоторые  ячейки
	RMON являются особыми для функционирования операционной системы. Одни
	ячейки в этих областях могут использоваться программами пользователя,
	другие использовать запрещается.

			3.1.1. Адреса векторов прерывания.

		Ячейки памяти  от 0 до 476 используются операционной системой
	и программы пользователя не должны изменять содержимого этих ячеек. В
	противном случае система должна быть перезагружена,или программа дол-
	жна восстановить первоначальное содержимое этих ячеек.
	В  таблице перечислены адреса векторов прерывания и типы  прерываний:

	+---------------------------------------------------------------+
	|Вектор	|	Тип прерывания					|
	|  4,6	| Прерывание по ошибке обращения к каналу.В процессоре	|
	|	| BM3 обращение к слову по нечетному адресу		|
	| 10,12	| Прерывание по резервной команде			|
	| 30,32	| Прерывание по команде EMT				|
	| 34,36	| Прерывание по команде TRAP				|
	| 60,62	| Прерывание от клавиатуры терминала			|
	| 64,66	| Прерывание от печати терминала			|
	|100,102| Прерывание от таймера					|
	|134,136| Прерывание от платы CDR				|
	|200,202| Прерывание от принтера				|
	|220,222| Прерывание от дисков на базе СМ-5400			|
	|224,226| Прерывание от магнитной ленты на базе ИЗОТ  5003	|
	|250,252| Прерывание от Диспетчепра памяти			|
	|254,256| Прерывание от дисков DP (29 Мбайт)			|
	|264,266| Прерывание от гибких дисков				|
	| 70,72 | ФС							|
	| 74,76 | ПЛ							|
	+---------------------------------------------------------------+
		Перезапуск монитора осуществляется с 0-го адреса.�

				 	- 13 -

			3.1.2. Область связей системы.

		Для хранения информации о выполняющейся программе,а также ин-
	формации,используемой только монитором,система использует байты 40-57
      
 		SET USR NOSWAP			  SET USR SWAP
                --------------			----------------- 
 		  KMON				   KMON          
	        --------------			----------------- 
 		  RMON				   RMON
	@#54->  --------------		@#54->	-----------------
		  драйверы			   драйверы
		--------------			-----------------
		   USR
   266(@#54)->	--------------
		..............
	1000	--------------		1000->	-----------------
		 векторы,                    
   		стек и т.п.                
	0	--------------		  0	-----------------

	Системная область связи:

	 Байт		Назначение и использование  

	 40,41	Пусковой адрес программы. При создании файлов в форматах .SAV
		и .REL, Редактор связей записывает в это слово пусковой адрес
		программы.

	 42,43	Первоначальный адрес стека. По умолчанию равен 1000

	 44,45	Слово состояния задания. Одни разряды устанавливаются монито-
		ром, другие  могут  устанавливаться или очищаться  программой
		пользователя.

	 46,47	Адрес загрузки USR. Это слово может содержать любой действите
		льный адрес программы пользователя. Если 0, то USR загружает-
		ся по адресу,записанному в ячейке фиксированного смещения 266
		RMON�

					- 14 -

	 50,51	Адрес верхней границы памяти для программы.В этом слове мони-
		тор содержит наивысший адрес,который может использовать прог-
		рамма пользователя. Адрес верхней границы может модифицирова-
		ться с помощью запроса .SETTOP

	 52	Код ошибки EMT. Eсли при выполнении программного запроса про-
		исходит ошибка,  то  устанавливается С - разряд и код  ошибки
		записывается в байт 52

	 53	Код  ошибки  программы пользователя USERRB.  Используется при
		работе с косвенными файлами. Если в процессе выполнения прог-
		рамма  пользователя обнаружит условия ошибки, она может сооб-
		щить об этом, используя байт 53.  KMON проверяет этот байт по
		окончании  работы  программы. При возникновении ошибки,  KMON
		может аннулировать использующийся косвенный файл. Это предот-
		вращает от  получения неправильных результатов, которые могут
		возникнуть,если выполнение команд косвенного файла зависит от
		успешного завершения предыдущих команд. Программа может прек-
		ратить свою работу в одном из следующих состояний:
			- нормально ;
			- предупреждение ;
			- ошибка ;
			- фатальная ошибка .
		Состояние программы считается "нормально", если при ее выпол-
		нении не возникает ошибок. Состояние "предупреждение" указыва
		ет на то,что имело место предупреждающее сообщение и выполне-
		ние программы завершилось до конца. Состояние "ошибка" указы-
		вает на то, что  произошла ошибка  и  выполнение программы не
		завершилось.Такое состояние используется,если программа созда
		ет  выходной  файл, содержащий  ошибки. Состояние  "фатальная
		ошибка" указывает на то, что  программа  не  создала выходные
		данные и все команды или операции, зависящие от данных, будут
		выполнены неправильно.Такая ошибка может возникнуть в случае,
		если для завершения выполнения программы недостаточно памяти.�

					- 15 -

	54,55	Начальный адрес Резидентного монитора.Это слово не должно из-
		меняться пользователем.
							
		Разряд		Назначение	@#44
		-------------------------------------------------------------
 
		15	Разряд свопинга USR (только в режиме SJ). Moнитор ус-
			танавливает этот разряд,если программа не требует сво
			пинга USR

	TT$LC	14*	Разряд нижнего регистра. Когда  разряд установлен, то
			запрещается автоматическое преобразование кодов  сим-
			волов нижнего регистра в коды верхнего регистра

		13*	Разряд перезапуска. Если разряд установлен, программа
			может быть перезапущена по команде REENTER

	TT$SPC	12*	Разряд специального режима работы с  терминалом. Если
			этот разряд установлен,он указывает на то,что програм
			ма находится в специальном клавиатурном режиме

		11*	Разряд передачи строки KMON. Если разряд установлен и
			выполнение  программы  пользователя заканчивается  по
			.EXIT , то KMON осуществляет выборку команды из ячеек
			500 - 776

		10*	Разряд виртуального отображения ( только в режиме XM)

		 9	Оверлейный разряд. Устанавливается Редактором связей,
			если программа имеет оверлейную структуру

		 8	Разряд CHAIN.Этот разряд устанавливатся в том случае,
			если программа была загружена по запросу CHAIN

		 7*	Разряд останова по ошибке (только в режиме SJ).  Если
			установлен,то в случае ошибки в операции ввода-вывода
			произойдет останов системы

		 6*	Разряд запрещения состояния ожидания терминала.Исполь
			зуется в режиме FB

		5-3	Резервируются для системных целей.

		2-0	Резервные для системы.
	Примечание: Разряды, отмеченные в таблице звездочкой, устанавливаются
	программой пользователя.�

					- 16 -

		Разряд		Значение	@#53
		-------------------------------------------------------------

		7-4	Резервные.  Не должны использоваться программой поль-
			зователя.
		 3	Фатальная ошибка
		 2	Ошибка
		 1	Предупреждение
		 0	Нормально

			3.2. Алгоритм свопинга.

		Программные запросы в зависимости от того, требуют  они нали-
	чия USR в памяти или нет, делятся на 2 категории. Запрос,который тре-
	бует наличия USR в памяти, может  также потребовать, чтобы часть про-
	граммы  пользователя временно удалялась из памяти  и  запоминалась на
	диске. В этом  случае USR загружается в освободившуюся область. В ре-
	жиме XM не требуется свопинг  USR, т.к. USR является резидентной. При
	работе с RT11 необходимо помнить следующее:
		1) если в фоновой  программе запрос .SETTOP  запрашивает вер-
	хний адрес программе  выше начального адреса USR, то при  обращении к
	USR требуется свопинг;
		2) если  пользователь меняет содержимое @#46, то RT11 исполь-
	зует содержимое этого  слова в процессе свопинга для USR; если содер-
	жимое  ячейки  46 нулевое,  USR загружается  с адреса  установленного
	системой.
		Если  свопинг  не нужен,  содержимое  ячейки 46 игнорируется.
	Основное задание всегда должно иметь адрес в ячейке 46, независимо от
	того, осуществляется или нет свопинг USR. Указывая адрес в ячейке 46,
	нужно соблюдать осторожность: поскольку монитор SJ не проверяет допу-
	стимость  адреса для  свопинга  USR,  то при свопинге может произойти
	наложение областей памяти, используемых для свопинга  USR и RMON. Это
	приводит к нарушению нормального функционирования системы.�

					- 17 -

		4. Не допускается  определять адрес для свопинга USR в преде-
	лах следующих областей: стека  программы, блока аргументов для вызова
	USR, буферов ввода-вывода, драйверов устройств или подпрограмм завер-
	шения,использующихся при вызове USR.

			3.3. Ячейки фиксированного смещения
		Существует ряд  ячеек, которые имееют фиксированное положение
	относительно начала Резидентного монитора. Информация в  этих ячейках
	может быть использована программами пользователя:

	Смещение			Содержимое
	---------------------------------------------------------------------

	 266		Адрес загрузки  USR ( если ячейка 46  содержит 0 )

	 270		Адрес подпрограммы монитора  управления очередью вво-
			да-вывода. Обращение к подпрограмме осуществляется из
			драйверов устройств по окончании операции ввода-выво-
			да

	 272		SPUSR::

	 274		Номер привода системного устройства (устройства,с ко-
			торого последний раз была загружена система)

	 276		Номер версии монитора

	 300		Слово конфигурации системы. Разряды слова несут инфо-
			рмацию об  аппаратной конфигурации системы и ее прог-
			раммных компонентах.

	 302		SCROLL::

	 304		Адрес регистра состояния клавиатуры терминала

	 306		Адрес регистра буфера клавиатуры терминала

	 310		Адрес регистра состояния печати терминала

	 312		Адрес регистра буфера печати терминала�

					- 18 -

	 314		Максимально  допустимая  длина файла (предоставляемая
			системой,если соответствующий аргумент запроса .ENTER
			равен нулю). Она  может  быть установлена  программой
			пользователя или с помощью программы  PATCH. Значение
			по умолчанию равно 177777

	 316		E16LST::.WORD LST16-$RMON

	 324		Адрес подпрограммы обработки запроса .SYNCH. Подпрог-
			раммы пользователя обработки прерываний могут исполь-
			зовать его для синхронизации с заданиями, которые они
			обслуживают

	 326-350	карта загрузки

	 352		USRLOC::

	 354		GTVECT:: вектор графтерминала

	 356		счетчик ошибок

	 360		Адрес подпрограммы записи в слово состояния процессо-
			ра (PSW).  Вызов этой  подпрограммы осуществляется по
			запросу .MTPS

	 362		Адрес подпрограммв выборки из PSW. Этот адрес исполь-
			зуется запросом .MFPS

	 364		SYINDX::

	 366		Слово состояния косвенного файла

	 370		Слово расширенной конфигурации.Это слово содержит ин-
			формацию о дополнительном оборудовании

	 372		Слово параметров генерации. Содержит информацию о до-
			полнительных возможностях системы

	 374		Размер USR в байтах�

					- 19 -

	 377		Глубина вложения косвенных файлов (значение по умол-
			чанию равно 3). Значение  может  быть модифицировано
			для изменения глубины вложения косвенных файлов

	 376		Байт уровня ошибки

	 400		.WORD EMTDON-$RMON

	 402		.WORD $FORK-$RMON

	 404		.WORD $PNAME-$RMON

	 406,410,412	имя монитора в RAD50

	 414

	 416

	 417

	 420		размер ОЗУ

	 424

	Ячейки 304-313 содержат адреса регистров терминала и не используются
	в мультитерминальном режиме.�

					- 20 -

	Слово конфигурации системы:

	 Разряд		Значение
	---------------------------------------------------------------------

	 0		0 - монитор SJ; 1 - монитор FB, если разряд 12 не ус-
			тановлен; если установлен - монитор XM

	 3		1 - фоновым заданием управляет BATCH

	 5		1 - таймер с частотой 50 Гц

	 6		1 - Процессор плавающей запятой ЭВМ "Электроника-79"

	 7		0 - основного задания в памяти нет
			1 - основное задание в памяти

	 9		1 - USR является резидентной по SET USR NOSWAP

	11		1 - процессор "Электроника 60"

	12		1 - система работает под управлением монитора XM

	13,14		    используются системой

	15		1 - имеется таймер

	
	Слово расширенной конфигурации:

	 Разряд		Значение
	---------------------------------------------------------------------

	 0		1 - сверхбыстрая память (КЭШ - память)

	 1		1 - паритетность

	 8		1 - блок расширенной арифметики ЭВМ "Электроника-60М"

	14		1 - процессор ЭВМ "Электроника 79"�

					- 21 -			
	
	Слово параметров генерации:

	 Разряд		Значение
	---------------------------------------------------------------------

	 0		1 - регистрация ошибок

	 1		1 - обслуживание расширенной памяти

	 2		1 - обслуживание ожидания готовности устройств

	 9		1 - обслуживание паритетности

	10		1 - обслуживание запросов  .MRKT и .CMKT  монитора SJ

	13		1 - мультитерминальное обслуживание
	
	
			3.4. Подпрограммы завершения.

		Подпрограммы завершения создаются пользователем и  запускают-
	ся сразу же  после окончания  некоторых внешних  операций. Управление 
	подпрограмме завершения передается после операции ввода-вывода данных
	или через определенный интервал  времени. На входе в подпрограмму за-
	вершения R0 содержит слово состояния канала для операции, а R1 -вось-
	меричный номер канала для операции. В режиме SJ подпрограммы заверше-
	ния являются асинхронными и могут прерывать друг друга. В  режимах FB
	и XM подпрограммы  завершения не прерывают друг друга, а организуются
	в очередь и ждут окончания выполнения соответствующего задания.
		При создании подпрограмм завершения необходимо соблюдать сле-
	дующие правила:
		1) в подпрограммах  завершения  нельзя  использовать запросы,
	требующие USR ;
		2) подпрограммы  завершения  не  должны находиться  в области
	памяти, которая используется для USR ;
		3) выход из  подпрограммы завершения - по RTS PC ;
		4) если подпрограмма  завершения использует регистры кроме R0
	и R1, она должна запомнить их содержимое после входа в подпрограмму и
	восстановить их перед выходом.�

					- 22 -

			4.ОБРАЩЕНИЕ К МОНИТОРУ.ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ.

		Обращение  к монитору  RT11  осуществляется по командам KMON,
	вводимых с системного терминала, и через программные запросы.В данном
	разделе описан формат и назначение всех программных запросов операци-
	онной системы. Обслуживание  программных запросов, помеченных в доку-
	менте, как вариант SJ (FB,XM), не реализовано в данной  версии  RT11.

			4.1. Программные запросы.

		Программные запросы  представляют собой ассемблерные макроко-
	манды, которые обрабатываются монитором во время выполнения программы
	Основа программного запроса - команда EMT. Она используется для пере-
	дачи информации монитору на выполнение определенной операции.Все про-
	граммные запросы начинаются символом "."
		Существуют два формата программных запросов:
		1.  .PRGREQ  area, arg1,...,argn
		2.  .PRGREQ  arg1, arg2,...,argn
		В первом  формате аргумент area является указателем блока ар-
	гументов  arg1,...,argn. Программные запросы такого  формата вызывают
	генерацию команды EMT 375. Если аргумент  area в макрокоманде не ука-
	зан, в качества указателя блока аргументов  используется  регистр R0.
		Программные  запросы второго  формата  вызывают генерацию ко-
	манды EMT 374 или одной из команд EMT 340-357.
		Все аргументы программных запросов  служат в качестве  источ-
	ника команды MOV.
		Например,
				.PRGREQ
	транслируется,как
				MOV CHAR,R0
				EMT 374

		Пример записи программного запроса:

			.GTLIN	#LINE,#PROMPT
			  .
			  .
			  .
		PROMPT:	.ASCIZ	/Введите строку>/<200>
		.EVEN
		LINE:	.BLKB	81.
		.EVEN�

					- 23 -

		При выполнении запроса содержимое регистров, кроме R0, не из-
	меняется и указатель стека, за исключением запросов CSI, не переуста-
	навливается.

			4.1.1. Аргументы программных запросов.

		Аргументы программных  запросов являются входными данными для
	монитора RT11.

			4.1.1.1. Номер канала.

		Номер канала (chan) представляет собой логический идентифика-
	тор файла и  используется  монитором  при выполнении операций.  Номер
	канала может быть от 0 до 255. (0-377).
		Каждый открытый файл монитор логически связывает с определен-
	ным каналом.Для обращения к файлу достаточно указать номер его канала

			4.1.1.2. Блок устройства.

		Блок устройства  (dblk)  представляет собой блок информации в
	кодах Radix-50, который содержит имя устройства, имя и тип файла.Дли-
	на блока - 4 слова.
		Пример:
			.RAD50 /MY0/
			.RAD50 /FIL/
			.RAD50 /E  /
			.RAD50 /TYP/

		Имя устройства,имя и  тип файла должны быть левоопределенными
	в каждом поле операнда (т.е. непосредственно следовать за ограничите-
	лем операнда директивы .RAD50 ).
		Допускается  запись  блока  устройства  .RAD50  /DK FILE TYP/
	При этом  каждое  поле операнда  отделяется  друг от  друга пробелом.�

					- 24 -

	Аргументы программных запросов:

	Обозначение	Аргумент
	---------------------------------------------------------------------

	 addr		Адрес; значение зависит от используемого запроса
	 area		Адрес блока аргументов EMT
	 blk		Номер блока относительно начала файла,с которого
			должна выполняться операция ввода-вывода
	 buf		Адрес буфера памяти
	 cblk		Адрес блока из пяти слов, в котором хранится информа-
			ция о состоянии канала
	 chan		Номер канала
	 crtn		Точка входа подпрограммы завершения
	 dblk		Адрес блока устройства
	 num		Число, зависит от используемого запроса
	 wcnt		Счетчик слов
	 seqn		Последовательный номер файла для операций с магнитной
			лентой

			4.1.1.3. Блок аргументов EMT.

		Четный байт  1-го слова содержит  номер канала,определенный в
	макрокоманде. Если номер канала не требуется, то четный байт содержит
	0.Нечетный байт 1-го слова блока содержит функциональный код макроко-
	манды. Остальные слова блока содержат аргументы,определенные в макро-
	команде:

			-------------------------
		area:    Функциональный |  Номер
			 код		|  канала
			-------------------------
			      1-й аргумент
			-------------------------
			      2-й аргумент
			-------------------------
				.
				.
				.
			-------------------------
			     n-ый аргумент
			-------------------------�

					- 25 -
	
			4.1.2. Сообщения об ошибках.

		При обработке запросов, монитор может обнаружить ошибки.
	Программные запросы информируют об этом пользователя, используя бит C
	байт ошибок (@#52) и сообщения монитора. Бит C очищается после выпол-
	нения запроса и устанавливается при ошибке. Для обнаружения ошибки за
	запросом должна следовать команда BCS или BCC. Когда установлен бит C
	байт ошибок содержит код ошибки. В Приложении перечислены коды ошибок
	программных запросов и причины,вызывающие эти ошибки.

			4.1.3. Типы программных запросов.

		Существуют три типа программных запросов:
		> запросы для операций с файлами;
		> запросы для организации ввода-вывода данных;
		> запросы общего назначения.
		Запросы использующиеся только в режиме FB помечены звездочкой
	только в XM помечены двумя звездочками - игнорируются в режиме SJ.  В
	программе пользователя достаточно указать первые шесть символов	имени
	программного запроса.
					
  	Программный  Код  Функ-	Назначение
	 запрос	     EMT  цион.
			   код
	---------------------------------------------------------------------

	.CHCOPY	*    375   13	Открывает канал для ввода и логически связыва
				ет его с открытым каналом другого задания

	.CLOSE	     374    6	Закрывает канал и освобождает его для исполь-
				зования в других операциях

	.DELETE	     375    0	Стирает  файл с  тома  указанного  устройства

	.ENTER	     375    2	Резервирует обдасть на томе указанного устрой
				ства для создания нового файла

	.LOOKUP	     375    1	Открывает существующий файл  для ввода  и/или
				вывода на указанном канале�

					- 26 -

	.PURGE	     374    3	Освобождает канал

	.RENAME	     375    4	Переименовывает файл.  Недопустим в операциях
				с магнитной лентой

	.REOPEN	     375    6	Обеспечивает восстановление параметров, кото-
				рые  запоминались  по  запросу  .SAVESTATUS и
				повторно  открывает  канал  для  ввода-вывода

	.SAVESTATUS  375    5	Запоминает параметры состояния открытого фай-
				ла в памяти и освобождает канал

	.READ	     375   10	Передает данные по  указанному каналу в буфер
				памяти и возвращает управление программе поль
				зователя, как  только запрос на чтение данных
				будет поставлен в очередь ввода-вывода

	.READC	     375   10	Передает данные по  указанному каналу в буфер
				памяти и возвращает управление программе поль
				зователя, как  только запрос на чтение данных
				будет поставлен в очередь ввода-вывода. После
				окончания чтения, управление передается подп-
				рограмме завершения

	.READW	     375   10	Передает данные по указанному уканалу в буфер
				памяти и возвращает управление программе поль
				зователя после окончания операции

	.WRITE	     375   11	Передает  данные по указанному каналу на уст-
				ройство и  возвращает   управление  программе
				пользователя, как  только  запрос на передачу
				данных  будет поставлен в очередь вода-вывода

	.WRITC	     375   11	Передает данные  по указанному каналу на уст-
				ройство  и  возвращает  управление  программе
				пользователя, как  только  запрос на передачу
				данных будет поставлен в очередь ввода-вывода
				После окончания записи, управление передается
				подпрограмме завершения�

					- 27 -

	.WRITW	     375   11	Передает данные по  указанному каналу на уст-
				ройство  и  возвращает  управление  программе
				пользователя после  окончания передачи данных

	.RCVD	*		Принимает сообщения или  данные, передаваемые
	.RCVDC	*    375   26	другой программой. Аналогичны запросам
	.RCVDW	*		.READ , .READC , .READW

	.SDAT	*    375   25	Передает сообщения или данные другой програм-
	.SDATC	*		ме. Аналогичны запросам
	.SDATW	*		.WRITE , .WRITC , .WRITW

	.TTYIN	     340   -	Передает один символ из буфера терминала в R0
	.TTINR

	.TTYOUT	     341   -	Передает один символ из R0  в буфер терминала
	.TTOUTR

	.PRINT	     351   -	Выдает   на  печать  строку   символов  КОИ-7

	.MTIN	*    374   37	В мультитерминальном режиме аналогично .TTYIN

	.MTOUT	*    374   37	В мультитерминальном режиме аналогично .TTYOU

	.MTPRNT	*    374   37	В мультитерминальном режиме аналогично .PRINT

	.SPFUN	*    375   32	Выполняет специальные  функции  для магнитных
				лент и гибких дисков

	.CDFN	     375   15	Определяет дополнительные каналы для операций
				ввода-вывода

	.CHAIN	     374   10	Передает  управление другой фоновой программе

	.CRAW	**   374   36	Создает окно виртуального адреса

	.CRRG	**   374   36	Создает динамическую область физическ. памяти

	.CMKT	     375   23	Аннулирует один или несколько запросов  .MRKT�

					- 28 -

	.CNTXSW	*    375   33	Определяет ячейки памяти для операции переклю
				чения контекста

	.CSIGEN	     344   -	Вызывает работу Интерпретатора командной стро
				ки в общем режиме

	.CSISPC	     345   -	Вызывает работу Интерпретатора командной стро
				ки в специальном режиме

	.CSTAT	*    375   27	Позволяет  получить  информацию  о  состоянии
				канала

	.DATE	     374   12	Пересылает текущую дату в регистр R0

	.DEVICE	*    375   14	Позволяет  запретить прерывание от устройства
				в режиме FB после  окончания выполнения прог-
				раммы

	.DSTATUS     342   -	Позволяет  получить  информацию  о  состоянии
				устройства

	.ELAW	**   374   36	Аннулирует окно виртуального адреса

	.ELRG	**   374   36	Аннулирует динамическую область физической па
				мяти и делает ее  свободной для использования
				другим заданием

	.EXIT	     350   -	Завершает выполнение программы пользователя и
				передает  управление  Клавиатурному  монитору

	.FETCH	     343   -	Загружает драйвер устройства

	.GMCX	**   374   36	Пересылает  программе  информацию о состоянии
				окна

	.GTIM	     375   21	Определяет текущее время дня

	.GTJB	     375   20	Определяет параметры выполняемого задания

	.GTLIN	     345   -	Принимает  входную строку с терминала или из
				косвенного файла�

					- 29 -

	.GVAL	376	34	Пересылает  в  R0 содержимое указанной ячейки
				монитора

	.HERR	374	5	Отменяет действие запроса .SERR

	.HRESET 357	-	Прекращает все операции ввода-вывода и выпол-
				няет функции запроса .SRESET

	.INTEN  -	-	Сообщает  монитору о том,что произошло преры-
				вание от устройства и устанавливает приоритет
				процессора на соответствующий уровень

	.LOCK	346	-	Делает программу USR  резидентной в памяти до
				тех  пор, пока  не  будет  выполнен .EXIT или
				.UNLOCK . Если необходимо,свопирует программу
				пользователя

	.MAP**	374	36	Отображает предварительно созданное окно вир-
				туального адреса

	.MFPS	-	-	Выбирает содержимое PSW

	.MRKT	375	22	Планирует запуск  подпрограммы завершения че-
				рез определенный интервал времени

	.MTATCH* 374	37	Устанавливает  связь между заданием и опреде-
				ленным терминалом

	.MTDTCH* 374	37	Прерывает  связь указанного терминала с зада-
				нием и освобождает его для использования дру-
				гим заданием

	.MTSET*	374	37	Устанавливает  и  модифицирует характеристики
				терминала  в  мультитерминальном  режиме

	.MTGET*	374	37	Определяет  состояние   указанного  терминала

	.MTPS	-		Устанавливает PSW�

					- 30 -

	.MTRCTO* 374	37	Обеспечивает   вывод  на  указанный  терминал

	.MWAIT*	374	11	Переводит  текущее  задание в состояние  ожи-
				дания до завершения передачи данных

	.PROTECT* 375	31	Закрепляет  один  из  векторов  (адреса от  0
				до 476) за данным заданием

	.QSET	353	-	Устанавливает  размер  очереди  ввода -вывода
				для монитора

	.RCTRLO	355	-	Обеспечивает вывод на терминал

	.RELEAS	343	-	Удаляет драйвер устройства из памяти

	.RSUM*	374	2	Возобновляет выполнение задания, которое было
				прервано по запросу .SPND

	.SCCA	374	35	Позволяет блокировать выполнение команды СУ/С

	.SERR	374	4	Блокирует  прерывание программы при обнаруже-
				нии монитором условий ошибок

	.SETTOP	354	-	Определяет  верхнюю границу памяти для выпол-
				няемого задания

	.SFPA	375	30	Устанавливает  в программе пользователя адрес
				подпрограммы  обработки  прерывания  от блока 
				плавающей запятой (БПЗ)

	.SPND*	374	1	Приостанавливает выполнение задания 

	.SRESET	352	-	Восстанавливает каналы ввода -вывода и удаля-
				ет драйверы устройств из памяти

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

					- 31 -

	.TLOCK	374	7	Определяет, используется  ли USR в данный мо-
				мент другим заданием. Если USR не использует-
				ся, то выполняется .LOCK

	.TRPSET	375	3	Устанавливает  обработку  прерываний по 4-ому
				или 10-ому векторам в программе  пользователя

	.TWAIT*	375	24	Приостанавливает  выполнение  задания на ука-
				занный интервал времени

	.UNLOCK	347	-	Освобождает  программу USR, если ранее не был
				выполнен запрос .LOCK и,если необходимо,вновь
				загружает программу пользователя

	.UNMAP** 374	36	Отменяет действие запроса .MAP

	.UNPROTECT 374	31	Отменяет действие запроса .PROTECT

	.WAIT	374	0	Ожидает завершения операции ввода-вывода на
				указанном канале


		Для выполнения некоторых программных запросов необходимо,что-
	бы программа  монитора USR находилась  в  оперативной памяти.  .CLOSE
	на устройствах нефайловой структуры (LP: ,TT: ,PC: , и т.д.)  не тре-
	бует наличия USR в памяти.
		Программа USR не является реентерабельной; если USR использу-
	ется одним заданием (в режиме FB), другое задание,требующее USR,будет
	ждать его освобождения.�

					- 32 -

	Программный			Требование USR                        
	запрос			--------------------------------------------
				Режим SJ  Режим FB  Режим XM
	--------------------------------------------------------------------
	.CDFN			да*	  нет		нет
	.CHAIN			нет	  нет		нет		
	.CHCOPY			-	  нет		нет
	.CLOSE   1)		да	  да		да
	.CMKT			-	  нет		нет
	.CNTXSW			-	  нет		нет
	.CSIGEN			да	  да		да
	.CSISPC			да	  да		да
	.CSTAT			-	  нет		нет
	.DATE			нет	  нет		нет
	.DELETE			да	  да		да
	.DEVICE			-	  нет		нет
	.DSTATUS		да	  да		да
	.ENTER			да	  да		да
	.EXIT			да	  да		да
	.FETCH/.RELEAS		да	  да		да
	.SFPA			нет	  нет		нет
	.GTIM			нет	  нет		нет
	.GTJB			-	  нет		нет
	.GTLIN			да*	  да		да
	.GVAL			нет	  нет		нет
	.HERR/.SERR		нет	  нет		нет
	.HRESET			да*	  нет		нет
	.LOCK   2)		да	  да		да
	.LOOKUP			да	  да		да
	.MRKT			-	  нет		нет
	.MTGET			-	  нет		нет
	.MTIN			-	  нет		нет
	.MTOUT			-	  нет		нет
	.MTPRNT			-	  нет		нет
	.MTSET			-	  нет		нет
	.MWAIT			-	  нет		нет
	.PRINT			нет	  нет		нет�

					- 33 -

	.PROTECT		-	  нет		нет
	.PURGE			нет	  нет		нет
	.QSET			да*	  да*		да*
	.RCTRLO			нет	  нет		нет
	.RCVD/.RCVDC/.RCVDW	-	  нет		нет
	.READ/.READC/.READW	нет	  нет		нет
	.RENAME			да	  да		да
	.REOPEN			нет	  нет		нет
	.RSUM/.SPND		-	  нет		нет
	.SAVESTATUS		нет	  нет		нет
	.SDAT/.SDATC/.SDATW	-	  нет		нет
	.SCCA			нет	  нет		нет
	.SETTOP			нет	  нет		нет
	.SPFUN			нет	  нет		нет
	.SRESET			да*	  нет		нет
	.TLOCK   3)		да	  да		да
	.TRPSET			нет	  нет		нет
	.TTIRN/.TTYIN		нет	  нет		нет
	.TTOUTR/.TTYOUT		нет	  нет		нет
	.TWAIT			-	  нет		нет
    	.UNLOCK			нет	  нет		нет
	.UNPROTECT		-	  нет		нет
	.WAIT			нет	  нет		нет
	.WRITE/.WRITC/.WRITW	нет	  нет		нет
	
		1) если канал был открыт по .ENTER
		2) если USR находится в состоянии свопинга.
		3) если USR не используется другим заданием.
		Запосы,помеченные в табл.14 звездочкой,всегда требуют загруз-
	ки новой копии USR перед их выполнением (даже, если USR в этот момент
	находится в памяти). Прочерк в графе  табл.14 означает, что запрос не 
	используется в данном режиме.�

					- 34 -

			4.1.4. Программные запросы для операций с файлами

			4.1.4.1.  .CHCOPY  (режим FB)			

		Запрос .CHCOPY  открывает  канал для ввода данных и логически
	связывает его с файлом другого задания открытым для ввода или вывода.
	Запрос  может использоваться  как основной так и фоновой программами.
	Запрос .CHCOPY допустим только для файлов, которые  находятся на дис-
	ках; одноко система не обнаружит ошибки, если используется другое ус-
	тройство.Для того,чтобы закрыть канал, открытый по .CHCOPY необходимо
	использовать запросы .CLOSE или .PURGE.
		Формат макрокоманды
		.CHCORY area, chan, ochan
	где area - адрес блока из двух слов аргументов EMT;
	    chan - номер канала,используемого заданием для чтения данных;
	    ochan- номер канала другого задания.

			4.1.4.2.  .CLOSE

		Запрос .CLOSE  завершает действие на указанном канале и осво-
	бождает его для использования в другой операции.Для выполнения запро-
	са  драйвер соответствующего устройства  должен  находиться в памяти.
		Формат макрокоманды
		.CLOSE chan
		Для того, чтобы сделать файл постоянным на томе необходимо на
	соответствующем канале, открытом для вывода,выполнить запрос .CLOSE .
	Запрос .CLOSE на неоткрытом канале игнорируется.
		.CLOSE , выполняемый на канале, который был открыт по  .ENTER
	вызывает корректировку справочника  устройства для определения  файла
	как постоянного на этом устройстве. Если файл открыт по .LOOKUP ,  то
	корректировка справочника не происходит.
		Если устройство, связанное с указанным  каналом, уже содержит 
	файл с тем же именем  и  типом, что и вновь созданный файл, то старая 
	копия файла стирается, когда новый файл становится постоянным.
		Примечание. Монитор  информирует  программу  пользователя  об
	ошибке при выполнении запроса .CLOSE  только в  том  случае, если  до 
	этого был выполнен запрос .SERR .�

					- 35 -

			4.1.4.3.  .DELETE

		Запрос .DELETE стирает файл с указанного устройства.
	.DELETE недопустим для магнитных лент.
		Формат макрокоманды
		.DELETE area, chan, dblk
	где area - адрес блока из двух слов аргументов EMT;
	    dblk - адрес блока устройства, в котором описан файл для операции
	стирания.
		Примечания:
		1. Обращение к открытому  каналу приводит к ошибке.
		2. Стертый  файл в листинге справочника устройства будет опи-
	сан как неиспользуемая  область (UNUSED) того же размера.
		3. Запрос .DELETE на устройствах нефайловой структуры игнори-
	руется.
		4. При выполнении .DELETE  необходимо, чтобы драйвер соответ-
	ствующего устройства находился в памяти.
		5. После выполнения  .DELETE ,  указанный канал освобождается 
	для дальнейшего использования.

			4.1.4.4.  .ENTER

		Запрос  .ENTER  резервирует область на определенном устройст-
	ве и создает в справочнике этого устройства временную запись для ука-
	занного файла. По запросу .ENTER монитор идентифицирует номер канала,
	определенного в запросе,с указанным файлом. Заметим,что если програм-
	ма имеет оверлейную структуру, то  15-й канал используется оверлейным
	драйвером  и  не  должен  модифицироваться  программой  пользователя.
		Формат макрокоманды
		.ENTER area, chan, dblk, len, seqn
	где area - адрес блока из 4-х слов аргументов EMT;
	    dblk - адрес блока устройства, в котором описан создаваемый файл;
	    len  - длина файла;
	    seqn - последовательный номер файла для магнитной ленты;�

					- 36 -

	Значение		Действие монитора
	аргумента len
	---------------------------------------------------------------------
	0		Отводит для файла половину наибольшей свободной обла-
			сти  или  полностью  вторую по величине свободную об-
			ласть  на  томе,  в зависимости от того, какая из них 
			больше
	М		Отводит для файла М блоков
	-1		Отводит  для  файла  наибольшую  свободную область на
			томе

	Значение		Действие монитора
	аргумента seqn
	---------------------------------------------------------------------
	0		Перематывает  магнитную ленту и производит поиск мет-
			ки LEOT (логический конец ленты)
	n		Устанавливает  магнитную ленту  в положение, соответ-
			ствующее файлу с последовательным номером n
	-1		Производит поиск LEOT
	-2		Перематывает магнитную  ленту и производит поиск LEOT
			или файла с тем же  именем, что и  вновь  создаваемый
			файл
	
		Файл, созданный по  .ENTNR не является постоянным до тех пор,
	пока  на соответствующем  канале  не  будет  выполнен запрос .CLOSE .
	Запросы .LOOKUP  и .SAVESTATUS недействительны для файлов, которые не
	являются постоянными. Однако чтение такого файла возможно посредством
	обращения  к номеру соответствующего  блока.  Если на соответствующем
	канале  выполняется .CLOSE , то любой существующий на томе постоянный
	файл с тем же именем и типом стирается и новый файл становится посто-
	янным. Хотя  область  для файла резервируется  при выполнении ENTER ,
	фактическая длина файла определяется после выполнения .CLOSE .
		Каждое задание может иметь до 256. одновременно открытых фай-
	лов. Если требуется,все 256. файлов могут быть открыты для вывода по-
	средством .ENTER . Для выполнения .ENTER необходимо,чтобы драйвер со-
	ответствующего устройства был в памяти. После выполнения .ENTER реги-
	стр  R0 будет содержать  размер области тома, отведенной для создания 
	нового файла.�
					- 37 -

			4.1.4.5.  .LOOKUP

		Запрос  .LOOKUP связывает указанный канал с устройством и/или
	существующим файлом для выполнения операций ввода-вывода.Используемый 
	канал будет 'занят' до тех пор, пока не будет выполнен один из следу-
	ющих запросов: .CLOSE, .SAVESTATUS, .SRESET, .HRESET, .PURGE, .CSIGEN
	(если номер канала в диапазоне от 0 до 10 ).
		Заметим, что  если программа  имеет оверлейную  структуру, то 
	15-ый канал  используется оверлейным драйвером и не должен изменяться
	программой пользователя.
		Если  первое слово  имени файла в блоке устройства (dblk) со-
	держит нуль и устройство есть устройство файловой структуры, то абсо-
	лютный блок 0 этого  устройства определяется  как  'начало файла'  (в
	этом случае говорят о нефайловом  .LOOKUP) .
 	Этот метод допускает ввод-вывод для  любого физического блока на уст-
	ройстве. Если имя файла определено для устройства нефайловой структу-
	ры, то имя файла игтнорируется.
		Для выполнения  .LOOKUP  драйвер  соответствующего устройства 
	должен быть в памяти.После выполнения  .LOOKUP , регистр R0 будет со-
	держать длину открытого файла в блоках. После выполнения  .LOOKUP для
	устройств  несправочной  структуры, регистр R0 будет содержать  ноль.
		Формат макрокоманды
		.LOOKUP area, chan, dblk, seqn
	где area - адрес блока из 3-х слов аргументов ЕМТ;
	    seqn - последовательный номер файла для магнитной ленты;

	Значение		Действие монитора
	аргумента seqn
	---------------------------------------------------------------------
	-1		Производит  поиск файла  с текущего положения магнит-
			ной ленты
	 0		Перематывает магнитную ленту и производит поиск файла
	n (n>0)		Устанавливает  магнитную ленту в положение соответст-
			вующее файлу с последовательным номером n�

					- 38 -

			4.1.4.6.  .PURGE

		Запрос .RURGE освобождает указанный канал для использования в 
	другой операции без  выполнения каких-либо функций запросов .HRESET ,
	.SRESET, .SAVESTATUS или .CLOSE . Временный файл открытый на этом ка-
	нале по .ENTER ,аннулируется. Запрос .PURGE на свободном канале игно-
	рируется.
		Формат макрокоманды
		.PURGE chan

			4.1.4.7.  .RENAME

		Запрос  RENAME  изменяет имя  файла (недопустим в операциях с
	магнитной лентой).
		Формат макрокоманды
		RENAME area, chan, dblk
	где area - адрес блока из двух слов аргументов ЕМТ;
	    dblk - адрес блока,содержащего имя устройства и имя файла,которые
	требуется  изменить, и  новое  имя  устройства  и  имя файла  в кодах
	Radix-50.
		Пример:
		.RENAME  #AREA, #7, #DBLK
		BCS RNMERR
		.
		.
		.
	DBLK: .RAD50 /DX1 OLDFIL MAC/
	      .RAD50 /DX1 NEWFIL MAC/
		Если файл с тем же именем,что и новое,уже существует на томе,
	то он  стирается. Повторное определение  имени устройства DX1 в новой
	спецификации  файла  необходимо для правильного выполнения операции и 
	не должно опускаться. После выполнения .RENAME используемый канал ос-
	вобождается.Запрос .RENAME  требует, чтобы  драйвер  соответствующего
	устройства был в памяти перед выполнением операции.�

					- 39 -

			4.1.4.8.  .REOPEN

		Запрос .REOPEN  повторно связывает  указанный канал с файлом,
	для которого был выполнен запрос .SAVESTATUS.Совместное использование
	запросов .SAVESTATUS и .REOREN требуется для одновременного обращения
	к большому числу файлов. Файлы открываются по .LOOKUP  и параметры их
	состояния  запоминаются  по .SAVESTATUS .  Когда требуются  данные из 
	файла, .REOPEN обеспечивает программе возможность чтения этих данных.
	Не является обязательным выполнение .REOPEN на том же канале,на кото-
	ром были выполнены .LOOKUP  и .SAVESTATUS .
		Формат макрокоманды
		.REOPEN area, chan, sblk
	где area - адрес блока из 2-х слов ЕМТ;
	    sblk - адрес блока из 5-ти слов,где запоминается информация о
	состоянии канала.

			4.1.4.9.  .SAVESTATUS

		Запрос .SAVESTATUS  запоминает пять слов информации о состоя-
	нии канала в указанной пользователем области памяти. Эти слова содер-
	жат полную информацию,которая требуется операционной системе для точ-
	ного определения файла.  После выполнения .SAVESTATUS указанный канал 
	освобождается. Если необходимо получить данные по этому каналу,то ис-
	пользуется запрос .REOPEN .Запрос .SAVESTATUS  может использоваться в
	том случае,если файл был  открыт  по .LOOKUP  .Если  был  использован
	.ENTER ,  то .SAVESTATUS игнорируется и  генерируется ошибка.  Запрос
	.SAVESTATUS  недопустим в  операциях с файлами, которые  находятся на 
	магнитной ленте.
		Запросы .SAVESTATUS и  .REOPEN   используются  для  работы  с
	большим числом файлов при ограниченном числе каналов.
		Формат макрокоманды
		.SAVESTATUS area, chan, cblk
	где area - адрес блока из 2-х слов аргументов ЕМТ;
	    cblk - адрес блока из 5-ти слов,в который будет записана информа-
	ция о состоянии канала; адрес должен быть указан в пределах программы
	пользователя.�

					- 40 -

			4.1.5. Программные запросы для организации
				ввода-вывода 

			4.1.5.1.  .READ, .READC, .READW

		Система RT11  предусматривает  три режима выполнения операций
	ввода-вывода:
		.READ/.WRITE
		.READS/.WRITC
		.READW/.WRITW
		При использовании запросов  .READ и .READC должны  быть опре-
	делены дополнительные элементы для очереди ввода-вывода (п.4.1.6.31.)
		Запрос .READ используется для передачи  определенного количе-
	ства слов по указанному  каналу в буфер памяти. Управление передается
	программе  пользователя немедленно после  начала  выполнения  запроса
	.READ . После завершения передачи данных никаких действий не происхо-
	дит.
	       Формат макрокоманды
		.READ area, chan, buf, wcnt, blk
	где area - адрес блока из 5-ти слов аргументов ЕМТ;
	    buf - адрес буфера для чтения данных;
	    wcnt- количество слов для чтения;
	    blk - номер блока для операции чтения;  если был использован фай-
	ловый .LOOKUP , то blk - номер блока относительно начала файла;  если
	был использован нефайловый .LOOKUP , то blk - абсолютный номер  блока
	устройства; программа  пользователя  должна модифицировать  blk перед 
	его повторным использованием.
		Когда программе пользователя  нужно выполнить чтение  данных,
	может быть использован запрос .WAIT .  Это гарантирует то, что данные 
	будут прочитаны  полностью. Если  во  время передачи данных произошла 
	ошибка, запрос .WAIT сообщает о ней.
		Запрос .READC  передает  определенное количество слов по ука-
	занному каналу в память.Управление программе пользователя будет пере-
	дано сразу после начала выполнения .READC . Попытка чтения данных по-
	сле конца файла вызывает передачу  управления  вызывающей программе с
	установлением С-разряда и записью нуля в байт ошибок (52-байт). После
	выполнения .READC  управление будет передано подпрограмме завершения,�

					- 41 -

	адрес которой указан в запросе.	Если в подпрограмме завершения выпол-
	няется команда RTS PC ,то управление возвращается программе пользова-
	теля.
		Формат макрокоманды
		.READC area, chan, buf, wcnt, crtn, blk
	где area - адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера для чтения данных;
	    wcnt -количество слов для чтения;
	    crtn -адрес подпрограммы  завершения  (адрес должен  быть  больше
	500);
	    blk  -см. .READ
		При запуске подпрограммы завершения:
		1)  регистр R0 содержит слово состояния канала; если в R0 ус-
	тановлен  разряд 0 , то произошла аппаратная ошибка во время передачи
	данных;
		2) регистр R1 содержит номер канала  для операции; эта инфор-
	мация необходима, когда одна и та  же подпрограмма завершения исполь-
	зуется в нескольких операциях.
		Запрос .READW  передает  определенное количество слов по ука-
	занному каналу в память. Управление передается программе пользователя
	после выполнения запроса .READW  или при обнаружении ошибки.
		Формат макрокоманды
		READW area, chan, buf, wcnt, blk
	где area -адрес блока из 5-ти слов аргументов ЕМТ;
	    wcnt -количество слов  для чтения  (каждый  запрос может передать
	максимально 32К слов);
	    blk  -см. запрос .READ
		Если  после завершения запроса будет установлен  С-разряд, то 
	это указывает на то, что  на канале произошла аппаратная ошибка. Если
	ошибки  не было,  то данные находятся  в памяти, начиная с указанного 
	адреса. В режиме FB одно из  заданий может выполняться в то время как
	другое задание ожидает завершения операции.

			4.1.5.2.  .WRITE, .WRITC, .WRITW

	       При использовании запросов .WRITE и .WRITC должны быть опреде-
	лены дополнительные элементы для очереди ввода-вывода (п.4.1.6.31.).�

					- 42 -

		Запрос .WRITE передает указанное количество слов из памяти по
	указанному каналу. Управление программе пользователя передается сразу
	же после того, как запрос будет поставлен в очередь.
		Формат макрокоманды
		.WRITE area, chan, buf, wcnt,blk
	где area -адрес блока из 5-ти слов аргументоа ЕМТ;
	    buf  -адрес буфера памяти,который используется для вывода;
	    wcnt -количество слов для записи;
	    blk  -номер  блока  для операции записи; если используется файло-
	вый .LOOKUP  или  .ENTER , то blk - номер блока  относительно  начала
	файла; если был использован  нефайловый .LOOKUP или .ENTER , то blk -
	абсолютный  номер блока устройства; программа пользователя должна мо-
	дифицировать blk перед его повторным использованием.
		Запрос .WRITC  передает заданное количество слов из памяти по
	указанному каналу.Управление передается программе пользователя немед-
	ленно после начала выполнения .WRITC .После выполнения запроса управ-
	ление будет передано подпрограмме завершения.По команде RTS PC управ-
	ление возвращается программе пользователя.
		Формат макрокоманды
		.WRITC area, chan, buf, wcnt, crtn, blk
	где area -адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера памяти,который используется для вывода;
	    wcnt -количество слов для записи;
	    crtn -адрес подпрограммы завершения;
	    blk  -см. запос .WRITE .
		О содержимом  регистров R0 и R1 (при запуске подпрограммы за-
	вершения) см.п.4.1.5.1.
		Запрос .WRITW  передает заданное количество слов из памяти по
	указанному каналу. Управление передается программе пользователя после
	завершения .WRITW .
		Формат макрокоманды
		.WRITW area, chan, buf, wcnt, blk
	где area - адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера,который используется для вывода;
	    wcnt -количество слов для записи;
	    blk  -см.запрос .WRITE .�

					- 43 -

			4.1.5.3.  .RCVD, .RCVDC, .RCVDW  (режим FB).

		Существуют три формы запроса получения данных,которые исполь-
	зуются вместе с запросами .SDAT . Запросы .RCVD  аналогичны  запросам
	.READ , но в отличие от них осуществляют прием данных из  другой про-
	граммы, а не с устройства. При использовании запросов .RCVD  и  RCVDC 
	должны быть определены дополнительные  элементы для очереди ввода-вы-
	вода (п.4.1.6.31).
		Запрос .RCVD используется для получения данных или сообщений,
	посылаемых другой программой. Управление вызывающей программе переда-
	ется  сразу же после начала выполнения запроса .RCVD .При необходимо-
	сти, с .RCVD используется запрос .MWAIT ,который задерживает выполне-
	ние программы до окончания операции.
		Формат макрокоманды:
		.RCVD area, buf, wcnt
	где area -адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера для сообщений (данных);
	    wcnt -количество передаваемых слов.
		После выполнения монитором запроса .RCVD ,первое слово буфера
	(buf) будет содержать действительное количество переданных слов.Таким
	образом,область памяти для приема данных должна быть,по крайней мере,
	на одно слово больше размера передаваемого сообщения.
		Комбинация .SDAT/ .RCVD  может быть использована для передачи 
	как нескольких слов, так и целого буфера. Операция по  запросу  .RCVD
	заканчивается  только после выполнения  .SDAT  из  другой  программы.
		Запрос .RCVDC  осуществляет  прием данных и запускает подпро-
	грамму завершения после получения сообщения (аналогично .READC) .
		Формат макрокоманды
		.RCVDC area, buf, wcnt, crtn
	где crtn -адрес подпрограммы завершения.
		Запрос .RCVDW  осуществляет  прием данных и ожидает окончания
	операции. Выполнение вызывающей программы  задерживается до окончания
	передачи сообщения другой программой.
		Формат макрокоманды
		.RCVDW area, buf, wcnt
		Как и в .RCVD , первое слово буфера для .RCVDC и .RSVDW будет
	содержать действительное количество переданных слов.�

					- 44 -

			4.1.5.4.  .SDAT, .SDATC, .SDATW (режим FB)

		Запросы .SDAT, .SDATC, .SDATW используются вместе с запросами
	.RCVD, .RCVDC, .RCVDW для передачи сообщений или  данных между  прог-
	раммами под управлением мониторов FB или XM .
		Запросы  .SDAT,  .SDATC,  SDATW  аналогично  запросам .WRITE,
	.WRITC, .WRITW ,только осуществляют передачу данных не на устройство,
	а другой программе. При использовании запросов .SDAT и .SDATC  должны
	быть определены  дополнительные  элементы  для  очереди  ввода-вывода 
	(п.4.1.6.31).
		Формат макрокоманды
		.SDAT area, buf, wcnt
	где area -адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;
	    wcnt -количество слов для передачи.
		Формат макрокоманды
		.SDATC area, buf, wcnt, crtn
	где area -адрес блока из 5-ти слов аргументов ЕМТ;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;
	    wcnt -количество слов для передачи;
	    crtn -адрес подпрограммы завершения.
		Формат макрокоманды
		.SDATW area, buf, wcnt
	где area -адрес блока из 5-ти слов аргументоа ЕМТ;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;
	    wcnt -количество слов для передачи.

			4.1.5.5.  .TTYIN, .TTINR

		Запросы .TTYIN и .TTINR  используются для передачи символов с
	терминала в программу пользователя.
		Макрорасширение для .TTYIN :
		ЕМТ 340
		BCS .-2
		Макрорасширение для .TTINR :
		EMT 340�

					- 45 -

		Запрос .TTYIN циклится  в ожидании  подачи символа или строки 
	символов,в то время как пользователь может ожидать,или продолжать вы-
	полнение программы, используя .TTINR .Если по  завершению  выполнения
	.TTINR  устанавливает С-разряд, то это значит, что в буфере терминала 
	символ отсутствует  (пользователь еще не напечатал его).  В режиме FB
	.TTINR не устанавливает  С-разряд, если не установлен 6-ой  разряд  в 
	слове состояния задания (PSW).
		Существует два режима ввода с терминала.Режим ввода определя-
	ется содержимым  12-го разряда в PSW. Если  содержимое 12-го  разряда 
	нуль,то говорят об общем режиме ввода-вывода.В этом режиме выполняют-
	ся следующие действия:
		1) монитор обеспечивает 'эхо' всем символам,вводимым с терми-
	нала;
		2) стирание символов  и строк осуществляется с помощью команд
	ЗБ и СУ/U  соответственно;
		3) для  передачи  символов программе  необходимо подать ВК  ,
	ПС  или команды СУ/Z или СУ/C ;возврат каретки и перевод строки также
	передаются программе пользователя.
		Если  12-ый разряд  в  PSW  равен единице, то устанавлмвается 
	специальный режим  ввода-вывода. В этом режиме  выполняются следующие
	действия:
		1) монитор не выдает 'эхо' символам,вводимым с терминала;кро-
	ме СУ/C и СУ/D ;
		2) СУ/U и ЗБ не выполняют своих функций;
		3) символы сразу же передаются программе пользователя.
		В специальном  режиме программа пользователя  должна сама вы-
	полнять печать вводимых символов, если это необходимо (исключение со-
	ставляют СУ/C и СУ/D ).
		12-ый разряд в PSW должен устанавливаться  программой пользо-
	вателя. Этот разряд очищается, если  управление передается  монитору.
		Действия СУ/F и СУ/B не зависят от содержимого 12-го разряда.
		Команды СУ/S и СУ/Q выполняются монитором,если только в режи-
	ме FB ранее не была выполнена команда SET TT NOPAGE .
		Если в режиме FB сделан запрос ввода,а символа нет в наличии,
	то выполнение программы блокируется до тех пор,пока в буфере ввода не 
	появится символ.Это справедливо для TTYIN и TTINR и не зависит от ре-
	жима ввода. Для того,чтобы продолжить выполнение программы (и обеспе-
	чить установку С- разряда в случае отсутствия символа в буфере ввода)
	необходимо установить перед .TTINR  6-й разряд PSW.  6-й разряд  очи-
	щается после окончания выполнения программы.�

					- 46 -

		Запрос .TTYIN не  обслуживает  косвенные файлы. Для этой цели
	необходимо воспользоваться запросом .GTLIN .
		Формат макрокоманды
		.TTYIN char
		.TTINR
	где char -адрес ячейки, куда пересылается код вводимого символа; если
	char указан в запросе,то код пересылается в указанную ячейку и в R0 ;
	если char не указан,то в R0 .

			4.1.5.6.  .TTYOUT, .TTOUTR

		Запросы  .TTYOUT, .TTOUTR  используются для передачи символов 
	из R0 в буфер терминала. Действия этих  запросов аналогичны действиям
	запросов .TTYIN, .TTINR .Если буфер терминала полон,то запрос .TTYOUT
	ожидает появления в  буфере свободного  места для выводимого символа,
	тогда как .TTOUTR не ожидает свободного места и символ, находящийся в
	R0 , на терминал не выводится. Если после завершения .TTOUTR устанав-
	ливает С-разряд, то это говорит о том,что в буфере нет свободного ме-
	ста и символ не был выведен на терминал.В режиме FB запрос .TTOUTR не
	устанавливает С-разряд;выполение программы блокируется до появления в
	буфере свободного места. Для того,чтобы продолжить выполнение програм
	мы и обеспечить установку С-разряда, необходимо в ССЗ установить 6-ой
	разряд.
		Если в основном задании установлен 6-ой разряд в ССЗ,то запро
	сы .TTYIN и .TTYOUT будут вызывать блокировку фонового задания.Каждое
	задание в основном или  фоновом режиме  имеет свое собственное ССЗ ,и
	поэтому они могут использовать различные режимы работы терминала неза
	висимо друг от друга.
		Формат макрокоманды
		.TTYOUT char
		.TTOUTR
	где char -адрес ячейки, содержащей код символа, который будет пересы-
	латься в R0  с последующим выводом на терминал; если  char не указан,
	на терминал выводится содержимое R0 .�

					- 47 -

			4.1.5.7.  .PRINT

		Запрос .PRINT вызывает печать строки символов КОИ-7  на  сис-
	темном терминале.
		В  режиме FB  каждому сообщению может предшествовать побужда-
	ющий знак B> или F> , в зависимости от того,какое задание его печата-
	ет ( B> -фоновое, F> -основное). Это происходит в случае переключения
	системного терминала на обслуживание другого задания.
		Строка текста, которая выводится на печать,может оканчиваться
	как нулевым (0) байтом, так и байтом 200.В первом случае,в отличии от 
	второго, вывод автоматически заканчивается  ВК и ПС .
		Управление возвращается программе пользователя после того,как
	все символы будут записаны в буфер вывода монитора.
		Основное задание печатает сообщение  сразу же, независимо  от 
	состояния фонового задания.
		Таким образом, для печати срочных  сообщений должен использо-
	ваться запрос .PRINT , а не .TTYIN или .TTYOUT .
		Если фоновое задание  печатает побуждающий  знак и звездочку,
	то  системный терминал  будет принадлежать ему и запросы  .TTYOUT  из
	основного  задания выполняться  не будут, пока  для фонового не будет
	выполнено  ВК .
		Формат макрокоманды
		.PRINT addr
	где addr -адрес строки,которую необходимо напечатать.

			4.1.5.8.  .MTIN (вариант FB и XM )

		Запрос.MTIN является мультитерминальной формой запроса.TTYIN.
	Запрос .MTIN пересылает знак из буфера ввода монитора в буфер,указан-
	ный  пользователем.  Терминал должен  быть логически связан с текущим
	заданием. Если запрос выполнен успешно, то модифицированный адрес бу-
	фера пользователя будет записан в R0. Если разряд TCBIT  установлен в
	слове M.TSTS (п.4.1.6.26.), то запрос .MTIN устанавливает С- разряд и
	передает управление вызывающей программе, если ввод с терминала нево-
	зможен (нет строки,бит TTSPC очищен;пуст буфер ввода,бит TTSPC устано
	влен).�
					- 48 -

	В противном случае , .MTIN  будет ожидать операции ввода и,тем самым,
	выполнение задания будет приостановлено.
		Формат макрокоманды
		.MTIN area,addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес буфера пользователя;
	    unit -логический номер терминала (ЛНТ).

			4.1.5.9. .MTOUT (вариант FB и XM )

		Запрос  .MTOUT  является  мультитерминальной  формой  запроса
	.TTYOUT .Запрос .MTOUT пересылает символ из буфера пользователя в бу-
	фер вывода терминала.Терминал должен быть логически связан с заданием
	Модифицированный адрес  буфера пользователя будет записан в R0 , если
	запрос выполнен успешно. Если  в буфере ввода  нет свободного места и
	разряд TCBIT установлен в слове M.TSTS (п.4.1.6.26.), то .MTOUT	уста-
	навливает С-разряд и передает  управление вызывающей  программе. Если
	разряд TCBIT очищен, выполнение  задания приостанавливается,  пока не
	появится свободного места в буфере вывода.
		Формат макрокоманды
		.MTOUT area, addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес буфера пользователя;
	    unit -логический номер терминала.

			4.1.5.10. .MTPRNT  (вариант FB и XM )

		Запрос  .MTPRNT  является  мультитерминальной формой  запроса
	.PRINT .Он выводит строку символов на указанный терминал.
		Формат макрокоманды
		.MTPRNT area, addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес строки, которую  надо напечатать (.ASCII /line/ <200>
	или .ASCIZ /line/ );
	    unit -логический номер терминала.�

					- 49 -

			4.1.5.11.  .SPFUN 

		Запрос .SPFUN  используется главным образом драйвером магнит-
	ной  ленты  для выполнения специальных  функций, таких как перемотка,
	пропуск назад и т.д. Запрос .SPFUN  может также использоваться с гиб-
	кими дисками.
		Формат макрокоманды
		.SPFUN area, chan, func, buf, wcnt, blk[,crtn]
	где area -адрес блока из 6-ти слов аргументов ЕМТ;
	    func -код функции,которая будет выполняться;
	    buf  -адрес буфера;этот аргумент должен быть равен нулю, если для
	операции буфер не требуется;
	    crtn -адрес  подпрограммы завершения; если crtn не указан, то его
	значение автоматически приравнивается  нулю; если crtn равен нулю, то
	управление  программе пользователя будет  передано  после  завершения
	операции; если crnt равен 1,управление будет передано программе поль-
	зователя немедленно после начала операции; если crtn=N ,то N -	адрес
	подпрограммы завершения ( N >500 ).
	    Аргументы chan, blk, wcnt  те же, что и в .READ/.WRITE .Они испо-
	льзуются только тогда,когда необходимо произвести запись на магнитную
	ленту с расширенным межзонным промежутком.

		Функция			Код
				---------------------------------------------
				MT		DX
	---------------------------------------------------------------------
	Перемотка		373
	Запись метки EOF	377
	Пропуск вперед		376
	Пропуск назад		375
	Запись			371		376
	Чтение			370		377
	Запись с расширенным
	межзонным промежутком	374
	Автономная перемотка	372

		Для использования  запроса  .SPFUN  необходимо, чтобы драйвер
	соответствующего  устройства  находился в памяти  и  канал был связан
	с файлом по запросу .LOOKUP .�

					- 50 -

			4.1.6. Запросы общего назначения

			4.1.6.1.  .CDFN

		Запрос .CDFN  используется для  переопределения числа каналов
	ввода-вывода.Каждое задание независимо от того является ли оно основ-
	ным или фоновым,первоначально обеспечивается 16. каналами ввода-выво-
	да (от 0 до 15).  Запрос .CDFN позволяет  увеличить число каналов  до
	255. (от 0 до 254). Область  памяти  для новых каналов определяется в
	пределах  программы пользователя. Под каждый канал ввода-вывода отво-
	дится пять слов.Рекомендуется ,чтобы запрос .CDFN выполнялся в начале
	программы перед операциями ввода-вывода.Если в программе используется 
	более одного запроса .CDFN , то области каналов для них не должны пе-
	рекрывать друг друга, но могут иметь один  и тот  же начальный адрес.
		Два запроса .SRESET  и .HRESET восстанавливают первоначальное
	число каналов (16.).Следовательно все запросы .CDFN должны выполнять-
	ся повторно после использования .SRESET или .HRESET.
		Заметим,что запрос .CDFN определяет новые каналы. Область па-
	мяти для ранее определенных каналов не используется. Так,запрос .CDFN
	для 20. каналов ввода-вывода(в то время как 16 первоначальных каналов
	уже определены) создает 20 новых каналов ввода-вывода. Область для 16
	первоначальных  каналов не используется, но содержимое старых каналов
	будет скопировано в новые.
		Для программы с оверлейной структурой 15-й канал используется
	оверлейным драйвером и не должен изменяться.
		Формат макрокоманды
		.CDFN area, addr, num
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес области памяти для новых каналов;
	    num  -число создаваемых каналов.

			4.1.6.2.  .CHAIN

		Запрос .CHAIN позволяет одной фоновой  программе инициировать
	выполнение другой  фоновой программы без вмешательства оператора.Этот
	процесс может повторяться, и позволяет  организовать последовательное
	выполнение большого числа программ.
		Ячейки  500-507  должны  содержать имя устройства и имя файла
	(в Radix-50), который необходимо вызвать. Ячейки 510-777 используются
	для передачи информации между последовательно выполняемыми программа-
	ми.�

					- 51 -

		Формат макрокоманды
		.CHAIN
		Примечания:
		1. Содержимое областей оперативной памяти, за исключением об-
	ласти  памяти, которую занимает Резидентный монитор, и ячеек 500-777,
	может изменяться после выполнения .CHAIN .
		2. Каналы ввода - вывода остаются  открытыми после выполнения
	запроса .CHAIN для использования новой программой. Однако,каналы вво-
	да-вывода, открытые по запросу .CDFN не могут использоваться.Програм-
	ма, оставляющая файлы открытыми при выполнении .CHAIN не должна испо-
	льзовать .CDFN . Нерезидентные драйверы устройств удаляются из памяти
	при выполнении  .CHAIN ,поэтому они должны быть вновь загружены новой
	программой.
		3. По 8-му биту ССЗ программа  может определить, как она была
	загружена - по запросу .CHAIN или по каманде RUN .Разряд устанавлива-
	ется во время выполнения программы, если она была загружена с помощью
	.CHAIN .Если программа,занимающая ячейки от 500 до 777, предназначена
	для загрузки по запросу .CHAIN , то в ней  должен быть установлен 8-й
	разряд ССЗ во время ее трансляции. В этом случае программа будет заг-
	ружена правильно. Если разряд не установлен,ячейки 500-777,содержимое
	которых остается от предыдущей программы, могут  вызвать неправильную
	работу новой программы.
		4. Для  запроса .CHAIN  характерны те же ошибки,что и для ко-
	манды RUN .

			4.1.6.3.  .CMKT  (вариант SJ)

		Запрос  .CMKT  аннулирует  один или  несколько запросов .MRKT 
	(п.4.1.6.22.).
		Формат макрокоманды
		.CMKT area, id, time
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    id   -число, используемое  для идентификации  с запросом  .MRKT ,
	который необходимо  аннулировать; если несколько  запросов .MRKT име-
	ют  одинаковый id , то аннулируется тот из них,которому соответствует 
	наименьший неистекший интервал времени;  если id=0 , то  аннулируются 
	все запросы .MRKT;�

					- 52 -

	    time -адрес блока из 2-х слов, в которые монитор записывает вели-
	чину неиспользованного времени  в аннулированном запросе; первое сло-
	во содержит нижнюю  границу интервала времени,второе - верхнюю грани-
	цу; если адрес не указан, такой записи не происходит,если id=0, аргу-
	мент time игнорируется.
		Аннулированный запрос .MRKT  освобождает соответствующий эле-
	мент очереди.

			4.1.6.4.  .CNTXSW  (режим FB)

		Передавая управление от одного задания другому,монитор выпол-
	няет операцию переключения контекста.Она заключается в сохранении си-
	стемой необходимых параметров для однозначного определения и выполне-
	ния задания. Эти  параметры включают  все регистры общего назначения,
	ячейки 34-52, а также все регистры БПЗ, если  запрос .SFPA выполнялся
	с отличным от нуля адресом подпрограммы обработки прерывания  от  БПЗ.
		Запрос .CNTXSW используется для определения ячеек памяти, ко-
	торые будут дополнительно включены в операцию переключения контекста.
		Иногда,для обоих заданий необходимо независимое использование
	определенной ячейки памяти,которая не включена в обычную операцию пе-
	реключения контекста.Например,если программа использует команду IOT ,
	то она должна установить в векторе 20 адрес своей  подпрограммы обра-
	ботки прерывания по этой команде. А если оба задания - основное и фо-
	новое используют команду IOT , то  вектор 20 должен  всегда содержать
	соответствующий с  выполняемым заданием адрес. Это достигается  путем
	включения ячеек 20 и 22 в список адресов запроса .CNTXSW . 
		Если запрос .CNTXSW  указан в программе несколько раз, то мо-
	нитор использует список адресов последнего из них.
		Список  адресов .CNTXSW не  может быть в области свопинга USR
	и его нельзя изменять в процессе работы программы.
		Монитор XM игнорирует запрос .CNTXSW по двум причинам.Во-пер-
	вых,виртуальные задания не разделяют ячейки памяти с другими задания-
	ми.Во-вторых,векторы IOT, TRAP,  BPT и вектор 250 автоматически вклю-
	чаются монитором XM в операцию переключения контекста,и, следователь-
	но,могут быть использованы другим заданием без .CNTXSW .�

					- 53 -

		Формат макрокоманды
		.CNTXSW area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес списка  адресов (должен быть ограничен нулем); адреса
	в списке  должны быть четными и в  пределах от 2 до 476 или в области 
	задания пользователя,или в пределах от 160000 до 177776.

			4.1.6.5.  .CSIGEN

		Запрос .CSIGEN вызывает работу Интерпретатора комендной стро-
	ки (CSI) в общем режиме.В этом режиме CSI осуществляет синтаксический
	анализ командной строки и выполняет следующие функции:
		1) загружает драйверы указанных устройств;
		2) выполняет запросы.LOOKUP и/или .ENTER для указанных файлов
		3) записывает в стек информацию о переключателях;
		4) выполняет запрос .CLOSE на каналах 0-10 .
		Область,которая отводится для драйверов устройств,должна быть
	достаточной для одновременного размещения всех необходимых драйверов.
	Если этой области недостаточно,программа пользователя может быть раз-
	рушена.
		После выполнения запроса  .CSIGEN  регистр R0 будет указывать 
	на первую свободную ячейку памяти после драйверов устройств.
		Когда управление  возвращается  программе пользователя  после
	выполнения запроса.CSIGEN,все указанные файлы будут открыты для ввода
	и/или вывода.Три выходных файла будут открыты соответственно на	0,1 и
	2-ом каналах; шесть входных - будут связаны с каналами 3-10 .
		Если имя файла не указано, соответствующий канал остается за-
	крытым.
		Например,в командной строке
		*,LP:=F1,F2
	0 и 2 каналы остаются свободными,1-й канал связывается с LP:, 3 и 4-й
	каналы  связываются  соответственно  с файлами F1 и F2 на DK:, каналы
	5-10 остаются свободными.
		Программа пользователя может определить открыт или  нет канал
	посредством запроса .WAIT на соответствующем канале, и получить сооб-
	щение об ошибке, если канал не открыт.�

					- 54 -

		Переключатели и их аргументы записываются в стек(п.4.1.6.6.1.)
		Формат макрокоманды
		.CSIGEN devspc, deftyp, cstr [,linbuf]
	где devspc -адрес области памяти для драйверов устройств;
	    deftyp -адрес блока из  4-х слов, который  содержит типы файлов в 
	кодах Radix-50. Содержимое этого блока используется монитором, если в 
	командной строке не указаны типы файлов;
	    cstr  -адрес командной строки. Она не должна содержать <ВК>,<ПС>,
	но должна оканчиваться нулевым байтом. Если cstr не указан или 0 , то
	ввод осуществляется с терминала; под  управлением монитора FB  , если
	ввод осуществляется с системного терминала,будет автоматически выпол-
	нен запрос .UNLOCK для USR ;
	    linbuf -адрес,с которого будет записана введенная командная стро-
	ка; эта область определяется пользователем и имеет длину 81. байт;ко-
	мандная строка в этой области ограничивается нулевым байтом.
		Примечания:
		1. Блок,адрес которого указан в deftyp ,в 1-ом слове содержит
	тип файла для всех входных файлов, во 2, 3 и 4-ом словах- типы файлов
	соответственно для 0, 1 и 2-го выходных файлов.Если в блоке не указан 
	тип файла для определенного канала, соответствующее слово  должно со-
	держать нуль. Все типы  файлов должны быть записаны в кодах Radix-50.
		2. Запрос .CSIGEN автоматически воспринимает командную строку
	из косвенного файла, если указан ввод с терминала (cstr=0) и програм-
	ма, использующая .CSIGEN вызывается через косвенный файл.
		3.Аргумент linbuf предоставляет пользователю возможность вос-
	становления первоначально введенной командной строки.
		4. Если ошибка происходит при вводе командной строки с терми-
	нала,то CSI печатает сообщение об ошибке  на терминале, если при вво-
	де из памяти - устанавливает С-разряд и код ошибки (52-ой байт).

			4.1.6.6.  .CSISPC

		Запрос .CSISPC  вызывает  работу CSI в  специальном режиме. В 
	этом режиме он осуществляет  синтаксический анализ командной строки и
	передает спецификации файлов и переключатели,указанные в ней,програм-
	ме пользователя.В специальном режиме CSI не выполняет действий,анало-
	гичных функциям запросов .FETCH, .CLOSE, .ENTER, .LOOKUP .�

					- 55 -

		Переключатели и их аргументы пересылаются в стек.
		Если программа,использующая .CSISPC ,вызывается через косвен-
	ный файл и cstr=0 , то .CSISPC автоматически  выбирает входную строку
	из косвенного файла.
		Формат макрокоманды
		.CSISPC outspc, deftyp, cstr[,linbuf]
	где outspc -адрес блока из  39 слов для спецификации файлов командной
	строки;
	    deftyp -адрес  блока из 4-х слов, который  содержит типы файлов в 
	кодах Radix-50. Содержимое этого блока используется монитором, если в
	командной строке не указаны типы файлов;
	    cstr -адрес командной строки. Она не должна содержать <ВК>  <ПС>,
	но должна оканчиваться нулевым байтом. Если cstr не указан или 0 , то
	ввод осуществляется с терминала;
	    linbuf -адрес,с которого будет записана введенная командная стро-
	ка; эта область определяется пользователем и имеет длину 81 байт; ко-
	мандная строка в этой области ограничивается нулевым байтом.
		Блок, адрес которого указан в outspc , содержит  спецификацию 
	для 9 файлов: по 5 слов для каждого из 3-х  выходных  файлов и  по  4 
	слова для каждого из 6-ти входных файлов.Пять слов для выходного фай-
	ла имеют следующее содержимое: 1-ое слово - имя устройства; 2-е и 3-е
	слова - имя файла; 4-ое слово - тип файла; 5-е слово - длина выходно-
	го файла.
		Например
		*DX1:LIST.MAC[15]=PC:
		После выполнения .CSISPC первые 5 слов для блока, адрес кото-
	рого указан в outspc ,будут иметь следующие значения:
		16337 Radix-50 для DX1
		46173 Radix-50 для LIS
		76400 Radix-50 для T
		50553 Radix-50 для MAC
		00017 Длина файла
		Первые 4 слова для спецификаций входных файлов (начиная с ад-
	реса outspc+36) будут выглядеть так:
		62170	Radix-50 для PC
		0	Имя файла не указано
		0	
		0
		Если при  вводе с терминала произошла ошибка, USR не печатает 
	на терминале сообщение об ошибке, а устанавливает С-разряд в PSW.�

					- 56 -

			4.1.6.6.1. Передача информации о переключателях
					программе пользователя.

		В общем и  специальном  режимах работы CSI переключатели и их
	аргументы пересылаются в стек. Переключатель представляет  собой  на-
	клонную черту (/),за которой следует имя переключателя (символ КОИ-7)
	За переключателем может  следовать  аргумент, перед  которым ставится 
	разделитель (:). Аргумент может быть восьмеричным или десятичным чис-
	лом (числом с точкой), или комбинацией буквенно-цифровых символов (от
	одного до трех),первый из которых -буква. В командной строке переклю-
	чатели могут быть связаны с файлами.

		Например:  *DK:FOO/A,DX1:FILE.OBJ/A:100	
	В этом случае имеется два переключателя A, первый из которых связан с 
	входным файлом FOO ,второй связан с входным файлом FILE:OBJ и имеет
	аргумент 100  .
		Формат содержимого стека после выполнения запроса .CSIGEN или
	.CSISPC: (указатель  стека будет содержать адрес первого слова табл.)

	Слово	Содержимое			Значение
	---------------------------------------------------------------------
	1	N		Число переключателей в командной строке
	2	Имя переключа-	Четный байт содержит имя переключателя.
		теля и номер	Разряды 8-14 содержат номер (от 0 до 10)
		файла		файла, с которым связан данный переключатель.
				Разряд 15 содержит 1, если переключатель име-		
				ет аргумент
	3	Аргумент пере-	Если установлен 15-й разряд в слове 2,то сло-
		ключателя или	во  3 содержит аргумент переключателя. В про-
		имя следующего	тивном случае - имя  следующего переключателя
		переключателя

		Например,после обработки CSI командной строки
		*FILE/B:20.,FIL2/E=DX1:INPUT/X:SY:20
	стек будет содержать значения:�

					- 57 -

	Содержимое			Значение
	---------------------------------------------------------------------
	4		Число переключателей (переключатель X имеет два аргу-
			мента и рассматривается как два переключателя)
	101530		Последний переключатель /X связан с 3-им файлом и
			имеет аргумент
	20		Аргумент переключателя X
	101530		Следующий переключатель /X связан с 3-им файлом и
			имеет аргумент
	75250		Аргумент переключателя X-SY в кодах Radix-50
	505		Следующий переключатель /Е связан с 1-м файлом и
			имеет аргумент
	100102		Переключатель /B связан с 0-м файлом и имеет аргумент
	24		Аргумент переключателя B
		Примечания:
		1. Во многих случаях  программе пользователя не требунтся об-
	работка переключателей посредством CSI . Однако, возможен непреднаме-
	ренный ввод переключателей пользователем. В этом случае,рекомендуется
	сохранить значение указателя стека перед вызовом CSI ,а затем восста-
	новить его.Заметим,что командная строка без переключателей перемещает
	указатель стека на одно слово.
		2. В режиме FB , когда вызов  CSI  требует ввода с системного
	терминала, автоматически выполняется .UNLOCK для USR. Это  необходимо
	помнить при использовании запроса .LOCK .

			4.1.6.7.  .CSTAT  (режим FB)

		Запрос .CSTAT  передает  программе  пользователя информацию о
	состоянии канала.
		Формат макрокоманды
		.CSTAT area, chan, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    chan -номер канала,информацию о котором требуется получить;
	    addr -адрес блока из 6-ти слов для информации о состоянии канала:�

					- 58 -

	Слово			Назначение
	---------------------------------------------------------------------
	1	Слово состояния канала
	2	Номер начального блока файла (0 ,если устройство с последова-
		тельным доступом к данным или,если канал был открыт по нефай-
		ловому .LOOKUP или .ENTER )
	3	Длина файла (равна нулю, если  устройство  с последовательным
		доступом  к данным или, если канал был  открыт по нефайловому
		.LOOKUP или .ENTER )
	4	Номер последнего записанного блока файла  (пока файл открыт).
		Ноль для устройств нефайловой структуры
	5	Номер привода устройства, с которым  связан  указанный  канал
	6	Физическое имя устройства в кодах  Radix-50, с которым связан
		данный канал.

			4.1.6.8.  .DATE

		Запрос .DATE передает  информацию о текущей дате из системной
	ячейки даты в регистр R0 .Ячейка даты имеет следующий формат:

		Разряд:  14 ... 10, 9 ... 5, 4 ... 0
			----------  -------  -------
			  месяц      день      год
		Значение года в разрядах  с 0 по 4 является фактическим годом
	минус 72 .
		Формат макрокоманды
		.DATE
		Нулевой результат в R0 указывает на то, что пользователь дату 
	не определил.

			4.1.6.9.  .DEVICE  (режим FB)

		Запрос .DEVICE позволяет записать  определенные  значения  по 
	указанным  адресам  после выхода из  программы  (по .EXIT или СУ/С ).
	Эта функция в основном используется для записи  в регистры  устройств
	необходимых значений.
		В программе может быть несколько запросов .DEVICE и пользова-
	тель может связать все списки адресов в один список.�

					- 59 -

		Формат макрокоманды
		.DEVICE area, addr[,L] 
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес списка адресов  и значений;
	    L    -произвольный аргумент, который позволяет связать списки ад-
	ресов последовательных запросов .DEVICE . Если  аргумент L отсутству-
	ет, то уже  существующий список заменяется новым при обнаружении оче-
	редного запроса запроса .DEVICE .
		Список адресов и значений может иметь два формата - связанный
	и не связанный.Оба формата должны оканчиваться нулем.Связанный формат
	должен иметь в первом  слове также ноль. Различные форматы списка ад-
	ресов и значений:

		Не связанный			Связанный
		--------------			----------------
	addr 	адрес		      addr	0
		--------------			----------------
		значение			адрес
		--------------			----------------
		адрес				значение
		--------------			----------------
		значение			адрес
		--------------			----------------
			.			значение	
			.			----------------	
			.				.
		--------------				.
		адрес	                                .
		--------------			---------------
		значение			адрес
		--------------			---------------
		0				значение
		--------------			---------------
						0
						---------------�
		
					- 60 -

			4.1.6.10.  .DSTATUS

	Запрос .DSTATUS используется для получения информации об определенном
	устройстве.
		Формат макрокоманды
		.DSTATUS  dstblk, devnam
	где dstblk -адрес блока из 4-х слов состояния устройства;
	    devnam -адрес имени устройства в кодах Radix-50 .
		Первым словом блока  состояния  является слово состояния уст-
	ройства. Значения разрядов слова состояния устройства:

	Разряд	Содержимое		Значение
	---------------------------------------------------------------------
	0-7	0		Касета магнитных дисков
		1,2		Резервные
		3		Построчно-печатающее устройство
		4		Системный терминал или драйвер BATCH
		5,6		Резервные
		7		Перфоленточное устройство ввода и вывода
		10		Резервные
		11		Накопитель на магнитной ленте
		12-20		Резервные
		21		Пакет магнитных дисков DP (29 Мбайт)
		22		Гибкий диск
		24		Логическое устройство регистрации ошибок
		25		Фиктивное устройство
		26-33		Резервные
	10	1		Драйвер устройства допускает использование 
				запроса .SPFUN
		0		Не допускается использование запроса .SPFUN
	11	-		Резервный
	12	1		Устройство несправочной структуры
	13	1		Устройство только для записи
	14	1		Устройство только для чтения
	15	1		Устройство с произвольным доступом к данным
		0		Устройство с последовательным доступом к 
				данным�

					- 61 -

		Второе слово  представляет  собой длину драйвера устройства в 
	байтах.
		Третье  слово представляет собой адрес загрузки драйвера плюс 
	6.(FB,SJ) Если 0 -драйвера в памяти нет.
		Четвертое слово представляет собой емкость устройства (в бло-
	ках) для устройств  с произвольным  доступом к даннам  или 0 для уст-
	ройств с последовательным доступом к данным.
		Имя устройства в devnam может быть логическим именем, присво-
	енным пользователем.

			4.1.6.11.  .EXIT

		Запрос .EXIT вызывает  окончание выполнения программы пользо-
	вателя и передает управление KMON .
		Перед выходом  из  программы  выполнение  всех инициированных 
	операций ввода-вывода и/или подпрограмм завершения  будет  закончено.
	Все невыполненные запросы .MRKT и .CMKT будут аннулированы.
		Если  часть фоновой  программы занимает область памяти KMON и
	USR, то она будет  записана в блоки для временного хранения данных на
	системное устройство. После этого  KMON и USR  загружаются в память и
	управление передается Клавиатурному монитору. Если  R0=0 во время вы-
	полнения .EXIT ,то выполняется операция аналогичная .HRESET ,запреща-
	ющая последовательное использование команд REENTER, START или CLOSE .
		Запрос .EXIT позволяет  программе передать команды Клавиатур-
	ному монитору , используя ячейки 500-777,для их последующего выполне-
	ния. Для этого:
		1) ячейка 510 должна содержать  общее количество байтов в ко-
	манде, которая будет передана KMON;
		2) команды записываются, начиная с ячейки  512; строка должна 
	быть записана в символах КОИ-7 и не должна  содержать <ВК> или <ПС> ;
	например:
		A:	.=510
			.WORD B-A
			.ASCIZ/SOPI A.MAC B.MAC/
			.ASCIZ/DELETE A.MAC/
		B=	.�

					- 62 -
		
		3) программа пользователя должна  установить 11 разряд в  ССЗ
	перед выполнением .EXIT ; содержимое R0 должно быть нулевым.
		Когда запрос .EXIT используется  для передачи  команд необхо-
	димо учитывать следующее:
		1) если это свойство используется программой, которая вызыва-
	ется с помощью косвенного файла, то все команды следующие в косвенном
	файле за командой, инициирующей пуск этой программы,выполняться не бу
	дут;
		2) косвенный  файл может  быть вызван, используя это свойство
	только в том случае, если передаваемая KMON строка содержит единствен
	ную спецификацию файла; попытка передачи нескольких косвенных  файлов
	или комбинаций косвенных файлов с другими  командами KMON  приводит к 
	неправильным результатам;
		3) .EXIT в подпрограмме завершения недопустим.
		Запрос .EXIT изменяет текущее положение указателя стека.
		Формат макрокоманды
		.EXIT

			4.1.6.12.  .FETCH, .RELEAS

		Запрос .FETCH загружает драйвер устройства из системного уст-
	ройства в оперативную память.
		Формат макрокоманды
		.FETCH addr, devnam
	где addr -адрес загрузки драйвера;
	    devnam -адрес имени устройства в кодах Radix-50 .
		После выполнения .FETCH , R0 содержит адрес  первой, располо-
	женной выше драйвера,ячейки оперативной памяти. Если  драйвер уже за-
	гружен в память, R0 будет содержать адрес загрузки addr.

		Для выполнения запросов
		.CLOSE		.READC		.READ
		.LOOKUP		.WRITE		.WRITC
		.ENTER		.READW		.SPFUN
		.RENAME		.WRITW		.DELETE

	необходимо наличие в памяти драйверов соответствующих устройств.�

					- 63 -

		Перед  использованием  запроса  .FETCH  в  режимах  FB или XM
	необходимо,чтобы все  драйверы устройств были  загружены в память (по
	команде LOAD) .
		Запрос .RELEAS удаляет драйвер указанного устройства из памя-
	ти. Запрос .RELEAS игнорируется, если драйвер:
		1) является частью RMON (т.е. является  драйвером  системного
	устройства);
		2) отсутствует в памяти;
		3) был загружен по команде LOAD;
		Запрос .RELEAS в основной программе или в любой программе под
	управлением монитора XM всегда игнорируется,т.к. мониторы FB и XM мо-
	гут использовать только те драйверы, которые были загружены по коман-
	де LOAD.
		Формат макрокоманды
		.RELEAS devnam
	где devnam -адрес имени устройства в кодах Radix-50.

			4.1.6.13.  .FORK

		Запрос .FORK используется в драйверах для синхронизации рабо-
	ты системы. Запросу .FORK должен предшествовать запрос .INTEN . .FORK
	требует для своего выполнения блок памяти из 4-х слов. Содержимое ре-
	гистров R4 и R5 после выполнения запроса сохраняется. .FORK использу-
	ется в том случае,когда должен быть упорядочен доступ к системным ре-
	сурсам или должна быть выполнена не критическая по времени,но большая
	по  размеру, часть программы. После обработки монитором запроса .FORK 
	прерывание от устройства  будет запрещено и драйвер будет работать на
	нулевом приоритете.
		Формат макрокоманды
		.FORK fkblk
	где fkblk -адрес блока из 4-х слов (должен  быть в драйвере устройст-
	ва ).�

					- 64 -

			4.1.6.14.  .GTIM

		Запрос .GTIM позволяет программе определить текущее время су-
	ток. Величина времени определяется в тиках (1 тик= 1/50 с ).
		Формат макрокоманды
		.GTIM area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес блока из 2-х слов величины  времени; первое слово со-
	держит большее время ,второе слово - меньшее время.
		Пользователь должен предусмотреть в  своей программе операцию
	преобразования тиков в часы-минуты-секунды. В режиме FB величина вре-
	мени автоматически восстанавливается после 24:00:, в режиме SJ опера-
	ция восстановления отсутствует.

			4.1.6.15.  .GTJB

		Запрос .GTJB позволяет программе определить номер выполняемо-
	го задания, нижнюю границу памяти и другие параметры задания.
		Формат макрокоманды
		.GTJB area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
 	    addr -адрес блока из 8-ми слов для номеров задания:

	Слово				Содержимое
	=--------------------------------------------------------------------
	1	Номер задания (2-основное, 0 -фоновое)
	2	Верхняя граница памяти
	3	Нижняя граница памяти
	4	Начало области каналов ввода-вывода
	5	Адрес смешанной области заданий для мониторов FB и XM
	6-8	Резервные
		Примечание. Информацию необходимую для управления выполнением
	основного задания, монитор хранит в смешанной области, которая созда-
	ется во время загрузки основной программы в младших адресах  основной
	области памяти.
		В режиме FB номер задания может иметь значение 0 или 2.  Если
	задание фоновое,то слово 3 содержит 0 ,а слово 4 содержит адрес,с ко-
	торого начинается область каналов ввода-вывода. Обычно этот адрес на-
	ходится в пределах RMON. После выполнения .CDFN,область каналов ввода
	-вывода заменяется на область,адрес которой указывается пользователем.�

					- 65 -

			4.1.6.16.  .GTLIN

		Запрос .GTLIN  используется для получения от пользователя ко-
	мандной информации, отличной от командных  строк CSI и позволяет про-
	грамме работать с косвенными файлами.
		Запрос .GTLIN  требует наличия USR в памяти и принимает вход-
	ную строку с системного терминала,или из косвенного файла,в зависимо-
	сти от  того, была  ли вызвана  программа с терминала или командой из 
	косвенного файла.
		Запрос .GTLIN игнорирует аргумент pstr, если ввод осуществля-
	ется из косвенного файла, и если ранее была выполнена команда  SET TT
	QUIET. Если ввод осуществляется с терминала или из косвенного файла,и
	ранее не была выполнена команда SET TT QUIET ,запрос .GTLIN будет ис-
	пользовать аргумент pstr для печати побуждающей строки перед выборкой
	входной строки.
		Формат макрокоманды
		.GTLIN sptr[,pstr]
	где sptr -адрес буфера  для  записи входной строки;  длина  строки не 
	должна  превышать   81 байт;  строка будет  ограничена нулевым байтом
	вместо <ВК> <ПС> ;
	    pstr -адрес побуждающей строки,которая будет печататься на терми-
	нале; pstr имеет тот же формат, что и аргумент запроса .PRINT .
		Единственными запрпосами, которые могут осуществлять  ввод из
	косвенного файла, являются запросы .CSIGEN, .CSISPC и GTLIN .

			4.1.6.17.  .GVAL

		Запрос .GVAL  передает в R0  содержимое ячейки фиксированного
	смещения.
		Формат макрокоманды
		.GVAL area,offset
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    offset -значение смещения относительно начала RMON .�

					- 66 -

			4.1.6.18.  .HERR, .SERR

		Запросы .HERR, .SERR  позволяют задать определенный режим ра-
	боты монитора при обнаружении условий ошибки.Во время выполнения про-
	граммы  могут возникнуть  определенные ошибки, вызывающие  прерывание 
	программы. Обычно эти ошибки вызывают выход из программы и печать мо-
	нитором  сообщения об ошибке. В некоторых случаях невозможно прервать
	выполнение программы из-за возникших ошибок. Например, многопользова-
	тельская программа должна сохранять управление и прервать работу толь
	ко с тем пользователем, который сделал  ошибку. В этом случае полезно
	использовать запрос .SERR , который запрещает монитору удаление из па
	мяти программы, в которой обнаружена ошибка. Вместо этого,при возник-
	новении ошибки после выполнения запроса .SERR устанавливается С-бит и
	код ошибки в 52-ом байте. В некоторых  случаях запрос .SERR оставляет
	каналы открытыми,например,если использовались запросы .LOOKUP и.ENTER
		Запрос .HERR  отменяет действие запроса .SERR . В этом случае
	печатается сообщение об ошибке и программа удаляется из памяти.
		Формат макрокоманд
		.HERR
		.SERR

	Код			Причина ошибки
	---------------------------------------------------------------------
	-1	Вызов USR из подпрограммы завершения
	-2	В памяти нет драйвера устройства
	-3	Ошибка ввода-вывода справочника устройства
	-4	Ошибка .FETCH . Ошибка при чтении драйвера,или попытка загру-
		зить его выше USR или RMON
	-5	Ошибка чтения оверлейного сегмента
	-6	В справочнике устройства нет свободного места для записи 
		файла
	-7	Недопустимый адрес (только в режиме FB).Попытка выполнить
		операцию вне границ задания
	-10	Несуществующий номер канала
	-11	Недопустимая команда ЕМТ; определен недопустимый функциональ-
		ный код�

					- 67 -
	
			4.1.6.19.  .HRESET

		Запрос .HRESET  прекращает  выполнение операций  ввода-вывода 
	для вызывающей программы и выполняет функции запроса .SRESET.В режиме
	SJ запрос .HRESET используется для прекращения всех операций ввода-вы
	вода, тогда как в режиме FB прекращается ввод-вывод для задания,в ко-
	тором используется .HRESET . Все другие операции ввода-вывода продол-
	жаются.
		Формат макрокоманды
		.HRESET

			4.1.6.20.  .INTEN

		Запрос .INTEN  используется в подпрограмме обработки прерыва-
	ния программы пользователя и выполняет следующие функции:
		1) сообщает монитору о том, что произошло прерывание;
		2) устанавливает приоритет процессора на соответствующий уро-
	вень.
		Все  внешние прерывания  вызывают  работу процессора  по 7-му 
	приоритету. Запрос .INTEN  используется  для понижения  приоритета до 
	уровня, на котором будет работать соответствующее устройство.
		Формат макрокоманды
		.INTEN prior[,pic]
	где prior -приоритет процессора, который  пользователь  устанавливает 
	для своей  программы обработки  прерывания; обычно тот  приоритет, по
	которому устройство запрашивает прерывание;
	pic - необязательный аргумент; должен  быть указан, если подпрограмма
	обработки  прерывания написана в позиционно-независимых кодах;  любая
	подпрограмма  обработки  прерывания (драйвер устройства), должна быть 
	написана  в этих кодах.

			4.1.6.21.  .LOCK, .UNLOCK

		Запрос .LOCK  блокирует USR в памяти для выполнения ряда опе-
	раций.Если существуют условия,вызывающие процесс свопинга,то програм-
	ма пользователя (та ее часть, которую USR перекрывает в памяти) запи-
	сывается в блоки диска для  временного хранения данных и USR загружа-�

					- 68 -

	ется в память.В противном случае используется USR,находящаяся в памя-
	ти и свопинга не происходит. Запрос .LOCK  всегда загружает USR в па-
	мять, если там ее нет. USR будет блокирована в памяти до тех пор,пока
	не будет сделан запрос .UNLOCK .Заметим,что в режиме FB,вызов CSI мо-
	жет также выполнить действие аналогичное .UNLOCK .
		В режиме FB запрос .LOCK запрещает другим заданиям использо-
	вать USR .После запроса .LOCK должен быть выполнен запрос .UNLOCK для
	освобождения USR .
		Запросы .LOCK и UNLOCK дополняют друг друга и должны быть со-
	гласованы (т.е.,если выполнено три запроса .LOCK , то должно быть вы-
	полнено,по крайней мере,три .UNLOCK ,в противном случае USR не 	будет
	удалена из памяти).Если количество .UNLOCK  больше чем .LOCK ,то ошиб
	ки не происходит.
		Формат макрокоманды
		.LOCK
		Примечания:
		1. Важно,чтобы программа, использующая .LOCK, не находилась в
	области памяти,куда будет загружаться USR. Если это произойдет,то по-
	сле выполнения .LOCK управление будет передано не программе пользова-
	теля,а USR .
		2. После выполнения  .LOCK не  рекомендуется использовать об-
	ласть памяти, которую занимает USR,даже если дальнейшее использование
	USR не требуется. Это может вызвать непредвиденные результаты при вы-
	полнении .UNLOCK .
		3. Если основное задание выполняет .LOCK , в то время как фо-
	новое задание использует USR , то выполнение основного задания задер-
	живается.
		Запрос .UNLOCK удаляет USR из памяти, если она была загружена
	по запросу .LOCK . Если при выполнении .LOCK использовался свопинг,то
	.UNLOCK загружает программу пользователя обратно в память.
		Формат макрокоманды
		.UNLOCK
		Примечание. При  выполнении двух  заданий в  режиме  FB  пары
	.LOCK/.UNLOCK должны использоваться только по необходимости,т.к. ког-
	да задание  блокирует USR в памяти, другое задание не может использо-
	вать USR до тех пор, пока не будет выполнен .UNLOCK в первом задании.�

					- 69 -

			4.1.6.22.  .MFPS, .MTPS

		Запросы .MFPS, .MTPS обеспечивают доступ к PSW.
		Запрос .MFPS используется для выборки PSW.
		Формат макрокоманды
		.MFPS addr
	где addr -адрес,  по которому записывается содержимое PSW; если адрес
	не указан,содержимое PSW пересылается  в стек;
		Запрос .MTPS используется для установки PSW.
		Формат макрокоманды
		.MTPS addr
	где addr -адрес слова, которое  будет  записано в  PSW; если адрес не
	указан,то значение для PSW берется из стека.

			4.1.6.23.  .MRKT  (вариант SJ)

		Запрос .MRKT планирует  запуск  подпрограммы завершения через
	определенный интервал времени.
		Запросы .MRKT используют элементы очереди из списка элементов 
	очереди ввода-вывода. Элемент очереди используется до тех пор,пока не
	будет введена  подпрограмма  завершения  или не будет выполнен запрос
	.CMKT .
		Формат макрокоманды
		.MRKT area, time, crtn, id
	где area -адрес блока из 4-х слов аргументов ЕМТ;
	    time -адрес блока из 2-х слов,содержащего величину интервала вре-
	мени;
	    crtn -точка входа подпрограммы завершения;
	    id   -число, используемое  для идентификации запроса с программой 
	завершения и запросами .CMKT ;  это число  не  должно быть в пределах
	от  177400 до 177777; несколько запросов .MRKT могут иметь один и тот 
	же id ; на входе  в  подпрограмму завершения R0 будет содержать число 
	id .�

					- 70 -

			4.1.6.24.  .MTATCH  (вариант FB и XM)

		Запрос .MTATCH логически связывает задание с терминалом. Этот
	запрос должен быть выполнен перед тем,как задание начнет использовать
	терминал в мультитерминальном режиме.
		Формат макрокоманды
		.MTATCH area, addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес слова асинхронного состояния терминала или 0 ;
	    unit -логический номер терминала.

			4.1.6.25.  .MTDTCH  (вариант FB и XM )

		Запрос .MTDTCH  прерывает логическую  связь указанного терми-
	нала с заданием и  делает его  доступным  для других заданий. Попытка 
	прервать связь с терминалом, логически связанным  с  другим заданием,
	приводит к ошибке.
		Формат макрокоманды
		.MTDTCH area, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    unit -логический номер терминала.

			4.1.6.26.  .MTSET (вариант FB и XM)

		Запрос .MTSET позволяет  установить характеристики терминала.
	Он  также  определяет  режим  ввода-вывода для  указанного терминала.
		Формат макрокоманды
		.MTSET area, addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес блока из 4-х  слов  состояния  указанного  терминала;
	    unit -логический номер терминала.�
					- 71 -

		Структура блока состояния терминала:

		-----------------------
			M.TSTS
		-----------------------
			M.TSTS2
		-----------------------
			M.TSTS3
		-----------------------
		M.TSTW		M.TWID
		-----------------------
	

	Обозначение		Описание
	--------------------------------------------------
	M.TSTS		Слово конфигурации терминала
	M.TSTS2		Резервное
	M.TSTS3		Резервное
	M.TWID		Длина строки
	M.TSTW		Байт состояния терминала	
		Значения разрядов слова конфигурации терминала:

	Разряд	Содержание	Значение
	---------------------------------------------------------------------
	0	1		Аппаратная табуляция
	1	2		Выполнение  возврата каретки и перевода стро-
				ки, если  действительная  длина строки больше
				установленной в M.TWID
	2	4		Аппаратный перевод формата
	3	10		Выполнение команд СУ/F и СУ/B
	4,5	-		Резервные
	6	100		Запрещение режима ожидания для терминала (эк-
				вивалентен 6-ому разряду в ССЗ); разряд TCBIT
	7-11	-		Резервные
	12	1000		Режим посимвольного ввода  (эквивалентен раз-
				ряду специального режима в ССЗ); разряд TTSPC
	13	-		Резервный	
	14	40000		Запрещение преобразования кодов символов ниж-
				него регистра в коды символов верхнего регис-
				тра�

					- 72 -
		
		Значения разрядов для M.TSTW :

	Разряд	Содержимое		Значение
	---------------------------------------------------------------------
	10	2000		Терминал используется  основным и фоновым за-
				даниями
	11	4000		Терминал не включен
	14	40000		Дважды подана команда СУ/С
	15	100000		Системный терминпл
	
			4.1.6.27.  .MTGET (вариант FB и XM)

		Запрос .MTGET  позволяет получить информацию о состоянии ука-
	занного терминала. После  выполнения запроса блок состояния будет со-
	держать информацию:

	Относительный			Содержимое
	номер байта
	в блоке
	---------------------------------------------------------------------
	0		Слово конфигурации терминала.Значения разрядов те же,
			что и в .MTSET
	2-4		Резервные
	6		Длина строки
	7		Текущее положение строки
	
		Формат макрокоманды
		.MTGET area, addr, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес блока состояния терминала из 4-х слов;
	    unit -логический номер терминала, информацию о состоянии которого
	требуется получить.�

					- 73 -

			4.1.6.28.  .MTRCTO (вариант FB и XM )

		Запрос  .MTRCTO  является  мультитерминальной  формой запроса
	.RCTRLO .Он отменяет команду СУ/D и разрешает вывод на указанный тер-
	минал.
		Формат макрокоманды
		.MTRCTO area, unit
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    unit -логический номер терминала.

			4.1.6.29.  .MWAIT  (режим FB )

		Запрос .MWAIT переводит программу в состояние ожидания до тех
	пор,пока все сообщения не будут переданы или получены. С помощью это-
	го запроса  пользователь может удостовериться в правильности выполне-
	ния операции.Запрос .MWAIT используется в основном совместно с запро-
	сами .RCVD или .SDAT ,которые не предусматривают специальных действий 
	после получения или передачи сообщений (данных).
		Формат макрокоманды
		.MWAIT

			4.1.6.30.  .PROTECT, .UNPROTECT  (режим FB)

		Запрос .PROTECT  используется  для получения  исключительного 
	права пользования вектором прерывания в диапазоне 0-476 и  устанавли-
	вает защиту вектора.
		Если запрос .PROTECT завершен успешно,то это указывает на то,
	что ячейки вектора не используются  другим заданием или монитором и в
	этом случае текущее задание может записать адрес подпрограммы обрабо-
	тки прерывания и значения уровня приоритета в эти ячейки.
		Формат макрокоманды
		.PROTECT area, addr
	где area -адрес блока из 3-х слов аргументов ЕМТ;
	    addr -адрес вектора,который будет использоваться данным заданием;
	addr должен быть кратен четырем и меньше 476.
		Запрос .UNPROTECT отменяет результат действия запроса.PROTECT�

					- 74 -
		Формат макрокоманды
		.UNPROTECT area, addr
	где area -adres bloka iz 2-h slow argumentow EMT;
	    addr -адрес вектора,который освобождается от защиты.

			4.1.6.31. .QSET

		Все операции ввода-вывода в системе RT11 осуществляются через
	централизованную систему  управления очередью запросов. Каждый запрос
	несинхронной передачи (например,.WRITE) требует для своего выполнения
	наличия элемента очереди.Если для очередного запроса ввода-вывода нет
	свободного элемента очереди, выполнение  программы пользователя будет
	блокировано до тех пор,пока элемент очереди не освободится. В  режиме
	FB одно из заданий может выполняться,пока другое ожидает элемент оче-
	реди.
		Запрос .QSET используется для того,чтобы увеличить число эле-
	ментов очереди ввода-вывода. Общее правило заключается в том, чтобы в
	каждой программе количество элементов очереди было на единицу больше,
	чем количество запросов ввода-вывода,которые будут выполняться однов-
	ременно на различных каналах.
		Запросы .MRKT, .TWAIT, .SDAT также используют элементы очере-
	ди и должны приниматься во внимание при определении количества элеме-
	нтов очереди для программы.Каждый раз,когда выполняется .QSET ,непре-
	рывная область памяти,которая отводится под элементы очереди, делится
	на сегменты, содержащие по 7 слов (по 10 слов для XM) и связывается с
	уже существующей очередью ввода-вывода для этого задания. 
		Запрос .QSET может быть  использован неоднократно в программе 
	пользователя. При этом область памяти для новых элемнтов очереди, от-
	водимые различными .QSET ,необязательно должны быть соприкасающимися.
		Область памяти для дополнительных элементов очереди ввода-вы-
	вода должна  быть определена внутри  программы  пользователя. Запросы
	.SRESET  и .HRESET аннулируют результат действия .QSET .�
					- 75 -

		Необходимо  соблюдать осторожность  при распределении  памяти
	для элементов очереди.Очередь ввода-вывода изменяется монитором асин-
	хронно. Если область, отведенная пользователем для элементов  очереди
	оказалась недостаточной, это приведет к нарушению выполнения програм-
	мы. Элементы для очереди ввода-вывода нельзя располагать в оверлейной
	области, а также в области памяти, предназначенной для свопинга USR .
		Следующие запросы требуют  для своего выполнения элемент оче-
	реди:
		.TWAIT	.READW	.WRITE	.SDAT	.SDATW
		.MRKT	.RCVD	.WRITC	.READC	.SDATC
		.READ	.RCVDC	.WRITW	.RCVDW
		Формат макрокоманды
		.QSET addr, qlend
	где addr -адрес начала  области для новых элементов очереди ввода-вы-
	вода;
	    qlend-число новых элементов очереди ввода-вывода.

			4.1.6.32.  .RCTRLO

		Запрос .RCTRLO обеспечивает готовность системного терминала к
	печати.
		Команда СУ/D запрещает вывод на  терминал до тех пор, пока не
	будет повторно подана команда СУ/D или в программе  не будет выполнен
	запрос .RCTRLO .Т.е. программа,в которой предусмотрене печать сообще-
	ний на терминале, должна предусматривать возможность подачи пользова-
	телем команды СУ/D.
		Формат макрокоманды
		.RCTRLO

			4.1.6.33.  .SPND, .RSUM  (режим FB)

		Запрос .SPND  временно  приостанавливает выполнение программы
	пользователя и допускает  работу только подпрограмм  завершения  (для
	операций ввода-вывода и запросов .MRKT).
		Формат макрокоманды
		.SPND
		Запрос .RSUM из подпрограммы завершения вновь передает управ-
	ление программе пользователя.�

					- 76 -

		Формат макрокоманды
		.RSUM
		Примечания:
		1. Монитор  содержит так  называемый счетчик приостановки для
	каждого задания. Этот  счетчик уменьшается по .SPND и  наращиватся по 
	.RSUM . Задание будет фактически приостановленным, если счетчик будет
	содержать отрицательное значение.Поэтому,если .RSUM будет выполняться
	перед .SPND ,то последний запрос будет игнорироваться.
		2. Программа  должна  использовать равное  количество .SPND и 
	.RSUM .
		3. Запрос .SPND  из подпрограммы завершения уменьшает счетчик
	приостановки, но не приостанавливает выполнение программы.Если в под-
	программе завершения выполняется .SPND , выполнение программы продол-
	жается до тех пор,пока она также не выполнит .SPND ,после чего выпол-
	нение программы будет  приостановлено  и  для возобновления ее работы
	потребуется уже два запроса .RSUM .
		4. .SPND и .RSUM подобно другим запросам,могут быть выполнены
	в подпрограммах обработки прерываний, которые написаны пользователем,
	если ранее были выполнены .INTEN  и .SYNCH .Все замечания,относящиеся 
	к .SPND и .RSUM из  подпрограммы завершения, имеют силу и для каждого
	случая.

			4.1.6.34.  .SCCA

		Запрос .SCCA выполняет следующие функции:
		- блокирует выполнение команды СУ/C;
		-сообщает о том,что с терминала было подано две команды СУ/C.
		По запросу .SCCA  команда  СУ/C воспринимается программой как
	обычная управляющая команда без специальных функций.
		Формат макрокоманды
		.SCCA area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес слова состояния терминала.
		Слово состояния терминала  предназначено для фиксирования по-
	дачи двух команд СУ/C.  Если в нем установлен 15-й разряд,то это зна-
	чит, что с терминала были  последовательно  поданы две  команды СУ/C.
	Этот разряд должен очищаться программой пользователя.
		Если аргумент addr равен  нулю в запросе .SCCA , монитор вос-
	станавливает системные функции команды СУ/C .�

					- 77 -

			4.1.6.35.  .SETTOP

		Запрос .SETTOP  позволяет программе  пользователя  установить
	новый адрес в качестве верхней границы программы. Монитор определяет,
	является ли этот  адрес допустимым и нужен ли  свопинг USR. Например,
	если запрос определяет адрес  ниже начального адреса USR, то  свопинг 
	USR не требуется.  Если .SETTOP из фонового  задания определяет адрес
	выше начального адреса .USR и ранее не была выполнена команда SET USR
	NOSWAP, то необходим свопинг USR .
		После выполнения .SETTOP R0 и ячейка 50 будут содержать адрес
	памяти, предоставленный  монитором  программе пользователя в качестве
	верхнего адреса программы. Если программа запрашивает по .SETTOP  не-
	допустимый адрес для данного задания,монитор не удовлетворит это тре-
	бование и установит для программы фактически допустимую верхнюю грани
	цу памяти.
		Формат макрокоманды
		.SETTOP addr
	где addr -запрашиваемый адрес верхней границы программы.

			4.1.6.36.  .SFPA

		Запрос .SFPA позволяет пользователю,работающему с Блоком пла-
	вающей запятой, установить адрес подпрограммы обработки прерывания от
	БПЗ. Если адрес подпрограммы обработки прерывания не определен и про-
	исходит прерывание от БПЗ,монитор печатает сообщение об ошибке и уда-
	ляет программу пользователя из памяти.
		Формат макрокоманды
		.SFPA area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес подпрограммы обработки прерывания от БПЗ.
		По окончании работы подпрограммы обработки прерывания от БПЗ,
	необходимо повторить запрос .SFPA , т.к. монитор запрещает  обработку
	прерываний после  обслуживания одного из них.  Это делается для того,
	чтобы  исключить возможность  зацикливания программы при многократном 
	повторении прерывания от БПЗ.
		При использовании БПЗ,  перед запуском подпрограммы обработки
	прерывания от БПЗ, монитор выполняет команду STST -(SP).
		Поэтому, перед командой RTI, подпрограмма пользователя должна
	увеличить указатель стека на два.�

					- 78 -

			4.1.6.37.  .SRESET

	Запрос .SRESET выполняет следующие функции:
		1) удаляет из памяти драйверы устройств,которые были загруже-
	ны по запросу .FETCH ; драйверы, которые были  загружены  по  команде
	LOAD , остаются  резидентными, как и  драйвер  системного устройства;
		2) стирает открытые в настоящее  время файлы (файлы, открытые
	по .ENTER , никогда не станут постоянными);
		3) восстанавливает число каналов ввода-вывода (16.);  каналы,
	определенные по .CDFN ,аннулируются;
		4) восстанавливает очередь ввода-вывода (первоначально - один
	элемент); QSET должен  выполняться повторно  для определения дополни-
	тельных элементов очереди.;
		5) очищает очередь подпрограмм завершения.
		Формат макрокоманды
		.SRESET

			4.1.6.38.  .SYNCH

		Запрос .SYNCH  позволяет в  подпрограмме обработки прерывания
	использовать программные запросы. Без .SYNCH  запросы из подпрограммы
	обработки прерывания не будут обрабатываться монитором.
		Формат макрокоманды
		.SYNCH area[,pic]
	где area -адрес блока из 7-ми слов; этот блок необходим при использо-
	вании .SYNCH ; содержимое блока формируется пользователем.
	    pic  -необязательный аргумент, который дает  макрокоманде  .SYNCH 
	возможность образования  PIC -кодов для использования драйверами уст-
	ройств.�

					- 79 -

	Слово			Содержимое
	---------------------------------------------------------------------

	1	Используется только системой;  его содержимое не должно изме-
		няться пользователем
	2	Номер текущего задания (0 или 2);может быть получен с помощью
		запроса .GTJB
	3,4	Не используются
	5	Аргумент R0 ; при успешном выполнении .SYNCH регистр R0 будет
		содержать этот аргумент
	6	-1
	7	0
		
		Примечание. Между выполнением запросов .INTEN и .SYNCH нельзя
		выполнять операции со стеком.

			4.1.6.39.  .TLOCK

		Запрос .TLOCK может использоваться программами,которые выпол-
	няются в режиме FB, для того чтобы сделать USR резидентной,если толь-
	ко USR не занята обслуживанием другого задания. Если USR используется 
	другим заданием, то при выполнении .TLOCK  будет установлен С-разряд,
	что указывает на то,что запрос не выполнен.
		Формат макрокоманды
		.TLOCK

			4.1.6.40.  .TRPSET

		Запрос .TRPSET  позволяет установить адрес подпрограммы обра-
	ботки прерывания по 4-му и 10-му векторам. Значение С-разряда на вхо-
	де в подпрограмму указывает на то,какое прерывание произошло: очищен-
	ный С-разряд - прерывание по  4-му вектору; установленный  С-разряд -
	по 10-му вектору.Выход из подпрограммы обработки прерывания пользова-
	теля осуществляется по команде RTI .
		Если при переполнении стека произошло прерывание по 4-му век-
	тору, то оно не  обрабатывается по .TRPSET и  на терминале печатается 
	сообщение  ?MON-F-STACK OVERFLOW  старыми версиями  монитора  SJ  или
	?MON-F-TRAP TO 4 монитором FB и XM и новыми версиями SJ.�

					- 80 -

		Формат макрокоманды
		.TRPSET area, addr
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    addr -адрес подпрограммы обработки прерывания;если addr=0,то пре-
	дыдущий .TRPSET отменяется.

			4.1.6.41.   .TWAIT

		Запрос .TWAIT приостанавливает выполнение программы пользова-
	теля на указанный интервал  времени. Запрос .TWAIT требует для своего 
	выполнения элемент очереди.
		Формат макрокоманды
		.TWAIT area, time
	где area -адрес блока из 2-х слов аргументов ЕМТ;
	    time -адрес блока из двух слов,которые содержат величину интерва-
	ла времени  (первое  слово - нижнюю границу интервала, второе слово - 
	верхнюю границу интервала).

			4.1.6.42.  .WAIT

		Запрос  .WAIT  приостанавливает  выполнение  программы до тех 
	пор, пока не закончится операция ввода-вывода на указанном канале. По
	этому  запросу можно получить  информацию  о правильности  выполнения 
	операции: если канал не открыт или произошла аппаратная ошибка, уста-
	навливается С-разряд.
		В режиме FB запрос .WAIT , если операция ввода-вывода не  за-
	вершена, вызывает  задержку выполнения одного из заданий и выполнение
	другого, если оно существует.
		Формат макрокоманды
		.WAIT chan�

					- 81 -
	

			5.СООБЩЕНИЯ

	?CSI-F-DEVICE FULL
	ПРИЧИНА. На устройстве недостаточно места для выходного файла.Сообще-
		ние печатается в том случае, если программа использует запрос
		.CSIGEN
	ДЕЙСТВИЕ. Увеличить размер свободной области на томе: стереть или пе-
		реписать на другой том  ненужные  файлы, сжать том по команде
		SQUEEZE, использовать переключатель /ALLOCATE или конструкцию
		[n] для выходного файла.

	?CSI-F-FILE NOT FOUND
	ПРИЧИНА. Входной файл не найден.
	ДЕЙСТВИЕ. Проверить поданную команду.

	?CSI-F-ILLEGAL COMMAND
	ПРИЧИНА. Поданная  команда имеет  синтаксическую ошибку  или ее длина
		превышает 80 знаков.
	ДЕЙСТВИЕ. Проверить команду.

	?CSI-F-ILLEGAL DEVICE
	ПРИЧИНА. В системе не установлено обслуживание указанного устройства.
		На системном томе  нет  соответствующего драйвера.
		ДЕЙСТВИЕ. Проверить команду. Скопировать требуемый драйвер на
		системный том.

	?KMON-F-ADDRESS
	ПРИЧИНА. Недопустимый адрес в команде E и D. Адрес должен быть в пре-
		делах от 0 до начала RMON  или до начала драйверов, если  они
		были загружены по команде LOAD.
	ДЕЙСТВИЕ. Проверить базу перемещения,если ранее была подана команда B.

	?KMON-F-ALREADY INSTALLED/ASSIGNED
	ПРИЧИНА. Устройство уже описано в системных таблицах.
	ДЕЙСТВИЕ. Удалить имя устройства из таблицы монитора или отменить ло-
		гическое имя устройства, чтобы записать  в таблицу имя нового
		драйвера.�

					- 82 -

	?KMON-F-AMBIGUOUS COMMAND
	ПРИЧИНА. Поданная команда определяется неоднозначно (например, CO мо-
		жет означать COPY или COMPILE).
	ДЕЙСТВИЕ. Использовать допустимое сокращение команды.

	?KMON-F-AMBIGUOUS OPTION
	ПРИЧИНА. Указанный переключатель определяется неоднозначно.
	ДЕЙСТВИЕ. Использовать допустимое сокращение.

	?KMON-F-BAD FETCH
	ПРИЧИНА. Ошибка чтения драйвера с системного тома.
	ДЕЙСТВИЕ. Убедиться,что драйверы устройств описаны в системных табли-
		цах и не содержат плохих блоков

	?KMON-F-COMMAND FILE I/O ERROR
	ПРИЧИНА. Ошибка чтения косвенного файла.
	ДЕЙСТВИЕ. Убедиться, что аппаратура функционирует нормально.

	?KMON-F-COMMAND FILE NESTING TOO DEEP
	ПРИЧИНА. Обращения  к косвенному  файлу на четвертом уровне вложения.
	ДЕЙСТВИЕ. Ограничить вложение косвенных файлов тремя уровнями.

	?KMON-F-COMMAND FILE NOT AT END OF LINE
	ПРИЧИНА. Косвенный файл должен быть последним (не считая комментария)
		в строке команды Клавиатурного монитора.Наличие недопустимого 
		символа в имени косвенного файла.
	ДЕЙСТВИЕ. Исправить команду.Убедиться,что имя косвенного файла содер-
		жит допустимые символы.

	?KMON-F-COMMAND FILE NOT FOUND
	ПРИЧИНА. На системном устройстве  нет  косвенного  файла  с указанным 
		именем.
	ДЕЙСТВИЕ. Проверить, есть ли  на системном устройстве указанный файл.

	?KMON-F-COMMAND STPING TOO COMPLICATED
	ПРИЧИНА. Команда слишком сложна для анализа.(Команда содержит большое
		число переключателей).
	ДЕЙСТВИЕ. Упростить команду.�

					- 83 -

	?KMON-F-CONFLICTING OPTION
	ПРИЧИНА. В команде указаны несовместимые переключатели.
	ДЕЙСТВИЕ. Исправить команду.

	?KMON-F-CONFLICTING SYSTEM OPTION
	ПРИЧИНА. Используются несовпадающие варианты  генерации драйвера уст-
		ройства и RMON.
	ДЕЙСТВИЕ. Проверить соответствие вариантов генерации.

	?KMON-F-DEVICE LOADED OR NOT REMOVABLE
	ПРИЧИНА. В команде REMOVE указан недопустимый драйвер устройства (ТТ,
		BA,драйвер системного устройства).Драйвер,указанный в команде
		REMOVE,является резидентным в памяти.
	ДЕЙСТВИЕ. Использовать команду UNLOAD перед REMOVE.

	?KMON-F-ERROR IN FILE SPEC
	ПРИЧИНА. Ошибка в формате  спецификации файла. Спецификация файла от-
		сутствует в команде.
	ДЕЙСТВИЕ. Подать правильную команду.

	?KMON-F-FILE NOT FOUND
	ПРИЧИНА. Файл,указанный в команде R,RUN,GET или FRUN не найден.
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-FOREGROUND ACTIVE
	ПРИЧИНА. Попытка выполнить команду  FRUN или UNLOAD FG когда выполня-
		ется программа в основной области памяти.
	ДЕЙСТВИЕ. Ждать  завершения  работы основной программы, перед тем как 
		выполнить команду FRUN или UNLOAD

	?KMON-F-HANDLER FILE I/O ERROR
	ПРИЧИНА. Аппаратная ошибка чтения нулевого блока драйвера.
	ДЕЙСТВИЕ. Проверить правильность функционирования аппаратуры.

	?KMON-F-ILLEGAL COMMAND
	ПРИЧИНА.Подана недопустимая команда KMON.
	ДЕЙСТВИЕ. Проверить команду.�

					- 84 -

	?KMON-F-ILLEGAL CONTINUATION
	ПРИЧИНА. Попытка продолжить строку косвенного файла на системный тер-
		минал.
	ДЕЙСТВИЕ. Исправить косвенный файл.

	?KMON-F-ILLEGAL DATE
	ПРИЧИНА. Недопустимый аргумент в команде DATE.
	ДЕЙСТВИЕ. Проверить команду.

	?KMON-F-ILLEGAL DEVICE
	ПРИЧИНА. Указано недопустимое или  несуществующее устройство. Попытка 
		выполнить  операцию, недопустимую  для указанного устройства.
		Попытка выполнить команду  UNLOAD для драйвера  устройства, с 
		которым  работает   основное  задание.  Попытка  установить в 
		системе  обслуживание TT:  или BA:  по  команде  INSTALL .
	ДЕЙСТВИЕ. Проверить поданную команду.Выполнить UNLOAD после 
		завершения работы основного задания. Скопировать драйверы TT:
		и BA: на системный том и перезагрузить систему.

	?KMON-F-ILLEGAL DEVICE FOR COMMAND FILE
	ПРИЧИНА. Косвенный файл вызван с устройства последовательного доступа
		к данным (PC: , MT:).
	ДЕЙСТВИЕ. Использовать для косвенного файла устройство с произвольным
		доступом к данным ( RK: ,DX: ) .

	?KMON-F-ILLEGAL NO ON OPTION.	
	ПРИЧИНА. Префикс NO не применим для  указанного переключателя (напри-
		мер, COPY/NOBOOT ).
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-ILLEGAL OPTION
	ПРИЧИНА. В команде указан недопустимый переключатель.
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-ILLEGAL OPTION FOR PROGRAM
	ПРИЧИНА. Используемый переключатель относится к другой команде.
	ДЕЙСТВИЕ. Выбрать соответствующий переключатель.�

					- 85 -

	?KMON-F-ILLEGAL REL FILE FORMAT
	ПРИЧИНА.Формат указанного файла не является перемещаемым форматом 
		отображения памяти.
	ДЕЙСТВИЕ. Использовать соответствующий формат файла.

	?KMON-F-ILLEGAL TIME
	ПРИЧИНА. Недопустимый аргумент в команде TIME
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-ILLEGAL UNIT NUMBER
	ПРИЧИНА. В команде SET TT:CONSOL=n  указан  недопустимый логический 
		номер терминала (ЛНТ).
	ДЕЙСТВИЕ. Использовать допустимый для данной конфигурации терминал.

	?KMON-F-ILLEGAL VALUE ON OPTION
	ПРИЧИНА. В  переключателе  указан  недопустимый  аргумент  (например,
		DIRECTORY/COLUMN:n ,где n превышает допустимое число колонок)
	ДЕЙСТВИЕ. Использовать допустимый аргумент.

	?KMON-F-LINE TOO LONG
	ПРИЧИНА. Команда  или строка косвенного  файла  превышает  допустимую 
		длину (максимальная длина - 200. знаков).
	ДЕЙСТВИЕ. Использовать допустимую длину команды (строки).

	?KMON-F-LOGICAL NAME NOT FOUND
	ПРИЧИНА. Логическое  имя устройства, указанное в  команде DEASSIGN, в
		системе не определено.
	ДЕЙСТВИЕ. Проверить  поданную команду. Использовать команду  SHOW для
		получения информации о логических именах устройств.

	?KMON-F-MUST 'R BATCH', TYPE '/U'
	ПРИЧИНА. Попытка  выполнить  команду  UNLOAD BA  без  предварительной 
		разгрузки драйвера.
	ДЕЙСТВИЕ. Вызвать BATCH и использовать переключатель /U для разгрузки 
		драйвера. BATCH автоматически выполнит команду UNLOAD BA.�

					- 86 -

	?KMON-F-NO CLOCK
	ПРИЧИНА. Нет таймера.
	ДЕЙСТВИЕ. Использовать команду TIME нельзя.

	?KMON-F-NO DATE
	ПРИЧИНА.Дата не установлена.
	ДЕЙСТВИЕ.Ввести дату,используя команду DATE.

	?KMON-F-NO FG
	ПРИЧИНА. Попытка  выполнить команду  SUSPEND, RESUME  или  UNLOAD FG,
		когда в памяти нет основного задания.
	ДЕЙСТВИЕ. Проверить поданную комнду.

	?KMON-F-NO FILE
	ПРИЧИНА. В команде не указано имя файла.
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-NO HANDLER FILE ON SY:
	ПРИЧИНА. Указанного драйвера нет на системном томе.
	ДЕЙСТВИЕ. Скопировать требуемый драйвер на системный том.

	?KMON-F-NO ROOM
	ПРИЧИНА. Нет свободного места в таблицах монитора при попытке устано-
		вить в системе обслуживание  нового  устройства  (по  команде
		INSTALL) или при  попытке присвоить устройству логическое имя
		(по команде ASSIGN ).
	ДЕЙСТВИЕ. Использовать команду REMOVE или DEASSIGN.

	?KMON-F-NOT ENOUGH MEMORY
	ПРИЧИНА. Для выполнения  загружаемой  программы  (по  команде GET или 
		RUN) недостаточно свободного места памяти.
	ДЕЙСТВИЕ. По команде UNLOAD удалить из памяти  драйверы не использую-
		щихся устройств. Использовать команду SET USR SWAP для разре-
		шения свопинга программы USR. Если  получено при запуске NED,
		скопируйте любой файл куда-нибудь,например на SL: и повторите
		запуск NED.�

					- 87 -

	?KMON-F-OVERLAY READ ERROR
	ПРИЧИНА. Аппаратная ошибка чтения оверлейного сегмента KMON.Системный
		файл  монитора имеет плохой блок. Испорчен  монитор в памяти.
	ДЕЙСТВИЕ. Проверить правильность функционирования аппаратуры. Вызвать 
		другой файл монитора по команде BOOT.Попробовать перезагрузи-
		ться и проверить логику программы.

	?KMON-F-PARAMETERS
	ПРИЧИНА. Аргументы команды SAVE указаны неправильно.
	ДЕЙСТВИЕ. Проверить поданную команду.

	?KMON-F-REL FILE I/O ERROR
	ПРИЧИНА. Недопустимый формат  файла  для основного задания.Аппаратная 
		ошибка чтения (записи) файла.
	ДЕЙСТВИЕ. Проверить поданную команду. Проверить правильность функцио-
		нирования аппаратуры.

	?KMON-F-SAVE FILE I/O ERROR
	?KMON-F-INPUT ERROR
	?KMON-F-OUTPUT ERROR 
	ПРИЧИНА. Ошибка при вводе  файла формата  отображения памяти (SAV) по
		команде R,RUN или GET , или при выводе файла по команде SAVE.
		Возможна аппаратная ошибка.
	ДЕЙСТВИЕ. Проверить,что указанный  файл имеет  формат отображения па-
		мяти.Убедиться в том, что при выполнении команды SAVE на томе
		достаточно свободного места для записи нового файла.Проверить
		правильность функционирования аппаратуры.

	?KMON-F-SYSTEM I/O ERROR
	ПРИЧИНА. Аппаратная ошибка при выполнении операции свопинга.
	ДЕЙСТВИЕ. Проверить установку защиты  записи. Проверить  правильность
		функционирования аппаратуры.

	?KMON-F-TOO MANY FILES
	ПРИЧИНА. В команде указано недопустимое число файлов.
	ДЕЙСТВИЕ. Проверить команду.�

					- 88 -

	?MON-F-BAD FETCH
	ПРИЧИНА. Ошибка чтения драйвера с системного устройства. Недопустимый
		адрес загрузки драйвера.
	ДЕЙСТВИЕ. Проверить,что адрес загрузки драйвера находится  в пределах
		программы.

	?MON-F-DIR I/O ERR (см. ?MON-F-DIRECTORY I/O ERROR)
	?MON-F-DIR OVFLO (см. ?MON-F-DIRECTORY OVERFLOW)
	?MON-F-DIRECTORY I/O ERROR
	ПРИЧИНА. Аппаратурная ошибка  при  выполнении  операции  ввода-вывода 
		справочника устройства.
	ДЕЙСТВИЕ. Проверить диск на плохие блоки.Проверить правильность функ-
		ционирования аппаратуры.

	?MON-F-DIRECTORY OVERFLOW
	?MON-F-DIRECTORY FULL
	ПРИЧИНА. Переполнение  справочника устройства (при выполнении запроса
		.ENTER)
	ДЕЙСТВИЕ. Использовать команду INITIALIZE/SEGMENTS для увеличения чи-
		сла сегментов справочника. Стереть или  переписать на  другой 
		том ненужные файлы.  Слить несколько соседних FILE.BAD в один
	командой CREATE и/или программой DESS

	?MON-F-FP TRAP
	ПРИЧИНА. Произошло  прерывание от БПЗ, но программой  пользователя не
		установлен  адрес  подпрограммы  обработки  этого  прерывания 
		(по .SFPA ).
	ДЕЙСТВИЕ. Не требуется. Программа  пользователя удаляется из  памяти.

	?MON-F-FPU TRAP  (см.?MON-F-FP TRAP )

	?MON-F-ILL ADDR  (см.?MON-F-ILLEGAL ADDRESS)

	?MON-F-ILL CHAN  (см.?MON-F-ILLEGAL CHANNEL)

	?MON-F-ILL EMT   (см.?MON-F-ILLEGAL EMT )�

					- 89 -

	?MON-F-ILL SST   (только для монитора XM)
	ПРИЧИНА. Неправильно  установлен  вектор прерывания  для команды BPT,
		IOT или TRAP (нечетный или нулевой адрес).
	ДЕЙСТВИЕ. Установить правильно вектор прерывания.Проверить программу,
		ошибка в которой  может вызвать непредусмотренное прерывание.

	?MON-F-ILL USR  (см.?MON-F-ILLEGAL CALL TO USR)

	?MON-F-ILLEGAL ADDRESS
	ПРИЧИНА. Адрес, указанный в запросе, нечетный или вне границ задания.
	ДЕЙСТВИЕ. Исправить адрес.

	?MON-F-ILLEGAL CALL TO USR
	ПРИЧИНА. Попытка вызвать USR из подпрограммы завершения.
	ДЕЙСТВИЕ. Исправить программу.

	?MON-F-ILLEGAL CHANNEL
	ПРИЧИНА. Указан недопустимый номер канала.
	ДЕЙСТВИЕ. Использовать запрос .CDFN для определения дополнительных 
		каналов ввода-вывода.

	?MON-F-ILLEGAL EMT
	ПРИЧИНА. Недопустимая команда ЕМТ.
	ДЕЙСТВИЕ. Проверить функциональный код в команде ЕМТ.

	?MON-F-MEM ERR
	?MON-F-MEMORY NNNNNN
	ПРИЧИНА.Ошибка памяти по адресу NNNNNN
	ДЕЙСТВИЕ.Проверить оперативную память с помощью тест-программ.

	?MON-F-MMU FAULT NNNNNN  (только для монитора XM)
	ПРИЧИНА.Обращение к адресу, который находится вне границ отображенной
		программы.
	ДЕЙСТВИЕ.Проверить команду, предшествующую команде с адресом NNNNNN и
		исправить ее.�

					- 90 -

	?MON-F-NO DEV
	?MON-F-NO DEVICE
	ПРИЧИНА.Попытка выполнить  операцию  чтения (записи) при отсутствии в
		памяти драйвера указанного устройства.
	ДЕЙСТВИЕ.Загрузить  соответствующий драйвер по команде LOAD перед за-
		грузкой программы.

	?MON-F-OVERLAY ERROR
	ПРИЧИНА.Ошибка  чтения  оверлейного  сегмента программы пользователя.
	ДЕЙСТВИЕ.Убедиться, что устройство работает не в  автономном режиме и
		что загружен соответствующий драйвер,если оверлейная програм-
		ма вызывается с устройства другого типа,чем системное устрой-
		ство.

	?MON-F-ROWER FAIL HALT
	ПРИЧИНА.Нарушение питания.
	ДЕЙСТВИЕ.Перезагрузить систему.

	?MON-F-STACK OVERFLOW
	ПРИЧИНА.Прерывание по 4 или 10 векторам.Переполнение стека (указатель
		стека ниже 400).
	ДЕЙСТВИЕ.См.сообщение ?MON-F-TRAP TO 4

	?MON-F-SWAP ERROR
	ПРИЧИНА.Аппаратная  ошибка при записи программы  пользователя на диск 
		во время операции свопинга.
	ДЕЙСТВИЕ.Проверить готовность устройства к выполнению операции записи

	?MON-F-SYSTEM HALT
	ПРИЧИНА.Ошибка при выполнении системной программы.
	ДЕЙСТВИЕ.Перезагрузить систему.

	?MON-F-SYSTEM READ ERROR
	ПРИЧИНА.Ошибка чтения KMON или USR монитором FB или XM .Файл монитора
		содепжит плохой блок или системный том уже разгружен.
	ДЕЙСТВИЕ.См.SYSTEM READ FAILURE HALT�

					- 91 -

	?MON-F-SYSTEM READ FAILURE HALT
	ПРИЧИНА.Попытка прочитать в память KMON или USR, когда системный  том
		разгружен или файл монитора,находящийся на системном  устрой-
		стве,имеет плохие блоки.
	ДЕЙСТВИЕ.Использовать новую копию файла монитора.  Поставить на место 
		системный  диск  и запустить  систему  пультовой  командой  G

	?MON-F-SYSTEM WRITE ERROR
	ПРИЧИНА.Попыка  записи  на  системное  устройство  при  установленной
		защите записи.Возможна аппаратная ошибка.
	ДЕЙСТВИЕ.Разрешить запись на диск.  Проверить правильность функциони-
		рования аппаратуры.

	?MON-F-TRAP TO 4
	?MON-F-TRAP TO 10
	ПРИЧИНА.Обращение к несуществующей  памяти  или неспособность устрой-
		ства передать или  принять информацию за  отведенное ему вре-
		мя. Используется несуществующая команда. Произошло переполне-
		ние стека. Неправильная адресация.
	ДЕЙСТВИЕ.Определить границы  программы пользователя по карте загрузки
		или по содержимому ячеек 40, 46, 50 и 54. Если ошибка произо-
		шла в  пределах  программы пользователя, проверить программу.
		Проверить,  что программа пользователя  не разрушила  области
		стека,  элементов  очереди  ввода-вывода или самого монитора.
		Проверить  правильность  выполнения  свопинга USR .Проверить,
		нет ли обращения к несуществующему устройству.

	?MON-F-UNLOADED DRIVER  (только для мониторов FB ,XM)
	ПРИЧИНА.Попытка обращения к  устройству, драйвер которого отсутствует
		в оперативной памяти.
	ДЕЙСТВИЕ.Драйверы устройств для основного задания монитора FB и зада-
		ний монитора XM должны быть резидентными в памяти.  Использо-
		вать команду LOAD для загрузки  драйверов устройств перед за-
		пуском программы.�

					- 92 -

	?MON-W-DIRECTORY UNSAFE NNNNNN   (только  для мониторов FB и XM).
	ПРИЧИНА.Ошибка в  команде, предшествующей команде  с адресом NNNNNN ,
		при  корректировке справочника  устройства  программой  USR .
	ДЕЙСТВИЕ.Монитор  пытается завершить операцию  со справочником прежде
		чем удалить программу из памяти. Проверить справочник устрой-
       		ства, т.к. возможна потеря информации.

	?MSBOOT-F-FILE NOT FOUND
	ПРИЧИНА.Указанный файл отсутствует на магнитной ленте.
	ДЕЙСТВИЕ.Проверить поданную команду.

	?MSBOOT-F-I/O ERROR
	ПРИЧИНА. Аппаратная ошибка при выполнении операции загрузки с
		магнитной ленты .
	ДЕЙСТВИЕ.Проверить правильность установки тома магнитной 
		ленты.

	?MSBOOT-F-ILLEGAL FILE NAME
	ПРИЧИНА. Указано недопустимое имя файла.
	ДЕЙСТВИЕ.Проверить поданную команду.Проверить формат файла.

	?MSBOOT-F-LINE TOO LONG
	ПРИЧИНА.Командная строка в MSBOOT имеет длину более 80 знаков
	ДЕЙСТВИЕ.Проверить поданную командную строку.

	?BOOT-F-I/O ERROR
	ПРИЧИНА.Ошибка ввода-вывода во время загрузки системы.
	ДЕЙСТВИЕ.Проверить  наличие на  системном диске соответствующего дан-
		ному  загрузчику  монитора.  Проверить диск  на  плохие блоки
		Записать на диск системный загрузчик.

	?BOOT-F-INSUFFICIENT MEMORY
	ПРИЧИНА.Объем оперативной  памяти не позволяет разместить загружаемый
		монитор.
	ДЕЙСТВИЕ.Использовать другой монитор.�

					- 93 -

	?BOOT-F-INVALID OR MISSING TT.SYS
	ПРИЧИНА.На загружаемом  томе нет  драйвера TT: .  Вариант   генерации
		драйвера  TT: не  соответствует  варианту генерации монитора.
	ДЕЙСТВИЕ.Записать на том файл TT.SYS.
		Проверить соответствие  вариантов  генерации  драйвера  TT: и
		монитора.

	?BOOT-F-NO MEMORY MANAGEMENT HARDWARE
	ПРИЧИНА.Попытка загрузить монитор XM при отсутствии диспетчера памяти
	ДЕЙСТВИЕ.Использовать монитор SJ или FB,или систему,имеющую диспетчер 
		памяти.

	?BOOT-F-NO MONITOR FILE ON VOLUME
	ПРИЧИНА.На системном томе нет монитора с соответствующим данному за-
		грузчику именем.
	ДЕЙСТВИЕ.Проверить правильность выбора системного тома.

	?BOOT-F-NO SWAP ON VOLUME
	ПРИЧИНА.На загруженном томе нет файла SWAP.SYS.
	ДЕЙСТВИЕ.Использовать другой системный том для копирования файла
		SWAP.SYS и перезагрузить систему.

	?BOOT-F-SWAP FILE IS TOO SMALL
	ПРИЧИНА.Размер файла SWAP.SYS менее 24. блоков.
	ДЕЙСТВИЕ.Использовать другой системный том для увеличения размера
		файла до 24. блоков и перезагрузить систему.Использовать
		SET USR NOSWAP(SWAP.SYS=0blocks SJ, =2blocks CD)�

					- 94 -

					ПРИЛОЖЕНИЕ 

		Коды ошибок программных запросов

	Запрос	Код		Причина ошибки
	--------------------------------------------------------------------

	.CDFN	0	Попытка  определить меньшее число каналов,чем есть в
			наличии
	.CHCOPY	0	Другое задание не существует  или  канал  (ochan) не
			открыт
		1	Канал (chan) занят
	.CMKT	0	Запрос с указанием id (id<>0) не существует
	.CNTXSW	0	В списке адресов указан не допустимый адрес
	.CSIGEN	0	Недопустимая команда
		1	Указанного устройства нет в таблицах системы
		3	Попытка открыть файл по .ENTER неудачна из-за пере-
			полнения справочника устройства
		4	Входной файл не найден при выполнении .LOOKUP
	.CSISPC	0	Недопустимая команда
		1	Недопустимое устройство
	.CSTAT	0	Канал не открыт
	.DELETE	0	Указанный канал занят
		1	Файл не найден в справочнике устройства
		2	Недопустимая операция
	.DSTATU 0	Устройство не найдено в таблицах системы
	.ENTER	0	Указанный канал занят
		1	На устройстве не найдена область большая или равная
			М (len=M); или устройство или справочник устройства
			переполнены
	.FETCH	0	Недопустимое имя устройства или в системе отсутствует
			драйвер указанного устройства
	.RELEAS	0	Недопустимое имя устройства
	.GVAL	0	Указанное значение смещения находится вне области 
			RMON
	.LOOKUP	0	Указанный канал занят
		1	Указанного файла нет на устройстве
	.MRKT	0	Нет свободного элемента очереди�

					- 95 -

	.MTATCH	2	Несуществующий ЛНТ
		4	Терминал логически связан с другим заданием
		5	Недействительный адрес слова асинхронного состояния 
			терминала (в режиме XM)
	.MTDTCH	1	Недопустимый логический номер терминала ;терминал не 
			связан с заданием
		2	Несуществующий ЛНТ
			 
	.MTGET	1	Недопустимый номер терминала;терминал не связан с 
			заданием
		2	Несуществующий ЛНТ
		5	Недействительный адрес слова асинхронного состояния 
			терминала
	.MTIN	0	Нет символов в буфере ввода
		1	Недопустимый номер терминала; терминал не связан с
			заданием
		5	Недействительный адрес слова асинхронного состояния
			терминала (в режиме XM)
	.MTOUT	0	Нет свободного места в буфере вывода
		1	Недопустимый номер терминала,терминал не связан с за-
			данием
		2	Несуществующий ЛНТ
	.MTPRNT	1	Недопустимый номер терминала; терминал не связан с 
			заданием
		2	Несуществующий ЛНТ
		5	Недействительный адрес слова асинхронного состояния
			терминала
	.MTRCTO	1	Недопустимый номер терминала; терминал не связан с
			заданием
		2	Несуществующий ЛНТ
	.MTSET	1	Недопустимый номер терминала; терминал не связан с
			заданием
		2	Несуществующий ЛНТ
		5	Недействительный адрес слова асинхронного состояния
			терминала (в режиме XM)
	.PROTE	0	Указанный вектор уже используется
		1	Адрес вектора больше 476 или не кратен четырем
	.UNPRO	1	Адрес вектора больше 476 или не кратен четырем�

					- 96 -

	.RCVD	0	Попытка обращения к несуществующему заданию
	.RCVDC
	.RSVDW
	.READ	0	Попытка чтения после конца файла
	.READC
	.READW
		1	Аппаратная ошибка на канале
		2	Указанный канал не открыт
	.RENAME	0	Указанный канал занят
		1	Файл не найден
		2	Недопустимая операция
	.REOPEN	0	Указанный канал занят
	.SAVEST	0	Указанный канал не открыт
		1	Файл открыт по .ENTER или находится на магнитной лен-
			те,поэтому .SAVESTATUS для него недопустим
	.SDAT	0	Попытка обращения к несуществующему заданию
	.SDATC
	.SDATW
	.SPFUN	0	Попытка чтения или записи после конца файла
		1	Аппаратная ошибка на канале
		2	Канал не открыт
	.TLOCK	0	USR уже используется другим заданием
	.TTYIN	0	Нет символа в буфере ввода
	.TTINR
	.TTYOUT	0	Буфер вывода переполнен
	.TTOUTR
	.TWAIT	0	Нет свободного элемента очереди
	.WAIT	0	Указанный канал не открыт
		1	Аппаратная ошибка на канале во время выполнения пре-
			дыдущей операции ввода-вывода
	.WRITE	0	Попытка записи после конца файла
	.WRITC
	.WRITW
		1	Аппаратная ошибка на канале
		2	Канал не открыт�

					- 97 -

		Примечания:
		1.Для запроса .SYNCH возврат по ошибке происходит в следую-
	щих случаях:
		-не закончена макрокоманда .SYNCH,использующая тот же блок 
		аргументов ЕМТ;
		-указан недопустимый номер задания;
		-если произошло удаление или останов программы.
		При этом управление передается на следующую за .SYNCH ячейку.
		Если макрокоманда .SYNCH выполнена успешно,то возврат проис-
	ходит в следующую за возвратом по ошибке ячейку.
		2.При выполнении запросов,не указанных в табл.30,ошибок не
	происходит.