Uknc RT-11 monrt

From Felixl.com

Jump to: navigation, 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 .
		Область,которая отводится для драйверов устройств,должна быть
	достаточной для одновременного размеще