<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.felixl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nzeemin</id>
	<title>Felixl.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.felixl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nzeemin"/>
	<link rel="alternate" type="text/html" href="https://www.felixl.com/Special:Contributions/Nzeemin"/>
	<updated>2026-10-21T02:09:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1792</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1792"/>
		<updated>2015-04-02T06:11:27Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[UKNC FDD passport]] — Устройство КМД УК. Паспорт. У13.065.013 ПС&lt;br /&gt;
* [[UKNC FDD 1801vp1-128]] — Техническое описание микросхемы 1801ВП1-128 контроллера дисковода&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Basic Manual|БЕЙСИК. Описание языка]] — БЕЙСИК. Описание языка. У1.00031-01 35 01.&lt;br /&gt;
* [[Uknc Basic PgmMan|БЕЙСИК. Руководство программиста]] — БЕЙСИК. Руководство программиста. У1.00031-01 33 01&lt;br /&gt;
* [[Uknc Basic OprMan|БЕЙСИК. Руководство оператора]] — БЕЙСИК. Руководство оператора. У1.00031-01 34 02&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Hudyakov PP|Худяков Р.К. Практика работы с периферийным процессором]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
** [[Uknc Magazine 1994-01 ProcInt|1994-01. Режим адресации процессора К1801ВМ2]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/УКНЦ УКНЦ] — статья в Википедии&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Hudyakov_PP&amp;diff=1791</id>
		<title>Uknc Hudyakov PP</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Hudyakov_PP&amp;diff=1791"/>
		<updated>2015-04-02T06:08:26Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Худяков Р.К.&lt;br /&gt;
&lt;br /&gt;
ПРАКТИКА РАБОТЫ С ПЕРИФЕРИЙНЫМ ПРОЦЕССОРОМ УКНЦ&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Основной целью создания ЭВМ УКНЦ было ее применение в ходе&lt;br /&gt;
учебного процесса в школах, но  доступность и относительно низкая&lt;br /&gt;
стоимость сделали ее популярной и для частных пользователей.&lt;br /&gt;
   Особенностью ее архитектуры является наличие дополнительного&lt;br /&gt;
процессора. В принципе в корпусе УКНЦ собрано два микрокомпьютера,&lt;br /&gt;
каждый из которых оснащен собственным ОЗУ и набором собственных устройств.&lt;br /&gt;
Такая архитектура позволила резко разгрузить центральный процессор, кото-&lt;br /&gt;
рый выполняет в основном функции управления локальной сетью, а такие&lt;br /&gt;
функции, как вывод информации на экран и печать, а так же работу с&lt;br /&gt;
внешними накопителями информации переложить на периферийный процессор.&lt;br /&gt;
Методика работы с центральным процессором не вызывает затруднений.&lt;br /&gt;
&lt;br /&gt;
	В данной статье дано описание практической работы с некоторыми&lt;br /&gt;
устройствами магистрали периферийного процессора ЭВМ УКНЦ.&lt;br /&gt;
&lt;br /&gt;
	Прежде чем программа будет работать в ОЗУ ПП ее нужно туда загрузить.&lt;br /&gt;
Остановимся на этом поподробнее. Формат массива параметров (далее МП )&lt;br /&gt;
изображен на рис. 1&lt;br /&gt;
&lt;br /&gt;
MASSIV:	.Byte	0	;В этом байте будет содержаться код ошибки или 0&lt;br /&gt;
COMAND:	.Byte	0	;Команда (01-ВЫДЕЛИТЬ ПАМЯТЬ,02-ОСВОБОДИТЬ ПАМЯТЬ&lt;br /&gt;
			;	    10-ЧТЕНИЕ,20-ЗАПИСЬ,30-ПУСК)&lt;br /&gt;
TYPDEV:	.Word	32	;Устройство-периферийный процессор&lt;br /&gt;
ADR$PP:	.Word	0	;Адрес ОЗУ ПП&lt;br /&gt;
ADR$CP:	.Word	0	;Адрес ОЗУ ЦП&lt;br /&gt;
LENGTH:	.Word	0	;Длина программы в словах (не байтах !)&lt;br /&gt;
ADRMAS:	.Word	MASSIV	;Слово всегда содержит начальный адрес массива&lt;br /&gt;
	.Word	401	;Стоповый элемент (используется при передаче)&lt;br /&gt;
&lt;br /&gt;
Рис. 1&lt;br /&gt;
&lt;br /&gt;
Команды &amp;quot;ВЫДЕЛИТЬ ПАМЯТЬ&amp;quot;,&amp;quot;ОСВОБОДИТЬ ПАМЯТЬ&amp;quot;,&amp;quot;ЧТЕНИЕ&amp;quot;,&amp;quot;ЗАПИСЬ&amp;quot;,&amp;quot;ПУСК&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для правильного выполнения команды &amp;quot;ВЫДЕЛИТЬ ПАМЯТЬ&amp;quot; поле COMAND МП&lt;br /&gt;
должен содержать код 01,TYPDEV код 32,а поле LENGTH длину загружаемой&lt;br /&gt;
программы. Значение остальных полей значения не имеет.&lt;br /&gt;
После пересылки МП в поле ADR$PP ПП возвращает адрес , начиная с которого&lt;br /&gt;
после команды &amp;quot;ЗАПИСЬ&amp;quot; и будет размещена пересылаемая программа.&lt;br /&gt;
При повторном запросе выделение памяти производится из оставшейся свободной.&lt;br /&gt;
Если размер программы превосходит размер свободной памяти в ПП,&lt;br /&gt;
то в поле LENGTH МП возвращается длина свободной памяти,а поле MASSIV&lt;br /&gt;
не будет равно нулю.&lt;br /&gt;
&lt;br /&gt;
	Для команды &amp;quot;ОСВОБОДИТЬ ПАМЯТЬ&amp;quot; полe COMAND должно содержать код 02,&lt;br /&gt;
а поля ADR$PP и LENGTH - те же параметры которые задавались при&lt;br /&gt;
выделении данного сегмента. Иначе команда не будет выполнена,а поле&lt;br /&gt;
MASSIV будет содержать ненулевое значение.&lt;br /&gt;
&lt;br /&gt;
	Для команд &amp;quot;ЧТЕНИЕ&amp;quot;(&amp;quot;ЗАПИСЬ&amp;quot;) поле COMAND содежит соответственно&lt;br /&gt;
коды 10(20),а поле ADR$CP aдрес ОЗУ ЦП откуда (куда) будет&lt;br /&gt;
пересылаться программа.&lt;br /&gt;
&lt;br /&gt;
	Для команды &amp;quot;ПУСК&amp;quot; поле COMAND содержит код 30,а поле ADR$PP&lt;br /&gt;
стартовый адрес программы. Сама программа должна быть оформлена&lt;br /&gt;
как подпрограмма (заканчиваться RTS PC),и быть перемещаемой,&lt;br /&gt;
так как место ее размещения заранее неизвестно.&lt;br /&gt;
&lt;br /&gt;
На рис. 2 приведена подпрограмма загрузки МП в ПП.&lt;br /&gt;
&lt;br /&gt;
ZAGR:	.Enable	LSB		;&lt;br /&gt;
	MOV	#ADRMAS,R0	;Адрес МП в R0&lt;br /&gt;
	MOV	#5,R1		;&lt;br /&gt;
	BR	1$		;Передать четыре байта (два слова&lt;br /&gt;
2$:	MOVB	(R0)+,@#176676	;поле ADRMAS и слово содержащее 401&lt;br /&gt;
1$:	TSTB	@#176674	;&lt;br /&gt;
	BPL	.-4		;&lt;br /&gt;
	SOB	R1,2$		;&lt;br /&gt;
	RTS	PC		;Вернуться&lt;br /&gt;
&lt;br /&gt;
рис. 2&lt;br /&gt;
&lt;br /&gt;
Подпрограмма передает по каналу К2 адрес массива параметров и два бай-&lt;br /&gt;
та завершения передачи нормализующие состояние канала.&lt;br /&gt;
&lt;br /&gt;
На рис. 3 приведена &amp;quot;полная&amp;quot; подпрограмма загрузки программы,&lt;br /&gt;
ее пуска и затем освобождения памяти ПП по окончанию работы.&lt;br /&gt;
&lt;br /&gt;
ZAGPP:	.Enable	LSB&lt;br /&gt;
	MOVB	#1,СOMAND	;Отработать команду &amp;quot;ВЫДЕЛИТЬ ПАМЯТЬ&amp;quot;&lt;br /&gt;
	MOV	(R5),OCP	;Через R5 передается табличка из&lt;br /&gt;
	CALL	ZAGR		;двух слов. 1-е длина программы&lt;br /&gt;
				;2-е ее начальный адрес в ОЗУ ЦП&lt;br /&gt;
	TSTB	MASSIV		;A памяти хватит ?&lt;br /&gt;
	BEQ	1$		;Да.&lt;br /&gt;
	MOV	#NOMEM,R0	;Выведем сообщение об ошибке&lt;br /&gt;
	EMT	351		;&amp;quot;Не хватает памяти&amp;quot;&lt;br /&gt;
	CMP	(R5)+,(R5)+	;Увеличим R5 на четыре&lt;br /&gt;
	SEC			;Установим признак ошибки&lt;br /&gt;
	BR	2$		;И на выход&lt;br /&gt;
				;&lt;br /&gt;
1$:	MOVB	#20,COMAND	;Отработать &amp;quot;ЗАПИСЬ&amp;quot;&lt;br /&gt;
	MOV	(R5)+,LENGTH	;Из таблички 1-е слово в LENGTH,&lt;br /&gt;
	MOV	(R5)+,ADR$CP	;а 2-е в ADR$CP&lt;br /&gt;
	CALL	ZAGR		;&lt;br /&gt;
	MOVB	#30,COMAND	;Отработать &amp;quot;ПУСК&amp;quot;&lt;br /&gt;
	CALL	ZAGR		;&lt;br /&gt;
	MOVB	#2,COMAND	;Отработать &amp;quot;ОСВОБОДИТЬ ПАМЯТЬ&amp;quot;&lt;br /&gt;
	MOV	-4(R5),ADR$CP	;&lt;br /&gt;
	CALL	ZAGR		;&lt;br /&gt;
2$:	RTS	R5		;Вернуться&lt;br /&gt;
&lt;br /&gt;
рис. 3&lt;br /&gt;
&lt;br /&gt;
   Формат вызова подпрограммы на рис. 4&lt;br /&gt;
&lt;br /&gt;
 .MACRO	$ZAGPP	STADR,ENDADR&lt;br /&gt;
&lt;br /&gt;
	JSR	R5,ZAGPP&lt;br /&gt;
	.WORD	&amp;lt;ENDADR-STADR/2&amp;gt;,STADR&lt;br /&gt;
&lt;br /&gt;
 .ENDM	$ZAGPP&lt;br /&gt;
&lt;br /&gt;
  А это полностью законченая программа&lt;br /&gt;
&lt;br /&gt;
	.TITLE	MYPROG&lt;br /&gt;
&lt;br /&gt;
START:	$ZAGPP	STARTPP,ENDPP	;Загрузить программу&lt;br /&gt;
	EMT	350		;Выход в монитор&lt;br /&gt;
&lt;br /&gt;
	  ;Здесь находятся сами подпрограммы,сообщения и массив параметров&lt;br /&gt;
&lt;br /&gt;
STARTPP: INC	(PC)+		;Эту программу можно заменить любой другой&lt;br /&gt;
	.WORD	0		;---*---*---*---*---*---*---*---*---*---*-&lt;br /&gt;
	RTS	PC		;Вернуться в ЦП&lt;br /&gt;
ENDPP:&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
рис. 4&lt;br /&gt;
&lt;br /&gt;
   Итак программа в ПП загружена. Работа с регистрами внешних&lt;br /&gt;
устройств не отличается от обычной. Адресное пространство ОЗУ ПП&lt;br /&gt;
имеет диапазон 0-77777 , ПЗУ ПП - 100000-177777, то есть&lt;br /&gt;
32 кбайт ОЗУ и 32 кбайт ПЗУ. Так же как и ЦП , ПП имеет свой&lt;br /&gt;
пультовый отладчик , облегчающий отладку программ (вход в него&lt;br /&gt;
осуществляется из меню установок одновременным нажатием клавиш&lt;br /&gt;
&amp;lt;УПР&amp;gt; и &amp;lt;@&amp;gt;). Работать с ним нужно так же , как и с пультовым&lt;br /&gt;
отладчиком в центральном процессоре.&lt;br /&gt;
Давайте лучше поговорим о дополнительных возможностях которые могут&lt;br /&gt;
быть использованы только при помощи ПП , при разработке программ.&lt;br /&gt;
Начнем со средств отображения.&lt;br /&gt;
Для начала &amp;quot;пощелкаем&amp;quot; палитрой. В УКНЦ любой цвет выводимый на&lt;br /&gt;
экран можно представить любым другим (например поменять местами&lt;br /&gt;
красный на зеленый и(или) фиолетовый на бирюзовый и т.д.,хоть&lt;br /&gt;
черный на белый и наоборот). Допустим Вы поменяли синий&lt;br /&gt;
на белый. Теперь все , что Вы запишете в голубой план на экране появит-&lt;br /&gt;
ся белым цветом,причем,если какая либо другая программа не изменит&lt;br /&gt;
значения соответствующей ячейки памяти,то даже после выхода в мони-&lt;br /&gt;
тор ,все ,что по идее должно было бы отображаться на экране голубым,&lt;br /&gt;
будет отображаться белым,включая любую графическую информацию.&lt;br /&gt;
Следует заметить , что замена цветов происходит очень быстро&lt;br /&gt;
(практически мгновенно), на этом можно построить интересные эффекты.&lt;br /&gt;
&lt;br /&gt;
	Формат ячеек управления аппаратным отображением на рис. 5&lt;br /&gt;
Каждый из цветов представлен четырьмя битами.&lt;br /&gt;
.SWT&lt;br /&gt;
АДРЕС - |0000|0000|0000|0000|   АДРЕС+2 - |0000|0000|0000|0000|&lt;br /&gt;
	белый желт фиол красн		  бирюз зел голуб черн&lt;br /&gt;
&lt;br /&gt;
   Таких пар ячеек  - 4 . Их назначение приведено в табл. 1&lt;br /&gt;
&lt;br /&gt;
Каждая из четырех тетрад в каждом слове представлена соответственно&lt;br /&gt;
(побитно слева направо) -&lt;br /&gt;
Яркость цвета. 1-100% яркости , 0-50% яркости&lt;br /&gt;
Красный цвет   1-красный есть , 0-красного нет&lt;br /&gt;
Зеленый цвет   1-зеленый есть , 0-зеленого нет&lt;br /&gt;
Голубой цвет   1-голубой есть , 0-голубого нет&lt;br /&gt;
&lt;br /&gt;
Здесь следует заметить одну деталь. На машинах з-да &amp;quot;КВАНТ&amp;quot;&lt;br /&gt;
литеры 5 из схемы контроллера цветного монитора удалена&lt;br /&gt;
ИС 155ЛП9 , поэтому изменения яркостного бита ни к чему не&lt;br /&gt;
приводят, а на почти половине машин з-да &amp;quot;СЭМЗ&amp;quot; ИС 155ЛП9&lt;br /&gt;
заменена на ИС 155ЛН2 поэтому в яркостный бит для получения&lt;br /&gt;
100% яркости нужно записать 0 , а для 50% - 1 , но опять&lt;br /&gt;
же все выше сказанное справедливо только для цветного монитора.&lt;br /&gt;
На отображение градаций яркости на черно-белом мониторе этот&lt;br /&gt;
бит не влияет.&lt;br /&gt;
Так же последние полтора года изменена схема подключения&lt;br /&gt;
цветного монитора (поменяны между собой выходы красного зеленого цветов).&lt;br /&gt;
Это тоже следует иметь ввиду.&lt;br /&gt;
___________________________________________&lt;br /&gt;
!   АДРЕС    ! ГДЕ БУДУТ ИЗМЕНЯТЬСЯ ЦВЕТА !&lt;br /&gt;
+-----------------------------------------+&lt;br /&gt;
! 2400,2402  !   Верхняя служебная строка !&lt;br /&gt;
! 2470,2472  !   Собственно сам экран     !&lt;br /&gt;
! 4700,4702  !   Меню установок           !&lt;br /&gt;
! 6750,6752  !   Нижняя служебная строка  !&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
&lt;br /&gt;
   Для примера приведем программу в ПП работающую так:&lt;br /&gt;
сначала экран выключается, затем рисуется голубой квадратик&lt;br /&gt;
(это не будет видно), затем экран включается (квадратик&lt;br /&gt;
появляется) и после этого цвет квадратика начинает меняться&lt;br /&gt;
от голубого до белого.&lt;br /&gt;
&lt;br /&gt;
	MOV	#2470,R0	;Адрес палитры экрана в R0&lt;br /&gt;
	MOV	(R0),-(SP)	;Запомнить в стеке текущее значение&lt;br /&gt;
	MOV	2(R0),-(SP)	;палитры&lt;br /&gt;
	CLR	(R0)		;Выключить экран&lt;br /&gt;
	CLR	2(R0)		;(все цвета на экране представить черным)&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#100000,@#177010;&lt;br /&gt;
	MOV	#30.,R1		;&lt;br /&gt;
2$:	MOV	#20.,R2		;&lt;br /&gt;
1$:	MOVB	#377,@#177012	;Нарисовать квадратик&lt;br /&gt;
	INC	@#177010	;&lt;br /&gt;
	SOB	R2,1$		;&lt;br /&gt;
	ADD	#&amp;lt;80.-20.&amp;gt;,@#177010 ;&lt;br /&gt;
	SOB	R1,2$		;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#1,R1		;&amp;quot;Щелкаем&amp;quot; палитру.&lt;br /&gt;
3$:	MOV	R1,R3		;&lt;br /&gt;
	.REPT	4		;Четыре раза ASL R3&lt;br /&gt;
	ASL	R3		;&lt;br /&gt;
	.ENDR			;&lt;br /&gt;
	BIC	#360,(R0)	;&lt;br /&gt;
	BIS	R3,(R0)		;Квадратик отображается&lt;br /&gt;
	CLR	R2		;Цветами от голубого до белого&lt;br /&gt;
	SOB	R2,.		;&amp;lt;-задержка&lt;br /&gt;
	SOB	R2,.		;&amp;lt;-задержка&lt;br /&gt;
	INC	R1		;&lt;br /&gt;
	CMP	#8.,R1		;&lt;br /&gt;
	BNE	3$		;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	(SP)+,2(R0)	;Возвращаем предыдущие значения&lt;br /&gt;
	MOV	(SP)+,(R0)	;Ячейкам&lt;br /&gt;
	RTS	PC		;Возврат&lt;br /&gt;
&lt;br /&gt;
   Немного подробностей о выводе информации в служебные строки.&lt;br /&gt;
Можно менять формат,цвет символа и знакоместа при выводе,причем цвета&lt;br /&gt;
можно менять двумя способами. Первый способ, это действительно изменить&lt;br /&gt;
цвет символа и знакоместа, а второй заключается в том ,что эти цвета&lt;br /&gt;
не меняются ,а меняется палитра цветов вывода.&lt;br /&gt;
   Проиллюстрируем это на примерах.&lt;br /&gt;
Пример программы с изменением цвета символа и знакоместа.&lt;br /&gt;
&lt;br /&gt;
	MOV	PC,R0		;&lt;br /&gt;
	ADD	#SOOB-.,R0	;Вычислить адрес сообщения&lt;br /&gt;
	MOV	R0,AMT		;&lt;br /&gt;
	MOV	PC,R0		;&lt;br /&gt;
	ADD	#SOOB1-.,R0	;То же&lt;br /&gt;
	MOV	R0,AMT1		;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#135230,@#2400	;Разрешить вывод на экран всех цветов&lt;br /&gt;
	MOV	#177334,@#2402	;для верхней служебной строки&lt;br /&gt;
	MOV	#135230,@#6750	;То же сделать и для нижней&lt;br /&gt;
	MOV	#177334,@#6752	;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#1,@#22614	;Цвет символов в верхней строке - голубой&lt;br /&gt;
	MOV	#3,@#23106	;Цвет символов в нижней строке - бирюзовый&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#63146,@#22620	;Цвет знакоместа в верхней строке - желтый&lt;br /&gt;
	MOV	#52525,@#22622	;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#52525,@#23112	;Цвет знакоместа в нижней строке - фиолетовый&lt;br /&gt;
	MOV	#42104,@#23114	;&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#67,@#2372	;Верхняя строка в формате - 4 (10Х24)&lt;br /&gt;
	MOV	#47,@#6742	;Нижняя строка в формате - 3 (20Х24)&lt;br /&gt;
				;&lt;br /&gt;
	EMT	52		;Вывести сообщение в верхнюю строку&lt;br /&gt;
AMT:	.WORD	0		;Здесь находится адрес сообщения&lt;br /&gt;
	EMT	56		;Вывести сообщение в нижнюю строку&lt;br /&gt;
AMT1:	.WORD	0		;Здесь находится адрес второго сообщения&lt;br /&gt;
	RTS	PC		;Возврат в ЦП&lt;br /&gt;
&lt;br /&gt;
SOOB:	.ASCIZ	&amp;lt;40.&amp;gt;/&amp;quot;ТЕХНОКОМ&amp;quot;/&lt;br /&gt;
SOOB1:	.ASCIZ	&amp;lt;40.&amp;gt;&amp;quot;    ПРЕДСТАВЛЯЕТ    &amp;quot;&lt;br /&gt;
	.EVEN&lt;br /&gt;
&lt;br /&gt;
   Ячейки с адресами 2400,2402 (6750,6752) отвечают за палитру вывода для&lt;br /&gt;
верхней (нижней) служебной строки. Их формат был описан выше.&lt;br /&gt;
   В ячейках 22614,23106 хранится цвет символа в формате 0-черный&lt;br /&gt;
1-голубой,2-зеленый,...,7-белый, а в ячейках 23112,23114 цвет знакоместа&lt;br /&gt;
в формате регистра кода цвета фона (177020,177022). Формат этих регистров&lt;br /&gt;
будет рассмотрен ниже. Следует заметить ,что в исходном состоянии после&lt;br /&gt;
включения питания голубой план для вывода в служебные строки заблокирован.&lt;br /&gt;
&lt;br /&gt;
Пример программы с изменением палитры вывода.&lt;br /&gt;
&lt;br /&gt;
	MOV	PC,R0		;Вычислить адрес сообщения&lt;br /&gt;
	ADD	#SOOB-.,R0	;&lt;br /&gt;
	MOV	R0,AMT		;&lt;br /&gt;
	MOV	PC,R0		;То же&lt;br /&gt;
	ADD	#SOOB1-.,R0	;&lt;br /&gt;
	MOV	R0,AMT1		;&lt;br /&gt;
	EMT	52		;Вывести &amp;quot;ТЕХНОКОМ&amp;quot; в верхнюю строку&lt;br /&gt;
AMT:	.WORD	0		;Здесь адрес сообщения&lt;br /&gt;
	EMT	56		;Вывести &amp;quot;ПРЕДСТАВЛЯЕТ&amp;quot; в нижнюю строку&lt;br /&gt;
AMT1:	.WORD	0		;Здесь адрес второго сообщения&lt;br /&gt;
				;&lt;br /&gt;
	MOV	#67,@#2372	;Формат верхней строки - 4 (10Х24)&lt;br /&gt;
	MOV	#47,@#6742	;Формат нижней строки - 3 (20Х24)&lt;br /&gt;
	MOV	#135236,@#2400	;Для верхней строки представляем желтый цвет&lt;br /&gt;
	MOV	#174734,@#2402	;голубым, а черный желтым&lt;br /&gt;
	MOV	#135235,@#6750	;Для нижней строки представляем желтый цвет&lt;br /&gt;
	MOV	#175734,@#6752	;бирюзовым, а черный фиолетовым&lt;br /&gt;
	RTS	PC		;Возврат&lt;br /&gt;
&lt;br /&gt;
SOOB:	.ASCIZ	&amp;lt;40.&amp;gt;/&amp;quot;ТЕХНОКОМ&amp;quot;/&lt;br /&gt;
SOOB1:	.ASCIZ	&amp;lt;40.&amp;gt;&amp;quot;    ПРЕДСТАВЛЯЕТ    &amp;quot;&lt;br /&gt;
	.EVEN&lt;br /&gt;
&lt;br /&gt;
   Требования при выводе текстовой информации в служебные строки таковы:&lt;br /&gt;
первый байт любого сообщения это байт позиционирования,&lt;br /&gt;
а сам текст сообщения должен быть восьмибитным, т.к. коды &amp;lt;РУС&amp;gt; и &amp;lt;ЛАТ&amp;gt;&lt;br /&gt;
(&amp;lt;16&amp;gt; и &amp;lt;17&amp;gt; восьм.) при печати не отрабатываются.&lt;br /&gt;
&lt;br /&gt;
	Теперь немного о выводе графической информации из ПП.&lt;br /&gt;
Есть целая группа регистров существенно облегчающая этот процесс. Перечис-&lt;br /&gt;
лим их.&lt;br /&gt;
&lt;br /&gt;
177016 (Запись/Чтение) - Регистр кода цвета точки&lt;br /&gt;
Формат - Число от 0 до 7 (цвет точки)&lt;br /&gt;
&lt;br /&gt;
177024 (Запись)- Регистр октета точки&lt;br /&gt;
Формат - Восьмеричное число от 0 до 377 (восемь бит - восемь точек на экране&lt;br /&gt;
	бит содежит 1 - точка зажжена , 0 - погашена)&lt;br /&gt;
&lt;br /&gt;
177020 - Регистр кода цвета фона. Планы 0-1&lt;br /&gt;
177022 - Регистр кода цвета фона. Планы 1-2&lt;br /&gt;
Формат - Оба регистра представляют собой единое целое&lt;br /&gt;
&lt;br /&gt;
  4    3    2    1    - номер точки в октете&lt;br /&gt;
!0000!0000!0000!0000! - 177020&lt;br /&gt;
  RGB  RGB  RGB  RGB  - красный,зеленый,голубой планы&lt;br /&gt;
&lt;br /&gt;
  8    7    6    5    - номер точки в октете&lt;br /&gt;
!0000!0000!0000!0000! - 177022&lt;br /&gt;
  RGB  RGB  RGB  RGB  - красный,зеленый,голубой планы&lt;br /&gt;
&lt;br /&gt;
Старший бит каждой тетрады не используется.&lt;br /&gt;
&lt;br /&gt;
Допустим нужно получить на экране такой байт, чтобы первая точка&lt;br /&gt;
была черной, вторая голубой, третья зеленой, четвертая бирюзовой, ...... ,&lt;br /&gt;
восьмая белой. &lt;br /&gt;
&lt;br /&gt;
Для этого нужно записать в 177020 число 0011 0010 0001 0000&lt;br /&gt;
(двоичное) , а в 177022 - 0111 0110 0101 0100 (двоичное).&lt;br /&gt;
&lt;br /&gt;
177026 - Регистр маски планов&lt;br /&gt;
Формат - Число от 0 до 7 (один или несколько планов в которые нужно зап-&lt;br /&gt;
	ретить запись информации).&lt;br /&gt;
&lt;br /&gt;
Регистр не блокирует запись в зеленый и красный планы со стороны ЦП.&lt;br /&gt;
.LIN&lt;br /&gt;
Рассмотрим на примерах использование этих регистров.&lt;br /&gt;
Приведенная ниже программа производит следующие действия. Сначала экран&lt;br /&gt;
заполняется цветными вертикальными полосками толщиной в одну точку,&lt;br /&gt;
затем в левом верхнем углу экрана появляется спрайт. Спрайт - это&lt;br /&gt;
небольшая графическая картинка с которой можно производить различные&lt;br /&gt;
действия (перемещать , менять ее цвет) независимо от остального изображе-&lt;br /&gt;
ния на экране.&lt;br /&gt;
&lt;br /&gt;
	MOV	#^B0011001000010000,@#177020&lt;br /&gt;
		 ;Загрузить регистр кода цвета&lt;br /&gt;
	MOV	#^B0111011001010100,@#177022&lt;br /&gt;
		 ;фона по принципу 1-я точка&lt;br /&gt;
			;черная , восьмая - белая&lt;br /&gt;
	MOV	#100000,@#177010&lt;br /&gt;
		 ;Загрузить адрес планов в регистр адреса&lt;br /&gt;
				;планов.&lt;br /&gt;
	MOV	#&amp;lt;264.*80.&amp;gt;,R1	;В R1 общее число байтов экранной зоны&lt;br /&gt;
1$:	CLR	@#177024	;&amp;quot;Чистим&amp;quot; текущий октет&lt;br /&gt;
	INC	@#177010	;Увеличим на 1 адрес в планах&lt;br /&gt;
	SOB	R1,1$		;Все это в цикле&lt;br /&gt;
&lt;br /&gt;
		;НА ЭКРАНЕ ВИДНЫ ЦВЕТНЫЕ ПОЛОСКИ&lt;br /&gt;
&lt;br /&gt;
	MOV	#^B0100010101100111,@#177020&lt;br /&gt;
		 ;Загрузить другие значения&lt;br /&gt;
	MOV	#^B0000000100100011,@#177022&lt;br /&gt;
		 ;цвета фона&lt;br /&gt;
				;&lt;br /&gt;
	MOV	PC,R2		;&lt;br /&gt;
	ADD	#SPRITE-.,R2	;Адрес спрайта в R2&lt;br /&gt;
	MOV	#100000,@#177010 ;Адрес в планах - 100000&lt;br /&gt;
	MOV	#7,@#177016	;Выводить будем белым&lt;br /&gt;
	MOV	#11,R0		;Размеры спрайта Y - 11, X - 21&lt;br /&gt;
3$:	MOV	#21,R1		;&lt;br /&gt;
&lt;br /&gt;
	;ЭТУ ЧАСТЬ ВЫДЕЛИМ&lt;br /&gt;
&lt;br /&gt;
2$:	MOVB	(R2)+,@#177024	;Байты из которых состоит спрайт по&lt;br /&gt;
				;порядку на экран&lt;br /&gt;
	;КОНЕЦ ВЫДЕЛЕННОЙ ЧАСТИ&lt;br /&gt;
&lt;br /&gt;
	INC	@#177010	;Увеличим адрес в планах на 1&lt;br /&gt;
	SOB	R1,2$		;Следующий байт на экран&lt;br /&gt;
	ADD	#&amp;lt;80.-21&amp;gt;,@#177010 ;Отступить для вывода следующей строки&lt;br /&gt;
	SOB	R0,3$		;спрайта.&lt;br /&gt;
	RTS	PC		;Возврат&lt;br /&gt;
&lt;br /&gt;
	;НИЖЕ ДАН САМ СПРАЙТ&lt;br /&gt;
&lt;br /&gt;
SPRITE:	.Byte 377,7,377,37,36,36,74,170,340,77,360,340,201,377,300,3,17&lt;br /&gt;
	.Byte 61,6,6,30,30,6,30,60,60,140,140,140,300,200,201,3,7&lt;br /&gt;
	.Byte 60,0,6,0,60,3,30,60,30,300,140,60,140,0,203,207,7&lt;br /&gt;
	.Byte 60,0,6,0,340,1,30,60,30,300,140,30,140,0,203,315,6&lt;br /&gt;
	.Byte 60,0,376,1,300,0,370,77,30,300,340,17,140,0,203,171,6&lt;br /&gt;
	.Byte 60,0,6,0,340,1,30,60,30,300,140,30,140,0,203,61,6&lt;br /&gt;
	.Byte 60,0,6,0,60,3,30,60,30,300,140,60,140,0,203,1,6&lt;br /&gt;
	.Byte 60,0,6,30,30,6,30,60,60,140,140,140,300,200,201,1,6&lt;br /&gt;
	.Byte 170,0,377,37,36,36,74,170,340,77,360,340,201,377,300,3,217&lt;br /&gt;
	.Even&lt;br /&gt;
ENDPRG:				;Конец программы в ПП&lt;br /&gt;
&lt;br /&gt;
   Вывод информации на экран может быть двух видов - с прорисовкой&lt;br /&gt;
новой информации по старому фону и со стиранием старой информации.&lt;br /&gt;
Чтобы рисовать по старому фону нужно к регистру 177024 адресоваться&lt;br /&gt;
байтно (MOVB) , а со стиранием - словно (MOV). Чтобы в приведенном&lt;br /&gt;
выше примере обеспечить прорисовку со стиранием нужно выделенную&lt;br /&gt;
часть программы заменить на следующую:&lt;br /&gt;
.SWT&lt;br /&gt;
2$:	MOVB	(R2)+,R3&lt;br /&gt;
	MOV	R3,@#177024	;Байты из которых состоит спрайт по&lt;br /&gt;
&lt;br /&gt;
   Как видно , с помощью этой группы регистров можно существенно повысить&lt;br /&gt;
скорость выода графики , однако иногда и этой скорости не хватает.&lt;br /&gt;
Можно еще в несколько раз ее увеличть , используя нерегистровый (прямой)&lt;br /&gt;
доступ к видеоОЗУ. Но об этом в следующий раз.&lt;br /&gt;
&lt;br /&gt;
   Теперь немного о музыке , которую можно извлекать из УКНЦ.&lt;br /&gt;
Звук из динамика УКНЦ можно получить при помощи регистров 177710 и 177716.&lt;br /&gt;
В регистре 177716 разряды с 7 по 12 позволяют получить звуки с частотой&lt;br /&gt;
от 60 Гц до 64 кГц при частоте программируемого таймера 2,4,8 и 16&lt;br /&gt;
микросекунд.&lt;br /&gt;
Приведем таблицу соответствия комбинаций разрядов 8-16 регистра 177716 и&lt;br /&gt;
разрядов 1,2 регистра 177710.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
!        РАЗРЯДЫ РЕГ. 177716       ! ЧАСТОТА ЗВУКОВОГО СИГНАЛА !&lt;br /&gt;
!     7     ! 12 ! 11 ! 10 ! 9 ! 8 !			       !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
! ПРОГРАММНО!    !    !    !   !   !			       !&lt;br /&gt;
!ФОРМИРУЕТСЯ!  0 !  0 !  0 ! 0 ! 0 ! СООТВЕТСТВУЕТ ПРОГРАММЕ   !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
!           !  0 !  0 !  0 ! 0 ! 1 !         60 Гц             !&lt;br /&gt;
!           !  0 !  0 !  0 ! 1 ! 0 !        250 Гц             !&lt;br /&gt;
!     1     !  0 !  0 !  1 ! 0 ! 0 !        500 Гц             !&lt;br /&gt;
!           !  0 !  1 !  0 ! 0 ! 0 !         1 кГц             !&lt;br /&gt;
!           !  1 !  0 !  0 ! 0 ! 0 !         8 кГц             !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
!     0     !     ЗВУК ОТКЛЮЧЕН    !			       !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
!     1     ! КОМБИНАЦИЯ ЛОГИЧЕСКИХ! СБОРКА СЕТКИ ЧАСТОТ ПО &amp;quot;И&amp;quot;!&lt;br /&gt;
!           !       ЗНАЧЕНИЙ       !			       !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
! ПРОГРАММНО!    !    !    !   !   ! СБОРКА СЕТКИ ЧАСТОТ ПО &amp;quot;И&amp;quot;!&lt;br /&gt;
!ФОРМИРУЕТСЯ!  * !  * !  * ! * ! * ! ПРОМОДУЛИРОВАНА ПРОГРАММОЙ!&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
   Внесем ясность. Частоты звука приведены для тактовой частоты таймера&lt;br /&gt;
16 мкс. Если же тактовая частота равна 8 мкс , то значения частот звука&lt;br /&gt;
в правой колонке увеличатся в 2 раза (соответственно для 4 мкс в 4 раза, а&lt;br /&gt;
для 2 мкс в 8 раз).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если разряды 8-12 содежат 0 , то частота звука будет зависеть от того&lt;br /&gt;
с какой скоростью 7 разряд переключается из 0 в 1. Здесь способ извлече-&lt;br /&gt;
ния звука прост. Меняя значение загружаемое для задержки мы управляем&lt;br /&gt;
высотой звука. Программа , которая приведена ниже работает именно по&lt;br /&gt;
этому принципу.&lt;br /&gt;
&lt;br /&gt;
	BIS	#6,@#177710	;Тактовая чатота таймера 16 мкс&lt;br /&gt;
	BIC	#17400,@#177716	;Очистить разряды с 8 по 12&lt;br /&gt;
	MOV	#200,R0		;Установить в R0  7 разряд &lt;br /&gt;
1$:	XOR	R0,@#177716 ;Если он есть,то снять его и наоборот&lt;br /&gt;
	MOV	#&amp;lt;от этого числа зависит высота звука&amp;gt;,R1 ;&lt;br /&gt;
	SOB	R1,.		;Задержка именно на этом числе&lt;br /&gt;
	BR	1$		;Бесконечный цикл&lt;br /&gt;
&lt;br /&gt;
   Этот способ имеет существенный недостаток. На разных машинах&lt;br /&gt;
высота звука будет &amp;quot;плавать&amp;quot;,т.к. быстродействие ПП меняется от&lt;br /&gt;
машины к машине из-за разброса параметров элементной базы.&lt;br /&gt;
Устранить данный недостаток можно собирая &amp;quot;свои&amp;quot; частоты из набора&lt;br /&gt;
стандартных. Так как сама сборка ведется по &amp;quot;И&amp;quot;, ( одна частота&lt;br /&gt;
модулирует собой другую ) то можно управляя частотой программируемого&lt;br /&gt;
таймера и комбинируя значения разрядов 8-12 регистра 177716 добиваться&lt;br /&gt;
исполнения несложных мелодий.&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
!РАЗРЯДЫ РЕГ. 177710! ПЕРИОД ТАКТОВОЙ ЧАСТОТЫ !&lt;br /&gt;
!    2    !    1    !			      !&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
!    0    !    0    !   2 микросекунды        !&lt;br /&gt;
!    0    !    1    !   4 микросекунды        !&lt;br /&gt;
!    1    !    0    !   8 микросекунды        !&lt;br /&gt;
!    1    !    1    !   16 микросекунд        !&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
   Данный способ позволяет получить стабильный звук , но его недостаток&lt;br /&gt;
очевиден. Крайне трудно получить требуемые ноты. Гораздо лучше исполь-&lt;br /&gt;
зовать программируемый таймер в &amp;quot;чистом&amp;quot; виде в режиме прерываний.&lt;br /&gt;
Достоинства данного способа: чистый стабильный звук, подбор частоты&lt;br /&gt;
до единиц герц и наконец легкость практической реализации. Действитель-&lt;br /&gt;
но , раз можно плавно менять высоту звука и его длительнось (это реали-&lt;br /&gt;
зуется на другом таймере - сетевом) , то уже можно исполнять довольно&lt;br /&gt;
сложные мелодии. Для облегчения задачи приведем значения частот звучания&lt;br /&gt;
нот двух октав в герцах.&lt;br /&gt;
&lt;br /&gt;
  1-ая октава&lt;br /&gt;
	До - 130,8&lt;br /&gt;
	До-диез,Ре-бемоль - 138,6&lt;br /&gt;
	Ре - 146,8&lt;br /&gt;
	Ре-диез,Ми-бемоль - 155,6&lt;br /&gt;
	Ми - 164,8&lt;br /&gt;
	Фа - 174,6&lt;br /&gt;
	Фа-диез,Соль-бемоль - 185,0&lt;br /&gt;
	Соль - 196,0&lt;br /&gt;
	Соль-диез,Ля-бемоль - 207,7&lt;br /&gt;
	Ля - 220,0&lt;br /&gt;
	Ля-диез,Си-бемоль - 233,1&lt;br /&gt;
	Си - 246,9&lt;br /&gt;
	Среднее До - 261,7&lt;br /&gt;
  2-ая октава&lt;br /&gt;
	До-диез,Ре-бемоль - 277,2&lt;br /&gt;
	Ре - 293,7&lt;br /&gt;
	Ре-диез,Ми-бемоль - 311,1&lt;br /&gt;
	Ми - 329,6&lt;br /&gt;
	Фа - 349,2&lt;br /&gt;
	Фа-диез,Соль-бемоль - 370,0&lt;br /&gt;
	Соль - 392,0&lt;br /&gt;
	Соль-диез,Ля-бемоль - 415,3&lt;br /&gt;
	Ля - 440,0&lt;br /&gt;
	Ля-диез,Си-бемоль - 466,2&lt;br /&gt;
	Си - 493,9&lt;br /&gt;
	Среднее До - 523,3&lt;br /&gt;
&lt;br /&gt;
   Пример программы иллюстрирующий применение программируемого таймера.&lt;br /&gt;
&lt;br /&gt;
	MOV	PC,R0		;Вычислить адрес программы обработки&lt;br /&gt;
	ADD	#POP-.,R0	;прерываний от программируемого таймера&lt;br /&gt;
	MOV	R0,@#304	;Загрузить этот адрес в вектор прерывания&lt;br /&gt;
	MOV	PC,R0		;Вычислить адрес программы обработки&lt;br /&gt;
	ADD	#POPT-.,R0	;прерываний от сетевого таймера&lt;br /&gt;
	MOV	R0,@#100	;Загрузить этот адрес в вектор прерывания&lt;br /&gt;
	MOV	PC,R0		;Вычислить начальный адрес массива с&lt;br /&gt;
	ADD	#MUZON-.,R0	;музыкой&lt;br /&gt;
	MOV	R0,ADRESS	;Загрузить этот адрес в ячейку ADRESS&lt;br /&gt;
	MOV	R0,EADRES	;Вычислить и загрузить в ячейку EADRES&lt;br /&gt;
	ADD	#&amp;lt;EP-MUZON&amp;gt;,EADRES ;конечный адрес массива с музыкой&lt;br /&gt;
	BIS	#107,@#177710	;Установить период тактовой частоты&lt;br /&gt;
	RTS	PC		;программируемого таймера 16 мкс и&lt;br /&gt;
				;разрешить прерывания от него&lt;br /&gt;
&lt;br /&gt;
				;ПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ОТ &lt;br /&gt;
POPT:	.ENABLE	LSB		;СЕТЕВОГО ТАЙМЕРА&lt;br /&gt;
	DEC	(PC)+		;Уменьшить на 1 содержимое ячейки COUNT&lt;br /&gt;
COUNT:	.WORD	50.		;50 тиков - это 1 секунда (длит. ноты)&lt;br /&gt;
	BNE	1$		;Если секунда не истекла , то на выход&lt;br /&gt;
	MOV	@ADRESS,TON+2	;Сыграть очередную ноту из массива&lt;br /&gt;
	ADD	#2,ADRESS	;Перейти на следующую ноту&lt;br /&gt;
	CMP	EADRES,ADRESS	;А не конец ли массива ?&lt;br /&gt;
	BNE	2$		;&lt;br /&gt;
	SUB	#&amp;lt;EP-MUZON&amp;gt;,ADRESS ;Да . Вернемся к началу&lt;br /&gt;
2$:	MOV	#50.,COUNT	;1 секунда в COUNT&lt;br /&gt;
1$:	JMP	@#174612	;Выход из прерывания&lt;br /&gt;
&lt;br /&gt;
				;ПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ОТ &lt;br /&gt;
POP:	.ENABLE	LSB		;ПРОГРАММИРУЕМОГО ТАЙМЕРА&lt;br /&gt;
	TST	@#177714	;Очистить регистр текущего значения&lt;br /&gt;
				;пр. тайм.&lt;br /&gt;
	MOV	R0,-(SP)	;Сохранить в стеке R0&lt;br /&gt;
	MOV	#200,R0		;Загрузить число 200 в R0&lt;br /&gt;
	XOR	R0,@#177716	;7 разряд если есть - снять , и наоборот&lt;br /&gt;
	MOV	(SP)+,R0	;Восстановить R0&lt;br /&gt;
TON:	MOV	#0,@#177712	;Загрузить текущее значение ячейки TON+2&lt;br /&gt;
				;в буферный регистр прогр. таймера&lt;br /&gt;
	RTI			;Возврат из прерывания&lt;br /&gt;
&lt;br /&gt;
ADRESS:	.WORD	0		;Ячейка хранения начального адреса массива&lt;br /&gt;
EADRES:	.WORD	0		;Ячейка хранения конечного адреса массива&lt;br /&gt;
&lt;br /&gt;
	;Далее следует сам массив с музыкой&lt;br /&gt;
&lt;br /&gt;
MUZON:	.WORD	478.	;Нота До первой октавы&lt;br /&gt;
	.WORD	426.	;Нота Ре первой октавы&lt;br /&gt;
	.WORD	379.	;Нота Ми первой октавы&lt;br /&gt;
	.WORD	358.	;Нота Фа первой октавы&lt;br /&gt;
	.WORD	319.	;Нота Соль первой октавы&lt;br /&gt;
	.WORD	284.	;Нота Ля первой октавы&lt;br /&gt;
	.WORD	253.	;Нота Си первой октавы&lt;br /&gt;
	.WORD	239.	;Срединное До&lt;br /&gt;
	.WORD	213.	;Нота Ре второй октавы&lt;br /&gt;
	.WORD	190.	;Нота Ми второй октавы&lt;br /&gt;
	.WORD	179.	;Нота Фа второй октавы&lt;br /&gt;
	.WORD	159.	;Нота Соль второй октавы&lt;br /&gt;
	.WORD	142.	;Нота Ля второй октавы&lt;br /&gt;
	.WORD	127.	;Нота Си второй октавы&lt;br /&gt;
	.WORD	119.	;Нота До второй октавы&lt;br /&gt;
&lt;br /&gt;
EP:				;Конец программы в ПП&lt;br /&gt;
&lt;br /&gt;
   Эта программа проигрывает указанные ноты по порядку в цикле. Значения&lt;br /&gt;
чисел соответствующие реальным звуковым частотам рассчитываются по формуле&lt;br /&gt;
A/F, где A число соответствующее тактовой частоте программируемого таймера&lt;br /&gt;
( для периода 16 мкс А=62500, для 8 мкс A=125000, для 4 мкс A=250000, для&lt;br /&gt;
2 мкс A=500000 (все значения десятичные)), а F - частота которую требуется&lt;br /&gt;
получить. В заключеие обратим внимание на то , что буферный регистр&lt;br /&gt;
программируемого таймера (177712) 12-ти а не 16-ти разрядный. Об этом сле-&lt;br /&gt;
дует помнить при загрузке данных в регистр.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1790</id>
		<title>Uknc Magazine contents</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1790"/>
		<updated>2011-11-10T18:03:26Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Компьютер УКНЦ #1, 1994 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Содержание журнала «Компьютер УКНЦ»&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1994 ==&lt;br /&gt;
* Дубовик В. В. Солнечногорский электромеханический завод 	&lt;br /&gt;
* Список сокращений&lt;br /&gt;
* Носов М. Б. Все о периферийном процессоре&lt;br /&gt;
* Фролкин Б. Ф. PAF Commander V1.02 А. Петросяна, DESS V05.00e Д. Климова&lt;br /&gt;
* Еремин Е. А. К вопросу о работе локальной БЕЙСИК-сети в КУВТ УКНЦ&lt;br /&gt;
* Режим адресации процессора К1801ВМ2&lt;br /&gt;
* Система команд процессора К1801ВМ2&lt;br /&gt;
* [[Uknc Magazine 1994-01 ProcInt|Система прерываний процессора К1801ВМ2]]&lt;br /&gt;
* Глобальные переменные системы ввода-вывода (ОС ПМ)&lt;br /&gt;
* Тютюнников А. В. Архиваторы&lt;br /&gt;
* Быстров И. И. [[Uknc Magazine 1994-01 Lintech|&amp;quot;NET-Rt11&amp;quot; - сетевая система для КУВТ &amp;quot;УКНЦ&amp;quot; с IBM-совместимой головной машиной]]&lt;br /&gt;
* Ховайко О. И. Хитрости работы с периферийным процессором&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1994 ==&lt;br /&gt;
* К читателю&lt;br /&gt;
* Штарев М. Е. &amp;quot;Ресурсы УКНЦ&amp;quot;&lt;br /&gt;
* Еремин Е. А. О работоспособности программного обеспечения на РМУ в КУВТ УКНЦ&lt;br /&gt;
* Акулин А. И. &amp;quot;Мышь&amp;quot; для УКНЦ&lt;br /&gt;
* Остапенко А. Программы SKIPER и PCCUR&lt;br /&gt;
* Остапенко А. Тайны &amp;quot;вечной жизни&amp;quot;&lt;br /&gt;
* Ассемблер MACRO-11: Руководство оператора&lt;br /&gt;
* Ассемблер MACRO-11: Руководство программиста&lt;br /&gt;
* Управляющие последовательности терминала&lt;br /&gt;
* Структура &amp;quot;HALT&amp;quot; области ОЗУ ЦП&lt;br /&gt;
* Список ЕМТ-прерываний ОС ПМ&lt;br /&gt;
* Регистры системных устройств магистрали ЦП&lt;br /&gt;
* Регистры системных устройств магитрали ПП&lt;br /&gt;
* Штарев М. Е. &amp;quot;Библиотека MGR&amp;quot;&lt;br /&gt;
* Батьков Г. А. Обзор программных средств&lt;br /&gt;
* Мороз С. С. Система управления базами данных для УКНЦ&lt;br /&gt;
* Сказка про байт&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1994 ==&lt;br /&gt;
* Штарев М. Е. Ресурсы УКНЦ. Работа с текстовыми окнами&lt;br /&gt;
* Пузырников В. БЕЙСИК: полезные советы для начинающих&lt;br /&gt;
* Операционная система ФОДОС-2. Системая макробиблиотека&lt;br /&gt;
* Список ESC-последовательностей с кодом 200_8 и более&lt;br /&gt;
* Работа с планами видеоОЗУ&lt;br /&gt;
* Борис Ф. Фролкин Новый драйвер дисковода MZ.SYS для УКНЦ&lt;br /&gt;
* Подъемщиков А. Н. Еще об одной ошибке в УКНЦ (МС-0511)&lt;br /&gt;
* Быстров И. И. IBM PC из УКНЦ и &amp;quot;Корвета&amp;quot;&lt;br /&gt;
* Бурков К. Г. Для тех, кто знает: FORTH!&lt;br /&gt;
* Содержание предыдущих выпусков&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1995 ==&lt;br /&gt;
* Устройство вычислителя&lt;br /&gt;
* Операционная система ФОДОС-2 (Системная макробиблиотека)&lt;br /&gt;
* В.Лукичев. Справочная  информация для начинающих программистов УКНЦ&lt;br /&gt;
* А.В.Милюков. Практика работы с периферийным процессором УКНЦ&lt;br /&gt;
* С.Клоков, Д.Ланин. Супер БЕЙСИК для УКНЦ&lt;br /&gt;
* Е.А.Еремин. Об алгоритмах перевода целых чисел в некоторые режимы счисления, реализованных в BASIC-интерпретаторе УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1995 ==&lt;br /&gt;
* Операционная система ФОДОС-2. Руководство программиста&lt;br /&gt;
* М.Б.Носов Все о периферийном процессоре&lt;br /&gt;
* Устройство вычислителя: руководство по ремонту&lt;br /&gt;
* И.И.Быстров АО &amp;quot;ЛИнТех&amp;quot; отвечает на вопросы&lt;br /&gt;
* С.П.Калашников Самодельная псевдографика на УКНЦ&lt;br /&gt;
* В.А.Файзулин Реализация алгоритма формирования массива с различными случайными элементами&lt;br /&gt;
* А.Захаров, Е.Пыжиков Пользователям КУВТ УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1995 ==&lt;br /&gt;
* А.Н.Гриценко, А.Н.Тушев Классы УКНЦ в учебном процессе&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* Б.А.Еремин Компилятор?.. Это очень просто&lt;br /&gt;
* А.Б.Розенфельд Использование принтера Д100М&lt;br /&gt;
* А.Ф.Носенко Вывод информации из БЕЙСИКа УКНЦ на принтер Д100М&lt;br /&gt;
* Д.А.Левант Программа печати файлов&lt;br /&gt;
* В.Ю.Ключников Ошибки трансляции компилятора MACRO v5.00&lt;br /&gt;
* В.И.Вашкевич Использование нестандартных команд символьного режима терминала VT-52&lt;br /&gt;
* В.Г.Романов Программирование мелодий в БЕЙСИКе УКНЦ&lt;br /&gt;
* А.В.Герасимов&lt;br /&gt;
* В.А.Файзуллин&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #4, 1995 ==&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* В.С.Дементьев. Изобразительные возможности редакторов шрифтов&lt;br /&gt;
* М.С.Никонов, С.П.Черняк. Программа построения графиков функций&lt;br /&gt;
* В.А.Самойлов. Использование символов псевдографики в учебном процессе&lt;br /&gt;
* Н.А.Кожевин. Использование квазидиска при работе с графикой в среде PASCAL/FACT V1.2&lt;br /&gt;
* В.В.Ларин. Создание новых символов&lt;br /&gt;
* М.Б.Носов. УКНЦ - проблемы и решения ЛИнТех&lt;br /&gt;
* С.В.Кононов. IBM PC из &amp;quot;Корвет&amp;quot; и УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* http://www.infomag.ru/journals/j010r/&lt;br /&gt;
* http://bk0010.chat.ru/Soder.htm&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_Lintech&amp;diff=1789</id>
		<title>Uknc Magazine 1994-01 Lintech</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_Lintech&amp;diff=1789"/>
		<updated>2011-11-10T18:02:22Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= «NET-Rt11» — СЕТЕВАЯ СИСТЕМА ДЛЯ КУВТ «УКНЦ» С IBM-СОВМЕСТИМОЙ ГОЛОВНОЙ МАШИНОЙ =&lt;br /&gt;
И. И. Быстров&lt;br /&gt;
:''Статья из журнала «Персональный компьютер УКНЦ» №1 1994 год''&lt;br /&gt;
&lt;br /&gt;
Нет смысла перечислять все те проблемы, с которыми приходится сталкиваться пользователям КУВТ УКНЦ. Причин, их порождающих, в сущности, три: низкое качество дисководов, входящих в комплект, ненадежные сетевые контроллеры и недоработанное сетевое программное обеспечение. К отдельной проблеме относится низкая надежность самого компьютера, особенно головной машины — ее сбой может привести к необходимости перезагрузки всей сети — процесса медленного, отнимающего много времени от урока. Однако следует отметить, что устранение части приведенных причин положительного результата не дает — заменив головную машину на быструю и надежную, подкорректировав сетевое программное обеспечение, вы все равно остаетесь с плохим сетевым контроллером — сеть постоянно «виснет». Заменив только контроллеры и программное обеспечение, вы остаетесь во власти медленной и ненадежной головной машины, и ничего здесь не изменить, даже прицепив к ней винчестер.&lt;br /&gt;
&lt;br /&gt;
Только комплексная модернизация КУВТ УКНЦ, учитывающая все «узкие места» системы, способна решить указанные выше проблемы. Такая задача была решена фирмой «ЛИНТЕХ» — в начале 1994 года выпущена новая сетевая система «NET-Rt11», в комплект которой входят сетевые контроллеры и программное обеспечение для работы с головной IBM-совместимой машиной (от XT и выше).&lt;br /&gt;
&lt;br /&gt;
«NET-Rt11» представляет собой сложный программно-аппаратный продукт, при разработке которого был использован весь опыт специалистов фирмы в создании сетевых систем различного профиля. Аппаратная часть системы базируется на сетевом контроллере, основой которого является однокристальная микроЭВМ i8751, реализующая оригинальный сетевой протокол и управляющие функции. Схемотехника и программное обеспечение контроллера хорошо проработаны, так как система создана на базе аналогичной разработки для КУВТ «Корвет», успешно выпускающейся уже полтора года, что в сочетании с самой современной технологией производства позволяет гарантировать не менее трех лет безотказной работы.&lt;br /&gt;
&lt;br /&gt;
Здесь следует заметить, что существуют два поколения контроллеров КУВТ «Корвет», отличающиеся как способом подключения к компьютеру, (через внешний разъем порта расширения системы и через разъем системной магистрали, расположенный внутри системного блока), так и технологией производства. Качество и надежность внутренних контроллеров несравненно выше.&lt;br /&gt;
&lt;br /&gt;
С началом продажи новой версии контроллеров фирма «ЛИНТЕХ» объявила о «пожизненной» гарантии на них, что вызвало совершенно неожиданную реакцию клиентов: часть покупателей в это не поверила (рекламный трюк, блеф и пр.) и потребовала конкретной цифры. Так появился гарантийный срок 3 года. Когда они истекут, вполне вероятно, что будет объявлено продление гарантии, или льготная замена всем желающим на какую-нибудь суперновую версию... Практика замены по очень льготной цене фирмой уже используется, например, для замены внешних «корветовских» контроллеров на внутренние. Обновление версий сетевого программного обеспечения осуществляется бесплатно.&lt;br /&gt;
&lt;br /&gt;
Такая же политика теперь используется на рынке УКНЦ-классов. Разумеется, иногда сетевые контроллеры у пользователя все-таки выходят из строя. Причина почти всегда одна — технологические дефекты комплектующих, проявляющиеся через какое-то время наработки. В таком случае неисправная плата немедленно заменяется на новую. Основная масса дефектных микросхем выявляется на этапе производства — все собранные платы проходят прогон в течении нескольких суток, в том числе и при повышенной температуре (в термокамере). Случаи отказов готовых изделий крайне редки. Такое повышение надежности стало возможным благодаря использованию отличной производственной базы (предприятие военно-промышленного комплекса) и отработанной технологии, что в итоге повышает себестоимость продукции и является единственным способом, избавляющим наших клиентов от непроизводительной потери времени в учебном процессе «по техническим причинам». Немаловажно и то, что в контроллерах используются только серийно выпускаемые элементы и нет заказных микросхем. Все это позволяет застраховаться от распространенных случаев, когда заказные ИМС снимаются с производства и в случае выхода из строя заменить их будет нечем.&lt;br /&gt;
&lt;br /&gt;
Программное обеспечение ОС «NET-Rt11» позволяет на каждом рабочем месте не только работать под ее управлением и использовать практически все программное обеспечение, написанное под ней для УКНЦ, но, кроме этого, позволяет создавать новые приложения, использующие возможности головной IBM-совместимой машины. Даже применяя слабую IBM XT, вы получаете отличный результат.&lt;br /&gt;
&lt;br /&gt;
Подобный подход представляется наиболее оптимальным. Другой возможный путь построения сетевой системы — превращение УКНЦ в терминал многопользовательской системы, работающей под управлением ОС типа UNIX или DOS, даже при высоких требованиях к головной машине (не ниже 386DX, ОЗУ от 4Мб и т.д.), — нам кажется нецелесообразным, поскольку делает практически невозможным использование графики и резко замедляет работу, что неприемлемо, принимая во внимание учебное назначение КУВТ.&lt;br /&gt;
&lt;br /&gt;
Физическая скорость обмена в канале «NET-Rt11» — 375 кбит/с — вполне достаточна для учебного класса, при этом возможно использование четырех отдельных каналов передачи информации, что эквивалентно скорости 1500 кбит/с. Быстродействие сети по сравнению со стандартной сетью УКНЦ повышается в 60—100 раз. Максимальная длина магистрального кабеля может достигать 1 км, к одной головной машине можно подключить до 64 РМУ.&lt;br /&gt;
&lt;br /&gt;
Каждому пользователю доступны восемь логических дисков объемом до 16 Мб каждый, которые представляют собой директории на винчестере головной машины и могут быть как личными, так и коллективными. Операции чтения/записи, доступные каждому пользователю после ввода имени и пароля, определяются при его регистрации и могут быть изменены администратором сети.&lt;br /&gt;
&lt;br /&gt;
Важная особенность системы еще и в том, что для ее установки не требуется специальная квалификация. В каждом РМУ необходимо заменить стандартную сетевую плату (она соединена с системной с помощью разъема) на новую, вставить сетевой адаптер в слот головной машины и установить программное обеспечение — весь процесс подробно описан в инструкции. «NET-Rt11» может работать на коммуникациях старой сети — перемонтаж существующих линий связи не требуется. Получить более подробную информацию о системе и приобрести ее можно у региональных дилеров и фирмы «ЛИНТЕХ», реклама которой размещена в этом номере.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1748</id>
		<title>Uknc Magazine contents</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1748"/>
		<updated>2009-11-04T18:30:44Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Компьютер УКНЦ #1, 1994 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Содержание журнала «Компьютер УКНЦ»&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1994 ==&lt;br /&gt;
* Дубовик В. В. Солнечногорский электромеханический завод 	&lt;br /&gt;
* Список сокращений&lt;br /&gt;
* Носов М. Б. Все о периферийном процессоре&lt;br /&gt;
* Фролкин Б. Ф. PAF Commander V1.02 А. Петросяна, DESS V05.00e Д. Климова&lt;br /&gt;
* Еремин Е. А. К вопросу о работе локальной БЕЙСИК-сети в КУВТ УКНЦ&lt;br /&gt;
* Режим адресации процессора К1801ВМ2&lt;br /&gt;
* Система команд процессора К1801ВМ2&lt;br /&gt;
* [[Uknc Magazine 1994-01 ProcInt|Система прерываний процессора К1801ВМ2]]&lt;br /&gt;
* Глобальные переменные системы ввода-вывода (ОС ПМ)&lt;br /&gt;
* Тютюнников А. В. Архиваторы&lt;br /&gt;
* Быстров И. И. &amp;quot;NET-Rt11&amp;quot; - сетевая система для КУВТ &amp;quot;УКНЦ&amp;quot; с IBM-совместимой головной машиной&lt;br /&gt;
* Ховайко О. И. Хитрости работы с периферийным процессором&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1994 ==&lt;br /&gt;
* К читателю&lt;br /&gt;
* Штарев М. Е. &amp;quot;Ресурсы УКНЦ&amp;quot;&lt;br /&gt;
* Еремин Е. А. О работоспособности программного обеспечения на РМУ в КУВТ УКНЦ&lt;br /&gt;
* Акулин А. И. &amp;quot;Мышь&amp;quot; для УКНЦ&lt;br /&gt;
* Остапенко А. Программы SKIPER и PCCUR&lt;br /&gt;
* Остапенко А. Тайны &amp;quot;вечной жизни&amp;quot;&lt;br /&gt;
* Ассемблер MACRO-11: Руководство оператора&lt;br /&gt;
* Ассемблер MACRO-11: Руководство программиста&lt;br /&gt;
* Управляющие последовательности терминала&lt;br /&gt;
* Структура &amp;quot;HALT&amp;quot; области ОЗУ ЦП&lt;br /&gt;
* Список ЕМТ-прерываний ОС ПМ&lt;br /&gt;
* Регистры системных устройств магистрали ЦП&lt;br /&gt;
* Регистры системных устройств магитрали ПП&lt;br /&gt;
* Штарев М. Е. &amp;quot;Библиотека MGR&amp;quot;&lt;br /&gt;
* Батьков Г. А. Обзор программных средств&lt;br /&gt;
* Мороз С. С. Система управления базами данных для УКНЦ&lt;br /&gt;
* Сказка про байт&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1994 ==&lt;br /&gt;
* Штарев М. Е. Ресурсы УКНЦ. Работа с текстовыми окнами&lt;br /&gt;
* Пузырников В. БЕЙСИК: полезные советы для начинающих&lt;br /&gt;
* Операционная система ФОДОС-2. Системая макробиблиотека&lt;br /&gt;
* Список ESC-последовательностей с кодом 200_8 и более&lt;br /&gt;
* Работа с планами видеоОЗУ&lt;br /&gt;
* Борис Ф. Фролкин Новый драйвер дисковода MZ.SYS для УКНЦ&lt;br /&gt;
* Подъемщиков А. Н. Еще об одной ошибке в УКНЦ (МС-0511)&lt;br /&gt;
* Быстров И. И. IBM PC из УКНЦ и &amp;quot;Корвета&amp;quot;&lt;br /&gt;
* Бурков К. Г. Для тех, кто знает: FORTH!&lt;br /&gt;
* Содержание предыдущих выпусков&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1995 ==&lt;br /&gt;
* Устройство вычислителя&lt;br /&gt;
* Операционная система ФОДОС-2 (Системная макробиблиотека)&lt;br /&gt;
* В.Лукичев. Справочная  информация для начинающих программистов УКНЦ&lt;br /&gt;
* А.В.Милюков. Практика работы с периферийным процессором УКНЦ&lt;br /&gt;
* С.Клоков, Д.Ланин. Супер БЕЙСИК для УКНЦ&lt;br /&gt;
* Е.А.Еремин. Об алгоритмах перевода целых чисел в некоторые режимы счисления, реализованных в BASIC-интерпретаторе УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1995 ==&lt;br /&gt;
* Операционная система ФОДОС-2. Руководство программиста&lt;br /&gt;
* М.Б.Носов Все о периферийном процессоре&lt;br /&gt;
* Устройство вычислителя: руководство по ремонту&lt;br /&gt;
* И.И.Быстров АО &amp;quot;ЛИнТех&amp;quot; отвечает на вопросы&lt;br /&gt;
* С.П.Калашников Самодельная псевдографика на УКНЦ&lt;br /&gt;
* В.А.Файзулин Реализация алгоритма формирования массива с различными случайными элементами&lt;br /&gt;
* А.Захаров, Е.Пыжиков Пользователям КУВТ УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1995 ==&lt;br /&gt;
* А.Н.Гриценко, А.Н.Тушев Классы УКНЦ в учебном процессе&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* Б.А.Еремин Компилятор?.. Это очень просто&lt;br /&gt;
* А.Б.Розенфельд Использование принтера Д100М&lt;br /&gt;
* А.Ф.Носенко Вывод информации из БЕЙСИКа УКНЦ на принтер Д100М&lt;br /&gt;
* Д.А.Левант Программа печати файлов&lt;br /&gt;
* В.Ю.Ключников Ошибки трансляции компилятора MACRO v5.00&lt;br /&gt;
* В.И.Вашкевич Использование нестандартных команд символьного режима терминала VT-52&lt;br /&gt;
* В.Г.Романов Программирование мелодий в БЕЙСИКе УКНЦ&lt;br /&gt;
* А.В.Герасимов&lt;br /&gt;
* В.А.Файзуллин&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #4, 1995 ==&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* В.С.Дементьев. Изобразительные возможности редакторов шрифтов&lt;br /&gt;
* М.С.Никонов, С.П.Черняк. Программа построения графиков функций&lt;br /&gt;
* В.А.Самойлов. Использование символов псевдографики в учебном процессе&lt;br /&gt;
* Н.А.Кожевин. Использование квазидиска при работе с графикой в среде PASCAL/FACT V1.2&lt;br /&gt;
* В.В.Ларин. Создание новых символов&lt;br /&gt;
* М.Б.Носов. УКНЦ - проблемы и решения ЛИнТех&lt;br /&gt;
* С.В.Кононов. IBM PC из &amp;quot;Корвет&amp;quot; и УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* http://www.infomag.ru/journals/j010r/&lt;br /&gt;
* http://bk0010.chat.ru/Soder.htm&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1747</id>
		<title>Uknc Magazine 1994-01 ProcInt</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1747"/>
		<updated>2009-11-04T10:14:22Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= СИСТЕМА ПРЕРЫВАНИЙ ПРОЦЕССОРА К1801ВМ2 =&lt;br /&gt;
:''Статья из журнала «Персональный компьютер УКНЦ» №1 1994 год''&lt;br /&gt;
&lt;br /&gt;
== Терминология ==&lt;br /&gt;
&lt;br /&gt;
* ВЕКТОР СОСТОЯНИЯ ПРОЦЕССА   — значения счетчика команд и слова состояния&lt;br /&gt;
* ВЕКТОР ПРЕРЫВАНИЯ                       — вектор состояния прерывающего процесса.&lt;br /&gt;
* АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ      — адрес ячейки памяти, содержащей значение СК прерывающего процесса. В следующей ячейке хранится значение ССП прерывающего процесса.&lt;br /&gt;
* ПРОСЛЕЖИВАЕМАЯ КОМАНДА      — команда, выполняемая при установленном Т-разряде в ССП.&lt;br /&gt;
&lt;br /&gt;
== Источники прерываний и их АВП ==&lt;br /&gt;
&lt;br /&gt;
Прерывания, обусловленные применением процессора К1801ВМ2 и регистрируемые на магистралях ЦП и ПП, приведены в табл. 1.&lt;br /&gt;
&lt;br /&gt;
;Таблица 1&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspasing=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot;&lt;br /&gt;
!АВП	!!Очередность	!!Описание&lt;br /&gt;
|-&lt;br /&gt;
|4	||2	||Прерывание по запрещенной команде возникает при попытке выполнить команду с неправильно заданным методом адресации. К таким командам относятся команды JMP и JSR с регистровыми методами адресации&lt;br /&gt;
|-&lt;br /&gt;
|4	||1	||Прерывание по зависанию в канале возникает при попытке обращения по адресу несуществующей ячейки памяти или регистра ВУ&lt;br /&gt;
|-&lt;br /&gt;
|10	||2	||Прерывание по резервной команде возникает при попытке выполнить команду, код которой в данном процессоре не используется&lt;br /&gt;
|-&lt;br /&gt;
|14	||4	||Прерывание по Т-разряду вызывается после выполнения команды при установленном 4-м разряде ССП. Установка и очистка 4-го разряда возможна только при выполнении команд RTT, RTI, ШАГ, ПУСК и при загрузке вектора прерывания&lt;br /&gt;
|-&lt;br /&gt;
|24	||5	||Прерывание по сбою питания происходит при снижении сетевого питания за пределы допустимого уровня. По завершении выполнения текущей команды процессор переходит на выполнение программы обработки прерывания...&lt;br /&gt;
|-&lt;br /&gt;
|100	||7	||Прерывания от «сетевого таймера» возникают в момент достижения лучом кинескопа монитора конца кадра кадровый синхросигнал монитора.)&lt;br /&gt;
|-&lt;br /&gt;
|250	||3	||Прерывание по сигналу WIR. В ЦП УКНЦ используется только для работы внешних расширений магистрали ЦП (например, обработка ошибок обмена с дополнительными магистралями)&lt;br /&gt;
|-&lt;br /&gt;
|******	||8	||Сигнал VIRQ (от устройств ЭВМ, см. след. главу)&lt;br /&gt;
|-&lt;br /&gt;
|160000	||	||Прерывание по включении питания&lt;br /&gt;
|-&lt;br /&gt;
|160004	||4	||Зависание в режиме HALT&lt;br /&gt;
|-&lt;br /&gt;
|160170	||6	||Сигнал (команда) HALT&lt;br /&gt;
|-&lt;br /&gt;
|160174	||6	||Двойное зависание возникает в случае зависания в канале во время выполнения микропрограммной процедуры прерывания, вызванной зависанием при передаче данных по каналу (т.е. если при загрузке ВП процесса обработки прерывания по зависанию в СК попадает адрес несуществующей ячейки)&lt;br /&gt;
|-&lt;br /&gt;
|160274	||6	||Зависание при приеме адреса вектора прерывания фиксируется в случае, если внешнее устройство выставило запрос на прерывание и не формирует АВП. Это, в частности, происходит при возникновении требования прерывания внешним устройством во время выполнения команды маскирования прерывания в регистре состояния этого же устройства. Отсюда рекомендация запрещать прерывания конкретных устройств только при высоком приоритете процессора (ССП(7)-1)&lt;br /&gt;
|-&lt;br /&gt;
|160010	||	||По этому вектору возникает прерывание в случае попытки выполнить команду арифметики с плавающей запятой *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Особые случаи прерывания по Т-разряду ==&lt;br /&gt;
&lt;br /&gt;
#	Если прослеживаемая команда RTI или RTT очищает Т-разяд, то после ее выполнения все же происходит прерывание по Т-разряду. Однако в стеке сохранится ССП с очищенным Т-разрядом.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ, ПУСК, HALT или команда прерывания очищает Т-разряд, то после ее выполнения прерывания по Т-разряду не происходит.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ или RTT устанавливает Т-разряд, то прерывание по Т-разряду произойдет после выполнения следующей за ШАГ или RTT командой.&lt;br /&gt;
#	После выполнения остальных команд, устанавливающих Т-разряд, прерывание происходит сразу за ними.&lt;br /&gt;
#	Если во время выполнения прослеживаемой команды произошло зависание и при загрузке ВП Т-разряд очищается, то прерывание по Т-разряду не происходит.&lt;br /&gt;
#	Во время выполнения прослеживаемой команды WAIT Т-разряд игнорируется. При возврате из прерывания условия возникновения прерывания стандартны (см. пункты 4.1 и 4.3).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм обработки прерываний ==&lt;br /&gt;
&lt;br /&gt;
Прерывание текущего процесса обычно допускается лишь в конце выполнения команды. Только зависание в канале может прервать выполнение команды на любой фазе ее выполнения.&lt;br /&gt;
&lt;br /&gt;
При возникновении условий прерывания процессор последовательно выполняет следующие действия:&lt;br /&gt;
&lt;br /&gt;
#	Микропрограммное сохранение вектора состояния прерываемого процесса либо в стеке, либо в КРСК и КРСП.&lt;br /&gt;
#	Формирование значения АВП. Микропрограммная загрузка вектора прерывания из пары ячеек ОЗУ или ПЗУ.&lt;br /&gt;
#	Анализируется состояние запросов на прерывание. Если незамаскированных запросов нет, то производится чтение первой команды нового процесса и ее выполнение. Иначе снова происходит процедура прерывания.&lt;br /&gt;
&lt;br /&gt;
В ситуации включения питания, фатальных состояний или выполнения команды HALT (обработки сигнала HALT) процедура прерывания отличается от обычной:&lt;br /&gt;
#	по процедуре безадресного чтения читается внешний регистр (SEL);&lt;br /&gt;
#	формируется значение адреса вектора прерывания;&lt;br /&gt;
#	разряды 15-8 берутся из соответствующих разрядов внешнего регистра, разряды 7-0 устанавливаются в зависимости от причины прерывания**;&lt;br /&gt;
#	происходит принудительная установка режима «HALT», для загрузки ВП из адресного пространства этого режима;&lt;br /&gt;
#	загружаются СК и ССП процесса обработки прерывания;&lt;br /&gt;
#	если разряд 8 загруженного ССП очищен, то происходит возврат в режим «USER».&lt;br /&gt;
&lt;br /&gt;
;Примечания.&lt;br /&gt;
&lt;br /&gt;
(*) Вообще говоря, процессор К1801ВМ2 фиксирует данное прерывание только в том случае, если 7 бит внешнего регистра (флаг наличия программной эмуляции команд арифметики с плавающей запятой) установлен. Но в УКНЦ возможность изменения этого регистра отсутствует, и по этому прерывание возникает всегда при прочтении вышеобозначенных команд.&lt;br /&gt;
&lt;br /&gt;
(**) Биты 15-8 внешнего регистра служат для указания старших адресов рассматриваемых векторов прерываний, поэтому данные векторы могут размещаться в любом 256-байтном сегменте памяти. Это актуально для машин с отсутствующим или проецирующимся по другим адресам системном (SEL) ОЗУ. Как уже отмечено, в УКНЦ, изменить эти биты нельзя.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1746</id>
		<title>Uknc Magazine 1994-01 ProcInt</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1746"/>
		<updated>2009-11-04T10:12:42Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= СИСТЕМА ПРЕРЫВАНИЙ ПРОЦЕССОРА К1801ВМ2 =&lt;br /&gt;
&lt;br /&gt;
== Терминология ==&lt;br /&gt;
&lt;br /&gt;
* ВЕКТОР СОСТОЯНИЯ ПРОЦЕССА   — значения счетчика команд и слова состояния&lt;br /&gt;
* ВЕКТОР ПРЕРЫВАНИЯ                       — вектор состояния прерывающего процесса.&lt;br /&gt;
* АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ      — адрес ячейки памяти, содержащей значение СК прерывающего процесса. В следующей ячейке хранится значение ССП прерывающего процесса.&lt;br /&gt;
* ПРОСЛЕЖИВАЕМАЯ КОМАНДА      — команда, выполняемая при установленном Т-разряде в ССП.&lt;br /&gt;
&lt;br /&gt;
== Источники прерываний и их АВП ==&lt;br /&gt;
&lt;br /&gt;
Прерывания, обусловленные применением процессора К1801ВМ2 и регистрируемые на магистралях ЦП и ПП, приведены в табл. 1.&lt;br /&gt;
&lt;br /&gt;
;Таблица 1&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspasing=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse:collapse&amp;quot;&lt;br /&gt;
!АВП	!!Очередность	!!Описание&lt;br /&gt;
|-&lt;br /&gt;
|4	||2	||Прерывание по запрещенной команде возникает при попытке выполнить команду с неправильно заданным методом адресации. К таким командам относятся команды JMP и JSR с регистровыми методами адресации&lt;br /&gt;
|-&lt;br /&gt;
|4	||1	||Прерывание по зависанию в канале возникает при попытке обращения по адресу несуществующей ячейки памяти или регистра ВУ&lt;br /&gt;
|-&lt;br /&gt;
|10	||2	||Прерывание по резервной команде возникает при попытке выполнить команду, код которой в данном процессоре не используется&lt;br /&gt;
|-&lt;br /&gt;
|14	||4	||Прерывание по Т-разряду вызывается после выполнения команды при установленном 4-м разряде ССП. Установка и очистка 4-го разряда возможна только при выполнении команд RTT, RTI, ШАГ, ПУСК и при загрузке вектора прерывания&lt;br /&gt;
|-&lt;br /&gt;
|24	||5	||Прерывание по сбою питания происходит при снижении сетевого питания за пределы допустимого уровня. По завершении выполнения текущей команды процессор переходит на выполнение программы обработки прерывания...&lt;br /&gt;
|-&lt;br /&gt;
|100	||7	||Прерывания от «сетевого таймера» возникают в момент достижения лучом кинескопа монитора конца кадра кадровый синхросигнал монитора.)&lt;br /&gt;
|-&lt;br /&gt;
|250	||3	||Прерывание по сигналу WIR. В ЦП УКНЦ используется только для работы внешних расширений магистрали ЦП (например, обработка ошибок обмена с дополнительными магистралями)&lt;br /&gt;
|-&lt;br /&gt;
|******	||8	||Сигнал VIRQ (от устройств ЭВМ, см. след. главу)&lt;br /&gt;
|-&lt;br /&gt;
|160000	||	||Прерывание по включении питания&lt;br /&gt;
|-&lt;br /&gt;
|160004	||4	||Зависание в режиме HALT&lt;br /&gt;
|-&lt;br /&gt;
|160170	||6	||Сигнал (команда) HALT&lt;br /&gt;
|-&lt;br /&gt;
|160174	||6	||Двойное зависание возникает в случае зависания в канале во время выполнения микропрограммной процедуры прерывания, вызванной зависанием при передаче данных по каналу (т.е. если при загрузке ВП процесса обработки прерывания по зависанию в СК попадает адрес несуществующей ячейки)&lt;br /&gt;
|-&lt;br /&gt;
|160274	||6	||Зависание при приеме адреса вектора прерывания фиксируется в случае, если внешнее устройство выставило запрос на прерывание и не формирует АВП. Это, в частности, происходит при возникновении требования прерывания внешним устройством во время выполнения команды маскирования прерывания в регистре состояния этого же устройства. Отсюда рекомендация запрещать прерывания конкретных устройств только при высоком приоритете процессора (ССП(7)-1)&lt;br /&gt;
|-&lt;br /&gt;
|160010	||	||По этому вектору возникает прерывание в случае попытки выполнить команду арифметики с плавающей запятой *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Особые случаи прерывания по Т-разряду ==&lt;br /&gt;
&lt;br /&gt;
#	Если прослеживаемая команда RTI или RTT очищает Т-разяд, то после ее выполнения все же происходит прерывание по Т-разряду. Однако в стеке сохранится ССП с очищенным Т-разрядом.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ, ПУСК, HALT или команда прерывания очищает Т-разряд, то после ее выполнения прерывания по Т-разряду не происходит.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ или RTT устанавливает Т-разряд, то прерывание по Т-разряду произойдет после выполнения следующей за ШАГ или RTT командой.&lt;br /&gt;
#	После выполнения остальных команд, устанавливающих Т-разряд, прерывание происходит сразу за ними.&lt;br /&gt;
#	Если во время выполнения прослеживаемой команды произошло зависание и при загрузке ВП Т-разряд очищается, то прерывание по Т-разряду не происходит.&lt;br /&gt;
#	Во время выполнения прослеживаемой команды WAIT Т-разряд игнорируется. При возврате из прерывания условия возникновения прерывания стандартны (см. пункты 4.1 и 4.3).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм обработки прерываний ==&lt;br /&gt;
&lt;br /&gt;
Прерывание текущего процесса обычно допускается лишь в конце выполнения команды. Только зависание в канале может прервать выполнение команды на любой фазе ее выполнения.&lt;br /&gt;
&lt;br /&gt;
При возникновении условий прерывания процессор последовательно выполняет следующие действия:&lt;br /&gt;
&lt;br /&gt;
#	Микропрограммное сохранение вектора состояния прерываемого процесса либо в стеке, либо в КРСК и КРСП.&lt;br /&gt;
#	Формирование значения АВП. Микропрограммная загрузка вектора прерывания из пары ячеек ОЗУ или ПЗУ.&lt;br /&gt;
#	Анализируется состояние запросов на прерывание. Если незамаскированных запросов нет, то производится чтение первой команды нового процесса и ее выполнение. Иначе снова происходит процедура прерывания.&lt;br /&gt;
&lt;br /&gt;
В ситуации включения питания, фатальных состояний или выполнения команды HALT (обработки сигнала HALT) процедура прерывания отличается от обычной:&lt;br /&gt;
#	по процедуре безадресного чтения читается внешний регистр (SEL);&lt;br /&gt;
#	формируется значение адреса вектора прерывания;&lt;br /&gt;
#	разряды 15-8 берутся из соответствующих разрядов внешнего регистра, разряды 7-0 устанавливаются в зависимости от причины прерывания**;&lt;br /&gt;
#	происходит принудительная установка режима «HALT», для загрузки ВП из адресного пространства этого режима;&lt;br /&gt;
#	загружаются СК и ССП процесса обработки прерывания;&lt;br /&gt;
#	если разряд 8 загруженного ССП очищен, то происходит возврат в режим «USER».&lt;br /&gt;
&lt;br /&gt;
;Примечания.&lt;br /&gt;
&lt;br /&gt;
(*) Вообще говоря, процессор К1801ВМ2 фиксирует данное прерывание только в том случае, если 7 бит внешнего регистра (флаг наличия программной эмуляции команд арифметики с плавающей запятой) установлен. Но в УКНЦ возможность изменения этого регистра отсутствует, и по этому прерывание возникает всегда при прочтении вышеобозначенных команд.&lt;br /&gt;
&lt;br /&gt;
(**) Биты 15-8 внешнего регистра служат для указания старших адресов рассматриваемых векторов прерываний, поэтому данные векторы могут размещаться в любом 256-байтном сегменте памяти. Это актуально для машин с отсутствующим или проецирующимся по другим адресам системном (SEL) ОЗУ. Как уже отмечено, в УКНЦ, изменить эти биты нельзя.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1745</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1745"/>
		<updated>2009-11-04T10:08:25Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[UKNC FDD passport]] — Устройство КМД УК. Паспорт. У13.065.013 ПС&lt;br /&gt;
* [[UKNC FDD 1801vp1-128]] — Техническое описание микросхемы 1801ВП1-128 контроллера дисковода&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Basic Manual|БЕЙСИК. Описание языка]] — БЕЙСИК. Описание языка. У1.00031-01 35 01.&lt;br /&gt;
* [[Uknc Basic PgmMan|БЕЙСИК. Руководство программиста]] — БЕЙСИК. Руководство программиста. У1.00031-01 33 01&lt;br /&gt;
* [[Uknc Basic OprMan|БЕЙСИК. Руководство оператора]] — БЕЙСИК. Руководство оператора. У1.00031-01 34 02&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
** [[Uknc Magazine 1994-01 ProcInt|1994-01. Режим адресации процессора К1801ВМ2]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/УКНЦ УКНЦ] — статья в Википедии&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1744</id>
		<title>Uknc Magazine contents</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1744"/>
		<updated>2009-11-04T10:07:35Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Компьютер УКНЦ #1, 1994 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Содержание журнала «Компьютер УКНЦ»&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1994 ==&lt;br /&gt;
* Дубовик В. В. Солнечногорский электромеханический завод 	&lt;br /&gt;
* Список сокращений&lt;br /&gt;
* Носов М. Б. Все о периферийном процессоре&lt;br /&gt;
* Фролкин Б. Ф. PAF Commander V1.02 А. Петросяна, DESS V05.00e Д. Климова&lt;br /&gt;
* Еремин Е. А. К вопросу о работе локальной БЕЙСИК-сети в КУВТ УКНЦ&lt;br /&gt;
* [[Uknc Magazine 1994-01 ProcInt|Режим адресации процессора К1801ВМ2]]&lt;br /&gt;
* Система команд процессора К1801ВМ2&lt;br /&gt;
* Система прерываний процессора К1801ВМ2&lt;br /&gt;
* Глобальные переменные системы ввода-вывода (ОС ПМ)&lt;br /&gt;
* Тютюнников А. В. Архиваторы&lt;br /&gt;
* Быстров И. И. &amp;quot;NET-Rt11&amp;quot; - сетевая система для КУВТ &amp;quot;УКНЦ&amp;quot; с IBM-совместимой головной машиной&lt;br /&gt;
* Ховайко О. И. Хитрости работы с периферийным процессором&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1994 ==&lt;br /&gt;
* К читателю&lt;br /&gt;
* Штарев М. Е. &amp;quot;Ресурсы УКНЦ&amp;quot;&lt;br /&gt;
* Еремин Е. А. О работоспособности программного обеспечения на РМУ в КУВТ УКНЦ&lt;br /&gt;
* Акулин А. И. &amp;quot;Мышь&amp;quot; для УКНЦ&lt;br /&gt;
* Остапенко А. Программы SKIPER и PCCUR&lt;br /&gt;
* Остапенко А. Тайны &amp;quot;вечной жизни&amp;quot;&lt;br /&gt;
* Ассемблер MACRO-11: Руководство оператора&lt;br /&gt;
* Ассемблер MACRO-11: Руководство программиста&lt;br /&gt;
* Управляющие последовательности терминала&lt;br /&gt;
* Структура &amp;quot;HALT&amp;quot; области ОЗУ ЦП&lt;br /&gt;
* Список ЕМТ-прерываний ОС ПМ&lt;br /&gt;
* Регистры системных устройств магистрали ЦП&lt;br /&gt;
* Регистры системных устройств магитрали ПП&lt;br /&gt;
* Штарев М. Е. &amp;quot;Библиотека MGR&amp;quot;&lt;br /&gt;
* Батьков Г. А. Обзор программных средств&lt;br /&gt;
* Мороз С. С. Система управления базами данных для УКНЦ&lt;br /&gt;
* Сказка про байт&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1994 ==&lt;br /&gt;
* Штарев М. Е. Ресурсы УКНЦ. Работа с текстовыми окнами&lt;br /&gt;
* Пузырников В. БЕЙСИК: полезные советы для начинающих&lt;br /&gt;
* Операционная система ФОДОС-2. Системая макробиблиотека&lt;br /&gt;
* Список ESC-последовательностей с кодом 200_8 и более&lt;br /&gt;
* Работа с планами видеоОЗУ&lt;br /&gt;
* Борис Ф. Фролкин Новый драйвер дисковода MZ.SYS для УКНЦ&lt;br /&gt;
* Подъемщиков А. Н. Еще об одной ошибке в УКНЦ (МС-0511)&lt;br /&gt;
* Быстров И. И. IBM PC из УКНЦ и &amp;quot;Корвета&amp;quot;&lt;br /&gt;
* Бурков К. Г. Для тех, кто знает: FORTH!&lt;br /&gt;
* Содержание предыдущих выпусков&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1995 ==&lt;br /&gt;
* Устройство вычислителя&lt;br /&gt;
* Операционная система ФОДОС-2 (Системная макробиблиотека)&lt;br /&gt;
* В.Лукичев. Справочная  информация для начинающих программистов УКНЦ&lt;br /&gt;
* А.В.Милюков. Практика работы с периферийным процессором УКНЦ&lt;br /&gt;
* С.Клоков, Д.Ланин. Супер БЕЙСИК для УКНЦ&lt;br /&gt;
* Е.А.Еремин. Об алгоритмах перевода целых чисел в некоторые режимы счисления, реализованных в BASIC-интерпретаторе УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1995 ==&lt;br /&gt;
* Операционная система ФОДОС-2. Руководство программиста&lt;br /&gt;
* М.Б.Носов Все о периферийном процессоре&lt;br /&gt;
* Устройство вычислителя: руководство по ремонту&lt;br /&gt;
* И.И.Быстров АО &amp;quot;ЛИнТех&amp;quot; отвечает на вопросы&lt;br /&gt;
* С.П.Калашников Самодельная псевдографика на УКНЦ&lt;br /&gt;
* В.А.Файзулин Реализация алгоритма формирования массива с различными случайными элементами&lt;br /&gt;
* А.Захаров, Е.Пыжиков Пользователям КУВТ УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1995 ==&lt;br /&gt;
* А.Н.Гриценко, А.Н.Тушев Классы УКНЦ в учебном процессе&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* Б.А.Еремин Компилятор?.. Это очень просто&lt;br /&gt;
* А.Б.Розенфельд Использование принтера Д100М&lt;br /&gt;
* А.Ф.Носенко Вывод информации из БЕЙСИКа УКНЦ на принтер Д100М&lt;br /&gt;
* Д.А.Левант Программа печати файлов&lt;br /&gt;
* В.Ю.Ключников Ошибки трансляции компилятора MACRO v5.00&lt;br /&gt;
* В.И.Вашкевич Использование нестандартных команд символьного режима терминала VT-52&lt;br /&gt;
* В.Г.Романов Программирование мелодий в БЕЙСИКе УКНЦ&lt;br /&gt;
* А.В.Герасимов&lt;br /&gt;
* В.А.Файзуллин&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #4, 1995 ==&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* В.С.Дементьев. Изобразительные возможности редакторов шрифтов&lt;br /&gt;
* М.С.Никонов, С.П.Черняк. Программа построения графиков функций&lt;br /&gt;
* В.А.Самойлов. Использование символов псевдографики в учебном процессе&lt;br /&gt;
* Н.А.Кожевин. Использование квазидиска при работе с графикой в среде PASCAL/FACT V1.2&lt;br /&gt;
* В.В.Ларин. Создание новых символов&lt;br /&gt;
* М.Б.Носов. УКНЦ - проблемы и решения ЛИнТех&lt;br /&gt;
* С.В.Кононов. IBM PC из &amp;quot;Корвет&amp;quot; и УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* http://www.infomag.ru/journals/j010r/&lt;br /&gt;
* http://bk0010.chat.ru/Soder.htm&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1743</id>
		<title>Uknc Magazine 1994-01 ProcInt</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_1994-01_ProcInt&amp;diff=1743"/>
		<updated>2009-11-04T10:07:20Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= СИСТЕМА ПРЕРЫВАНИЙ ПРОЦЕССОРА К1801ВМ2 =&lt;br /&gt;
&lt;br /&gt;
== Терминология ==&lt;br /&gt;
&lt;br /&gt;
* ВЕКТОР СОСТОЯНИЯ ПРОЦЕССА   — значения счетчика команд и слова состояния&lt;br /&gt;
* ВЕКТОР ПРЕРЫВАНИЯ                       — вектор состояния прерывающего процесса.&lt;br /&gt;
* АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ      — адрес ячейки памяти, содержащей значение СК прерывающего процесса. В следующей ячейке хранится значение ССП прерывающего процесса.&lt;br /&gt;
* ПРОСЛЕЖИВАЕМАЯ КОМАНДА      — команда, выполняемая при установленном Т-разряде в ССП.&lt;br /&gt;
&lt;br /&gt;
== Источники прерываний и их АВП ==&lt;br /&gt;
&lt;br /&gt;
Прерывания, обусловленные применением процессора К1801ВМ2 и регистрируемые на магистралях ЦП и ПП, приведены в табл. 1.&lt;br /&gt;
&lt;br /&gt;
;Таблица 1&lt;br /&gt;
{|&lt;br /&gt;
!АВП	!!Очередность	!!Описание&lt;br /&gt;
|-&lt;br /&gt;
|4	||2	||Прерывание по запрещенной команде возникает при попытке выполнить команду с неправильно заданным методом адресации. К таким командам относятся команды JMP и JSR с регистровыми методами адресации&lt;br /&gt;
|-&lt;br /&gt;
|4	||1	||Прерывание по зависанию в канале возникает при попытке обращения по адресу несуществующей ячейки памяти или регистра ВУ&lt;br /&gt;
|-&lt;br /&gt;
|10	||2	||Прерывание по резервной команде возникает при попытке выполнить команду, код которой в данном процессоре не используется&lt;br /&gt;
|-&lt;br /&gt;
|14	||4	||Прерывание по Т-разряду вызывается после выполнения команды при установленном 4-м разряде ССП. Установка и очистка 4-го разряда возможна только при выполнении команд RTT, RTI, ШАГ, ПУСК и при загрузке вектора прерывания&lt;br /&gt;
|-&lt;br /&gt;
|24	||5	||Прерывание по сбою питания происходит при снижении сетевого питания за пределы допустимого уровня. По завершении выполнения текущей команды процессор переходит на выполнение программы обработки прерывания...&lt;br /&gt;
|-&lt;br /&gt;
|100	||7	||Прерывания от «сетевого таймера» возникают в момент достижения лучом кинескопа монитора конца кадра кадровый синхросигнал монитора.)&lt;br /&gt;
|-&lt;br /&gt;
|250	||3	||Прерывание по сигналу WIR. В ЦП УКНЦ используется только для работы внешних расширений магистрали ЦП (например, обработка ошибок обмена с дополнительными магистралями)&lt;br /&gt;
|-&lt;br /&gt;
|******	||8	||Сигнал VIRQ (от устройств ЭВМ, см. след. главу)&lt;br /&gt;
|-&lt;br /&gt;
|160000	||	||Прерывание по включении питания&lt;br /&gt;
|-&lt;br /&gt;
|160004	||4	||Зависание в режиме HALT&lt;br /&gt;
|-&lt;br /&gt;
|160170	||6	||Сигнал (команда) HALT&lt;br /&gt;
|-&lt;br /&gt;
|160174	||6	||Двойное зависание возникает в случае зависания в канале во время выполнения микропрограммной процедуры прерывания, вызванной зависанием при передаче данных по каналу (т.е. если при загрузке ВП процесса обработки прерывания по зависанию в СК попадает адрес несуществующей ячейки)&lt;br /&gt;
|-&lt;br /&gt;
|160274	||6	||Зависание при приеме адреса вектора прерывания фиксируется в случае, если внешнее устройство выставило запрос на прерывание и не формирует АВП. Это, в частности, происходит при возникновении требования прерывания внешним устройством во время выполнения команды маскирования прерывания в регистре состояния этого же устройства. Отсюда рекомендация запрещать прерывания конкретных устройств только при высоком приоритете процессора (ССП(7)-1)&lt;br /&gt;
|-&lt;br /&gt;
|160010	||	||По этому вектору возникает прерывание в случае попытки выполнить команду арифметики с плавающей запятой *&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Особые случаи прерывания по Т-разряду ==&lt;br /&gt;
&lt;br /&gt;
#	Если прослеживаемая команда RTI или RTT очищает Т-разяд, то после ее выполнения все же происходит прерывание по Т-разряду. Однако в стеке сохранится ССП с очищенным Т-разрядом.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ, ПУСК, HALT или команда прерывания очищает Т-разряд, то после ее выполнения прерывания по Т-разряду не происходит.&lt;br /&gt;
#	Если прослеживаемая команда ШАГ или RTT устанавливает Т-разряд, то прерывание по Т-разряду произойдет после выполнения следующей за ШАГ или RTT командой.&lt;br /&gt;
#	После выполнения остальных команд, устанавливающих Т-разряд, прерывание происходит сразу за ними.&lt;br /&gt;
#	Если во время выполнения прослеживаемой команды произошло зависание и при загрузке ВП Т-разряд очищается, то прерывание по Т-разряду не происходит.&lt;br /&gt;
#	Во время выполнения прослеживаемой команды WAIT Т-разряд игнорируется. При возврате из прерывания условия возникновения прерывания стандартны (см. пункты 4.1 и 4.3).&lt;br /&gt;
&lt;br /&gt;
== Алгоритм обработки прерываний ==&lt;br /&gt;
&lt;br /&gt;
Прерывание текущего процесса обычно допускается лишь в конце выполнения команды. Только зависание в канале может прервать выполнение команды на любой фазе ее выполнения.&lt;br /&gt;
&lt;br /&gt;
При возникновении условий прерывания процессор последовательно выполняет следующие действия:&lt;br /&gt;
&lt;br /&gt;
#	Микропрограммное сохранение вектора состояния прерываемого процесса либо в стеке, либо в КРСК и КРСП.&lt;br /&gt;
#	Формирование значения АВП. Микропрограммная загрузка вектора прерывания из пары ячеек ОЗУ или ПЗУ.&lt;br /&gt;
#	Анализируется состояние запросов на прерывание. Если незамаскированных запросов нет, то производится чтение первой команды нового процесса и ее выполнение. Иначе снова происходит процедура прерывания.&lt;br /&gt;
&lt;br /&gt;
В ситуации включения питания, фатальных состояний или выполнения команды HALT (обработки сигнала HALT) процедура прерывания отличается от обычной:&lt;br /&gt;
#	по процедуре безадресного чтения читается внешний регистр (SEL);&lt;br /&gt;
#	формируется значение адреса вектора прерывания;&lt;br /&gt;
#	разряды 15-8 берутся из соответствующих разрядов внешнего регистра, разряды 7-0 устанавливаются в зависимости от причины прерывания**;&lt;br /&gt;
#	происходит принудительная установка режима «HALT», для загрузки ВП из адресного пространства этого режима;&lt;br /&gt;
#	загружаются СК и ССП процесса обработки прерывания;&lt;br /&gt;
#	если разряд 8 загруженного ССП очищен, то происходит возврат в режим «USER».&lt;br /&gt;
&lt;br /&gt;
;Примечания.&lt;br /&gt;
&lt;br /&gt;
(*) Вообще говоря, процессор К1801ВМ2 фиксирует данное прерывание только в том случае, если 7 бит внешнего регистра (флаг наличия программной эмуляции команд арифметики с плавающей запятой) установлен. Но в УКНЦ возможность изменения этого регистра отсутствует, и по этому прерывание возникает всегда при прочтении вышеобозначенных команд.&lt;br /&gt;
&lt;br /&gt;
(**) Биты 15-8 внешнего регистра служат для указания старших адресов рассматриваемых векторов прерываний, поэтому данные векторы могут размещаться в любом 256-байтном сегменте памяти. Это актуально для машин с отсутствующим или проецирующимся по другим адресам системном (SEL) ОЗУ. Как уже отмечено, в УКНЦ, изменить эти биты нельзя.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1742</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1742"/>
		<updated>2008-03-02T20:39:48Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 15:39, 2 March 2008 (EST) ===&lt;br /&gt;
Ну что же, вот и настал момент когда эмулятор УКНЦ становится проектом с открытым исходным кодом. Не то чтобы это был такой уж красивый код, но...&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/ukncbtl/&lt;br /&gt;
&lt;br /&gt;
Одновременно с этим выходит beta-9. Поскольку все исправления этой версии сделаны Alex_K, привожу его комментарий без купюр:&lt;br /&gt;
&lt;br /&gt;
:''Подправлены многие ошибки, но многие еще остались. Устранена потеря VIRQ (из-за этого и зависала клавиатура), сделано прерывание 024 ЦП (разряд 15 порта 177716), устранена ошибка чтения/записи слова по нечетному адресу в ПП и еще кое-чего... Теперь нормально работает Турбо-Бейсик.''&lt;br /&gt;
&lt;br /&gt;
http://ukncbtl.googlecode.com/files/UKNCBTL-beta9.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:54, 3 February 2008 (EST) ===&lt;br /&gt;
Давно собирался это сделать:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNCBTL-Keyboard.png]]&lt;br /&gt;
&lt;br /&gt;
А ещё обратите внимание на индикатор дискеты — появился ярлычок защиты от записи.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta8-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:18, 2 February 2008 (EST) ===&lt;br /&gt;
&lt;br /&gt;
По просьбам трудящихся — опция уменьшения скорости до (примерно) 25 fps, т.е. до скорости реального УКНЦ. Тут стоить напомнить, что пока у нас каждая команда процессора занимает один такт, поэтому рельно скорость эмулятора всё равно будет выше реальной.&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNCBTL-RealSpeed.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta7-exe.zip&lt;br /&gt;
&lt;br /&gt;
И, чтобы два раза не вставать.&amp;lt;br/&amp;gt;&lt;br /&gt;
Была такая старая игрушка — «Королевство Эйфория»:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNC KINGOM.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/disks/disks2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
Загружаетесь с этого диска, вводите: &amp;lt;code&amp;gt;RU KINGOM&amp;lt;/code&amp;gt;, &amp;amp;lt;ENTER&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:53, 27 January 2008 (EST) ===&lt;br /&gt;
Долгожданный момент — в эмуляторе заработала запись на диск. Ради этого пришлось перетряхнуть буквально всё что связано с дисковой подсистемой. Огромная благодарность Алексею Кислому за написание грамотного описания дискового контроллера, консультации по нюансам его работы, а также тестирование на завершающей стадии работ, в общем — респект. Сколько бы я провозился без этой помощи — даже не представляю.&lt;br /&gt;
&lt;br /&gt;
Кроме того, появилась опция Emulator|Autostart — чтобы не жать каждый раз Play для запуска эмулятора.&lt;br /&gt;
&lt;br /&gt;
Некоторый регресс: звук пока отключен, ибо толком не работал; Бейсик из картриджа ПЗУ перестал работать — видимо, результат моих боданий с окном памяти.&lt;br /&gt;
&lt;br /&gt;
''ВНИМАНИЕ:'' Функция записи на диск только что появилась, вероятно наличие мелких и крупных ошибок. Ценные для вас образы дисков защищайте флагом read-only (в эмуляторе это рассматривается как защищённая от записи дискета), либо делайте резервные копии.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1741</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1741"/>
		<updated>2008-02-03T17:54:34Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:54, 3 February 2008 (EST) ===&lt;br /&gt;
Давно собирался это сделать:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNCBTL-Keyboard.png]]&lt;br /&gt;
&lt;br /&gt;
А ещё обратите внимание на индикатор дискеты — появился ярлычок защиты от записи.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta8-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:18, 2 February 2008 (EST) ===&lt;br /&gt;
&lt;br /&gt;
По просьбам трудящихся — опция уменьшения скорости до (примерно) 25 fps, т.е. до скорости реального УКНЦ. Тут стоить напомнить, что пока у нас каждая команда процессора занимает один такт, поэтому рельно скорость эмулятора всё равно будет выше реальной.&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNCBTL-RealSpeed.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta7-exe.zip&lt;br /&gt;
&lt;br /&gt;
И, чтобы два раза не вставать.&amp;lt;br/&amp;gt;&lt;br /&gt;
Была такая старая игрушка — «Королевство Эйфория»:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNC KINGOM.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/disks/disks2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
Загружаетесь с этого диска, вводите: &amp;lt;code&amp;gt;RU KINGOM&amp;lt;/code&amp;gt;, &amp;amp;lt;ENTER&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:53, 27 January 2008 (EST) ===&lt;br /&gt;
Долгожданный момент — в эмуляторе заработала запись на диск. Ради этого пришлось перетряхнуть буквально всё что связано с дисковой подсистемой. Огромная благодарность Алексею Кислому за написание грамотного описания дискового контроллера, консультации по нюансам его работы, а также тестирование на завершающей стадии работ, в общем — респект. Сколько бы я провозился без этой помощи — даже не представляю.&lt;br /&gt;
&lt;br /&gt;
Кроме того, появилась опция Emulator|Autostart — чтобы не жать каждый раз Play для запуска эмулятора.&lt;br /&gt;
&lt;br /&gt;
Некоторый регресс: звук пока отключен, ибо толком не работал; Бейсик из картриджа ПЗУ перестал работать — видимо, результат моих боданий с окном памяти.&lt;br /&gt;
&lt;br /&gt;
''ВНИМАНИЕ:'' Функция записи на диск только что появилась, вероятно наличие мелких и крупных ошибок. Ценные для вас образы дисков защищайте флагом read-only (в эмуляторе это рассматривается как защищённая от записи дискета), либо делайте резервные копии.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=File:UKNCBTL-Keyboard.png&amp;diff=1740</id>
		<title>File:UKNCBTL-Keyboard.png</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=File:UKNCBTL-Keyboard.png&amp;diff=1740"/>
		<updated>2008-02-03T17:53:12Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1739</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1739"/>
		<updated>2008-02-02T18:18:03Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:18, 2 February 2008 (EST) ===&lt;br /&gt;
&lt;br /&gt;
По просьбам трудящихся — опция уменьшения скорости до (примерно) 25 fps, т.е. до скорости реального УКНЦ. Тут стоить напомнить, что пока у нас каждая команда процессора занимает один такт, поэтому рельно скорость эмулятора всё равно будет выше реальной.&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNCBTL-RealSpeed.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta7-exe.zip&lt;br /&gt;
&lt;br /&gt;
И, чтобы два раза не вставать.&amp;lt;br/&amp;gt;&lt;br /&gt;
Была такая старая игрушка — «Королевство Эйфория»:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNC KINGOM.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/disks/disks2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
Загружаетесь с этого диска, вводите: &amp;lt;code&amp;gt;RU KINGOM&amp;lt;/code&amp;gt;, &amp;amp;lt;ENTER&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:53, 27 January 2008 (EST) ===&lt;br /&gt;
Долгожданный момент — в эмуляторе заработала запись на диск. Ради этого пришлось перетряхнуть буквально всё что связано с дисковой подсистемой. Огромная благодарность Алексею Кислому за написание грамотного описания дискового контроллера, консультации по нюансам его работы, а также тестирование на завершающей стадии работ, в общем — респект. Сколько бы я провозился без этой помощи — даже не представляю.&lt;br /&gt;
&lt;br /&gt;
Кроме того, появилась опция Emulator|Autostart — чтобы не жать каждый раз Play для запуска эмулятора.&lt;br /&gt;
&lt;br /&gt;
Некоторый регресс: звук пока отключен, ибо толком не работал; Бейсик из картриджа ПЗУ перестал работать — видимо, результат моих боданий с окном памяти.&lt;br /&gt;
&lt;br /&gt;
''ВНИМАНИЕ:'' Функция записи на диск только что появилась, вероятно наличие мелких и крупных ошибок. Ценные для вас образы дисков защищайте флагом read-only (в эмуляторе это рассматривается как защищённая от записи дискета), либо делайте резервные копии.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=File:UKNC_KINGOM.png&amp;diff=1738</id>
		<title>File:UKNC KINGOM.png</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=File:UKNC_KINGOM.png&amp;diff=1738"/>
		<updated>2008-02-02T18:14:06Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=File:UKNCBTL-RealSpeed.png&amp;diff=1737</id>
		<title>File:UKNCBTL-RealSpeed.png</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=File:UKNCBTL-RealSpeed.png&amp;diff=1737"/>
		<updated>2008-02-02T18:11:12Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1736</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1736"/>
		<updated>2008-01-27T17:53:46Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 12:53, 27 January 2008 (EST) ===&lt;br /&gt;
Долгожданный момент — в эмуляторе заработала запись на диск. Ради этого пришлось перетряхнуть буквально всё что связано с дисковой подсистемой. Огромная благодарность Алексею Кислому за написание грамотного описания дискового контроллера, консультации по нюансам его работы, а также тестирование на завершающей стадии работ, в общем — респект. Сколько бы я провозился без этой помощи — даже не представляю.&lt;br /&gt;
&lt;br /&gt;
Кроме того, появилась опция Emulator|Autostart — чтобы не жать каждый раз Play для запуска эмулятора.&lt;br /&gt;
&lt;br /&gt;
Некоторый регресс: звук пока отключен, ибо толком не работал; Бейсик из картриджа ПЗУ перестал работать — видимо, результат моих боданий с окном памяти.&lt;br /&gt;
&lt;br /&gt;
''ВНИМАНИЕ:'' Функция записи на диск только что появилась, вероятно наличие мелких и крупных ошибок. Ценные для вас образы дисков защищайте флагом read-only (в эмуляторе это рассматривается как защищённая от записи дискета), либо делайте резервные копии.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta6-exe.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=UKNCBTL_FAQ&amp;diff=1723</id>
		<title>UKNCBTL FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=UKNCBTL_FAQ&amp;diff=1723"/>
		<updated>2007-11-17T15:02:08Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; В каком состоянии находится эмулятор?&lt;br /&gt;
: Бета-версия…&lt;br /&gt;
: Эмулируется: оба процессора, контроллеры памяти, экран (почти полностью), звук, клавиатура (нужно ещё добить раскладки), кассеты ПЗУ, дисководы (пока только 80-дорожечные диски). В процессоре пока 1 команда = 1 такт, т.е. без точного тайминга.&lt;br /&gt;
: Не эмулируется: стык С2, параллельный порт, магнитофон, сеть.&lt;br /&gt;
: Интерфейс нужно ещё улучшать. Работать с ним уже можно, но пока не очень удобно.&lt;br /&gt;
&lt;br /&gt;
; На чём написан эмулятор?&lt;br /&gt;
: Язык — C++, библиотека — голый Win32, с Юникодом. Среда разработки — Visual Studio 2005.&lt;br /&gt;
&lt;br /&gt;
; Сколько времени ушло на написание?&lt;br /&gt;
: NZeemin начал этот проект в одиночку примерно в июле 2006 года, в августе 2006 проект затормозился, а в феврале 2007 к нему присоединился Felixl. На тот момент были вчерне готовы лишь процессор и контроллеры памяти. Ещё через полтора месяца мы получили загрузочное меню, загрузку с кассеты ПЗУ и загрузку с диска :) Позже Феликс добавил также эмуляцию звука. В июле 2007 Никита написал инсталлятор.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1722</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1722"/>
		<updated>2007-11-13T19:55:57Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[UKNC FDD passport]] — Устройство КМД УК. Паспорт. У13.065.013 ПС&lt;br /&gt;
* [[UKNC FDD 1801vp1-128]] — Техническое описание микросхемы 1801ВП1-128 контроллера дисковода&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/УКНЦ УКНЦ] — статья в Википедии&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=UKNC_FDD_1801vp1-128&amp;diff=1721</id>
		<title>UKNC FDD 1801vp1-128</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=UKNC_FDD_1801vp1-128&amp;diff=1721"/>
		<updated>2007-11-13T19:54:51Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Техническое описание 1801ВП1-128.&lt;br /&gt;
&lt;br /&gt;
     М/с предназначена для управления НГМД типа 'Электроника &lt;br /&gt;
6022' . М/С обеспечивает запись и чтение информации в(из) &lt;br /&gt;
накопителя по методу МФМ. При программной поддержке со стороны &lt;br /&gt;
центральной ЭВМ, обеспечивает выработку управляющих сигналов на &lt;br /&gt;
накопитель, позволяет осуществлять форматирование дискет по &lt;br /&gt;
стандарту IBM.&lt;br /&gt;
&lt;br /&gt;
     М/С содержит :&lt;br /&gt;
         - регистр состояния (РС);&lt;br /&gt;
         - регистр данных записи (РДЗ);&lt;br /&gt;
         - регистр данных чтения (РДЧ);&lt;br /&gt;
         - входные элементы;&lt;br /&gt;
         - интерфейсный узел;&lt;br /&gt;
         - мультиплексор РДЗ;&lt;br /&gt;
         - сдвиговый регистр;&lt;br /&gt;
         - демультиплексор;&lt;br /&gt;
         - мультиплексор РДЧ;&lt;br /&gt;
         - CRC генератор;&lt;br /&gt;
         - схему кодирования МФМ;&lt;br /&gt;
         - схему синхронизации;&lt;br /&gt;
         - схему декодирования МФМ;&lt;br /&gt;
         - схему распознавания меркера;&lt;br /&gt;
         - устройство управления.&lt;br /&gt;
&lt;br /&gt;
     РС представляет собой параллельный программируемый порт, &lt;br /&gt;
кот. используется для выработки интерфейсных сигналов на &lt;br /&gt;
накопитель, для приема сигналов с накопителя, а также для &lt;br /&gt;
управления внутренними узлами м/с.&lt;br /&gt;
&lt;br /&gt;
     РДЗ предназначен для буферизации данных при записи &lt;br /&gt;
информации на диск.&lt;br /&gt;
&lt;br /&gt;
     РДЧ предназначен для буферизации данных при чтении&lt;br /&gt;
информации с диска.&lt;br /&gt;
&lt;br /&gt;
     Входные элементы обеспечивают подключение м/с к &lt;br /&gt;
двунаправленым линиям AD0-AD15 системной шины.&lt;br /&gt;
&lt;br /&gt;
     Интерфейсный узел осуществляет дешифрацию адресов регистров &lt;br /&gt;
м/с (177130-177132) и выработку управляющих сигналов для записи &lt;br /&gt;
и чтения соответствующих регистров, а также вырабатывает на шину &lt;br /&gt;
сигнал RPLY.&lt;br /&gt;
&lt;br /&gt;
     Мультиплексор РДЗ обеспечивает подключение ко входам &lt;br /&gt;
сдвигового регистра либо старшего, либо младшего байта РДЗ.&lt;br /&gt;
&lt;br /&gt;
     Сдвиговый регистр в режиме 'запись' преобразовывает &lt;br /&gt;
параллельный код из РДЗ в последовательный. В режиме 'чтение' &lt;br /&gt;
выполняется обратное преобразование.&lt;br /&gt;
&lt;br /&gt;
     Демультиплексор подключает выходы сдвигового регистра либо &lt;br /&gt;
к старшему, либо к младшему байту РДЧ.&lt;br /&gt;
&lt;br /&gt;
     Мультиплексор РДЧ обеспечивает передачу на системную шину &lt;br /&gt;
информации либо из РДЧ, либо из РС.&lt;br /&gt;
&lt;br /&gt;
     Схема кодирования МФМ обеспечивает :&lt;br /&gt;
         - кодирование информации по методу МФМ;&lt;br /&gt;
         - пропуск синхроимпульсов при записи адресного маркера &lt;br /&gt;
         или маркера данных;&lt;br /&gt;
         - выдачу закодированной информации для внешнего &lt;br /&gt;
         перекорректора по линиям D01,D02,D03.&lt;br /&gt;
&lt;br /&gt;
     Схема декодирования МФМ преобразует закодированную &lt;br /&gt;
информацию в вид, удобный для дальнейшего преобразования.&lt;br /&gt;
&lt;br /&gt;
     Схема опознавания обнаруживает маркер при чтении маркера &lt;br /&gt;
адреса или данных. При обнаружении маркера происходит запуск м/с &lt;br /&gt;
на преобразование информации.&lt;br /&gt;
&lt;br /&gt;
     CRC-генератор при записи информации на диск вырабатывает &lt;br /&gt;
циклический контрольный код в соответствии с полиномом&lt;br /&gt;
             0   5   12   16&lt;br /&gt;
     G(x) = x + x + x  + x   .&lt;br /&gt;
Контрольный код приписывается в конце процедуры записи к порции &lt;br /&gt;
информации. При чтении CRC-генератор осуществляет проверку &lt;br /&gt;
считанной информации на достоверность.&lt;br /&gt;
&lt;br /&gt;
     Схема синхронизации обеспечивает синхронизацию узлов м/с &lt;br /&gt;
при записи/чтении информации с накопителя.&lt;br /&gt;
&lt;br /&gt;
     Устройство управления осуществляет управление всеми узлами &lt;br /&gt;
м/с. М/С имеет вход INIT, кот. вызывает приведение всех узлов &lt;br /&gt;
м/с в исходное состояние. В частности, при этом разряды 7(TR) и &lt;br /&gt;
14(CRC), а также все  доступные по записи разряды РС сбрасываются &lt;br /&gt;
на '0'.&lt;br /&gt;
&lt;br /&gt;
     М/С подключается к системе (центр. ЭВМ) при помощи шины, &lt;br /&gt;
соответствующей шине микро-ЭВМ 'Электроника-60'. По отношению к &lt;br /&gt;
центральной ЭВМ м/с является пассивным устройством, имеющим &lt;br /&gt;
регистры состояния и данных. Разрядность регистров - 16 бит. &lt;br /&gt;
Режим обмена - словный. Адреса регистров 177130(РС) и &lt;br /&gt;
177132(РД).&lt;br /&gt;
&lt;br /&gt;
     Временные диаграммы записи/чтения в регистры м/с приведены &lt;br /&gt;
на рисунках 1 и 2.&lt;br /&gt;
&lt;br /&gt;
     Формат РС по записи :&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------&lt;br /&gt;
  I15I14I13I12I11I 10I  9I  8I  7I  6I  5I  4I  3I  2I  1I  0I&lt;br /&gt;
  ------------------------------------------------------------&lt;br /&gt;
  I**I**I**I**I**IRezIWmIGdrI StIDirI HsIMswIDs3IDs2IDs1IDs0I&lt;br /&gt;
  ------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
     Значение разрядов РС :&lt;br /&gt;
         0-й - выбор накопителя 0;&lt;br /&gt;
         1-й - выбор накопителя 1;&lt;br /&gt;
         2-й - выбор накопителя 2;&lt;br /&gt;
         3-й - выбор накопителя 3;&lt;br /&gt;
         4-й - включ. э.д.;&lt;br /&gt;
         5-й - выбор поверхности;&lt;br /&gt;
         6-й - направление перемещения;&lt;br /&gt;
         7-й - шаг;&lt;br /&gt;
         8-й - признак 'начало чтения';&lt;br /&gt;
         9-й - признак 'запись маркера';&lt;br /&gt;
        10-й - резервный;&lt;br /&gt;
        Разряды 11-15 не используются.&lt;br /&gt;
&lt;br /&gt;
     Формат РС по чтению:&lt;br /&gt;
&lt;br /&gt;
  -------------------------------------------------------&lt;br /&gt;
  I 15I 14I13I12I11I10I 9I 8I  7I 6I 5I 4I 3I  2I  1I  0I&lt;br /&gt;
  -------------------------------------------------------&lt;br /&gt;
  IIndICrcI**I**I**I**I**I**I TrI**I**I**I**IWprIRdyITr0I&lt;br /&gt;
  -------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
     Значение разрядов РС :&lt;br /&gt;
         0-й - признак '0-я дорожка';&lt;br /&gt;
         1-й - признак 'накопитель готов к работе'(отсутствует &lt;br /&gt;
               на 6022);&lt;br /&gt;
         2-й - запрет записи;&lt;br /&gt;
         7-й - признак 'готовность';&lt;br /&gt;
        14-й - при чтении - признак 'прочлось без ошибок', при &lt;br /&gt;
               записи - признак 'записывается контр. код на &lt;br /&gt;
               диск';&lt;br /&gt;
         15-й - индекс накопителя.&lt;br /&gt;
         Разряды 3-6 и 8-13 не используются.&lt;br /&gt;
     Все разряды РД доступны по записи и чтению.&lt;br /&gt;
&lt;br /&gt;
     Физически м/с имеет два регистра данных - РДЗ и РДЧ.&lt;br /&gt;
&lt;br /&gt;
     В режиме 'запись' 7-й разряд РС (TR) устанавливается в &lt;br /&gt;
единицу после того, как младший байт РДЗ переписался в сдвиговый &lt;br /&gt;
регистр.&lt;br /&gt;
&lt;br /&gt;
     В режиме 'запись' 7-й разряд РС (TR) устанавливается в &lt;br /&gt;
единицу после того, как в РДЧ сформировалось очередное считанное &lt;br /&gt;
из накопителя слово.&lt;br /&gt;
&lt;br /&gt;
     Сброс TR происходит при обращении к РД по записи или по &lt;br /&gt;
чтению, а также по сигналу INIT.&lt;br /&gt;
&lt;br /&gt;
     При тактовой частоте 4 МГц, подаваемой на вход CLC слово &lt;br /&gt;
преобразуется за 64 мкс. С этим периодом по признаку TR &lt;br /&gt;
центральная ЭВМ должна прочитать данные из РД или записать их &lt;br /&gt;
туда. Иначе операции запись/чтение производятся некорректно.&lt;br /&gt;
&lt;br /&gt;
     В режиме 'запись' 14-й разряд РС (CRC) служит для индикации &lt;br /&gt;
ситуации, когда текущее требование не было обслужено, а возникли &lt;br /&gt;
условия на формирование нового требования. Она является сбойной, &lt;br /&gt;
если возникает в середине цикла записи на диск. При этом м/с &lt;br /&gt;
прекращает формирование циклического кода и записывает &lt;br /&gt;
полученный контрольный код на диск.&lt;br /&gt;
&lt;br /&gt;
     В режиме 'чтение' 14-й разряд РС (CRC) служит признаком &lt;br /&gt;
некорректности выполненного чтения.&lt;br /&gt;
&lt;br /&gt;
     При применении м/с следует учесть, что м/с формирует &lt;br /&gt;
пропуск синхроимрульсов информации при наличии '1' в 9-ом &lt;br /&gt;
разряде РС (WM).&lt;br /&gt;
&lt;br /&gt;
     М/с опознает маркер, и, тем самым, запускается на чтение &lt;br /&gt;
информации с диска, если обнаружен пропуск синхроимпульсов в &lt;br /&gt;
коде А1 (10100001).&lt;br /&gt;
&lt;br /&gt;
     При записи '1' в 8-й разряд РС (Gdr) м/с частично &lt;br /&gt;
приводится в исходное состояние, а по ее снятию готова &lt;br /&gt;
осуществлять поиск маркера. Этим разрядом рекомендуется &lt;br /&gt;
пользоваться для принудительной синхронизации схемы &lt;br /&gt;
синхронизации со считываемыми данными, причем желательно &lt;br /&gt;
записать '1', а затем '0' в этот разряд в области зоны нулей &lt;br /&gt;
(домаркерной зоны).&lt;br /&gt;
&lt;br /&gt;
     При частоте 4 МГц, подаваемой на вход CLC, м/с обеспечивает &lt;br /&gt;
временные характеристики накопителя типа 'Электроника 6022'.&lt;br /&gt;
�&lt;br /&gt;
         Описание выводов м/с.&lt;br /&gt;
&lt;br /&gt;
01 - AD00 - разряд 00 шины адрес/данные  I/O&lt;br /&gt;
02 - AD01 - разряд 01 шины адрес/данные  I/O&lt;br /&gt;
03 - AD02 - разряд 02 шины адрес/данные  I/O&lt;br /&gt;
04 - AD03 - разряд 03 шины адрес/данные  I/O&lt;br /&gt;
05 - AD04 - разряд 04 шины адрес/данные  I/O&lt;br /&gt;
06 - AD05 - разряд 05 шины адрес/данные  I/O&lt;br /&gt;
07 - AD06 - разряд 06 шины адрес/данные  I/O&lt;br /&gt;
08 - AD07 - разряд 07 шины адрес/данные  I/O&lt;br /&gt;
09 - AD08 - разряд 08 шины адрес/данные  I/O&lt;br /&gt;
10 - AD09 - разряд 09 шины адрес/данные  I/O&lt;br /&gt;
11 - AD10 - разряд 10 шины адрес/данные  I/O&lt;br /&gt;
12 - AD11 - разряд 11 шины адрес/данные  I/O&lt;br /&gt;
13 - AD12 - разряд 12 шины адрес/данные  I/O&lt;br /&gt;
14 - AD13 - разряд 13 шины адрес/данные  I/O&lt;br /&gt;
15 - AD14 - разряд 14 шины адрес/данные  I/O&lt;br /&gt;
16 - AD15 - разряд 15 шины адрес/данные  I/O&lt;br /&gt;
17 - SYNC - синхро активного устройства  I&lt;br /&gt;
18 - DIN  - ввод данных                  I&lt;br /&gt;
19 - DOUT - вывод данных                 I&lt;br /&gt;
20 - INIT - установка                    I&lt;br /&gt;
21 - GND  - ОБЩИЙ&lt;br /&gt;
22 - CLC  - тактовая частота             I&lt;br /&gt;
23 - RPLY - синхро пассивного устр-ва    O&lt;br /&gt;
24 - IND  - индекс                       I&lt;br /&gt;
25 - D03  - выходные данные 3            O&lt;br /&gt;
26 - D02  - выходные данные 2            O&lt;br /&gt;
27 - D01  - выходные данные 1            O&lt;br /&gt;
28 - WRE  - разрешение записи            O&lt;br /&gt;
29 - DI   - входные данние               I&lt;br /&gt;
30 - REZ  - резервный                    O&lt;br /&gt;
31 - WPR  - защита записи                I&lt;br /&gt;
32 - RDY  - готовность                   I&lt;br /&gt;
33 - IR0  - 0-я дорожка                  I&lt;br /&gt;
34 - ST   - шаг                          O&lt;br /&gt;
35 - DIR  - направление шага             O&lt;br /&gt;
36 - HS   - выбор поверхности            O&lt;br /&gt;
37 - MSW  - включение э.д.               O&lt;br /&gt;
38 - DS3  - выбор накопителя 3           O&lt;br /&gt;
39 - DS2  - выбор накопителя 2           O&lt;br /&gt;
40 - DS0  - выбор накопителя 1           O&lt;br /&gt;
41 - DS1  - выбор накопителя 0           O&lt;br /&gt;
42 - +5V  - питание +5&lt;br /&gt;
     Выводы 1-16 и 23 нагружены резисторами 1,6 кОм и имеют &lt;br /&gt;
Z-состояние.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1720</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1720"/>
		<updated>2007-11-13T19:01:48Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[UKNC FDD passport]] — Устройство КМД УК. Паспорт. У13.065.013 ПС&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/УКНЦ УКНЦ] — статья в Википедии&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=UKNC_FDD_passport&amp;diff=1719</id>
		<title>UKNC FDD passport</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=UKNC_FDD_passport&amp;diff=1719"/>
		<updated>2007-11-13T19:00:39Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      Устройство КМД УК&lt;br /&gt;
&lt;br /&gt;
                           Паспорт&lt;br /&gt;
&lt;br /&gt;
                       У13.065.013 ПС&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  Заводской номер _________&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                           1987 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                             СОДЕРЖАНИЕ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    1.  Общие указания ...................................  3&lt;br /&gt;
&lt;br /&gt;
    2.  Назначение .......................................  3&lt;br /&gt;
&lt;br /&gt;
    3.  Технические характеристики .......................  4&lt;br /&gt;
&lt;br /&gt;
    4.  Комплектность ....................................  5&lt;br /&gt;
&lt;br /&gt;
    5.  Устройство и принцип работы ......................  8&lt;br /&gt;
&lt;br /&gt;
    6.  Указания мер безопасности ........................ 11&lt;br /&gt;
&lt;br /&gt;
    7.  Подготовка к работе .............................. 11&lt;br /&gt;
&lt;br /&gt;
    8.  Порядок работы ................................... 12&lt;br /&gt;
&lt;br /&gt;
    9.  Проверка технического состояния .................. 12&lt;br /&gt;
&lt;br /&gt;
   10.  Возможные неисправности и способы их устранения .. 13&lt;br /&gt;
&lt;br /&gt;
   11.  Техническое обслуживание ......................... 14&lt;br /&gt;
&lt;br /&gt;
   12.  Свидетельство о приемке .......................... 15&lt;br /&gt;
&lt;br /&gt;
   13.  Гарантии изготовителя ............................ 15&lt;br /&gt;
&lt;br /&gt;
   14.  Сведения о рекламациях ........................... 16&lt;br /&gt;
&lt;br /&gt;
   15.  Сведения об упаковке ............................. 17&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1. Общие указания&lt;br /&gt;
&lt;br /&gt;
       1.1. Настоящий паспорт (ПС), объединенный с техническим&lt;br /&gt;
описанием и инструкцией по эксплуатации, является документом,&lt;br /&gt;
удостоверяющим гарантированные параметры и технические харак-&lt;br /&gt;
теристики устройства КМД УК У13.065.013 (в дальнейшем КМД).&lt;br /&gt;
Кроме того, паспорт позволяет ознакомиться с принципом работы&lt;br /&gt;
КМД и устанавливает правила его эксплуатации, соблюдение ко-&lt;br /&gt;
торых обеспечивает поддержание его в постоянной готовности к&lt;br /&gt;
действию.&lt;br /&gt;
&lt;br /&gt;
       1.2. Для изучения и эксплуатации устройства КМД необходи-&lt;br /&gt;
мо  дополнительно  руководствоваться следующими документами:&lt;br /&gt;
&lt;br /&gt;
        1) схема электрическая принципиальная    У13.065.013 Э3&lt;br /&gt;
        2) схема электрическая общая             У13.625.307 Э6&lt;br /&gt;
        3) схема электрическая принципиальная    У14.853.367 Э3&lt;br /&gt;
&lt;br /&gt;
       1.3. Обозначение КМД при заказе:&lt;br /&gt;
&lt;br /&gt;
           Устройство КМД УК У13.065.013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                       2. Назначение&lt;br /&gt;
&lt;br /&gt;
       2.1. КМД предназначено для управления работой накопителя&lt;br /&gt;
на  гибких  магнитных  дисках ( далее  по  тексту – НГМД ) типа&lt;br /&gt;
&amp;quot;Электроника НГМД-6022&amp;quot; и его модификаций.&lt;br /&gt;
            КМД используется в ЭВМ &amp;quot;Электроника МС 0511&amp;quot;  и ее&lt;br /&gt;
модификациях и является аппаратным средством сопряжения ЭВМ&lt;br /&gt;
с НГМД.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             3. Технические          характеристики&lt;br /&gt;
&lt;br /&gt;
        3.1. КМД обеспечивает запись информации в НГМД по методу&lt;br /&gt;
модифицированной фазовой модуляции (МФМ).&lt;br /&gt;
&lt;br /&gt;
        3.2. Обмен информацией с ЭВМ – пословный (16 /бит/).&lt;br /&gt;
&lt;br /&gt;
        3.3. КМД обеспечивает подключение  до  двух  накопителей&lt;br /&gt;
&amp;quot;Электроника НГМД-6022&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
        3.4. Потребляемая мощность – не более 2,8  Вт  от  источ-&lt;br /&gt;
ника питания +5В.&lt;br /&gt;
&lt;br /&gt;
        3.5. КМД конструктивно выполнено в виде двухсторонней пе-&lt;br /&gt;
чатной платы контроллера  НГМД  У13.625.307  заключенной в пласт-&lt;br /&gt;
массовый кожух.   Имеет  печатный  разъем  под  розетку  СНП15-&lt;br /&gt;
-48/80Х10Р-19-2  устройства  вычислителя  &amp;quot; Электроника МС 0511 &amp;quot;&lt;br /&gt;
и кабель  У14.853.367 – для подключения к НГМД.&lt;br /&gt;
&lt;br /&gt;
        3.7. Перечень контактов разъема для  подключения к  внут-&lt;br /&gt;
ренней магистрали &amp;quot;Электроники МС 0511&amp;quot; приведен в табл.1.&lt;br /&gt;
&lt;br /&gt;
        3.8. Тип разъема для подключения НГМД  -   ИДЕМ3.647.150&lt;br /&gt;
( из комплекта НГМД ).   Перечень  контактов разъема контроллера&lt;br /&gt;
НГМД У13.625.307 для подключения  НГМД  приведен  в  табл.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         3.9. Габаритные размеры : 1332х109х22     /мм/.&lt;br /&gt;
&lt;br /&gt;
         3.10. Масса контроллера не превышает 450 /г/.&lt;br /&gt;
&lt;br /&gt;
         3.11. Контроллер сохраняет работоспособность при измене-&lt;br /&gt;
нии питающего напряжения  +5 В  в пределах от  4,75  до  5,25 В.&lt;br /&gt;
Двойная амплитуда пульсаций питающего напряжения не должна превы-&lt;br /&gt;
шать 0,1 В от номинальных значений.&lt;br /&gt;
&lt;br /&gt;
         3.12. Контроллер сохраняет работоспособность при следую-&lt;br /&gt;
щих условиях эксплуатации:&lt;br /&gt;
&lt;br /&gt;
     1) рабочая температура окружающего воздуха от +5 до +40ºC;&lt;br /&gt;
&lt;br /&gt;
     2) предельная температура окружающего  воздуха +1ºC;+45ºC.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3) атмосферное давление от  61,3  до  106,7  /к/П/а/&lt;br /&gt;
( от 460 до 800 /мм. рт. ст./);&lt;br /&gt;
&lt;br /&gt;
        4) воздействие  вибрационных  нагрузок  в  диапазоне&lt;br /&gt;
частот 1-35 Г/ц/ с амплитудой ускорения 0,5 /g/.&lt;br /&gt;
&lt;br /&gt;
        3.13. КМД  выдерживает  воздействие  одиночных ударов&lt;br /&gt;
с ускорением  до 10 /g/ и длительностью удара от 1 до 5 /мс/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.14. Сведения о содержании драгоценных металлов :&lt;br /&gt;
&lt;br /&gt;
        золото       0,397 г&lt;br /&gt;
        серебро      0,013 г&lt;br /&gt;
        платина&lt;br /&gt;
        иридий&lt;br /&gt;
        радий&lt;br /&gt;
        палладий&lt;br /&gt;
        рутиний&lt;br /&gt;
        осмий&lt;br /&gt;
        алмаз&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        Начальник БМН ______________________________&lt;br /&gt;
                       подпись, дата&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                4. Комплектность&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        4.1. В комплект поставки  КМД входят:&lt;br /&gt;
&lt;br /&gt;
          1) устройство КМД УК У13.065.013;&lt;br /&gt;
          2) устройство КМД УК У13.065.013 Э6;&lt;br /&gt;
          3) контроллер НГМД У13.625.307 Э3;&lt;br /&gt;
          4) кабель У14.853.367 Э3;&lt;br /&gt;
          5) паспорт У13.065.013 ПС;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                             Таблица 1&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
! Номер  !  Обознач. !           Наименование сигнала          !&lt;br /&gt;
!контакта!  сигнала  !                                         !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
!  Б21   !  АД00 Н   !   0-й разряд линии адреса/данных        !&lt;br /&gt;
!  А21   !  АД01 Н   !   1-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б20   !  АД02 Н   !   2-й разряд линии адреса/данных        !&lt;br /&gt;
!  А20   !  АД03 Н   !   3-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б16   !  АД04 Н   !   4-й разряд линии адреса/данных        !&lt;br /&gt;
!  А16   !  АД05 Н   !   5-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б17   !  АД06 Н   !   6-й разряд линии адреса/данных        !&lt;br /&gt;
!  А17   !  АД07 Н   !   7-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б18   !  АД08 Н   !   8-й разряд линии адреса/данных        !&lt;br /&gt;
!  А18   !  АД09 Н   !   9-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б19   !  АД10 Н   !  10-й разряд линии адреса/данных        !&lt;br /&gt;
!  А19   !  АД11 Н   !  11-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б22   !  АД12 Н   !  12-й разряд линии адреса/данных        !&lt;br /&gt;
!  А22   !  АД13 Н   !  13-й разряд линии адреса/данных        !&lt;br /&gt;
!  Б23   !  АД14 Н   !  14-й разряд линии адреса/данных        !&lt;br /&gt;
!  А2    !  АД15 Н   !  15-й разряд линии адреса/данных        !&lt;br /&gt;
!  А15   !  SYNC Н   !  Сигнал синхронизации акт.устройства    !&lt;br /&gt;
!  А14   !  DIN  Н   !  Ввод данных                            !&lt;br /&gt;
!  Б8    !  DOUT Н   !  Вывод данных                           !&lt;br /&gt;
!  Б10   !  INIT Н   !  Первоначальная установка канала        !&lt;br /&gt;
!  А4    !  4 МГц    !  Тактовая частота 4 МГц.                !&lt;br /&gt;
!  Б15   !  RPLY Н   !  Сигнал синхронизации пассив.устройства !&lt;br /&gt;
!  Б11   !  IND  Н   !  Индекс                                 !&lt;br /&gt;
!  Б3    !  РЕЖ      !  Режим 4                                !&lt;br /&gt;
!  А12   !  CE3      !  Выбор ППЗУ                             !&lt;br /&gt;
!  А1,А24!  +5В      !  Питание +5В                            !&lt;br /&gt;
!  Б1,Б24!  ОБЩ      !  Общий                                  !&lt;br /&gt;
----------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                            Таблица 2&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
! Номер  ! Обозначение ! Направ- !       Наименование сигнала    !&lt;br /&gt;
!контакта! сигнала     ! ленность!                               !&lt;br /&gt;
!        !             ! сигнала !                               !&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
!        !             !         !                               !&lt;br /&gt;
!        !             !         !                               !&lt;br /&gt;
!   26   !   Д00 Н     !   ВХ    !  Дорожка &amp;quot;00&amp;quot;                 !&lt;br /&gt;
!    8   !   ИНД Н     !   ВХ    !  Индекс                       !&lt;br /&gt;
!   28   !   ЗЗП Н     !   ВХ    !  Запрет записи                !&lt;br /&gt;
!   30   !   ДЧТ Н     !   ВХ    !  Читаемые данные              !&lt;br /&gt;
!   34   !   ГОТ Н     !   ВХ    !  Готовность накопителя        !&lt;br /&gt;
!   10   !   ВН0 Н     !   ВЫХ   !  Выбор накопителя 0           !&lt;br /&gt;
!   12   !   ВН1 Н     !   ВЫХ   !  Выбор накопителя 1           !&lt;br /&gt;
!   14   !   ВН2 Н     !   ВЫХ   !  Выбор накопителя 2           !&lt;br /&gt;
!    6   !   ВН3 Н     !   ВЫХ   !  Выбор накопителя 3           !&lt;br /&gt;
!   16   !   ВЭД Н     !   ВЫХ   !  Включение электродвигателя   !&lt;br /&gt;
!   32   !   ВП0 Н     !   ВЫХ   !  Выбор поверхности 0          !&lt;br /&gt;
!   18   !   ШДВ Н     !   ВЫХ   !  Шаговый двигатель вперед     !&lt;br /&gt;
!   20   !   ШАГ Н     !   ВЫХ   !  Шаг                          !&lt;br /&gt;
!   24   !   РЗП Н     !   ВХ    !  Разрешение записи            !&lt;br /&gt;
!   22   !   ЗПД Н     !   ВЫХ   !  Записываемые данные          !&lt;br /&gt;
!1,3,5,7 !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
!9,11,13 !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 15,17  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 19,21  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 23,25  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 27,29  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 31,33  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
! 35,37  !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
!   39   !   ОБЩ       !         !  Общий                        !&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                   5. Устройство и принцип работы&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            5.1. На рис.1 приведена блок-схема КМД УК.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              --------------                 ----------&lt;br /&gt;
     К маги-  !            !&amp;lt;----------------!        !&lt;br /&gt;
     страли   ! Интерфейс  !                 !Приемник! К НГМД&lt;br /&gt;
     &amp;quot;УК-НЦ&amp;quot;  !  накопите- !                 !--------!&amp;lt;-------&amp;gt;&lt;br /&gt;
    &amp;lt;--------&amp;gt;!     ля     !----------------&amp;gt;! Усили- !&lt;br /&gt;
        ^     !            !      ---------  !  тель  !&lt;br /&gt;
        !     !            !      ! Схема !  !        !&lt;br /&gt;
        !     !            !-----&amp;gt;!прекор-!-&amp;gt;!        !&lt;br /&gt;
        !     !            !      !рекции !  !        !&lt;br /&gt;
        !     !            !      ---------  !        !&lt;br /&gt;
        !     --------------                 ----------&lt;br /&gt;
        !&lt;br /&gt;
        !     ---------------&lt;br /&gt;
        !     !  ППЗУ       !&lt;br /&gt;
        !----&amp;gt;!             !&lt;br /&gt;
              ---------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                          Рис.1.&lt;br /&gt;
&lt;br /&gt;
        Интерфейс накопителя реализован на  БИС К1801ВП1-097.&lt;br /&gt;
Схема  представляет  собой   сочетание  параллельного  порта&lt;br /&gt;
по выработке потенциальных   управляющих  сигналов  на  нако-&lt;br /&gt;
питель и по приему сигналов  состояния  накопителя,  а также&lt;br /&gt;
тракта параллельно-последовательного  преобразования информа-&lt;br /&gt;
ции с кодированием и декодированием  по методу модифицирован-&lt;br /&gt;
ной фазовой модуляции &amp;lt;МФМ&amp;gt;.   В БИС  К1801ВП1-097  осущест-&lt;br /&gt;
вляется проверка на корректность считанной с диска информации.&lt;br /&gt;
&lt;br /&gt;
        Схема прекоррекции реализована  на  двух  микросхемах&lt;br /&gt;
параллельных регистров D4,D5 &amp;lt; К555ТМ9 &amp;gt; и трех комбинацион-&lt;br /&gt;
ных микросхемах  D6, D9, D12  &amp;lt; К555ЛА3, К555ЛА4 &amp;gt;. Усиление&lt;br /&gt;
и смешивание сигналов по каналам прекоррекции производится&lt;br /&gt;
на магистральном передатчике D11 &amp;lt;К531АП2&amp;gt;.&lt;br /&gt;
        Прекоррекция уменьшает фазовые искажения связанные с&lt;br /&gt;
уплотнением информации на магнитном диске при переходе к до-&lt;br /&gt;
рожкам близко расположенным от центра . Практически прекоррек-&lt;br /&gt;
ция становится необходима  при работе с дорожками, расположен-&lt;br /&gt;
ными начиная примерно с середины  и далее ,   ближе  к центру&lt;br /&gt;
дискеты.  Для накопителя &amp;quot;Электроника НГМД-6022&amp;quot;  это означа-&lt;br /&gt;
ет, что схема  прекоррекции начинает работу с  20-й дорожки.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        5.2. Внутренние регистры контроллера&lt;br /&gt;
&lt;br /&gt;
    К внутренним регистрам КМД относится регистр состояний &amp;lt;РСН&amp;gt;&lt;br /&gt;
и регистр данных &amp;lt;РДН&amp;gt;.  С помощью РСН и РДН происходит управле-&lt;br /&gt;
ние собственно накопителем.  Данные регистры являются принадлеж-&lt;br /&gt;
ностью УВМ К1801ВП1-097. Адрес регистра РСН-177130,а РДН-177132.&lt;br /&gt;
Регистр данных накопителя  представляет собой 16-и разрядный ре-&lt;br /&gt;
гистр,доступный по записи и по чтению. Через него передается ин-&lt;br /&gt;
формация между собственно накопителем и процессором.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         5.2.1. Регистр состояния накопителя&lt;br /&gt;
&lt;br /&gt;
     Регистр состояния имеет различный формат по записи &amp;lt; рис.2 &amp;gt;&lt;br /&gt;
и по чтению &amp;lt; рис.3 &amp;gt;. С его помощью реализован параллельный порт&lt;br /&gt;
по управлению и определению состояния накопителя в УВМ К1801ВП1-&lt;br /&gt;
-097.&lt;br /&gt;
&lt;br /&gt;
   15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !&lt;br /&gt;
  !   !   !   !   !   !REZ! WM!GOR! ST!DIR! HS!MSW!DS3!DS2!DS1!DS0!&lt;br /&gt;
  !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                     Рис. 2&lt;br /&gt;
&lt;br /&gt;
   15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
  !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !&lt;br /&gt;
  !IND!CRC!   !   !   !   !   !   ! TR!   !   !   !   !WPR!RDY!TR0!&lt;br /&gt;
  !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !   !&lt;br /&gt;
  -----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                     Рис. 3&lt;br /&gt;
&lt;br /&gt;
      Запись &amp;quot;1&amp;quot; в 0-й разряд РСН &amp;lt;DS0&amp;gt; вызывает выбор  0-го  при-&lt;br /&gt;
вода накопителя.  При чтении  &amp;quot;1&amp;quot; в этом разряде &amp;lt;TR0&amp;gt;  указывает&lt;br /&gt;
на то,  что магнитная головка выбранного привода  позиционирована&lt;br /&gt;
на 0-й дорожке.&lt;br /&gt;
      Запись  &amp;quot;1&amp;quot; в 1-й разряд РСН &amp;lt;DS1&amp;gt; вызывает выбор 1-го  при-&lt;br /&gt;
вода накопителя.  При чтении  &amp;quot;1&amp;quot;  в этом разряде &amp;lt;RDY&amp;gt; свидетель-&lt;br /&gt;
ствует о готовности накопителя к работе.  По  чтению  этот  разряд&lt;br /&gt;
используется  только при работе с накопителем  &amp;quot; Электроника НГМД-&lt;br /&gt;
6121&amp;quot;  или  его  модификациями указывая на готовность НГМД к рабо-&lt;br /&gt;
те.&lt;br /&gt;
      Запись &amp;quot;1&amp;quot; одновременно в  0-й и 1-й  разряды вызывает выбор&lt;br /&gt;
2-го привода накопителя.&lt;br /&gt;
      Запись &amp;quot;1&amp;quot; в 10-й разряд РСН &amp;lt;REZ&amp;gt; вызывает выбор 3-го  при-&lt;br /&gt;
вода накопителя.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        Запись &amp;quot;0&amp;quot; во 2-й и 3-й разряды РСН &amp;lt;DS2, DS3&amp;gt; вызы-&lt;br /&gt;
вает включение нулевых  задержек  внешней  схемы  прекоррек-&lt;br /&gt;
ции фазовых искажений.  Чтение  логической единицы во втором&lt;br /&gt;
разряде  указывает  на то,  что  запись на  диск запрещена.&lt;br /&gt;
Третий разряд по чтению не определен.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; во второй разряд РСН &amp;lt;DS2&amp;gt; вызывает вклю-&lt;br /&gt;
чение задержек в 250 нс внешней схемы  прекоррекции  фазовых&lt;br /&gt;
искажений.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 3-й разряд РСН &amp;lt;DS3&amp;gt; - включение задер-&lt;br /&gt;
жек в 500 нс  внешней схемы  прекоррекции фазовых искажений.&lt;br /&gt;
        В исходном состоянии разряды DS0...DS3, REZ установ-&lt;br /&gt;
лены в &amp;quot;0&amp;quot;, т.е. ни один из приводов не выбран , а  в схеме&lt;br /&gt;
прекоррекции выставлены нулевые задержки.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 4-й разряд РСН &amp;lt;MSW&amp;gt; вызывает включение&lt;br /&gt;
электродвигателя  выбранного  накопителя.  Исходное значение&lt;br /&gt;
этого разряда &amp;quot;0&amp;quot;. По чтению разряд не определен.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 5-й разряд  РСН &amp;lt;HS&amp;gt;  приводит к выбору&lt;br /&gt;
верхней головки накопителя. Исходное значение разряда – &amp;quot;0&amp;quot;,&lt;br /&gt;
т.е. выбрана  нижняя  головка.  По чтению  этот разряд  не&lt;br /&gt;
определен.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 6-й разряд РСН &amp;lt;DIR&amp;gt; приводит к измене-&lt;br /&gt;
нию  направления  перемещения  головки  к  центру.  Исходное&lt;br /&gt;
значение разряда – &amp;quot;0&amp;quot;, т.е. установлено  направление пере-&lt;br /&gt;
мещения от центра. По чтению 6-й разряд не определен.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 7-й разряд РСН &amp;lt;ST&amp;gt; приводит к переме-&lt;br /&gt;
щению головки накопителя на один шаг в направлении , которое&lt;br /&gt;
определено 6-ым разрядом РСН .  По чтению &amp;quot;1&amp;quot; в этом разряде&lt;br /&gt;
&amp;lt;TR&amp;gt; означает , что  в  процессе записи информации  на диск&lt;br /&gt;
требуется новая &amp;quot;подкачка&amp;quot; данных в регистр данных со сторо-&lt;br /&gt;
ны процессора, а в процессе чтения информации с диска – о&lt;br /&gt;
том , что на РДН сформировано очередное слово данных.&lt;br /&gt;
Сброс TR в &amp;quot;0&amp;quot; осуществляется при обращении процессора к РДН.&lt;br /&gt;
&lt;br /&gt;
        При записи &amp;quot;1&amp;quot; в 8-й разряд РСН &amp;lt;GOR&amp;gt; УВМ К1801ВП1-&lt;br /&gt;
-097  частично  приводится  в  исходное состояние. Этот  бит&lt;br /&gt;
используется  для  облегчения   процесса  вхождения  УВМ  в&lt;br /&gt;
синхронизацию со считываемой информацией при поисках заголов-&lt;br /&gt;
ков секторов. По-чтению 8-й разряд не определен.&lt;br /&gt;
        Запись &amp;quot;1&amp;quot; в 9-й разряд РСН &amp;lt;WM&amp;gt; осуществляется  при&lt;br /&gt;
записи маркера на диск. При этом УВМ осуществляет необходимые&lt;br /&gt;
пропуски синхроимпульсов  при записи маркера . 9-й разряд по&lt;br /&gt;
чтению не определен.&lt;br /&gt;
        Разряды 11...13 регистра РСН не определены ни по за-&lt;br /&gt;
писи, ни по чтению.&lt;br /&gt;
        Разряды  14  и  15 РСН не определены только по записи.&lt;br /&gt;
При чтении  логическая единица в  14-ом разряде  РСН ( CRC )&lt;br /&gt;
свидетельствует , что процесс чтения данных с диска произошел&lt;br /&gt;
корректно.&lt;br /&gt;
        Логическая единица в 15-ом разряде РСН &amp;lt;IND&amp;gt; свиде-&lt;br /&gt;
тельствует о наличии сигнала начала дорожки  &amp;quot;INDEX&amp;quot;  из нако-&lt;br /&gt;
пителя.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                6. Указание мер безопасности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        6.1. К техническому обслуживанию КМД допускаются лица,&lt;br /&gt;
изучившие настоящий паспорт и имеющие первую квалификаци-&lt;br /&gt;
онную группу по технике безопасности.&lt;br /&gt;
&lt;br /&gt;
        6.2. Снятие , установку и ремонт КМД производить толь-&lt;br /&gt;
ко при отключенном питании.&lt;br /&gt;
&lt;br /&gt;
        6.3. Монтажные работы производить паяльником с зазем-&lt;br /&gt;
ленным жалом и напряжением питания не более 42 В.&lt;br /&gt;
&lt;br /&gt;
        6.4. Все работы выполнять с одетым на кисть руки метал-&lt;br /&gt;
лическим браслетом, электрически связанным с шиной &amp;quot;корпус&amp;quot;,&lt;br /&gt;
через резистор 1 /М/О/м/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                 7. Подготовка к работе.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        7.1. Перед началом работы  внимательно ознакомьтесь с&lt;br /&gt;
настоящим паспортом.&lt;br /&gt;
&lt;br /&gt;
        7.2. После транспортировки КМД в зимнее время года вы-&lt;br /&gt;
держите его в упаковке не менее двух часов , затем распа-&lt;br /&gt;
куйте.&lt;br /&gt;
&lt;br /&gt;
        7.3. Установите кассету КМД  в соответствующее  гнездо&lt;br /&gt;
кассетодержателя ЭВМ &amp;quot;Электроника МС 0511&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
        7.4. Подключите кабель КМД к НГМД,входящему в комплект&lt;br /&gt;
поставки микро-ЭВМ.&lt;br /&gt;
&lt;br /&gt;
    Включите источник питания микро-ЭВМ.&lt;br /&gt;
&lt;br /&gt;
       КМД готов к работе.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              8. Порядок работы.&lt;br /&gt;
&lt;br /&gt;
     8.1. Работа с КМД осуществляется в составе ЭВМ &amp;quot;Электроника&lt;br /&gt;
МС 0511&amp;quot; или ее модификации под управлением операционной системы,&lt;br /&gt;
например &amp;quot;ФОДОС-2&amp;quot; в соответствии с ее описанием.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              9. Проверка технического состояния&lt;br /&gt;
&lt;br /&gt;
   9.1. Для проверки технического состояния КМД, подготовьте его&lt;br /&gt;
к работе согласно раздела 7 настоящего паспорта.&lt;br /&gt;
&lt;br /&gt;
   9.2. Вставьте в N-ое окно НГМД (N=0,1) дискету У1.00031-01 МД 01&lt;br /&gt;
&lt;br /&gt;
   9.3. Наберите на клавиатуре команду&lt;br /&gt;
&lt;br /&gt;
            DN&lt;br /&gt;
&lt;br /&gt;
   (N=0,1)&lt;br /&gt;
   После чего должна произойти загрузка операционной системы.&lt;br /&gt;
&lt;br /&gt;
   9.4. Произведите контроль КМД руководствуясь &amp;quot;Методикой проверки&lt;br /&gt;
работоспособности КВУ&amp;quot; У1.00031-01 34 01 раздел 4.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         10. Возможные неисправности и способы их&lt;br /&gt;
                         устранения&lt;br /&gt;
&lt;br /&gt;
    Перечень возможных неисправностей приведен в табл. 5&lt;br /&gt;
&lt;br /&gt;
                                       Таблица 5&lt;br /&gt;
------------------------------------------------------------------&lt;br /&gt;
!Наименование   !  Вероятная     !  Метод устранения  ! Примечание!&lt;br /&gt;
!неисправности  !  причина       !                    !           !&lt;br /&gt;
-------------------------------------------------------------------&lt;br /&gt;
!1.При попытке  ! Плохой контакт !Проверьте соединение!           !&lt;br /&gt;
!произвести за- ! кабеля КМД с   ! кабеля КМД с НГМД  !           !&lt;br /&gt;
!пись или чтение! НГМД           ! протрите контакты  !           !&lt;br /&gt;
! НГМД не реаги-!                ! разъемов, как это  !           !&lt;br /&gt;
! рует          !                !указано в разделе 11!           !&lt;br /&gt;
!               !                !                    !           !&lt;br /&gt;
!               ! Плохой контакт !Проверьте соединение!           !&lt;br /&gt;
!               ! КМД м микро-ЭВМ! КМД с микро-ЭВМ    !           !&lt;br /&gt;
!               !                !                    !           !&lt;br /&gt;
!2.При попытке  !Неисправен НГМД ! Замените НГМД      !           !&lt;br /&gt;
!произвести за- !                !                    !           !&lt;br /&gt;
!пись или чтение! Неисправен ка- ! Проведите ремонт   !           !&lt;br /&gt;
!НГМД реагирует ! бель КМД       ! кабеля КМД         !           !&lt;br /&gt;
! но появляются ! Неисправен КМД ! Проведите ремонт   !           !&lt;br /&gt;
! сообщения об  !                ! КМД на заводе-изго-!           !&lt;br /&gt;
!   ошибках     !                ! товителе или в спе-!           !&lt;br /&gt;
!               !                ! циальных ремонтных !           !&lt;br /&gt;
!               !                ! организациях       !           !&lt;br /&gt;
-------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     11. Техническое обслуживание&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11.1.Перечень работ для различных видов обслуживания приведен в&lt;br /&gt;
&lt;br /&gt;
табл.4.&lt;br /&gt;
&lt;br /&gt;
Таблица 4&lt;br /&gt;
-------------------------------------------------------------------&lt;br /&gt;
!Периодичность ! Содержание работ  ! Технические  !Приборы,инстру-!&lt;br /&gt;
!обслуживания  ! и метод их        ! требования   !менты,материалы!&lt;br /&gt;
!              ! проведения        !              !необходимые для!&lt;br /&gt;
!              !                   !              ! проведения ра-!&lt;br /&gt;
!              !                   !              !   бот         !&lt;br /&gt;
-------------------------------------------------------------------&lt;br /&gt;
! 1 раз        !Материей,смоченной ! Осуществить  ! Спирт этиловый!&lt;br /&gt;
! в месяц      !спиртом,протереть  ! просушку при ! ГОСТ 18300-72 !&lt;br /&gt;
!              !контакты разъемных ! температуре  !               !&lt;br /&gt;
!              !соединений контрол-! не менее 15ºC!Материя хлопча-!&lt;br /&gt;
!              !лера               ! в течение 15 ! тобумажная    !&lt;br /&gt;
!              !                   ! минут        !               !&lt;br /&gt;
!              !При помощи кисточ- !              !Кисточка мягкая!&lt;br /&gt;
!              !ки удалить пыль    !              !               !&lt;br /&gt;
!              !                   !              !               !&lt;br /&gt;
! Ежедневно    ! Проверка          ! Пункт 9.3.   ! ЭВМ &amp;quot;Электро- !&lt;br /&gt;
! перед началом! работоспособности ! настоящего ПС! ника МС 0511&amp;quot; !&lt;br /&gt;
! работы       ! контроллера       !              !               !&lt;br /&gt;
-------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                12. Свидетельство о приемке&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Устройство КМД УК У13.056.013 заводской номер _____________&lt;br /&gt;
соответствует комплекту конструкторской документации&lt;br /&gt;
У13.065.013 и признано годным для эксплуатации.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        Дата выпуска &amp;quot;___&amp;quot;______________19    г.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      Представитель ОТК&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  МП            _________________    _________________________&lt;br /&gt;
                     &amp;lt;подпись&amp;gt;          &amp;lt;фамилия,и.,о.&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                       &amp;quot;___&amp;quot; __________19   г.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                13. Гарантии изготовителя&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  13.1. Предприятие изготовитель гарантирует соответствие&lt;br /&gt;
устройства КМД УК У13.065.013 требованиям настоящего паспор-&lt;br /&gt;
та при  соблюдении потребителем режимов и условий эксплуа-&lt;br /&gt;
тации, правил транспортирования и хранения.&lt;br /&gt;
&lt;br /&gt;
  13.2. Гарантийный срок устройства КМД УК  -  18 месяцев&lt;br /&gt;
со дня ввода в эксплуатацию, но не более 24 месяцев с мо-&lt;br /&gt;
мента отгрузки потребителю.&lt;br /&gt;
&lt;br /&gt;
  13.3. Обслуживание контроллера предприятием-изготовите-&lt;br /&gt;
лем в течение гарантийного срока осуществляется  в  соот-&lt;br /&gt;
ветствии с &amp;quot;Положением о поставке продукции&amp;quot;, утвержденным&lt;br /&gt;
Советом Министров СССР решением N 161 от 10.02.1981г.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             14 . Сведения о рекламациях&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   14.1. В случае отказа в работе устройства КМД УК в пери-&lt;br /&gt;
од гарантийного срока необходимо составить технически обос-&lt;br /&gt;
нованный акт рекламации и сделать выписки из разделов &amp;quot;Сви-&lt;br /&gt;
детельство о приемке&amp;quot; и &amp;quot;Сведения о консервации и упаковке&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Акт  с  приложениями следует направить главному инженеру&lt;br /&gt;
предприятия-изготовителя данного изделия.&lt;br /&gt;
&lt;br /&gt;
   14.2. Сведения о  предъявленных  рекламациях следует ре-&lt;br /&gt;
гистрировать в табл.6.&lt;br /&gt;
&lt;br /&gt;
                                     Таблица 6&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
!Дата!   Номер     !   Краткое содержание   !   Меры      !&lt;br /&gt;
!    !рекламацион- !   рекламационного акта !  принятые   !&lt;br /&gt;
!    !ного акта    !                        ! по реклама- !&lt;br /&gt;
!    !             !                        !    ции      !&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
!    !             !                        !             !&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              15. Сведения об упаковке&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        15.1. Устройство КМД УК У13.065.013 заводской номер______&lt;br /&gt;
упаковано согласно требованиям , предусмотренным конструктор –&lt;br /&gt;
ской документацией, в комплект упаковки У14.170.049.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      Дата упаковки &amp;quot;___&amp;quot;________________19  г.&lt;br /&gt;
&lt;br /&gt;
     Упаковку произвел _______________________&lt;br /&gt;
                                     &amp;lt;подпись&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                 МП&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Изделие после упаковки принял ______________________&lt;br /&gt;
                                          &amp;lt;подпись&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1718</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1718"/>
		<updated>2007-11-13T07:06:47Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* NZeemin 02:06, 13 November 2007 (EST) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1717</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1717"/>
		<updated>2007-11-13T07:06:26Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:06, 13 November 2007 (EST) ===&lt;br /&gt;
Выложена бета 5. Изменения:&lt;br /&gt;
* В эмуляторе и утилите rt11dsk сделал поддержку образов .rtd&lt;br /&gt;
* Научил rt11dsk извлекать файлы.&lt;br /&gt;
* Написал для FAR настройку (Custom.ini для плагина MultiArc) для использования rt11dsk как архиватора. Теперь можно заходить по Enter в .dsk и .rpt, смотреть оглавление, по F3 смотреть файлы, по F5 копировать их из образа себе на диск.&lt;br /&gt;
* Добавил rt11dsk в инсталлятор.&lt;br /&gt;
&lt;br /&gt;
Настройка для плагина MultiArc в FAR (rt11dsk.exe положите так чтобы она находилась по Path):&lt;br /&gt;
&amp;lt;pre&amp;gt;; Add the following sections to&lt;br /&gt;
; &amp;quot;C:\Program Files\Far\Plugins\MultiArc\Formats\Custom.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dsk]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=dsk&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[rtd]&lt;br /&gt;
TypeName=rt11dsk&lt;br /&gt;
Extension=rtd&lt;br /&gt;
List=rt11dsk l %%AQ&lt;br /&gt;
Start=&amp;quot;^--&amp;quot;&lt;br /&gt;
End=&amp;quot;^--&amp;quot;&lt;br /&gt;
Format0=&amp;quot;nnnnnnnnnn         dd-TTT-yy          zzzzz&amp;quot;&lt;br /&gt;
ExtractWithoutPath=&amp;quot;rt11dsk e %%A %%fQ&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5.zip&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta5-exe.zip&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1716</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1716"/>
		<updated>2007-11-12T09:13:42Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/УКНЦ УКНЦ] — статья в Википедии&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1715</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1715"/>
		<updated>2007-11-12T08:36:34Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Magazine contents|Содержание журналов «Персональный компьютер УКНЦ»]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1714</id>
		<title>Uknc Magazine contents</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1714"/>
		<updated>2007-11-12T08:28:21Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Содержание журнала «Компьютер УКНЦ»&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1994 ==&lt;br /&gt;
* Дубовик В. В. Солнечногорский электромеханический завод 	&lt;br /&gt;
* Список сокращений&lt;br /&gt;
* Носов М. Б. Все о периферийном процессоре&lt;br /&gt;
* Фролкин Б. Ф. PAF Commander V1.02 А. Петросяна, DESS V05.00e Д. Климова&lt;br /&gt;
* Еремин Е. А. К вопросу о работе локальной БЕЙСИК-сети в КУВТ УКНЦ&lt;br /&gt;
* Режим адресации процессора К1801ВМ2&lt;br /&gt;
* Система команд процессора К1801ВМ2&lt;br /&gt;
* Система прерываний процессора К1801ВМ2&lt;br /&gt;
* Глобальные переменные системы ввода-вывода (ОС ПМ)&lt;br /&gt;
* Тютюнников А. В. Архиваторы&lt;br /&gt;
* Быстров И. И. &amp;quot;NET-Rt11&amp;quot; - сетевая система для КУВТ &amp;quot;УКНЦ&amp;quot; с IBM-совместимой головной машиной&lt;br /&gt;
* Ховайко О. И. Хитрости работы с периферийным процессором&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1994 ==&lt;br /&gt;
* К читателю&lt;br /&gt;
* Штарев М. Е. &amp;quot;Ресурсы УКНЦ&amp;quot;&lt;br /&gt;
* Еремин Е. А. О работоспособности программного обеспечения на РМУ в КУВТ УКНЦ&lt;br /&gt;
* Акулин А. И. &amp;quot;Мышь&amp;quot; для УКНЦ&lt;br /&gt;
* Остапенко А. Программы SKIPER и PCCUR&lt;br /&gt;
* Остапенко А. Тайны &amp;quot;вечной жизни&amp;quot;&lt;br /&gt;
* Ассемблер MACRO-11: Руководство оператора&lt;br /&gt;
* Ассемблер MACRO-11: Руководство программиста&lt;br /&gt;
* Управляющие последовательности терминала&lt;br /&gt;
* Структура &amp;quot;HALT&amp;quot; области ОЗУ ЦП&lt;br /&gt;
* Список ЕМТ-прерываний ОС ПМ&lt;br /&gt;
* Регистры системных устройств магистрали ЦП&lt;br /&gt;
* Регистры системных устройств магитрали ПП&lt;br /&gt;
* Штарев М. Е. &amp;quot;Библиотека MGR&amp;quot;&lt;br /&gt;
* Батьков Г. А. Обзор программных средств&lt;br /&gt;
* Мороз С. С. Система управления базами данных для УКНЦ&lt;br /&gt;
* Сказка про байт&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1994 ==&lt;br /&gt;
* Штарев М. Е. Ресурсы УКНЦ. Работа с текстовыми окнами&lt;br /&gt;
* Пузырников В. БЕЙСИК: полезные советы для начинающих&lt;br /&gt;
* Операционная система ФОДОС-2. Системая макробиблиотека&lt;br /&gt;
* Список ESC-последовательностей с кодом 200_8 и более&lt;br /&gt;
* Работа с планами видеоОЗУ&lt;br /&gt;
* Борис Ф. Фролкин Новый драйвер дисковода MZ.SYS для УКНЦ&lt;br /&gt;
* Подъемщиков А. Н. Еще об одной ошибке в УКНЦ (МС-0511)&lt;br /&gt;
* Быстров И. И. IBM PC из УКНЦ и &amp;quot;Корвета&amp;quot;&lt;br /&gt;
* Бурков К. Г. Для тех, кто знает: FORTH!&lt;br /&gt;
* Содержание предыдущих выпусков&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1995 ==&lt;br /&gt;
* Устройство вычислителя&lt;br /&gt;
* Операционная система ФОДОС-2 (Системная макробиблиотека)&lt;br /&gt;
* В.Лукичев. Справочная  информация для начинающих программистов УКНЦ&lt;br /&gt;
* А.В.Милюков. Практика работы с периферийным процессором УКНЦ&lt;br /&gt;
* С.Клоков, Д.Ланин. Супер БЕЙСИК для УКНЦ&lt;br /&gt;
* Е.А.Еремин. Об алгоритмах перевода целых чисел в некоторые режимы счисления, реализованных в BASIC-интерпретаторе УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1995 ==&lt;br /&gt;
* Операционная система ФОДОС-2. Руководство программиста&lt;br /&gt;
* М.Б.Носов Все о периферийном процессоре&lt;br /&gt;
* Устройство вычислителя: руководство по ремонту&lt;br /&gt;
* И.И.Быстров АО &amp;quot;ЛИнТех&amp;quot; отвечает на вопросы&lt;br /&gt;
* С.П.Калашников Самодельная псевдографика на УКНЦ&lt;br /&gt;
* В.А.Файзулин Реализация алгоритма формирования массива с различными случайными элементами&lt;br /&gt;
* А.Захаров, Е.Пыжиков Пользователям КУВТ УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1995 ==&lt;br /&gt;
* А.Н.Гриценко, А.Н.Тушев Классы УКНЦ в учебном процессе&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* Б.А.Еремин Компилятор?.. Это очень просто&lt;br /&gt;
* А.Б.Розенфельд Использование принтера Д100М&lt;br /&gt;
* А.Ф.Носенко Вывод информации из БЕЙСИКа УКНЦ на принтер Д100М&lt;br /&gt;
* Д.А.Левант Программа печати файлов&lt;br /&gt;
* В.Ю.Ключников Ошибки трансляции компилятора MACRO v5.00&lt;br /&gt;
* В.И.Вашкевич Использование нестандартных команд символьного режима терминала VT-52&lt;br /&gt;
* В.Г.Романов Программирование мелодий в БЕЙСИКе УКНЦ&lt;br /&gt;
* А.В.Герасимов&lt;br /&gt;
* В.А.Файзуллин&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #4, 1995 ==&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* В.С.Дементьев. Изобразительные возможности редакторов шрифтов&lt;br /&gt;
* М.С.Никонов, С.П.Черняк. Программа построения графиков функций&lt;br /&gt;
* В.А.Самойлов. Использование символов псевдографики в учебном процессе&lt;br /&gt;
* Н.А.Кожевин. Использование квазидиска при работе с графикой в среде PASCAL/FACT V1.2&lt;br /&gt;
* В.В.Ларин. Создание новых символов&lt;br /&gt;
* М.Б.Носов. УКНЦ - проблемы и решения ЛИнТех&lt;br /&gt;
* С.В.Кононов. IBM PC из &amp;quot;Корвет&amp;quot; и УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* http://www.infomag.ru/journals/j010r/&lt;br /&gt;
* http://bk0010.chat.ru/Soder.htm&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1713</id>
		<title>Uknc Magazine contents</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Magazine_contents&amp;diff=1713"/>
		<updated>2007-11-11T14:13:43Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Содержание журнала «Компьютер УКНЦ»&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #1, 1995 ==&lt;br /&gt;
* Устройство вычислителя&lt;br /&gt;
* Операционная система ФОДОС-2 (Системная макробиблиотека)&lt;br /&gt;
* В.Лукичев. Справочная  информация для начинающих программистов УКНЦ&lt;br /&gt;
* А.В.Милюков. Практика работы с периферийным процессором УКНЦ&lt;br /&gt;
* С.Клоков, Д.Ланин. Супер БЕЙСИК для УКНЦ&lt;br /&gt;
* Е.А.Еремин. Об алгоритмах перевода целых чисел в некоторые режимы счисления, реализованных в BASIC-интерпретаторе УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #2, 1995 ==&lt;br /&gt;
* Операционная система ФОДОС-2. Руководство программиста&lt;br /&gt;
* М.Б.Носов Все о периферийном процессоре&lt;br /&gt;
* Устройство вычислителя: руководство по ремонту&lt;br /&gt;
* И.И.Быстров АО &amp;quot;ЛИнТех&amp;quot; отвечает на вопросы&lt;br /&gt;
* С.П.Калашников Самодельная псевдографика на УКНЦ&lt;br /&gt;
* В.А.Файзулин Реализация алгоритма формирования массива с различными случайными элементами&lt;br /&gt;
* А.Захаров, Е.Пыжиков Пользователям КУВТ УКНЦ&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #3, 1995 ==&lt;br /&gt;
* А.Н.Гриценко, А.Н.Тушев Классы УКНЦ в учебном процессе&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* Б.А.Еремин Компилятор?.. Это очень просто&lt;br /&gt;
* А.Б.Розенфельд Использование принтера Д100М&lt;br /&gt;
* А.Ф.Носенко Вывод информации из БЕЙСИКа УКНЦ на принтер Д100М&lt;br /&gt;
* Д.А.Левант Программа печати файлов&lt;br /&gt;
* В.Ю.Ключников Ошибки трансляции компилятора MACRO v5.00&lt;br /&gt;
* В.И.Вашкевич Использование нестандартных команд символьного режима терминала VT-52&lt;br /&gt;
* В.Г.Романов Программирование мелодий в БЕЙСИКе УКНЦ&lt;br /&gt;
* А.В.Герасимов&lt;br /&gt;
* В.А.Файзуллин&lt;br /&gt;
&lt;br /&gt;
== Компьютер УКНЦ #4, 1995 ==&lt;br /&gt;
* Операционная система RT-11. Ассемблер&lt;br /&gt;
* В.С.Дементьев. Изобразительные возможности редакторов шрифтов&lt;br /&gt;
* М.С.Никонов, С.П.Черняк. Программа построения графиков функций&lt;br /&gt;
* В.А.Самойлов. Использование символов псевдографики в учебном процессе&lt;br /&gt;
* Н.А.Кожевин. Использование квазидиска при работе с графикой в среде PASCAL/FACT V1.2&lt;br /&gt;
* В.В.Ларин. Создание новых символов&lt;br /&gt;
* М.Б.Носов. УКНЦ - проблемы и решения ЛИнТех&lt;br /&gt;
* С.В.Кононов. IBM PC из &amp;quot;Корвет&amp;quot; и УКНЦ&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1712</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1712"/>
		<updated>2007-11-08T09:32:30Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:32, 8 November 2007 (EST) ===&lt;br /&gt;
Выложил сборку номер 4, изменения:&lt;br /&gt;
* режим экрана GRB — для имитации машин с перепутанными сигналами красного и зелёного — говорят что такие были;&lt;br /&gt;
* реализована подстановка памяти плана 0 в окно 100000-117777 — при сброшенных битах 1..3 порта 177054, адрес подстановки выбирается в зависимости от битов 4..7 порта 177054; нужно это тестировать&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta4-exe.zip — только UKNCBTL.exe&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1711</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1711"/>
		<updated>2007-11-06T05:13:26Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:13, 6 November 2007 (EST) ===&lt;br /&gt;
Для людей, страдающих от мелких шрифтов в эмуляторе, сделал режим двойной высоты экрана. Плюс косметические правки — иконки итп.&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20071105.png]]&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta3-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять&lt;br /&gt;
&lt;br /&gt;
Появилась утилитка rt11dsk, пока умеет только показывать содержимое каталога для заданного образа диска.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;rt11dsk.exe BASIC.DSK&lt;br /&gt;
RT11DSK Utility  by Nikita Zeemin  [Nov  4 2007 23:10:30]&lt;br /&gt;
&lt;br /&gt;
 Volume: DBasic Disk &lt;br /&gt;
 Owner:  Alphaprog   &lt;br /&gt;
 System: FODOS       &lt;br /&gt;
&lt;br /&gt;
 6 available segments, last opened segment: 1&lt;br /&gt;
&lt;br /&gt;
 Filename  Blocks  Date      Start    Bytes&lt;br /&gt;
&lt;br /&gt;
SWAP  .SYS     26  10-Nov-92    18    13312&lt;br /&gt;
MZ    .SYS      3  10-May-93    44     1536&lt;br /&gt;
RT11SJ.SYS     72  10-May-93    47    36864&lt;br /&gt;
TT    .SYS      2  07-Aug-87   119     1024&lt;br /&gt;
VM    .SYS      3  03-Jul-93   121     1536&lt;br /&gt;
LP    .SYS      3  10-Nov-92   124     1536&lt;br /&gt;
DUP   .SAV     45  07-Aug-87   127    23040&lt;br /&gt;
DIR   .SAV     19  07-Aug-87   172     9728&lt;br /&gt;
PIP   .SAV     29  07-Aug-87   191    14848&lt;br /&gt;
KBS   .SAV      2  26-Jun-93   220     1024&lt;br /&gt;
RBTRON.SAV      2  10-Nov-92   222     1024&lt;br /&gt;
DAY   .SAV      5  30-Mar-91   224     2560&lt;br /&gt;
ROMAN .FNT      6  22-Dec-93   229     3072&lt;br /&gt;
FNT   .SAV     11  10-Jun-93   235     5632&lt;br /&gt;
STARTS.COM      1  01-Jan-94   246      512&lt;br /&gt;
DBAS  .SAV     59  19-Dec-88   247    30208&lt;br /&gt;
BASIC .SAV     56  02-Feb-90   306    28672&lt;br /&gt;
NDBAS .SAV     57  08-Mar-94   362    29184&lt;br /&gt;
&amp;lt; UNUSED &amp;gt;   1181              419   604672&lt;br /&gt;
&lt;br /&gt;
 18 files, 401 blocks&lt;br /&gt;
 1181 free blocks&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/rt11dsk.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=File:UkncBTL-20071105.png&amp;diff=1710</id>
		<title>File:UkncBTL-20071105.png</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=File:UkncBTL-20071105.png&amp;diff=1710"/>
		<updated>2007-11-06T05:06:44Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1709</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1709"/>
		<updated>2007-11-04T09:37:34Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://uknc.narod.ru/ УКНЦ &amp;amp; PDP-11] — архив Арсения Гордина&lt;br /&gt;
* [http://pdp-11.org.ru/ pdp-11.org.ru]&lt;br /&gt;
* [http://www.bitsavers.org/pdf/dec/pdp11/rt11/ Документация на DEC RT-11 в PDF-архиве bitsavers.org]&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1708</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1708"/>
		<updated>2007-10-24T04:29:58Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 00:29, 24 October 2007 (EDT) ===&lt;br /&gt;
Новая фича — сохранение выбранных дисков и картриджей между запусками.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&amp;lt;br/&amp;gt;&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2-exe.zip — только UKNCBTL.exe для тех кто не хочет переставлять или если опять будут проблемы&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1707</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1707"/>
		<updated>2007-10-15T08:31:33Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ukncos]] — сборное описание по эксплуатации класса УКНЦ&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Здесь будет собрана вся известная информация об УКНЦ&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 08:59, 21 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_ukncos&amp;diff=1706</id>
		<title>Uknc ukncos</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_ukncos&amp;diff=1706"/>
		<updated>2007-10-15T08:29:53Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
       Печатается по решению ученого совета Чувашского  республи-&lt;br /&gt;
канского института образования. Представляет собой краткое описа-&lt;br /&gt;
ние операционной системы,  программ связи локальной сети  и  ряда&lt;br /&gt;
других полезных программ. Предназначено для пользователей ЭВМ ти-&lt;br /&gt;
па УК-НЦ.&lt;br /&gt;
&lt;br /&gt;
              Составители:&lt;br /&gt;
              ст. преподаватель кафедры информатики и НИТ ЧРИО&lt;br /&gt;
              Кирий А.В.,&lt;br /&gt;
              Учитель ОИВТ физико-математического лицея&lt;br /&gt;
              Кирий Т.В.,&lt;br /&gt;
              ст. преподаватель кафедры информатики и НИТ ЧРИО&lt;br /&gt;
              Коханов В.В.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              c     Чувашский РИО&lt;br /&gt;
                 г.Чебоксары,1996.&lt;br /&gt;
&lt;br /&gt;
                       О Г Л А В Л Е Н И Е&lt;br /&gt;
&lt;br /&gt;
Введение                                                   --- 4&lt;br /&gt;
КАБИНЕТ ОИВТ - ОСНАЩЕНИЕ И ПРАВИЛА ЭКСПЛУАТАЦИИ            --- 5&lt;br /&gt;
     1. Оснащение кабинета                                 --- 5&lt;br /&gt;
     2. Комплектность и основные характеристики ЭВМ        --- 5&lt;br /&gt;
     3. Правила эксплуатации                               --- 6&lt;br /&gt;
     4. Техника Безопасности                               --- 7&lt;br /&gt;
     5. Комплекс упражнений для глаз                       --- 7&lt;br /&gt;
     6. Кодировка РМП и РМУ                                --- 8&lt;br /&gt;
     7. Кодировка ПУ                                       --- 9&lt;br /&gt;
     8. Ремонт                                             ---12&lt;br /&gt;
ОПЕРАЦИОННАЯ СИСТЕМА УК-НЦ                                 ---13&lt;br /&gt;
     Файлы операционной системы                            ---13&lt;br /&gt;
     Клавиатура                                            ---13&lt;br /&gt;
     Подготовка дискет к работе                            ---14&lt;br /&gt;
     Устройства                                            ---14&lt;br /&gt;
     Команды ОС                                            ---15&lt;br /&gt;
        Ключи                                              ---15&lt;br /&gt;
        Команды                                            ---16&lt;br /&gt;
     Драйыеры                                              ---18&lt;br /&gt;
     Файлы                                                 ---19&lt;br /&gt;
ЛОКАЛЬНАЯ СЕТЬ УК-НЦ -- ПРОГРАММЫ СВЯЗИ                    ---21&lt;br /&gt;
    1. BASIC система                                       ---21&lt;br /&gt;
    2. KLNET                                               ---21&lt;br /&gt;
    3. RMU                                                 ---22&lt;br /&gt;
    4. NETSVD                                              ---23&lt;br /&gt;
ПРОГРАММНЫЕ СРЕДСТВА УК-НЦ                                 ---26&lt;br /&gt;
    1. Смирнов коммандер (SC)                              ---26&lt;br /&gt;
    2. Архиваторы (LZA,UZA)                                ---30&lt;br /&gt;
    3. Копирование (SCOP,COPW,COPYDD)                      ---30&lt;br /&gt;
    4. Печать (D100M,PAGER,ALISA)                          ---31&lt;br /&gt;
    5. Резиденты (RCALC,RASCII)                            ---31&lt;br /&gt;
    6. Графические утилиты (PCXWRT,PCXREA,PCXFRZ,PRPLAN)   ---32&lt;br /&gt;
    7. Утилиты работы с усторойствами                      ---34&lt;br /&gt;
          (DAY,TTY,KLAW,TESTMZ,SETKEY,CF)&lt;br /&gt;
    8. РОБОТЛАНДИЯ                                         ---35&lt;br /&gt;
                         В В Е Д Е Н И Е&lt;br /&gt;
&lt;br /&gt;
     В процессе работы учителя информатики с различными программ-&lt;br /&gt;
ными средствами возникает ряд проблем, связанных с документальным&lt;br /&gt;
сопровождением программ :  документации либо нет вообще, либо она&lt;br /&gt;
слишком громоздка и тому подобное ...&lt;br /&gt;
     Цель данной серии - помочь учителю ОИВТ разрешить его  проб-&lt;br /&gt;
лемы.&lt;br /&gt;
     Первые три части серии включают в себя краткие описания опе-&lt;br /&gt;
рационной  системы,  сред  программирования,  пакетов  прикладных&lt;br /&gt;
программ,  программ связи локальной сети,  правила эксплуатации и&lt;br /&gt;
требования к оснащению кабинета ОИВТ (ЭВМ класса УК-НЦ).&lt;br /&gt;
     Предполагается продолжить   серию   описаниями   программных&lt;br /&gt;
средств других классов ЭВМ,  а также,  различными  дидактическими&lt;br /&gt;
материалами,  задачниками  и  методическими разработками по курсу&lt;br /&gt;
ОИВТ.&lt;br /&gt;
&lt;br /&gt;
      ----------------------------------------------------&lt;br /&gt;
      -                                                  -&lt;br /&gt;
      -  КАБИНЕТ ОИВТ - ОСНАЩЕНИЕ И ПРАВИЛА ЭКСПЛУАТАЦИИ.-&lt;br /&gt;
      ----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                     1. ОСНАЩЕНИЕ КАБИНЕТА.&lt;br /&gt;
                     ----------------------&lt;br /&gt;
    (Решение комитета МО РФ от 22.02.95 n 411 &amp;quot;О ходе реализации&lt;br /&gt;
программы информатизации образования в РФ на 1994-1995г&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    Кабинет ОИВТ должен быть оснащен:&lt;br /&gt;
    1. Программным обеспечением по курсу ОИВТ (базовым и профиль-&lt;br /&gt;
ным)&lt;br /&gt;
    2. Заданиями самостоятельных работ и упражнений на ЭВМ (с ре-&lt;br /&gt;
ализацией индивидуального подхода)&lt;br /&gt;
    3. Комплектом научно-популярной,  справочной  и  методической&lt;br /&gt;
литературы&lt;br /&gt;
    4. Журналом вводного и периодического инструктажа учащихся по&lt;br /&gt;
ТБ (рекомендуется)&lt;br /&gt;
    5. Журналом использования комплекта ВТ на каждом рабочем месте&lt;br /&gt;
    6. Журналом отказа машин и их ремонта&lt;br /&gt;
    7. Держателями для таблиц и стендами для экспонирования работ&lt;br /&gt;
учащихся&lt;br /&gt;
    8. Инвентарной книгой учета оборудования&lt;br /&gt;
    9. Аптечкой скорой помощи&lt;br /&gt;
    10. Средствами пожаротушения (порошковый огнетушитель)&lt;br /&gt;
&lt;br /&gt;
         2. КОМПЛЕКТНОСТЬ И ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ЭВМ.&lt;br /&gt;
         -----------------------------------------------&lt;br /&gt;
    РМП - 1 шт.,&lt;br /&gt;
    РМУ - 2,4,8,12 шт.,&lt;br /&gt;
    питание 220(42)В.&lt;br /&gt;
    НГМД -40(80) дорожек.&lt;br /&gt;
    Печатающие устройства:&lt;br /&gt;
      Robotron CM6329.02M; Robotron CM6329.01M;&lt;br /&gt;
      D100;D100M;FX-800.&lt;br /&gt;
   Программное обеспечение:   ФОДОС-2,   Basic,   Pascal,  Macro,&lt;br /&gt;
Fortran, Контрольно-демонстрационные программы,  документация  на&lt;br /&gt;
программные средства.&lt;br /&gt;
    !Стандартное программное обеспечение работает не более чем  с&lt;br /&gt;
16 РМУ.!&lt;br /&gt;
                        Общие сведения&lt;br /&gt;
                        ****************&lt;br /&gt;
Микропроцессор           К1801ВМ2 2шт.&lt;br /&gt;
Быстродействие           700  тысяч операций/сек.&lt;br /&gt;
Объем памяти             192 Кбайт&lt;br /&gt;
       из них:&lt;br /&gt;
  центральный процессор    64 Кбайт&lt;br /&gt;
  переферийный процессор   32 Кбайт&lt;br /&gt;
  видеопамять              96 Кбайт&lt;br /&gt;
ПЗУ                      32 Кбайт&lt;br /&gt;
&lt;br /&gt;
                    3. ПРАВИЛА ЭКСПЛУАТАЦИИ.&lt;br /&gt;
                    -------------------------&lt;br /&gt;
&lt;br /&gt;
                   Работа         Хранение&lt;br /&gt;
    Температура    5-40 С         5-35 С&lt;br /&gt;
    Влажность &amp;lt;=   95%             85%&lt;br /&gt;
    Дополнение     без примесей в воздухе паров кислот и щелочей&lt;br /&gt;
&lt;br /&gt;
                             Работа&lt;br /&gt;
                             ******&lt;br /&gt;
    0. Проверить положение крышек дисковода: перед включением они&lt;br /&gt;
должны быть открыты, дискеты должны отсутствовать в дисководе.&lt;br /&gt;
    1. Включить тумблер СЕТЬ (&amp;quot;клавиатуры&amp;quot;).&lt;br /&gt;
    2. Включить монитор.&lt;br /&gt;
    3.Включить дисковод.&lt;br /&gt;
    4. На экране появится меню:&lt;br /&gt;
               ЗАГРУЗКА&lt;br /&gt;
               1- диск         (0-3):0&lt;br /&gt;
               2- кассета ПЗУ  (1,2):1&lt;br /&gt;
               3- сеть&lt;br /&gt;
               4- стык С2&lt;br /&gt;
               5- магнитофон&lt;br /&gt;
               6- отладка&lt;br /&gt;
               7- тестирование&lt;br /&gt;
      ВЫБРАТЬ НУЖНЫЙ ПУНКТ, НАЖАТЬ КЛАВИШУ &amp;lt;ВВОД&amp;gt;!!!&lt;br /&gt;
       (прерывание СТОП, после чего выход в меню &amp;lt;М&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
          1-3 и 5 пункты указывают на то устройство,  с  которого&lt;br /&gt;
можно загрузить ОС. Если системная дискета в верхнем кармане дис-&lt;br /&gt;
ковода, то выбираем пункт меню ДИСК и номер кармана 0, после чего&lt;br /&gt;
нажимаем ВВОД.&lt;br /&gt;
&lt;br /&gt;
                    4. ТЕХНИКА БЕЗОПАСНОСТИ.&lt;br /&gt;
                    ------------------------&lt;br /&gt;
&lt;br /&gt;
Утверждаю                        Согласовано&lt;br /&gt;
Директор школы                   Председатель МК&lt;br /&gt;
&amp;quot;   &amp;quot; ноября 199  г.            &amp;quot;   &amp;quot; ноября 199  г.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ИНСТРУКЦИЯ ПО ТЕХНИКЕ БЕЗОПАСНОСТИ РАБОТЫ В КАБИНЕТЕ ОИВТ&lt;br /&gt;
                         (для учащихся)&lt;br /&gt;
&lt;br /&gt;
1. Будьте внимательны и дисциплинированны, точно выполняйте&lt;br /&gt;
   указания учителя.&lt;br /&gt;
2. Не приступайте к выполнению работы без разрешения учителя.&lt;br /&gt;
3. Размещайте оборудование на своем рабочем месте таким обра-&lt;br /&gt;
   зом, чтобы исключить его падение, опрокидывание или отсое-&lt;br /&gt;
   динение силовой проводки и шин связи.&lt;br /&gt;
4. Переключателями &amp;quot;сеть&amp;quot; терминала и концевым выключателем&lt;br /&gt;
   &amp;quot;сброс&amp;quot; пользуйтесь только по указанию учителя.&lt;br /&gt;
5. Следите за исправностью всех креплений оборудования. nе&lt;br /&gt;
   прикасайтесь к линии силовой проводки и линии локальной&lt;br /&gt;
   сети.&lt;br /&gt;
6. По окончании работы отключите электропитание (&amp;quot;сеть&amp;quot;).&lt;br /&gt;
7. Не покидайте рабочее место без разрешения учителя.&lt;br /&gt;
8. Обнаружив неисправность в оборудовании, находящимся под&lt;br /&gt;
   напряжением, немедленно отключите электропитание и сооб-&lt;br /&gt;
   щите об этом учителю.&lt;br /&gt;
&lt;br /&gt;
        зав. кабинетом ОИВТ /             /                  .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               5. КОМПЛЕКС УПРАЖНЕНИЙ ДЛЯ ГЛАЗ.&lt;br /&gt;
               --------------------------------&lt;br /&gt;
    (проводить через  каждые 20-25 минут,  \\-счет , ()-раз)&lt;br /&gt;
&lt;br /&gt;
                           Вариант 1.&lt;br /&gt;
    1. Закрыть глаза,  сильно напрягая мышцы \1-4\, раскрыть гла-&lt;br /&gt;
за, расслабить мышцы глаз и посмотреть вдаль \1-6\.(4-5)&lt;br /&gt;
    2. Посмотреть на переносицу и задержать взгляд \1-4\, посмот-&lt;br /&gt;
реть вдаль \1-6\ .(4-5)&lt;br /&gt;
    3. Не поворачивая головы, посмотреть с задержкой взгляда нап-&lt;br /&gt;
раво \1-4\,  затем вдаль \1-6\.  Аналогично влево,  вверх,  вниз.&lt;br /&gt;
(4-5)&lt;br /&gt;
    4. Быстро перевести взгляд по диагонали направо-вверх,  затем&lt;br /&gt;
посмотреть вдаль \1-6\,  затем налево-вверх, направо-вниз и снова&lt;br /&gt;
вдаль \1-6\.(4-5)&lt;br /&gt;
                           Вариант 2.&lt;br /&gt;
    1. Закрыть глаза,  не напрягая глазные  мышцы  \1-4\,  широко&lt;br /&gt;
раскрыть глаза и посмотреть вдаль \1-6\.(4-5)&lt;br /&gt;
    2. Посмотреть на кончик носа задержать взгляд \1-4\, перевес-&lt;br /&gt;
ти взгляд вдаль \1-6\ .(4-5)&lt;br /&gt;
    3. Неповорачивая головы,  делать медленные круговые  движения&lt;br /&gt;
глазами вверх-вправо вниз-влево и обратно, затем посмотреть вдаль&lt;br /&gt;
\1-6\. (4-5)&lt;br /&gt;
    4. Неповорачивая  головы,  перевести  взгляд  с его фиксацией&lt;br /&gt;
\1-4\ :  вверх-прямо-вниз-прямо-влево-прямо-вправо-прямо.  Анало-&lt;br /&gt;
гично по диагонали. (4-5)&lt;br /&gt;
                           Вариант 3.&lt;br /&gt;
    1. Поморгать , ненапрягая мышцы глаз \10-15\.&lt;br /&gt;
    2. Неповорачивая головы, с закрытыми глазами, посмотреть нап-&lt;br /&gt;
раво \1-4\,  налево \1-4\ и прямо \1-6\, затем наверх \1-4\, вниз&lt;br /&gt;
\1-4\, прямо \1-6\.(4-5)&lt;br /&gt;
    3. Посмотреть на указательный палец,  удаленный  от  глаз  на&lt;br /&gt;
25-30 см \1-4\, перевести взгляд вдаль \1-6\ .(4-5)&lt;br /&gt;
    4. В среднем темпе проделать 3-4 круговых движения глазами по&lt;br /&gt;
часовой стрелке,  столько же против часовой стрелки и,  расслабив&lt;br /&gt;
мышцы глаз, посмотреть вдаль \1-6\.(1-2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     6. КОДИРОВКА РМП И РМУ.&lt;br /&gt;
                     -----------------------&lt;br /&gt;
    Кодируем в двоичной системе.&lt;br /&gt;
    Код РМП = 63.&lt;br /&gt;
    По направлению стрелки 1 , иначе 0.&lt;br /&gt;
    Ключ младшего бита выделен цветом.&lt;br /&gt;
    Коды РМУ = [1..16].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        7. КОДИРОВКА ПУ.&lt;br /&gt;
                  (ПУ - печатающее устройство)&lt;br /&gt;
                        ----------------&lt;br /&gt;
            ---------¬  ---------¬&lt;br /&gt;
 CM6337     ¦==  = = ¦  ¦   ==== ¦  -  направление стрелок&lt;br /&gt;
            ¦  == = =¦  ¦===    =¦ \ /&lt;br /&gt;
            L---------  L---------&lt;br /&gt;
            ---------¬  -----¬&lt;br /&gt;
 EPSON      ¦  == ===¦  ¦=   ¦   ON&lt;br /&gt;
            ¦==  =   ¦  ¦ ===¦   OFF&lt;br /&gt;
            L---------  L-----&lt;br /&gt;
&lt;br /&gt;
             K1           K2&lt;br /&gt;
            ---------¬  ---------¬&lt;br /&gt;
 D100       ¦=   =   ¦  ¦==     =¦ ON&lt;br /&gt;
            ¦ === ===¦  ¦  ===== ¦ OFF&lt;br /&gt;
            L---------  L---------&lt;br /&gt;
&lt;br /&gt;
 D100M      K1           K2&lt;br /&gt;
            ---------¬  ---------¬&lt;br /&gt;
  завод-    ¦ ==  = =¦  ¦==== == ¦ ON&lt;br /&gt;
  ская      ¦=  == = ¦  ¦    =  =¦ OFF&lt;br /&gt;
            L---------  L---------&lt;br /&gt;
            ---------¬  ---------¬&lt;br /&gt;
  графика   ¦ =      ¦  ¦==== = =¦ ON&lt;br /&gt;
            ¦= ======¦  ¦    = = ¦ OFF&lt;br /&gt;
            L---------  L---------&lt;br /&gt;
            ---------¬  ---------¬&lt;br /&gt;
  текст     ¦ =      ¦  ¦==== ===¦ ON&lt;br /&gt;
            ¦= ======¦  ¦    =   ¦ OFF&lt;br /&gt;
            L---------  L---------&lt;br /&gt;
&lt;br /&gt;
                     &amp;lt;- OFF ON-&amp;gt;&lt;br /&gt;
                   ---T--T--T--T--T--T--¬&lt;br /&gt;
 ROBOTRON          ¦ =¦ =¦= ¦= ¦= ¦= ¦ =¦&lt;br /&gt;
                   ¦= ¦= ¦ =¦ =¦ =¦= ¦= ¦&lt;br /&gt;
                   L--+--+--+--+--+--+---&lt;br /&gt;
                                ---T--T--T--T--T--T--¬&lt;br /&gt;
                                ¦= ¦ =¦= ¦= ¦ =¦= ¦= ¦&lt;br /&gt;
                                ¦= ¦= ¦ =¦ =¦= ¦= ¦= ¦&lt;br /&gt;
                                L--+--+--+--+--+--+---&lt;br /&gt;
&lt;br /&gt;
           ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ D100M&lt;br /&gt;
 ---------------T----------------T-------------------¬&lt;br /&gt;
 ¦ Тип принтера ¦  Кодировка     ¦Использование D100M¦&lt;br /&gt;
 +--------------+----------------+-------------------+&lt;br /&gt;
 ¦ Robotron     ¦  КОИ-7         ¦ нет               ¦&lt;br /&gt;
 ¦ D100         ¦  КОИ-8         ¦ нет               ¦&lt;br /&gt;
 ¦ CM6337       ¦  КОИ-8         ¦ да                ¦&lt;br /&gt;
 ¦ D100M        ¦  КОИ-8         ¦ да                ¦&lt;br /&gt;
 ¦ Epson        ¦  Альтернативная¦ да                ¦&lt;br /&gt;
 L--------------+----------------+--------------------&lt;br /&gt;
&lt;br /&gt;
            ЗНАЧЕНИЯ ПЕРЕКЛЮЧАТЕЛЕЙ ПРИНТЕРА&lt;br /&gt;
   a) Robotron&lt;br /&gt;
   ------T-------------------------------T--------T-------¬&lt;br /&gt;
   ¦НОМЕР¦  НАЗНАЧЕНИЕ                   ¦   ON   ¦  OFF  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦5.1  ¦ контакт крышки                ¦ да     ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦6.1  ¦ конец бумаги                  ¦ да     ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦6.2  ¦ зуммер                        ¦ да     ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦7.1  ¦ автоперевод строки            ¦ нет    ¦ да    ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦7.2  ¦ автоначало строки             ¦ да     ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦8.1  ¦ основной набор                ¦ Н0-ЛАТ ¦Н1-РУС ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦8.2  ¦ Коды управления               ¦ESC/Pнет¦ИСО-осн¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦9.1  ¦ Наборы знаков                 ¦Н0 и Н1 ¦ Н0/1  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦11.1 ¦ Изображение нуля              ¦  О     ¦  0    ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦11.2 ¦ Интервал в дюймах             ¦ 1/6    ¦ 1/8   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦13.1 ¦ Подача 1 дюйм/формат          ¦ да     ¦ нет   ¦&lt;br /&gt;
   L-----+-------------------------------+--------+--------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------T------T-----------------T-----T------¬ ----------T-----T------¬&lt;br /&gt;
¦Шрифт  ¦плотн.¦символов в строке¦10.1 ¦ 10.2 ¦ ¦  ФОРМАТ ¦     ¦      ¦&lt;br /&gt;
+-------+------+-----------------+-----+------+ ¦СТРАНИЦЫ ¦ 12.1¦ 12.2 ¦&lt;br /&gt;
¦       ¦      ¦                 ¦     ¦      ¦ ¦ В ДЮЙМАХ¦     ¦      ¦&lt;br /&gt;
¦Пика   ¦1/10  ¦  136            ¦OFF  ¦  OFF ¦ +---------+-----+------+&lt;br /&gt;
¦Элита  ¦1/12  ¦  163            ¦ON   ¦  OFF ¦ ¦  12.0   ¦ OFF ¦   OFF¦&lt;br /&gt;
¦Жирный ¦1/10  ¦  136            ¦OFF  ¦  ON  ¦ ¦  11.0   ¦ ON  ¦   OFF¦&lt;br /&gt;
¦Плотный¦1/17  ¦  233            ¦ON   ¦  ON  ¦ ¦  6.0    ¦ OFF ¦   ON ¦&lt;br /&gt;
L-------+------+-----------------+-----+------- ¦  5.5    ¦ ON  ¦   ON ¦&lt;br /&gt;
                                                L---------+-----+-------&lt;br /&gt;
   b) D100M&lt;br /&gt;
   ------T-------------------------------T--------T-------¬&lt;br /&gt;
   ¦НОМЕР¦  НАЗНАЧЕНИЕ                   ¦   ON   ¦  OFF  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.1 ¦ Принтер готов к работе        ¦ всегда ¦ код   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.2 ¦ Инверсия данных               ¦ выкл   ¦ вкл   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.3 ¦ 1дм блокировка между стр-ми   ¦ вкл    ¦ выкл  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.4 ¦ Автоперевод строки            ¦ вкл    ¦ выкл  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.5 ¦ Форма  нуля                   ¦  0     ¦  О    ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.6 ¦ Проверка на конец бумаги      ¦ вкл    ¦ выкл  ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.7 ¦ Кодировка                     ¦ КОИ-7  ¦ КОИ-8 ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 1.8 ¦Загрузка знакогенератора       ¦ разр.  ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 2.1 ¦ Для КОИ-7, набор              ¦ Н1     ¦ Н0    ¦\&lt;br /&gt;
   +-----+-------------------------------+--------+-------+ |&lt;br /&gt;
   ¦ 2.2 ¦ печать кодов S0,S1 для КОИ-7  ¦ Н1     ¦ Н0    ¦ |&lt;br /&gt;
   +-----+-------------------------------+--------+-------+ |-&amp;gt;шрифты&lt;br /&gt;
   ¦ 2.3 ¦ не имеет значения             ¦        ¦       ¦ |&lt;br /&gt;
   +-----+-------------------------------+--------+-------+ |&lt;br /&gt;
   ¦ 2.4 ¦ набор (-Bul)                  ¦ PC2    ¦ PC1   ¦ |&lt;br /&gt;
   +-----+-------------------------------+--------+-------+ /&lt;br /&gt;
   ¦ 2.5 ¦ NLQ - Качественная печать     ¦ да     ¦ нет   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 2.6 ¦ Плотность печати в зн/дюйм    ¦ 10     ¦ 17    ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 2.7 ¦ Направленность печати         ¦  -&amp;gt;    ¦ &amp;lt;-&amp;gt;   ¦&lt;br /&gt;
   +-----+-------------------------------+--------+-------+&lt;br /&gt;
   ¦ 2.8 ¦ Размер формата в дюймах       ¦ 11     ¦  12   ¦&lt;br /&gt;
   L-----+-------------------------------+--------+--------&lt;br /&gt;
&lt;br /&gt;
                           8. РЕМОНТ.&lt;br /&gt;
                          -----------&lt;br /&gt;
  Фирма &amp;quot;ЛОГОСЪ&amp;quot; т.21-39-25, 21-44-09.&lt;br /&gt;
  Фирма &amp;quot;СВ&amp;quot; т.77-09-06 , Ворожейкин Сергей.&lt;br /&gt;
  Немов А.М. 72-70-85.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                 ------------------------------&lt;br /&gt;
                 -                            -&lt;br /&gt;
                 - ОПЕРАЦИОННАЯ СИСТЕМА УК-НЦ -&lt;br /&gt;
                 ------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ??? в квадратных скобках заключена необязательная часть,  в угло-&lt;br /&gt;
вых  общее название чего либо.  Звездочка в имени файла воспринимается&lt;br /&gt;
как любое сочетание символов.&lt;br /&gt;
&amp;lt;Имя файла&amp;gt; =&amp;lt;имя&amp;gt;.&amp;lt;расширение&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
                   Файлы операционной системы:&lt;br /&gt;
&lt;br /&gt;
    RT11SJ.SYS (RT11CD.SYS,FMONSJ.SYS) - монитор&lt;br /&gt;
    SWAP.SYS  - рабочий файл ОС (буфер обмена)&lt;br /&gt;
    DUP.SAV  - программа обслуживания устройств&lt;br /&gt;
    PIP.SAV  - программа обмена между устройствами&lt;br /&gt;
    UCL.SAV  - программа реализации языка пользователя&lt;br /&gt;
    DIR.SAV  - программа получения каталогов дисков&lt;br /&gt;
    ? HANDLE.SAV - просмотр установок драйверов&lt;br /&gt;
    ? DAY.SAV   - установка даты и командный файл&lt;br /&gt;
    MZFORM.SAV (TESTMZ.SAV) - программа форматирования дисков&lt;br /&gt;
    + драйверы устройств.&lt;br /&gt;
&lt;br /&gt;
               Желательно наличие файлов:&lt;br /&gt;
    EDK.SAV  текстовый редактор&lt;br /&gt;
    COPW.SAV  копирование с одним дисководом&lt;br /&gt;
    PAGER.SAV постраничная печать&lt;br /&gt;
    BOOT6.SAV загрузчик РМУ (BASIC)&lt;br /&gt;
    FTS9.SAV  пересыльщик файлов в РМУ (BASIC)&lt;br /&gt;
    BASIC.SAV транслятор языка BASIC&lt;br /&gt;
    NETUC.SAV сетевой монитор для пересылки ОС и программ (BASIC)&lt;br /&gt;
    NETSVD.SAV сетевой монитор для пересылки ОС и программ на РМУ&lt;br /&gt;
&lt;br /&gt;
                           КЛАВИАТУРА&lt;br /&gt;
&lt;br /&gt;
    АЛФ - смена алфавита РУС/ЛАТ&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;=¦   - забой (ЗБ -BackSpase)&lt;br /&gt;
&lt;br /&gt;
      ¦&lt;br /&gt;
     &amp;lt;- - возврат каретки (ВК - ENTER)&lt;br /&gt;
     / \&lt;br /&gt;
      -  - смена регистра (СР)&lt;br /&gt;
     \ /&lt;br /&gt;
    ФИКС - фиксация смены шрифтов (если нажата вместе с соответс-&lt;br /&gt;
           твующей клавишей)&lt;br /&gt;
    ГРАФ - псевдографика&lt;br /&gt;
    СТОП - прерывание работы ОС&lt;br /&gt;
    УСТ - установка режимов монитора&lt;br /&gt;
    УПР - шлет управляющий код нажатой совместно  с  ней  клавиши&lt;br /&gt;
          (УПР/С =^C)&lt;br /&gt;
       Значение некоторых управляющих кодов&lt;br /&gt;
     ^C прерывает выполнение программы&lt;br /&gt;
     ^S приостанавливает вывод на экран&lt;br /&gt;
     ^Q продолжает вывод текста&lt;br /&gt;
&lt;br /&gt;
               ПОДГОТОВКА ДИСКЕТ К РАБОТЕ&lt;br /&gt;
    Сначала дискету необходимо отформатировать и проинициализиро-&lt;br /&gt;
вать, после  чего ее уже можно использовать для хранения информа-&lt;br /&gt;
ции. На СИСТЕМНУЮ дискету , необходимо скопировать файлы операци-&lt;br /&gt;
онной системы и скопировать загрузчик ОС.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                             УСТРОЙСТВА:&lt;br /&gt;
                             ************&lt;br /&gt;
SY:   системный диск&lt;br /&gt;
DK: устройство по умолчанию&lt;br /&gt;
LP:  принтер&lt;br /&gt;
MZ0:(MC0 RMU) верхний  карман дисковода&lt;br /&gt;
MZ1:(MC1  RMU)  нижний  карман дисковода&lt;br /&gt;
TT: терминал&lt;br /&gt;
NL: нулевое устройство&lt;br /&gt;
KD: квазидиск&lt;br /&gt;
LD&amp;lt;N&amp;gt;: логический диск   N =  0..9&lt;br /&gt;
PP:  периферийный процессор&lt;br /&gt;
HP: центральный процессор&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                             КОМАНДЫ ОС:&lt;br /&gt;
                             ************&lt;br /&gt;
    ( ввод команды: &amp;lt;команда&amp;gt;&amp;lt;список: /&amp;lt;ключ&amp;gt;&amp;gt; &amp;lt;объект&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
                           КЛЮЧИ КОМАНД ОС.&lt;br /&gt;
&lt;br /&gt;
ALL:&amp;lt;размер&amp;gt;. - размер выходного файла&lt;br /&gt;
ALP - в алфавитном порядке&lt;br /&gt;
BAD -  пометка дефектных блоков&lt;br /&gt;
BL - начальные блоки файлов&lt;br /&gt;
BOot - системный  загрузчик&lt;br /&gt;
BR - только имена и расширения файлов&lt;br /&gt;
Concat - объединение нескольких файлов в один&lt;br /&gt;
COL:&amp;lt;N&amp;gt; -  в N столбцов&lt;br /&gt;
COPIES:&amp;lt;N&amp;gt; -  N   копий&lt;br /&gt;
DEL - удаленные файлы&lt;br /&gt;
DEVice - устройство на устройство&lt;br /&gt;
FULL - свободные  области&lt;br /&gt;
IGnored - игнорирование ошибок ввода/вывода&lt;br /&gt;
NOQ - без запроса&lt;br /&gt;
NOREPlase - если файл уже есть , то не копирует&lt;br /&gt;
OUtput:&amp;lt;устройство&amp;gt; - копирование на  устройство&lt;br /&gt;
PRI - на  печать&lt;br /&gt;
Q -  с  запросом&lt;br /&gt;
REPlase - отмена NOREP&lt;br /&gt;
REST - восстановление случайно проинициализированного диска&lt;br /&gt;
SEG:&amp;lt;N&amp;gt; - число сегментов (в блоках) под каталог&lt;br /&gt;
SLow - поблочное&lt;br /&gt;
STart:&amp;lt;блок  начала&amp;gt;. - первый блок файла&lt;br /&gt;
SYs - системные  файлы&lt;br /&gt;
VOL - имя диска  и  владельца&lt;br /&gt;
Wait - с заменой дисков&lt;br /&gt;
    ** имена ключей не обязательно  записывать  полностью,  достаточно&lt;br /&gt;
того, что записано заглавными буквами. У одной команды может быть нес-&lt;br /&gt;
колько ключей, записанных через &amp;lt;/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                               КОМАНДЫ.&lt;br /&gt;
    (в скобках указаны ключи ,  разрешенные для использования в данной&lt;br /&gt;
команде)&lt;br /&gt;
&lt;br /&gt;
   1. DIR вывод каталога диска&lt;br /&gt;
(BAD BL FULL ALP BR COL DEL PRI VOL )&lt;br /&gt;
    ** DIR/BR MZ0:  - просмотреть каталог диска в верхнем кармане дис-&lt;br /&gt;
ковода в краткой форме( имя и расширение)&lt;br /&gt;
   2. INIT организация каталога  ! ИНИЦИАЛИЗАЦИЯ !&lt;br /&gt;
(BAD NOQ REST SEG VOL WAIT)&lt;br /&gt;
    ** INIT/NOQ/SEG:20 MZ0: - проинициализировать устройство MZ0:, за-&lt;br /&gt;
резервировав под каталог 20 блоков.&lt;br /&gt;
   3.SQueeze сжатие   (удаление мусора)&lt;br /&gt;
( OU Q NOQ)&lt;br /&gt;
  ** SQ DK: - сжать рабочее устройство.&lt;br /&gt;
   4.COPy  копирование&lt;br /&gt;
( BO ALL C Q SYS W DEV IG SL NOREP REP )&lt;br /&gt;
    ***COP/NOREP/SL MZ0:*.* MZ1: - копировать все файлы с MZ0: на MZ1:&lt;br /&gt;
поблочно, (кроме тех которые уже есть на MZ1:).&lt;br /&gt;
   5. BOOT  перезагрузка&lt;br /&gt;
 ** BOOT MZ0: - перезагрузить систему с MZ0:&lt;br /&gt;
   6. DEL удаление&lt;br /&gt;
( Q NOQ SY )&lt;br /&gt;
    ** DEL/NOQ  *.ASC - удалить все файлы с расширением ASC с рабочего&lt;br /&gt;
устройства без запроса.&lt;br /&gt;
   7. REN переименование&lt;br /&gt;
( Q NOQ SY )&lt;br /&gt;
&lt;br /&gt;
    ** REN A.LST B.DOC - переименовать файл A.LST в B.DOC.&lt;br /&gt;
   8. CReat создание файла&lt;br /&gt;
( ST ALL )&lt;br /&gt;
    ** CREAT MZ0:A.DSK/ST:14.  /ALL:400. создать на MZ0: файл с именем&lt;br /&gt;
A.DSK размером 400 блоков, начиная с 14 блока от начала диска.&lt;br /&gt;
   9. PROtect защита&lt;br /&gt;
( SY Q )&lt;br /&gt;
    ** PRO *.CAL - отметить как защищенные файлы с расширением CAL.&lt;br /&gt;
   10. UNPRO отмена  защиты&lt;br /&gt;
( SY Q )&lt;br /&gt;
    ** UNPRO A:*.PAS - снять защиту с файлов с расширением PAS, распо-&lt;br /&gt;
ложенных на логическом устройстве A: .&lt;br /&gt;
   11. PRInt вывод  файлов на печать&lt;br /&gt;
             (по  умолчанию  *.LST)&lt;br /&gt;
( COPIES W )&lt;br /&gt;
    ** PRI/COPIES:4 A:SPRAW - напечатать 4  копии  файла  SPRAW.LST  с&lt;br /&gt;
устройства A: .&lt;br /&gt;
   12. TYpe вывод файлов на  терминал&lt;br /&gt;
             (по  умолчанию *.LST)&lt;br /&gt;
( COPIES W )&lt;br /&gt;
    ** TY A.DOC - вывести на экран файл A.DOC .&lt;br /&gt;
   13.ASsign назначение устройству   логического имени&lt;br /&gt;
    ** ASS MZ0: DK: - определить устройство MZ0: как рабочее.&lt;br /&gt;
   14. DEAssign отмена логического имени&lt;br /&gt;
  ** DEA MZ0:&lt;br /&gt;
   15. RUn запуск  файла  с  устройства&lt;br /&gt;
             (по   умолчанию *.SAV)&lt;br /&gt;
** RU EDIK&lt;br /&gt;
   15a. Run запуск с системного диска&lt;br /&gt;
  ** POLYSS     ** R PAINT&lt;br /&gt;
   15b. @Run или @ RUn запуск командного файла&lt;br /&gt;
         (по умолчанию *.COM)&lt;br /&gt;
   ** @STARTS     ** @RU BASIC&lt;br /&gt;
   16. LOAD загрузка драйвера устройства&lt;br /&gt;
 ** LOAD LP&lt;br /&gt;
   17. UNLOAD выгрузка  драйвера устройства&lt;br /&gt;
 ** UNLOAD LP&lt;br /&gt;
   18. INS включение драйвера устройства&lt;br /&gt;
 ** INS MZ&lt;br /&gt;
   19. REM выключение драйвера устройства&lt;br /&gt;
 ** REM LC&lt;br /&gt;
   20. MOUNT создание  устройства&lt;br /&gt;
    ** MOUNT  LD4:  A:PR.DSK  -  создать устройство LD4:  ( логический&lt;br /&gt;
диск) на базе файла PR.DSK на устройстве А: .&lt;br /&gt;
   21. SEt &amp;lt;драйвер&amp;gt;  ON  установить  параметры драйвера&lt;br /&gt;
 ** SE KD ON&lt;br /&gt;
   22. SEt &amp;lt;драйвер&amp;gt; OFF отменить параметры&lt;br /&gt;
       драйвера&lt;br /&gt;
 ** SE SL OFF&lt;br /&gt;
   23. SEt &amp;lt;драйвер&amp;gt; &amp;lt;параметр&amp;gt;[=&amp;lt;значение&amp;gt;]  -&lt;br /&gt;
       установить значения параметров драйвера.&lt;br /&gt;
 ** SE LP LENGTH=75&lt;br /&gt;
   24. SH ALL конфигурация системы&lt;br /&gt;
   25. HANDLE &amp;lt;драйвер&amp;gt; - просмотр установок драйвера.&lt;br /&gt;
 ** HANDLE LP&lt;br /&gt;
*********************************************&lt;br /&gt;
&lt;br /&gt;
                              ДРАЙВЕРЫ :&lt;br /&gt;
                              **********&lt;br /&gt;
MZ.SYS дисковод через контроллер&lt;br /&gt;
MC.SYS дисковод через сеть&lt;br /&gt;
LP.SYS принтер&lt;br /&gt;
  SE LP &amp;lt;ключ&amp;gt;&lt;br /&gt;
 CSR=176664  регистр  состояния принтера&lt;br /&gt;
 VECTOR=000464 вектор  прерывания&lt;br /&gt;
 SHRIFT=2 (на D100M не   работает)&lt;br /&gt;
 VINT=160 плотность   печати  160/72 строк  на  дюйм&lt;br /&gt;
 LENGTH=75 число строк в листе&lt;br /&gt;
 SKIP=10 число строк  межстраничного  промежутка&lt;br /&gt;
 WIDTH=60 ширина строки&lt;br /&gt;
 BEGIN=4  левый отступ&lt;br /&gt;
 PAGE=1 нумерация  страниц&lt;br /&gt;
 DEV=1 код ПУ (2&amp;lt;-&amp;gt;D100М)&lt;br /&gt;
 ESC=044 код  символа, заменяемого при печати на код ($) ESC&lt;br /&gt;
*** ключи кодового символа:&lt;br /&gt;
 E/F вк/выкл жирный шрифт&lt;br /&gt;
 G/H  вк/выкл двойн.  пропеч.&lt;br /&gt;
 M вк/выкл высок.  кач.&lt;br /&gt;
 P   вк/вык обыч.  шрифт&lt;br /&gt;
 S0/1 печать индексов&lt;br /&gt;
 T  выкл  печати индексов&lt;br /&gt;
 W0/1   норм. шрифт  или  в разрядку (при  к1.7  -OFF мелкий)&lt;br /&gt;
 -0/1 вк/выкл подчерк.&lt;br /&gt;
 3N интерв.  N/216 д.&lt;br /&gt;
 AN интерв.  N/72 д.&lt;br /&gt;
 JN построчная подача вперед на N/216&lt;br /&gt;
 jN построчная  подача назад на N/216&lt;br /&gt;
 U0/1 установка  одно-/двунаправленной печати.&lt;br /&gt;
    **** действует если запущен драйвер ROBOTRON(DEV=1) (команды  типа&lt;br /&gt;
ASK NOASK:  ASK запрос о готовности листа;  FORM перевод формата; FEED&lt;br /&gt;
разрешение подачи перевод формата;  KOI распознавание РУС ЛАТ; LC рас-&lt;br /&gt;
познавание  строчных/заглавных букв;  COM режим подачи инверсного кода&lt;br /&gt;
(на D100М NOCOM)&lt;br /&gt;
&lt;br /&gt;
LC.SYS принтер  через сеть,  для обращения с РМУ ASS LC: LP:&lt;br /&gt;
&lt;br /&gt;
LD.SYS логический диск&lt;br /&gt;
                              включение:&lt;br /&gt;
LOAD LD&lt;br /&gt;
CREAT DK:A.DSK/ST:10./ALL:50.&lt;br /&gt;
MOUNT  LD5: DK:A.DSK&lt;br /&gt;
INIT/NOQ/SEG:10 LD5:&lt;br /&gt;
&lt;br /&gt;
KD.SYS квазидиск&lt;br /&gt;
                              включение:&lt;br /&gt;
LOAD   KD&lt;br /&gt;
SET  KD  ON&lt;br /&gt;
INIT/NOQ KD:&lt;br /&gt;
ASS  KD: DK:&lt;br /&gt;
&lt;br /&gt;
ED.SYS электронный диск&lt;br /&gt;
NL.SYS нулевое устройство&lt;br /&gt;
SL.SYS  командная строка&lt;br /&gt;
    SE SL  NOANSI  настраивает клавиатуру   под  терминал VT52&lt;br /&gt;
    SE SL PRINT включение твердой копии экрана&lt;br /&gt;
    SE SL NOPRINT выключение твердой копии экрана&lt;br /&gt;
    SE SL NOLET запрещает  работу  запрограммированных клавиш&lt;br /&gt;
    SE SL LET разрешает работу  запрограммированых клавиш,&lt;br /&gt;
                 вход в режим программирования клавиш&lt;br /&gt;
    /L просмотр назначений клавиш&lt;br /&gt;
    &amp;lt;к&amp;gt;/D отмена назначения &amp;lt;к&amp;gt;&lt;br /&gt;
     /А  отмена всех назначений&lt;br /&gt;
     назначение:&lt;br /&gt;
    &amp;lt;к&amp;gt;=&amp;lt;строка&amp;gt; присвоить &amp;lt;к&amp;gt; значение &amp;lt;строка&amp;gt;&lt;br /&gt;
    &amp;lt;к&amp;gt;=&amp;lt;строка&amp;gt;_ автоматическое выполнение  команды&lt;br /&gt;
    &amp;lt;к&amp;gt;=&amp;lt;строка1&amp;gt;_&amp;lt;строка2&amp;gt;_    последовательный вызов команд&lt;br /&gt;
PP.SYS переферийный  процессор&lt;br /&gt;
HP.SYS  центральный  процессор&lt;br /&gt;
TT.SYS терминал&lt;br /&gt;
&lt;br /&gt;
                              ФАЙЛЫ&lt;br /&gt;
&lt;br /&gt;
           размер в блоках   метка защиты от удаления&lt;br /&gt;
         (1 бл = 0.5кБ)  \  /&lt;br /&gt;
             DAY   .SAV  48P 12-Sep-95&lt;br /&gt;
          имя     расширение  дата создания&lt;br /&gt;
&lt;br /&gt;
             DAY   .SAV  48P 12-Sep-95&lt;br /&gt;
 число&lt;br /&gt;
 знакомест    6      4   3 1     9&lt;br /&gt;
&lt;br /&gt;
                           Расширения:&lt;br /&gt;
&lt;br /&gt;
        ----------T---------------------------------¬&lt;br /&gt;
        ¦ расш.   ¦   файлы                         ¦&lt;br /&gt;
        +---------+---------------------------------+&lt;br /&gt;
        ¦ .SYS    ¦  системные                      ¦&lt;br /&gt;
        ¦ .COM    ¦  командные                      ¦&lt;br /&gt;
        ¦ .SAV    ¦  рабочие программы              ¦&lt;br /&gt;
        ¦ .LST    ¦  тексты                         ¦&lt;br /&gt;
        ¦ .PAS    ¦  программа на языке PASCAL      ¦&lt;br /&gt;
        ¦ .PSC    ¦  программа на языке PASCAL      ¦&lt;br /&gt;
        ¦ .ASC    ¦  программа на языке BASIC       ¦&lt;br /&gt;
        ¦ .COD    ¦  программа на языке BASIC во    ¦&lt;br /&gt;
        ¦         ¦  внутренних кодах BASIC системы ¦&lt;br /&gt;
        ¦ .PRL    ¦  база знаний на ПРОЛОГе         ¦&lt;br /&gt;
        ¦ .CAL    ¦  электронные таблицы            ¦&lt;br /&gt;
        ¦ .TBF ¬  ¦                                 ¦&lt;br /&gt;
        ¦ .DEF +- ¦  базы данных                    ¦&lt;br /&gt;
        ¦ .ADF -  ¦                                 ¦&lt;br /&gt;
        ¦ .BAK    ¦  резервные копии                ¦&lt;br /&gt;
        ¦      и др.                                ¦&lt;br /&gt;
        L--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          --------------------------------------------&lt;br /&gt;
          -                                          -&lt;br /&gt;
          -  ЛОКАЛЬНАЯ СЕТЬ УК-НЦ -- ПРОГРАММЫ СВЯЗИ -&lt;br /&gt;
          --------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                        1. BASIC система&lt;br /&gt;
                        ----------------&lt;br /&gt;
Запуск :&lt;br /&gt;
    @BASIC &amp;lt;ВК&amp;gt;&amp;lt;ВК&amp;gt;&lt;br /&gt;
Меню:&lt;br /&gt;
    Ж - ждать загрузки&lt;br /&gt;
    ( выбрав этот пункт включаем поочередно РМУ, последние переходят в&lt;br /&gt;
ждущий режим)&lt;br /&gt;
    З - загрузка&lt;br /&gt;
    (одновременная загрузка BASIC системы на все ждущие РМУ)&lt;br /&gt;
    К - выход в меню связи&lt;br /&gt;
    Ф - выбор загружаемого файла&lt;br /&gt;
(практически не работает)&lt;br /&gt;
    ! после загрузки РМУ РМП переходит в режим связи. МЕНЮ СВЯЗИ:&lt;br /&gt;
    1.Продолжение ( чтение/запись с РМУ )&lt;br /&gt;
    2.Подтверждение запроса на запись&lt;br /&gt;
    3.Подтверждение запроса на чтение&lt;br /&gt;
    4.Запрет записи&lt;br /&gt;
    5.Запрет чтения&lt;br /&gt;
    6.Блокировка сообщений&lt;br /&gt;
    7.Сброс (сброс установок)&lt;br /&gt;
    8.Загрузка Бэйсик-системы (на одно РМУ)&lt;br /&gt;
    9.Конец ( выход из программы связи)&lt;br /&gt;
** во 2-6 пунктах номера РМУ помечаются &amp;lt;ВК&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                               2.KLNET&lt;br /&gt;
                               -------&lt;br /&gt;
                            Работа на РМП:&lt;br /&gt;
Запуск:&lt;br /&gt;
    klnet&lt;br /&gt;
(Выход из программы &amp;lt;АР2&amp;gt;&amp;lt;АР2&amp;gt;)&lt;br /&gt;
    на запрос УКАЖИТЕ ЧИСЛО СТАНЦИЙ введите число РМУ&lt;br /&gt;
    на запрос ВВЕДИТЕ ЧИСЛО БЛОКОВ ОБМЕНА - число (200-300)&lt;br /&gt;
    на запрос ВВЕДИТЕ СПЕЦИФИКАЦИЮ ФАЙЛА ЗАДАЧИ можно ответить двояко:&lt;br /&gt;
    1. &amp;lt;ВК&amp;gt; - в этом случае выходит таблица программы связи. Затем&lt;br /&gt;
можно включить поочередно все РМУ.  Загрузка произойдет уже без вашего&lt;br /&gt;
участия.&lt;br /&gt;
    2. Ввести имя программы, которую вы желаете загрузить на РМУ. Пос-&lt;br /&gt;
ле чего на РМП появится приглашение ДЛЯ ПРОДОЛЖЕНИЯ НАЖМИТЕ ЛЮБУЮ КЛА-&lt;br /&gt;
ВИШУ. (!! не спешите ее нажимать !!) Включаем поочередно РМУ. На экра-&lt;br /&gt;
нах которых должно появиться сообщение ЗАГРУЖАЕТСЯ ЗАДАЧА  &amp;lt;имя  прог-&lt;br /&gt;
раммы&amp;gt;.  Когда  все  РМУ готовы можно нажать любую клавишу.  Программа&lt;br /&gt;
загрузиться на РМУ.&lt;br /&gt;
                            Работа на РМУ:&lt;br /&gt;
    После завершения &amp;quot;нормальной&amp;quot; загрузки (когда не указывается конк-&lt;br /&gt;
ретная  программа)  на экране появляется панель программы связи с меню&lt;br /&gt;
команд (Старт,  Команда, Резерв, Диск -- для работы достаточно Старт и&lt;br /&gt;
Диск).&lt;br /&gt;
    Диск:&lt;br /&gt;
    выбираем нужный  диск  (А или Б) посредством клавиш ВВЕРХ и ВНИЗ и&lt;br /&gt;
нажимаем ВК.  На панели появится каталог выбранного диска.  Двукратное&lt;br /&gt;
нажатие АР2 дает возможность выбора файла (ВПРАВО,  ВЛЕВО, ВВЕРХ, ВНИЗ&lt;br /&gt;
и после выбора ВК).  затем переходим в пункт меню Старт и дважды нажи-&lt;br /&gt;
маем ВК. программа начинает загружаться на РМУ.&lt;br /&gt;
&lt;br /&gt;
                                3.RMU&lt;br /&gt;
                                -----&lt;br /&gt;
Запуск: @RMU&lt;br /&gt;
    Выход: АР2 СТОП&lt;br /&gt;
    Посредством клавиши СБРОС выбираем  либо  отдельную  РМУ  для&lt;br /&gt;
загрузки либо ВСЕ,  затем включаем РМУ. РМУ готовые к загрузке на&lt;br /&gt;
экране РМП будут помечены звездочкой. Затем в отведенном для это-&lt;br /&gt;
го  месте  выбираете  программу  для загрузки или пишите большими&lt;br /&gt;
буквами ее имя и нажимаете + на дополнительной клавиатуре. Проис-&lt;br /&gt;
ходит  загрузка.  Кроме программы можно загрузить еще и алгоритмы&lt;br /&gt;
или обстановки (работают только с программой  КUMIR,  загрузка  и&lt;br /&gt;
выбор производятся аналогично работе с программами).&lt;br /&gt;
&lt;br /&gt;
    Программы:&lt;br /&gt;
    KUMIR  - алгоритмический язык&lt;br /&gt;
    ALMIR  - стековый калькулятор, резчик металла&lt;br /&gt;
    ASMIR  - переводчик  с машинных кодов на ассемблер&lt;br /&gt;
    KLAWIR - клавиатурный тренажер&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                              4. NETSVD&lt;br /&gt;
                              ---------&lt;br /&gt;
    Работает в оболочке SC , в меню РАБОТА С КЛАССОМ, подменю ЗАГРУЗКА&lt;br /&gt;
СИСТЕМЫ.&lt;br /&gt;
Стартовый файл :  r rulon&lt;br /&gt;
                  load lp&lt;br /&gt;
                  load mc&lt;br /&gt;
                  se sl on&lt;br /&gt;
                  se err none&lt;br /&gt;
Необходимые программы: NETSVD,NSYS,ZAGMC,ZAGMP,ZAGPP,ZAGPRG.&lt;br /&gt;
&lt;br /&gt;
                         Главное меню NETSVD:&lt;br /&gt;
    К1 - загрузка системы на РМУ&lt;br /&gt;
    ( загружаются файлы-загрузчики,  после загрузки РМУ  на  последнем&lt;br /&gt;
можно работать практически как на РМП)&lt;br /&gt;
    К2 - загрузка программ на РМУ&lt;br /&gt;
    (загружаются программы)&lt;br /&gt;
    К3 - монтаж логических дисков&lt;br /&gt;
    (логическим дискам,  доступным РМУ МС0:-МС7:  ставятся в соответс-&lt;br /&gt;
твие логические и физические устройства РМП)&lt;br /&gt;
    К4 - генерация системы&lt;br /&gt;
    (создаются файлы загрузчики)&lt;br /&gt;
    СБРОС - выход из NETSVD.&lt;br /&gt;
    (при работе в подменю - выход в главное меню)&lt;br /&gt;
                          Генерация системы:&lt;br /&gt;
    Выбрав этот режим, включаем РМУ на котором и производим дальнейшие&lt;br /&gt;
процедуры. Обеспечив полную загрузку операционной системы на РМУ, кон-&lt;br /&gt;
фигурируем последнюю в нужном нам виде ( отключаем,  подключаем, наст-&lt;br /&gt;
раиваем и т.п. драйверы устройств посредством команд ОС). Затем запус-&lt;br /&gt;
каем  программу  NSYS.  На  запрос  *  вводим  имя  файла   (   обычно&lt;br /&gt;
SY:&amp;lt;имя&amp;gt;.SVD ). На запрос &amp;quot;командный файл?&amp;quot; отвечаем либо Y либо N.&lt;br /&gt;
    Y: вводим через ВК команды системы ,  составляющие командный файл.&lt;br /&gt;
Завершаем  создание командного файла совместным нажатием клавиш (СМЕНА&lt;br /&gt;
РЕГИСТРА) и (Возврат Каретки (ВК)). Происходит запись.&lt;br /&gt;
    N: Запись происходит сразу.&lt;br /&gt;
&lt;br /&gt;
  !! в пунктах  главного  меню,  вызываемых  (К1,К2,К3) функциональные&lt;br /&gt;
клавиши имеют следующие назначения :&lt;br /&gt;
    ЗБ - убрать из панели выбора&lt;br /&gt;
    ВК - занести на панель выбора&lt;br /&gt;
    К3 - выбрать устройство, считать каталог&lt;br /&gt;
    К4 - перемещение  с панели файлов на панель выбора и обратно&lt;br /&gt;
          ( в К1 отсутствует)&lt;br /&gt;
    К5 - пуск (в К3 отсутствует)&lt;br /&gt;
    К1 - загрузка в ОЗУ ( только в К2)&lt;br /&gt;
    К2 - загрузка на квазидиск ( только в К2)&lt;br /&gt;
&lt;br /&gt;
    Ниже приведены примеры файлов-загрузчиков,  написанных для случая,&lt;br /&gt;
когда  системный диск в верхнем кармане дисковода,  а рабочий - в ниж-&lt;br /&gt;
нем.  (1-2 :  ПОСЛЕ ЗАПРОСА ДАТЫ НАЖАТЬ УПР/Ц. 3 - дать системе загру-&lt;br /&gt;
зиться на РМУ до конца.)&lt;br /&gt;
&lt;br /&gt;
                             ЗАГРУЗЧИКИ:&lt;br /&gt;
                              **********&lt;br /&gt;
     1. GRAPH.SVD - работа сo всем кроме CALC,EDIK отключен прин-&lt;br /&gt;
тер и все драйверы кроме MC&lt;br /&gt;
    .UNLOAD MZ   ¦ .REM LD&lt;br /&gt;
    .REM MZ      ¦ .UNLOAD KD&lt;br /&gt;
    .UNLOAD NL   ¦ .REM KD&lt;br /&gt;
    .REM NL      ¦ .SET SL OFF&lt;br /&gt;
    .UNLOAD LP   ¦ .UNLOAD SL&lt;br /&gt;
    .REM LP      ¦ .REM SL&lt;br /&gt;
    .UNLOAD LC   ¦ .R HP.SYS&lt;br /&gt;
    .REM LC      ¦ .R PP.SYS&lt;br /&gt;
    .UNLOAD ED   ¦ .ASS MC1: B:&lt;br /&gt;
    .REM ED      ¦ .ASS MC0: A:&lt;br /&gt;
    .UNLOAD LD   ¦ .ASS MC1: DK:&lt;br /&gt;
стартовый файл:  R SY:ZAGPRG&lt;br /&gt;
     2. EDITOR.SVD - работает CALC,EDIK;  удобен для  СУБД,  PAS,&lt;br /&gt;
PRORMU, DBAS. Подключены квазидиск и принтер.&lt;br /&gt;
    .UNLOAD MZ   ¦      .SET SL OFF&lt;br /&gt;
    .REM MZ      ¦      .UNLOAD SL&lt;br /&gt;
    .UNLOAD NL   ¦      .REM SL&lt;br /&gt;
    .REM NL      ¦      .R HP.SYS&lt;br /&gt;
    .UNLOAD ED   ¦      .R PP.SYS&lt;br /&gt;
    .REM ED      ¦      .ASS MC0: A:&lt;br /&gt;
    .UNLOAD LD   ¦      .ASS MC1: B:&lt;br /&gt;
    .REM LD      ¦      .LOAD KD&lt;br /&gt;
    .UNLOAD LP   ¦      .SET KD ON&lt;br /&gt;
    .REM LP      ¦      .INIT/NOQ KD:&lt;br /&gt;
    .LOAD LC     ¦      .ASS KD: DK:&lt;br /&gt;
    .ASS LC: LP: ¦&lt;br /&gt;
стартовый файл:     R SY:ZAGPRG&lt;br /&gt;
     3. MUSIC.SVD - работает MU,DBAS. Подключен принтер.&lt;br /&gt;
    .UNLOAD MZ   ¦  .UNLOAD LP&lt;br /&gt;
    .REM MZ      ¦  .REM LP&lt;br /&gt;
    .UNLOAD ED   ¦  .LOAD LC&lt;br /&gt;
    .REM ED      ¦  .ASS LC: LP:&lt;br /&gt;
    .UNLOAD LD   ¦  .ASS MC1: DK:&lt;br /&gt;
    .REM LD      ¦&lt;br /&gt;
стартовый файл:     R SY:ZAGPRG&lt;br /&gt;
*********************************************&lt;br /&gt;
     Кроме вышеперечисленных могут быть использованы также  прог-&lt;br /&gt;
раммы связи:  NET,  SOSNET, SATURN и программа связи операционной&lt;br /&gt;
системы АДОС.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                 --------------------------------&lt;br /&gt;
                 -                              -&lt;br /&gt;
                 -  ПРОГРАММНЫЕ СРЕДСТВА УК-НЦ. -&lt;br /&gt;
                 --------------------------------&lt;br /&gt;
&lt;br /&gt;
                      1. СМИРНОВ КОММАНДЕР.&lt;br /&gt;
                      ---------------------&lt;br /&gt;
              (подобие Norton Commander для УК-НЦ)&lt;br /&gt;
    Требуются файлы:&lt;br /&gt;
    SC.SAV, SC.EXE,SC.MEN,SC.KEY,SC.TMP.&lt;br /&gt;
    Желательно:&lt;br /&gt;
    ASTRAL, BOLD, BOLDL, FONTUK, NORML, SANSER,  NS(?),KEYS(?).&lt;br /&gt;
!!! Для нормальной работы предварительно выполнить SET ERROR NONE !&lt;br /&gt;
&lt;br /&gt;
         Горячие клавиши:&lt;br /&gt;
    &amp;lt;BK&amp;gt;   выполнить действия с текущим файлом по умолчанию&lt;br /&gt;
    &amp;lt;ТАБ&amp;gt;  переход на  другую панель&lt;br /&gt;
         * берутся только определенные файлы&lt;br /&gt;
           для операций delete,move,rename,S&lt;br /&gt;
     &amp;lt;K1&amp;gt;  SELECT - отмеченные&lt;br /&gt;
     &amp;lt;K2&amp;gt;  ALL    - все видимые на текущей панели&lt;br /&gt;
     &amp;lt;K3&amp;gt;  CURSOR - текущий&lt;br /&gt;
    &amp;lt;K4&amp;gt;   очистить список отмеченных файлов&lt;br /&gt;
    &amp;lt;K5&amp;gt;   отметить файлы&lt;br /&gt;
    C      Выполнить команду монитора, команда запрашивается&lt;br /&gt;
    E      редактировать файл&lt;br /&gt;
    H      изменить текущее устройство&lt;br /&gt;
    W      задать маску для выводимых файлов&lt;br /&gt;
    U      вызвать меню пользователя&lt;br /&gt;
    V      просмотр текстового файла, прервать УПР+Ц&lt;br /&gt;
    K      просмотр файла запрограммированных клавиш, можно выбрать&lt;br /&gt;
           нужную команду и запустить ВК&lt;br /&gt;
    Q      Выход из программы, текущее состояние запоминается&lt;br /&gt;
    B      вывод только имен файлов&lt;br /&gt;
    F      вывод имен,длин и дат файлов&lt;br /&gt;
    D      удалить текущие файлы&lt;br /&gt;
    R      переименовать текущие файлы&lt;br /&gt;
    M      скопировать текущие файлы на другую панель&lt;br /&gt;
    S      скопировать(и переименовать) текущие файлы на другую панель&lt;br /&gt;
&lt;br /&gt;
                        МЕНЮ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
    Файл SC.MEN представляет собой обычный текстовый файл,  в ко-&lt;br /&gt;
тором с помощью меток заданы команды операционной системы. Струк-&lt;br /&gt;
тура вложенных  друг  в друга команд меню может быть отображена с&lt;br /&gt;
помощью такого дерева (ваше меню может иметь и другую структуру).&lt;br /&gt;
Более подробное обсуждение выходит за рамки данного описания.&lt;br /&gt;
&lt;br /&gt;
--T-РАБОТА С СИСТЕМОЙ&lt;br /&gt;
¦ +-T-  Смена экранного шрифта&lt;br /&gt;
¦ ¦ +----- ASTRAL&lt;br /&gt;
¦ ¦ +----- BOLD&lt;br /&gt;
¦ ¦ +----- BOLDL&lt;br /&gt;
¦ ¦ +----- FONTUK&lt;br /&gt;
¦ ¦ +----- NORML&lt;br /&gt;
¦ ¦ L----- SANSER&lt;br /&gt;
¦ +-T-  Работа с драйвером SL&lt;br /&gt;
¦ ¦ +----- Включить&lt;br /&gt;
¦ ¦ +----- Выключить&lt;br /&gt;
¦ ¦ +----- Просмотр функциональных клавиш&lt;br /&gt;
¦ ¦ L----- Настройка функциональных клавиш&lt;br /&gt;
¦ +-T-   Загрузка драйверов&lt;br /&gt;
¦ ¦ +----- Квазидиск         KD&lt;br /&gt;
¦ ¦ +----- Логические диски  LD&lt;br /&gt;
¦ ¦ +----- Принтер           LP&lt;br /&gt;
¦ ¦ +----- Локальная сеть    MC&lt;br /&gt;
¦ ¦ +----- Нуль-устройство   NL&lt;br /&gt;
¦ ¦ L----- Терминал          TT&lt;br /&gt;
¦ +-T-   Выгрузка драйверов&lt;br /&gt;
¦ ¦ +----- Квазидиск         KD&lt;br /&gt;
¦ ¦ +----- Логические диски  LD&lt;br /&gt;
¦ ¦ +----- Принтер           LP&lt;br /&gt;
¦ ¦ +----- Локальная сеть    MC&lt;br /&gt;
¦ ¦ +----- Нуль-устройство   NL&lt;br /&gt;
¦ ¦ +----- Терминал          TT&lt;br /&gt;
¦ ¦ L----- Выгрузить ВСЕ-ВСЕ-ВСЕ!&lt;br /&gt;
¦ +-T-   Работа с каталогами&lt;br /&gt;
¦ ¦ +----- Сохранить для    MZ0:&lt;br /&gt;
¦ ¦ +----- Восстановить для MZ0:&lt;br /&gt;
¦ ¦ +----- Сохранить для    MZ0:&lt;br /&gt;
¦ ¦ L----- Восстановить для MZ0:&lt;br /&gt;
¦ +---   Назначение LD&lt;br /&gt;
¦ L---   Отмена LD&lt;br /&gt;
¦&lt;br /&gt;
+-T-РАБОТА С ДИСКАМИ&lt;br /&gt;
¦ +----- Форматирование MZ0:&lt;br /&gt;
¦ +----- Форматирование MZ1:&lt;br /&gt;
¦ +----- Проверка       MZ0:&lt;br /&gt;
¦ +----- Проверка       MZ1:&lt;br /&gt;
¦ +----- Вызов программы СF&lt;br /&gt;
¦ +----- Инициализация&lt;br /&gt;
¦ +----- Копирование диска&lt;br /&gt;
¦ +----- Копирование загрузчика&lt;br /&gt;
¦ +----- Сжатие текущего диска&lt;br /&gt;
¦ +----- Включить квазидиск&lt;br /&gt;
¦ L----- Выключить квазидиск&lt;br /&gt;
+-T-РАБОТА С ФАЙЛАМИ&lt;br /&gt;
¦ +----- Копирование MZ0 -&amp;gt; MZ1&lt;br /&gt;
¦ +----- Копирование MZ1 -&amp;gt; MZ0&lt;br /&gt;
¦ +----- Копирование ПЛОХИХ файлов&lt;br /&gt;
¦ +----- Установка защиты файлов&lt;br /&gt;
¦ L----- Снятие защиты файлов&lt;br /&gt;
+-T-РАБОТА С КЛАССОМ&lt;br /&gt;
¦ L----- Загрузка системы на РМУ&lt;br /&gt;
+-T-РАБОТА С АРХИВАМИ&lt;br /&gt;
¦ +----- Каталог архива с MZ0:&lt;br /&gt;
¦ +----- Каталог архива с MZ1:&lt;br /&gt;
¦ +----- Деархивация    MZ1-&amp;gt;MZ0&lt;br /&gt;
¦ +----- Деархивация    MZ0-&amp;gt;MZ1&lt;br /&gt;
¦ +----- Деархивация    MZ1-&amp;gt;TT&lt;br /&gt;
¦ +----- Деархивация    MZ1-&amp;gt;TT&lt;br /&gt;
¦ +----- Деархивация    MZ1-&amp;gt;LP&lt;br /&gt;
¦ +----- Деархивация    MZ1-&amp;gt;LP&lt;br /&gt;
¦ +----- Запуск архиватора LZA&lt;br /&gt;
¦ L----- Запуск деархиватора UZA&lt;br /&gt;
+-T-РАБОТА С ТЕКСТАМИ&lt;br /&gt;
¦ +----- Просмотр LST-файла&lt;br /&gt;
¦ +----- Просмотр HLP-файла&lt;br /&gt;
¦ +----- Просмотр редактором&lt;br /&gt;
¦ +----- Редактирование (LST)&lt;br /&gt;
¦ L----- Создание нового (LST)&lt;br /&gt;
¦&lt;br /&gt;
L-T-РАБОТА С ПРИНТЕРОМ&lt;br /&gt;
  +-T-   Настройка драйвера&lt;br /&gt;
  ¦ +-T-   ОБЩЕЕ&lt;br /&gt;
  ¦ ¦ +------  Печать на листы  ASK&lt;br /&gt;
  ¦ ¦ +------  Печать на рулон  NOASK&lt;br /&gt;
  ¦ ¦ +------  Длина страницы   LENGTH&lt;br /&gt;
  ¦ ¦ +------  Ширина строки    WIDTH&lt;br /&gt;
  ¦ ¦ +------  Левое поле       BEGIN&lt;br /&gt;
  ¦ ¦ +------  Автонумерация    ЕСТЬ&lt;br /&gt;
  ¦ ¦ +------  Позиция номера   BLANK&lt;br /&gt;
  ¦ ¦ +------  Автонумерации    НЕТ&lt;br /&gt;
  ¦ ¦ +------  Кодировка        КОИ-8&lt;br /&gt;
  ¦ ¦ +------  Кодировка        КОИ-7&lt;br /&gt;
  ¦ ¦ +------  Инверсия данных  ЕСТЬ&lt;br /&gt;
  ¦ ¦ L------  Инверсии данных  НЕТ&lt;br /&gt;
  ¦ +--T-  D100&lt;br /&gt;
  ¦ ¦  L------ ................&lt;br /&gt;
  ¦ +--T-  D100M(I)&lt;br /&gt;
  ¦ ¦  L------ ................&lt;br /&gt;
  ¦ +-T-   D100M(II)&lt;br /&gt;
  ¦ ¦ L------- ................&lt;br /&gt;
  ¦ +-T-   ROBOTRON&lt;br /&gt;
  ¦ ¦ L------- ................&lt;br /&gt;
  ¦ +-T-   CPF H80&lt;br /&gt;
  ¦ ¦ L------- ................&lt;br /&gt;
  ¦ L-T-   EPSON LX/FX&lt;br /&gt;
  ¦   ¦        ................&lt;br /&gt;
  ¦   +------  Настройка драйвера&lt;br /&gt;
  ¦   +------  Интервал (знаков/дюйм)&lt;br /&gt;
  ¦   +------  ОБЩЕЕ&lt;br /&gt;
  ¦   L---T--  ШРИФТЫ&lt;br /&gt;
  ¦       +------   Пика(0)&lt;br /&gt;
  ¦       +------   Элита(1)&lt;br /&gt;
  ¦       +------   Пропорциональный(2)&lt;br /&gt;
  ¦       +------   Сжатый(4)&lt;br /&gt;
  ¦       +------   Жирный(8)&lt;br /&gt;
  ¦       +------   Двойной(16)&lt;br /&gt;
  ¦       +------   Вразрядку(32)&lt;br /&gt;
  ¦       +------   Курсив(64)&lt;br /&gt;
  ¦       +------   Подчеркнутый(128)&lt;br /&gt;
  ¦       L------   Комбинированный(ххх)&lt;br /&gt;
  ¦&lt;br /&gt;
  +----  Печать из ОС (LST)&lt;br /&gt;
  L----  Вызов PAGER`a (LST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                         2. АРХИВАТОРЫ.&lt;br /&gt;
                          -------------&lt;br /&gt;
  LZA - АРХИВАТОР&lt;br /&gt;
    Формат:&lt;br /&gt;
    ФАЙЛ-АРХИВ{.LZA}{[размер]}}{,каталог{.CAT}}{=&lt;br /&gt;
  {*}|{Устройство:}Имя(имена)файла(файлов){%|*}{/ключи}}&lt;br /&gt;
&lt;br /&gt;
    Ключи:&lt;br /&gt;
    A{DEV:}    - добавлять файлы в архив с перезаписью на DEV,&lt;br /&gt;
                 при ошибке записи старый файл=*.LZ;&lt;br /&gt;
    C{num:} - дописать в конец архива общий каталог,  num - объем&lt;br /&gt;
              памяти резервируемый под каталог ;&lt;br /&gt;
    D:dd:mm:yy - архивация файлов с даты dd:mm:yy;&lt;br /&gt;
    E          - удалить помеченные файлы из архива;&lt;br /&gt;
    M          - удалять незащищенные архивируемые файлы;&lt;br /&gt;
    P:xxx      - установить пароль ххх;&lt;br /&gt;
    Q          - архивировать/удалять с подтверждением;&lt;br /&gt;
    /          - перечисление файлов (только из командного файла).&lt;br /&gt;
&lt;br /&gt;
  UZA - ДЕАРХИВАТОР&lt;br /&gt;
    Формат:&lt;br /&gt;
    {{устройство:}{Выходные    файлы}{%|*}=&lt;br /&gt;
   }{устройство:}файл-архив{.LZA}{/ключи}&lt;br /&gt;
&lt;br /&gt;
    Ключи:&lt;br /&gt;
    L - просмотр каталога архива;&lt;br /&gt;
    N - деархивация без повторения одинаковых;&lt;br /&gt;
    O - старый формат архива - один файл LS.SAV;&lt;br /&gt;
    R - переписывать одноименные без подтверждения;&lt;br /&gt;
    T - проверить архив на корректность;&lt;br /&gt;
    V - сравнить исходные файлы с файлами в архиве;&lt;br /&gt;
    D:dd:mm:yy - деархивация файлов с даты dd:mm:yy;&lt;br /&gt;
    P:xxx      - доступ по паролю ххх;&lt;br /&gt;
    Q          - деархивировать с подтверждением.&lt;br /&gt;
&lt;br /&gt;
                         3. КОПИРОВАНИЕ.&lt;br /&gt;
                       ------------------&lt;br /&gt;
    SCOP - восстановление испорченных файлов, поблочное копирова-&lt;br /&gt;
           ние.&lt;br /&gt;
    COPYDD - копирование устройства на устройство.&lt;br /&gt;
    COPW - копирование с заменой дисков.&lt;br /&gt;
&lt;br /&gt;
                            4.ПЕЧАТЬ&lt;br /&gt;
                          ------------&lt;br /&gt;
&lt;br /&gt;
            ALISA печать текстов в графическом режиме.&lt;br /&gt;
    (предварительно запустить SETKEY) &amp;lt;УПР&amp;gt;/&amp;lt;Ц&amp;gt; выход&lt;br /&gt;
&lt;br /&gt;
                PAGER форматирование и печать текстов.&lt;br /&gt;
пример вывода    *LP:=IN.LST&lt;br /&gt;
&amp;lt;ВВЕРХ&amp;gt; команда к выводу&lt;br /&gt;
I подсказка                  H шапка ЕСТЬ/НЕТ&lt;br /&gt;
T вывод на экран             Z зона печати&lt;br /&gt;
E выход                      W ширина колонки&lt;br /&gt;
O вывод в файл (на печать)   F новый  файл&lt;br /&gt;
B изменить  левое поле       + табулятор ЕСТЬ/НЕТ&lt;br /&gt;
Y число строк в листе        L прогон строки&lt;br /&gt;
A автовывод листов           P прогон формата&lt;br /&gt;
N нумерация  ЕСТЬ/НЕТ        S перезапуск&lt;br /&gt;
                             R транслитерация&lt;br /&gt;
&lt;br /&gt;
    D100M - настройщик печатающего устройства.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      5. ПРОГРАММЫ  РЕЗИДЕНТЫ:&lt;br /&gt;
                     -------------------------&lt;br /&gt;
&lt;br /&gt;
                          RCALC калькулятор&lt;br /&gt;
&amp;lt;ФИКС&amp;gt;/&amp;lt;Ц&amp;gt; вызов&lt;br /&gt;
&amp;lt;ВК&amp;gt;,&amp;lt;НР&amp;gt;/&amp;lt;ВК&amp;gt;  вычислить&lt;br /&gt;
&amp;lt;УПР&amp;gt;/&amp;lt;Ц&amp;gt;,Е,е,Q,q  -выход&lt;br /&gt;
    Cмена системы счисления на B,b двоичную D,d десятичную O,o восьме-&lt;br /&gt;
ричную H,h шестнадцатеричную&lt;br /&gt;
&lt;br /&gt;
                         RASCII таблица кодов&lt;br /&gt;
&amp;lt;ФИКС&amp;gt;/&amp;lt;А&amp;gt; вызов&lt;br /&gt;
&amp;lt;УПР&amp;gt;/&amp;lt;Ц&amp;gt; выход&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      6. ГРАФИЧЕСКИЕ УТИЛИТЫ&lt;br /&gt;
                         -------------------&lt;br /&gt;
    (используют стандартную систему координат:  (0,0) &amp;lt;-&amp;gt; левый нижний&lt;br /&gt;
угол экрана, расширение по умолчанию *.PCX)&lt;br /&gt;
    Запуск: R &amp;lt;имя утилиты&amp;gt; &amp;lt;имя  файла&amp;gt;[/&amp;lt;ключ&amp;gt;:&amp;lt;значение&amp;gt;]  RU  &amp;lt;имя&lt;br /&gt;
утилиты&amp;gt; &amp;lt;имя файла&amp;gt;[/&amp;lt;ключ&amp;gt;:&amp;lt;значение&amp;gt;] * если число в десятичной за-&lt;br /&gt;
писи то после него&amp;lt;.&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                               1.PCXWRT&lt;br /&gt;
    (сохраняет в файле копию экрана на момент запуска программы)&lt;br /&gt;
                                Ключи:&lt;br /&gt;
    1.X&amp;lt;-&amp;gt; абсцисса левого нижнего угла прямоугольной  области  экрана&lt;br /&gt;
для сохранения&lt;br /&gt;
    2.Y &amp;lt;-&amp;gt; ордината левого нижнего угла&lt;br /&gt;
    3.W &amp;lt;-&amp;gt; ширина по горизонтали сохраняемой области&lt;br /&gt;
    4.V &amp;lt;-&amp;gt; ширина по вертикали&lt;br /&gt;
** размеры экрана 640. Х 264.&lt;br /&gt;
&lt;br /&gt;
                               2.PCXREA&lt;br /&gt;
    ( Выводит хранящееся в файле *.PCX изображение на экран.)&lt;br /&gt;
                                Ключи:&lt;br /&gt;
    1.X &amp;lt;-&amp;gt;  абсцисса левого нижнего угла прямоугольной области экрана&lt;br /&gt;
для сохранения&lt;br /&gt;
    2.Y &amp;lt;-&amp;gt; ордината левого нижнего угла&lt;br /&gt;
    3.W &amp;lt;-&amp;gt; ширина по горизонтали сохраняемой по умолчанию  до  правой&lt;br /&gt;
нижней границы.&lt;br /&gt;
    4.V &amp;lt;-&amp;gt; ширина по вертикали сохраняемой  по  умолчанию  до  правой&lt;br /&gt;
нижней границы.&lt;br /&gt;
    5.S &amp;lt;-&amp;gt; указывает, что после чтения изображения на экран его нужно&lt;br /&gt;
показать в палитре на момент сохранения изображения. После нажатия лю-&lt;br /&gt;
бой клавиши восстанавливается текущая цветовая палитра.&lt;br /&gt;
&lt;br /&gt;
                               3.PCXFRZ&lt;br /&gt;
    ( Записывает изображение в файл во время работы  других  программ.&lt;br /&gt;
При удачной записи имя выходного файла корректируется:  если был запи-&lt;br /&gt;
сан файл аааа00.PCX,  то следующая запись пойдет в файл  аааа01.PCX  и&lt;br /&gt;
т.п. По умолчанию запускается &amp;lt;ИСП&amp;gt;)&lt;br /&gt;
    1.X &amp;lt;-&amp;gt; абсцисса левого нижнего угла прямоугольной области  экрана&lt;br /&gt;
для сохранения&lt;br /&gt;
    2.Y &amp;lt;-&amp;gt; ордината левого нижнего угла&lt;br /&gt;
    3.W &amp;lt;-&amp;gt; ширина по горизонтали сохраняемой области&lt;br /&gt;
    4.V &amp;lt;-&amp;gt; ширина по вертикали&lt;br /&gt;
    5.D &amp;lt;-&amp;gt; определяет физическую ширину экрана.&lt;br /&gt;
    Число задаваемое этим ключом определяет,  сколько нужно добавить к&lt;br /&gt;
адресу  ОЗУ экрана,  чтобы байт по этому адресу был точно под предыду-&lt;br /&gt;
щим. По умолчанию установлена ширина в 80 байт.&lt;br /&gt;
    6.R &amp;lt;-&amp;gt;  определяет регистр &amp;quot;горячей&amp;quot; клавиши - по нажатию которой&lt;br /&gt;
резидент начинает свою работу. Допустимы следующие значения регистра:&lt;br /&gt;
    NOR &amp;lt;-&amp;gt;  в нижнем или верхнем ,  русском или латинском (по умолча-&lt;br /&gt;
нию)&lt;br /&gt;
    NR &amp;lt;-&amp;gt; в нижнем регистре&lt;br /&gt;
    GRF &amp;lt;-&amp;gt; в режиме табличной графики&lt;br /&gt;
    UPR &amp;lt;-&amp;gt; в режиме генерации управляющих символов&lt;br /&gt;
    FKS &amp;lt;-&amp;gt; при нажатии вместе с &amp;lt;ФИКС&amp;gt;&lt;br /&gt;
    7.К &amp;lt;-&amp;gt;  определяет &amp;quot;горячую&amp;quot; клавишу.  Допустимы следующие значе-&lt;br /&gt;
ния:&lt;br /&gt;
    POM &amp;lt;-&amp;gt; &amp;lt;ПОМ&amp;gt;;&lt;br /&gt;
    ISP &amp;lt;-&amp;gt; &amp;lt;ИСП&amp;gt;;&lt;br /&gt;
    D&amp;lt;цифра&amp;gt; &amp;lt;-&amp;gt; цифровые клавиши ДКЛ&lt;br /&gt;
    F&amp;lt;цифра&amp;gt; &amp;lt;-&amp;gt;  цифровые клавиши основной клавиатуры;&lt;br /&gt;
    AR2 &amp;lt;-&amp;gt; АР2 и др.&lt;br /&gt;
    8.Т &amp;lt;-&amp;gt; устанавливает время срабатывания.  Через заданный интервал&lt;br /&gt;
времени после запуска утилиты будет активизирован резидент.  После то-&lt;br /&gt;
го,  как он активизировался и отработал, он прекращает отсчет времени.&lt;br /&gt;
Поэтому  записать  копию  экрана с использованием ключа Т можно только&lt;br /&gt;
один раз.&lt;br /&gt;
    9.С &amp;lt;-&amp;gt;  устанавливает  номер канала для обмена с диском.  Всего в&lt;br /&gt;
операционной системе 16 каналов обмена с внешними устройствами с номе-&lt;br /&gt;
рами от 0 до 15. По умолчанию 14.&lt;br /&gt;
    10.А &amp;lt;-&amp;gt; адрес загрузки в ПП.  Автоматически, резидент загружается&lt;br /&gt;
в верхние адреса ПП, но, если при активизации резидента ЭВМ &amp;quot;повисла&amp;quot;,&lt;br /&gt;
то значит область памяти занимаемой резидентом используется этой прог-&lt;br /&gt;
раммой. В таком случае можно изменить адрес загрузки в ПП. Если не ис-&lt;br /&gt;
пользовался и не предполагается  использовать  загружаемый  шрифт,  то&lt;br /&gt;
можно установить адрес загрузки 15142.&lt;br /&gt;
&lt;br /&gt;
                               4.PRPLAN&lt;br /&gt;
    (Печать содержимое графического экрана на ПУ.  Может быть запущена&lt;br /&gt;
из стартового командного файла. Запускается нажатием &amp;lt;УПР&amp;gt;/&amp;lt;ИСП&amp;gt;)&lt;br /&gt;
    1. D:  &amp;lt;-&amp;gt; устройство печати: 0 или R &amp;lt;-&amp;gt; ROBOTRON 1,E или EPS &amp;lt;-&amp;gt;&lt;br /&gt;
EPSON,D100М 2 или D или D10 &amp;lt;-&amp;gt; D100&lt;br /&gt;
    2. P: &amp;lt;-&amp;gt; номер копируемого плана памяти (0,1 по умолчанию, или 2)&lt;br /&gt;
    3. W: &amp;lt;-&amp;gt; Горизонтальная плотность(ширина)&lt;br /&gt;
                               значение&lt;br /&gt;
EPSON ROBOTRON D100М D100&lt;br /&gt;
0          80    80       80   норм.ширина&lt;br /&gt;
                               по умолчанию&lt;br /&gt;
1         120   120      120   сжатая&lt;br /&gt;
3         240   240      240    -&lt;br /&gt;
4          80    80       80   по ум. -&lt;br /&gt;
5          72    72       -      -&lt;br /&gt;
6          90    90       -      -&lt;br /&gt;
&lt;br /&gt;
    4. 2 &amp;lt;-&amp;gt; Двойная ширина&lt;br /&gt;
    5. L: &amp;lt;-&amp;gt; оставить левые поля (указать число пробелов&amp;lt;=80)&lt;br /&gt;
    6. S: &amp;lt;-&amp;gt; начальная печатаемая позиция экрана (&amp;gt;=0 и &amp;lt;=80)&lt;br /&gt;
    7. Е: &amp;lt;-&amp;gt; конечная печатаемая позиция экрана (&amp;gt;=0 и&amp;lt;=80)&lt;br /&gt;
    8. I  &amp;lt;-&amp;gt;  инвертировать  черное  и белое (I:ALL &amp;lt;-&amp;gt; инвертировать&lt;br /&gt;
все)&lt;br /&gt;
    9. Т: &amp;lt;-&amp;gt; влияет на скорость печати (по умолчанию 32)&lt;br /&gt;
    10. R &amp;lt;-&amp;gt; заменить старую копию программы новой при перезапуске&lt;br /&gt;
    ** например: R SY:PRPLAN /D:1/R&lt;br /&gt;
&lt;br /&gt;
                7. УТИЛИТЫ РАБОТЫ С УСТРОЙСТВАМИ.&lt;br /&gt;
                ---------------------------------&lt;br /&gt;
&lt;br /&gt;
              TESTMZ - форматирование дискет&lt;br /&gt;
    После запуска на экран выводится меню:&lt;br /&gt;
    ---&amp;gt; установка параметров&lt;br /&gt;
         форматирование.&lt;br /&gt;
     Выберем форматирование.&lt;br /&gt;
             Запрос:                Выбор:&lt;br /&gt;
     Разметка стандартная (Д,Н,К)?     Д&lt;br /&gt;
     Устройство (0,1,2,3)?             0 или 1&lt;br /&gt;
    Повторить при тех же               Д (другая дискета)&lt;br /&gt;
    параметрах (Д,Н,К)?                К (выход в главное меню)&lt;br /&gt;
&lt;br /&gt;
    После чего в главном меню набираем &amp;quot;О&amp;quot; и ВК,  после чего ини-&lt;br /&gt;
циализируем дискету.&lt;br /&gt;
&lt;br /&gt;
          СF,MZFORM - программы форматирования дисков.&lt;br /&gt;
&lt;br /&gt;
              DAY - установка даты, стартовый файл.&lt;br /&gt;
    &amp;lt;-&amp;gt; - день назад&lt;br /&gt;
    &amp;lt; &amp;gt; - день вперед&lt;br /&gt;
    &amp;lt;L&amp;gt; - месяц назад&lt;br /&gt;
    &amp;lt;H&amp;gt; - месяц вперед&lt;br /&gt;
    &amp;lt;S&amp;gt; - вход в сервисный режим&lt;br /&gt;
       N=command , n=[1..9].&lt;br /&gt;
    &amp;lt;E&amp;gt; - выход из сервисного режима&lt;br /&gt;
&lt;br /&gt;
              SETKEY - настройка клавиатуры УК-НЦ под ДВК-4.&lt;br /&gt;
              TTY - постраничный просмотр текстов.&lt;br /&gt;
              KLAW - клавиатурный тренажер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                         8. РОБОТЛАНДИЯ.&lt;br /&gt;
                         --------------&lt;br /&gt;
    УПР/?    - подсказка&lt;br /&gt;
    УПР/СТОП - выход&lt;br /&gt;
    УПР/ЗБ   - откатка (отмена последней операции)&lt;br /&gt;
    УПР/ВК - накатка (восстановление последней удаленной операции)&lt;br /&gt;
    АР2      - сброс&lt;br /&gt;
    СБРОС    - стереть/очистить&lt;br /&gt;
&lt;br /&gt;
    1.  RBCOM  - АРХИТЕКТУРА      архитектура ЭВМ&lt;br /&gt;
    2.  RBCUR  - КУРСОР           тренажер&lt;br /&gt;
    3.  RBMOR  - МОРСКОЙ БОЙ      игра&lt;br /&gt;
&lt;br /&gt;
    4.  RBWAT  - ПЕРЕЛИВАШКА      3 сосуда с водой&lt;br /&gt;
    5.  RBHOR  - КОНЮХ            шахматные кони&lt;br /&gt;
    6.  RBRIV  - ПЕРЕВОЗЧИК       волк,коза и капуста&lt;br /&gt;
    7.  RBQUE  - УГАДАЙКА         угадать число&lt;br /&gt;
    8.  RBTOW  - ХАНОЙСКАЯ БАШНЯ  3 пирамидки с кольцами&lt;br /&gt;
    9.  RBTRA  - СТРЕЛОЧНИК       паровоз и вагоны&lt;br /&gt;
&lt;br /&gt;
    10. RBMIC  - МИКРОН           текстовый редактор&lt;br /&gt;
    11. RBSHR  - ШАРМАНЩИК        музыкальный редактор&lt;br /&gt;
    12. RBPNT  - РАСКРАШКА        графический редактор&lt;br /&gt;
&lt;br /&gt;
    13. RBSQU  - КВАДРАТИК        геометрические фигуры&lt;br /&gt;
    14. RBPLU  - ПЛЮСИК           стековый калькулятор&lt;br /&gt;
    15. RBAUT1 - АВТОМАТ          кнопочный автомат (+,*)&lt;br /&gt;
    16. RBBUK  - БУКВОЕД&lt;br /&gt;
                                  Алгоритм - номер задания&lt;br /&gt;
                                  Опыт -  вводим  данные - машина&lt;br /&gt;
                                          преобразует&lt;br /&gt;
                                  Экзамен - преобразуем сами&lt;br /&gt;
                                  Дневник - просмотр  результатов&lt;br /&gt;
                                            опыта&lt;br /&gt;
    17. RBPRAW - ПРАВИЛКА         Проверка грамотности&lt;br /&gt;
    18. RBCOC  - КУКАРАЧА         Исполнитель алгоритмов&lt;br /&gt;
&lt;br /&gt;
***********************************************&lt;br /&gt;
                             Литература:&lt;br /&gt;
    1. Документация на программные пакеты УК-НЦ:  ОС,  RT11SJ, NETSVD,&lt;br /&gt;
BASIC, KUMIR.&lt;br /&gt;
    2. Журнал &amp;quot;Информатика и образование&amp;quot; 2-6,1992г.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=User:Nzeemin&amp;diff=1705</id>
		<title>User:Nzeemin</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=User:Nzeemin&amp;diff=1705"/>
		<updated>2007-10-15T08:26:14Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Контакты ==&lt;br /&gt;
* Почта: mailto:nzeemin(пёсык)mail(крапка)ru&lt;br /&gt;
* [http://nzeemin.livejournal.com/ ЖЖ]&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/Участник:Nzeemin Участник:Nzeemin в русской Википедии]&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_notes&amp;diff=1704</id>
		<title>Uknc notes</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_notes&amp;diff=1704"/>
		<updated>2007-10-15T08:24:42Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== [[User:Nzeemin|NZeemin]] 02:02, 5 July 2007 (EDT) ===&lt;br /&gt;
Отладочный режим в разрешении 1024 &amp;amp;times; 768 выглядит пока не очень, но мы над этим работаем…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070705.png|256px]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 03:34, 4 July 2007 (EDT) ===&lt;br /&gt;
После 3-месячного перерыва вновь возвращаюсь к работе над проектом. Дописывается инсталлятор, надеюсь в скором времени выдать первую публичную версию. Кстати, благодаря Феликсу у нас появилась эмуляция звука.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:55, 31 March 2007 (EDT) ===&lt;br /&gt;
Обращаю ваше внимание на появление [[UKNCBTL FAQ|FAQ]] по эмулятору.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Felix|Felix]] 19:27, 28 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Ну вот мы и загрузились!!! огромное спасибо Alex_K за консультации :)&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_loaded.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_disk_basic.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 08:18, 27 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Феликс провел перетряску кода процессора, в результате чего мы сегодня имеем работающий Бейсик Вильнюс!&amp;lt;br/&amp;gt;&lt;br /&gt;
Мой скромный вклад состоит в программировании обращений к кассете ПЗУ и исправлении нескольких багов…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070327.png]]&lt;br /&gt;
&lt;br /&gt;
Спасибо Alex_K за консультации и код. Спасибо Арсению за время и силы, потраченные на получение дампа кассеты ПЗУ.&lt;br /&gt;
&lt;br /&gt;
P.S. Если кто интересуется процессом загрузки из картриджа ПЗУ — дизасм тут: [[Uknc ROM Basic boot]].&lt;br /&gt;
&lt;br /&gt;
== [[User:Nzeemin|NZeemin]] 13:57, 23 March 2007 (EDT) ==&lt;br /&gt;
Если вставить в эмулятор НЕзагрузочный диск (а вставить его можно командой Emulator|Floppy0) и выбрать в начальном меню пункт &amp;lt;code&amp;gt;1 - диск&amp;lt;/code&amp;gt;, то спустя несколько секунд мы увидим вот такую картинку:&lt;br /&gt;
&lt;br /&gt;
[[Image:UKNC-NoBootOnVolume.png]]&lt;br /&gt;
&lt;br /&gt;
Это всё уже достижения Феликса, моих знаний для отладки таких чудес давно уже не хватает.&lt;br /&gt;
Зато я делал для него отладчик :)&lt;br /&gt;
Но об отладчике — в другой раз, вернёмся к надписи на экране. По крайней мере, я могу объяснить вам откуда она взялась.&lt;br /&gt;
&lt;br /&gt;
С диска был запрошен на чтение сектор 1 дорожки 0. Эти данные прочитались в память ЦПУ с адреса 000000 и выглядят они вот так:&lt;br /&gt;
  000000  000240 000005 000404 000000 000000 041420 116020 000400  =··········C·°··&lt;br /&gt;
  000020  004067 000044 000015 000000 005000 041077 047517 026524  7·$·······?BOOT-&lt;br /&gt;
  000040  026525 067516 061040 067557 020164 067157 073040 066157  U-No boot on vol&lt;br /&gt;
  000060  066565 006545 005012 000200 105737 177564 100375 112037  ume···-·ъ-tЪЩ-·¦&lt;br /&gt;
  000100  177566 100372 000777 000000 000000 000000 000000 000000  vЪЗ-Ъ···········&lt;br /&gt;
  000120  000000 000000 000000 000000 000000 000000 000000 000000  ················&lt;br /&gt;
  000140  000000 000000 000000 000000 000000 000000 000000 000000  ················&lt;br /&gt;
  000160  000000 000000 000000 000000 000000 000000 000000 000000  ················&lt;br /&gt;
Этому соответствует вот такой код:&lt;br /&gt;
  000020  004067  JSR     R0, 000070&lt;br /&gt;
  000022  000044&lt;br /&gt;
  ---&lt;br /&gt;
  000024	; Тут собственно последовательность байт для передачи на терминал&lt;br /&gt;
  ---&lt;br /&gt;
  000070  105737  TSTB    @#177564		; Проверяем слово состояния терминала&lt;br /&gt;
  000072  177564&lt;br /&gt;
  000074  100375  BPL     000070		; Терминал готов принять очередной символ?&lt;br /&gt;
  000076  112037  MOVB    (R0)+, @#177566	; Отправляем символ на терминал&lt;br /&gt;
  000100  177566&lt;br /&gt;
  000102  100372  BPL     000070		; Появился не-символ - значит все выдали&lt;br /&gt;
  000104  000777  BR      000104		; Зацикливание&lt;br /&gt;
При переходе на адрес 000070, в регистр R0 попадает значение 000024, по которому находится серия символов для терминала. После конца последовательности находится НЕ-символ, отличающийся наличием верхнего бита, и этот НЕ-символ по совместительству является командой по адресу 000070.&lt;br /&gt;
&lt;br /&gt;
P.S. Кстати, приведённый здесь дамп и код — это copy/paste из консоли нашего отладчика. Ну, кроме комментариев, конечно…&lt;br /&gt;
&lt;br /&gt;
== [[User:Felix|Felix]] 01:10, 23 March 2007 (EDT): ==&lt;br /&gt;
&lt;br /&gt;
А мы в загрузчике RT11 :) -- ему пока, правда, что-то не живется, но тем-не менее.... Уфф -- ну и намучался я с контроллером дисковёрта...&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc rt11 first.png]]&lt;br /&gt;
&lt;br /&gt;
== [[User:Felix|Felix]] 22:52, 20 March 2007 (EDT): ==&lt;br /&gt;
&lt;br /&gt;
Ну вот мы и подошли к плотной работе с внешними устройствами -- ибо внутренние, согласно комплексному самотесту -- уже в порядке (не забудте -- что там тестируется все -- даже математика процессора)... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P.S. Оказывается эмулятор лучше чем настоящее железо -- у меня на машине -- на 3м проходе уже ошибки памяти появлялись&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc test1.png]]&lt;br /&gt;
&lt;br /&gt;
== [[User:Nzeemin|NZeemin]] 16:00, 20 March 2007 (EDT): ==&lt;br /&gt;
&lt;br /&gt;
Сделал в меню команду сохранения скриншота, так что уже без лишних рамочек:&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-07.png]]&lt;br /&gt;
&lt;br /&gt;
За кадром остаётся огромное количество работы, которую проделывает Феликс для того, чтобы вся эта радость заработала как надо…&lt;br /&gt;
&lt;br /&gt;
== 2007/03/20 ==&lt;br /&gt;
Сегодня УКНЦ полностью ожил -- тест показывает 0 ошибок и мы готовы к загрузке реального софта :&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_test1.png]]&lt;br /&gt;
&lt;br /&gt;
== 2007/03/15 ==&lt;br /&gt;
Третья запись за сегодня &lt;br /&gt;
&lt;br /&gt;
УРА!!! исправил страааашную ошибку в процессоре --- заработало &amp;lt;s&amp;gt;всё&amp;lt;/s&amp;gt; :) теперь видно -- что-же печаталось&lt;br /&gt;
&lt;br /&gt;
Проблема была в адресации -- не учитывалась байтовая адресация!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Смотрим сюда --&lt;br /&gt;
&lt;br /&gt;
[[Image:uknc-errors1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 19:04, 15 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== 2007/03/15 ==&lt;br /&gt;
&lt;br /&gt;
Вторая запись за сегодня -- &lt;br /&gt;
&lt;br /&gt;
по адресу 14142 - таблица адресов символов в фонте &lt;br /&gt;
&lt;br /&gt;
sub_111272 - печать символа R0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 16:52, 15 March 2007 (EDT)&lt;br /&gt;
== 2007/03/15 ==&lt;br /&gt;
Пример работы советских кодописателей == спагетти а не код&lt;br /&gt;
&lt;br /&gt;
    ROM:111112 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111112 &lt;br /&gt;
    ROM:111112 loc_111112:                             ; CODE XREF: ROM:111132&lt;br /&gt;
    ROM:111112                 add     @#22546, PC&lt;br /&gt;
    ROM:111116                 return  &lt;br /&gt;
    ROM:111120 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111120                 trap    4&lt;br /&gt;
    ROM:111122                 inc     @#7064&lt;br /&gt;
    ROM:111126                 dec     @#7064&lt;br /&gt;
    ROM:111132                 beq     loc_111112&lt;br /&gt;
    ROM:111134                 tst     @#7060&lt;br /&gt;
    ROM:111140                 beq     loc_111204&lt;br /&gt;
    ROM:111142                 return  &lt;br /&gt;
    ROM:111144 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111144                 inc     @#7066&lt;br /&gt;
    ROM:111150                 mov     @#23150, R5&lt;br /&gt;
    ROM:111154                 mov     34(R5), @#177016&lt;br /&gt;
    ROM:111162                 mov     40(R5), @#177020&lt;br /&gt;
    ROM:111170                 mov     40(R5), @#177022&lt;br /&gt;
    ROM:111176                 movb    70(R5), @64(R5)&lt;br /&gt;
    ROM:111204 &lt;br /&gt;
    ROM:111204 loc_111204:                             ; CODE XREF: ROM:111140&lt;br /&gt;
    ROM:111204                 movb    @22542, R0&lt;br /&gt;
    ROM:111210                 inc     @#22542&lt;br /&gt;
    ROM:111214                 bic     #200, @#22542 ; 'A'&lt;br /&gt;
    ROM:111222                 mov     #-66652, -(SP)&lt;br /&gt;
    ROM:111226                 bic     #-400, R0&lt;br /&gt;
    ROM:111232                 cmp     R0, #40 ; ' '&lt;br /&gt;
    ROM:111236                 bcc     loc_111260&lt;br /&gt;
    ROM:111240                 tstb    @#22552&lt;br /&gt;
    ROM:111244                 beq     loc_111252&lt;br /&gt;
    ROM:111246                 jmp     loc_111730&lt;br /&gt;
    ROM:111252 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111252 &lt;br /&gt;
    ROM:111252 loc_111252:                             ; CODE XREF: ROM:111244&lt;br /&gt;
    ROM:111252                 asl     R0&lt;br /&gt;
    ROM:111254                 jmp     @13142(R0)&lt;br /&gt;
    ROM:111260 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111260 &lt;br /&gt;
    ROM:111260 loc_111260:                             ; CODE XREF: ROM:111236&lt;br /&gt;
    ROM:111260                 cmpb    R0, #77 ; '?'&lt;br /&gt;
    ROM:111264                 blos    sub_111272&lt;br /&gt;
    ROM:111266                 bis     @#22556, R0&lt;br /&gt;
    ROM:111272 ; --------------- S U B R O U T I N E ---------------------------------------&lt;br /&gt;
    ROM:111272 &lt;br /&gt;
    ROM:111272 &lt;br /&gt;
    ROM:111272 sub_111272:                             ; CODE XREF: ROM:111264�j&lt;br /&gt;
    ROM:111272                                         ; ROM:111744�P ...&lt;br /&gt;
    ROM:111272                 asl     R0&lt;br /&gt;
    ROM:111274                 mov     14142(R0), R1&lt;br /&gt;
    ROM:111300                 mov     10(R5), R0&lt;br /&gt;
    ROM:111304                 mov     #-770, R2&lt;br /&gt;
    ROM:111310                 mov     #-754, R3&lt;br /&gt;
    ROM:111314                 mov     @R5, @R2&lt;br /&gt;
    ROM:111316                 add     56(R5), PC&lt;br /&gt;
    ROM:111322                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111324                 mov     R4, @R3&lt;br /&gt;
    ROM:111326                 add     R0, @R2&lt;br /&gt;
    ROM:111330                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111332                 mov     R4, @R3&lt;br /&gt;
    ROM:111334                 add     R0, @R2&lt;br /&gt;
    ROM:111336                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111340                 mov     R4, @R3&lt;br /&gt;
    ROM:111342                 add     R0, @R2&lt;br /&gt;
    ROM:111344                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111346                 mov     R4, @R3&lt;br /&gt;
    ROM:111350                 add     R0, @R2&lt;br /&gt;
    ROM:111352                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111354                 mov     R4, @R3&lt;br /&gt;
    ROM:111356                 add     R0, @R2&lt;br /&gt;
    ROM:111360                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111362                 mov     R4, @R3&lt;br /&gt;
    ROM:111364                 add     R0, @R2&lt;br /&gt;
    ROM:111366                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111370                 mov     R4, @R3&lt;br /&gt;
    ROM:111372                 add     R0, @R2&lt;br /&gt;
    ROM:111374                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111376                 mov     R4, @R3&lt;br /&gt;
    ROM:111400                 add     R0, @R2&lt;br /&gt;
    ROM:111402                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111404                 mov     R4, @R3&lt;br /&gt;
    ROM:111406                 add     R0, @R2&lt;br /&gt;
    ROM:111410                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111412                 mov     R4, @R3&lt;br /&gt;
    ROM:111414                 add     R0, @R2&lt;br /&gt;
    ROM:111416                 movb    (R1)+, R4&lt;br /&gt;
    ROM:111420                 mov     R4, @R3&lt;br /&gt;
    ROM:111422                 inc     @R5&lt;br /&gt;
    ROM:111424                 dec     16(R5)&lt;br /&gt;
    ROM:111430                 bne     locret_111624&lt;br /&gt;
    ROM:111432                 mov     22(R5), @R5&lt;br /&gt;
    ROM:111436                 mov     4(R5), 16(R5)&lt;br /&gt;
    ROM:111444 &lt;br /&gt;
    ROM:111444 loc_111444:                             ; CODE XREF: ROM:114222�J&lt;br /&gt;
    ROM:111444                 add     #54, 32(R5) ; ','&lt;br /&gt;
    ROM:111452                 cmp     32(R5), 26(R5)&lt;br /&gt;
    ROM:111460                 bne     loc_111470&lt;br /&gt;
    ROM:111462                 mov     24(R5), 32(R5)&lt;br /&gt;
    ROM:111470 &lt;br /&gt;
    ROM:111470 loc_111470:                             ; CODE XREF: sub_111272+166�j&lt;br /&gt;
    ROM:111470                 add     @32(R5), @R5&lt;br /&gt;
    ROM:111474                 dec     20(R5)&lt;br /&gt;
    ROM:111500                 bne     locret_111624&lt;br /&gt;
    ROM:111502                 add     74(R5), PC&lt;br /&gt;
    ROM:111506                 br      loc_111626&lt;br /&gt;
    ROM:111510 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111510                 inc     20(R5)&lt;br /&gt;
    ROM:111514                 mov     #13, -(SP)&lt;br /&gt;
    ROM:111520                 add     #54, 30(R5) ; ','&lt;br /&gt;
    ROM:111526                 cmp     30(R5), #4670&lt;br /&gt;
    ROM:111534                 bne     loc_111544&lt;br /&gt;
    ROM:111536                 mov     #2500, 30(R5)&lt;br /&gt;
    ROM:111544 &lt;br /&gt;
    ROM:111544 loc_111544:                             ; CODE XREF: sub_111272+242�j&lt;br /&gt;
    ROM:111544                                         ; sub_111272+300�j&lt;br /&gt;
    ROM:111544                 mov     @#23170, R0&lt;br /&gt;
    ROM:111550                 beq     loc_111574&lt;br /&gt;
    ROM:111552                 bpl     loc_111556&lt;br /&gt;
    ROM:111554                 neg     R0&lt;br /&gt;
    ROM:111556 &lt;br /&gt;
    ROM:111556 loc_111556:                             ; CODE XREF: sub_111272+260�j&lt;br /&gt;
    ROM:111556                 cmp     R0, #14&lt;br /&gt;
    ROM:111562                 blos    loc_111614&lt;br /&gt;
    ROM:111564                 trap    0&lt;br /&gt;
    ROM:111566                 mov     @#23150, R5&lt;br /&gt;
    ROM:111572                 br      loc_111544&lt;br /&gt;
    ROM:111574 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111574 &lt;br /&gt;
    ROM:111574 loc_111574:                             ; CODE XREF: sub_111272+256�j&lt;br /&gt;
    ROM:111574                 clr     @#23164&lt;br /&gt;
    ROM:111600                 mov     #2, @#7134&lt;br /&gt;
    ROM:111606                 movb    #177, @23160 ; ''&lt;br /&gt;
    ROM:111614 &lt;br /&gt;
    ROM:111614 loc_111614:                             ; CODE XREF: sub_111272+270�j&lt;br /&gt;
    ROM:111614                 call    sub_113344&lt;br /&gt;
    ROM:111620                 add     (SP)+, @#23170&lt;br /&gt;
    ROM:111624 &lt;br /&gt;
    ROM:111624 locret_111624:                          ; CODE XREF: sub_111272+136�j&lt;br /&gt;
    ROM:111624                                         ; sub_111272+206�j&lt;br /&gt;
    ROM:111624                 return  &lt;br /&gt;
    ROM:111626 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:111626 &lt;br /&gt;
    ROM:111626 loc_111626:                             ; CODE XREF: sub_111272+214�j&lt;br /&gt;
    ROM:111626                 jmp     loc_114316&lt;br /&gt;
    ROM:114316 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:114316 &lt;br /&gt;
    ROM:114316 loc_114316:                             ; CODE XREF: sub_111272+334�J&lt;br /&gt;
    ROM:114316                 clr     R0&lt;br /&gt;
    ROM:114320                 jmp     loc_115720&lt;br /&gt;
    ROM:115720 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:115720 &lt;br /&gt;
    ROM:115720 loc_115720:                             ; CODE XREF: ROM:114320�J&lt;br /&gt;
    ROM:115720                 sub     @32(R5), @R5&lt;br /&gt;
    ROM:115724                 mov     12(R5), 20(R5)&lt;br /&gt;
    ROM:115732                 sub     R0, 20(R5)&lt;br /&gt;
    ROM:115736                 mul     #54, R0 ; ','&lt;br /&gt;
    ROM:115742                 add     30(R5), R1&lt;br /&gt;
    ROM:115746                 add     74(R5), PC&lt;br /&gt;
    ROM:115752                 br      loc_115766&lt;br /&gt;
    ROM:115766 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:115766 &lt;br /&gt;
    ROM:115766 loc_115766:                             ; CODE XREF: ROM:115752�j&lt;br /&gt;
    ROM:115766                 mov     R1, 32(R5)&lt;br /&gt;
    ROM:115772                 add     @R1, @R5&lt;br /&gt;
    ROM:115774                 return  &lt;br /&gt;
    ROM:114216 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:114216 &lt;br /&gt;
    ROM:114216 loc_114216:                             ; CODE XREF: sub_114310+4�j&lt;br /&gt;
    ROM:114216                 sub     @32(R5), @R5&lt;br /&gt;
    ROM:114222                 jmp     loc_111444&lt;br /&gt;
    ROM:114222 ; ---------------------------------------------------------------------------&lt;br /&gt;
    ROM:114310 ; --------------- S U B R O U T I N E ---------------------------------------&lt;br /&gt;
    ROM:114310 &lt;br /&gt;
    ROM:114310 &lt;br /&gt;
    ROM:114310 sub_114310:                             ; CODE XREF: ROM:112030�P&lt;br /&gt;
    ROM:114310                 call    sub_114336&lt;br /&gt;
    ROM:114314                 br      loc_114216&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 10:10, 15 March 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
== 2007/03/14 ==&lt;br /&gt;
Сегодня сделал спрайтовый вывод, так-же известный как символьный вывод. Где-то побита математика -- явно не правильно рассчитывается начало символа в фонте (не только смещено на половину но и не правильный символ). Причем судя по цвету -- сообщение об ошибке тестирования.&lt;br /&gt;
&lt;br /&gt;
смотри картинку:&lt;br /&gt;
[[Image:uknc_progress.png|мой прогресс]] &lt;br /&gt;
--[[User:Felix|Felix]] 23:33, 14 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1703</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1703"/>
		<updated>2007-10-15T08:24:35Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Старые новости архивируются здесь: [[Uknc notes]].&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1702</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1702"/>
		<updated>2007-10-15T08:12:28Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: /* Последние новости */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 04:12, 15 October 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBTL-20071015.png]]&lt;br /&gt;
&lt;br /&gt;
Небольшие изменения в интерфейсе:&lt;br /&gt;
* Переключатель режима экрана: View|Color Screen и View|Grayscale Screen&lt;br /&gt;
* В строке состояния индикаторы дисководов, пока текстовые. Нажатие на индикатор работает так же как и команда в меню Emulator.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta2.zip&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:02, 5 July 2007 (EDT) ===&lt;br /&gt;
Отладочный режим в разрешении 1024 &amp;amp;times; 768 выглядит пока не очень, но мы над этим работаем…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070705.png|256px]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 03:34, 4 July 2007 (EDT) ===&lt;br /&gt;
После 3-месячного перерыва вновь возвращаюсь к работе над проектом. Дописывается инсталлятор, надеюсь в скором времени выдать первую публичную версию. Кстати, благодаря Феликсу у нас появилась эмуляция звука.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:55, 31 March 2007 (EDT) ===&lt;br /&gt;
Обращаю ваше внимание на появление [[UKNCBTL FAQ|FAQ]] по эмулятору.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Felix|Felix]] 19:27, 28 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Ну вот мы и загрузились!!! огромное спасибо Alex_K за консультации :)&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_loaded.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_disk_basic.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 08:18, 27 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Феликс провел перетряску кода процессора, в результате чего мы сегодня имеем работающий Бейсик Вильнюс!&amp;lt;br/&amp;gt;&lt;br /&gt;
Мой скромный вклад состоит в программировании обращений к кассете ПЗУ и исправлении нескольких багов…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070327.png]]&lt;br /&gt;
&lt;br /&gt;
Спасибо Alex_K за консультации и код. Спасибо Арсению за время и силы, потраченные на получение дампа кассеты ПЗУ.&lt;br /&gt;
&lt;br /&gt;
P.S. Если кто интересуется процессом загрузки из картриджа ПЗУ — дизасм тут: [[Uknc ROM Basic boot]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Эта страница будет обновляться по мере разработки эмулятора.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=File:UkncBTL-20071015.png&amp;diff=1701</id>
		<title>File:UkncBTL-20071015.png</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=File:UkncBTL-20071015.png&amp;diff=1701"/>
		<updated>2007-10-15T08:07:58Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc&amp;diff=1700</id>
		<title>Uknc</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc&amp;diff=1700"/>
		<updated>2007-10-01T09:00:56Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;font-size:120%&amp;quot;&amp;gt;Добро пожаловать на страницу эмулятора УКНЦ -- '''UKNC Back to Life''' !&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.8em;margin-bottom:0.8em&amp;quot;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border:1px solid #CCF7CC;background:#EEFFEE&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#EEFFEE&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''Эмулятор'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.felixl.com/forum/ Форум]&amp;amp;nbsp;- [[uknc notes|Заметки по УКНЦ]]&amp;amp;nbsp;- [[uknc authors|Авторы]]&amp;amp;nbsp;- [[UKNCBTL_FAQ|FAQ]]&amp;amp;nbsp;- [[UKNCBTL How to use|readme]]&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;border:1px solid #DDDDF7;background:#F7F7FF&amp;quot;|&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;background:#F7F7FF&amp;quot;&lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|style=&amp;quot;font-size:95%&amp;quot;|'''УКНЦ'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Uknc ROM disasm|Листинги ПЗУ]]&amp;amp;nbsp;- [[uknc info|Вся информация по УКНЦ]] &amp;amp;nbsp; - [[uknc software|Архив программ УКНЦ]]&amp;amp;nbsp; &lt;br /&gt;
&amp;lt;!----------------------------------------------&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
== Последние новости ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:00, 1 October 2007 (EDT) ===&lt;br /&gt;
Прошу извинить всех кому пришлось ждать, чтобы попробовать эмулятор.&lt;br /&gt;
В силу нехватки времени за последние пару месяцев прогресса нет. Поэтому выкладываю пока как есть, т.е. ту же версию что ушла первым бета-тестерам.&lt;br /&gt;
&lt;br /&gt;
http://3do-scene.com/nzeemin/UKNCBTL-beta.zip&lt;br /&gt;
&lt;br /&gt;
''It's beta, because it's beta than nothn'…''&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 13:47, 14 July 2007 (EDT) ===&lt;br /&gt;
[[Image:UkncBtl-setup.png]]&lt;br /&gt;
&lt;br /&gt;
На бета-тестирование можно записаться тут:&lt;br /&gt;
http://nzeemin.livejournal.com/195647.html&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 02:02, 5 July 2007 (EDT) ===&lt;br /&gt;
Отладочный режим в разрешении 1024 &amp;amp;times; 768 выглядит пока не очень, но мы над этим работаем…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070705.png|256px]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 03:34, 4 July 2007 (EDT) ===&lt;br /&gt;
После 3-месячного перерыва вновь возвращаюсь к работе над проектом. Дописывается инсталлятор, надеюсь в скором времени выдать первую публичную версию. Кстати, благодаря Феликсу у нас появилась эмуляция звука.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 05:55, 31 March 2007 (EDT) ===&lt;br /&gt;
Обращаю ваше внимание на появление [[UKNCBTL FAQ|FAQ]] по эмулятору.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Felix|Felix]] 19:27, 28 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Ну вот мы и загрузились!!! огромное спасибо Alex_K за консультации :)&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_loaded.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Uknc_disk_basic.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nzeemin|NZeemin]] 08:18, 27 March 2007 (EDT) ===&lt;br /&gt;
&lt;br /&gt;
Феликс провел перетряску кода процессора, в результате чего мы сегодня имеем работающий Бейсик Вильнюс!&amp;lt;br/&amp;gt;&lt;br /&gt;
Мой скромный вклад состоит в программировании обращений к кассете ПЗУ и исправлении нескольких багов…&lt;br /&gt;
&lt;br /&gt;
[[Image:UkncBTL-20070327.png]]&lt;br /&gt;
&lt;br /&gt;
Спасибо Alex_K за консультации и код. Спасибо Арсению за время и силы, потраченные на получение дампа кассеты ПЗУ.&lt;br /&gt;
&lt;br /&gt;
P.S. Если кто интересуется процессом загрузки из картриджа ПЗУ — дизасм тут: [[Uknc ROM Basic boot]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Эта страница будет обновляться по мере разработки эмулятора.&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_Resources&amp;diff=1699</id>
		<title>Uknc Resources</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_Resources&amp;diff=1699"/>
		<updated>2007-07-17T19:24:13Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Книга '''Ресурсы УК НЦ''', автор — Влад Жигалов, написана в 1993 году.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
В доаспирантское время меня торкнуло написать одну книжку, и даже написал я её, но не издал. Книжка была посвящена одной модели компьютера, заполонившего в конце 80-х школьные и институтские классы информатики — УКНЦ (к слову сказать, его спроектировали в Зеленограде). К моменту написания книга устарела вместе с объектом описания, как я потом понял, но опыт для меня был замечательный — я попробовал написать весёлым и доступным языком про системное нутро не совсем обычного компьютера. Мне кажется, местами даже получилось. Чтобы её написать, мне пришлось продизассемблировать (сорри за ругань) 32 килобайта машинных кодов, я делал это вручную, и мои институтские друзья в общаге бауманки, видя меня уткнувшимся в ряд марширующих по экрану восьмеричных чисел, просто офигевали и веселились :).&lt;br /&gt;
&amp;lt;p align=&amp;quot;right&amp;quot;&amp;gt;[http://whatisyourname.livejournal.com/270009.html Влад Жигалов, 2 августа 2005 г.]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Содержание ==&lt;br /&gt;
* [[Uknc Resources pre|Предисловие]]&lt;br /&gt;
* Часть 1. ЭКРАННЫЙ ВЫВОД&lt;br /&gt;
** [[Uknc Resources chapter1|Глава 1. Аппаратные средства вывода на экран]]&lt;br /&gt;
** [[Uknc Resources chapter2|Глава 2. Общие принципы экранного вывода в УКНЦ]]&lt;br /&gt;
** [[Uknc Resources chapter3|Глава 3. Стандартный экранный вывод]]&lt;br /&gt;
** [[Uknc Resources chapter4|Глава 4. Встроенная графика]]&lt;br /&gt;
** [[Uknc Resources chapter5|Глава 5. Использование сетевого таймера]]&lt;br /&gt;
** [[Uknc Resources chapter6|Глава 6. Многоэкранный вывод]]&lt;br /&gt;
* Часть 2. КЛАВИАТУРА&lt;br /&gt;
** [[Uknc Resources chapter7|Глава 7. Клавиатура на аппаратном уровне]]&lt;br /&gt;
** [[Uknc Resources chapter8|Глава 8. Система обслуживания клавиатуры]]&lt;br /&gt;
** [[Uknc Resources chapter9|Глава 9. Практические рекомендации]]&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1698</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1698"/>
		<updated>2007-07-17T19:13:11Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RAFOS sysmac]] — РАФОС. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА. ТОМ 3 КНИГА 2 ЧАСТЬ 2&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Здесь будет собрана вся известная информация об УКНЦ&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 08:59, 21 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_RAFOS_sysmac&amp;diff=1697</id>
		<title>Uknc RAFOS sysmac</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_RAFOS_sysmac&amp;diff=1697"/>
		<updated>2007-07-17T19:11:49Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 УТВЕРЖДЕН&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СМ ЭВМ&lt;br /&gt;
  ОПЕРАЦИОННАЯ СИСТЕМА С РАЗДЕЛЕНИЕМ ФУНКЦИЙ&lt;br /&gt;
&lt;br /&gt;
    Р А Ф О С&lt;br /&gt;
&lt;br /&gt;
     СИСТЕМНЫЕ БИБЛИОТЕКИ&lt;br /&gt;
   СИСТЕМНАЯ МАКРОБИБЛИОТЕКА&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
    ТОМ 3  КНИГА 2  ЧАСТЬ 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЛИСТОВ  55&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   - 2 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			АННОТАЦИЯ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ВСЕ РАССМАТРИВАЕМЫЕ ЗДЕСЬ МАКРОКОМАНДЫ ДЕЛЯТСЯ НА&lt;br /&gt;
ТРИ ТИПА В СООТВЕТСТВИИ СОС ВОИМИ ФУНКЦИЯМИ:&lt;br /&gt;
&lt;br /&gt;
 - МАКРОКОМАНДЫ ДЛЯ РАБОТЫ С ФАЙЛАМИ;&lt;br /&gt;
&lt;br /&gt;
 - МАКРОКОМАНДЫ ДЛЯ ПЕРЕДАЧИ ДАННЫХ;&lt;br /&gt;
&lt;br /&gt;
 - МАКРОКОМАНДЫ ОБЩЕГОО НАЗНАЧЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
 В ОТДЕЛЬНУЮ ГРУППУ МОЖНО ВЫДЕЛИТЬ МАКРОКОМАНДЫ,&lt;br /&gt;
КОТОРЫЕ ВКЛЮЧЕНЫ В СИСИТЕМНУЮ БИБЛИОТЕКУ МАКРОКОМАНД, НО&lt;br /&gt;
НЕ ГЕНЕРИРУЮТ КОДОВ ЕМТ. ОНИ ПОМЕЩЕНЫ В ОПИСАНИЕ МАКРО-&lt;br /&gt;
КОМАНД ОБЩЕГО НАЗНАЧЧЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
 СПИСОК СИСТЕМНЫХ МАКРОКОМАНД С КРАТКИМ ОПИСАНИЕМ&lt;br /&gt;
ФУНКЦИЙ ПРИВЕДЕН В Т. 2  КН. 6.  Ч. 3.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
   - 3 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			СОДЕРЖАНИЕ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 АННОТАЦИЯ       2&lt;br /&gt;
&lt;br /&gt;
1. СИСТЕМНЫЕ МАКРОКОМАНДЫ ОБРАБОТКИ ФАЙЛОВ    4&lt;br /&gt;
&lt;br /&gt;
1.1.  .CHCOPY (ТОЛЬКО ДЛЯ FB- И ХМ-МОНИТОРОВ)   4&lt;br /&gt;
1.2.  .CLOSE						 5&lt;br /&gt;
1.3.		.DELETE						 5&lt;br /&gt;
1.4.		.ENTER						 6&lt;br /&gt;
1.5.		.LOOKUP						 8&lt;br /&gt;
1.6.		.PURGE						 8&lt;br /&gt;
1.7.		.RENAME						 9&lt;br /&gt;
1.8.		.REOPEN						 9&lt;br /&gt;
1.9.		.SAVESTATUS					10&lt;br /&gt;
&lt;br /&gt;
2.	СИСТЕМНЫЕ МАКРОКОМАНДЫ ПЕРЕДАЧИ ДАННЫХ   12&lt;br /&gt;
&lt;br /&gt;
2.1.  .PRINT						12&lt;br /&gt;
2.2.		.RCVD/.RCVDC/.RCVDW (ТОЛЬКО ДЛЯ FB- И&lt;br /&gt;
  ХМ-МОНИТОРОВ)     12&lt;br /&gt;
2.2.1.    .RCVD						12&lt;br /&gt;
2.2.2.		  .RCVDC					13&lt;br /&gt;
2.2.3.		  .RCVDW					13&lt;br /&gt;
2.3.		.READ/.READC/.READW				14&lt;br /&gt;
2.3.1.		  .READ						14&lt;br /&gt;
2.3.2.		  .READC					15&lt;br /&gt;
2.3.3.		  .READW					15&lt;br /&gt;
2.4.		.SDAT/.SDATC/.SDATW				16&lt;br /&gt;
2.4.1.		  .SDAT						16&lt;br /&gt;
2.4.2.		  .SDATC					16&lt;br /&gt;
2.4.3.		  .SDATW					17&lt;br /&gt;
2.5.		.SPFUN						18&lt;br /&gt;
2.6.		.TTYIN/.TTINR					20&lt;br /&gt;
2.7.		.TTYOUT/.TTOUTR					20&lt;br /&gt;
2.8.		.WRITE/.WRITC/.WRITW				21&lt;br /&gt;
2.8.1.		  .WRITE					22&lt;br /&gt;
2.8.2.		  .WRITC					22&lt;br /&gt;
2.8.3.		  .WRITW					23&lt;br /&gt;
&lt;br /&gt;
3.	СИСТЕМНЫЕ МАКРОКОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ  24&lt;br /&gt;
&lt;br /&gt;
3.1.  .CDFN						24&lt;br /&gt;
3.2.		.CHAIN						25&lt;br /&gt;
3.3.		.CMKT						26&lt;br /&gt;
3.4.		.CNFCF						26&lt;br /&gt;
3.5.		.CNTXSW (ТОЛЬК ДЛЯ FB-И ХМ-МОНИТОРОВ)  27&lt;br /&gt;
3.6.  .CSIGEN						28&lt;br /&gt;
3.7.		.CSISPC						29&lt;br /&gt;
3.7.1.		  ИНФООРМАЦИЯ О КЛЮЧАХ    30&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3.8.  .CSTAT (ТОЛЬКО ДЛЯ FB- И ХМ-МОНИТОРОВ)  31&lt;br /&gt;
3.9.  .CTRLT						31&lt;br /&gt;
3.10.		.DATE						32&lt;br /&gt;
3.11.		.DBLK						33&lt;br /&gt;
3.12.		.DEVICE (ТОЛЬКО ДЛЯ FB- И ХМ-МОНИТОРОВ)  33&lt;br /&gt;
3.13.  .DIR						34&lt;br /&gt;
3.14.		.DSTATUS					34&lt;br /&gt;
3.15.		.EXIT						34&lt;br /&gt;
3.16.		.PETSH						35&lt;br /&gt;
3.17.		.GTIM						37&lt;br /&gt;
3.18.		.GTJB						37&lt;br /&gt;
3.19.		.GTLIN						38&lt;br /&gt;
3.20.		.GVAL						38&lt;br /&gt;
3.21.		.HERR						39&lt;br /&gt;
3.22.		.PRESET						39&lt;br /&gt;
3.23.		.INTEN						39&lt;br /&gt;
3.24.		.JSWDF						40&lt;br /&gt;
3.25.		.LOCK						40&lt;br /&gt;
3.26.		.MPPS						40&lt;br /&gt;
3.27.		.MRKT						41&lt;br /&gt;
3.28.		.MTPS						42&lt;br /&gt;
3.29.		.MWAIT (ТОЛЬКО ДЛЯ FB-И ХМ-МОНИТОРОВ)  42&lt;br /&gt;
3.30.  .POP						43&lt;br /&gt;
3.31.		.PROTECT (ТОЛЬКОО ДЛЯ FB-И ХМ-МОНИТОРОВ) 43&lt;br /&gt;
3.32.  .PUSH						43&lt;br /&gt;
3.33.		.QSET						44&lt;br /&gt;
3.34.		.RCTRLO						44&lt;br /&gt;
3.35.		.RELEAS						45&lt;br /&gt;
3.36.		.ROFDF						45&lt;br /&gt;
3.37.		.RSUM (ТОЛЬКО ДЛЯ FB-И ХМ-МОНИТОРОВ)  45&lt;br /&gt;
3.38.  .SCCA						46&lt;br /&gt;
3.39.		.SCMDF						46&lt;br /&gt;
3.40.		.SERR						47&lt;br /&gt;
3.41.		.SETTOP						48&lt;br /&gt;
3.42.		.SFPA						48&lt;br /&gt;
3.43.		.SPND (ТОЛЬКО ДЛЯ FB-И ХМ-МОНИТОРОВ)  49&lt;br /&gt;
3.44.		.SRESET						50&lt;br /&gt;
3.45.		.SYNCN						50&lt;br /&gt;
3.46.		.TLOCK (ТОЛЬКО ДЛЯ FX-И ХМ-МОНИТОРОВ)  51&lt;br /&gt;
3.47.  .TRPSET						52&lt;br /&gt;
3.48.		.TWAIT						52&lt;br /&gt;
3.49.		.UNLOCK						53&lt;br /&gt;
3.50.		.UNPROTECT (ТОЛЬКО ДЛЯ FX-И ХМ-МОНИТОРОВ) 53&lt;br /&gt;
3.51.		.USBDF						54&lt;br /&gt;
3.52.		.WAIT						54&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
			- 4 -&lt;br /&gt;
&lt;br /&gt;
	1. СИСТЕМНЫЕ МАКРОКОМАНДЫ ОБРАБОТКИ ФАЙЛОВ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 1.1. .CHCOPY (ТОЛЬКО ДЛЯ FB- И МХ- МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 СИСТЕМНАЯ МАКРОКОМАНДА .CHCOPY ОТКРЫВАЕТ НОВЫЙ КАНАЛ&lt;br /&gt;
ДЛЯ ОПЕРАЦИИ ВВОДА, ЛОГИЧЕСКИ СВЯЗЫВАЯ ЕГО С ФАЙЛОМ, В&lt;br /&gt;
ДАННЫЙ МОМЕНТ НАХОДЯЩИМСЯ В ОТКРЫТОМ СОСТОЯНИИ В ДРУГОМ&lt;br /&gt;
РАЗДЕЛЕ.&lt;br /&gt;
 МАКРОКОМАНДУ .CHCOPY МОЖНО ПРИМЕНЯТЬ КАК ДЛЯ&lt;br /&gt;
ФОНОВОГО РЕЖИМА, ТАК И ДЛЯ ОПЕРАТИВНОГО, НО ОНА ДОЛЖНА&lt;br /&gt;
ВЫПОЛНЯТЬСЯ ДО ИСПОЛЬЗОВАНИЯ СИСТЕМНЫХ МАКРОКОМАНД .READ&lt;br /&gt;
И .WRITE.&lt;br /&gt;
	ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
&lt;br /&gt;
                    .CHCOPY     AREA,CHAN,OCHAN&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - ОБЛАСТЬ ИЗ ДВУХ СЛОВ ДЛЯ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
CHAN    - КАНАЛ, КОТОРЫЙ БУДЕТ ИСПОЛЬЗОВАТЬСЯ ПРОГРАММОЙ&lt;br /&gt;
          ДЛЯ СЧИТЫВАНИЯ ДАННЫХ;&lt;br /&gt;
OCHAN   - НОМЕР КАНАЛА В ДРУГОЙ ПРОГРАММЕ, КОТОРЫЙ БУДЕТ&lt;br /&gt;
          КОПИРОВАТЬСЯ.&lt;br /&gt;
&lt;br /&gt;
 ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
                    !------------!-----------!&lt;br /&gt;
R0  =&amp;gt;  AREA        !    13      !   CHAN    !&lt;br /&gt;
                    !------------!-----------!&lt;br /&gt;
                    !          OCHAN         !&lt;br /&gt;
                    !------------------------!&lt;br /&gt;
&lt;br /&gt;
	ЕСЛИ КАНАЛ OCHAN В ОДНОЙ ПРОГРАММЕ БЫЛ ОТКРЫТ&lt;br /&gt;
ПОСРЕДСТВОМ МАКРОКОМАНДЫ .ENTER ПРИ СОЗДАНИИ ФАЙЛА FILE1,&lt;br /&gt;
ТО ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .CHCOPY В ДРУГОЙ&lt;br /&gt;
ПРОГРАММЕ КАНАЛ CHAN БУДЕТ СВЯЗАН С ФАЙЛОМ FILE1.&lt;br /&gt;
        ЕСЛИ В ЭТОМ СЛУЧАЕ ВТОРАЯ ПРОГРАММА ВЫПОЛНИТ&lt;br /&gt;
МАКРОКОМАНДУ .CLOSE, TO FILE1 НЕ СТАНЕТ ПОСТОЯННЫМ&lt;br /&gt;
(ОСТАНЕТСЯ ВРЕМЕННЫМ). ДЛЯ ТО;ГО, ЧТОБЫ ФАЙЛ СТАЛ&lt;br /&gt;
ПОСТОЯННЫМ, ПЕРВАЯ ПРОГРАММА ТОЖЕ ДОЛЖНА ВЫПОЛНИТЬ&lt;br /&gt;
МАКРОКОМАНДУ .CLOSE.&lt;br /&gt;
	МАКРОКОМАНДА .CHCOPY ДОПУСТИМА ТОЛЬКО ДЛЯ УСТРОЙСТВ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
С КАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ; ПРИ ИСПОЛЬЗОВАНИИ ДРУГИХ&lt;br /&gt;
УСТРОЙСТВ ОНА ИГНОРИРУЕТСЯ.&lt;br /&gt;
 П_P_И_M_E_Ч_A_H_И_E. ЧТОБЫ ЗАКРЫТЬ КАНАЛ, ОТКРЫТЫЙ С&lt;br /&gt;
ПОМОЩЬЮ .CHCOPY, НУЖНО ПРИМЕНИТЬ МАКРОКОМАНДЫ .CLOSE ЛИБО&lt;br /&gt;
.PURGE.&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
         0          НЕТ ДРУГОЙ ПРОГРАММЫ, КАНАЛОВ&lt;br /&gt;
                    ОПРЕДЕЛЕНО НЕДОСТАТОЧНО ИЛИ УКАЗАННЫЙ&lt;br /&gt;
                    КАНАЛ (OCHAN) НЕ ОТКРЫТ;&lt;br /&gt;
&lt;br /&gt;
         1          КАНАЛ CHAN УЖЕ ОТКРЫТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ОПЕРАТИВНОЙ ПРОГРАММЕ КАНАЛ 1 ОТКРЫТ ДЛЯ ФАЙЛА&lt;br /&gt;
PRINT.SAV. В ФОНОВОЙ ПРОГРАММЕ МАКРОКОМАНДА .CHCOPY&lt;br /&gt;
КОПИРУЕТ ЭТОТ ФАЙЛ ПО КАНАЛУ 0, А ЗАТЕМ ФАЙЛ СЧИТЫВАЕТСЯ&lt;br /&gt;
В ОБЛАСТЬ BUFF И РАСПЕЧАТЫВАЕТСЯ НА СИСТЕМНЫЙ ТЕРМИНАЛ,&lt;br /&gt;
СКОПИРОВАТЬ ЭТОТ ФАЙЛ ПО КАНАЛУ 2 НЕЛЬЗЯ, Т.К. ЭТОТ КАНАЛ&lt;br /&gt;
БЫЛ ОТКРЫТ РАНЕЕ.&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММА, РАБОТАЮЩАЯ В ФОНОВОМ РАЗДЕЛЕ:&lt;br /&gt;
        .MCALL  .PRINT,.EXIT,.LOOKUP,.CHCOPY,.SDATW&lt;br /&gt;
        .MCALL  .PURGE,.READW&lt;br /&gt;
ST:     .PURGE  #0                 ;ОЧИСТИТЬ КАКНАЛ 0&lt;br /&gt;
        .CHCOPY #AREA,,#0,#1       ;СКОПИРОВАТЬ ФАЙЛ&lt;br /&gt;
                                   ;С КАНАЛА 0 ПО КАНАЛУ 1&lt;br /&gt;
         BCS    NCH&lt;br /&gt;
        .READW  #AREA,#0,#BUFF,#25,#0,  ;ДОЧИТАТЬ ФАЙЛ&lt;br /&gt;
         BCS    NRE&lt;br /&gt;
        .PRINT  #BUFF              ;РАСПЕЧАТАТЬ ФАЙЛ&lt;br /&gt;
        .LOOKUP #AREA,#2,#FILE1    ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
                                   ;ПО КАНАЛУ 2&lt;br /&gt;
         BCS    NLO&lt;br /&gt;
        .CHCOPY #AREA,#2,#1        ;СКОПИРОВАТЬ ФАЙЛ&lt;br /&gt;
                                   ;С КАНАЛА 1 ПО КАНАЛУ 2&lt;br /&gt;
         BCS    NCH&lt;br /&gt;
        .PRINT  #MSG1&lt;br /&gt;
        .SDATW  #AREA,#MSG,#COUNT  ;ПЕРЕДАТЬ СООБЩЕНИЕ В&lt;br /&gt;
                                   ;ОПЕРАТИВНУЮ ПРОГРАММУ&lt;br /&gt;
         BCS    NSD&lt;br /&gt;
        .EXIT&lt;br /&gt;
NSD:    .PRINT  #NOS&lt;br /&gt;
        .EXIT&lt;br /&gt;
NSH:    .PRINT  #NOCH&lt;br /&gt;
        .EXIT&lt;br /&gt;
NRE:    .PRINT  #NORE&lt;br /&gt;
        .EXIT&lt;br /&gt;
NLO:    .PRINT  #NOLO&lt;br /&gt;
        .EXIT&lt;br /&gt;
NOS:    .ASCIZ  /НЕТ ЗАДАНИЯ/&lt;br /&gt;
&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 5 -&lt;br /&gt;
&lt;br /&gt;
NOCH:   .ASCIZ  /ОШИБКА .CHCOPY/&lt;br /&gt;
NORE:   .ASCIZ  /ОШИБКА .READ/&lt;br /&gt;
NOLO:   .ASCIZ  /ОШИБКА .LOOKUP/&lt;br /&gt;
MSG:    .ASCIZ  /ТИК-ТОК/           ;ТЕКСТ ДЛЯ ОПЕРАТИВНОЙ&lt;br /&gt;
                                    ;ПРОГРАММЫ&lt;br /&gt;
COUNT = .-MSG&lt;br /&gt;
MSG1:	.ASCIZ  /КАНАЛ ЗАНЯТ/&lt;br /&gt;
        .ЕЖЕН&lt;br /&gt;
АРЕА:   .БЛКВ   10&lt;br /&gt;
FILE1:  .RAD50  /SY PRINT SAV/      ;ИМЯ УСТРОЙСТВА И ФАЙЛА&lt;br /&gt;
BUFF:   .BLKW   25&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
ПРОГРАММА, РАБОТАЮЩАЯ В ОПЕРАТИВНОМ РАЗДЕЛЕ:&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .LOOKUP,.RCVDW,.EXIT,.PRINT&lt;br /&gt;
START1: .LOOKUP #AREA,#1,#FILE      ;ОТКРЫТЬ ФАЙЛ ПО КАНАЛУ 1&lt;br /&gt;
         BCS    NLOO&lt;br /&gt;
        .RCVDW  #AREA,#TEXT,#20     ;ПРИНЯТЬ СТРОКУ&lt;br /&gt;
         BCS    NRS&lt;br /&gt;
        .PRINT  #TEXT+2             ;ПЕЧАТЬ ПОЛУЧЕННОГО СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
NRC:    .PRINT  #MSG                ;ОШИБКА .RCVDW&lt;br /&gt;
        .EXIT&lt;br /&gt;
NLOO:   .PRINT  #MSG1               ;ОШИБКА .LOOKUP&lt;br /&gt;
        .EXIT&lt;br /&gt;
FILE:   .RAD50  /SY/&lt;br /&gt;
        .RAD50  /PRINT/&lt;br /&gt;
        .RAD50  /SAV/&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
TEXT:   .BLKW   20&lt;br /&gt;
MSG:    .ASCIZ  /НЕТ ЗАДАНИЯ/&lt;br /&gt;
MSG1:   .ASCIZ   /ОШИБКА LOOKUP/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START1&lt;br /&gt;
&lt;br /&gt;
                        1.2. .CLOSE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        СИСТЕМНАЯ МАКРОКОМАНДА .CLOSE ЗАВЕРШАЕТ РАБОТУ С&lt;br /&gt;
УКАЗАННЫМ КАНАЛОМ (ЗАКРЫВАЕТ КАНАЛ) И ТЕМ САМЫМ&lt;br /&gt;
ОСВОБОЖДАЕТ ЕГО ДЛЯ ДРУГИХ ОПЕРАЦИЙ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CLOSE  CHAR&lt;br /&gt;
ГДЕ&lt;br /&gt;
CHAN - НОМЕР КАНАЛА, КОТОРЫЙ НЕОБХОДИМО ЗАКРЫТЬ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                         !-------!--------!&lt;br /&gt;
RO =&amp;gt;                    !   6   !  CHAN  !&lt;br /&gt;
                         !-------!--------!&lt;br /&gt;
&lt;br /&gt;
        ЕСЛИ УКАЗАННЫЙ КАНАЛ CHAN НЕ ОТКРЫТ, МАКРОКОМАНДА&lt;br /&gt;
ИГНОРИРУЕТСЯ.&lt;br /&gt;
        МАКРОКОМАНДА .CLOSE ПРЕДНАЗНАЧЕНА ДЛЯ ФАЙЛА,&lt;br /&gt;
ОТКРЫТОГО С ПОМОЩЬЮ МАКРОКОМАНДЫ .ENTER. В РЕЗУЛЬТАТЕ ЕЕ&lt;br /&gt;
ВЫПОЛНЕНИЯ УКАЗАННЫЙ ФАЙЛ СТАНОВИТСЯ ПОСТОЯННЫМ НА&lt;br /&gt;
УСТРОЙСТВЕ, СООТВЕТСТВУЮЩЕМ УКАЗАННОМУ КАНАДУ, И В&lt;br /&gt;
КАТАЛОГ ЗАНОСИТСЯ ИНФОРМАЦИЯ О НЕМ (ИМЯ, РАСШИРЕНИЕ, ДАТА&lt;br /&gt;
СОЗДАНИЯ). ПРИ ЭТОМ ФАЙЛ С ТАКИМ ЖЕ ИМЕНЕМ, УЖЕ ИМЕЮЩИЙСЯ&lt;br /&gt;
НА ЭТОМ УСТРОЙСТВЕ, ИЗ КАТАЛОГА ИСКЛЮЧАЕТСЯ.&lt;br /&gt;
        ДЛИНА ФАЙЛА, ЗАКРЫТОГО ПОСРЕДСТВОМ МАКРОКОМАНДЫ&lt;br /&gt;
.CLOSE, ОПРЕДЕЛЯЕТСЯ ЕГО ВЕРХНИМ БЛОКОМ. НАПРИМЕР, ЕСЛИ&lt;br /&gt;
ВЕРХНИЙ БЛОК РАВЕН 0, ТО ДЛИНА ФАЙЛА РАВНА 1. ЕСЛИ ДЛИНА&lt;br /&gt;
ФАЙЛА МЕНЬШЕ РАЗМЕРА ОБЛАСТИ, КОТОРАЯ ОТВОДИТСЯ ПРИ&lt;br /&gt;
ИСПОЛЬЗОВАНИИ МАКРОКОМАНДЫ .ENTER, ТО ОСТАВШИЕСЯ БЛОКИ&lt;br /&gt;
БУДУТ ПРЕДСТАВЛЯТЬ СОБОЙ ПУСТУЮ ОБЛАСТЬ НА УСТРОЙСТВЕ,&lt;br /&gt;
ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .CLOSE.&lt;br /&gt;
        ФАЙЛ, ОТКРЫТЫЙ С ПОМОЩЬЮ .LOOKUP, НЕ ТРЕБУЕТ НИКАКИХ&lt;br /&gt;
ПРЕОБРАЗОВАНИЙ В КАТАЛОГЕ ПО МАКРОКОМАНДЕ .CLOSE, ПОЭТОМУ&lt;br /&gt;
НЕТ НЕОБХОДИМОСТИ В ИСПОЛЬЗОВАНИИ USR.&lt;br /&gt;
        ИСПОЛЬЗОВАНИЕ .CLOSE ОБЯЗАТЕЛЬНО ДЛЯ УСТРОЙСТВ С&lt;br /&gt;
ФАЙЛОВОЙ ОРГАНИЗАЦИЕЙ ТИПА МЛ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
П_P_И_М_Е_Ч_A_H_И_E. СЛЕДУЕТ ПОМНИТЬ, ЧТО ПРИ&lt;br /&gt;
ОТСУТСТВИИ ДРАЙВЕРА СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА В ПАМЯТИ,&lt;br /&gt;
ВОЗНИКАЕТ ОШИБКА МОНИТОРА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SPFUN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.3. .DELETE&lt;br /&gt;
&lt;br /&gt;
        МАКРОКОМАНДА .DELETE ИСКЛЮЧАЕТ ИМЯ ФАЙЛА С&lt;br /&gt;
УКАЗАННОГО УСТРОЙСТВА И В КАТАЛОГЕ ОСТАЕТСЯ ПУСТАЯ ЗАПИСЬ&lt;br /&gt;
&amp;lt;UNUSED&amp;gt; ТОГО ЖЕ РАЗМЕРА. ЭТА МАКРОКОМАНДА НЕДОПУСТИМА&lt;br /&gt;
ДЛЯ МЛ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .DELETE AREA,CHAN,DBLK,SEGNUM&lt;br /&gt;
ГДЕ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                            - 6 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AREA    - БЛОК АРГУМЕНТОВ ЕМТ ИЗ 3-Х СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
DBLK    - БЛОК УСТРОЙСТВА (СМ. Т.3 КН.2 Ч.1);&lt;br /&gt;
SEGNUM  - НОМЕР ФАЙЛА ПРИ ОПЕРАЦИЯХ С КАССЕТАМИ, ЕСЛИ ЭТОТ&lt;br /&gt;
          АРГУМЕНТ ПРОПУЩЕН, ЕМУ ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ 0.&lt;br /&gt;
        ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !-------!--------!&lt;br /&gt;
RO =&amp;gt;   AREA:           !   0   !  CHAN  !&lt;br /&gt;
                        !-------!--------!&lt;br /&gt;
                        !     DBLK       !&lt;br /&gt;
                        !----------------!&lt;br /&gt;
                        !    SEGNUM      !&lt;br /&gt;
                        !----------------!&lt;br /&gt;
&lt;br /&gt;
        МАКРОКОМАНДА .DELETE ИГНОРИРУЕТСЯ, ЕСЛИ УКАЗАНО&lt;br /&gt;
УСТРОЙСТВО С НЕФАЙЛОВОЙ СТРУКТУРОЙ.&lt;br /&gt;
        ДРАЙВЕР УСТРОЙСТВА, СОДЕРЖАЩЕГО ФАЙЛ, ДОЛЖЕН БЫТЬ&lt;br /&gt;
ЗАГРУЖЕН В ПАМЯТЬ К МОМЕНТУ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ.&lt;br /&gt;
&lt;br /&gt;
        П_P_M_E_Ч_A_H_И_E. КАНАЛ, УКАЗАННЫЙ В&lt;br /&gt;
МАКРОКОМАНДЕ, ДОЛЖЕН БЫТЬ СВОБОДЕН. КОГДА ВЫПОЛНЕНИЕ&lt;br /&gt;
МАКРОКОМАНДЫ ЗАВЕРШЕНО, КАНАЛ ОСВОБОЖДАЕТСЯ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
&lt;br /&gt;
         0      КАНАЛ ЗАНЯТ;&lt;br /&gt;
         1      ФАЙЛ В КАТАЛОГЕ УСТРОЙСТВА НЕ НАЙДЕН;&lt;br /&gt;
         2      НЕДОПУСТИМАЯ ОПЕРАЦИЯ&lt;br /&gt;
                ДЛЯ ДАННОГО УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
        .MCALL  .LOOKUP,.EXIT,.SRESET,.CSISPC&lt;br /&gt;
        .MCALL  .DELETE,.PRINT&lt;br /&gt;
         ERRWD = 52&lt;br /&gt;
ST:     .DELETE #AREA,#0,#FILE      ;УДАЛИТЬ ФАЙЛ ПО&lt;br /&gt;
                                    ;КАНАЛУ 0&lt;br /&gt;
         BCC    DE1&lt;br /&gt;
         JMP    NDE&lt;br /&gt;
DE1:    .PRINT  #MSG&lt;br /&gt;
        .LOOKUP #AREA,#3,#FILE1     ;ОТКРЫТЬ ФАЙЛ ПО&lt;br /&gt;
                                    ;КАНАЛУ 3&lt;br /&gt;
         BCS    NLO&lt;br /&gt;
        .PRINT #MSG1&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        .DELETE #AREA,#3,#FILE1     ;УДАЛИТЬ ЕГО&lt;br /&gt;
         BCS    NDE1&lt;br /&gt;
        .PRINT  #MSG2&lt;br /&gt;
DE2:    .DELETE #AREA,#4,#FILE2     ;УДАЛИТЬ ФАЙЛ ПО&lt;br /&gt;
                                    ;КАНАЛУ 4&lt;br /&gt;
         BCS    NDE1&lt;br /&gt;
        .PRINT  #MSG3&lt;br /&gt;
DE3:    .LOOKUP #AREA,#4,#FILE2&lt;br /&gt;
         BCS    NLO&lt;br /&gt;
        .PRINT #MSG1&lt;br /&gt;
        .EXIT&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
FILE:   .RAD50  /SY/&lt;br /&gt;
        .RAD50  /SYST/&lt;br /&gt;
        .RAD50  /MAC/&lt;br /&gt;
FILE1:  .RAD50  /SY ABC/&lt;br /&gt;
FILE2:  .RAD50  /SY DEF MAC/&lt;br /&gt;
NLO:    .PRINT  #NOLO&lt;br /&gt;
        .EXIT&lt;br /&gt;
NDE:    .PRINT  #NODE&lt;br /&gt;
        .EXIT&lt;br /&gt;
NDE1:   .TSTB   @#ERRWD             ;ОПРЕДЕЛЕНИЕ КОДА ОШИБКИ&lt;br /&gt;
         BNE    NDE&lt;br /&gt;
        .PRINT  #NODE1&lt;br /&gt;
         JMP    DE2&lt;br /&gt;
MSG3:   .ASCIZ  /BAD/&lt;br /&gt;
NODE:   .ASCIZ  /ФАЙЛ НЕ НАЙДЕН/&lt;br /&gt;
MSG:    .ASCIZ  /ФАЙЛ SYST.МАС УДАЛЕН/&lt;br /&gt;
МSG1:   .ASCIZ  /КАНАЛ ОТКРЫТ/&lt;br /&gt;
NOLO:   .ASCIZ  /ОШИБКА LOOKUP/&lt;br /&gt;
NODE1:  .ASCIZ   /КАНАЛ ЗАНЯТ/&lt;br /&gt;
MSG2:   .ASCIZ  /ФАЙЛ АБС УДАЛЕН/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.4. .ENTER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        МАКРОКОМАНДА .ENTER СОЗДАЕТ ВРЕМЕННЫЙ ФАЙЛ С&lt;br /&gt;
УКАЗАННЫМ ИМЕНЕМ НА ЗАДАННОМ УСТРОЙСТВЕ. УКАЗАННЫЙ НОМЕР&lt;br /&gt;
КАНАЛА СВЯЗЫВАЕТСЯ С ФАЙЛОМ.&lt;br /&gt;
        ФАЙЛ СТАНОВИТСЯ ПОСТОЯННЫМ ТОЛЬКО ПОСЛЕ ВЫПОЛНЕНИЯ&lt;br /&gt;
МАКРОКОМАНДЫ .CLOSE. ЕСЛИ СУЩЕСТВОВАЛ ПОСТОЯННЫЙ ФАЙЛ С&lt;br /&gt;
ТЕМ ЖЕ ИМЕНЕМ, ТО ОН ИСКЛЮЧАЕТСЯ, А ЭТО ИМЯ ПОЛУАЕТ&lt;br /&gt;
ВНОВЬ СОЗДАННЫЙ ФАЙЛ. ФАКТИЕСКАЯ ДЛИНА ФАЙЛА&lt;br /&gt;
ОПРЕДЕЛЯЕТСЯ ПРИ ВЫПОЛНЕНИИ .CLOSE.&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .ENTER RO СОДЕРЖИТ&lt;br /&gt;
ФАКТИЕСКИЙ РАЗМЕР ОБЛАСТИ НОСИТЕЛЯ, ДОСТУПНОЙ ДЛЯ ФАЙЛА.&lt;br /&gt;
ЕСЛИ УСТРОЙСТВО ЯВЛЯЕТСЯ БЕСКАТАЛОГОВЫМ, ТО RO СОДЕРЖИТ&lt;br /&gt;
0.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .ENTER  AREA,CHAN,DBLK,LEN,SEGNUM&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 7 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС БЛОКА АРГУМЕНТОВ ЕМТ ИЗ ЧЕТЫРЕХ СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
DBLK    - БЛОК УСТРОЙСТВА (СМ. Т.3 КН.2 Ч.1);&lt;br /&gt;
LEN     - РАЗМЕР ФАЙЛА, КОТОРЫЙ МОЖЕТ ПРИНИМАТЬ СЛЕДУЮЩИЕ&lt;br /&gt;
          ЗНАЧЕНИЯ:&lt;br /&gt;
    0   - ПРЕДОСТАВЛЯЕТСЯ 1/2 НАИБОЛЬШЕЙ ПУСТОЙ ОБЛАСТИ,&lt;br /&gt;
            ЛИБО ВТОРАЯ ПО ВЕЛИЧИНЕ ПУСТАЯ ОБЛАСТЬ ЦЕЛИКОМ;&lt;br /&gt;
    М   - ФАЙЛ, СОСТОИТ ИЗ М БЛОКОВ; ВЕЛИЧИНА М&lt;br /&gt;
            УКАЗЫВАЕТСЯ ПОЛЬЗОВАТЕЛЕМ;&lt;br /&gt;
   -1   - НАИБОЛЬШАЯ ПУСТАЯ ОБЛАСТЬ НА УСТРОЙСТВЕ;&lt;br /&gt;
SEGNUM  - ПРИ РАБОТЕ С КАССЕТАМИ ОЗНАЧАЕТ НОМЕР ФАЙЛА;&lt;br /&gt;
          ЕСЛИ ОН ОПУЩЕН, ПРИНИМАЕТСЯ НУЛЕВОЕ ЗНАЧЕНИЕ;&lt;br /&gt;
          ПРИ РАБОТЕ С МАГНИТНЫМИ ЛЕНТАМИ ЭТОТ АРГЕМЕНТ&lt;br /&gt;
          МОЖЕТ ПРИНИМАТЬ СЛЕДУЮЩИЕ ЗНАЧЕНИЯ:&lt;br /&gt;
    0   - ПЕРЕМОТКА МАГНИТНОЙ ЛЕНТЫ ОТ НАЧАЛА ВПЕРЕД,&lt;br /&gt;
          ДО ТЕХ ПОР, ПОКА НЕ БУДЕТ НАЙДЕНО ИМЯ ФАЙЛА&lt;br /&gt;
          ИЛИ ПОКА НЕ БУДЕТ ОБНАРУЖЕНА МЕТКА ЛОГИЕСКОГО&lt;br /&gt;
          КОНЦА МАГНИТНОЙ ЛЕНТЫ (LEOT);&lt;br /&gt;
    N   - ПОЗИЦИОНИРОВАНИЕ МАГНИТНОЙ ЛЕНТЫ НА НААЛО ФАЙЛА&lt;br /&gt;
          С ПОРЯДКОВЫМ НОМЕРОМ N;&lt;br /&gt;
          АЛГОРИТМ ПОЗИЦИОНИРОВАНИЯ: ЕСЛИ N БОЛЬШЕ,&lt;br /&gt;
          ЧЕМ К (НОМЕР ФАЙЛА, НА КОТОРОМ УСТАНОВЛЕНА&lt;br /&gt;
          ЛЕНТА В ТЕКУЩИЙ МОМЕНТ), ТО ПОИСК ПРОИЗВОДИТСЯ&lt;br /&gt;
          ОТ ЭТОГО ПОЛОЖЕНИЯ К LEOT; ЕСЛИ N МЕНЬШЕ К,&lt;br /&gt;
          ТО ПРОИЗОЙДЕТ ПЕРЕМОТКА ЛЕНТЫ НА НААЛО, А ЗАТЕМ&lt;br /&gt;
          БУДЕТ ВЫПОЛНЯТЬСЯ ПОИСК; В СЛУЧАЕ,ЕСЛИ N ЛИШЬ&lt;br /&gt;
          НА ЕДИНИЦУ МЕНЬШЕ К, ТО ПРОИСХОДИТ ОБРАТНАЯ&lt;br /&gt;
          ПЕРЕМОТКА НА НААЛО ЭТОГО (N-ГО) ФАЙЛА;&lt;br /&gt;
   -1   - ПЕРЕМОТКА ДО МЕТКИ LEOT И ОТКРЫТИЕ ФАЙЛА;&lt;br /&gt;
   -2   - ПЕРЕМОТКА МАГНИТНОЙ ЛЕНТЫ НА НАЧАЛО И&lt;br /&gt;
          ПРОДВИЖЕНИЕ ВПЕРЕД ДО ТЕХ ПОР, ПОКА НЕ БУДЕТ&lt;br /&gt;
          НАЙДЕНО ИМЯ ФАЙЛА ИЛИ МЕТКА LEOT.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !-------!--------!&lt;br /&gt;
RO =&amp;gt;   AREA:           !   2   !  CHAN  !&lt;br /&gt;
                        !-------!--------!&lt;br /&gt;
                        !     DBLK       !&lt;br /&gt;
                        !----------------!&lt;br /&gt;
                        !      LEN       !&lt;br /&gt;
                        !----------------!&lt;br /&gt;
                        !    SEGNUM      !&lt;br /&gt;
                        !----------------!&lt;br /&gt;
&lt;br /&gt;
        ПОСЛЕ ЗАВЕРШЕНИЯ МАКРОКОМАНДЫ .ENTER РЕГИСТР RO&lt;br /&gt;
СОДЕРЖИТ ДЛИНУ ЗАРЕЗЕРВИРОВАННОЙ ОБЛАСТИ НА НОСИТЕЛЕ В&lt;br /&gt;
БЛОКАХ ИЛИ 0 ДЛЯ УСТРОЙСТВ БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИИ.&lt;br /&gt;
        ПРИМЕНЯЯ НУЛЕВОЕ ЗНАЧЕНИЕ АРГУМЕНТА LEN В&lt;br /&gt;
МАКРОКОМАНДЕ .ENTER НЕОБХОДИМО ИМЕТЬ ВВИДУ, ЧТО&lt;br /&gt;
НАЗНАЧАЕТСЯ ПОЛОВИНА НАИБОЛЬШЕЙ ОБЛАСТИ, Т.Е., ЕСЛИ НА&lt;br /&gt;
УСТРОЙСТВЕ НАИБОЛЬШАЯ СВОБОДНАЯ ОБЛАСТЬ СОСТАВЛЯЕТ 200&lt;br /&gt;
БЛОКОВ, А ДЛИНА ФАЙЛА, ПОДЛЕЖАЩЕГО ПЕРЕДАЧЕ, 150 БЛОКОВ,&lt;br /&gt;
ТО ПЕРЕДАЧА С АРГУМЕНТОМ LEN=0 НЕВОЗМОЖНА, Т.К.&lt;br /&gt;
МАКРОКОМАНДА .ENTER ПРЕДОСТАВИТ ТОЛЬКО 100 БЛОКОВ. ВО&lt;br /&gt;
ВРЕМЯ ПЕРЕДАЧИ ПОЯВИТСЯ ОШИБКА ВВОДА/ВЫВОДА. ОДНАКО, ЕСЛИ&lt;br /&gt;
С ПОМОЩЬЮ АРГУМЕНТА М=150 ЗАТРЕБОВАНА ДЛИНА В 150 БЛОКОВ,&lt;br /&gt;
ТО ПЕРЕДАЧА ПРОЙДЕТ БЕЗ ОШИБОК. ЗА ЭТИМ ОБСТОЯТЕЛЬСТВОМ&lt;br /&gt;
ОСОБЕННО НЕОБХОДИМО СЛЕДИТЬ ПРИ КОПИРОВАНИИ НА&lt;br /&gt;
УСТРОЙСТВА, ИМЕЮЩИЕ МАЛО СВОБОДНОГО МЕСТА, НАПРИМЕР, DX:.&lt;br /&gt;
&lt;br /&gt;
        П_R_И_M_E_Ч_A_H_И_E. МАКРОКОМАНДА .ENTER ТРЕБУЕТ,&lt;br /&gt;
ЧТОБЫ ДРАЙВЕР УСТРОЙСТВА НАХОДИЛСЯ В ПАМЯТИ ПЕРЕД ЕЕ&lt;br /&gt;
ВЫПОЛНЕНИЕМ. ПОЭТОМУ НЕОДХОДИМО ПЕРЕД .ENTER, НАПРИМЕР,&lt;br /&gt;
ВЫПОЛНИТЬ МАКРОКОМАНДУ .FETCH.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0      КАНАЛ ЗАНЯТ;&lt;br /&gt;
         1      ПРИ ИСПОЛЬЗОВАНИИ МАКРОКОМАНДЫ С&lt;br /&gt;
                ФИКСИРОВАННОЙ ДЛИНОЙ LEN НЕ НАЙДЕНА&lt;br /&gt;
                ОБЛАСТЬ, БОЛЬШАЯ ИЛИ РАВНАЯ М, ИЛИ&lt;br /&gt;
                КАТАЛОГ УСТРОЙСТВА ОКАЗАЛСЯ ЗАПОЛНЕННЫМ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .WRITE.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 8 -&lt;br /&gt;
&lt;br /&gt;
                1.5     .LOOKUP&lt;br /&gt;
&lt;br /&gt;
    МАКОРОКОМАНДА .LOOKUP СВЯЗЫВАЕТ УКАЗАННЫЙ КАНАЛ С&lt;br /&gt;
УСТРОЙСТВОМ И/ИЛИ ФАЙЛОМ ДЛЯ ВЫПОЛНЕНИЯ ОПЕРАЦИЙ&lt;br /&gt;
ВВОДА/ВЫВОДА . ЧТОБЫ ОСВОБОДИТЬ КАНАЛ ДЛЯ ДРУГИХ ОПЕРАЦИЙ ,&lt;br /&gt;
НЕОБХОДИМО ВЫПОЛНИТЬ МАКРОКОМАНДЫ :&lt;br /&gt;
&lt;br /&gt;
    .CLOSE&lt;br /&gt;
    .SAVESTATUS&lt;br /&gt;
    .SRESET&lt;br /&gt;
    .HRESET&lt;br /&gt;
    .PURGE&lt;br /&gt;
    .CSIGEN ( ОСВОБОДИТ ТОЛЬК КАНАЛЫ С НОМЕРАМИ 0 - 10 )&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ :&lt;br /&gt;
    .LOOKUP AREA,CHAN,DBLK,SEGNUM&lt;br /&gt;
&lt;br /&gt;
    ГДЕ&lt;br /&gt;
    AREA    -   ОБЛАСТЬ ИЗ ТРЕХ СЛОВ БЛОКА АРГУМЕНТОВ EMT;&lt;br /&gt;
    CHAN    -   НОМЕР КАНАЛА;&lt;br /&gt;
    DBLK    -   БЛОК УСТРОЙСТВА ( СМ. Т.3 КН.2 Ч.1 );&lt;br /&gt;
    SEGNUM&lt;br /&gt;
            -   ПРИ ОПЕРАЦИЯХ С КАССЕТАМИ ОЗНАЧАЕТ НОМЕР ФАЙЛА;&lt;br /&gt;
                ЕСЛИ АРГУМЕНТ ПРОПУЩЕН , ТО ЕГО ЗНАЧЕНИЕ&lt;br /&gt;
                ПРЕДОПЛАГАЕТСЯ РАВНЫМ 0 ; ПРИ ОПЕРАЦИЯХ С&lt;br /&gt;
                МАГНИТНЫМИ ЛЕНТАМИ АРГУМЕНТ ОЗНАЧАЕТ СЛЕДУЮЩЕЕ ;&lt;br /&gt;
        -1  -   ПОИСК ИМЕНИ ФАЙЛА ИЗ ТЕКУЩЕГО ПОЛОЖЕНИЯ ; ЕСЛИ&lt;br /&gt;
                ОНО В ДАННЫЙ МОМЕНТ НЕ ОПРЕДЕЛЕНО , ТО ДРАЙВЕР&lt;br /&gt;
                БУДЕТ ВЫПОЛНЯТЬ АЛГОРИТМ ПОЗИЦИОНИРОВАНИЯ ,&lt;br /&gt;
                КОТОРЫЙ ВЫЗОВЕТ ОБРАТНУЮ ПЕРЕМОТКУ , ДО ТЕХ ПОР ,&lt;br /&gt;
                ПОКА НЕ БУДЕТ НАЙДЕНА ПРЕДЫДУЩАЯ МЕТКА EOF ;&lt;br /&gt;
&lt;br /&gt;
        0   -   ПРЯМАЯ ПЕРЕМОТКА МАГНИТНОЙ ЛЕНТЫ ОТ НАЧАЛА&lt;br /&gt;
                ВПЕРЕД ДО ТЕХ ПОР , ПОКА НЕ БУДЕТ НАЙДЕНО&lt;br /&gt;
                ИМЯ ФАЙЛА ИЛИ LEOT ;&lt;br /&gt;
&lt;br /&gt;
        N   -   ЛЮБОЕ ПООЛОЖИТЕЛЬНОЕ ЧИСЛО ; ОНО ОЗНАЧАЕТ&lt;br /&gt;
                УСТАНОВКУ ЛЕНТЫ НА ФАЙЛ С ПОРЯДКОВЫМ&lt;br /&gt;
                НОМЕРОМ N ; АЛГОРИТМ ПОЗИЦИОНИРОВАНИЯ&lt;br /&gt;
                СМ. В ОПИСАНИИ МАКРОКОМАНДЫ .ENTER .&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ EMT :&lt;br /&gt;
                    !--------!--------!&lt;br /&gt;
    R0 =&amp;gt; AREA :    !    1   !  CHAN  !&lt;br /&gt;
                    !--------!--------!&lt;br /&gt;
                    !      DBLK       !&lt;br /&gt;
                    !-----------------!&lt;br /&gt;
                    !     SEGNUM      !&lt;br /&gt;
                    !-----------------!&lt;br /&gt;
&lt;br /&gt;
    СЛЕДУЕТ ПОМНИТЬ , ЧТО ОВЕРЛЕЙНАЯ ПРОГРАММА ИСПОЛЬЗУЕТ&lt;br /&gt;
15 КАНАЛ ДЛЯ ЧТЕНИЯ ПЕРЕКРЫТИЙ . ПЕРЕД ВЫПОЛНЕНИЕМ .LOOKUP&lt;br /&gt;
ДРАЙВЕР ДОЛЖЕН НАХОДИТЬСЯ В ПАМЯТИ . ПОСЛЕ ЗАВЕРШЕНИЯ&lt;br /&gt;
МАКРОКОМАНДЫ ПЕГИСТР R0 СОДЕРЖИТ ДЛИНУ ОТКРЫТОГО ФАЙЛА В&lt;br /&gt;
БЛОКАХ ИЛИ 0 ДЛЯ УСТРОЙСТВА БЕСКАТАЛОГОАВОЙ ОРГАНИЗАЦИИ .&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ :&lt;br /&gt;
    КОД         ПОЯСНЕНИЯ&lt;br /&gt;
&lt;br /&gt;
    0       КАНАЛ ЗАНЯТ ;&lt;br /&gt;
&lt;br /&gt;
    1       УКАЗАННЫЙ ФАЙЛ В КАТАЛОГЕ НЕ НАЙДЕН .&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР : СМ. ПРИМЕР МАКРОКМАНДЫ .SPFUN .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.6     .PURGE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .PURGE ИСПОЛЬЗУЕТСЯ ДЛЯ&lt;br /&gt;
ОСВОБОЖДЕНИЯ КАНАЛА БЕЗ ВЫПОЛНЕНИЯ МАКРОКОМАНД .HRESET ,&lt;br /&gt;
.SRESET , .SAVESTATUS ИЛИ .CLOSE .&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ :&lt;br /&gt;
                        .PURGE  CHAN&lt;br /&gt;
    ГДЕ&lt;br /&gt;
    CHAN    -   НОМЕР КАНАЛА .&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ РЕГИСТРА R0 :&lt;br /&gt;
&lt;br /&gt;
                !--------!--------!&lt;br /&gt;
    R0 =&amp;gt;       !    3   !  CHAN  !&lt;br /&gt;
                !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .PURGE ОСВОБОЖДАЕТ КАНАЛ , НЕ ВЫПОЛНЯЯ&lt;br /&gt;
НИКАКИХ ДРУГИХ ОПЕРАЦИЙ .&lt;br /&gt;
&lt;br /&gt;
    ЕСЛИ МАКРОКОМАНДОЙ .ENTER БЫЛ СОЗДАН ВРЕМЕННЫЙ ФАЙЛ ,&lt;br /&gt;
ТО ФАЙЛ СТАНОВИТСЯ НЕДОСТУПНЫМ ДЛЯ ПОСЛЕДДУЮЩЕГО&lt;br /&gt;
ИСПОЛЬЗОВАНИЯ .&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 9 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЕСЛИ УКАЗАННЫЙ В МАКРОКОМАНДЕ КАНАЛ НЕ ЗАНЯТ , Т. Е.&lt;br /&gt;
НЕ СВЯЗАН С ФАЙЛОМ , ТО МАКРОКОМАНДА ИГНОРИРУЕТСЯ .&lt;br /&gt;
&lt;br /&gt;
    ОШИБКИ : ОТСУТСВУЮТ .&lt;br /&gt;
&lt;br /&gt;
    ПРИМЕР : СМ. ПРИМЕР МАКРОКОМАНДЫ .CHCOPY .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.7.    .RENAME&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЭТА СИСТЕМНАЯ МАКРОКОМАНДА ВЫЗЫВАЕТ ИЗМЕНЕНИЕ ИМЕНИ&lt;br /&gt;
УКАЗАННОГО ФАЙЛА . ЕСЛИ НА УКАЗАННОМ УСТРОЙСТВЕ УЖЕ&lt;br /&gt;
СУЩЕСТВУЕТ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ , ТО ОН СТИРАЕТСЯ .&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ :&lt;br /&gt;
                        .RENAME     AREA,CHAN,DBLK&lt;br /&gt;
&lt;br /&gt;
    ГДЕ&lt;br /&gt;
    AREA    -   БЛОК АРГУМЕНТОВ EMT ИЗ 2-Х СЛОВ ;&lt;br /&gt;
    CHAN    -   НОМЕР КАНАЛА ;&lt;br /&gt;
    DBLK    -   БЛОК , СОДЕРЖАЩИЙ ДВЕ ПОСЛЕДОВАТЕЛЬНЫЕ&lt;br /&gt;
                СПЕЦИФИКАЦИИ ФАЙЛОВ , ПРИ ЭТОМ ПЕРВЫЕ ЧЕТЫРЕ&lt;br /&gt;
                СЛОВА ПРЕДАЗНАЧЕНЫ ДЛЯ ФАЙЛА , У КОТОРОГО БУДЕТ&lt;br /&gt;
                ИЗМЕНЯТЬСЯ ИМЯ , ПОСЛЕДНИЕ - ДЛЯ НОВОГО ИМЕНИ .&lt;br /&gt;
&lt;br /&gt;
            ФОРМАТ СПИСКА АРГУМЕНТОВ EMT :&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
        R0 =&amp;gt; AREA :    !    4   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !      DBLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ДЛЯ ВЫПОЛНЕНИЯ КОМАНДЫ .RENAME НЕОБХОДИМО ,&lt;br /&gt;
ЧТБЫ ДРАЙВЕР ОБСЛУЖИВАЕМОГО УСТРОЙСТВА БЫЛ ЗАГРУЖЕН .&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА ДЕЙСТВИТЕЛЬНА ТОЛЬКО ДЛЯ ОПЕРАЦИЙ С&lt;br /&gt;
КАТАЛОГОВЫМИ УСТРОЙСТВАМИ ; ДЛЯ ОСТАЛЬНЫХ УСТРОЙСТВ ОНА&lt;br /&gt;
ИГНОРИРУЕТСЯ .&lt;br /&gt;
&lt;br /&gt;
    П_Р_И_М_Е_Ч_А_Н_И_Е . ПО ЗАВЕРШЕНИЮ .RENAME КАНАЛ&lt;br /&gt;
CHAN БУДЕТ СВОБОДЕН .&lt;br /&gt;
&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ОШИБКИ :&lt;br /&gt;
        КОД         ПОЯСНЕНИЕ&lt;br /&gt;
        0       КАНАЛ ЗАНЯТ ;&lt;br /&gt;
        1       ФАЙЛ НЕ НАЙДЕН ;&lt;br /&gt;
        2       НЕДОПУСТИМАЯ ОПЕРАЦИЯ&lt;br /&gt;
                ДЛЯ ДАННОГО УСТРОЙСТВА .&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР :&lt;br /&gt;
&lt;br /&gt;
ФАЙЛ DATA.TMP НА DX0: ПЕРЕИМЕНОВЫВАЕТСЯ В ФАЙЛ DATA.CNT .&lt;br /&gt;
        .MCALL  .FETCH,.PRINT,.EXIT,.RENAME&lt;br /&gt;
ST:     .FETCH  #HSPACE,#NAMBLK     ;ЗАГРУЗИТЬ ДРАЙВЕР DX&lt;br /&gt;
        BCS     FEER&lt;br /&gt;
        .RENAME #AREA,#0,#NAMBLK    ;СДЕЛАТЬ ПЕРЕИМЕНОВАНИЕ&lt;br /&gt;
        BCS     RENER&lt;br /&gt;
        .EXIT&lt;br /&gt;
FEER:   .PRINT  #FMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
RENER:  .PRINT  #RNMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
AREA:   .BLKW   2                   ;ОБЛ. АРГУМЕНТОВ EMT&lt;br /&gt;
NAMBLK: .RAD50  /DX0DATA  TMP/      ;СТАРОЕ ИМЯ&lt;br /&gt;
        .RAD50  /DX0DATA  CNT/      ;НОВОЕ ИМЯ&lt;br /&gt;
FMSG:   .ASCIZ  /ОШИБКА .FETCH/&lt;br /&gt;
RNMSG:  .ASCIZ  /ОШИБКА .RENAME/&lt;br /&gt;
        .EVEN&lt;br /&gt;
HSPACE  =.&lt;br /&gt;
        .END   ST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.8.    .REOPEN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .REOPEN СВЯЗЫВАЕТ УКАЮЗАННЫЙ КАНАЛ С&lt;br /&gt;
ФАЙЛОМ , ДЛЯ КОТОРОГО БЫЛА ВЫПОЛНЕНА МАКРОКОМАНДА&lt;br /&gt;
.SAVESTATUS , ТАКИМ ОБРАЗОМ ПРОИЗВОДЯ ПОВТОРНОЕ ОТКРЫТИЕ&lt;br /&gt;
ЭТОГО ФАЙЛА .&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ :&lt;br /&gt;
                        .REOPEN     AREA,,CHAN,DBLK&lt;br /&gt;
&lt;br /&gt;
    ГДЕ&lt;br /&gt;
&lt;br /&gt;
    AREA    -   ОБЛАСТЬ ИЗ ДВУХ СЛОВ ДЛЯ АРГУМЕНТОВ EMT ;&lt;br /&gt;
    CHAN    -   НОМЕР КАНАЛА ;&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
                        - 10 -&lt;br /&gt;
&lt;br /&gt;
CBLK -  АДРЕС БЛОКА ИЗ ПЯТИ СЛОВ С ИНФОРМАЦИЕЙ О&lt;br /&gt;
        СОСТОЯНИИ КАНАЛА.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   6    !  CHAN  !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      CBLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    СОЧЕТАНИЕ МАКРОКОМАНД .REOPEN И .SAVESTATUS УДОБНО В&lt;br /&gt;
ТЕХ СЛУЧАЯХ, КОГДА НУЖНО ОДНОВРЕМЕННО ОБРАБОТАТЬ БОЛЬШОЕ&lt;br /&gt;
ЧИСЛО ФАЙЛОВ ПРИ ОГРАНИЧЕННОМ КОЛИЧЕСТВЕ КАНАЛОВ.&lt;br /&gt;
НЕОБХОДИМОЕ КОЛИЧЕСТВО ФАЙЛОВ МОЖНООТКРЫТЬ МАКРОКОМАНДОЙ&lt;br /&gt;
LOOKUP И СОХРАНИТЬ МАКРОКОМАНДОЙ .SAVESTATUS, КОГДА&lt;br /&gt;
ТРЕБУЮТСЯ ДАННЫЕ ИЗ ФАЙЛА, МАКРОКОМАНДА .REOPEN ДАЕТ&lt;br /&gt;
ВОЗМОЖНОСТЬ ПРОГРАММЕ СВЯЗАТЬ ФАЙЛ, СОХРАНЕННЫЙ&lt;br /&gt;
МАКРОКОМАНДОЙ .SAVESTATUS, СО СВОБОДНЫМ КАНАЛОМ И ЗАТЕМ&lt;br /&gt;
ПРОИЗВЕСТИ СЧИТЫВАНИЕ.&lt;br /&gt;
    МАКРОКОМАНДА .REOPEN МОЖЕТ ИСПОЛЬЗОВАТЬ ЛЮБОЙ КАНАЛ,&lt;br /&gt;
НЕ ОБЯЗАТЕЛЬНО ТОТ, КОТОРЫЙ ИСПОЛЬЗОВАЛСЯ РАНЕЕ&lt;br /&gt;
МАКРОКОМАНДАМИ .LOOKUP И .SAVESTATUS.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД         ПОЯСНЕНИЕ&lt;br /&gt;
         0       КАНАЛ ЗАНЯТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SAVESTATUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        1.9.    .SAVESTATUS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .SAVESTATUS ПЕРЕДАЕТ 5 СЛОВ ИНФОРМАЦИИ&lt;br /&gt;
О СОСТОЯНИИ КАНАЛА В УКАЗАННУЮ ОБЛАСТЬ ПАМЯТИ. ЭТИ СЛОВА&lt;br /&gt;
СОДЕРЖАТ ПОЛНУЮ ИНФОРМАЦИЮ, НЕОБХОДИМУЮ СИСТЕМЕ ДЛЯ&lt;br /&gt;
ОПРЕДЕЛЕНИЯ ФАЙЛА.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .SAVESTATUS     AREA,CHAN,CBLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - ОБЛАСТЬ ИЗ ДВУХ СЛОВ ДЛЯ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
CBLK    - АДРЕС БЛОКА ПАМЯТИ (5СЛОВ), ГДЕ СОХРАНЯЕТСЯ&lt;br /&gt;
          ИНФОРМАЦИЯ О СОСТОЯНИИ КАНАЛА.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   5    !  CHAN  !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      CBLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ ФАЙЛ ЗАКРЫВАЕТСЯ И&lt;br /&gt;
КАНАЛ ОСВОБОЖДАЕТСЯ ДЛЯ ИСПОЛЬЗОВАНИЯ.&lt;br /&gt;
    МАКРОКОМАНДА .SAVESTATUS ПРИМЕНЯЕТСЯ ТОЛЬКО В ТОМ&lt;br /&gt;
СЛУЧАЕ, ЕСЛИ ФАЙЛ БЫЛ ОТКРЫТ ПОСРЕДСТВОМ МАКРОКОМАНДЫ&lt;br /&gt;
.LOOKUP. ЕСЛИ ФАЙЛ БЫЛ ОТКРЫТ МАКРОКОМАНДОЙ .ENTER, TO&lt;br /&gt;
ИСПОЛЬЗОВАНИЕ МАКРОКОМАНДЫ .SAVESTATUS НЕДОПУСТИМО, ПРИ&lt;br /&gt;
ЭТОМ ВОЗНИКАЕТ ОШИБКА.&lt;br /&gt;
    ЭТА МАКРОКОМАНДА МОЖЕТ ОТНОСИТЬСЯ ТОЛЬКО К ТЕМ&lt;br /&gt;
ФАЙЛАМ, КОТОРЫЕ НАХОДЯТСЯ НА УСТРОЙСТВЕ С КАТАЛОГОВОЙ&lt;br /&gt;
ОРГАНИЗАЦИЕЙ.&lt;br /&gt;
    ПЯТЬ СЛОВ, НЕСУЩИХ ИНФОРМАЦИЮ О СОСТОЯНИИ КАНАЛА,&lt;br /&gt;
ПРИВЕДЕНЫ В ТАБЛИЦЕ (СИМВОЛОМ &amp;lt;*&amp;gt; ПОМЕЧЕНЫ  БИТЫ,&lt;br /&gt;
ПОЯСНЕНИЯ К КОТОРЫМ ДАНЫ, ДЛЯ БИТА УСТАНОВЛЕННОГО В 1).&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
                        - 11 -&lt;br /&gt;
&lt;br /&gt;
                                                  ТАБЛИЦА&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
  СЛОВО  !  БИТ  !          СОДЕРЖИМОЕ&lt;br /&gt;
---------!-------!---------------------------------------&lt;br /&gt;
    1    !       ! СЛОВО СОСТОЯНИЯ КАНАЛА.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  0*   ! АППАРАТНАЯ ОШИБКА ПО ЭТОМУ КАНАЛУ.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  1-5* ! ИНДЕКС В ТАБЛИЦАХ МОНИТОРА. ОПИСЫВАЕТ&lt;br /&gt;
         !       ! ФИЗИЧЕСКОЕ УСТРОЙСТВО, СВЯЗАННОЕ С&lt;br /&gt;
         !       ! ЭТИМ КАНАЛОМ.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  6*   ! НА КАНАЛЕ ВЫПОЛНЯЕТСЯ МАКРОКОМАНДА&lt;br /&gt;
         !       ! .RENAME.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  7*   ! В КАТАЛОГЕ ДОЛЖНА ПРОИЗОЙТИ НОВАЯ&lt;br /&gt;
         !       ! ЗАПИСЬ МАКРОКОМАНДЫ .CLOSE (Т.Е.&lt;br /&gt;
         !       ! ЭТОТ БИТ УСТАНОВЛЕН, ЕСЛИ ВЫПОЛНЕНА&lt;br /&gt;
         !       ! МАКРОКОМАНДА .ENTER).&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  8-12 ! НОМЕР СЕГМЕНТА КАТАЛОГА ОТ 1 ДО 37&lt;br /&gt;
         !       ! (ВОСЬМЕРИЧНЫЕ), В КОТОРОМ НАХОДИТСЯ&lt;br /&gt;
         !       ! ЗАПИСЬ О ТЕКУЩЕМ ФАЙЛЕ.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  13*  ! НАЙДЕН КОНЕЦ ФАЙЛА.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  14   ! НЕ ИСПОЛЬЗУЕТСЯ.&lt;br /&gt;
         !-------!---------------------------------------&lt;br /&gt;
         !  15*  ! ЭТОТ КАНАЛ В ДАННЫЙ МОМЕНТ ЗАНЯТ.&lt;br /&gt;
---------!-------!---------------------------------------&lt;br /&gt;
    2    !       ! НАЧАЛЬНЫЙ НОМЕР БЛОКА ФАЙЛА. НУЛЬ,ЕСЛИ&lt;br /&gt;
         !       ! УСТРОЙСТВО ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА.&lt;br /&gt;
---------!-------!---------------------------------------&lt;br /&gt;
    3    !       ! ДЛИНА ФАЙЛА (В БЛОКАХ ПО 256 СЛОВ).&lt;br /&gt;
---------!-------!---------------------------------------&lt;br /&gt;
    4    !       ! НЕ ИСПОЛЬЗУЕТСЯ.&lt;br /&gt;
---------!-------!---------------------------------------&lt;br /&gt;
    5    !       ! ЧЕТНЫЙ БАЙТ: КОЛИЧЕСТВО НЕЗАВЕРШЕННЫХ&lt;br /&gt;
         !       ! ОПЕРАЦИЙ ВВОДА/ВЫВОДА ПО КАНАЛУ&lt;br /&gt;
         !       ! (ДЛИНА ОЧЕРЕДИ).&lt;br /&gt;
         !       ! НЕЧЕТНЫЙ БАЙТ: НОМЕР УСТРОЙСТВА,&lt;br /&gt;
         !       ! СВЯЗАННОГО С КАНАЛОМ (ОТ 0 ДО 7).&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СОЧЕТАНИЕ МАКРОКОМАНД .SAVESTATUS/.REOPEN ОЧЕНЬ&lt;br /&gt;
УДОБНО, НО НЕОБХОДИМО СОБЛЮДАТЬ НЕКОТОРЫЕ МЕРЫ&lt;br /&gt;
ПРЕДОСТОРОЖНОСТИ:&lt;br /&gt;
    1) ЕСЛИ ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .SAVESTATUS&lt;br /&gt;
ФАЙЛ БЫЛ УДАЛЕН ДО МАКРОКОМАНДЫ .REOPEN, ТО ВЫПОЛНЕННАЯ В&lt;br /&gt;
ЭТОТ МОМЕНТ МАКРОКОМАНДА .ENTER МОЖЕТ ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ОБЛАСТЬ ЭТОГО ФАЙЛА КАК СВОБОДНУЮ И ИЗМЕНИТЬ ЕЕ&lt;br /&gt;
СОДЕРЖИМОЕ. ПОСЛЕ ЭТОГО СОДЕРЖИМОЕ ФАЙЛА НЕЛЬЗЯ&lt;br /&gt;
ВОССТАНОВИТЬ.&lt;br /&gt;
    2) ПРИ ВЫПОЛНЕНИИ МАКРОКОМАНДЫ .REOPEN ПРИСУТСТВИЕ В&lt;br /&gt;
ПАМЯТИ ДРАЙВЕРА СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА&lt;br /&gt;
НЕОБЯЗАТЕЛЬНО. ОДНАКО, ЕСЛИ ВЫПОЛНЯЮТСЯ МАКРОКОМАНДЫ&lt;br /&gt;
.READ ИЛИ .WRITE, ТО ПРИ ОТСУТСТВИИ ДРАЙВЕРА ВЫДАЕТСЯ&lt;br /&gt;
НЕУСТРАНИМАЯ ОШИБКА.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0          УКАЗАННЫЙ КАНАЛ НЕ СВЯЗАН С ФАЙЛОМ,&lt;br /&gt;
                    Т.Е. НЕ ВЫПОЛНЕНА МАКРОКОМАНДА .LOOKUP;&lt;br /&gt;
&lt;br /&gt;
         1          УКАЗАННЫЙ ФАЙЛ ОТКРЫТ МАКРОКОМАНДОЙ&lt;br /&gt;
                    .ENTER ИЛИ НАХОДИТСЯ НА СТ: ИЛИ МТ:&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
В ПРИМЕРЕ СРАЗУ ОТКРЫВАЮТСЯ ВСЕ НЕОБХОДИМЫЕ ДЛЯ РАБОТЫ&lt;br /&gt;
ПРОГРАММЫ ФАЙЛЫ, ИХ СОСТОЯНИЯ СОХРАНЯЮТСЯ, А ЗАТЕМ ОНИ&lt;br /&gt;
ОТКРЫВАЮТСЯ ПО МЕРЕ НЕОБХОДИМОСТИ С ПОМОЩЬЮ .REOPEN.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .READ,.EXIT,.CSIGEN,.SAVESTATUS,.REOPEN&lt;br /&gt;
ST:      MOV    #AREA,R5&lt;br /&gt;
        .CSIGEN #DSPACE,#DEXT       ;ВВЕСТИ СТРОКУ&lt;br /&gt;
         MOV    RO,BUFF             ;УКАЗАТЕЛЬ НА&lt;br /&gt;
                                    ;СВОБОДНУЮ ПАМЯТЬ&lt;br /&gt;
        .SAVEST R5,#3,#BLOCK1       ;СОХРАНИТЬ ИНФОРМАЦИЮ&lt;br /&gt;
                                    ;О ПЕРВОМ ВХОД. ФАЙЛЕ&lt;br /&gt;
        .SEVEST R5,#4,#BLOCK2       ;О ВТОРОМ&lt;br /&gt;
        .SAVEST R5,#5,#BLOCK3       ;О ТРЕТЬЕМ&lt;br /&gt;
         MOV    #BLOCK1,R4&lt;br /&gt;
PRCS:   .REOPEN R5,#0,R4            ;ПЕРЕОТКРЫТЬ ФАЙЛ&lt;br /&gt;
                                    ;ПО КАНАЛУ 0&lt;br /&gt;
        .READ   R5,#0,BUFF,COUNT,BLOCK  ;И ОБРАБОТАТЬ ЕГО&lt;br /&gt;
DONE:    ADD    &amp;quot;12,R4              ;УКАЗАТЕЛЬ НА&lt;br /&gt;
                                    ;СЛЕДУЮЩИЙ БЛОК&lt;br /&gt;
         CMP    R4,#BLOCK3          ;ПОСЛЕДН. ФАЙЛ ОБРАБОТАН?&lt;br /&gt;
         BLOS   PRCS                ;НЕТ, ВЫПОЛНИТЬ СЛЕДУЮЩИЙ&lt;br /&gt;
        .EXIT&lt;br /&gt;
BLOCK1: .WORD   0,0,0,0,0           ;БЛОКИ ДЛЯ ИНФОРМАЦИИ&lt;br /&gt;
BLOCK2: .WORD   0,0,0,0,0           ;О СОХРАНЕННОМ&lt;br /&gt;
BLOCK3: .WORD   0,0,0,0,0           ;СОСТОЯНИИ КАНАЛОВ&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
BUFF:   .WORD   0&lt;br /&gt;
BLOCK:  .WORD   0&lt;br /&gt;
COUNT:  .WORD   256&lt;br /&gt;
DEXT:   .WORD   0,0,0,0&lt;br /&gt;
DSPACE = .&lt;br /&gt;
        .END    ST&lt;br /&gt;
�&lt;br /&gt;
                        - 12 -&lt;br /&gt;
&lt;br /&gt;
        2. СИСТЕМНЫЕ МАКРОКОМАНДЫ ПЕРЕДАЧИ ДАННЫХ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        2.1.    .PRINT&lt;br /&gt;
&lt;br /&gt;
    ЭТА МАКРОКОМАНДА ПРЕДНАЗНАЧЕНА ДЛЯ ВЫВОДА СТРОКИ&lt;br /&gt;
ТЕКСТА НА СИСТЕМНЫЙ ТЕРМИНАЛ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .PRINT      ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС РАСПЕЧАТЫВАЕМОЙ СТРОКИ.&lt;br /&gt;
&lt;br /&gt;
    СТРОКА, ВЫДАВАЕМАЯ НА ПЕЧАТЬ, МОЖЕТ ОКАНЧИВАТЬСЯ&lt;br /&gt;
ЛИБО НУЛЕВЫМ БАЙТОМ, ЛИБО БАЙТОМ СО ЗНАЧЕНИЕМ &amp;lt;200&amp;gt;. ЕСЛИ&lt;br /&gt;
СТРОКА ОКАНЧИВАЕТСЯ НУЛЕВЫМ БАЙТОМ, ТО АВТОМАТИЧЕСКИ&lt;br /&gt;
ДОБАВЛЯЕТСЯ &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;. ЕСЛИ СТРОКУ ЗАКАНЧИВАЕТ БАЙТ &amp;lt;200&amp;gt;,&lt;br /&gt;
ТО ВЫДАЧА &amp;lt;CR&amp;gt; &amp;lt;LF&amp;gt; НЕ ПРОИЗВОДИТСЯ.&lt;br /&gt;
    ПРИ ВЫПОЛНЕНИИ ОПЕРАТИВНОЙ (ФОНОВОЙ) ПРОГРАММЫ ПЕРЕД&lt;br /&gt;
ВЫВОДОМ ТЕКСТА НА СИСТЕМНЫЙ ТЕРМИНАЛ СНАЧАЛА ПЕЧАТАЕТСЯ&lt;br /&gt;
СООБЩЕНИЕ F&amp;gt; (B&amp;gt;), A ЗА НИМ СЛЕДУЕТ ТЕКСТ СТРОКИ.&lt;br /&gt;
    УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ&lt;br /&gt;
РАЗМЕЩЕНИЯ В БУФЕРЕ ВЫВОДА ВСЕХ ВЫВОДИМЫХ СИМВОЛОВ.&lt;br /&gt;
    ОПЕРАТИВНАЯ ПРОГРАММА, ИСПОЛЬЗУЯ СИСТЕМНУЮ&lt;br /&gt;
МАКРОКОМАНДУ .PRINT, ВЫДАЕТ СООБЩЕНИЕ НЕЗАВИСИМО ОТ&lt;br /&gt;
СОСТОЯНИЯ ФОНОВОЙ ЗАДАЧИ. ПОЭТОМУ ДЛЯ СТРОЧНЫХ СООБЩЕНИЙ&lt;br /&gt;
УДОБНЕЕ ИСПОЛЬЗОВАТЬ МАКРОКОМАНДУ .PRINT, ЧЕМ .TTOUTR ИЛИ&lt;br /&gt;
.TTYOUT.&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .CHCOPY.&lt;br /&gt;
&lt;br /&gt;
                        2.2.    .RCVD/.RCVDW&lt;br /&gt;
                            (ТОЛЬКО ДЛЯ FB- И ХМ- МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНЫЕ МАКРОКОМАНДЫ ЭТОГО ТИПА ИСПОЛЬЗУЮТСЯ&lt;br /&gt;
СОВМЕСТНО С МАКРОКОМАНДАМИ .SDAT/.SDATC/.SDATW ДЛЯ&lt;br /&gt;
ОСУЩЕСТВЛЕНИЯ ПЕРЕДАЧИ ДАННЫХ МЕЖДУ ПРОГРАММАМИ.&lt;br /&gt;
НЕПОСРЕДСТВЕННО МАКРОКОМАНДЫ ТИПА .RCVD ВЫПОЛНЯЮТ ПРИЕМ&lt;br /&gt;
ДАННЫХ АНАЛОГИЧНО МАКРОКОМАНДАМ ТИПА .READ С ТОЙ ЛИШЬ&lt;br /&gt;
РАЗНИЦЕЙ, ЧТО ПЕРЕДАЧА ДАННЫХ ПРОИЗВОДИТСЯ НЕ&lt;br /&gt;
ПЕРИФЕРИЙНЫМ УСТРОЙСТВОМ, А ПРОГРАММОЙ, РАБОТАЮЩЕЙ В&lt;br /&gt;
ДРУГОМ РАЗДЕЛЕ (ОПЕРАТИВНОМ ИЛИ ФОНОВОМ) И ВЫПОЛНЯЮЩЕЙ&lt;br /&gt;
ПЕРЕСЫЛКУ ДАННЫХ.&lt;br /&gt;
    СООБЩЕНИЯ ВСЕГДА ОБРАБАТЫВАЮТСЯ В ПОРЯДКЕ: ПЕРВЫЙ&lt;br /&gt;
ВОШЕЛ - ПЕРВЫЙ ВЫШЕЛ. ТАКИМ ОБРАЗОМ ПОЛЬЗОВАТЕЛЬ МОЖЕТ&lt;br /&gt;
БЫТЬ УВЕРЕН, ЧТО ИМ ПРИНЯТО ДЕЙСТВИТЕЛЬНО ЗАТРЕБОВАННОЕ&lt;br /&gt;
СООБЩЕНИЕ.&lt;br /&gt;
    ПРОГРАММЫ, ИСПОЛЬЗУЮЩИЕ МАКРОКОМАНДЫ ТИПА&lt;br /&gt;
.RCVD/.SDAT, ДОЛЖНЫ ПРЕДУСМАТРИВАТЬ ЛИБО ПЕРЕДАЧУ ДАННЫХ&lt;br /&gt;
В ФИКСИРОВАННОМ ФОРМАТЕ, ЛИБО ВОЗМОЖНОСТЬ ОБРАБОТКИ&lt;br /&gt;
ПЕРЕМЕННЫХ ФОРМАТОВ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    П_Р_И_M_E_Ч_A_H_И_E. ПРИ ИСПОЛЬЗОВАНИИ МАКРОКОМАНД&lt;br /&gt;
.RCVD И .RCVDC ДЛЯ БУФЕРИЗАЦИИ ЗАПРОСОВ ВВОДА НУЖНО&lt;br /&gt;
ВЫДЕЛЯТЬ ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ ОЧЕРЕДИ (СМ.&lt;br /&gt;
МАКРОКОМАНДУ .QSET)&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ ОДИНАКОВЫ ДЛЯ ВСЕХ ТРЕХ РЕЖИМОВ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0          В СИСТЕМЕ НЕТ ДРУГОГО ЗАДАНИЯ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.2.1.  .RCVD&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .RCVD ИСПОЛЬЗУЕТСЯ, ЧТОБЫ&lt;br /&gt;
ПРИНЯТЬ ДАННЫЕ. ПОСЛЕ ТОГО, КАК ЗАПРОС ПОСТАВЛЕН В&lt;br /&gt;
ОЧЕРЕДЬ, ПРОДОЛЖАЕТСЯ ВЫПОЛНЕНИЕ ПРОГРАММЫ, ВЫДАВШЕЙ&lt;br /&gt;
ЗАПРОС НА ПРИЕМ ДАННЫХ. В МОМЕНТ, КОГДА ПРОГРАММЕ НУЖНО&lt;br /&gt;
ПОЛУЧИТЬ ЗАТРЕБОВАННЫЕ ДАННЫЕ, В НЕЙ СТАВИТСЯ&lt;br /&gt;
МАКРОКОМАНДА .MWAIT. ПРИ ЭТОМ ВЫПОЛНЕНИЕ ПРОГРАММЫ&lt;br /&gt;
ПРИОСТАНАВЛИВАЕТСЯ ДО ОКОНЧАНИЯ ПРИЕМА ДАННЫХ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .RCVD   AREA,BUF,WCNT&lt;br /&gt;
ГДЕ&lt;br /&gt;
&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 13 -&lt;br /&gt;
&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПРИЕМА ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   26   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! ЗАРЕЗЕРВИРОВАНО !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       1         !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    СЛЕДУЕТ ИМЕТЬ В ВИДУ, ЧТО ПЕРВОЕ СЛОВО БУФЕРА BUF&lt;br /&gt;
БУДЕТ СОДЕРЖАТЬ КОЛИЧЕСТВО ПЕРЕДАННЫХ СЛОВ ПО ЗАВЕРШЕНИИ&lt;br /&gt;
МАКРОКОМАНДЫ .RCVD. ПОЭТОМУ ОБЛАСТЬ, ВЫДЕЛЕННАЯ ДЛЯ&lt;br /&gt;
ПРИЕМА, ВСЕГДА ДОЛЖНА БЫТЬ, ПО КРАЙНЕЙ МЕРЕ, НА ОДНО&lt;br /&gt;
СЛОВО БОЛЬШЕ, ЧЕМ ФАКТИЧЕСКИЙ РАЗМЕР ОЖИДАЕМОГО&lt;br /&gt;
СООБЩЕНИЯ.&lt;br /&gt;
    WCNT ЯВЛЯЕТСЯ ПЕРЕМЕННОЙ ВЕЛИЧИНОЙ, Т.Е. ОДНА И ТА&lt;br /&gt;
ЖЕ КОМБИНАЦИЯ МАКРОКОМАНД .RCVD/.SDAT МОЖЕТ БЫТЬ&lt;br /&gt;
ПРИМЕНЕНА ДЛЯ ПЕРЕДАЧИ СООБЩЕНИЙ РАЗЛИЧНОЙ ДЛИНЫ&lt;br /&gt;
(НЕСКОЛЬКИХ СЛОВ БУФЕРА ИЛИ ВСЕГО БУФЕРА).&lt;br /&gt;
    ОПЕРАЦИЯ .RCVD ЗАВЕРШАЕТСЯ ТОЛЬКО ПОСЛЕ ВЫПОЛНЕНИЯ&lt;br /&gt;
МАКРОКОМАНДЫ .SDAT ДРУГОЙ ПРОГРАММОЙ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.2.2.  .RCVDC&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .RCVDC ОСУЩЕСТВЛЯЕТ ПРИЕМ&lt;br /&gt;
ДАННЫХ. ПОСЛЕ ТОГО, КАК ЗАПРОС ПОСТАВЛЕН В ОЧЕРЕДЬ НА&lt;br /&gt;
ОБРАБОТКУ, ПРОДОЛЖАЕТСЯ ВЫПОЛНЕНИЕ ТЕКУЩЕЙ ПРОГРАММЫ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ. КОГДА ПЕРЕДАЧА ДАННЫХ ЗАКОНЧИТСЯ,&lt;br /&gt;
УПРАВЛЕНИЕ БУДЕТ ПЕРЕДАНО ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .RCVDC  AREA,BUF,WCNT,CRTN&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПРИЕМА ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
CRTN    - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   26   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! ЗАРЕЗЕРВИРОВАНО !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      CRTN       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
ПЕРВОЕ СЛОВО БУФЕРА BUF СОДЕРЖИТ КОЛИЧЕСТВО ПРИНЯТЫХ&lt;br /&gt;
СЛОВ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.2.3.  .RCVDW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .RCVDW ОСУЩЕСТВЛЯЕТ ПРИЕМ&lt;br /&gt;
СООБЩЕНИЙ С ОЖИДАНИЕМ КОНЦА ПЕРЕДАЧИ, Т.Е. ПРОГРАММА,&lt;br /&gt;
ВЫДАВШАЯ ЗАПРОС НА ПРИЕМ СООБЩЕНИЯ, ПРИОСТАНАВЛИВАЕТСЯ ДО&lt;br /&gt;
ПЕРЕДАЧИ СООБЩЕНИЯ ДРУГОЙ ПРОГРАММОЙ. ПОСЛЕ ОКОНЧАНИЯ&lt;br /&gt;
ПРИЕМА ЭТА ПРОГРАММА ПРОДОЛЖАЕТ ВЫПОЛНЯТЬСЯ. ПЕРВОЕ СЛОВО&lt;br /&gt;
В БУФЕРЕ ПРИЕМА, КАК И В ОСТАЛЬНЫХ МАКРОКОМАНДАХ ЭТОГО&lt;br /&gt;
ТИПА, СОДЕРЖИТ КОЛИЧЕСТВО ПРИНЯТЫХ СЛОВ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .RCVDW  AREA,BUF,WCNT&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПРИЕМА ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 14 -&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   26   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! ЗАРЕЗЕРВИРОВАНО !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       0         !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SDAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.3.    .READ/.READC/.READW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ДАННЫЕ МАКРОКОМАНДЫ ОБЕСПЕЧИВАЮТ ПЕРЕДАЧУ УКАЗАННОГО&lt;br /&gt;
КОЛИЧЕСТВА СЛОВ ПО ЗАДАННОМУ КАНАЛУ В ПАМЯТЬ В ОДНОМ ИЗ&lt;br /&gt;
ТРЕХ РЕЖИМОВ.&lt;br /&gt;
    ПОСЛЕ ВЫПОЛНЕНИЯ ЛЮБОЙ СИСТЕМНОЙ МАКРОКОМАНДЫ ТИПА&lt;br /&gt;
.READ RO БУДЕТ СОДЕРЖАТЬ ПОЛЕЗНУЮ ИНФОРМАЦИЮ.&lt;br /&gt;
    ЕСЛИ СЧИТЫВАНИЕ ПРОИЗВОДИТСЯ С УСТРОЙСТВА&lt;br /&gt;
ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА, ТО RO СОДЕРЖИТ ТРЕБУЕМОЕ ДЛЯ&lt;br /&gt;
ОПЕРАЦИИ ЧИСЛО СЛОВ. ПРИ ОБСЛУЖИВАНИИ УСТРОЙСТВ С ПРЯМЫМ&lt;br /&gt;
ДОСТУПОМ RO СОДЕРЖИТ ФАКТИЧЕСКОЕ КОЛИЧЕСТВО СЛОВ, КОТОРОЕ&lt;br /&gt;
БУДЕТ СЧИТАНО (.READ/.READC) ИЛИ БЫЛО СЧИТАНО (.READW).&lt;br /&gt;
    ЕСЛИ СДЕЛАНА ПОПЫТКА СЧИТЫВАНИЯ ПОСЛЕ КОНЦА ФАЙЛА,&lt;br /&gt;
ТО ЧАСТИЧНАЯ ПЕРЕДАЧА ВСЕ ЖЕ ВОЗМОЖНА, НО ЭТО КОЛИЧЕСТВО&lt;br /&gt;
СЛОВ (ТАКЖЕ ОТРАЖАЕМОЕ В RO) БУДЕТ МЕНЬШЕ, ЧЕМ ТРЕБУЕТСЯ.&lt;br /&gt;
В СЛУЧАЕ ЧАСТИЧНОЙ ПЕРЕДАЧСИ УСТАНАВЛИВАЕТСЯ БИТ С, И&lt;br /&gt;
ВЫДАЕТСЯ КОД ОШИБКИ 0. ПОЭТОМУ ПРОГРАММА ВСЕГДА ДОЛЖНА&lt;br /&gt;
ИСПОЛЬЗОВАТЬ СВЕДЕНИЯ О ФАКТИЧЕСКОМ ЧИСЛЕ ПРИНЯТЫХ СЛОВ,&lt;br /&gt;
СОДЕРЖАЩИХСЯ В RO. НАПРИМЕР, ЕСЛИ ДЛЯ ФАЙЛА ДЛИНОЙ В 7&lt;br /&gt;
БЛОКОВ, ИМЕЮЩЕГО НОМЕРА БЛОКОВ С 0 ПО 6 ВЫПОЛНЯЕТСЯ&lt;br /&gt;
МАКРОКОМАНДА НА ЧТЕНИЕ 512 СЛОВ, НАЧИНАЯ С БЛОКА 6, ТО&lt;br /&gt;
СЧИТЫВАЕТСЯ ТОЛЬКО 256 СЛОВ И УСТАНАВЛИВАЕТСЯ БИТ С&lt;br /&gt;
(КОД ОШИБКИ 0 В EERWD).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ ОДИНАКОВЫ ДЛЯ ВСЕХ ТРЕХ РЕЖИМОВ:&lt;br /&gt;
            КОД             ПОЯСНЕНИЕ&lt;br /&gt;
             0          ПОПЫТКА СЧИТЫВАНИЯ ПОСЛЕ КОНЦА ФАЙЛА;&lt;br /&gt;
             1          ОШИБКА АППАРАТУРЫ;&lt;br /&gt;
             2          КАНАЛ НЕ ОТКРЫТ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.3.1.  .READ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .READ ВЫПОЛНЯЕТ ПЕРЕДАЧУ ДАННЫХ ПО&lt;br /&gt;
УКАЗАННОМУ КАНАЛУ В ПАМЯТЬ. ПОСЛЕ ТОГО, КАК ЗАПРОС&lt;br /&gt;
УСТАНОВЛЕН В ОЧЕРЕДЬ К СООТВЕТСТВУЮЩЕМУ ДРАЙВЕРУ,&lt;br /&gt;
УПРАВЛЕНИЕ НЕМЕДЛЕННО ПЕРЕДАЕТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ,&lt;br /&gt;
ПРИ ЭТОМ НИКАКИХ СПЕЦИАЛЬНЫХ ДЕЙСТВИЙ НЕ ПРЕДПРИНИМАЕТСЯ.&lt;br /&gt;
НАЗНАЧЕНИЕ КАНАЛА ПРОИЗВОДИТСЯ С ПОМОЩЬЮ МАКРОКОМАНД&lt;br /&gt;
.LOOKUP И .ENTER.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .READ   AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ 5 СЛОВ;&lt;br /&gt;
CHAN    - НОМЕ кАнАЛА;Я&lt;br /&gt;
BUF     - _АДРЕС БУФЕРА, КУДА ПОМЕЩАЮТСЯ ДАННЫЕ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
BLK     - НОМЕР БЛОКА, КОТОРЫЙ ДОЛЖЕН БЫТЬ СЧИТАН; ДЛЯ&lt;br /&gt;
          УСТРОЙСТВ С КАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК&lt;br /&gt;
          ОТНОСИТЕЛЬНО НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
          БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ (МАГНИТНЫЕ ЛЕНТЫ,&lt;br /&gt;
          КАССЕТЫ), ТО ЭТО НОМЕР АБСОЛЮТНОГО БЛОКА НА&lt;br /&gt;
          УСТРОЙСТВЕ; ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН САМ ИЗМЕНЯТЬ&lt;br /&gt;
          ЭТОТ АРГУМЕНТ ПЕРЕД ОЧЕРЕДНЫМ ИСПОЛЬЗОВАНИЕМ&lt;br /&gt;
          ДАННОЙ МАКРОКОМАНДЫ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   10   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       BLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !        1        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ДЛЯ ИСПОЛЬЗОВАНИЯ ДАННЫХ,&lt;br /&gt;
СЧИТАННЫХ ПО ОПРЕДЕЛЕННОМУ КАНАЛУ, ДОЛЖНА БЫТЬ ВЫПОЛНЕНА&lt;br /&gt;
МАКРОКОМАНДА .WAIT, КОТОРАЯ ПЕРЕВОДИТ ПРОГРАММУ В&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 15 -&lt;br /&gt;
&lt;br /&gt;
СОСТОЯНИЕ ОЖИДАНИЯ ДО ЗАВЕРШЕНИЯ ОПЕРАЦИИ ВВОДА/ВЫВОДА.&lt;br /&gt;
МАКРОКОМАНДА .WAIT ОТСЛЕЖИВАЕТ ОШИБКИ, КОТОРЫЕ МОГУТ&lt;br /&gt;
ПОЯВИТЬСЯ ВО ВРЕМЯ ПЕРЕДАЧИ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.3.2.  .READC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА ПЕРЕДАЕТ НЕОБХОДИМОЕ ЧИСЛО СЛОВ ПО&lt;br /&gt;
УКАЗАННОМУ КАНАЛУ В ПАМЯТЬ. УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ&lt;br /&gt;
ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ СРАЗУ ПОСЛЕ ТОГО, КАК ЗАПРОС&lt;br /&gt;
ПОСТАВЛЕН В ОЧЕРЕДЬ. ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ПРОДОЛЖАЕТ&lt;br /&gt;
ВЫПОЛНЯТЬСЯ ДО ОКОНЧАНИЯ ВВОДА ДАННЫХ, ЗАТЕМ УПРАВЛЕНИЕ&lt;br /&gt;
ПЕРЕДАЕТСЯ ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ, УКАЗАННОЙ В&lt;br /&gt;
МАКРОКОМАНДЕ. ПОСЛЕ ВЫПОЛНЕНИЯ ИНСТРУКЦИИ RTS РС В&lt;br /&gt;
ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ&lt;br /&gt;
ПРЕРВАННОЙ ПРОГРАММЕ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .READC  AREA,CHAN,BUF,WCNT,CRTN,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА, КУДА ПОМЕЩАЮТСЯ ДАННЫЕ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
BLK     - НОМЕР БЛОКА, КОТОРЫЙ ДОЛЖЕН БЫТЬ СЧИТАН; ДЛЯ&lt;br /&gt;
          УСТРОЙСТВ С КАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК&lt;br /&gt;
          ОТНОСИТЕЛЬНО НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
          БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ (МАГНИТНЫЕ ЛЕНТЫ,&lt;br /&gt;
          КАССЕТЫ), ТО ЭТО НОМЕР АБСОЛЮТНОГО БЛОКА НА&lt;br /&gt;
          УСТРОЙСТВЕ; ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН САМ ИЗМЕНЯТЬ&lt;br /&gt;
          ЭТОТ АРГУМЕНТ ПЕРЕД ОЧЕРЕДНЫМ ИСПОЛЬЗОВАНИЕМ&lt;br /&gt;
          ДАННОЙ МАКРОКОМАНДЫ;&lt;br /&gt;
CRTN    - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   10   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       BLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      CRTN       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ПРИ ВХОДЕ В ПОДПРОГРАММУ ЗАВЕРШЕНИЯ:&lt;br /&gt;
        - RO СОДЕРЖИТ СЛОВО СОСТОЯНИЯ КАНАЛА;&lt;br /&gt;
          УСТАНОВЛЕННЫЙ В НЕМ БИТ 0 ОЗНАЧАЕТ ВОЗНИКШУЮ ПРИ&lt;br /&gt;
          ПЕРЕДАЧЕ АППАРАТНУЮ ОШИБКУ;&lt;br /&gt;
&lt;br /&gt;
        - R1 СОДЕРЖИТ ВОСЬМЕРИЧНЫЙ НОМЕР КАНАЛА; ЕГО&lt;br /&gt;
          УДОБНО ИСПОЛЬЗОВАТЬ, КОГДА ОДНА И ТА ЖЕ&lt;br /&gt;
          ПОДПРОГРАММА ЗАВЕРШЕНИЯ ПРИМЕНЯЕТСЯ ДЛЯ РАБОТЫ С&lt;br /&gt;
          НЕСКОЛЬКИМИ КАНАЛАМИ.&lt;br /&gt;
&lt;br /&gt;
 П_P_И_M_E_Ч_A_H_И_E. В ПОДПРОГРАММАХ ЗАВЕРШЕНИЯ&lt;br /&gt;
НЕДОПУСТИМО ИСПОЛЬЗОВАНИЕ МАКРОКОМАНД, ТРЕБУЮЩИХ USR (СМ.&lt;br /&gt;
Т.3 КН.2 Ч.1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.3.3.  .READW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЭТА МАКРОКОМАНДА ПЕРЕДАЕТ УКАЗАННОЕ КОЛИЧЕСТВО СЛОВ&lt;br /&gt;
ПО ОПРЕДЕЛЕННОМУ КАНАЛУ В ПАМЯТЬ. УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ&lt;br /&gt;
ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ ТОЛЬКО ПОСЛЕ ЗАВЕРШЕНИЯ ОПЕРАЦИИ&lt;br /&gt;
ЧТЕНИЯ ИЛИ ПРИ ОБНАРУЖЕНИИ ОШИБКИ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                    .READW  AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА, КУДА ПОМЕЩАЮТСЯ ДАННЫЕ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 16 -&lt;br /&gt;
&lt;br /&gt;
BLK     - НОМЕР БЛОКА, КОТОРЫЙ ДОЛЖЕН БЫТЬ СЧИТАН; ДЛЯ&lt;br /&gt;
          УСТРОЙСТВ С КАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК&lt;br /&gt;
          ОТНОСИТЕЛЬНО НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
          БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ (МАГНИТНЫЕ ЛЕНТЫ,&lt;br /&gt;
          КАССЕТЫ), ТО ЭТО НОМЕР АБСОЛЮТНОГО БЛОКА НА&lt;br /&gt;
          УСТРОЙСТВЕ; ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН САМ ИЗМЕНЯТЬ&lt;br /&gt;
          ЭТОТ АРГУМЕНТ ПЕРЕД ОЧЕРЕДНЫМ ИСПОЛЬЗОВАНИЕМ&lt;br /&gt;
          ДАННОЙ МАКРОКОМАНДЫ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   10   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       BLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !        0        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ЕСЛИ ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .READW УСТАНОВЛЕН&lt;br /&gt;
С БИТ, ЭТО ОЗНАЧАЕТ, ЧТО ПРОИЗОШЛА ОШИБКА ПЕРЕДАЧИ. В&lt;br /&gt;
ТО ВРЕМЯ КАК ПРОГРАММА, ВЫПОЛНЯЮЩАЯ МАКРОКОМАНДУ, ОЖИДАЕТ&lt;br /&gt;
ВВОДА/ВЫВОДА, В СИСТЕМЕ МОЖЕТ ВЫПОЛНЯТЬСЯ ДРУГАЯ (ФОНОВАЯ&lt;br /&gt;
ИЛИ ОПЕРАТИВНАЯ) ПРОГРАММА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .WRITE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.4.    .SDAT/.SDATC/.SDATW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНЫЕ МАКРОКОМАНДЫ ТИПА .SDAT ПРИМЕНЯЮТСЯ В&lt;br /&gt;
СОЧЕТАНИИ С МАКРОКОМАНДАМИ .RCVD/.RCVDC/.RCVDW ДЛЯ&lt;br /&gt;
ОСУЩЕСТВЛЕНИЯ ПЕРЕДАЧИ СООБЩЕНИЙ. ЭТИ МАКРОКОМАНДЫ&lt;br /&gt;
ВЫПОЛНЯЮТСЯ АНАЛОГИЧНО МАКРОКОМАНДАМ ТИПА .WRITE, НО&lt;br /&gt;
ПЕРЕДАЧА ПРОИСХОДИТ НЕ НА ПЕРЕФИРИЙНОЕ УСТРОЙСТВО, А В&lt;br /&gt;
СООТВЕТСТВУЮЩУЮ ПРОГРАММУ, РАБОТАЮЩУЮ В ДРУГОМ РАЗДЕЛЕ И&lt;br /&gt;
СОДЕРЖАЩУЮ МАКРОКОМАНДУ ТИПА .RCVD.&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ДЛЯ МАКРОКОМАНД ТИПА .SDAT&lt;br /&gt;
ДЕЙСТВИТЕЛЬНЫ ВСЕ СОГЛАШЕНИЯ И ЗАМЕЧАНИЯ, КАСАЮЩИЕСЯ&lt;br /&gt;
МАКРОКОМАНД ТИПА .RCVD.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ ОДИНАКОВЫ ДЛЯ ВСЕХ ТРЕХ РЕЖИМОВ:&lt;br /&gt;
            КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
             0          ОТСУТСТВУЕТ ДРУГОЕ ЗАДАНИЕ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.4.1.  .SDAT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ВЫПОЛНЯЕТ ПЕРЕДАЧУ УКАЗАННОГО КОЛИЧЕСТВА СЛОВ.&lt;br /&gt;
УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ СРАЗУ ПОСЛЕ&lt;br /&gt;
ТОГО, КАК ЗАПРОС ПОСТАВЛЕН В ОЧЕРЕДЬ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .SDAT   AREA,BUF,WCNT&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПЕРЕДАЧИ ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   25   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! НЕ ИСПОЛЬЗУЕТСЯ !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !        1        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.4.2.  .SDATC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ВЫПОЛНЯЕТ ПЕРЕДАЧУ УКАЗАННОГО КОЛИЧЕСТВА СЛОВ.&lt;br /&gt;
УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ НЕМЕДЛЕННО&lt;br /&gt;
ПОСЛЕ ТОГО, КАК ЗАПРОС ПОСТАВЛЕН В ОЧЕРЕДЬ. ВЫПОЛНЕНИЕ&lt;br /&gt;
ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ ПРОДОЛЖАЕТСЯ ДО ОКОНЧАНИЯ&lt;br /&gt;
ПЕРЕДАЧИ, ЗАТЕМ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПОДПРОГРАММЕ&lt;br /&gt;
ЗАВЕРШЕНИЯ, А ПО ИНСТРУКЦИИ RTS PC В ПОДПРОГРАММЕ&lt;br /&gt;
ЗАВЕРШЕНИЯ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПРЕРВАННОЙ ПРОГРАММЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                    .SDATC  AREA,BUF,WCNT,CRTN&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 17 -&lt;br /&gt;
&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПЕРЕДАЧИ ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
CRTN    - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   25   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! НЕ ИСПОЛЬЗУЕТСЯ !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      CRTN       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.4.3.  .SDATW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ВЫПОЛНЯЕТ ПЕРЕДАЧУ УКАЗАННОГО КОЛИЧЕСТВА СЛОВ.&lt;br /&gt;
УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ&lt;br /&gt;
ЗАВЕРШЕНИЯ ПЕРЕДАЧИ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .SDATW  AREA,BUF,WCNT&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС 5 СЛОВ БЛОКА АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ДЛЯ ПЕРЕДАЧИ ДАННЫХ;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   25   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        ! НЕ ИСПОЛЬЗУЕТСЯ !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !        0        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИВЕДЕННОМ ПРИМЕРЕ ФОНОВАЯ ПРОГРАММА ПОСЫЛАЕТ&lt;br /&gt;
СООБЩЕНИЕ В ОПЕРАТИВНУЮ ПРОГРАММУ ПОСРЕДСТВОМ МАКРОКОМАНД&lt;br /&gt;
.SDAT И .SDATW.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ПРИНИМАЮЩАЯ ПРОГРАММА:&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .RCVD,.MWAIT,.EXIT,.RCVDC,.PRINT&lt;br /&gt;
ST:      MOV    #AREA,R5&lt;br /&gt;
        .RCVD   R5,#BUFF,#20.       ;ПРИНЯТЬ СООБЩЕНИЕ&lt;br /&gt;
         BCS    NRC&lt;br /&gt;
        .MWAIT&lt;br /&gt;
        .PRINT  #BUFF+2             ;ПЕЧАТЬ ПРИНЯТОГО&lt;br /&gt;
                                    ;ТЕКСТА&lt;br /&gt;
        .RCVDC  R5,#BUUF1,#20.,#PROG1   ;ПРИНЯТЬ&lt;br /&gt;
                                        ;ВТОРОЕ СООБЩЕНИЕ&lt;br /&gt;
         BCS    NRCC                ;И ВВЕСТИ П/П ЗАВЕРШЕНИЯ&lt;br /&gt;
        .MWAIT                      ;ОЖИДАТЬ ПРИЕМА&lt;br /&gt;
        .PRINT  #MSG4&lt;br /&gt;
        .EXIT&lt;br /&gt;
PROG1:  .PRINT  #BUFF1+2            ;П/П ЗАВЕРШЕНИЯ, ПЕЧАТЬ&lt;br /&gt;
         RTS    PC                  ;ПРИНЯТОГО СООБЩЕНИЯ&lt;br /&gt;
NRC:    .PRINT  #NORC&lt;br /&gt;
        .EXIT&lt;br /&gt;
NRCC:   .PRINT  #NORCC&lt;br /&gt;
        .EXIT&lt;br /&gt;
NORC:   .ASCIZ  /НЕТ ВТОРОГО ЗАДАНИЯ/&lt;br /&gt;
NORCC:  .ASCIZ  /ОШИБКА .RCVDC/&lt;br /&gt;
        .EVEN&lt;br /&gt;
BUFF:   .WORD   0                   ;БУФЕР ДЛЯ&lt;br /&gt;
        .BLKW   20.                 ;ПЕРВОГО СООБЩЕНИЯ&lt;br /&gt;
BUFF1:  .WORD   0                   ;ДЛЯ ВТОРОГО&lt;br /&gt;
        .BLKW   20&lt;br /&gt;
MSG4:   .ASCIZ  /ПЕРЕДАЧА ОКОНЧЕНА/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
ПЕРЕДАЮЩАЯ ПРОГРАММА:&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .SDAT,.RCVD,.MWAIT,.SDATC,.PRINT,.EXIT&lt;br /&gt;
ST:      MOV    #AREA,RO&lt;br /&gt;
        .SDAT   RO,#MSG,#COUNT      ;ПЕРЕДАТЬ СООБЩЕНИЕ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 18 -&lt;br /&gt;
&lt;br /&gt;
         BCS    NSD&lt;br /&gt;
        .SDATS  R5,#MSG1,#COUNT1,#PROG      ;ПЕРЕДАТЬ&lt;br /&gt;
         BCS    NSD1                        ;ВТОРОЕ СООБЩЕНИЕ&lt;br /&gt;
        .PRINT  #MSG3&lt;br /&gt;
        .EXIT&lt;br /&gt;
PROG:   .PRINT  #MSG2               ;П/П ЗАВЕРШЕНИЯ, ПЕЧАТЬ&lt;br /&gt;
         RTS    PC                  ;СООБЩЕНИЯ&lt;br /&gt;
NSD:    .PRINT  #NOSD&lt;br /&gt;
        .EXIT&lt;br /&gt;
NSD1:   .PRINT  #NOSD1&lt;br /&gt;
        .EXIT&lt;br /&gt;
MSG:    .ASCIZ  /СООБЩЕНИЕ/         ;ТЕКСТ ПЕРВОГО СООБЩЕНИЯ/&lt;br /&gt;
COUNT = .- MSG+1/2&lt;br /&gt;
        .EVEN&lt;br /&gt;
MSG1:   .ASCIZ  /ЕЩЕ ОДНО СООБЩЕНИЕ/&lt;br /&gt;
COUNT1 = .- MSG1+1/2&lt;br /&gt;
        .EVEN&lt;br /&gt;
MSG2:   .ASCIZ  /ПЕРЕДАЧА ОКОНЧЕНА/&lt;br /&gt;
MSG3:   .ASCIZ  /ИДЕТ ПЕРЕДАЧА СООБЩЕНИЯ/&lt;br /&gt;
NOSD:   .ASCIZ  /НЕТ ДРУГОГО ЗАДАНИЯ/&lt;br /&gt;
NOSD1:  .ASCIZ  /ОШИБКА .SDATC/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.5.    .SPFUN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЭТА СИСТЕМНАЯ МАКРОКОМАНДА ИСПОЛЬЗУЕТСЯ ДРАЙВЕРАМИ&lt;br /&gt;
УСТРОЙСТВ ДЛЯ ВЫПОЛНЕНИЯ СПЕЦИАЛЬНЫХ ФУНКЦИЙ, ЗАВИСЯЩИХ&lt;br /&gt;
ОТ УСТРОЙСТВ. НАПРИМЕР, ОБРАТНАЯ ПЕРЕМОТКА МАГНИТНОЙ&lt;br /&gt;
ЛЕНТЫ. МАКРОКОМАНДА МОЖЕТ ТАКЖЕ ИСПОЛЬЗОВАТЬСЯ С ДИСКОМ&lt;br /&gt;
DX: ДЛЯ СЧИТЫВАНИЯ И ЗАПИСИ АБСОЛЮТНЫХ СЕКТОРОВ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .SPFUN  AREA,CHAN,FUNC,BUF,WCNT,BLK,CRTN&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - БЛОК АРГУМЕНТОВ ЕМТ ИЗ 6 СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
FUNC    - КОД ФУНКЦИИ, КОТОРУЮ НЕОБХОДИМО ВЫПОЛНИТЬ;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА; ЕСЛИ БУФЕР НЕ НУЖЕН, НЕОБХОДИМО&lt;br /&gt;
          ЭТОТ ПАРАМЕТР УСТАНОВИТЬ В 0;&lt;br /&gt;
WCNT    - ЭТОТ АРГУМЕНТ ЯВЛЯЕТСЯ СПЕЦИФИЧНЫМ ДЛЯ КАЖДОГО&lt;br /&gt;
          КОНКРЕТНОГО ДРАЙВЕРА И ВОЗМОЖНО, БУДЕТ ЗАВИСЕТЬ&lt;br /&gt;
          ОТ УКАЗАННОЙ ФУНКЦИИ;&lt;br /&gt;
BLK     - ДАННЫЙ АРГУМЕНТ ИСПОЛЬЗУЕТСЯ АНАЛОГИЧНО&lt;br /&gt;
          АРГУМЕНТУ WCNT;&lt;br /&gt;
CRTN    - ТОЧКА ВХОДА В ПОДПРОГРАММУ ЗАВЕРШЕНИЯ; КОГДА&lt;br /&gt;
          ЭТОТ АРГУМЕНТ ПРОПУЩЕН, ТО АВТОМАТИЧЕСКИ&lt;br /&gt;
          УСТАНАВЛИВАЕТСЯ 0; ЕСЛИ CRTN=0 РЕЖИМ АНАЛОГИЧЕН&lt;br /&gt;
          .READW; ЕСЛИ CRTN=1 РЕЖИМ АНАЛОГИЧЕН .READ; ЕСЛИ&lt;br /&gt;
          CRTN&amp;gt;500, ТО ЭТО АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!---------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   32   !  CHAN   !&lt;br /&gt;
                        !--------!---------!&lt;br /&gt;
                        !       BLK        !&lt;br /&gt;
                        !------------------!&lt;br /&gt;
                        !       BUF        !&lt;br /&gt;
                        !------------------!&lt;br /&gt;
                        !      WCNT        !&lt;br /&gt;
                        !------------------!&lt;br /&gt;
                        !       377        !&lt;br /&gt;
                        !------------------!&lt;br /&gt;
                        !      CRTN        !&lt;br /&gt;
                        !------------------!&lt;br /&gt;
&lt;br /&gt;
    АРГУМЕНТЫ BLK, CHAN И WCNT МОГУТ ОПРЕДЕЛЯТЬСЯ ТАК&lt;br /&gt;
ЖЕ, КАК ДЛЯ ОПЕРАЦИИ .READ/.WRITE.&lt;br /&gt;
МАКРОКОМАНДА .SPFUN ДАЕТ ВОЗМОЖНОСТЬ ВЫПОЛНЯТЬ СЛЕДУЮЩИЕ&lt;br /&gt;
ФУНКЦИИ:&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 19 -&lt;br /&gt;
&lt;br /&gt;
        ФНКЦИЯ                  МТ              СТ&lt;br /&gt;
        ------                  --              --&lt;br /&gt;
ПЕРЕМОТКА ВПЕРЕД ДО&lt;br /&gt;
ПОСЛЕДНЕГО ФАЙЛА                                377&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА ВПЕРЕД ДО&lt;br /&gt;
ПОСЛЕДНЕГО БЛОКА                                376&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА ВПЕРЕД ДО&lt;br /&gt;
СЛЕДУЮЩЕГО ФАЙЛА                                375&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА ВПЕРЕД ДО&lt;br /&gt;
СЛЕДУЮЩЕГО БЛОКА                                374&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА ДО ТОЧКИ&lt;br /&gt;
ЗАГРУЗКИ                        373             373&lt;br /&gt;
&lt;br /&gt;
ЗАПИСАТЬ МЕЖФАЙЛОВЫЙ&lt;br /&gt;
ПРОМЕЖУТОК                                      372&lt;br /&gt;
&lt;br /&gt;
ЗАПИСАТЬ ЕОF                    377&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА ВПЕРЕД НА&lt;br /&gt;
ОДНУ ЗАПИСЬ                     376&lt;br /&gt;
&lt;br /&gt;
ПЕРЕМОТКА НАЗАД НА&lt;br /&gt;
ОДНУ ЗАПИСЬ                     375&lt;br /&gt;
&lt;br /&gt;
ЗАПИСЬ                          371&lt;br /&gt;
&lt;br /&gt;
ЧТЕНИЕ                          370&lt;br /&gt;
&lt;br /&gt;
ЗАПИСЬ С РАСШИРЕННЫМ&lt;br /&gt;
МЕЖФАЙЛОВЫМ ПРОМЕЖУТКОМ         374&lt;br /&gt;
&lt;br /&gt;
ОБРАТНАЯ ПЕРЕМОТКА&lt;br /&gt;
В АВТОНОМНОМ РЕЖИМЕ             372&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        ФУНКЦИЯ                 DX&lt;br /&gt;
        -------                 --&lt;br /&gt;
&lt;br /&gt;
ЗАПИСЬ СО СТИРАНИЕМ&lt;br /&gt;
МАРКЕРА ДАННЫХ                  З75&lt;br /&gt;
&lt;br /&gt;
ЗАПИСЬ                          376&lt;br /&gt;
&lt;br /&gt;
ЧТЕНИЕ                          377&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ДЛЯ МАГНИТНОЙ ЛЕНТЫ ММ: КОДЫ&lt;br /&gt;
ПОЛНОСТЬЮ СОВПАДАЮТ С КОДАМИ ДЛЯ МТ:.&lt;br /&gt;
    СЛЕДУЕТ ОТМЕТИТЬ, ЧТО КОД ФУНКЦИИ ЗАНИМАЕТ ТОЛЬКО&lt;br /&gt;
ОДИН БАЙТ И ЕГО ЗНАЧЕНИЕ ВСЕГДА ОТРИЦАТЕЛЬНО. ДОПУСТИМЫЕ&lt;br /&gt;
ЗНАЧЕНИЯ КОДА НЕ ВЫХОДЯТ ЗА ПРЕДЕЛЫ ОТ -1 ДО -128&lt;br /&gt;
ДЕСЯТИЧНЫХ (ОТ 377 ДО 200 ВОСЬМЕРИЧНЫХ).&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ПЕРЕД ВЫПОЛНЕНИЕМ МАКРОКОМАНДЫ&lt;br /&gt;
.SPFUN ДРАЙВЕР СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА ДОЛЖЕН БЫТЬ&lt;br /&gt;
ЗАГРУЖЕН В ПАМЯТЬ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0          ПОПЫТКА СЧИТЫВАНИЯПОСЛЕ КОНЦА ФАЙЛА;&lt;br /&gt;
         1          ОШИБКА КАНАЛА;&lt;br /&gt;
         2          УКАЗАННЫЙ КАНАЛ НЕ ОТКРЫТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
В ПРИВЕДЕННОМ ПРИМЕРЕ ПРОИЗВОДИТСЯ ПЕРЕМОТКА КАССЕТЫ И&lt;br /&gt;
ЗАПИСЫВАЕТСЯ БЛОК В 256 СЛОВ И МЕЖФАЙЛОВЫЙ ПРОМЕЖУТОК.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .PRINT,.FETCH,.LOOKUP,.SPFUN&lt;br /&gt;
        .MCALL  .WRITW,.EXIT,.WAIT,.CLOSE&lt;br /&gt;
ST:     .FETCH  #HSPC,#CT           ;ЗАГРУЗИТЬ ДРАЙВЕР СТ&lt;br /&gt;
         BCS    LKERR&lt;br /&gt;
        .LOOKUP #AREA,#4,#ST&lt;br /&gt;
         BCS    LKERR&lt;br /&gt;
        .SPFUN  #AREA,#4,#373,#0    ;ПЕРЕМОТАТЬ СИНХРОННО&lt;br /&gt;
         BCS    SERR&lt;br /&gt;
        .WRITW  #AREA,#4,#BUFF,#256.,BLK&lt;br /&gt;
         BCS    WTERR&lt;br /&gt;
        .SPFUN  #AREA,#4,#372,#1    ;ЗАПИСЬ МЕЖФАЙЛОВОГО&lt;br /&gt;
                                    ;ПРОМЕЖУТКА&lt;br /&gt;
        .PRINT  #DONE&lt;br /&gt;
        .WAIT   #4&lt;br /&gt;
        .CLOSE  #4&lt;br /&gt;
        .EXIT&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
FERR:   .PRINT  #FMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
LKERR:  .PRINT  #LKMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
SERR:   .PRINT  #SMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
WTERR:  .PRINT  #WTMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
DONE:   .ASCIZ  /КОНЕЦ РАБОТЫ/&lt;br /&gt;
FMSG:   .ASCIZ  /ОШИБКА FETCH/&lt;br /&gt;
LKMSG:  .ASCIZ  /ОШИБКА LOOKUP/&lt;br /&gt;
SMSG:   .ASCIZ  /ОШИБКА SPFUN/&lt;br /&gt;
WTMSG:  .ASCIZ  /ОШИБКА WRITW/&lt;br /&gt;
        .EVEN&lt;br /&gt;
CT:     .RAD50  /CT/&lt;br /&gt;
        .WORD   0,0,0&lt;br /&gt;
BUFF:   .BLKW   256&lt;br /&gt;
BLK:    .WORD   0&lt;br /&gt;
HSPC =  .&lt;br /&gt;
        .END    ST&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 20 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.6.    .TTYIN/.TTINR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЭТИ СИСТЕМНЫЕ МАКРОКОМАНДЫ ПРОИЗВОДЯТ ПЕРЕДАЧУ&lt;br /&gt;
ЗНАКОВ С СИСТЕМНОГО ТЕРМИНАЛА В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
ПЕРЕСЫЛАЕМЫЙ СИМВОЛ МОЖЕТ БЫТЬ ПОМЕЩЕН ЛИБО В RO, ЛИБО В&lt;br /&gt;
RO И КАКУЮ-НИБУДЬ ЯЧЕЙКУ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .TTYIN   CHAR&lt;br /&gt;
                        .TTINR&lt;br /&gt;
ГДЕ&lt;br /&gt;
CHAR    - АДРЕС ПАМЯТИ, КУДА ПЕРЕСЫЛАЕТСЯ СИМВОЛ ИЗ RO.&lt;br /&gt;
ЕСЛИ АРГУМЕНТ CHAR НЕ УКАЗАН, ТО СИМВОЛ ОСТАЕТСЯ В RO И&lt;br /&gt;
РАСПОЛАГАЕТСЯ В ЕГО МЛАДШЕМ БАЙТЕ.&lt;br /&gt;
МАКРОКОМАНДА .TTYIN РАСШИРЯЕТСЯ В ПОСЛЕДОВАТЕЛЬНОСТЬ:&lt;br /&gt;
        EMT     340&lt;br /&gt;
        BCS     .-2&lt;br /&gt;
A .TTINR КАК&lt;br /&gt;
        EMT     340&lt;br /&gt;
    ПРИ РАБОТЕ .TTYIN ВЫПОЛНЕНИЕ ОСНОВНОЙ ПРОГРАММЫ&lt;br /&gt;
ПРИОСТАНАВЛИВАЕТСЯ ДО ТЕХ ПОР, ПОКА СИМВОЛ НЕ БУДЕТ&lt;br /&gt;
ВВЕДЕН. ПРИ ИСПОЛЬЗОВАНИИ .TTINR, ЕСЛИ НЕТ ЗНАКА (БИТ 12&lt;br /&gt;
JSW РАВЕН 1)  ИЛИ СТРОКИ (БИТ 12 JSW РАВЕН 0) НА ВВОД, ТО&lt;br /&gt;
ВЫПОЛНЯЕТСЯ ВОЗВРАТ ИЗ МАКРОКОМАНДЫ С УСТАНОВЛЕННЫМ БИТОМ&lt;br /&gt;
С.&lt;br /&gt;
    СЛЕДУЕТ ИМЕТЬ ВВИДУ, ЧТО ПОД УПРАВЛЕНИЕМ FB- ИЛИ&lt;br /&gt;
ХМ- МОНИТОРА МАКРОКОМАНДА .TTINR НЕ БУДЕТ УСТАНАВЛИВАТЬ&lt;br /&gt;
БИТ С, ЕСЛИ ПРЕДВАРИТЕЛЬНО НЕ УСТАНОВЛЕН БИТ 6 В JSW.&lt;br /&gt;
    ИСПОЛЬЗУЯ БИТ 12 В JSW, МОЖНО УПРАВЛЯТЬ РЕЖИМАМИ&lt;br /&gt;
РАБОТЫ СИСТЕМНОГО ТЕРМИНАЛА (ТТ:). СУЩЕСТВУЕТ ДВА РЕЖИМА&lt;br /&gt;
РАБОТЫ:&lt;br /&gt;
&lt;br /&gt;
    БИТ 12=0&lt;br /&gt;
ПРОИЗВОДИТСЯ ОБЫЧНЫЙ ВВОД/ВЫВОД, ДЛЯ КОТОРОГО&lt;br /&gt;
ВЫПОЛНЯЕТСЯ:&lt;br /&gt;
        - ВСЕ НАБРАННЫЕ СИМВОЛЫ ОТОБРАЖАЮТСЯ НА ЭКРАНЕ&lt;br /&gt;
          (ЭХО-ПЕЧАТЬ);&lt;br /&gt;
        - ВЫПОЛНЯЕТСЯ СТИРАНИЕ СТРОКИ ИЛИ СИМВОЛА С&lt;br /&gt;
          ПОМОЩЬЮ СООТВЕТСТВЕННО СПЕЦИАЛЬНЫХ КОМАНД&lt;br /&gt;
          ОПЕРАТОРА &amp;lt;CTRL/U&amp;gt; ИЛИ &amp;lt;DEL&amp;gt;;&lt;br /&gt;
        - СИМВОЛЫ ТЕКУЩЕЙ СТРОКИ БУДУТ ПЕРЕДАНЫ В&lt;br /&gt;
          ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ НАЖАТИЯ &amp;lt;CTRL/Z&amp;gt;,&lt;br /&gt;
          &amp;lt;CTRL/C&amp;gt;, &amp;lt;CR&amp;gt; И &amp;lt;LF&amp;gt;; ДО ИХ ПОЯВЛЕНИЯ СИМВОЛЫ&lt;br /&gt;
          СОБИРАЮТСЯ В БУФЕРЕ УСТРОЙСТВА (КОДЫ &amp;lt;CR&amp;gt; И &amp;lt;LF&amp;gt;&lt;br /&gt;
          ТАКЖЕ ПЕРЕСЫЛАЮТСЯ В ПРОГРАММУ).&lt;br /&gt;
&lt;br /&gt;
    БИТ 12=1&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
СИСТЕМНЫЙ ТЕРМИНАЛ НАХОДИТСЯ В СПЕЦИАЛЬНОМ РЕЖИМЕ, ПРИ&lt;br /&gt;
ЭТОМ:&lt;br /&gt;
        - НИ ОДИН ИЗ НАБИРАЕМЫХ НА КЛАВИАТУРЕ ТЕРМИНАЛА&lt;br /&gt;
          СИМВОЛОВ НЕ ОТОБРАЖАЕТСЯ НА ЭКРАНЕ, КРОМЕ&lt;br /&gt;
          &amp;lt;CTRL/C&amp;gt; И &amp;lt;CTRL/O&amp;gt;;&lt;br /&gt;
        - &amp;lt;CTRL/U&amp;gt; И &amp;lt;DEL&amp;gt; НЕ ВЫПОЛНЯЮТ СВОИХ ФУНКЦИЙ И&lt;br /&gt;
          ПЕРЕДАЮТСЯ ПРОГРАММЕ КАК ОБЫЧНЫЕ ЗНАКИ;&lt;br /&gt;
        - СИМВОЛЫ ПО ОДНОМУ ПЕРЕДАЮТСЯ В ПРОГРАММУ&lt;br /&gt;
          ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ЭТОТ БИТ ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН УСТАНАВЛИВАТЬ САМ. ПРИ&lt;br /&gt;
ВОЗВРАЩЕНИИ УПРАВЛЕНИЯ СИСТЕМЕ ОН СБРАСЫВАЕТСЯ.&lt;br /&gt;
КОМБИНАЦИИ &amp;lt;CTRL/F&amp;gt; И &amp;lt;CTRL/B&amp;gt; НЕ ЗАВИСЯТ ОТ БИТА 12.&lt;br /&gt;
    КОМБИНАЦИИ &amp;lt;CTRL/S&amp;gt; И &amp;lt;CTRL/Q&amp;gt; НЕ БУДУТ&lt;br /&gt;
ФУНКЦИОНИРОВАТЬ КАК ОБЫЧНО, ЕСЛИ БЫЛА ВЫПОЛНЕНА КОМАНДА&lt;br /&gt;
(ДЛЯ FB- И ХМ- МОНИТОРОВ) SET TT NOPAGE.&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. МАКРОКОМАНДА .TTYIN НЕ&lt;br /&gt;
СЧИТЫВАЕТ ДАННЫХ ИЗ КОМАНДНОГО ФАЙЛА. ЕСЛИ ПРИ&lt;br /&gt;
ИСПОЛЬЗОВАНИИ КОМАНДНЫХ ФАЙЛОВ НЕОБХОДИМА ТАКАЯ ФУНКЦИЯ,&lt;br /&gt;
ИСПОЛЬЗУЕТСЯ МАКРОКОМАНДА .GTLIN.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ ОДИНАКОВЫ ДЛЯ ОБОИХ РЕЖИМОВ:&lt;br /&gt;
            КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
             0          В КОЛЬЦЕВОМ БУФЕРЕ ВЫВОДА НЕТ СИМВОЛОВ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .TTYOUT/.TTOUTR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.7.    .TTYOUT/.TTOUTR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНЫЕ МАКРОКОМАНДЫ .TTYOUT И .TTOUTR ВЫПОЛНЯЮТ&lt;br /&gt;
ПЕРЕДАЧУ СИМВОЛОВ ИЗ RO НА СИСТЕМНЫЙ ТЕРМИНАЛ.&lt;br /&gt;
    РАЗНИЦА МЕЖДУ НИМИ В ТОМ, ЧТО В СЛУЧАЕ, ЕСЛИ В&lt;br /&gt;
БУФЕРЕ МОНИТОРА НЕТ МЕСТА ДЛЯ СИМВОЛА ИЗ RO, ТО&lt;br /&gt;
МАКРОКОМАНДА .TTYOUT ПРИОСТАНОВИТ ВЫПОЛНЕНИЕ ВСЕЙ&lt;br /&gt;
ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ И БУДЕТ ОЖИДАТЬ ПОЯВЛЕНИЕ&lt;br /&gt;
СВОБОДНОЙ ЯЧЕЙКИ, В ТО ВРЕМЯ КАК МАКРОКОМАНДА .TTOUTR&lt;br /&gt;
ПРОДОЛЖИТ ВЫПОЛНЕНИЕ ПРОГРАММЫ, ДАЖЕ ЕСЛИ СИМВОЛ НЕ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 21 -&lt;br /&gt;
&lt;br /&gt;
ПЕРЕДАН ИЗ RO В МОНИТОР.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .TTYOUT     CHAR&lt;br /&gt;
                        .TTOUTR&lt;br /&gt;
ГДЕ&lt;br /&gt;
CHAR    - АДРЕС ЯЧЕЙКИ, СОДЕРЖАЩЕЙ СИМВОЛ, КОТОРЫЙ БУДЕТ&lt;br /&gt;
          ЗАГРУЖЕН В RO И ПЕРЕДАН В МОНИТОР.&lt;br /&gt;
ЕСЛИ АРГУМЕНТ CHAR НЕ УКАЗАН, ТО В МОНИТОР БУДЕТ ПЕРЕДАНО&lt;br /&gt;
СОДЕРЖИМОЕ RO.&lt;br /&gt;
    ЕСЛИ ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .TTOUTR БИТ С&lt;br /&gt;
УСТАНОВЛЕН, ЭТО ОЗНАЧАЕТ, ЧТО В БУФЕРЕ НЕТ МЕСТА, И&lt;br /&gt;
СИМВОЛ НЕ БЫЛ ВЫВЕДЕН. КОГДА В СИСТЕМЕ ФУНКЦИОНИРУЕТ FB-&lt;br /&gt;
ИЛИ ХМ- МОНИТОР, .TTOUTR НЕ УСТАНАВЛИВАЕТ БИТ ПЕРЕНОСА,&lt;br /&gt;
ВМЕСТО ЭТОГО ПРОГРАММА БЛОКИРУЕТСЯ ДО ТЕХ ПОР, ПОКА НЕ&lt;br /&gt;
ОСВОБОДИТСЯ МЕСТО В БУФЕРЕ ВЫВОДА. ЕСЛИ НЕОБХОДИМО&lt;br /&gt;
ИЗБЕЖАТЬ ПОДОБНУЮ СИТУАЦИЮ, Т.Е. ПРОДОЛЖИТЬ ВЫПОЛНЕНИЕ&lt;br /&gt;
ПРОГРАММЫ И ИМЕТЬ ВОЗМОЖНОСТЬ УСТАНАВЛИВАТЬ БИТ С, ТО&lt;br /&gt;
НЕОБХОДИМО УСТАНОВИТЬ БИТ 6 В JSW ПЕРЕД ВЫПОЛНЕНИЕМ&lt;br /&gt;
МАКРОКОМАНДЫ .TTOUTR.&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ЕСЛИ ОПЕРАТИВНАЯ ПРОГРАММА&lt;br /&gt;
ОСТАВИТ БИТ 6 В JSW УСТАНОВЛЕННЫМ, ТО ЛЮБЫЕ ПОСЛЕДУЮЩИЕ&lt;br /&gt;
МАКРОКОМАНДЫ .TTYIN И .TTYOUT ЗАБЛОКИРУЮТ ФОНОВУЮ&lt;br /&gt;
ПРОГРАММУ. ПОСКОЛЬКУ КАЖДАЯ ПРОГРАММА ИМЕЕТ СВОЕ JSW, ОНИ&lt;br /&gt;
МОГУТ НЕЗАВИСИМО ДРУГ ОТ ДРУГА НАХОДИТЬСЯ В РАЗНЫХ&lt;br /&gt;
РЕЖИМАХ РАБОТЫ С СИСТЕМНЫМ ТЕРМИНАЛОМ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
            КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
             0          ЦИКЛИЧЕСКИЙ БУФЕР ВЫВОДА ЗАПОЛНЕН.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
        .MCALL  .EXIT,.TTYIN,.TTYOUT,.TTINR,.TTOUTR&lt;br /&gt;
ST:      MOV    #BUFF,R1&lt;br /&gt;
         CLR    R2&lt;br /&gt;
         BIS    &amp;quot;100,`#44           ;УСТАНОВИТЬ БИТ 6&lt;br /&gt;
INLOOP: .TTINR                      ;ВВЕСТИ СИМВОЛЫ&lt;br /&gt;
                                    ;С ТЕРМИНАЛА&lt;br /&gt;
         BCS    NOCHAR&lt;br /&gt;
CHRIN:   MOVB   RO,(R1)+            ;ЗАПИСАТЬ СИМВОЛ В БУФЕР&lt;br /&gt;
         INC    R2                  ;УВЕЛИЧИТЬ СЧЕТЧИК&lt;br /&gt;
         CMP    RO,#12&lt;br /&gt;
         BNE    INLOOP&lt;br /&gt;
         MOV    #BUFF,R1&lt;br /&gt;
OUTLOP:  MOVB   (R1),RO             ;ЗАНЕСТИ СИМВОЛ В RO&lt;br /&gt;
        .TTOUTR                     ;РАСПЕЧАТАТЬ ЕГО&lt;br /&gt;
         BCS    NOROOM              ;НЕТ МЕСТА ДЛЯ ВЫХОДНОГО&lt;br /&gt;
                                    ;БУФЕРA&lt;br /&gt;
CHROUT:  DEC    R2                  ;УМЕНЬШИТЬ СЧЕТЧИК&lt;br /&gt;
         BEQ    ST&lt;br /&gt;
         INC    R1                  ;СДВИНУТЬ УКАЗАТЕЛЬ&lt;br /&gt;
                                    ;БУФЕРА И ПЕЧАТАТЬ&lt;br /&gt;
         BR     OUTLOP              ;СЛЕДУЮЩИЙ СИМВОЛ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOCHAR: .TTINR                      ;ПЕРИОДИЧЕСКАЯ ПРОВЕРКА&lt;br /&gt;
         BCC    CHRIN               ;НА НАЛИЧИЕ СИМВОЛА&lt;br /&gt;
         NOP&lt;br /&gt;
         NOP&lt;br /&gt;
          .&lt;br /&gt;
          .&lt;br /&gt;
          .&lt;br /&gt;
         NOP&lt;br /&gt;
         BR     NOCHAR&lt;br /&gt;
NOROOM:  MOVB   (R1),RO             ;ПЕРИОДИЧЕСКАЯ ПОПЫТКА&lt;br /&gt;
        .TTOUTR                     ;ВЫВЕСТИ СИМВОЛ&lt;br /&gt;
         BCC    CHROUT&lt;br /&gt;
TYPETT:  BIC    #100,`#44           ;ВОССТАНОВИТЬ БИТ 6&lt;br /&gt;
        .TTYOUT (R1)                ;ВЫВЕСТИ СИМВОЛ&lt;br /&gt;
         BIS    #100,`#44&lt;br /&gt;
         BR     CHROUT&lt;br /&gt;
BUFF:   .BLKW   100.&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.8.    .WRITE/.WRITC/.WRITW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ДАННЫЕ МАКРОКОМАНДЫ ОБЕСПЕЧИВАЮТ ПЕРЕДАЧУ УКАЗАННОГО&lt;br /&gt;
КОЛИЧЕСТВА СЛОВ ИЗ ПАМЯТИ ПО УКАЗАННОМУ КАНАЛУ.&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ПРИ ИСПОЛЬЗОВАНИИ ЗАПРОСОВ ТИПА&lt;br /&gt;
.READ/.WRITE ДЛЯ БУФЕРНЫХ ОПЕРАЦИЙ ВВОДА/ВЫВОДА&lt;br /&gt;
НЕОБХОДИМО ВЫДЕЛЯТЬ ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ ОЧЕРЕДИ (СМ.&lt;br /&gt;
МАКРОКОМАНДУ .QSET).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ ОДИНАКОВЫ ДЛЯ ВСЕХ ТРЕХ РЕЖИМОВ:&lt;br /&gt;
            КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
             0          ПОПЫТКА ЗАПИСИ ПОСЛЕ КОНЦА ФАЙЛА;&lt;br /&gt;
             1          ОШИБКА АППАРАТУРЫ;&lt;br /&gt;
             2          КАНАЛ НЕ ОТКРЫТ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
                         - 22 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          2.8.1.  .WRITE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ВЫПОЛНЯЕТ ПЕРЕДАЧУ УКАЗАННОГО КОЛИЧЕСТВА СЛОВ ИЗ&lt;br /&gt;
ПАМЯТИ ПО КАНАЛУ CHAN. УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПРОГРАММЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ СРАЗУ ПОСЛЕ ТОГО, КАК ЗАПРОС ПОСТАВЛЕН В&lt;br /&gt;
ОЧЕРЕДЬ. НАЗНАЧЕНИЕ КАНАЛА ПРОИЗВОДИТСЯ ПРИ ПОМОЩИ&lt;br /&gt;
МАКРОКОМАНД .LOOKUP И .ENTER.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .WRITE  AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ 5 СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ВЫВОДА;&lt;br /&gt;
WCNT    - КОЛИЧЕСТВО ПЕРЕДАВАЕМЫХ СЛОВ;&lt;br /&gt;
BLK     - НОМЕР ЗАПИСЫВАЕМОГО БЛОКА; ДЛЯ УСТРОЙСТВ С&lt;br /&gt;
          ФАЙЛОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК ОТНОСИТЕЛЬНО&lt;br /&gt;
          НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО ОТКРЫТО, КАК&lt;br /&gt;
          УСТРОЙСТВО С НЕФАЙЛОВОЙ СТРУКТУРОЙ, ТО ЭТО&lt;br /&gt;
          АБСОЛЮТНЫЙ НОМЕР БЛОКА НА УСТРОЙСТВЕ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   11   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
			!	BLK	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	BUF	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	WCNT	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	1	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.8.2.  .WRITC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	ПЕРЕДАЕТ НЕОБХОДИМОЕ КОЛИЧЕСТВО СЛОВ ИЗ ПАМЯТИ ПО&lt;br /&gt;
    УКАЗАННОМУ КАНАЛУ. УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ ПРОГРАММЕ&lt;br /&gt;
    ПОЛЬЗОВАТЕЛЯ НЕМЕДЛЕННО ПОСЛЕ ТОГО, КАК ЗАПРОС ПОСТАВЛЕН&lt;br /&gt;
    В ОЧЕРЕДЬ. ВЫПОЛНЕНИЕ ПРОГРАММЫ ПОЛЗОВАТЕЛЯ ПРОДОЛЖАЕТСЯ&lt;br /&gt;
    ДО ОКОНЧАНИЯ ВЫВОДА, ЗАТЕМ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ&lt;br /&gt;
    ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ. ПО ИНСТРУКЦИИ RTS PC В&lt;br /&gt;
    ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ УПРАВЛЕНИЕ ПЕРПДАЕТСЯ В&lt;br /&gt;
    ПРЕРВАННУЮ ПРОГРАММУ ПОЛЗОВАТЕЛЯ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .WRITC  AREA,CHAN,BUF,WCNT,CRTN,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ 5 СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ВЫВОДА;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
CRTN	- АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ;&lt;br /&gt;
BLK     - НОМЕР ЗАПИСЫВАЕМОГО БЛОКА; ДЛЯ УСТРОЙСТВ С&lt;br /&gt;
          ФАЙЛОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК ОТНОСИТЕЛЬНО&lt;br /&gt;
          НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО ОТКРЫТО, КАК&lt;br /&gt;
          УСТРОЙСТВО С НЕФАЙЛОВОЙ СТРУКТУРОЙ, ТО ЭТО&lt;br /&gt;
          АБСОЛЮТНЫЙ НОМЕР БЛОКА НА УСТРОЙСТВЕ.&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   11   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
			!	BLK	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	BUF	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	WCNT	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
			!	CRTN	  !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 23 -&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ДЛЯ МАКРОКОМАНДЫ .WRITC&lt;br /&gt;
ДЕЙСТВИТЕЛЬНЫ ВСЕ СОГЛАШЕНИЯ И ПРИМЕЧАНИЯ, КАСАЮЩИЕСЯ&lt;br /&gt;
МАКРОКОМАНДЫ .READC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2.8.3.  .WRITW&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ЭТА МАКРОКОМАНДА ПЕРЕДАЕТ УКАЗАННОЕ КОЛИЧЕСТВО СЛОВ&lt;br /&gt;
ИЗ ПАМЯТИ ПО УКАЗАННОМУ КАНАЛУ. УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ В&lt;br /&gt;
ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ ЗАВЕРШЕНИЯ ВЫВОДА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                    .WRITW  AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ 5 СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА;&lt;br /&gt;
BUF     - АДРЕС БУФЕРА ВЫВОДА;&lt;br /&gt;
WCNT    - ДЛИНА БУФЕРА В СЛОВАХ;&lt;br /&gt;
BLK     - НОМЕР ЗАПИСЫВАЕМОГО БЛОКА; ДЛЯ УСТРОЙСТВ С&lt;br /&gt;
          ФАЙЛОВОЙ ОРГАНИЗАЦИЕЙ - ЭТО БЛОК ОТНОСИТЕЛЬНО&lt;br /&gt;
          НАЧАЛА ФАЙЛА; ЕСЛИ УСТРОЙСТВО ОТКРЫТО, КАК&lt;br /&gt;
          УСТРОЙСТВО С НЕФАЙЛОВОЙ СТРУКТУРОЙ, ТО ЭТО&lt;br /&gt;
          АБСОЛЮТНЫЙ НОМЕР БЛОКА НА УСТРОЙСТВЕ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   11   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       BLK       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       BUF       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      WCNT       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !        0        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
В ЭТОМ ПРИМЕРЕ, С ИСПОЛЬЗОВАНИЕМ .READW И .WRITW, ВЫВОД&lt;br /&gt;
ПОЛНОСТЬЮ СИНХРОНЕН. ПРОГРАММА НЕ ВЫПОЛНЯЕТСЯ ДО ТЕХ ПОР,&lt;br /&gt;
ПОКА ВЕСЬ БУФЕР НЕ БУДЕТ ЗАПОЛНЕН ИЛИ ОЧИЩЕН.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .FETCH,.READW,.WRITW,.ENTER,.LOOKUP,.PRINT&lt;br /&gt;
        .MCALL  .EXIT,.CLOSE&lt;br /&gt;
         ERRWD = 52&lt;br /&gt;
ST:     .FETCH  #HSPACE,#PCNAME     ;ЗАГРУЗИТЬ ДРАЙВЕР РС&lt;br /&gt;
         BCS    FERR&lt;br /&gt;
         MOV    #AREA,R5            ;ОБЛ. АРГУМЕНТОВ ЕМТ&lt;br /&gt;
         CLR    R4                  ;R4 = КАНАЛ ВЫВОДА 0&lt;br /&gt;
         МОV    #1,R3               ;R3 = КАНАЛ ВВОДА 1&lt;br /&gt;
        .ENTER  R5,R4,#PCNAME       ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
         BCS    ENERR&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        .LOOKUP R5,R3,#PCNAME&lt;br /&gt;
         BCS    LKERR&lt;br /&gt;
         CLR    R1                  ;R1 - НОМЕР БЛОКА&lt;br /&gt;
LOOP:   .READW  R5,R3,#BUFF,#256.,R1    ;СЧИТАТЬ БЛОК&lt;br /&gt;
         BCS    RDERR&lt;br /&gt;
        .WRITW  R5,R4,#BUFF,#256.,R1    ;ЗАПИСАТЬ ЕГО&lt;br /&gt;
         BCS    WTERR&lt;br /&gt;
         INC    R1                  ;УВЕЛИЧИТЬ СЧЕТЧИК&lt;br /&gt;
         BR     LOOP&lt;br /&gt;
RDERR:   TSTB   ERRWD               ;ЭТО EOF?&lt;br /&gt;
         BEQ    1$                  ;ДА&lt;br /&gt;
        .PRINT  #RDMSG&lt;br /&gt;
1$:     .EXIT&lt;br /&gt;
WTERR:  .PRINT  #WTMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
PCNAME: .RAD50  /PC/                ;ДЛЯ РС НЕ НУЖНО ИМЯ&lt;br /&gt;
        .WORD   0                   ;ФАЙЛА, ОНО - 0&lt;br /&gt;
FERR:   .PRINT  #FEMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
ENERR:  .PRINT  #ENMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
LKERR:  .PRINT  #LKMSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
FEMSG:  .ASCIZ  /СДЕЛАТЬ INSTALL PC/&lt;br /&gt;
ENMSG:  .ASCIZ  /ОШИБКА ENTER/&lt;br /&gt;
LKMSG:  .ASCIZ  /ОШИБКА LOOKUR/&lt;br /&gt;
RDMSG:  .ASCIZ  /ОШИБКА READ/&lt;br /&gt;
WTMSG:  .ASCIZ  /ОШИБКА WRITE/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
BUFF:   .BLKW   256.&lt;br /&gt;
HSPACE  = .&lt;br /&gt;
        .END    ST&lt;br /&gt;
&lt;br /&gt;
ЭТА ЖЕ ПРОГРАММА МОЖЕТ БЫТЬ НАПИСАНА С ИСПОЛЬЗОВАНИЕМ&lt;br /&gt;
МАКРОКОМАНД .READC И .WRITC. МАКРОКОМАНДЫ ВЫПОЛНЯТ&lt;br /&gt;
НАЧАЛЬНУЮ ЧАСТЬ ВВОДА/ВЫВОДА, А ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ&lt;br /&gt;
ОБРАБОТАЮТ ОСТАВШУЮСЯ ЧАСТЬ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .PRINT,.EXIT,.FETCH,.ENTER,.LOOKUP&lt;br /&gt;
        .MCALL  .CLOSE,.READC,.WRITC,.WAIT&lt;br /&gt;
         ERRWD = 52&lt;br /&gt;
ST:     .FETCH  #AREA,#PCNAME       ;ЗАГРУЗИТЬ ДРАЙВЕР РС&lt;br /&gt;
         BCS    FERR&lt;br /&gt;
FLNK:    MOV    #AREA,R5            ;ОБЛ. АРГУМЕНТОВ ЕМТ&lt;br /&gt;
        .ENTER  R5,#1,#PCNAME       ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
         BCS    ENERR&lt;br /&gt;
        .LOOKUP R5,#0,#PCNAME&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                       - 24 -&lt;br /&gt;
&lt;br /&gt;
         BCS    LKERR&lt;br /&gt;
         CLR    R1              ;R1 = НОМЕР БЛОКА&lt;br /&gt;
LOOP:    CLR    DFLG            ;СБРОС ФЛАГА ВЫП./ОШИБ.&lt;br /&gt;
        .READC  R5,#0,#BUFF,#256.,RDCOMP,R1 ;СЧИТАТЬ БЛОК&lt;br /&gt;
         BCS    EOF&lt;br /&gt;
1$:      TST    DFLG            ;ФЛАГ УСТАНОВЛЕН?&lt;br /&gt;
         BEQ    1$              ;HET&lt;br /&gt;
         BMI    IOERR           ;ДА&lt;br /&gt;
EOF:    .CLOSE  #1&lt;br /&gt;
        .EXIT&lt;br /&gt;
RDCOMP:  ROR    RO              ;БИТ С УСТАНОВЛЕН, ЗНАЧИТ&lt;br /&gt;
         BCS    RWERR           ;ВСТРЕТИЛАСЬ ОШИБКА&lt;br /&gt;
        .WRITC  R5,#0,#BUFF,#256.,#WRCOMP,BLKN  ;ЗАПИСАТЬ&lt;br /&gt;
                                                ;БЛОК&lt;br /&gt;
         BCC    RTS&lt;br /&gt;
RWERR:   MOV    #-1,DFLG        ;ФЛАГ ОШИБКИ&lt;br /&gt;
RTS:     RTS    PC&lt;br /&gt;
WRCOMP:  ROR    RO&lt;br /&gt;
         BCS    RWERR           ;ОШИБКА АППАРАТУРЫ&lt;br /&gt;
         INC    BLKN&lt;br /&gt;
        .READC  R5,#1,#BUFF,#256.,#RDCOMP,BLKN&lt;br /&gt;
         BCC    3$&lt;br /&gt;
         TSTB   ERRWD&lt;br /&gt;
         BNE    RWERR&lt;br /&gt;
         INC    BFLG&lt;br /&gt;
3$:      RTS    PC&lt;br /&gt;
FERR:    MOV    #FMSG,RO&lt;br /&gt;
         BR     TYPIT&lt;br /&gt;
IOERR:   MOV    #IOMSG,RO&lt;br /&gt;
         BR TYPIT&lt;br /&gt;
LKERR:   MOV    #LMSG,RO&lt;br /&gt;
         BR TYPIT&lt;br /&gt;
ENERR:   MOV    #EMSG,RO&lt;br /&gt;
TYPIT:  .PRINT&lt;br /&gt;
        .EXIT&lt;br /&gt;
FMSG:   .ASCIZ  /СДЕЛАТЬ INSTALL PC/&lt;br /&gt;
EMSG:   .ASCIZ  /ОШИБКА ENTER/&lt;br /&gt;
LMSG:   .ASCIZ  /ОШИБКА LOOKUP/&lt;br /&gt;
IOMSG:  .ASCIZ  !ОШИБКА ВВОДА/ВЫВОДА!&lt;br /&gt;
        .EVEN&lt;br /&gt;
DFLG:   .WORD   0&lt;br /&gt;
PCNAME: .RAD50  /PC/&lt;br /&gt;
        .WORD   0&lt;br /&gt;
BLKN:   .WORD   0&lt;br /&gt;
AREA:   .BLKW   10&lt;br /&gt;
BUFF:   .BLKW   256.&lt;br /&gt;
HSPACE  = .&lt;br /&gt;
        .END    ST&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.  СИСТЕМНЫЕ МАКРОКОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    В ЭТОМ ПОДРАЗДЕЛЕ ПРИВЕДЕНО ОПИСАНИЕ СИСТЕМНЫХ&lt;br /&gt;
МАКРОКОМАНД ОБЩЕГО НАЗНАЧЕНИЯ В АЛФАВИТНОМ ПОРЯДКЕ.&lt;br /&gt;
МАКРОКОМАНДЫ, ПРИМЕНЯЕМЫЕ ТОЛЬКО ДЛЯ ХМ- МОНИТОРА, ЗДЕСЬ&lt;br /&gt;
НЕ ОПИСАНЫ (СМ. Т.4 КН.4). АРГУМЕНТЫ МАКРОКОМАНД,&lt;br /&gt;
ЗАКЛЮЧЕННЫЕ В КВАДРАТНЫЕ СКОБКИ, ЯВЛЯЮТСЯ&lt;br /&gt;
НЕОБЯЗАТЕЛЬНЫМИ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.1.    .CDFN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CDFN ИСПОЛЬЗУЕТСЯ ДЛЯ&lt;br /&gt;
УВЕЛИЧЕНИЯ ЧИСЛА КАНАЛОВ ВВОДА/ВЫВОДА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CDFN   AREA,ADDR,NUM&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ТРЕХ СЛОВ;&lt;br /&gt;
ADDR    - АДРЕС БУФЕРА ДЛЯ РАЗМЕЩЕНИЯ КАНАЛОВ&lt;br /&gt;
          ВВОДА/ВЫВОДА;&lt;br /&gt;
NUM     - КОЛИЧЕСТВО ДОПОЛНИТЕЛЬНЫХ КАНАЛОВ ВВОДА/ВЫВОДА.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   15   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !      ADDR       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !       NUM       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    КАЖДАЯ ЗАДАЧА, ОПЕРАТИВНАЯ ИЛИ ФОНОВАЯ,&lt;br /&gt;
ПЕРВОНАЧАЛЬНО ОБЕСПЕЧИВАЕТСЯ 16 (ДЕСЯТИЧНЫМИ) КАНАЛАМИ&lt;br /&gt;
ВВОДА/ВЫВОДА, ИМЕЮЩИМИ НОМЕРА С 0 ПО 15. С ПОМОЩЬЮ ДАННОЙ&lt;br /&gt;
МАКРОКОМАНДЫ ЧИСЛО КАНАЛОВ МОЖЕТ БЫТЬ УВЕЛИЧЕНО ДО 255&lt;br /&gt;
(ДЕСЯТИЧНЫХ).&lt;br /&gt;
    ПАМЯТЬ, ИСПОЛЬЗУЕМАЯ ДЛЯ РАЗМЕЩЕНИЯ НОВЫХ КАНАЛОВ&lt;br /&gt;
ВВОДА/ВЫВОДА, РЕЗЕРВИРУЕТСЯ В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
КАЖДЫЙ КАНАЛ ВВОДА/ВЫВОДА ТРЕБУЕТ 5 СЛОВ ПАМЯТИ. ЕСЛИ&lt;br /&gt;
КОЛИЧЕСТВО ОПРЕДЕЛЯЕМЫХ КАНАЛОВ РАВНО N, ТО ПОЛЬЗОВАТЕЛЬ&lt;br /&gt;
ДОЛЖЕН ЗАРЕЗЕРВИРОВАТЬ ДЛЯ НИХ 5*N СЛОВ ПАМЯТИ, НАЧИНАЯ С&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                       - 25 -&lt;br /&gt;
&lt;br /&gt;
АДРЕСА ADDR.&lt;br /&gt;
    РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ МАКРОКОМАНДУ .CDFN В&lt;br /&gt;
НАЧАЛЕ ПРОГРАММЫ, ПЕРЕД ДЕЙСТВИЕМ ЛЮБОЙ ОПЕРАЦИИ&lt;br /&gt;
ВВОДА/ВЫВОДА.&lt;br /&gt;
    МАКРОКОМАНДА .CDFN ОПРЕДЕЛЯЕТ ТОЛЬКО НОВЫЕ КАНАЛЫ;&lt;br /&gt;
РАНЕЕ ОПРЕДЕЛЕННЫЕ КАНАЛЫ НЕ ИСПОЛЬЗУЮТСЯ, НО СОДЕРЖИМОЕ&lt;br /&gt;
СТАРЫХ КАНАЛОВ ПЕРЕДАЕТСЯ В НОВЫЕ. ОПРЕДЕЛЕНИЕ МЕНЬШЕГО,&lt;br /&gt;
ЧЕМ УЖЕ ЕСТЬ, КОЛИЧЕСТВА КАНАЛОВ ПРИВОДИТ К СООБЩЕНИЮ ОБ&lt;br /&gt;
ОШИБКЕ.&lt;br /&gt;
    ЕСЛИ ИСПОЛЬЗУЕТСЯ НЕСКОЛЬКО МАКРОКОМАНД .CDFN,&lt;br /&gt;
БУФЕРА КАНАЛОВ ДОЛЖНЫ НАЧИНАТЬСЯ ЛИБО С ОДНОЙ И ТОЙ ЖЕ&lt;br /&gt;
ЯЧЕЙКИ, ЛИБО ВООБЩЕ НЕ ПЕРЕКРЫВАТЬСЯ.&lt;br /&gt;
    ЕСЛИ ПРОГРАММА ИСПОЛЬЗУЕТ ОВЕРЛЕЙНУЮ СТРУКТУРУ, 15&lt;br /&gt;
КАНАЛ НЕ ДОЛЖЕН ИЗМЕНЯТЬСЯ, Т.К. ИСПОЛЬЗУЕТСЯ ДРАЙВЕРОМ&lt;br /&gt;
ОВЕРЛЕЕВ. ДРУГИЕ КАНАЛЫ МОГУТ БЫТЬ ОПРЕДЕЛЕНЫ И&lt;br /&gt;
ИСПОЛЬЗОВАНЫ КАК ОБЫЧНО.&lt;br /&gt;
    МАКРОКОМАНДА .SRESET И .HRESET ОТМЕНЯЮТ ДЕЙСТВИЕ&lt;br /&gt;
МАКРОКОМАНДЫ .CDFN И УСТАНАВЛИВАЮТ ИСХОДНЫЕ 16 КАНАЛОВ,&lt;br /&gt;
ОПРЕДЕЛЕННЫЕ ПРИ ЗАПУСКЕ ПРОГРАММЫ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
         0      СДЕЛАНА ПОПЫТКА ОПРЕДЕЛИТЬ МЕНЬШЕ КАНАЛОВ,&lt;br /&gt;
                ЧЕМ УЖЕ СЕТЬ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ОПРЕДЕЛЯЕТСЯ СНАЧАЛА 25. КАНАЛОВ, ЗАТЕМ&lt;br /&gt;
30. КАНАЛОВ. ПРИ ПОПЫТКЕ ОПРЕДЕЛИТЬ 20. КАНАЛОВ ВОЗНИКАЕТ&lt;br /&gt;
ОШИБКА, Т.К. РАНЕЕ БЫЛО ОПРЕДЕЛЕНО БОЛЬШЕЕ КОЛИЧЕСТВО&lt;br /&gt;
КАНАЛОВ. НА СИСТЕМНЫЙ ТЕРМИНАЛ ВЫДАЮТСЯ СООБЩЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CDFN,.PRINT,.HRESET,.EXIT&lt;br /&gt;
START:  .CDFN   #AREA,#CHANL,#25.   ;ОПРЕДЕЛИТЬ 25. КАНАЛОВ&lt;br /&gt;
         BCS    ERR&lt;br /&gt;
        .PRINT  #MSG                ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .CDFN   #AREA,#CHANL,#30.   ;ОПРЕДЕЛИТЬ 30. КАНАЛОВ&lt;br /&gt;
         BCS    ERR&lt;br /&gt;
        .PRINT  #MSG                ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .CDFN   #AREA,#CHANL,#20.   ;ОПРЕДЕЛИТЬ 20. КАНАЛОВ&lt;br /&gt;
         BCC    ERR1&lt;br /&gt;
        .PRINT  #MSG&lt;br /&gt;
CONT:   .HRESET                     ;ВОЗВРАТ К 16 КАНАЛАМ&lt;br /&gt;
        .CDFN   #AREA,#CHANL,#20.   ;ОПРЕДЕЛИТЬ 20. КАНАЛОВ&lt;br /&gt;
         BCS    ERR&lt;br /&gt;
        .PRINT  #MSG                ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
ERR:    .PRINT  #MSG1&lt;br /&gt;
        .EXIT&lt;br /&gt;
ERR1:   .PRINT  #MSG1&lt;br /&gt;
         BR     CONT&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AREA:   .BLKW   3                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
MSG:    .ASCIZ  /КАНАЛЫ ОПРЕДЕЛЕНЫ/&lt;br /&gt;
MSG1:   .ASCIZ  /ОШИБКА .CDFN/&lt;br /&gt;
        .EVEN&lt;br /&gt;
CHANL:  .BLKW   30.+*5              ;ОБЛАСТЬ ДЛЯ КАНАЛОВ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.2.    .CHAIN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CHAIN ОБЕСПЕЧИВАЕТ ПЕРЕДАЧУ&lt;br /&gt;
УПРАВЛЕНИЯ ИЗ ОДНОЙ ФОНОВОЙ ПРОГРАММЫ В ДРУГУЮ БЕЗ&lt;br /&gt;
ВМЕШАТЕЛЬСТВА ОПЕРАТОРА. ПОВТОРЯЯ ЭТОТ ПРОЦЕСС, МОЖНО&lt;br /&gt;
ОРГАНИЗОВАТЬ БОЛЬШУЮ ЦЕПОЧКУ ПРОГРАММ.&lt;br /&gt;
    ЯЧЕЙКИ ПАМЯТИ 500-507 СОДЕРЖАТ ИМЯ УСТРОЙСТВА И&lt;br /&gt;
ФАЙЛА (В КОДЕ RADIX-50) ДЛЯ ЗАГРУЖАЕМОЙ ПРОГРАММЫ, А&lt;br /&gt;
ОБЛАСТЬ 510-777 ИСПОЛЬЗУЕТСЯ ДЛЯ ПЕРЕДАЧИ ИНФОРМАЦИИ&lt;br /&gt;
МЕЖДУ СВЯЗЫВАЕМЫМИ ПРОГРАММАМИ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CHAIN&lt;br /&gt;
    ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt;                   !   10   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    ВЫПОЛНЕНИЕ МАКРОКОМАНДЫ .CHAIN ГАРАНТИРУЕТ&lt;br /&gt;
СОХРАНЕНИЕ СОДЕРЖИМОГО ОБЛАСТИ ПАМЯТИ 500-777.&lt;br /&gt;
    ПРИ ВЫПОЛНЕНИИ МАКРОКОМАНДЫ .CHAIN ОТКРЫТЫЕ КАНАЛЫ&lt;br /&gt;
ВВОДА/ВЫВОДА МОГУТ ИСПОЛЬЗОВАТЬСЯ НОВОЙ ПРОГРАММОЙ.&lt;br /&gt;
ОДНАКО СЛЕДУЕТ ПОМНИТЬ, ЧТО МОНИТОР ВО ВРЕМЯ ВЫПОЛНЕНИЯ&lt;br /&gt;
МАКРОКОМАНДЫ .CHAIN ВОЗВРАЩАЕТСЯ К ИСХОДНЫМ 16 КАНАЛАМ.&lt;br /&gt;
СЛЕДОВАТЕЛЬНО, ПРОГРАММЫ, ОСТАВЛЯЮЩИЕ ФАЙЛЫ ОТКРЫТЫМИ, НЕ&lt;br /&gt;
ДОЛЖНЫ ИСПОЛЬЗОВАТЬ МАКРОКОМАНДУ .CDFN.&lt;br /&gt;
    НЕРЕЗИДЕНТНЫЕ ДРАЙВЕРЫ УСТРОЙСТВ ВЫГРУЖАЮТСЯ ВО&lt;br /&gt;
ВРЕМЯ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .CHAIN И ДОЛЖНЫ БЫТЬ&lt;br /&gt;
ЗАГРУЖЕНЫ НОВОЙ ПРОГРАММОЙ С ПОМОЩЬЮ МАКРОКОМАНДЫ .FETCH.&lt;br /&gt;
    ПРОВЕРКОЙ БИТА CHAIN$ (8 БИТ) СЛОВА СОСТОЯНИЯ&lt;br /&gt;
ПРОГРАММЫ JSW (СМ. Т.3 КН.2 Ч.1) МОЖНО УСТАНОВИТЬ, БЫЛА&lt;br /&gt;
ЛИ ПРОГРАММА ЗАГРУЖЕНА ПОСРЕДСТВОМ МАКРОКОМАНДЫ  .CHAIN&lt;br /&gt;
ИЛИ КОМАНДОЙ МОНИТОРА RUN. БИТ CHAIN$ УСТАНАВЛИВАЕТСЯ&lt;br /&gt;
ТОЛЬКО ПРИ ЗАГРУЗКЕ ПРОГРАММЫ МАКРОКОМАНДОЙ .CHAIN.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
    МАКРОКОМАНДОЙ .CHAIN ВЫДАЮТСЯ ТЕЖЕ СООБЩЕНИЯ ОБ&lt;br /&gt;
ОШИБКАХ, КАКИЕ ГЕНЕРИРУЮТСЯ ПРИ ВЫПОЛНЕНИИ КОМАНДЫ&lt;br /&gt;
МОНИТОРА RUN. ПРИ ПОЯВЛЕНИИ ОШИБКИ МАКРОКОМАНДА .CHAIN&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 26 -&lt;br /&gt;
&lt;br /&gt;
ИГНОРИРУЕТСЯ И УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ МОНИТОРУ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    ПРОГРАММА PRINT.SAV ЗАГРУЖАЕТСЯ ИЗ ГОЛОВНОЙ&lt;br /&gt;
ПРОГРАММЫ С ПОМОЩЬЮ МАКРОКОМАНДЫ .CHAIN.&lt;br /&gt;
&lt;br /&gt;
    ГОЛОВНАЯ ПРОГРАММА&lt;br /&gt;
    ------------------&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CHAIN,.TTYIN,.DBLK,.CTRLT&lt;br /&gt;
        .CTRLT                  ;ОПРЕДЕЛИТЬ УПРАВЛЯ-&lt;br /&gt;
                                ;ЮЩИЕ СИМВОЛЫ&lt;br /&gt;
                                ;(ЗДЕСЬ LF)&lt;br /&gt;
START:   MOV    #500,R1&lt;br /&gt;
         MOV    #FILE,R2&lt;br /&gt;
        .REPT   4&lt;br /&gt;
         MOV    (R2)+,(R1)+     ;ИМЯ ФАЙЛА В 500-507&lt;br /&gt;
        .ENDR&lt;br /&gt;
1$:     .TTYIN                  ;ЗАНЕСЕНИЕ СИМВОЛОВ С&lt;br /&gt;
         MOVB   RO,(R1)+        ;ТТ: В ОБЛАСТЬ 510-777&lt;br /&gt;
         CMPB   RO,#LF          ;ВСЯ СТРОКА ВВЕДЕНА?&lt;br /&gt;
         BNE    1$              ;HET&lt;br /&gt;
         CLRB   -(R1)           ;ДА&lt;br /&gt;
        .CHAIN                  ;ЗАПУСК ПРОГРАММЫ PRINT&lt;br /&gt;
FILE:   .DBLK   SY,PRINT,SAV    ;ИМЯ УСТРОЙСТВА И ФАЙЛА&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
    ПРОГРАММА PRINT&lt;br /&gt;
    ---------------&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .PRINT,.EXIT&lt;br /&gt;
BUFF=510&lt;br /&gt;
START:  .PRINT  #MSG            ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .PRINT  #BUFF           ;ПЕЧАТЬ ОБЛАСТИ 510-777&lt;br /&gt;
        .PRINT  #MSG1           ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
MSG:    .ASCIZ  /НАЧАЛО ПЕЧАТИ СООБЩЕНИЯ ИЗ/&lt;br /&gt;
        .ASCIZ  /ОБЛАСТИ 510-777/&lt;br /&gt;
MSG1:   .ASCIZ  /КОНЕЦ ПЕЧАТИ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.3.    CMKT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .СМКТ ПРЕДНАЗНАЧЕНА ДЛЯ&lt;br /&gt;
ОТМЕНЫ НЕВЫПОЛНЕННЫХ МАКРОКОМАНД ВРЕМЕННОГО ИНТЕРВАЛА&lt;br /&gt;
(.MRKT).&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CMKT   AREA,ID,TIME&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ТРЕХ СЛОВ;&lt;br /&gt;
ID      - ИДЕНТИФИКАТОР КАЖДОЙ МАКРОКОМАНДЫ .MRKT;&lt;br /&gt;
TIME    - АДРЕС ДВУХ СЛОВ, СОДЕРЖАЩИХ ВРЕМЯ, ОСТАВШЕЕСЯ В&lt;br /&gt;
          ОТМЕНЕННОЙ МАКРОКОМАНДЕ; ПЕРВОЕ СЛОВО СОДЕРЖИТ&lt;br /&gt;
          СТАРШИЕ РАЗРЯДЫ, ВТОРОЕ - МЛАДШИЕ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   23   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ID        !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
                        !      TIME       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ОТМЕНА МАКРОКОМАНДЫ .MRKT ОСВОБОЖДАЕТ&lt;br /&gt;
СООТВЕТСТВУЮЩИЙ ЭЛЕМЕНТ ОЧЕРЕДИ ДЛЯ ДРУГИХ ЦЕЛЕЙ.&lt;br /&gt;
    ЕСЛИ НЕСКОЛЬКО МАКРОКОМАНД .MRKT ИМЕЮТ ОДИНАКОВЫЙ&lt;br /&gt;
ID, ТО ОТМЕНЯЕТСЯ МАКРОКОМАНДА С САМЫМ РАННИМ ВРЕМЕНЕМ&lt;br /&gt;
ОКОНЧАНИЯ.&lt;br /&gt;
    ЕСЛИ ID = 0, ТО ВСЕ НЕСИСТЕМНЫЕ МАКРОКОМАНДЫ .MRKT&lt;br /&gt;
(В ДИАПАЗОНЕ 1-177377) ДЛЯ ДАННОЙ ПРОГРАММЫ ОТМЕНЯЮТСЯ, А&lt;br /&gt;
АРГУМЕНТ TIME ИГНОРИРУЕТСЯ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
         0      МАКРОКОМАНДА .MRKT С ЗАДАННЫМ NUM НЕ&lt;br /&gt;
                НАЙДЕНА (ЛИБО МАКРОКОМАНДА НЕ БЫЛА ЗАДАНА,&lt;br /&gt;
                ЛИБО ОНА УЖЕ ЗАКОНЧЕНА).&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .MRKT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    3.4.    .CNFDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CNFDF ОПРЕДЕЛЯЕТ СИМВОЛЫ И&lt;br /&gt;
МНЕМОНИЧЕСКИЕ ОБОЗНАЧЕНИЯ РАЗРЯДОВ СЛОВ КОНФИГУРАЦИИ&lt;br /&gt;
СИСТЕМЫ (СМ. Т.3 КН.2 Ч.1).&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CNFDF&lt;br /&gt;
    РАСШИРЕНИЕ МАКРОКОМАНДЫ:&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 27 -&lt;br /&gt;
&lt;br /&gt;
CONFIG  =^0300&lt;br /&gt;
FBMON$  =^01&lt;br /&gt;
HWDSP$  =^04&lt;br /&gt;
BATCH$  =^010&lt;br /&gt;
CLK50$  =^040&lt;br /&gt;
HWFPU$  =^0100&lt;br /&gt;
FJOB$   =^0200&lt;br /&gt;
GTLNK$  =^0400&lt;br /&gt;
USR$    =^01000&lt;br /&gt;
LSI$    =^04000&lt;br /&gt;
MMU$    =^010000&lt;br /&gt;
LKCS$   =^020000&lt;br /&gt;
KW$P    =^040000&lt;br /&gt;
CLOCK$  =^0100000&lt;br /&gt;
CONFG2  =^0370&lt;br /&gt;
CACHE$  =^01&lt;br /&gt;
MPTY$   =^02&lt;br /&gt;
SWREG$  =^04&lt;br /&gt;
LIGHT$  =^010&lt;br /&gt;
EIS$    =^0400&lt;br /&gt;
VS6$0   =^01000&lt;br /&gt;
TYP70$  =^040000&lt;br /&gt;
TYP60$  =^0100000&lt;br /&gt;
SYSGEN  =^0372&lt;br /&gt;
ERLG$   =^01&lt;br /&gt;
MMGT$   =^02&lt;br /&gt;
TIMIT$  =^04&lt;br /&gt;
MPTY$   =^010000&lt;br /&gt;
TIMER$  =^020000&lt;br /&gt;
ESCP$   =^014000&lt;br /&gt;
MTTY$   =^020000&lt;br /&gt;
&lt;br /&gt;
    ДАННАЯ МАКРОКОМАНДА КОДОВ ЕМТ НЕ ГЕНЕРИРУЕТ, А&lt;br /&gt;
ЯВЛЯЕТСЯ ЧИСТО ОПИСАТЕЛЬНОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ОПРЕДЕЛЯЕТСЯ РЕЗИДЕНТНОСТЬ USR.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CNFDF,.EXIT,.PRINT,.GVAL&lt;br /&gt;
        .CNFDF                  ;ОПРЕДЕЛИТЬ МНЕМОНИКУ&lt;br /&gt;
                                ;СМЕЩЕНИЯ МОНИТОРА&lt;br /&gt;
                                ;CONFIG (300) И ЕГО&lt;br /&gt;
                                ;БИТОВ (ЗДЕСЬ USR$)&lt;br /&gt;
START:  .GVAL   #AREA,#CONFIG   ;ПОЛУЧИТЬ СОДЕРЖИМОЕ&lt;br /&gt;
                                ;СМЕЩЕНИЯ CONFIG B RO&lt;br /&gt;
         BIT    RO,#USR$        ;БИТ USR$ УСТАНОВЛЕН&lt;br /&gt;
         BEQ    1$              ;HET&lt;br /&gt;
        .PRINT  #MSG            ;ДА...ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
         BR     2$&lt;br /&gt;
1$:     .PRINT  #MSG1           ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
2$:     .EXIT&lt;br /&gt;
AREA:   .BLKW   2               ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
MSG:    .ASCIZ  /USR НЕ РЕЗИДЕНТНА/&lt;br /&gt;
MSG1:   .ASCIZ  /USR РЕЗИДЕНТНА/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.5.    .CNTXSW (ТОЛЬКО ДЛЯ FB- И ХМ- МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CNTXSW ОПРЕДЕЛЯЕТ ЯЧЕЙКИ,&lt;br /&gt;
КОТОРЫЕ НЕОБХОДИМО ВКЛЮЧИТЬ В ОБЛАСТЬ СОХРАНЕНИЯ ЗАДАЧИ&lt;br /&gt;
ПРИ ПЕРЕКЛЮЧЕНИИ МОНИТОРА МЕЖДУ ДВУМЯ ПРОГРАММАМИ:&lt;br /&gt;
ФОНОВОЙ И ОПЕРАТИВНОЙ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CNTXSW    AREA,ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
ADDR    - АДРЕС ТАБЛИЦЫ АДРЕСОВ, ПОДЛЕЖАЩИХ ВКЛЮЧЕНИЮ В&lt;br /&gt;
          ОБЛАСТЬ СОХРАНЕНИЯ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   33   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !      ADDR       !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ТАБЛИЦА АДРЕСОВ ДОЛЖНА ЗАКАНЧИВАТЬСЯ НУЛЕВЫМ СЛОВОМ.&lt;br /&gt;
АДРЕСА ДОЛЖНЫ БЫТЬ ЧЕТНЫМИ И ПРИНАДЛЕЖАТЬ К ОДНОЙ ИЗ&lt;br /&gt;
СЛЕДУЮЩИХ ОБЛАСТЕЙ:&lt;br /&gt;
    - В ДИАПАЗОНЕ 0 - 476 (ВОСЬМЕРИЧНЫХ);&lt;br /&gt;
    - В ОБЛАСТИ ЗАДАНИЯ ПОЛЬЗОВАТЕЛЯ;&lt;br /&gt;
    - В СТРАНИЦЕ ВВОДА/ВЫВОДА (160000-177776).&lt;br /&gt;
&lt;br /&gt;
    ПРИ ПЕРЕКЛЮЧЕНИИ ИЗ ФОНОВОГО РЕЖИМА В ОПЕРАТИВНЫЙ (И&lt;br /&gt;
НАОБОРОТ) СИСТЕМА СОХРАНЯЕТ ИНФОРМАЦИЮ ДЛЯ ПРОГРАММЫ,&lt;br /&gt;
ВКЛЮЧАЮЩУЮ:&lt;br /&gt;
    - СОДЕРЖИМОЕ УНИВЕРСАЛЬНЫХ РЕГИСТРОВ RO-R5;&lt;br /&gt;
    - ВЕКТОР ИНСТРУКЦИИ TRAP (ЯЧЕЙКИ 34-36);&lt;br /&gt;
    - ЯЧЕЙКИ СИСТЕМНОЙ ОБЛАСТИ СВЯЗИ (40-52);&lt;br /&gt;
    - ЯЧЕЙКИ, ОПРЕДЕЛЕННЫЕ МАКРОКОМАНДОЙ .CNTXSW.&lt;br /&gt;
&lt;br /&gt;
    ЕСЛИ МАКРОКОМАНДА .SFPA ВЫПОЛНЯЕТСЯ С НЕНУЛЕВЫМИ&lt;br /&gt;
АДРЕСАМИ, ТО ТАКЖЕ СОХРАНЯЮТСЯ ВСЕ РЕГИСТРЫ И СЛОВО&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 28 -&lt;br /&gt;
&lt;br /&gt;
СОСТОЯНИЯ ПРОЦЕССОРА С ПЛАВАЮЩЕЙ ЗАПЯТОЙ (ДЛЯ СМ-1420).&lt;br /&gt;
&lt;br /&gt;
    ПРИ МНОГОКРАТНОМ ВЫПОЛНЕНИИ МАКРОКОМАНДЫ .CNTXSW,&lt;br /&gt;
СОХРАНЯЮТСЯ ТОЛЬКО АДРЕСА ИЗ ПОСЛЕДНЕГО СПИСКА;&lt;br /&gt;
ПРЕДШЕСТВУЮЩИЕ СПИСКИ ИГНОРИРУЮТСЯ.&lt;br /&gt;
    ЕСЛИ АРГУМЕНТ ADDR=0, ТО НИКАКИЕ АДРЕСА НЕ&lt;br /&gt;
СОХРАНЯЮТСЯ.&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. В ХМ - МОНИТОРЕ МАКРОКОМАНДА&lt;br /&gt;
.CNTXSW ИГНОРИРУЕТСЯ ПО ДВУМ ПРИЧИНАМ:&lt;br /&gt;
    - ВИРТУАЛЬНАЯ ПРОГРАММА НЕ ДЕЛИТ ЯЧЕЙКИ ПАМЯТИ С&lt;br /&gt;
      ДРУГИМИ ПРОГРАММАМИ;&lt;br /&gt;
    - ВЕКТОРЫ IOT, TRAP, BPT, А ТАКЖЕ ВЕКТОР&lt;br /&gt;
      ПРЕРЫВАНИЙ ДИСПЕТЧЕРА ПАМЯТИ (ЯЧЕЙКИ 250, 252)&lt;br /&gt;
      АВТОМАТИЧЕСКИ ВКЛЮЧАЮТСЯ В ОБЛАСТЬ СОХРАНЕНИЯ&lt;br /&gt;
      ХМ-МОНИТОРОМ И МОГУТ ИСПОЛЬЗОВАТЬСЯ ПРОГРАММАМИ,&lt;br /&gt;
      НЕ ПРИМЕНЯЯ МАКРОКОМАНДУ .CNTXSW.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
         0      НЕЧЕТНЫЙ АДРЕС В ТАБЛИЦЕ ADDR ИЛИ ОН&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ВКЛЮЧАЮТСЯ В ОБЛАСТЬ СОХРАНЕНИЯ ЗАДАЧИ&lt;br /&gt;
АДРЕСА 20, 22, 177302, 177304, 177310.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CNTXSW,.PRINT,.EXIT&lt;br /&gt;
START:   MOV    #LIST,RO&lt;br /&gt;
        .CNTXSW .SWAPLS             ;ВКЛЮЧИТЬ В ОБЛАСТЬ&lt;br /&gt;
                                    ;СОХРАНЕНИЯ ЗАДАЧИ&lt;br /&gt;
         BCC    1$&lt;br /&gt;
        .PRINT  #MSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
1$:     .PRINT  #MSG1&lt;br /&gt;
        .EXIT&lt;br /&gt;
SWAPLS: .WORD   20                  ;ТАБЛИЦА АДРЕСОВ&lt;br /&gt;
        .WORD   22                  1ДЛЯ СОХРАНЕНИЯ&lt;br /&gt;
        .WORD   177302&lt;br /&gt;
        .WORD   177304&lt;br /&gt;
        .WORD   177310&lt;br /&gt;
        .WORD   0                   ;КОНЕЦ ТАБЛИЦЫ&lt;br /&gt;
LIST:   .BYTE   0,33                ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
        .WORD   0&lt;br /&gt;
MSG:    .ASCIZ  /АДРЕС НЕВЕРЕН/&lt;br /&gt;
MSG1:   .ASKIZ  /АДРЕСА ВКЛЮЧЕНЫ В/&lt;br /&gt;
        .ASCIZ  /ПЕРЕКЛЮЧАТЕЛЬ РЕСУРСОВ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.6.    .CSIGEN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CSIGEN ВЫЗЫВАЕТ&lt;br /&gt;
ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ (CSI) В ОБЫЧНОМ РЕЖИМЕ ДЛЯ&lt;br /&gt;
ОБРАБОТКИ СТАНДАРТНОЙ КОМАНДНОЙ СТРОКИ РАФОС.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .CSIGEN   DEVSPC,DEVEXT,CSTRNG[,LINBUF]&lt;br /&gt;
ГДЕ&lt;br /&gt;
DEVSPC  - АДРЕС ОБЛАСТИ ПАМЯТИ, КУДА ЗАГРУЖАЮТСЯ ДРАЙВЕРЫ&lt;br /&gt;
          УСТРОЙСТВ;&lt;br /&gt;
DEVEXT  - АДРЕС БЛОКА ИЗ ЧЕТЫРЕХ СЛОВ, СОДЕРЖАЩЕГО&lt;br /&gt;
          РАСШИРЕНИЯ ФАЙЛОВ ПО УМОЛЧАНИЮ В КОДЕ RADIX-50;&lt;br /&gt;
CSTRNG  - АДРЕС КОМАНДНОЙ СТРОКИ ИЛИ =0, ЕСЛИ ВВОД СТРОКИ&lt;br /&gt;
          ПРОИСХОДИТ С ТЕРМИНАЛА;&lt;br /&gt;
LINBUF  - АДРЕС, ГДЕ СОХРАНЯЕТСЯ КОПИЯ КОМАНДНОЙ СТРОКИ.&lt;br /&gt;
    ЕСЛИ СТРОКА НАХОДИТСЯ В ПАМЯТИ, ОНА ДОЛЖНА&lt;br /&gt;
ЗАКАНЧИВАТЬСЯ НУЛЕВЫМ БАЙТОМ, А НЕ СОДЕРЖАТЬ СИМВОЛЫ&lt;br /&gt;
&amp;lt;CR&amp;gt;,&amp;lt;LF&amp;gt;.&lt;br /&gt;
    БЛОК DEVEXT СОДЕРЖИТ:&lt;br /&gt;
СЛОВО 1 - РАСШИРЕНИЕ ДЛЯ ВСЕХ ВХОДНЫХ ФАЙЛОВ;&lt;br /&gt;
СЛОВО 2 - РАСШИРЕНИЕ ДЛЯ ПЕРВОГО ВЫХОДНОГО ФАЙЛА;&lt;br /&gt;
СЛОВО 3 - РАСШИРЕНИЕ ДЛЯ ВТОРОГО ВЫХОДНОГО ФАЙЛА;&lt;br /&gt;
СЛОВО 4 - РАСШИРЕНИЕ ДЛЯ ТРЕТЬЕГО ВЫХОДНОГО ФАЙЛА.&lt;br /&gt;
    ЕСЛИ НЕ ИСПОЛЬЗУЮТСЯ РАСШИРЕНИЯ ПО УМОЛЧАНИЮ,&lt;br /&gt;
СООТВЕТСТВУЮЩИЕ СЛОВА ДОЛЖНЫ СОДЕРЖАТЬ 0.&lt;br /&gt;
    ОБЛАСТЬ LINBUF (ДЛИНОЮ 81. БАЙТ) РЕЗЕРВИРУЕТСЯ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЕМ. ВВОДИМАЯ СТРОКА ПРЕДСТАВЛЯЕТСЯ, КАК СТРОКА&lt;br /&gt;
ДИРЕКТИВЫ .ASCIZ, И МОЖЕТ БЫТЬ НАПЕЧАТАНА С ПОМОЩЬЮ&lt;br /&gt;
МАКРОКОМАНДЫ .PRINT.&lt;br /&gt;
    МАКРОКОМАНДА .CSIGEN АВТОМАТИЧЕСКИ ВЫБИРАЕТ СТРОКУ&lt;br /&gt;
ИЗ КОМАНДНОГО ФАЙЛА, ЕСЛИ БЫЛ УКАЗАН ВВОД С ТЕРМИНАЛА&lt;br /&gt;
(CSTRNG=0), А САМА ПРОГРАММА ВЫЗЫВАЛАСЬ ИЗ ЭТОГО&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 29 -&lt;br /&gt;
&lt;br /&gt;
КОМАНДНОГО ФАЙЛА.&lt;br /&gt;
    МАКРОКОМАНДА .CSIGEN СВЯЗЫВАЕТ ТРИ ВОЗМОЖНЫХ&lt;br /&gt;
ВЫХОДНЫХ ФАЙЛА С КАНАЛАМИ 0,1,2 СООТВЕТСТВЕННО И ШЕСТЬ&lt;br /&gt;
ВХОДНЫХ ФАЙЛОВ - С КАНАЛАМИ 3-10 (ВОСЬМЕРИЧНЫХ). ПРОПУСК&lt;br /&gt;
СПЕЦИФИКАЦИИ ФАЙЛА В КОМАНДНОЙ СТРОКЕ ОСТАВЛЯЕТ&lt;br /&gt;
СООТВЕТСТВУЮЩИЙ КАНАЛ СВОБОДНЫМ.&lt;br /&gt;
    ОБЛАСТЬ DEVSPC ДОЛЖНА БЫТЬ ДОСТАТОЧНОЙ, ЧТОБЫ&lt;br /&gt;
ВМЕСТИТЬ ВСЕ ВВОДИМЫЕ ДРАЙВЕРЫ ОДНОВРЕМЕННО. ЕСЛИ РАЗМЕРЫ&lt;br /&gt;
ДРАЙВЕРОВ ПРЕВЫШАЮТ ИМЕЮЩУЮСЯ ОБЛАСТЬ, ПРОГРАММА&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ МОЖЕТ БЫТЬ ИСПОРЧЕНА. ПО ЗАВЕРШЕНИИ&lt;br /&gt;
МАКРОКОМАНДЫ .CSIGEN RO СОДЕРЖИТ АДРЕС ПЕРВОЙ СВОБОДНОЙ&lt;br /&gt;
ЯЧЕЙКИ ВЫШЕ ДРАЙВЕРОВ.&lt;br /&gt;
    КЛЮЧИ И СВЯЗАННЫЕ С НИМИ ЗНАЧЕНИЯ ПЕРЕДАЮТСЯ В СТЕК&lt;br /&gt;
(СМ. НИЖЕ).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД                 ПОЯСНЕНИЕ&lt;br /&gt;
         0      НЕДОПУСТИМАЯ КОМАНДА;&lt;br /&gt;
         1      УКАЗАННОЕ УСТРОЙСТВО ОТСУТСТВУЕТ;&lt;br /&gt;
         2      НЕ ИСПОЛЬЗУЕТСЯ;&lt;br /&gt;
         3      ПЕРЕПОЛНЕНИЕ КАТАЛОГА;&lt;br /&gt;
         4      ВХОДНОЙ ФАЙЛ НЕ НАЙДЕН.&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ЕСЛИ ВВОД СТРОКИ ПРОИСХОДИТ С&lt;br /&gt;
ТЕРМИНАЛА, ТО ПРИ ПОЯВЛЕНИИ ОШИБОК СООБЩЕНИЕ О НИХ&lt;br /&gt;
ВЫВОДИТСЯ НА СИСТЕМНЫЙ ТЕРМИНАЛ.&lt;br /&gt;
&lt;br /&gt;
    ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .CSTAT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.7.    .CSISPC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CSISPC ВЫЗЫВАЕТ&lt;br /&gt;
ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ В СПЕЦИАЛЬНОМ РЕЖИМЕ ДЛЯ&lt;br /&gt;
ОБРАБОТКИ СТАНДАРТНОЙ КОМАНДНОЙ СТРОКИ СИСТЕМЫ РАФОС.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .CSISPC  OUTSPC,DEVEXT,CSTRNG[,LINBUF]&lt;br /&gt;
ГДЕ&lt;br /&gt;
OUTSPC  - АДРЕС БЛОКА ИЗ 39 СЛОВ, ГДЕ РАЗМЕЩАЮТСЯ&lt;br /&gt;
          ДЕСКРИПТОРЫ ФАЙЛОВ, УКАЗАННЫЕ В МАКРОКОМАНДЕ&lt;br /&gt;
          .CSISPC;&lt;br /&gt;
DEVEXT  - АДРЕС БЛОКА ИЗ ЧЕТЫРЕХ СЛОВ, СОДЕРЖАЩЕГО&lt;br /&gt;
          РАСШИРЕНИЯ ФАЙЛОВ ПО УМОЛЧАНИЮ В КОДЕ RADIX-50;&lt;br /&gt;
CSTRNG  - АДРЕС КОМАНДНОЙ СТРОКИ ИЛИ #8, ЕСЛИ ВВОД СТРОКИ&lt;br /&gt;
          ПРОИСХОДИТ С ТЕРМИНАЛА;&lt;br /&gt;
LINBUF  - АДРЕС, ГДЕ СОХРАНЯЕТСЯ КОПИЯ КОМАНДНОЙ СТРОКИ.&lt;br /&gt;
    В ЭТОМ РЕЖИМЕ ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ НЕ&lt;br /&gt;
ПРОИЗВОДИТ ЗАГРУЗКУ ДРАЙВЕРОВ И НЕ ВЫПОЛНЯЕТ МАКРОКОМАНД&lt;br /&gt;
.CLOSE, .ENTER И .LOOKUP.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    В БЛОКЕ OUTSPC ОТВОДИТСЯ ПЕРВЫЕ 15 СЛОВ ДЛЯ ТРЕХ&lt;br /&gt;
ВЫХОДНЫХ ФАЙЛОВ (5 СЛОВ НА ФАЙЛ) И 24 СЛОВА ДЛЯ ШЕСТИ&lt;br /&gt;
ВХОДНЫХ ФАЙЛОВ (4 СЛОВА НА ФАЙЛ). ЕСЛИ КАКОЙ-ТО ФАЙЛ&lt;br /&gt;
ОТСУТСТВУЕТ, ТО СООТВЕТСТВУЮЩЕЕ ПОЛЕ ЗАПОЛНЯЕТСЯ НУЛЯМИ.&lt;br /&gt;
    В БЛОК ДЛЯ ВЫХОДНЫХ ФАЙЛОВ ЗАНОСИТСЯ:&lt;br /&gt;
1 СЛОВО     - ИМЯ УСТРОЙСТВА (RADIX-50);&lt;br /&gt;
2-3 СЛОВО   - ИМЯ ФАЙЛА (RADIX-50);&lt;br /&gt;
4 СЛОВО     - РАСШИРЕНИЕ ИМЕНИ ФАЙЛА (RADIX-50);&lt;br /&gt;
5 СЛОВО     - РАЗМЕР ФАЙЛА (ВОСЬМЕРИЧНОЕ).&lt;br /&gt;
    В БЛОК ДЛЯ ВХОДНЫХ ФАЙЛОВ ЗАНОСИТСЯ:&lt;br /&gt;
1 СЛОВО     - ИМЯ УСТРОЙСТВА (RADIX-50);&lt;br /&gt;
2-3 СЛОВО   - ИМЯ ФАЙЛА (RADIX-50);&lt;br /&gt;
4 СЛОВО     - РАСШИРЕНИЕ ИМЕНИ ФАЙЛА (RADIX-50).&lt;br /&gt;
    ЕСЛИ СТРОКА НАХОДИТСЯ В ПАМЯТИ, ОНА ДОЛЖНА&lt;br /&gt;
ЗАКАНЧИВАТЬСЯ НУЛЕВЫМ БАЙТОМ, А НЕ СОДЕРЖАТЬ СИМВОЛЫ&lt;br /&gt;
&amp;lt;CR&amp;gt;,&amp;lt;LF&amp;gt;.&lt;br /&gt;
    БЛОК DEVEXT СОДЕРЖИТ:&lt;br /&gt;
СЛОВО 1 - РАСШИРЕНИЕ ДЛЯ ВСЕХ ВХОДНЫХ ФАЙЛОВ;&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 30 -&lt;br /&gt;
&lt;br /&gt;
СЛОВО 2 - РАСШИРЕНИЕ ДЛЯ ПЕРВОГО ВЫХОДНОГО ФАЙЛА;&lt;br /&gt;
СЛОВО 3 - РАСШИРЕНИЕ ДЛЯ ВТОРОГО ВЫХОДНОГО ФАЙЛА;&lt;br /&gt;
СЛОВО 4 - РАСШИРЕНИЕ ДЛЯ ТРЕТЬЕГО ВЫХОДНОГО ФАЙЛА.&lt;br /&gt;
    ЕСЛИ НЕ ИСПОЛЬЗУЮТСЯ РАСШИРЕНИЯ ПО УМОЛЧАНИЮ,&lt;br /&gt;
СООТВЕТСТВУЮЩИЕ СЛОВА ДОЛЖНЫ СОДЕРЖАТЬ 0.&lt;br /&gt;
    ОБЛАСТЬ LINBUF (ДЛИНОЮ 81. БАЙТ) РЕЗЕРВИРУЕТСЯ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЕМ. ВВОДИМАЯ СТРОКА ПРЕДСТАВЛЯЕТСЯ, КАК СТРОКА&lt;br /&gt;
ДИРЕКТИВЫ .ASCIZ, И МОЖЕТ БЫТЬ НАПЕЧАТАНА С ПОМОЩЬЮ&lt;br /&gt;
МАКРОКОМАНДЫ .PRINT.&lt;br /&gt;
    МАКРОКОМАНДА .CSISPC АВТОМАТИЧЕСКИ ВЫБИРАЕТ СТРОКУ&lt;br /&gt;
ИЗ КОМАНДНОГО ФАЙЛА, ЕСЛИ БЫЛ УКАЗАН ВВОД С ТЕРМИНАЛА&lt;br /&gt;
(CSTRNG=0), А САМА ПРОГРАММА ВЫЗЫВАЛАСЬ ИЗ ЭТОГО&lt;br /&gt;
КОМАНДНОГО ФАЙЛА.&lt;br /&gt;
    КЛЮЧИ И СВЯЗАННЫЕ С НИМИ ЗНАЧЕНИЯ ПЕРЕДАЮТСЯ В СТЕК&lt;br /&gt;
(СМ. НИЖЕ).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
            КОД             ПОЯСНЕНИЕ&lt;br /&gt;
             0      НЕДОПУСТИМАЯ КОМАНДА;&lt;br /&gt;
             1      УКАЗАННОЕ УСТРОЙСТВО ОТСУТСТВУЕТ.&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ЕСЛИ ВВОД СТРОКИ ПРОИСХОДИТ С&lt;br /&gt;
ТЕРМИНАЛА, ТО ПРИ ПОЯВЛЕНИИ ОШИБОК СООБЩЕНИЕ О НИХ&lt;br /&gt;
ВЫВОДИТСЯ НА СИСТЕМНЫЙ ТЕРМИНАЛ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПОКАЗАНО ИСПОЛЬЗОВАНИЕ CSI В СПЕЦИАЛЬНОМ&lt;br /&gt;
РЕЖИМЕ. ПРОГРАММА ЧИТАЕТ ФАЙЛ В ФОРМАТЕ ДОС И ЗАПИСЫВАЕТ&lt;br /&gt;
ЕГО В ФОРМАТЕ РАФОС.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CSISPC,.PRINT,.EXIT,.ENTER,.CLOSE&lt;br /&gt;
START:  .CSISPC #OUTSPC,#DEXT,#CSTRNG   ;ВВЕСТИ КОМАНДНУЮ&lt;br /&gt;
                                        ;СТРОКУ ИЗ ПАМЯТИ&lt;br /&gt;
         BCC    1$&lt;br /&gt;
        .PRINT  #MSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
1$:     .ENTER  #AREA,#0,#OUTSPC,#OUTSPC+10 ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
                                            ;ДЛЯ ВЫВОДА&lt;br /&gt;
         BCC    2$&lt;br /&gt;
        .PRINT  #MSG1&lt;br /&gt;
        .EXIT&lt;br /&gt;
2$:      JSR    PC,INPUT            ;ПОДПРОГРАММА ВВОДА&lt;br /&gt;
                                    ;В ФОРМАТЕ ДОС И ВЫВОДА&lt;br /&gt;
                                    ;В ФОРМАТЕ РАФОС&lt;br /&gt;
        .CLOSE  #0                  ;ЗАКРЫТЬ ВЫХОДНОЙ ФАЙЛ&lt;br /&gt;
        .EXIT&lt;br /&gt;
CSTRNG: .ASCIZ  RK1:RAFOS.MAC=RK2:DOS.MAC   ;КОМАНДНАЯ&lt;br /&gt;
                                            ;СТРОКА&lt;br /&gt;
        .EVEN&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DEXT:   .WORD   0,0,0,0             ;БЛОК РАСШИРЕНИЙ&lt;br /&gt;
                                    ;ПО УМОЛЧАНИЮ&lt;br /&gt;
AREA:   .BLKW   5                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
MSG:    .ASCIZ  /ОШИБКА CSI/&lt;br /&gt;
MSG1:   .ASCIZ  /ОШИБКА ENTER/&lt;br /&gt;
        .EVEN&lt;br /&gt;
INPUT:   .                          ;ТЕКСТ ПОДПРОГРАММЫ&lt;br /&gt;
         .&lt;br /&gt;
         RTS    PC&lt;br /&gt;
OUTSPC  = .                         ;БЛОК ДЕСКРИПТОРОВ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.7.1.  ИНФОРМАЦИЯ О КЛЮЧАХ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    В ОБЩЕМ И СПЕЦИАЛЬНОМ РЕЖИМАХ ИНТЕРПРЕТАТОРА&lt;br /&gt;
КОМАНДНОЙ СТРОКИ (CSI) КЛЮЧИ И СООТВЕТСТВУЮЩИЕ ИМ&lt;br /&gt;
ЗНАЧЕНИЯ ПЕРЕДАЮТСЯ В СТЕК.&lt;br /&gt;
    КЛЮЧОМ ЯВЛЯЕТСЯ КОСАЯ ЧЕРТА (/), ЗА КОТОРОЙ СЛЕДУЕТ&lt;br /&gt;
ЛЮБОЙ СИМВОЛ (ЖЕЛАТЕЛЬНО, ЧТОБЫ ОН БЫЛ НЕСЛУЖЕБНЫМ).&lt;br /&gt;
    ЗА КЛЮЧОМ МОЖЕТ СЛЕДОВАТЬ ЗНАЧЕНИЕ КЛЮЧА, КОТОРОЕ&lt;br /&gt;
УКАЗЫВАЕТСЯ ДВОЕТОЧИЕМ (:). ЗНАЧЕНИЕ КЛЮЧА МОЖЕТ БЫТЬ&lt;br /&gt;
ЛИБО ВОСЬМЕРИЧНЫМ ЧИСЛОМ, ЛИБО ДЕСЯТИЧНЫМ ЧИСЛОМ, ЛИБО&lt;br /&gt;
НАБОРОМ БУКВЕННО-ЦИФРОВЫХ СИМВОЛОВ (ОТ 1 ДО 3 СИМВОЛОВ),&lt;br /&gt;
ПЕРВЫЙ ИЗ КОТОРЫХ ДОЛЖЕН БЫТЬ БУКВЕННЫМ. ДЕСЯТИЧНЫЕ&lt;br /&gt;
ВЕЛИЧИНЫ УКАЗЫВАЮТСЯ ЧИСЛОМ С ТОЧКОЙ. ЕСЛИ ТОЧКА&lt;br /&gt;
ОТСУТСТВУЕТ, ТО ЧИСЛО СЧИТАЕТСЯ ВОСЬМЕРИЧНЫМ.&lt;br /&gt;
    ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ В СТЕКЕ КЛЮЧИ И ИХ ЗНАЧЕНИЯ В&lt;br /&gt;
СЛЕДУЮЩЕМ ВИДЕ:&lt;br /&gt;
СЛОВО 1 - (ВЕРХУШКА СТЕКА). КОЛИЧЕСТВО КЛЮЧЕЙ В КОМАНДНОЙ&lt;br /&gt;
          СТРОКЕ; ЕСЛИ 0, ТО КЛЮЧИ ОТСУТСТВУЮТ;&lt;br /&gt;
СЛОВО 2 - МЛАДШИЙ БАЙТ СОДЕРЖИТ МНЕМОНИКУ КЛЮЧА, СТАРШИЙ -&lt;br /&gt;
          НОМЕР ФАЙЛА, С КОТОРЫМ СВЯЗАН КЛЮЧ; ЕСЛИ 15 БИТ&lt;br /&gt;
          =1, ТО КЛЮЧ ИМЕЕТ ЗНАЧЕНИЕ;&lt;br /&gt;
СЛОВО 3 - ЕСЛИ УСТАНОВЛЕН 15 БИТ СЛОВА 2, ТО СОДЕРЖИТСЯ&lt;br /&gt;
          ЗНАЧЕНИЕ КЛЮЧА; ЕСЛИ НЕТ, ТО СЛЕДУЮЩИЙ КЛЮЧ&lt;br /&gt;
          (ЕСЛИ ОН ЕСТЬ).&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 31 -&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ЕСЛИ КЛЮЧ ИМЕЕТ НЕСКОЛЬКО&lt;br /&gt;
ЗНАЧЕНИЙ, В СТЕК ЗАПИСЫВАЕТСЯ СООТВЕТСТВУЮЩЕЕ КОЛИЧЕСТВО&lt;br /&gt;
КЛЮЧЕЙ.&lt;br /&gt;
    СЛЕДУЕТ ПОМНИТЬ, ЧТО В FB-МОНИТОРЕ ВВОД С СИСТЕМНОГО&lt;br /&gt;
ТЕРМИНАЛА ВСЕГДА ОСУЩЕСТВЛЯЕТ НЕЯВНОЕ ОБРАЩЕНИЕ К&lt;br /&gt;
МАКРОКОМАНДЕ .UNLOCK ДЛЯ USR. ЭТО НУЖНО ИМЕТЬ ВВИДУ ПРИ&lt;br /&gt;
ИСПОЛЬЗОВАНИИ МАКРОКОМАНДЫ .LOCK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.8.    .CSTAT  (ТОЛЬКО ДЛЯ FB- И ХМ-МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CSTAT ЗАПОЛНЯЕТ 6 СЛОВ&lt;br /&gt;
ПАМЯТИ ИНФОРМАЦИЕЙ О КАНАЛЕ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                    .CSTAT  AREA,CHAN,ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА, О КОТОРОМ ТРЕБУЕТСЯ ИНФОРМАЦИЯ;&lt;br /&gt;
ADDR    - АДРЕС БЛОКА ИЗ 6 СЛОВ, СОДЕРЖАЩИХ ИНФОРМАЦИЮ О&lt;br /&gt;
          КАНАЛЕ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   27   !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ADDR      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ПОЛЬЗОВАТЕЛЮ ПЕРЕДАЕТСЯ:&lt;br /&gt;
СЛОВО 1 - СЛОВО СОСТОЯНИЯ КАНАЛА;&lt;br /&gt;
СЛОВО 2 - НОМЕР ПЕРВОГО БЛОКА ФАЙЛА;&lt;br /&gt;
СЛОВО 3 - ДЛИНА ФАЙЛА;&lt;br /&gt;
СЛОВО 4 - МАКСИМАЛЬНЫЙ НОМЕР ЗАПИСАННОГО БЛОКА;&lt;br /&gt;
СЛОВО 5 - НОМЕР УСТРОЙСТВА;&lt;br /&gt;
СЛОВО 6 - ИМЯ УСТРОЙСТВА (В RADIX-50).&lt;br /&gt;
    СЛОВО 2 СОДЕРЖИТ 0, ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
ПОСЛЕДОВАТЕЛЬНЫМ ДОСТУПОМ ИЛИ КАНАЛ БЫЛ ОТКРЫТ&lt;br /&gt;
МАКРОКОМАНДАМИ .LOOKUP ИЛИ .ENTER, КАК ДЛЯ УСТРОЙСТВА С&lt;br /&gt;
НЕФАЙЛОВОЙ СТРУКТУРОЙ.&lt;br /&gt;
    В СЛОВЕ 3 ИНФОРМАЦИЯ ОТСУТСТВУЕТ, ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
НЕФАЙЛОВОЙ СТРУКТУРОЙ, А ТАКЖЕ, ЕСЛИ КАНАЛ БЫЛ ОТКРЫТ&lt;br /&gt;
МАКРОКОМАНДАМИ .LOOKUP ИЛИ .ENTER ДЛЯ УСТРОЙСТВА С&lt;br /&gt;
НЕФАЙЛОВОЙ СТРУКТУРОЙ.&lt;br /&gt;
    В СЛОВЕ 4 ИНФОРМАЦИЯ ОТСУТСТВУЕТ, ЕСЛИ УСТРОЙСТВО С&lt;br /&gt;
НЕФАЙЛОВОЙ СТРУКТУРОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
            КОД             ПОЯСНЕНИЕ&lt;br /&gt;
             0          КАНАЛ НЕ ОТКРЫТ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПОКАЗАНО ПОЛУЧЕНИЕ ИМЕНИ УСТРОЙСТВА,&lt;br /&gt;
СВЯЗАННОГО С ПЕРВЫМ ВЫХОДНЫМ ФАЙЛОМ В КОМАНДНОЙ СТРОКЕ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .CSTAT,.CSIGEN,.PRINT,.EXIT&lt;br /&gt;
START:  .CSIGEN #DEVSPC,#DEVEXT     ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
        .CSTAT  #AREA,#0,#ADDR      ;ПОЛУЧИТЬ ИНФОРМАЦИЮ&lt;br /&gt;
                                    ;О 0 КАНАЛЕ&lt;br /&gt;
         BCS    ERR&lt;br /&gt;
         MOV    #ADDR+10,R5&lt;br /&gt;
         MOV    (R5)+,RO&lt;br /&gt;
         ADD    (PC)+,R0&lt;br /&gt;
        .RAD50  /   0/&lt;br /&gt;
         ADD    (R5),R0&lt;br /&gt;
         MOV    R0,DEVNAM           ;ПОЛУЧИТЬ ИМЯ УСТРОЙСТВ&lt;br /&gt;
        .EXIT&lt;br /&gt;
AREA:   .BLKW   5                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
ADDR:   .BLKW   6                   ;БЛОК ИНФОРМАЦИИ&lt;br /&gt;
                                    ;О КАНАЛЕ&lt;br /&gt;
DEVNAM: .WORD   0&lt;br /&gt;
DEVEXT: .WORD   0,0,0,0             ;БЛОК РАСШИРЕНИЙ&lt;br /&gt;
                                    ;ПО УМОЛЧАНИЮ&lt;br /&gt;
ERR:    .PRINT  #MSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
MSG:    .ASCIZ  /КАНАЛ НЕ ОТКРЫТ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
DEVSPC  = .                         ;АДРЕС ЗАГРУЗКИ&lt;br /&gt;
                                    ;ДРАЙВЕРОВ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.9.    .CTRLT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .CTRLT ОПРЕДЕЛЯЕТ&lt;br /&gt;
СИМВОЛИЧЕСКИЕ ОБОЗНАЧЕНИЯ УПРАВЛЯЮЩИХ СИМВОЛОВ (ИМЕЮЩИХ&lt;br /&gt;
КОДЫ 0-37).&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .CTRLT&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 32 -&lt;br /&gt;
&lt;br /&gt;
    РАСШИРЕНИЕ МАКРОКОМАНДЫ:&lt;br /&gt;
NUL     =^0000&lt;br /&gt;
SOH     =^0001&lt;br /&gt;
STH     =^0002&lt;br /&gt;
ETX     =^0003&lt;br /&gt;
EOT     =^0004&lt;br /&gt;
ENQ     =^0005&lt;br /&gt;
ACK     =^0006&lt;br /&gt;
BEL     =^0007&lt;br /&gt;
BS      =^0010&lt;br /&gt;
HT      =^0011&lt;br /&gt;
LF      =^0012&lt;br /&gt;
VT      =^0013&lt;br /&gt;
FF      =^0014&lt;br /&gt;
CR      =^0015&lt;br /&gt;
SO      =^0016&lt;br /&gt;
SI      =^0017&lt;br /&gt;
DLE     =^0020&lt;br /&gt;
DC1     =^0021&lt;br /&gt;
DC2     =^0022&lt;br /&gt;
DC3     =^0023&lt;br /&gt;
DC4     =^0024&lt;br /&gt;
NAK     =^0025&lt;br /&gt;
SYN     =^0026&lt;br /&gt;
ETB     =^0027&lt;br /&gt;
CAN     =^0030&lt;br /&gt;
EM      =^0031&lt;br /&gt;
SUB$    =^0032&lt;br /&gt;
ESC     =^0033&lt;br /&gt;
FS      =^0034&lt;br /&gt;
GS      =^0035&lt;br /&gt;
RS      =^0036&lt;br /&gt;
US      =^0037&lt;br /&gt;
&lt;br /&gt;
    ДАННАЯ МАКРОКОМАНДА КОДОВ ЕМТ НЕ ГЕНЕРИРУЕТ, А&lt;br /&gt;
ЯВЛЯЕТСЯ ЧИСТО ОПИСАТЕЛЬНОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .CHAIN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.10.   .DATE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .DATE ПЕРЕДАЕТ ИНФОРМАЦИЮ О&lt;br /&gt;
ТЕКУЩЕЙ ДАТЕ В RO:&lt;br /&gt;
    - БИТЫ 13-10    - НОМЕР МЕСЯЦА (1-12.);&lt;br /&gt;
    - БИТЫ  9-5     - ДЕНЬ НЕДЕЛИ (1-31.);&lt;br /&gt;
    - БИТЫ  4-0     - ГОД (ЗНАЧЕНИЕ ГОДА ОПРЕДЕЛЯЕТСЯ&lt;br /&gt;
                      ВЫЧИТАНИЕМ ИЗ ТЕКУЩЕГО ГОДА ЧИСЛА 72.).&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .DATE&lt;br /&gt;
    ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt;                   !   12   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    ЕСЛИ ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ RO=0, ТО ЭТО&lt;br /&gt;
ОЗНАЧАЕТ, ЧТО ДАТА НЕ БЫЛА ВВЕДЕНА ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. РАФОС НЕ ПРОИЗВОДИТ ПРОВЕРКУ НА&lt;br /&gt;
КОРРЕКТНОСТЬ УКАЗАННОЙ ДАТЫ (КОНЕЦ МЕСЯЦА И ГОДА).&lt;br /&gt;
НАПРИМЕР, ПОЛЬЗОВАТЕЛЬ МОЖЕТ ВВЕСТИ ИАКУЮ ДАТУ КАК 31&lt;br /&gt;
ФЕВРАЛЯ. НЕОБХОДИМО ТОЧНО ВЫЧИСЛЯТЬ ПРОГРАММОЙ ГОД И&lt;br /&gt;
ПЕРВЫЙ ДЕНЬ КАЖДОГО МЕСЯЦА.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПРИВЕДЕНА ПОДПРОГРАММА ОБРАБОТКИ ДАТЫ,&lt;br /&gt;
ВВЕДЕННОЙ ПОЛЬЗОВАТЕЛЕМ КОМАНДОЙ МОНИТОРА DATE.&lt;br /&gt;
&lt;br /&gt;
; ОБРАЩЕНИЕ К ПОДПРОГРАММЕ:&lt;br /&gt;
;&lt;br /&gt;
;           JSR     PC,DATE&lt;br /&gt;
;&lt;br /&gt;
; РЕЗУЛЬТАТ: RO = МЕСЯЦ (1-12)&lt;br /&gt;
;            R1 = ЧИСЛО (1-31)&lt;br /&gt;
;            R2 = ГОД (ПО МОДУЛЮ 100)&lt;br /&gt;
;&lt;br /&gt;
; ОШИБКИ: RO=0, ЕСЛИ ДАТА НЕ ВВЕДЕНА ПОЛЬЗОВАТЕЛЕМ&lt;br /&gt;
;&lt;br /&gt;
        .MCALL  .DATE,.POP,.PUSH&lt;br /&gt;
DATE:&lt;br /&gt;
        .PUSH   R2,R1,RO            ;СОХРАНИТЬ РЕГИСТРЫ&lt;br /&gt;
        .DATE                       ;ВЫБРАТЬ ДАТУ&lt;br /&gt;
         MOV    RO,R2               ;ВВЕДЕНА?&lt;br /&gt;
         BEQ    1$                  ;HET&lt;br /&gt;
         BIC    #^C37,R2            ;ВЫБРАТЬ ГОД В R2&lt;br /&gt;
         ADD    #72.,R2&lt;br /&gt;
         MOV    RO,R1               ;ВЫБРАТЬ ЧИСЛО&lt;br /&gt;
         ASL    R1&lt;br /&gt;
         ASL    R1&lt;br /&gt;
         ASL    R1&lt;br /&gt;
         SWAB   R1&lt;br /&gt;
         BIC    #^C37,R1&lt;br /&gt;
         SWAB   RO                  ;ВЫБРАТЬ МЕСЯЦ&lt;br /&gt;
         ASR    RO&lt;br /&gt;
         ASR    RO&lt;br /&gt;
         BIC    #^C37,RO&lt;br /&gt;
1$:     .POP    RO,R1,R2            ;ВОССТАНОВИТЬ РЕГИСТРЫ&lt;br /&gt;
         RTS    PC&lt;br /&gt;
        .END&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 33 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.11.   .DBLK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .DBLK СОЗДАЕТ БЛОК УСТРОЙСТВА&lt;br /&gt;
(СМ. Т.3 КН.2 Ч.1) ДЛЯ УКАЗАННОГО ФАЙЛА В КОДЕ RADIX-50.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .DBLK   DEV,NAM,TYP&lt;br /&gt;
ГДЕ&lt;br /&gt;
DEV - ИМЯ УСТРОЙСТВА;&lt;br /&gt;
NAM - НАИМЕНОВАНИЕ ФАЙЛА;&lt;br /&gt;
TYP - РАСШИРЕНИЕ ИМЕНИ ФАЙЛА.&lt;br /&gt;
    ДАННАЯ МАКРОКОМАНДА КОДОВ ЕМТ НЕ ГЕНЕРИРУЕТ.&lt;br /&gt;
&lt;br /&gt;
ОЩИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .CHAIN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.12.   .DEVICE (ТОЛЬКО ДЛЯ FB- И ХМ- МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .DEVICE ОПРЕДЕЛЯЕТ ТАБЛИЦЫ&lt;br /&gt;
АДРЕСОВ, В КОТОРЫЕ НУЖНО ЗАПИСАТЬ УКАЗАННУЮ ИНФОРМАЦИЮ&lt;br /&gt;
ПРИ ЗАВЕРШЕНИИ ПРОГРАММЫ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                .DEVICE     AREA,ADDR[,LINK]&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
ADDR    - АДРЕС ТАБЛИЦЫ АДРЕСОВ И ЗНАЧЕНИЙ;&lt;br /&gt;
LINK    - АРГУМЕНТ, ПОЗВОЛЯЮЩИЙ ОБ_ЕДИНЯТЬ ТАБЛИЦЫ ПРИ&lt;br /&gt;
          ПОСЛЕДОВАТЕЛЬНЫХ ВЫПОЛНЕНИЯХ МАКРОКОМАНДЫ&lt;br /&gt;
          .DEVICE; ЕСЛИ АРГУМЕНТ ОПУЩЕН, ТО ПРЕДЫДУЩИЙ&lt;br /&gt;
          СПИСОК ЗАМЕНЯЕТСЯ НОВЫМ, А НЕ ОБ_ЕДИНЯЕТСЯ.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ (БЕЗ ОБ_ЕДИНЕНИЯ):&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   14   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ADDR      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ (С ОБ_ЕДИНЕНИЕМ):&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   14   !    1   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ADDR      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ТАБЛИЦА АДРЕСОВ И ЗНАЧЕНИЙ ЗАПОЛНЯЕТСЯ ПОЛЬЗОВАТЕЛЕМ&lt;br /&gt;
ПОСЛОВНО:&lt;br /&gt;
СЛОВО 1 - АДРЕС, В КОТОРЫЙ ПОМЕЩАЕТСЯ ИНФОРМАЦИЯ;&lt;br /&gt;
СЛОВО 2 - ЗНАЧЕНИЕ, КОТОРОЕ НЕОБХОДИМО ЗАНЕСТИ ПО&lt;br /&gt;
          ЗАВЕРШЕНИЮ ПРОГРАММЫ;&lt;br /&gt;
СЛОВО 3 - АДРЕС;&lt;br /&gt;
СЛОВО 4 - ЗНАЧЕНИЕ;&lt;br /&gt;
И Т.Д.&lt;br /&gt;
    ЗАКАНЧИВАЕТСЯ ТАБЛИЦА НУЛЕВЫМ СЛОВОМ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПО ОКОНЧАНИИ РАБОТЫ В ЯЧЕЙКУ 172570&lt;br /&gt;
ЗАНОСИТСЯ 0.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .DEVICE,.EXIT&lt;br /&gt;
START:  .DEVICE #AREA               ;ОПРЕДЕЛИТЬ ТАБЛИЦУ&lt;br /&gt;
        .EXIT&lt;br /&gt;
AREA:   .BYTE   0,10                ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
        .WORD   ATOD&lt;br /&gt;
ATOD:   .WORD   172570              ;ТАБЛИЦА АДРЕСОВ И&lt;br /&gt;
        .WORD   0                   ;ЗНАЧЕНИЙ&lt;br /&gt;
        .WORD   0&lt;br /&gt;
        .END    START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 34 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.13.   .DIR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .DIR ВЫПОЛНЯЕТ МАКРОКОМАНДУ,&lt;br /&gt;
ЗАДАННУЮ ТАБЛИЦЕЙ АРГУМЕНТОВ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .DIR    ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС ТАБЛИЦЫ АРГУМЕНТОВ ВЫПОЛНЯЕМОЙ&lt;br /&gt;
          МАКРОКОМАНДЫ.&lt;br /&gt;
    ТАБЛИЦА АРГУМЕНТОВ МОЖЕТ БЫТЬ РАСПОЛОЖЕНА В ЛЮБОМ&lt;br /&gt;
МЕСТЕ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SYNCH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.14.   .DSTATUS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .DSTATUS ПЕРЕДАЕТ СИСТЕМНЫЕ&lt;br /&gt;
ХАРАКТЕРИСТИКИ УСТРОЙСТВА В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .DSTATUS    ADDR,DNAM&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС БЛОКА ИЗ 4 СЛОВ ДЛЯ ИНФОРМАЦИИ О СОСТОЯНИИ&lt;br /&gt;
          УСТРОЙСТВА;&lt;br /&gt;
DNAM    - АДРЕС СЛОВА, СОДЕРЖАЩЕГО ИМЯ УСТРОЙСТВА&lt;br /&gt;
          (RADIX-50), О КОТОРОМ НЕОБХОДИМО ПОЛУЧИТЬ&lt;br /&gt;
          ИНФОРМАЦИЮ.&lt;br /&gt;
    ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ СЛЕДУЮЩУЮ ИНФОРМАЦИЮ:&lt;br /&gt;
СЛОВО 1 - ПАРАМЕТРЫ УСТРОЙСТВА (ДРАЙВЕРА);&lt;br /&gt;
СЛОВО 2 - РАЗМЕР ДРАЙВЕРА В БАЙТАХ;&lt;br /&gt;
СЛОВО 3 - АДРЕС ЗАГРУЗКИ ДРАЙВЕРА;&lt;br /&gt;
СЛОВО 4 - РАЗМЕР УСТРОЙСТВА В БЛОКАХ.&lt;br /&gt;
    СЛОВО ПАРАМЕТРОВ УСТРОЙСТВА СОДЕРЖИТ:&lt;br /&gt;
БИТ 15  - 0 УСТРОЙСТВО С БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ;&lt;br /&gt;
        - 1 УСТРОЙСТВО С КАТАЛОГОВОЙ ОРГАНИЗАЦИЕЙ;&lt;br /&gt;
БИТ 14  - 1 УСТРОЙСТВО ТОЛЬКО ДЛЯ ЧТЕНИЯ;&lt;br /&gt;
БИТ 13  - 1 УСТРОЙСТВО ТОЛЬКО ДЛЯ ЗАПИСИ;&lt;br /&gt;
БИТ 12  - 1 УСТРОЙСТВО С НЕСТАНДАРТНОЙ ФАЙЛОВОЙ&lt;br /&gt;
          СТРУКТУРОЙ;&lt;br /&gt;
БИТ 11  - 0 ПРИ УДАЛЕНИИ ПРОГРАММЫ ДРАЙВЕР ВЫПОЛНЯЕТ&lt;br /&gt;
          ЗАВЕРШАЮЩИХ ОПЕРАЦИЙ С УСТРОЙСТВОМ, ЕСЛИ ЭЛЕМЕНТ&lt;br /&gt;
          ОЧЕРЕДИ АКТИВЕН;&lt;br /&gt;
        - 1 ПРИ УДАЛЕНИИ ПРОГРАММЫ ДРАЙВЕР ВЫПОЛНЯЕТ&lt;br /&gt;
          ЗАВЕРШАЮЩИЕ ОПЕРАЦИИ С УСТРОЙСТВОМ;&lt;br /&gt;
БИТ 10  - 0 МАКРОКОМАНДА .SPFUN ЗАПРЕЩЕНА;&lt;br /&gt;
        - 1 ДРАЙВЕР МОЖЕТ ВЫПОЛНЯТЬ МАКРОКОМАНДУ .SPFUN;&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
БИТЫ 0-7- НОМЕР, ОПРЕДЕЛЯЮЩИЙ ТИП УСТРОЙСТВА.&lt;br /&gt;
    НИЖЕ ПЕРЕЧИСЛЕНЫ НОМЕРА УСТРОЙСТВ, ИСПОЛЬЗУЕМЫХ В&lt;br /&gt;
РАФОС:&lt;br /&gt;
0   - ДИСК С ПЛАВАЮЩИМИ ГОЛОВКАМИ КАССЕТНОГО ТИПА (RK);&lt;br /&gt;
3   - УСТРОЙСТВО ПЕЧАТИ (LP);&lt;br /&gt;
4   - СИСТЕМНЫЙ ТЕРМИНАЛ (ТТ) ИЛИ ДРАЙВЕР ПАКЕТНОЙ&lt;br /&gt;
      ОБРАБОТКИ (ВАТСН);&lt;br /&gt;
7   - УСТРОЙСТВО ВВОДА/ВЫВОДА НА ПЕРФОЛЕНТУ (РС);&lt;br /&gt;
11  - МАГНИТНАЯ ЛЕНТА (МТ);&lt;br /&gt;
12  - ДИСК С ФИКСИРОВАННЫМИ ГОЛОВКАМИ (RF);&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 35 -&lt;br /&gt;
&lt;br /&gt;
13  - НАКОПИТЕЛЬ НА КАССЕТНОЙ ЛЕНТЕ (СТ);&lt;br /&gt;
14  - УСТРОЙСТВО ВВОДА С ПЕРФОКАРТ (CR);&lt;br /&gt;
20  - МАГНИТНАЯ ЛЕНТА С ВЫСОКОЙ ПЛОТНОСТЬЮ (ММ);&lt;br /&gt;
21  - ПАКЕТ СМЕННЫХ ДИСКОВ (DP);&lt;br /&gt;
22  - ГИБКИЙ ДИСК (DX);&lt;br /&gt;
23  - 29 МБАЙТНЫЙ ПАКЕТ ДИСКОВ (DP);&lt;br /&gt;
24  - ДРАЙВЕР ПРОТОКОЛИРОВАНИЯ ОШИБОК (EL);&lt;br /&gt;
25  - НУЛЬ-ДРАЙВЕР (NL);&lt;br /&gt;
60  - ДРАЙВЕР ВИРТУАЛЬНЫХ НОСИТЕЛЕЙ (UX,UY,UZ).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0      УСТРОЙСТВО НЕ ОБНАРУЖЕНО В ТАБЛИЦАХ&lt;br /&gt;
                МОНИТОРА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ОПРЕДЕЛЯЕТСЯ РЕЗИДЕНТНОСТЬ ДРАЙВЕРА И, В&lt;br /&gt;
СЛУЧАЕ НЕОБХОДИМОСТИ, ДРАЙВЕР ЗАГРУЖАЕТСЯ ИЛИ&lt;br /&gt;
ВЫГРУЖАЕТСЯ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .DSTATUS,.PRINT,.EXIT,.FETCH,.RELEAS&lt;br /&gt;
START:  .DSTATUS #CODE,#FTPR        ;ПОЛУЧИТЬ ИНФОРМАЦИЮ&lt;br /&gt;
                                    ;ОБ УСТРОЙСТВЕ&lt;br /&gt;
         BCC    1$&lt;br /&gt;
        .PRINT  #MSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
1$:      TST    CODE+4              ;УЖЕ ЗАГРУЖЕН?&lt;br /&gt;
         BNE    3$                  ;ДА&lt;br /&gt;
        .FETCH  #DRVR,#FTPR         ;НЕТ...ЗАГРУЗИТЬ&lt;br /&gt;
                                    ;ДРАЙВЕР&lt;br /&gt;
         BCC    2$&lt;br /&gt;
        .PRINT  #MSG1&lt;br /&gt;
        .EXIT&lt;br /&gt;
2$:     .PRINT  #MSG2               ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
3$:     .RELEAS #FTPR               ;ВЫГРУЗИТЬ ДРАЙВЕР&lt;br /&gt;
         BCC    4$&lt;br /&gt;
        .PRINT  #MSG3&lt;br /&gt;
        .EXIT&lt;br /&gt;
4$:     .PRINT  #MSG4               ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
CODE:   .BLKW   4                   ;БЛОК ИНФОРМАЦИИ&lt;br /&gt;
FTPR:   .RAD50  /RKO/               ;ИМЯ УСТРОЙСТВА&lt;br /&gt;
        .RAD50  /FILE   MAC/        ;ИМЯ ФАЙЛА&lt;br /&gt;
MSG:    .ASCIZ  /УСТРОЙСТВО ОТСУТСТВУЕТ/&lt;br /&gt;
MSG1:   .ASCIZ  /ОШИБКА FETCH/&lt;br /&gt;
MSG2:   .ASCIZ  /ДРАЙВЕР РЕЗИДЕНТЕН/&lt;br /&gt;
MSG3:   .ASCIZ  /ОШИБКА RELEAS/&lt;br /&gt;
MSG4:   .ASCIZ  /ДРАЙВЕР ВЫГРУЖЕН/&lt;br /&gt;
        .EVEN&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DRVR    = .                         ;АДРЕС ЗАГРУЗКИ&lt;br /&gt;
                                    ;ДРАЙВЕРА&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.15.   .EXIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .EXIT ВЫЗЫВАЕТ ОКОНЧАНИЕ&lt;br /&gt;
ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .EXIT&lt;br /&gt;
    ВСЕ НЕЗАВЕРШЕННЫЕ МАКРОКОМАНДЫ .MRKT АННУЛИРУЮТСЯ.&lt;br /&gt;
    ВСЕ МАКРОКОМАНДЫ ВВОДА/ВЫВОДА И ПОДПРОГРАММЫ&lt;br /&gt;
ЗАВЕРШЕНИЯ, ВЫПОЛНЯЕМЫЕ ДЛЯ ДАННОЙ ЗАДАЧИ, ЗАКАНЧИВАЮТСЯ&lt;br /&gt;
НОРМАЛЬНО.&lt;br /&gt;
    ЕСЛИ ПРИ ВЫПОЛНЕНИИ МАКРОКОМАНДЫ .EXIT RO=0, ТО&lt;br /&gt;
ВЫПОЛНЯЕТСЯ ПОДРАЗУМЕВАЕМАЯ МАКРОКОМАНДА .HRESET,&lt;br /&gt;
ЗАПРЕЩАЯ ПОСЛЕДУЮЩЕЕ ВЫПОЛНЕНИЕ КОМАНД МОНИТОРА REENTER,&lt;br /&gt;
START, CLOSE.&lt;br /&gt;
    МАКРОКОМАНДА .EXIT ПОЗВОЛЯЕТ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
ПЕРЕДАВАТЬ В ОБЛАСТЬ KMON (ЯЧЕЙКИ 500-777) КОМАНДНЫЕ&lt;br /&gt;
СТРОКИ, КОТОРЫЕ ВЫПОЛНЯЮТСЯ СЛЕДУЮЩИМ ОБРАЗОМ:&lt;br /&gt;
    - ЯЧЕЙКА 510 ДОЛЖНА СОДЕРЖАТЬ ОБЩЕЕ ЧИСЛО БАЙТОВ&lt;br /&gt;
      КОМАНДНЫХ СТРОК, ПЕРЕДАВАЕМЫХ В KMON;&lt;br /&gt;
    - КОМАНДНЫЕ СТРОКИ, СОДЕРЖАЩИЕСЯ С 512 ЯЧЕЙКИ,&lt;br /&gt;
      ДОЛЖНЫ БЫТЬ СТРОКАМИ ДИРЕКТИВЫ .ASCIZ, НАПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
        .=510&lt;br /&gt;
        .WORD   B-A&lt;br /&gt;
A:      .ASCIZ  /COPY A.MAC B.MAC/&lt;br /&gt;
        .ASCIZ  /DELET A.MAC/&lt;br /&gt;
B   -   .&lt;br /&gt;
&lt;br /&gt;
    - ПЕРЕД ВЫПОЛНЕНИЕМ МАКРОКОМАНДЫ .EXIT&lt;br /&gt;
      ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН УСТАНОВИТЬ БИТ CHNIF$ В&lt;br /&gt;
      СЛОВЕ СОСТОЯНИЯ ПРОГРАММЫ (JSW) (СМ. Т.3 КН.2&lt;br /&gt;
      Ч.1) И ОЧИСТИТЬ RO.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 36 -&lt;br /&gt;
&lt;br /&gt;
    ПРИ ИСПОЛЬЗОВАНИИ ПЕРЕДАВАЕМЫХ КОМАНДНЫХ СТРОК,&lt;br /&gt;
ИМЕЮТСЯ СЛЕДУЮЩИЕ ОГРАНИЧЕНИЯ:&lt;br /&gt;
    - ЕСЛИ ПРОГРАММА ВЫЗВАНА ВЫПОЛНЯЮЩИМСЯ КОМАНДНЫМ&lt;br /&gt;
      ФАЙЛОМ, ТО ЕГО ВЫПОЛНЕНИЕ ПРЕРЫВАЕТСЯ И&lt;br /&gt;
      ВЫПОЛНЯЮТСЯ КОМАНДНЫЕ СТРОКИ ПРОГРАММЫ;&lt;br /&gt;
    - ИЗ ПРОГРАММЫ МОЖЕТ БЫТЬ ВЫЗВАН ТОЛЬКО ОДИН&lt;br /&gt;
      КОМАНДНЫЙ ФАЙЛ;&lt;br /&gt;
    - МАКРОКОМАНДА .EXIT АННУЛИРУЕТ ВЫЗОВЫ МАКРОКОМАНД&lt;br /&gt;
      .CDFN И .QSET И ВЫПОЛНЯЕТ МАКРОКОМАНДУ .UNLOCK,&lt;br /&gt;
      ЕСЛИ БЫЛА ВЫПОЛНЕНА МАКРОКОМАНДА .LOCK; ТАКИМ&lt;br /&gt;
      ОБРАЗОМ, КОМАНДА МОНИТОРА CLOSE НЕ ЗАКРЫВАЕТ&lt;br /&gt;
      КАНАЛОВ, ОТКРЫТЫХ С ПОМОЩЬЮ .CDFN;&lt;br /&gt;
    - МАКРОКОМАНДА .EXIT  В ПОДПРОГРАММАХ ЗАВЕРШЕНИЯ&lt;br /&gt;
      НЕДОПУСТИМА.&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_Ч_A_H_И_E. ПРОГРАММА ПОЛЬЗОВАТЕЛЯ САМА&lt;br /&gt;
ОБЕСПЕЧИВАЕТ ЦЕЛОСТНОСТЬ ДАННЫХ, ПЕРЕДАВАЕМЫХ KMON ВО&lt;br /&gt;
ВРЕМЯ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .EXIT. НЕОБХОДИМО, ЧТОБЫ&lt;br /&gt;
ЭТА ОБЛАСТЬ НЕ ПОРТИЛАСЬ СТЕКОМ ПОЛЬЗОВАТЕЛЯ, Т.К.&lt;br /&gt;
МАКРОКОМАНДА .EXIT ЗАНОСИТ НЕКОТОРОЕ (ПЕРЕМЕННОЕ) ЧИСЛО&lt;br /&gt;
СЛОВ В СТЕК.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПОСЛЕ ОКОНЧАНИЯ РАБОТЫ ПРОГРАММЫ&lt;br /&gt;
ПРОИСХОДИТ ПОЛНАЯ РАСПЕЧАТКА КАТАЛОГА.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .EXIT,.JSWDF&lt;br /&gt;
        .JSWDF                      ;ОПРЕДЕЛИТЬ МНЕМОНИКУ&lt;br /&gt;
                                    ;JSW И ЕГО БИТОВ&lt;br /&gt;
                                    ;(ЗДЕСЬ CHNIF$)&lt;br /&gt;
START:   MOV    #510,RO&lt;br /&gt;
         MOV    #CMDSTR,R1&lt;br /&gt;
1$:      MOV    (R1)+,(RO)+&lt;br /&gt;
         CMP    R1,#CMDEND&lt;br /&gt;
         BLO    1$&lt;br /&gt;
         BIS    #CHNIF$,@#JSW       ;УСТАНОВИТЬ БИТ CHNIF$&lt;br /&gt;
         CLR    RO&lt;br /&gt;
        .EXIT&lt;br /&gt;
CMDSTR: .WORD   CMDEND-CMDSTR       ;ДЛИНА КОМАНДНОЙ&lt;br /&gt;
                                    ;СТРОКИ&lt;br /&gt;
        .ASCIZ  DIRECT/FULL *.MAC   ;КОМАНДНАЯ СТРОКА&lt;br /&gt;
CMDEND:&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.16.   .FETCH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .FETCH ЗАГРУЖАЕТ ДРАЙВЕР С&lt;br /&gt;
СИСТЕМНОГО УСТРОЙСТВА В ОПЕРАТИВНУЮ ПАМЯТЬ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .FETCH  ADDR,DNAM&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС, КУДА ДОЛЖЕН ЗАГРУЖАТЬСЯ ДРАЙВЕР&lt;br /&gt;
          УСТРОЙСТВА;&lt;br /&gt;
DNAM    - АДРЕС СЛОВА, СОДЕРЖАЩЕГО ИМЯ УСТРОЙСТВА В КОДЕ&lt;br /&gt;
          RADIX-50.&lt;br /&gt;
    АДРЕС ПАМЯТИ ДЛЯ ЗАГРУЗКИ ДРАЙВЕРА ПЕРЕСЫЛАЕТСЯ В&lt;br /&gt;
СТЕК. ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .FETCH RO СОДЕРЖИТ&lt;br /&gt;
АДРЕС ПЕРВОЙ СВОБОДНОЙ ЯЧЕЙКИ ВЫШЕ ДРАЙВЕРА. ЕСЛИ ДРАЙВЕР&lt;br /&gt;
УЖЕ В ПАМЯТИ, ТО RO СОДЕРЖИТ ТОТ ЖЕ АДРЕС, ЧТО И&lt;br /&gt;
НАХОДЯЩИЙСЯ В СТЕКЕ. ЕСЛИ ЗНАЧЕНИЕ В СТЕКЕ &amp;lt; 400&lt;br /&gt;
(ВОСЬМЕРИЧНЫХ), ТО ДЛЯ ДРАЙВЕРА ВЫПОЛНЯЕТСЯ МАКРОКОМАНДА&lt;br /&gt;
.RELEAS.&lt;br /&gt;
    СЛЕДУЮЩИЕ МАКРОКОМАНДЫ ТРЕБУЮТ ПРИСУТСТВИЯ ДРАЙВЕРА&lt;br /&gt;
В ПАМЯТИ:&lt;br /&gt;
        .CLOSE          .LOOKUP         .ENTER&lt;br /&gt;
        .RENAME         .SPFUN          .DELET&lt;br /&gt;
        .READ           .READC          .READW&lt;br /&gt;
        .WRITE          .WRITC          .WRITW&lt;br /&gt;
&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. ОПЕРАЦИИ ВВОДА/ВЫВОДА НЕ МОГУТ&lt;br /&gt;
БЫТЬ ВЫПОЛНЕНЫ, ЕСЛИ НЕ ЗАГРУЖЕН ДРАЙВЕР УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0      УСТРОЙСТВО С УКАЗАННЫМ ИМЕНЕМ НЕ СУЩЕСТВУЕТ&lt;br /&gt;
                В СИСТЕМЕ НЕТ ДРАЙВЕРА ЭТОГО УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .DSTATUS.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 37 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.17.   .GTIM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .GTIM ВОЗВРАЩАЕТ ТЕКУЩЕЕ&lt;br /&gt;
СОДЕРЖИМОЕ СИСТЕМНОГО ТАЙМЕРА (В ТИКАХ) ПО УКАЗАННОМУ&lt;br /&gt;
АДРЕСУ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .GTIM   AREA,ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
ADDR    - АДРЕС ДВУХ СЛОВ, КУДА ПОМЕЩАЕТСЯ ВРЕМЯ (ПЕРВОЕ&lt;br /&gt;
          СЛОВО СОДЕРЖИТ СТАРШИЕ РАЗРЯДЫ, ВТОРОЕ -&lt;br /&gt;
          МЛАДШИЕ).&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   21   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ADDR      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА САМА ПРЕОБРАЗОВЫВАТЬ&lt;br /&gt;
ВРЕМЯ ИЗ ТИКОВ В ЧАСЫ, МИНУТЫ, СЕКУНДЫ (1 СЕК = 50 ТИКАМ&lt;br /&gt;
ДЛЯ СЕТИ С ЧАСТОТОЙ 50 ГЦ).&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ В ЯЧЕЙКЕ TIME&lt;br /&gt;
ТЕКУЩЕЕ ВРЕМЯ В ТИКАХ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .GTIM,.EXIT&lt;br /&gt;
START:  .GTIM   #AREA,#TIME         ;ПОЛУЧИТЬ ВРЕМЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
TIME:   .WORD   0,0&lt;br /&gt;
AREA:   .BLKW   2                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.18.   .GTJB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .GTJB ВОЗВРАЩАЕТ ПАРАМЕТРЫ&lt;br /&gt;
ЗАДАНИЯ В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .GTJB   AREA,ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
ADDR    - АДРЕС БЛОКА ИЗ ВОСЬМИ СЛОВ, КУДА ПОМЕЩАЮТСЯ&lt;br /&gt;
          ПАРАМЕТРЫ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO =&amp;gt; AREA:             !   20   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !       ADDR      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ:&lt;br /&gt;
СЛОВО 1 - НОМЕР РАЗДЕЛА: 0-ФОНОВОЕ ЗАДАНИЕ, 1-ОПЕРАТИВНОЕ&lt;br /&gt;
          ЗАДАНИЕ (ДЛЯ SJ-МОНИТОРА ВСЕГДА 0);&lt;br /&gt;
СЛОВО 2 - ВЕРХНИЙ АДРЕС РАЗДЕЛА;&lt;br /&gt;
СЛОВО 3 - НИЖНИЙ АДРЕС РАЗДЕЛА (ДЛЯ SJ-МОНИТОРА ВСЕГДА 0);&lt;br /&gt;
СЛОВО 4 - НАЧАЛЬНЫЙ АДРЕС БУФЕРА КАНАЛОВ ВВОДА/ВЫВОДА;&lt;br /&gt;
СЛОВО 5 - АДРЕС СМЕШАННОЙ ОБЛАСТИ ЗАДАНИЯ (ДЛЯ FB- И&lt;br /&gt;
          ХМ-МОНИТОРОВ);&lt;br /&gt;
СЛОВО 6-8&lt;br /&gt;
        - ЗАРЕЗЕРВИРОВАНЫ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ОПРЕДЕЛЯЕТСЯ РАЗДЕЛ, В КОТОРОМ РАБОТАЕТ&lt;br /&gt;
ПРОГРАММА.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 38 -&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .GTJB,.PRINT,.EXIT&lt;br /&gt;
START:  .GTJB   #AREA,#JOBARG       ;ПОЛУЧИТЬ ПАРАМЕТРЫ&lt;br /&gt;
         MOV    #MSG,RO&lt;br /&gt;
         TST    JOBARG              ;ФОНОВЫЙ РАЗДЕЛ?&lt;br /&gt;
         BNE    1$                  ;HET&lt;br /&gt;
         MOV    #MSG1,RO            &lt;br /&gt;
1$:     .PRINT                      ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
        .EXIT&lt;br /&gt;
MSG:    .ASCIZ  /ПРОГРАММА В ОПЕРАТИВНОМ РАЗДЕЛЕ/&lt;br /&gt;
MSG1:   .ASCIZ  /ПРОГРАММА В ФОНОМ РАЗДЕЛЕ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   2                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
JOBARG: .BLKW   8.                  ;БЛОК ПАРАМЕТРОВ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.19.   .GTLIN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .GTLIN ВВОДИТ КОМАНДНУЮ&lt;br /&gt;
ИНФОРМАЦИЮ, ОТЛИЧНУЮ ОТ ФОРМАТА CSI С СИСТЕМНОГО&lt;br /&gt;
ТЕРМИНАЛА ИЛИ ИЗ ВЫПОЛНЯЮЩЕГОСЯ КОМАНДНОГО ФАЙЛА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .GTLIN  LINBUF[,PROMPT]&lt;br /&gt;
ГДЕ&lt;br /&gt;
LINBUF  - АДРЕС БУФЕРА, КУДА ВВОДИТСЯ СТРОКА;&lt;br /&gt;
PROMPT  - НЕОБЯЗАТЕЛЬНЫЙ АРГУМЕНТ; АДРЕС СТРОКИ-ПОДСКАЗКИ,&lt;br /&gt;
          ПЕЧАТАЮЩЕЙСЯ НА СИСТЕМНОМ ТЕРМИНАЛЕ.&lt;br /&gt;
    ВВОДИМАЯ СТРОКА В ОБЛАСТИ LINBUF (81. БАЙТ)&lt;br /&gt;
ОКАНЧИВАЕТСЯ НУЛЕВЫМ БАЙТОМ ВМЕСТО &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;.&lt;br /&gt;
    МАКРОКОМАНДА .GTLIN ТРЕБУЕТ USR И ВЫБИРАЕТ СТРОКУ С&lt;br /&gt;
СИСТЕМНОГО ТЕРМИНАЛА ИЛИ ИЗ КОМАНДНОГО ФАЙЛА В&lt;br /&gt;
ЗАВИСИМОСТИ ОТ ТОГО, ОТКУДА БЫЛА ЗАГРУЖЕНА ПРОГРАММА.&lt;br /&gt;
    ЕСЛИ БЫЛА ЗАДАНА КОМАНДА SET TT QUIET, A BBOД&lt;br /&gt;
ПРОИСХОДИТ ИЗ КОСВЕННОГО ФАЙЛА, СТРОКА-ПОДСКАЗКА&lt;br /&gt;
ИГНОРИРУЕТСЯ. В ПРОТИВНОМ СЛУЧАЕ СТРОКА-ПОДСКАЗКА&lt;br /&gt;
ВЫВОДИТСЯ НА СИСТЕМНЫЙ ТЕРМИНАЛ ПРЕЖДЕ, ЧЕМ ВЫБРАНА&lt;br /&gt;
ВВОДИМАЯ СТРОКА.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ВВОДИТСЯ СТРОКА С ТЕРМИНАЛА И&lt;br /&gt;
РАСПЕЧАТЫВАЕТСЯ.&lt;br /&gt;
        .MCALL  .GTLIN,.PRINT,.EXIT&lt;br /&gt;
START:  .GTLIN  #BUFF,#PROMPT       ;ВВЕСТИ СТРОКУ&lt;br /&gt;
         TSTB   BUFF                ;СТРОКА ПУСТАЯ?&lt;br /&gt;
         BEQ    END                 ;ДА&lt;br /&gt;
        .PRINT  #BUFF               ;НЕТ...ВЫВЕСТИ СТРОКУ&lt;br /&gt;
         BR     START&lt;br /&gt;
END:    .EXIT&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PROMPT: .ASCIZ  /ВВЕДИТЕ СТРОКУ/    ;СТРОКА-ПОДСКАЗКА&lt;br /&gt;
BUFF:   .BLKB   82.                 ;БУФЕР ВВОДИМОЙ СТРОКИ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.20.   .GVAL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .GVAL ВОЗВРАЩАЕТ В RO&lt;br /&gt;
СОДЕРЖИМОЕ УКАЗАННОЙ ЯЧЕЙКИ МОНИТОРА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .GVAL AREA,OFFSET&lt;br /&gt;
ГДЕ&lt;br /&gt;
AREA    - АДРЕС СПИСКА АРГУМЕНТОВ ЕМТ ИЗ ДВУХ СЛОВ;&lt;br /&gt;
OFFSET  - СМЕЩЕНИЕ НУЖНОЙ ЯЧЕЙКИ ОТ НАЧАЛА МОНИТОРА.&lt;br /&gt;
    ФОРМАТ СПИСКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO=&amp;gt; AREA:              !   34   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
                        !     OFFSET      !&lt;br /&gt;
                        !-----------------!&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .GVAL ИСПОЛЬЗУЕТСЯ ТОЛЬКО ДЛЯ ЧТЕНИЯ И&lt;br /&gt;
ОБЕСПЕЧИВАЕТ СОХРАННОСТЬ ИНФОРМАЦИИ В МОНИТОРЕ.&lt;br /&gt;
    П_P_M_E_Ч_A_H_И_E. ДЛЯ СМЕЩЕНИЙ РЕКОМЕНДУЕТСЯ&lt;br /&gt;
ПОЛЬЗОВАТЬСЯ МНЕМОНИКОЙ, ПОЛУЧЕННОЙ С ПОМОЩЬЮ&lt;br /&gt;
МАКРОКОМАНДЫ .ROFDF.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0      СМЕЩЕНИЕ ВЫХОДИТ ЗА ПРЕДЕЛЫ РЕЗИДЕНТНОГО&lt;br /&gt;
                МОНИТОРА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ НОМЕР ВЕРСИИ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        = 39 =&lt;br /&gt;
&lt;br /&gt;
МОНИТОРА В ЯЧЕЙКЕ MONVER И НОМЕР КОРРЕКЦИИ МОНИТОРА В&lt;br /&gt;
ЯЧЕЙКЕ MONUPD.&lt;br /&gt;
        .MCALL  .GVAL,.EXIT,.ROFDF&lt;br /&gt;
        .ROFDF                      ;ПОЛУЧИТЬ МНЕМОНИКУ&lt;br /&gt;
                                    ;СМЕЩЕНИЯ МОНИТОРА&lt;br /&gt;
                                    ;(ЗДЕСЬ SYSVER)&lt;br /&gt;
START:  .GVAL   #AREA,#SYSVER       ;ПОЛУЧИТЬ В RO СОДЕР-&lt;br /&gt;
                                    ;ЖИМОЕ ЯЧЕЙКИ МОНИТОРА&lt;br /&gt;
         MOVB   RO,MONVER           ;ПОЛУЧИТЬ НОМЕР ВЕРСИИ&lt;br /&gt;
         SWAB   RO&lt;br /&gt;
         MOVB   RO,MONUPD           ;ПОЛУЧИТЬ НОМЕР КОРРЕКЦИИ&lt;br /&gt;
        .EXIT&lt;br /&gt;
MONVER: .BLKB&lt;br /&gt;
MONUPD: .BLKB&lt;br /&gt;
AREA:   .BLKW   2                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.21.   .HERR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .HERR ЗАПРЕЩАЕТ ОБРАБОТКУ&lt;br /&gt;
СЕРЬЕЗНЫХ ОШИБОК В ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДА:&lt;br /&gt;
                        .HERR&lt;br /&gt;
    ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO=&amp;gt;                    !    5   !    0   !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .HERR РАЗРЕШАЕТ СИСТЕМЕ&lt;br /&gt;
УДАЛЯТЬ ПРОГРАММУ ПО СЕРЬЕЗНОЙ ОШИБКЕ И ВЫДАВАТЬ&lt;br /&gt;
СООБЩЕНИЕ ОБ ОШИБКЕ НА ТЕРМИНАЛ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОБРАБОТКУ ОШИБОК ПРОИЗВОДИТ МОНИТОР.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SERR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.22.   .HRESET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .HRESET ОЧИЩАЕТ КАНАЛЫ&lt;br /&gt;
ВВОДА/ВЫВОДА, ОСВОБОЖДАЕТ ДРАЙВЕРЫ УСТРОЙСТВ, ЗАГРУЖЕННЫЕ&lt;br /&gt;
В ОПЕРАТИВНУЮ ПАМЯТЬ ПО МАКРОКОМАНДЕ .FETCH, И ПРЕКРАЩАЕТ&lt;br /&gt;
ВСЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .HRESET&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .HRESET НЕ ИСПОЛЬЗУЕТСЯ ДЛЯ&lt;br /&gt;
СБРОСА УСЛОВИЙ ОШИБОК.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .HRESET ДЕЙСТВИТЕЛЬНА ТОЛЬКО&lt;br /&gt;
В СВОЕМ ЗАДАНИИ. ДРУГОЕ ЗАДАНИЕ ПРОДОЛЖАЕТ ВЫПОЛНЯТЬСЯ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .CDFN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.23.   .INTEN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .INTEN СООБЩАЕТ МОНИТОРУ О&lt;br /&gt;
ВОЗНИКШЕМ ПРЕРЫВАНИИ; ПЕРЕКЛЮЧАЕТ РАБОТУ В СОСТОЯНИЕ&lt;br /&gt;
СИСТЕМЫ; УСТАНАВЛИВАЕТ ТРЕБУЕМЫЙ ПРИОРИТЕТ ПРОЦЕССОРА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .INTEN PRIO[,PIC]&lt;br /&gt;
ГДЕ&lt;br /&gt;
PRIO    - ТРЕБУЕМЫЙ ПРИОРИТЕТ ПРОЦЕССОРА;&lt;br /&gt;
PIC     - ПРОИЗВОЛЬНЫЙ АРГУМЕНТ.&lt;br /&gt;
    АРГУМЕНТ PIC УКАЗЫВАЕТ, ЧТО ПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЯ НАПИСАНА В ПОЗИЦИОННО-НЕЗАВИСИМОМ КОДЕ, В&lt;br /&gt;
ПРОТИВНОМ СЛУЧАЕ АРГУМЕНТ PIC ДОЛЖЕН ОТСУТСТВОВАТЬ.&lt;br /&gt;
    ВСЕ ВНЕШНИЕ ПРЕРЫВАНИЯ ПЕРЕВОДЯТ ПРИОРИТЕТ&lt;br /&gt;
ПРОЦЕССОРА НА 7 УРОВЕНЬ. МАКРОКОМАНДА .INTEN ПОНИЖАЕТ&lt;br /&gt;
ПРИОРИТЕТ ПРОЦЕССОРА ДО ТРЕБУЕМОЙ ВЕЛИЧИНЫ.&lt;br /&gt;
    ВЫХОД ИЗ ПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ, КОТОРАЯ&lt;br /&gt;
ИСПОЛЬЗОВАЛА МАКРОКОМАНДУ .INTEN, ДОЛЖЕН БЫТЬ ПО RTS PC.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 40 -&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SYNCH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.24.   .JSWDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .JSWDF ОПРЕДЕЛЯЕТ СИМВОЛЫ И&lt;br /&gt;
МНЕМОНИЧЕСКИЕ ОБОЗНАЧЕНИЯ РАЗРЯДОВ СЛОВА СОСТОЯНИЯ&lt;br /&gt;
ПРОГРАММЫ (СМ. Т.3 КН.2 Ч.1).&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .JSWDF&lt;br /&gt;
    РАСШИРЕНИЕ МАКРОКОМАНДЫ:&lt;br /&gt;
&lt;br /&gt;
JSW     =^044&lt;br /&gt;
USWAP$  =^0100000&lt;br /&gt;
TTLC$   =^040000&lt;br /&gt;
RSTRT$  =^020000&lt;br /&gt;
TTSPC$  =^010000&lt;br /&gt;
CHNIF$  =^04000&lt;br /&gt;
VIRT$   =^02000&lt;br /&gt;
OVLY$   =^01000&lt;br /&gt;
CHAIN$  =^0400&lt;br /&gt;
HLTER$  =^0200&lt;br /&gt;
TCBIT$  =^0100&lt;br /&gt;
ESCFL$  =^040&lt;br /&gt;
ESCSQ$  =^020&lt;br /&gt;
GTLIN$  =^010&lt;br /&gt;
&lt;br /&gt;
    ДАННАЯ МАКРОКОМАНДА НЕ ГЕНЕРИРУЕТ КОДОВ ЕМТ, А&lt;br /&gt;
ЯВЛЯЕТСЯ ЧИСТО ОПИСАТЕЛЬНОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .EXIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.25.   .LOCK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .LOCK ЗАГРУЖАЕТ USR (ЕСЛИ ОНА&lt;br /&gt;
НЕ ЗАГРУЖЕНА) И ДЕЛАЕТ ЕЕ РЕЗИДЕНТНОЙ В ОПЕРАТИВНОЙ&lt;br /&gt;
ПАМЯТИ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .LOCK&lt;br /&gt;
    ЕСЛИ СОБЛЮДЕНЫ ВСЕ УСЛОВИЯ, ВЫЗЫВАЮЩИЕ СВОПИНГ, ТО&lt;br /&gt;
ПРОГРАММА ЗАНОСИТСЯ В БЛОКИ СВОПИНГА, А USR ЗАГРУЖАЕТСЯ В&lt;br /&gt;
ПАМЯТЬ. В ПРОТИВНОМ СЛУЧАЕ, ИСПОЛЬЗУЕТСЯ USR, НАХОДЯЩАЯСЯ&lt;br /&gt;
В ПАМЯТИ.&lt;br /&gt;
    USR НЕ ВЫВОДИТСЯ ИЗ ПАМЯТИ ДО ВЫПОЛНЕНИЯ&lt;br /&gt;
МАКРОКОМАНДЫ .UNLOCK.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ОБРАЩЕНИЕ К CSI ВЫЗЫВАЕТ НЕЯВНУЮ МАКРОКОМАНДУ&lt;br /&gt;
.INLOCK.&lt;br /&gt;
    ЕСЛИ USR РЕЗИДЕНТНА, МАКРОКОМАНДА .LOCK&lt;br /&gt;
ИГНОРИРУЕТСЯ.&lt;br /&gt;
    ЧИСЛО МАКРОКОМАНД .LOCK И .UNLOCK ДОЛЖНО СОВПАДАТЬ.&lt;br /&gt;
    МАКРОКОМАНДА .LOCK ЗАПРЕЩАЕТ ПОВТОРНОЕ СЧИТЫВАНИЕ&lt;br /&gt;
ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ, ПОЭТОМУ НЕОБХОДИМО, ЧТОБЫ ЕЕ&lt;br /&gt;
ВЫЗОВ НЕ ИСХОДИЛ ИЗ ОБЛАСТИ, В КОТОРУЮ БУДЕТ ОБМЕНИВАТЬСЯ&lt;br /&gt;
USR.&lt;br /&gt;
    НЕ СЛЕДУЕТ РАЗРУШАТЬ ОБЛАСТЬ USR (ДАЖЕ ЕСЛИ ОНА НЕ&lt;br /&gt;
НУЖНА) ПОСЛЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ .LOCK, Т.К. ЭТО&lt;br /&gt;
ПРИВЕДЕТ К НЕПРЕДВИДЕННЫМ РЕЗУЛЬТАТАМ ПРИ ВЫПОЛНЕНИИ&lt;br /&gt;
МАКРОКОМАНДЫ .UNLOCK.&lt;br /&gt;
    ЕСЛИ ОПЕРАТИВНОЕ ЗАДАНИЕ ВЫПОЛНЯЕТ МАКРОКОМАНДУ&lt;br /&gt;
.LOCK ВО ВРЕМЯ ИСПОЛЬЗОВАНИЯ USR ФОНОВЫМ ЗАДАНИЕМ, ТО&lt;br /&gt;
ВЫПОЛНЕНИЕ ОПЕРАТИВНОГО ЗАДАНИЯ ПРИОСТАНАВЛИВАЕТСЯ ДО&lt;br /&gt;
ОСВОБОЖДЕНИЯ USR.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .UNLOCK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.26.   .MFPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .MFPS СЧИТЫВАЕТ БИТЫ&lt;br /&gt;
ПРИОРИТЕТА ИЗ СЛОВА СОСТОЯНИЯ ПРОЦЕССОРА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .MFPS ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС, В КОТОРЫЙ ПОМЕЩАЕТСЯ ЗНАЧЕНИЕ ПРИОРИТЕТА.&lt;br /&gt;
    ЕСЛИ АДРЕС ОТСУТСТВУЕТ, ЗНАЧЕНИЕ ПОМЕЩАЕТСЯ В СТЕК.&lt;br /&gt;
    П_P_И_M_E_Ч_A_H_И_E. КОДЫ УСЛОВИЙ РАЗРУШАЮТСЯ В&lt;br /&gt;
ПРОЦЕССЕ ВЫПОЛНЕНИЯ МАКРОКОМАНДЫ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .MTPS.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   - 41 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.27. .MRKT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .MRKT планирует запуск указанной&lt;br /&gt;
подпрограммы завершения через заданный интервал времени в тиках&lt;br /&gt;
( 50 тиков = 1 сек для частоты сети 50 Гц ).&lt;br /&gt;
 формат макрокоманды:&lt;br /&gt;
&lt;br /&gt;
              .MRKT AREA,TIME,CRTN,ID&lt;br /&gt;
где&lt;br /&gt;
AREA    - адрес списка аргументов EMT из четырех слов;&lt;br /&gt;
TIME    - адрес двух слов, содержащих временной интервал;&lt;br /&gt;
CRTN    - адрес входа в подпрограмму завершения;&lt;br /&gt;
ID      - идентификатор каждой макрокоманды .MRKT.&lt;br /&gt;
&lt;br /&gt;
	Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
		 !-------!--------!&lt;br /&gt;
R0=&amp;gt;AREA:        !  22   !   0    !&lt;br /&gt;
		 !-------!--------!&lt;br /&gt;
		 !      TIME      !&lt;br /&gt;
		 !----------------!&lt;br /&gt;
                 !      CRTN      !&lt;br /&gt;
                 !----------------!&lt;br /&gt;
		 !       ID       !&lt;br /&gt;
		 !----------------!&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .MRKT требует элемент очереди.&lt;br /&gt;
Пользователь должен сам распределить достаточное количество&lt;br /&gt;
элементов очереди.&lt;br /&gt;
        ID в диапазоне 177400-177777 ( восьмеричных ) зарезер-&lt;br /&gt;
вированы для системного использования.&lt;br /&gt;
 Несколько макрокоманд .MRKT могут иметь один и тотже ID.&lt;br /&gt;
	При входе в подпрограмму завершения R0 содержит ID.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Код  Пояснение&lt;br /&gt;
  0 Нет свободного места очереди.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 В примере по истечению времени выдается сообщение на&lt;br /&gt;
терминал.&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.READ,.WAIT,.MRKT,.CMKT&lt;br /&gt;
	.MCALL	.QSET,.PRINT,.EXIT,.LOOKUP&lt;br /&gt;
START:	.LOOKUP	#AREA,#0,#FILE		;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
  BCS	LKERR&lt;br /&gt;
	 MOV	#AREA,-(SP)&lt;br /&gt;
	.QSET	#QUEUE,#5		;ДОБАВИТЬ 5 ЭЛЕМЕНТОВ&lt;br /&gt;
     ;ОЧЕРЕДИ&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 .MRKT	(SP),#INTRVL,#MRTN,#1	;ЗАПУСТИТЬ MRTN&lt;br /&gt;
					;ПО ИСТЕЧЕНИИ ВРЕМЕНИ&lt;br /&gt;
  BCS	NOMRKT&lt;br /&gt;
	.READ	#RDLST			;ЧИТАТЬ&lt;br /&gt;
  BCS	RDERR&lt;br /&gt;
	.WAIT	#0			;ЖДАТЬ&lt;br /&gt;
 .CMKT	(SP),#1			;ОСВОБОДИТЬ ЭЛЕМЕНТ&lt;br /&gt;
     ;ОЧЕРЕДИ (ОТМЕНИТЬ .MRKT)&lt;br /&gt;
	 BCS	NOTDUM&lt;br /&gt;
	.EXIT&lt;br /&gt;
MRTN:					;ПОДПРОГРАММА ЗАВЕРШЕНИЯ&lt;br /&gt;
 .PRINT	#FAIL1&lt;br /&gt;
	 RTS	PC&lt;br /&gt;
LKERR:	.PRINT	#LM&lt;br /&gt;
	.EXIT&lt;br /&gt;
RDERR:	.PRINT	#RDMSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
NOTDUM:	.PRINT	#FAIL&lt;br /&gt;
	.EXIT&lt;br /&gt;
NOMRKT:	.PRINT	#NOQ&lt;br /&gt;
	.EXIT&lt;br /&gt;
NOQ:	.ASCIZ	/НЕТ ЭЛЕМЕНТА ОЧЕРЕДИ/&lt;br /&gt;
FAIL:	.ASCIZ	/ОШИБКА CMKT/&lt;br /&gt;
FAIL1:	.ASCIZ	/ВРЕМЯ ИСТЕКЛО/&lt;br /&gt;
LM:	.ASCIZ	/ОШИБКА LOOKUP/&lt;br /&gt;
RDMSG:	.ASCIZ	/ОШИБКА READ/&lt;br /&gt;
	.EVEN&lt;br /&gt;
INTRVL:	.WORD	0,13.			;ВРЕМЯ&lt;br /&gt;
QUEUE:	.BLKW	5*7			;БЛОК ЭЛЕМЕНТОВ&lt;br /&gt;
AREA:	.BLKW	5			;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
					;ДЛЯ .MRKT&lt;br /&gt;
FILE:	.RAD50	/DK FILE TST/&lt;br /&gt;
RDLST:	.BYTE	0			;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
	.BYTE	10			;ДЛЯ .READ&lt;br /&gt;
BLOCK:	.WORD	0&lt;br /&gt;
	.WORD	BUFF&lt;br /&gt;
	.WORD	256.&lt;br /&gt;
	.WORD	1&lt;br /&gt;
BUFF:	.BLKW	256.			;БУФЕР ВВОДА&lt;br /&gt;
 .END	START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 42 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.28.   .MTPS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .MTPS УСТАНАВЛИВАЕТ БИТЫ&lt;br /&gt;
ПРИОРИТЕТА, КОДЫ УСЛОВИЙ И Т-БИТ В СЛОВЕ СОСТОЯНИЯ&lt;br /&gt;
ПРОЦЕССОРА.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .MTPS ADDR&lt;br /&gt;
ГДЕ&lt;br /&gt;
ADDR    - АДРЕС, СОДЕРЖИМОЕ КОТОРОГО ПОМЕЩАЕТСЯ В СЛОВО&lt;br /&gt;
          СОСТОЯНИЯ ПРОЦЕССОРА.&lt;br /&gt;
    ЕСЛИ АДРЕС ОТСУТСТВУЕТ, ЗНАЧЕНИЕ БЕРЕТСЯ ИЗ СТЕКА.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПРИОРИТЕТ СОХРАНЯЕТСЯ В СТЕКЕ,&lt;br /&gt;
УСТАНАВЛИВАЕТСЯ НОВЫЙ ПРИОРИТЕТ, А ЗАТЕМ&lt;br /&gt;
ВОССТАНАВЛИВАЕТСЯ СТАРЫЙ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .MFPS,.MTPS,.EXIT&lt;br /&gt;
START:   JSR    PC,PICKQ&lt;br /&gt;
         NOP&lt;br /&gt;
         NOP&lt;br /&gt;
         NOP&lt;br /&gt;
        .EXIT&lt;br /&gt;
PICKQ:  .MFPS                   ;СОХРАНИТЬ ПРИОРИТЕТ&lt;br /&gt;
                                ;В СТЕКЕ&lt;br /&gt;
         MOV    #QHEAD,R4&lt;br /&gt;
        .MTPS   #340            ;УСТАНОВИТЬ ПРИОРИТЕТ 7&lt;br /&gt;
         MOV    @R4,R5&lt;br /&gt;
         BEQ    1$&lt;br /&gt;
         MOV    @R5,@R4&lt;br /&gt;
        .MTPS                   ;ВОССТАНОВИТЬ ПРИОРИТЕТ&lt;br /&gt;
                                ;ИЗ СТЕКА&lt;br /&gt;
         CLZ&lt;br /&gt;
1$:      RTS    PC&lt;br /&gt;
QHEAD:  .WORD   Q1&lt;br /&gt;
Q1:     .WORD   Q2,0,0&lt;br /&gt;
Q2:     .WORD   Q3,0,0&lt;br /&gt;
Q3:     .WORD   0,0,0&lt;br /&gt;
        .END    START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.29.   .MWAIT (ТОЛЬКО ДЛЯ FB- I XM-МОНИТОРОВ)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .MWAIT ПРИОСТАНАВЛИВАЕТ&lt;br /&gt;
ВЫПОЛНЕНИЕ ПРОГРАММЫ ДО ОКОНЧАНИЯ ПРИЕМА ИЛИ ПЕРЕДАЧИ&lt;br /&gt;
СООБЩЕНИЙ МЕЖДУ ПРОГРАММАМИ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .MWAIT&lt;br /&gt;
    ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO=&amp;gt;                    !   11   !   0    !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    ОБЫЧНО ЭТА МАКРОКОМАНДА ИСПОЛЬЗУЕТСЯ В СОЧЕТАНИИ С&lt;br /&gt;
МАКРОКОМАНДАМИ .RCVD ИЛИ .SDAT, КОТОРЫЕ НЕ&lt;br /&gt;
ПРЕДУСМАТРИВАЮТ НИКАКИХ ОПЕРАЦИЙ ПОСЛЕ ЗАВЕРШЕНИЯ&lt;br /&gt;
СООБЩЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
    В ПРИМЕРЕ ПРИНИМАЕТСЯ СООБЩЕНИЕ ИЗ ДРУГОГО ЗАДАНИЯ И&lt;br /&gt;
ПРОВЕРЯЕТСЯ ЕГО ПРАВИЛЬНОСТЬ.&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .MWAIT,.RCVD,.PRINT,.EXIT&lt;br /&gt;
WORDS =  255.&lt;br /&gt;
START:  .RCVD   #AREA,#RBUFF,#WORDS     ;ПОЛУЧИТЬ СООБЩЕНИЕ&lt;br /&gt;
         MOV    #RBUFF+2,R5&lt;br /&gt;
        .MWAIT                          ;ЖДАТЬ&lt;br /&gt;
         CMPB   (R5)+,#14&lt;br /&gt;
         BNE    ERR&lt;br /&gt;
        .EXIT&lt;br /&gt;
ERR:    .PRINT  #MSG&lt;br /&gt;
        .EXIT&lt;br /&gt;
MSG:    .ASCIZ  /ОШИБОЧНОЕ СООБЩЕНИЕ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   10                      ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
RBUFF:  .BLKW   256.                    ;БУФЕР ДЛЯ ПРИЕМА&lt;br /&gt;
                                        ;СООБЩЕНИЯ&lt;br /&gt;
        .END    START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			- 43 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.30. .POP&lt;br /&gt;
&lt;br /&gt;
    Системная макрокоманда .POP выбирает значения из стека&lt;br /&gt;
и помещает их в указанные аргументы.&lt;br /&gt;
    Формат макрокоманды:&lt;br /&gt;
              .POP ADDR&lt;br /&gt;
где&lt;br /&gt;
ADDR    - адрес, куда помещается значение из стека.&lt;br /&gt;
    Несколько адресов должны заключаться в угловые скобки.&lt;br /&gt;
&lt;br /&gt;
Например:                   .POP &amp;lt;ADR1,ADR2,...,ADRN&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .DATE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.31. .PROTECT  ( только для FB- и XM-монитора ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Системная макрокоманда .PROTECT  дает программе возможность&lt;br /&gt;
монопольного испольования вектора устройства в диапаоне 0-476&lt;br /&gt;
( восьмеричных ).&lt;br /&gt;
    Формат макрокоманды:&lt;br /&gt;
                 .PROTECT  AREA,ADDR&lt;br /&gt;
где&lt;br /&gt;
AREA	- адрес списка аргументов EMT из двух слов;&lt;br /&gt;
ADDR	- адрес вектора, который должен быть закреплен.&lt;br /&gt;
    Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
		 !-------!--------!&lt;br /&gt;
R0=&amp;gt;AREA:        !  31   !   0    !&lt;br /&gt;
		 !-------!--------!&lt;br /&gt;
		 !      ADDR      !&lt;br /&gt;
		 !----------------!&lt;br /&gt;
		 !    ADDR+2      !&lt;br /&gt;
		 !----------------!&lt;br /&gt;
&lt;br /&gt;
    Успешное выполнение системной макрокоманды .PROTECT оначает,&lt;br /&gt;
что эаданный вектор в данный момент не испольэуется другим эаданием&lt;br /&gt;
или монитором и эакрепляется эа данной программой.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Код  Пояснение&lt;br /&gt;
  0 Вектор не испольэуется и не может быть эакреплен;&lt;br /&gt;
  1 адрес (ADDR) &amp;gt; 476 (восьмеричных) или &amp;lt; 4.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .UNPROTECT.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.32. .PUSH.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Системная макрокоманда .PUSH эаносит содержимое укаэанных&lt;br /&gt;
аргументов в стек.&lt;br /&gt;
    Формат макрокоманды:&lt;br /&gt;
                 .PUSH ADDR&lt;br /&gt;
где&lt;br /&gt;
ADDR	- аргумент, эначение которого необходимо эанести в стек.&lt;br /&gt;
    Несколько аргументов должны заключаться в угловые скобки.&lt;br /&gt;
&lt;br /&gt;
Например:         .PUSH &amp;lt;ADR1,ADR2,...,ADRN&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .DATE.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			-44-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.30. .QSET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .QSET убеличивает длину очереди&lt;br /&gt;
элементов ввода/быбода, подпрограмм авершения и т.п.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .QSET ADDR,LEN&lt;br /&gt;
где&lt;br /&gt;
ADDR	- начальный адрес области для новых элементов очереди;&lt;br /&gt;
LEN	- число новых элементов очереди.&lt;br /&gt;
 В SJ- и FB-мониторах каждый элемент очереди эанимает&lt;br /&gt;
семь слов. В XM-мониторе - десять слов. Следовательно, область,&lt;br /&gt;
отводимая для очереди, должна равняться:&lt;br /&gt;
 - для SJ- и FB-мониторов - LEN*7;&lt;br /&gt;
	- для XM-монитора - LEN*10.&lt;br /&gt;
	Макрокоманда .QSET может выэываться столько раэ,&lt;br /&gt;
сколько требуется.&lt;br /&gt;
 Область для элементов очереди реэервируется польэователем.&lt;br /&gt;
Необходимо следить, чтобы программа не иэменяла элементы, если они&lt;br /&gt;
уже установлены.&lt;br /&gt;
 Макрокоманда .SRESET и .HRESET отменяют все очереди эле-&lt;br /&gt;
ментов, определенные пользователем. После них необходимо повторить&lt;br /&gt;
макрокоманду .QSET, чтобы снова определить область для элементов&lt;br /&gt;
очереди.&lt;br /&gt;
 Элементы очереди заданные макрокомандой .QSET не должны&lt;br /&gt;
перекрываться с областью, в которую обменивается USR.&lt;br /&gt;
	Нижеперечисленные макрокоманды требуют элемент очереди:&lt;br /&gt;
&lt;br /&gt;
 .READ		.READC		.READW				&lt;br /&gt;
	.WRITE		.WRITEC		.WRITEW&lt;br /&gt;
	.RCVD		.RCVDC		.RCVDW&lt;br /&gt;
	.SDAT		.SDATC		.SDATW&lt;br /&gt;
	.TWAIT		.MRKT&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .MRKT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.34. .RCTRLO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .RCTRLO разрешает вывод на&lt;br /&gt;
системный терминал ( сбрасывает флаг CTRL/O ).&lt;br /&gt;
	Формат макрокоманды:&lt;br /&gt;
                            .RCTRLO&lt;br /&gt;
	Команда &amp;lt;CTRL/O&amp;gt;, введенная с терминала, запрещает вывод&lt;br /&gt;
на терминал. Разрешить вывод на терминал можно повторным введе-&lt;br /&gt;
нием &amp;lt;CTRL/O&amp;gt; с терминала или с помощью макрокоманды .RCTRLO.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 В примере пользователь с помощью клавиатуры терминала&lt;br /&gt;
запрещает вывод на терминал. В программе макрокоманда .RCTRLO&lt;br /&gt;
разрешает вывод на терминал, о чем указывает появление&lt;br /&gt;
звездочки на экране.&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.RCTRL0,.CSIGEN,.EXIT,.SRESET&lt;br /&gt;
START:	.RCTRLO				;РАЗРЕШИТЬ ВЫВОД НА ТТ:&lt;br /&gt;
 .CSIGEN	#DSPACE,#DEXT,#0	;ВВЕСТИ КОМАНДНУЮ&lt;br /&gt;
     ;СТРОКУ&lt;br /&gt;
         BCS	NSCI&lt;br /&gt;
	.READW	#AREA,#3,#BUFF,#256.,#0	;ЧИТАТЬ&lt;br /&gt;
  BCS	NRE&lt;br /&gt;
	.WRITEW	#AREA,#0,#BUFF,#256.,#0	;ЗАПИСАТЬ&lt;br /&gt;
  BCS	NWR&lt;br /&gt;
	.SRESET&lt;br /&gt;
	 JMP	START&lt;br /&gt;
NCSI:	.PRINT	#MSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
NRE:	.PRINT	#MSG1&lt;br /&gt;
	.EXIT&lt;br /&gt;
NWR:	.PRINT	#MSG2&lt;br /&gt;
	.EXIT&lt;br /&gt;
MSG:	.ASCIZ	/ОШИБКА CSI/&lt;br /&gt;
MSG1:	.ASCIZ	/ОШИБКА READ/&lt;br /&gt;
MSG2:	.ASCIZ	/ОШИБКА WRITE/&lt;br /&gt;
	.EVEN&lt;br /&gt;
DEXT:	.WORD	0,0,0,0			;БЛОК РАСШИРЕНИЯ&lt;br /&gt;
AREA:	.BLKW	5			;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
BUFF:	.BLKW	256.			;АДРЕС ВВОДА/ВЫВОДА&lt;br /&gt;
DSPACE	=.				;АДРЕС ЗАГРУЗКИ&lt;br /&gt;
     ;ДРАЙВЕРОВ&lt;br /&gt;
 .END	START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			-45-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.35. .RELEAS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .RELEAS удаляет указанный драйвер&lt;br /&gt;
из оперативной памяти.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .RELEAS	DNAM&lt;br /&gt;
где&lt;br /&gt;
DNAM	- адрес слова,содержащего имя устройства в коде RADIX-50.&lt;br /&gt;
	После макрокоманды .RELEAS, чтобы вновь использовать&lt;br /&gt;
устройство, необходимо выполнить макрокоманду .FETCH.&lt;br /&gt;
&lt;br /&gt;
	ПРИМЕЧАНИЕ. Макрокоманда .RELEAS не удаляет драйвер,&lt;br /&gt;
загруженный командой монитора LOAD.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Код  Пояснение&lt;br /&gt;
  0 Устройство с указанным именем не существует.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .DSTATUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.36. .ROFDF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .ROFDF определяет мнемонические&lt;br /&gt;
смещения полезных ячеек резидентного монитора&lt;br /&gt;
( см. т.3 кн.2 4.1 п.2.2 ).&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .ROFDF&lt;br /&gt;
	Расширение макрокоманды:&lt;br /&gt;
&lt;br /&gt;
$USRLC	=^0266&lt;br /&gt;
QCOMP	=^0270&lt;br /&gt;
SPUSR	=^0272&lt;br /&gt;
SYUNIT	-^0275&lt;br /&gt;
SYSVER	=^0276&lt;br /&gt;
SYSUPD	=^0277&lt;br /&gt;
TTKS	=^0304&lt;br /&gt;
TTKB	=^0306&lt;br /&gt;
TTPS	=^0310&lt;br /&gt;
TTPB	=^0312&lt;br /&gt;
MAXBLK	=^0314&lt;br /&gt;
SYSCH	=^0324&lt;br /&gt;
GTVEC	=^0354&lt;br /&gt;
$MTPS	=^0360&lt;br /&gt;
$MFPS	=^0362&lt;br /&gt;
STATWD	=^0366&lt;br /&gt;
USRAREA	=^0374&lt;br /&gt;
IFMXNST	=^0377&lt;br /&gt;
EMTRTN	=^0400&lt;br /&gt;
FORK	=^0402&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Данная макрокоманда не генерирует кодов EMT, а является&lt;br /&gt;
чисто описательной.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .GVAL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.37. .RSUM ( только для FB- и XM-мониторов )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Системная макрокоманда .RSUM продолжает выполнение&lt;br /&gt;
программы после того, как она была приостановлена&lt;br /&gt;
макрокомандой .SPND.&lt;br /&gt;
	Формат макрокоманды:&lt;br /&gt;
                            .RSUM&lt;br /&gt;
	Формат регистра R0:&lt;br /&gt;
&lt;br /&gt;
		!---------!--------!&lt;br /&gt;
R0=&amp;gt;    	!    2    !   0    !&lt;br /&gt;
		!---------!--------!&lt;br /&gt;
&lt;br /&gt;
	Монитор содержит счетчик остановов для каждой&lt;br /&gt;
программы. Этот счетчик уменьшается макрокомандой .SPND и&lt;br /&gt;
увеличивается макрокомандой .RSUM. Программа будет приос-&lt;br /&gt;
тановлена только в том случае, если значение счетчика&lt;br /&gt;
отрицательно. Поэтому, если системная макрокоманда .RSUM&lt;br /&gt;
выдается раньше .SPND, то макрокоманда .SPND игнорируется.&lt;br /&gt;
 Макрокоманда .RSUM из любой программы завершения&lt;br /&gt;
возобновляет выполнение остановленной программы.&lt;br /&gt;
 Так как системная макрокоманда .TWAIT реализуется&lt;br /&gt;
в мониторе с использованием останова и возобновления, то&lt;br /&gt;
макрокоманда .RSUM, выданная из подпрограммы завершения&lt;br /&gt;
без соответствующей .SPND, может вызвать продолжение основ-&lt;br /&gt;
ной программы прежде, чем закончится полный временной&lt;br /&gt;
интервал, указанный в .TWAIT.&lt;br /&gt;
	Системная макрокоманда .RSUM, как и другие макро-&lt;br /&gt;
команды, может быть выдана из программы прерывания,&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   -46-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
написанной пользователем, если имеется последовательность&lt;br /&gt;
.INTEN/.SYNCH, все замечания, относящиеся к .RSUM в&lt;br /&gt;
подпрограмме завершения, применимы к этому случаю.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .SPND.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.38. .SCCA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SCCA запрещает завершение&lt;br /&gt;
программы по команде оператора &amp;lt;CTRL/C&amp;gt;; дает возможность&lt;br /&gt;
программе различать единичную и двойную команды &amp;lt;CTRL/C&amp;gt;.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SCCA   AREA,ADDR&lt;br /&gt;
где&lt;br /&gt;
AREA	- адрес списка аргументов EMT из двух слов;&lt;br /&gt;
ADDR	- адрес, предназначенный для слова соостояния&lt;br /&gt;
   терминала ( резервируется пользователем ).&lt;br /&gt;
 Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
   !--------!--------!&lt;br /&gt;
R0=&amp;gt; AREA:         	!  35    !   0    !&lt;br /&gt;
			!--------!--------!&lt;br /&gt;
			!      ADDR       !&lt;br /&gt;
			!-----------------!&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SCCA перехватывает и&lt;br /&gt;
временно запрещает команду оператора &amp;lt;CTRL/C&amp;gt;, препят-&lt;br /&gt;
ствует завершению программы. Символы &amp;lt;CTRL/C&amp;gt; воспри-&lt;br /&gt;
нимаются как обычные символы без специальных системных&lt;br /&gt;
функций и помещают во входной буфер.&lt;br /&gt;
 Если ADDR=0, то при двойной команде &amp;lt;CTRL/C&amp;gt;&lt;br /&gt;
происходи завершение программы, а при одинарной не&lt;br /&gt;
происходит.&lt;br /&gt;
  При этом, если появляется двойная команда &lt;br /&gt;
&amp;lt;CTRL/C&amp;gt; устанавливается 15 бит слова состояния терми-&lt;br /&gt;
нала ( ADDR ). Пользователь должен сам очистить его&lt;br /&gt;
для дальнейшего использования.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
    В ПРИМЕРЕ ЗАПРЕЩАЕТСЯ ВЫХОД ПО ДВОЙНОМУ CTRL/C И&lt;br /&gt;
ВВОДИТСЯ ЛЮБАЯ (ВКЛЮЧАЯ CTRL/C) ИНФОРМАЦИЯ С ТЕРМИНАЛА.&lt;br /&gt;
КАК ТОЛЬКО ВСТРЕТИТСЯ ДВОЙНОЕ CTRL/C ПРОГРАММА ПЕРЕХОДИТ&lt;br /&gt;
В РЕЖИМ ОЖИДАНИЯ И РАЗРЕШАЕТСЯ ВЫХОД В МОНИТОР ПО ДВОЙНОМУ&lt;br /&gt;
CTRL/C.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .SCCA,.PRINT,.TTYIN,.TTYOUT&lt;br /&gt;
JSW     = 44&lt;br /&gt;
TTSPC$  = 10000&lt;br /&gt;
START:   MOV    #SCCA,R1&lt;br /&gt;
        .SCCA   #AREA,R1        ;ЗАПРЕТИТЬ CTRL/C&lt;br /&gt;
         BIS    #TTSPC$,@#JSW&lt;br /&gt;
         CLR    (R1)&lt;br /&gt;
        .PRINT  #MSG&lt;br /&gt;
1$:      TST    (R1)            ;ДВОЙНОЕ CTRL/C?&lt;br /&gt;
         BNE    2$              ;ДА&lt;br /&gt;
        .TTYIN                  ;НЕТ...ВВЕСТИ СИМВОЛ&lt;br /&gt;
        .TTYOUT                 ;ЭХО-ПЕЧАТЬ&lt;br /&gt;
         BR     1$&lt;br /&gt;
2$:     .PRINT  #CTRLC&lt;br /&gt;
        .SCCA   #AREA,#0        ;РАЗРЕШИТЬ ДВОЙНОЕ CTRL/&lt;br /&gt;
         BR     .&lt;br /&gt;
SCCA:   .BLKW   1               ;ЦЛОВО СОСТОЯНИЯ&lt;br /&gt;
                                ;ТЕРМИНАЛА&lt;br /&gt;
AREA:   .BLKW   2               ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
MSG:    .ASCII  /ПРИМЕР МАКРОКОМАНДЫ .SCCA/&amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
        .ASCIZ  ВВЕДИТЕ CTRL/C DWA RAZA&lt;br /&gt;
        .EVEN&lt;br /&gt;
CTRLC:  .ASCII  CTRL/C ВВЕДЕНА &amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
        .ASCII  ВВЕДИТЕ ДВОЙНОЕ CTRL/C ДЛЯ ВЫХОДА&lt;br /&gt;
        .ASCIZ  /ИЗ ПРОГРАММЫ/&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.39.   .SCMDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .SCMDF ОПРЕДЕЛЯЕТ&lt;br /&gt;
МНЕМОНИЧЕСКИЕ ОБОЗНАЧЕНИЯ СИСТЕМНОЙ ОБЛАСТИ СВЯЗИ (СМ.&lt;br /&gt;
Т.3 КН.2. Ч.1).&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .SCMDF&lt;br /&gt;
    РАСШИРЕНИЕ МАКРОКОМАНДЫ:&lt;br /&gt;
&lt;br /&gt;
USERPC  =^040&lt;br /&gt;
USERSP  =^042&lt;br /&gt;
UFLOAT  =^046&lt;br /&gt;
USERTOP =^050&lt;br /&gt;
SYSPTR  =^054&lt;br /&gt;
TTFILL  =^056&lt;br /&gt;
TTNFIL  =^057&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			-47-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Данная макрокоманда не генерирует кодов EMT, а&lt;br /&gt;
является чисто описательной.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см.пример макрокоманды .UNLOCK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.40. .SERR&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SERR позволяет программе&lt;br /&gt;
обрабатывать серьезные ошибки и запрещает монитору пре-&lt;br /&gt;
кращать ее выполнение вслучае их появления.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SERR&lt;br /&gt;
	Формат регистра R0:&lt;br /&gt;
&lt;br /&gt;
		!-------!------!&lt;br /&gt;
R0=&amp;gt;    	!   4   !  0   !&lt;br /&gt;
		!-------!------!&lt;br /&gt;
&lt;br /&gt;
	Во время выполнения программы могут возникнуть&lt;br /&gt;
серьезные ошибки. Например, попытка передать ввод/вывод&lt;br /&gt;
устройству, не имеющему драйвера в памяти, или попытка&lt;br /&gt;
загрузить драйвер устройства на место USR. Обычно эти&lt;br /&gt;
ошибки вызывают окончание программы с сообщением об&lt;br /&gt;
ошибке на системный терминал. Однако, в некоторых&lt;br /&gt;
случаях необходимо предотвратить преждвременное оконча-&lt;br /&gt;
ние программы из-за этих ошибок.&lt;br /&gt;
 После выполнения макрокоманды устанавливается бит&lt;br /&gt;
C, а байт 52 содержит отрицательный код ошибки.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Код  ПОяснение&lt;br /&gt;
 -1 Вызов USR из подпрограммы завершения.&lt;br /&gt;
 -2 Отсутствыет драйвер устройства, а для&lt;br /&gt;
  данной операции он необходим.&lt;br /&gt;
 -3 Ошибка чтения каталога.&lt;br /&gt;
 -4 Ошибка .FETCH; либо произошла ошибка во&lt;br /&gt;
  время считывания драйвера, либо попытка&lt;br /&gt;
  загрузить драйвер на место RMON или USR;&lt;br /&gt;
	-5 Ошибка считывания оверлея;&lt;br /&gt;
 -6	В каталоге нет места для файлов;&lt;br /&gt;
 -7 Недопустимый адрес; попытка выполнить&lt;br /&gt;
  действие вне области задания;&lt;br /&gt;
 -10 Недопустимый номер канала; номер больше,&lt;br /&gt;
  чем фактическое количество существующих&lt;br /&gt;
  каналов;&lt;br /&gt;
 -11 Недопустимая EMT; недопустимый код функции.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Системная макрокоманда .SERR не обрабатывает прерыва-&lt;br /&gt;
ния по 4 и 10, а также прерывания от процессора с плавающей&lt;br /&gt;
запятой. Они обрабатываются системными макрокомандами&lt;br /&gt;
.TRPSET, .SFPA.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 В примере для макрокоманды .ENTER треуется драйвер&lt;br /&gt;
PC:, который не загружен в память. После выполнения макро-&lt;br /&gt;
команды .SERR обработка ошибок происходит в программе, а&lt;br /&gt;
после  выполнения макрокоманды .HERR происходит выход по&lt;br /&gt;
ошибке в монитор.&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.ENTNR,.HERR,.SERR,.PRINT,.EXIT,.USBDF&lt;br /&gt;
START:	.SERR			;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ&lt;br /&gt;
    ;ПРОГРАММЫ ПО ОШИБКЕ&lt;br /&gt;
 .USBDF			;ОПРЕДЕЛИТЬ МНЕМОНИКУ&lt;br /&gt;
    ;СТАТУСА ЗАВЕРШЕНИЯ&lt;br /&gt;
    ;ПРОГРАММЫ USERRB&lt;br /&gt;
	.ENTER	#AREA,#1,#FILE	;ОТКРЫТЬ ФАЙЛ НА PC:&lt;br /&gt;
	 BCC	3$&lt;br /&gt;
	 JSR	PC,ERR		;ИДТИ НА ОБРАБОТКУ&lt;br /&gt;
    ;ОШИБКИ&lt;br /&gt;
 .HERR		;РАЗРЕШИТЬ ПРЕРЫВАНИЕ&lt;br /&gt;
    ;ПРОГРАММЫ ПО ОШИБКЕ&lt;br /&gt;
 .ENTER	#AREA,#1,#FILE	;ОТКРЫТЬ ФАЙЛ НА PC:&lt;br /&gt;
	 BCS	ERR1&lt;br /&gt;
3$:	.EXIT&lt;br /&gt;
ERR1:	.PRINT	#MSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
MSG:	.ASCIZ	/ОШИБКА .ENTER/&lt;br /&gt;
	.EVEN&lt;br /&gt;
ERR:	 MOVB	@#52,R0		;ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
  NEG	R0		;ОШИБОК&lt;br /&gt;
  DEC	R0&lt;br /&gt;
	 ASL	R0&lt;br /&gt;
	 MOV	COD(R0),R0&lt;br /&gt;
	.PRINT&lt;br /&gt;
	 BISB	#3,@#USERRB	;УСТАНОВИТЬ ЗАВЕРШЕНИЕ&lt;br /&gt;
    ;ГРУБОЙ ОШИБКОЙ&lt;br /&gt;
  RTS	PC&lt;br /&gt;
COD:		C1&lt;br /&gt;
		C2&lt;br /&gt;
		C3&lt;br /&gt;
		C4&lt;br /&gt;
		C5&lt;br /&gt;
    		C6&lt;br /&gt;
                C7&lt;br /&gt;
                C10&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			-48-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		C11&lt;br /&gt;
C1:	.ASCIZ	/USER?/&lt;br /&gt;
C2:	.ASCIZ	/НЕ ЗАГРУЖЕН ДРАЙВЕ/&lt;br /&gt;
C3:	.ASCIZ	/ОШИБКА ЧТЕНИЯ КАТАЛОГА/&lt;br /&gt;
C4:	.ASCIZ	/ОШИБКА .FETCH/&lt;br /&gt;
C5:	.ASCIZ	/ОВЕРЛЕЙ?/&lt;br /&gt;
C6:	.ASCIZ	/НЕТ МЕСТА В КАТАЛОГЕ/&lt;br /&gt;
C7:	.ASCIZ	/ОШИБКА АДРЕСАЦИИ/&lt;br /&gt;
C10:	.ASCIZ	/НЕВЕРНЫЙ НОМЕР КАНАЛА/&lt;br /&gt;
C11:	.ASCIZ	/НЕВЕРНЫЙ КОД EMT/&lt;br /&gt;
	.EVEN&lt;br /&gt;
AREA:	.BLKW	4		;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
FILE:	.RAD50	/PC/&lt;br /&gt;
	.WORD	0,0,0&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.41. .SETTOP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SETTOP позволяет программе&lt;br /&gt;
пользователя запрашивать новый адрес верхней границы&lt;br /&gt;
памяти для программы.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SETTOP ADR&lt;br /&gt;
где&lt;br /&gt;
ADDR	- адрес слова, содержащего верхнюю границу программы.&lt;br /&gt;
 Монитор определяет допустимость этого адреса, необ-&lt;br /&gt;
ходимость свопинга в случае использования USR. Если верхняя&lt;br /&gt;
граница памяти, предназначенной для программы, расположена&lt;br /&gt;
ниже начального адреса USR, то свопинг не производится, т.к.&lt;br /&gt;
USR при этом не перекрывается. Если .SETTOP из фоновой прог-&lt;br /&gt;
раммы запрашивает верхнюю границу выше начального адреса USR,&lt;br /&gt;
а команда SET USR NOSWOP не была выдана, то требуется&lt;br /&gt;
свопинг.&lt;br /&gt;
 По завершении системной макрокоманды .SETTOP R0 и&lt;br /&gt;
ячейка 50 ( восьмеричное ) содержит максимальный адрес&lt;br /&gt;
предоставляемой пользователю памяти. Если требуемый адрес&lt;br /&gt;
превышает допустимую величину, то программе предоставляется&lt;br /&gt;
допустимое значение адреса.&lt;br /&gt;
 Для определения действительного верхнего адреса&lt;br /&gt;
программы нужно проверить содержимое R0 или ячейки 50.&lt;br /&gt;
 Адрес выданный в R0 или ячейку 50, используется&lt;br /&gt;
программой как абсолютный верхний адрес программы. Если&lt;br /&gt;
это значение будет превышено, могут быть уничтожены части&lt;br /&gt;
части монитора и целостность системы будет нарушена.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .UNLOCK.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.42. .SFPA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SFPA предоставляет ползователям,&lt;br /&gt;
имеющим процессор с плавающей запятой ( в комплексах СМ-1420 или&lt;br /&gt;
СМ-4/20 ), возможность обрабатывать прерывания по ошибке.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SFPA   AREA,ADDR&lt;br /&gt;
где&lt;br /&gt;
AREA	- адрес списка аргументов EMT из двух слов;&lt;br /&gt;
ADDR	- адрес программы обработки прерывания.&lt;br /&gt;
 Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
			!-------!-------!&lt;br /&gt;
R0=&amp;gt; AREA:      	!  30   !  0    !&lt;br /&gt;
			!-------!-------!&lt;br /&gt;
			!     ADDR      !&lt;br /&gt;
			!---------------!&lt;br /&gt;
&lt;br /&gt;
	Обычно, если возникает прерывание по ошибке при&lt;br /&gt;
использовании процессора с плавающей запятой, прекращается&lt;br /&gt;
выполнение программы и выдается сообщение об ошибке на&lt;br /&gt;
системный терминал.&lt;br /&gt;
 Системная макрокоманда .SFPA позволяет пользователю&lt;br /&gt;
самому обрабатывать прерывания. Аргумент ADDR указывает&lt;br /&gt;
адрес программы обработки прерывания.&lt;br /&gt;
 Если аргумент ADDR=#0, то макрокоманда .SFPA &lt;br /&gt;
игнорируется.&lt;br /&gt;
 Если аргумент ADDR=#1, то регистры процессора с&lt;br /&gt;
плавающей запятой должны должны быть включены в область&lt;br /&gt;
сохранения при переключении системы с одной задачи на другую.&lt;br /&gt;
Если ADDR=#1, пользователь не обрабатывает прерывания по&lt;br /&gt;
ошибке.&lt;br /&gt;
 Системную макрокоманду .SFPA необходимо повторять&lt;br /&gt;
каждый раз, когда возникают прерывания, если пользователь&lt;br /&gt;
хочет обрабатывать их сам, т.е. программа обработки преры-&lt;br /&gt;
вания должна содержать вызов .SFPA.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   - 49 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 .MCALL	.SFPA,.EXIT&lt;br /&gt;
START:	  .&lt;br /&gt;
	  .&lt;br /&gt;
          .&lt;br /&gt;
	.SFPA	#AREA,#FPTRAP&lt;br /&gt;
	  .&lt;br /&gt;
	  .&lt;br /&gt;
          .&lt;br /&gt;
	.EXIT&lt;br /&gt;
FPTRAP:	 MOV	R0,-(SP)&lt;br /&gt;
	  .&lt;br /&gt;
	  .&lt;br /&gt;
	  .&lt;br /&gt;
	.SFPA	#AREA,#FPTRAP&lt;br /&gt;
	  .&lt;br /&gt;
	  .&lt;br /&gt;
	  .&lt;br /&gt;
	 MOV	(SP)+,R0&lt;br /&gt;
	 RTI&lt;br /&gt;
AREA:	.BLKW	10&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.43. .SPND (только для FB- и XM-мониторов )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Системная макрокоманда .SPND приостанавливает работу&lt;br /&gt;
программы.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SPND&lt;br /&gt;
	Формат регистра R0:&lt;br /&gt;
&lt;br /&gt;
		!-------!------!&lt;br /&gt;
R0=&amp;gt;    	!   1   !  0   !&lt;br /&gt;
		!-------!------!&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SPND из подпрограммы&lt;br /&gt;
завершения уменьшает счетчик остановов, но не останав-&lt;br /&gt;
ливает основную программу. Если подпрограмма завершения&lt;br /&gt;
осуществляет макрокоманду .SPND, основная программа про-&lt;br /&gt;
должается до выдачи этой макрокоманды самой программой,&lt;br /&gt;
только после этого она будет приостановлена, и потребуется&lt;br /&gt;
две макрокоманды .RSUM для ее продолжения.&lt;br /&gt;
 Монитор содержит счетчик остановов для каждой&lt;br /&gt;
программы. Этот счетчик уменьшается макрокомандой .SPND и&lt;br /&gt;
увеличивается макрокомандой .RSUM. Программа будет при-&lt;br /&gt;
остановлена только в том случае, если значение счетчика&lt;br /&gt;
отрицательно. Поэтому, если системная макрокоманда .RSUM&lt;br /&gt;
выдана раньше .SPND, то макрокоманда .SPND игнорируется.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Программа должна выдавать одинаковое число&lt;br /&gt;
системных макрокоманд .SPND и .RSUM.&lt;br /&gt;
 Системная макрокоманда .SPND, как и другие&lt;br /&gt;
макрокоманды, может быть выдана из подпрограммы прерывания,&lt;br /&gt;
написанной пользователем, если имеется последовательность&lt;br /&gt;
.INTEN/.SYNCH. Все замечания, относящиеся к .SPND в под-&lt;br /&gt;
программе завершения, применимы к этому случаю.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.SPND,.RSUM,.READC,.EXIT&lt;br /&gt;
	.MCALL	.LOOKUP,.PRINT,.WAIT&lt;br /&gt;
START:	.LOOKUP	#AREA,#2,#FILE2&lt;br /&gt;
	 BCS	1$&lt;br /&gt;
	.LOOKUP	#AREA,#3,#FILE3&lt;br /&gt;
	 BCS	1$&lt;br /&gt;
	.LOOKUP	#AREA,#4,FILE4&lt;br /&gt;
	 BCC	3$&lt;br /&gt;
1$:	.PRINX	#2$&lt;br /&gt;
	.EXIT&lt;br /&gt;
2$:	.ASCIZ	/ОШИБКА LOOKUP/&lt;br /&gt;
	.EVEN&lt;br /&gt;
3$:	 MOV	#2,RSVCTR&lt;br /&gt;
	 MOV	#AREA,R5&lt;br /&gt;
	.READC	R5,#2,#BUF1,COUNT1,#CROUTN,BLOK1&lt;br /&gt;
	 BCS	ERROR&lt;br /&gt;
	.READC	R5,#3,#BUF2,COUNT2,#CROUTN,BLOK2&lt;br /&gt;
	 BCS	ERROR&lt;br /&gt;
	.READC	R5,#4,#BUF3,COUNT3,#CROUTN,BLOK3&lt;br /&gt;
	 BCS	ERROR&lt;br /&gt;
	.SPND&lt;br /&gt;
	.WAIT	#2&lt;br /&gt;
	.WAIT	#3&lt;br /&gt;
	.WAIT	#4&lt;br /&gt;
	.EXIT&lt;br /&gt;
CROUTN:	 ASL	R1&lt;br /&gt;
	 INC	DONFL(R1)&lt;br /&gt;
	 ROR	R0&lt;br /&gt;
	 ADC	ERRFLG(R1)&lt;br /&gt;
	 DEC	RSVCTR&lt;br /&gt;
	 BNE	1$&lt;br /&gt;
	.RSUM&lt;br /&gt;
1$:	 RTS	PC&lt;br /&gt;
ERROR:	.PRINT	#RDMSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
RDMSG:	.ASCIZ	/ОШИБКА READ/&lt;br /&gt;
	.EVEN&lt;br /&gt;
AREA:	.BLKW	10&lt;br /&gt;
RSVCTR:		0&lt;br /&gt;
COUNT1:		256.&lt;br /&gt;
COUNT2:		256.&lt;br /&gt;
COUNT3:		256.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			- 50 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BLOK1:		0&lt;br /&gt;
BLOK2:		0&lt;br /&gt;
BLOK31:		0&lt;br /&gt;
FILE2:	.RAD50	/DK TEST2 TMP/&lt;br /&gt;
FILE3:	.RAD50	/DK TEST3 TMP/&lt;br /&gt;
FILE4:	.RAD50	/DK TEST4 TMP/&lt;br /&gt;
DONFL:		0,0,0&lt;br /&gt;
ERRFLG:		0,0,0&lt;br /&gt;
BUF1:	.BLKW	256.&lt;br /&gt;
BUF2:	.BLKW	256.&lt;br /&gt;
BUF3:	.BLKW	256.&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.44. .SRESET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SRESET инициализирует&lt;br /&gt;
определенные таблицы монитора, связанные с подпрограммой:&lt;br /&gt;
освобождает каналы, очищает очередь подпрограмм завершения,&lt;br /&gt;
удаляет загруженные драйверы.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SRESET&lt;br /&gt;
	Драйверы системных устройств и драйверы,загруженные&lt;br /&gt;
командой монитора LOAD, остаются резидентными.&lt;br /&gt;
 Возвращает к использованию только 16 ( десятичное )&lt;br /&gt;
каналов ввода/вывода. Любые каналы, открытые системной макро-&lt;br /&gt;
командой .CDFN, исключаются.&lt;br /&gt;
 Чтобы открыть больше 16 каналов после выполнения &lt;br /&gt;
.SRESET, необходимо повторить макрокоманду .QSET или .CDFN.&lt;br /&gt;
	Очищает очередь программ завершения.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсуиствуют.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .RCTRLO.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.45. .SYNCH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .SYNCH дает возможность&lt;br /&gt;
программе обработки прерывания выполнять системные макро-&lt;br /&gt;
команды.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .SYNCH	AREA[,PIC]&lt;br /&gt;
где&lt;br /&gt;
AREA	- адрес блока из семи слов;&lt;br /&gt;
PIC	- произвольный аргумент,позволяющий макрокоманде&lt;br /&gt;
   .SYNCH генерировать позиционно-независимый код.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Блок AREA содержит:&lt;br /&gt;
Слово 1 - системное слово, которое не должно изменяться&lt;br /&gt;
   пользователем;&lt;br /&gt;
Слово 2 - текущий номер задания (может быть получен&lt;br /&gt;
   макрокомандой .GTJB );&lt;br /&gt;
Слово 3 - не используется;&lt;br /&gt;
Слово 4 - не используется;&lt;br /&gt;
Слово 5 - аргумент R0; при успешном выполнении макро-&lt;br /&gt;
   команды .SYNCH это слово заносится в R0;&lt;br /&gt;
Слово 6 - должно содержать -1;&lt;br /&gt;
Слово 7 - должно содержать 0.&lt;br /&gt;
 Между макрокомандами .SYNCH и .INTEN ползователь&lt;br /&gt;
не должен ничего заносить в стек.&lt;br /&gt;
 Если макрокоманда .SYNCH не выполнена, то возврат&lt;br /&gt;
происходит в следующую за макрокомандой ячейку. В этом&lt;br /&gt;
случае программа обработки прерываний не может выполнять&lt;br /&gt;
макрокоманды; R4 и R5 свободны для использования.&lt;br /&gt;
 Если макрокоманда .SYNCH выполнена, то возврат&lt;br /&gt;
происходит в следующую за возвратом по ошибке ячейку.&lt;br /&gt;
Программе обработки прерывания разрешено выполнять макро-&lt;br /&gt;
команды. R0 содержит аргумент, находившийся в пятом слове&lt;br /&gt;
блока AREA. R2, R3, R4 и R5 нельзя использовать без предвари-&lt;br /&gt;
тельного сохранения в стеке, а R0 и R1 - можно.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   - 51 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Выход из программы обработки прерывания должен быть&lt;br /&gt;
по инструкции RTS PC.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Возврат по ошибке происходит в следующих случаях:&lt;br /&gt;
 - не закончена макрокоманда .SYNCH, использующая&lt;br /&gt;
   тот же блок AREA;&lt;br /&gt;
	- Указан недопустимый номер задания;&lt;br /&gt;
 - Если произошло удаление или останов основной&lt;br /&gt;
   программы.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 .MCALL	.GTJB,.INTEN,.WRITC,.SYNCH&lt;br /&gt;
	.MCALL	.EXIT,.DIR,.PRINT&lt;br /&gt;
START:	 MOV	#JOB,R5		;ПОЛУЧИТЬ НОМЕР&lt;br /&gt;
 .GTJB	#AREA,R5	;ЗАДАНИЯ&lt;br /&gt;
 MOV	(R5),SYNBLK+2&lt;br /&gt;
	 .&lt;br /&gt;
	 .&lt;br /&gt;
	 .&lt;br /&gt;
INTRPT:	.INTEN	5		;ПЕРЕЙТИ В СИСТЕМНОЕ&lt;br /&gt;
    ;СОСТОЯНИЕ, УСТАНОВИТЬ&lt;br /&gt;
    ;ПРИОРИТЕТ 5&lt;br /&gt;
 .SYNCH	#SYNBLK&lt;br /&gt;
	 BR	SYNFAIL		;БЛОК .SYNCH ЗАНЯТ&lt;br /&gt;
 .DIR	WRITE		;ЗАПИСЬ В БУФЕР&lt;br /&gt;
  BCS	WTFAIL&lt;br /&gt;
	 RTS	PC		;ВЫХОД&lt;br /&gt;
SYNBLK:		0,0,0,0,5,-1,0	;БЛОК .SYNCH&lt;br /&gt;
SYNFAIL:&lt;br /&gt;
	 MOV	#SYNER,R0&lt;br /&gt;
	 BR	ERRM&lt;br /&gt;
WTFAIL:	 MOV	#MSG,R0&lt;br /&gt;
ERRM:	.PRINT&lt;br /&gt;
	.EXIT&lt;br /&gt;
MSG:	.ASCIZ	/ОШИБКА ЧТЕНИЯ/&lt;br /&gt;
SYNER:	.ASCIZ	/ОШИБКА SYNCH/&lt;br /&gt;
	.EVEN&lt;br /&gt;
AREA:	.BLKW	5		;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
				;ДЛЯ .READ&lt;br /&gt;
JOB:	.BLKW	5		;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
				;ДЛЯ .SYNCH&lt;br /&gt;
CRTN1:	  .			;ТЕКСТ ПОДПРОГРАММЫ&lt;br /&gt;
   .   ;ЗАВЕРШЕНИЯ&lt;br /&gt;
  RTS	PC&lt;br /&gt;
WRITE:	.WRITC	#AREA,CHAN,BUFF,WCNT,#CRTN1,BLK&lt;br /&gt;
CHAN:		0&lt;br /&gt;
BUFF:	.BLKW	256.&lt;br /&gt;
WCNT:		256.&lt;br /&gt;
BLK:		0&lt;br /&gt;
	.END	START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.46. .TLOCK ( Только для FB- и XM-мониторов )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Системная макрокоманда .TLOCK проверяет занятость&lt;br /&gt;
USR, если USR свободна, то выполняется макрокоманда .LOCK,&lt;br /&gt;
в противном случае происходит возврат в программу пользова-&lt;br /&gt;
теля с установленным C битом.&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
                            .TLOCK&lt;br /&gt;
        Формат регистра R0:&lt;br /&gt;
&lt;br /&gt;
   !--------!---------!&lt;br /&gt;
R0=&amp;gt;            	!   7    !    0    !&lt;br /&gt;
   !--------!---------!&lt;br /&gt;
&lt;br /&gt;
 Возврат по C биту означает, что макрокоманда &lt;br /&gt;
.TLOCK не выполнена.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
 Код  Пояснение&lt;br /&gt;
  0 USR уже используется другой программой.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
 .MCALL	.TLOCK,.LOOKUP,.UNLOOCK,.PRINT,.EXIT&lt;br /&gt;
START:	.TLOCK				;USR ЗАНЯТА ?&lt;br /&gt;
  BCS	SUSPND			;ДА&lt;br /&gt;
 .LOOKUP	#AREA,#4,#J1NAM		;НЕТ ... ОТКРЫТЬ&lt;br /&gt;
  BCS	LKERR			;ФАЙЛ&lt;br /&gt;
 .UNLOCK				;ОСВОБОДИТЬ USR&lt;br /&gt;
	.EXIT&lt;br /&gt;
SUSPND:	 JSR	PC,SPSJOB&lt;br /&gt;
	 JSR	PC,SCHED&lt;br /&gt;
	 BR	START&lt;br /&gt;
AREA:	.BLKW	10&lt;br /&gt;
J1NAM:	.RAD50	/DK TEST1 TMP/&lt;br /&gt;
LKERR:	.PRINT	#LKMSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
LKMSG:	.ASCIZ	/ОШИБКА LOOKUP/&lt;br /&gt;
	.EVEN&lt;br /&gt;
SPSJOB:	 .				;ТЕКСТ ПОДПРОГРАММЫ&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  RTS	PC&lt;br /&gt;
SCHED:	 .				;ТЕКСТ ПОДПРОГРАММЫ&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  RTS	PC&lt;br /&gt;
	.END	START&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			-52-&lt;br /&gt;
&lt;br /&gt;
		2/Б/4.072.200-33-02-2&lt;br /&gt;
&lt;br /&gt;
 3.47. .TRPSET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .TRPSET позволяет пользователю&lt;br /&gt;
самому обрабатывать прерывания по вектору 4 и 10.&lt;br /&gt;
&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
&lt;br /&gt;
   .TRPSET	AREA,ADDR&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
AREA&lt;br /&gt;
	-адрес списка аргументов из двух слов;&lt;br /&gt;
&lt;br /&gt;
ADDR&lt;br /&gt;
	-адрес программы обработки прерывания.&lt;br /&gt;
&lt;br /&gt;
 Формат списка аргыментов EMT:&lt;br /&gt;
&lt;br /&gt;
   !------!------!&lt;br /&gt;
 R0=&amp;gt; AREA:	!  3   !  0   !&lt;br /&gt;
			!------!------!&lt;br /&gt;
			!    ADDR     !&lt;br /&gt;
			!-------------!&lt;br /&gt;
&lt;br /&gt;
	Макрокоманда .TRPSET запрещает монитору удалять&lt;br /&gt;
программупри возникновении прерывания по векторам 4 и 10.&lt;br /&gt;
&lt;br /&gt;
 При входе в программу обработки прерывания бит C&lt;br /&gt;
указывает:&lt;br /&gt;
&lt;br /&gt;
бит C = 0&lt;br /&gt;
 - прерывание по вектору 4;&lt;br /&gt;
&lt;br /&gt;
бит C = 1&lt;br /&gt;
 - прерывание по вектору 10;&lt;br /&gt;
&lt;br /&gt;
 Программа обработки прерывания должна заканчиваться&lt;br /&gt;
инструкцией RTI.&lt;br /&gt;
&lt;br /&gt;
 Макрокоманду .TRPSET необходимо повторять каждый раз,&lt;br /&gt;
как возникает прерывание, если пользователь хочет и в даль-&lt;br /&gt;
нейшем обрабатывать их сам, т.е. подпрограмма обработки пре-&lt;br /&gt;
рывания должна содержать .TRPSET.&lt;br /&gt;
&lt;br /&gt;
 Если ADDR = 0, макркоманда .TRPSET игнорируется.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 В премере макрокоманда .TRPSET указывает адрес&lt;br /&gt;
программы обработки ловушек 4 и 10.&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.TRPSET,.EXIT,.PRINT&lt;br /&gt;
START:	.TRPSET	#AREA,#TRPLOC		;ЗАПРЕТИТЬ УДАЛЯТЬ&lt;br /&gt;
     ;ПРОГРАММУ&lt;br /&gt;
 MOV	#101,R0&lt;br /&gt;
	TST	(R0)+			;НЕЧЕТНЫЙ АДРЕС&lt;br /&gt;
 .WORD	67			;НЕВЕРНЫЙ КОД ИНСТРУКЦИИ&lt;br /&gt;
 .EXIT&lt;br /&gt;
TRPLOC:	MOV	R0,-(SP)		;ПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
 BCS	1$			;ЛОВУШЕК&lt;br /&gt;
 .PRINT	#TRP4&lt;br /&gt;
	BR	2$&lt;br /&gt;
1$:	.PRINT	#TRP10&lt;br /&gt;
2$:	.TRPSET	#AREA,#TRPLOC&lt;br /&gt;
	MOV	(SP),R0&lt;br /&gt;
	RTI&lt;br /&gt;
AREA:	.BLKW10			;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
TRP4:	.ASCIZ	/TRAP TO 4/&lt;br /&gt;
TRP10:	.ASUIZ	/TRAP TO 10/&lt;br /&gt;
	.EVEN&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.48. .TWAIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .TWAIT приостанавливает&lt;br /&gt;
выполнение программы на указанный интервал времени.&lt;br /&gt;
&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
&lt;br /&gt;
   .TWAIT	AREA,TIME&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
AREA&lt;br /&gt;
	-адрес списка аргументов EMT из двух слов;&lt;br /&gt;
TIME&lt;br /&gt;
	-адрес двух слов, содержащих временной интервал&lt;br /&gt;
  в тиках.&lt;br /&gt;
&lt;br /&gt;
 Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
			!------!------!&lt;br /&gt;
 R0=&amp;gt; AREA:	!  24  !  0   !&lt;br /&gt;
			!------!------!&lt;br /&gt;
			!   TIME      !&lt;br /&gt;
			!-------------!&lt;br /&gt;
			&lt;br /&gt;
	Системная макрокоманда .TWAIT требует элемент&lt;br /&gt;
очереди, поэтому прежде необходимо выполнить макрокоманду&lt;br /&gt;
.QSET.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
			-53-&lt;br /&gt;
&lt;br /&gt;
		2/Б/4.072.200-33-02-2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Примечание:&lt;br /&gt;
  Макрокоманда .TWAIT реализуется в мониторе&lt;br /&gt;
с использованием макрокоманд .SPND и .RSUM. Поэтому&lt;br /&gt;
макрокоманда .RSUM, выданная программой заверения без&lt;br /&gt;
соответствующей макрокоманды .SPND, может вызвать продолже-&lt;br /&gt;
ние основной программы раньше, чем закончится временной&lt;br /&gt;
интервал.&lt;br /&gt;
&lt;br /&gt;
Ошибки:&lt;br /&gt;
&lt;br /&gt;
 Код Пояснение&lt;br /&gt;
&lt;br /&gt;
  0 Отсутствует элемент очереди.&lt;br /&gt;
&lt;br /&gt;
Пример: см. пример макрокоманды .CHCOPY.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.49. .UNLOCK&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Системная макрокоманда .UNLOCK отменяет запрещение&lt;br /&gt;
свопинга USR, заданное макрокомандой .LOCK.&lt;br /&gt;
&lt;br /&gt;
	Формат макрокоманды:&lt;br /&gt;
&lt;br /&gt;
   .UNLOCK&lt;br /&gt;
&lt;br /&gt;
	Если макрокоманда .LOCK требовала свопинга, то&lt;br /&gt;
.UNLOCK загружает программу пользователя обратно в&lt;br /&gt;
память.&lt;br /&gt;
&lt;br /&gt;
 Если USR не требует свопинга, то .UNLOCK игно-&lt;br /&gt;
рируется.&lt;br /&gt;
&lt;br /&gt;
 Если выполнено больше макрокоманд .UNLOCK, чем&lt;br /&gt;
макрокоманд .LOCK, то лишние макрокманды игнорируются.&lt;br /&gt;
&lt;br /&gt;
 ВЫзов CSI выполняет подразумеваемую макрокоманду&lt;br /&gt;
.UNLOCK.&lt;br /&gt;
&lt;br /&gt;
 макрокоманда .UNLOCK не должна находиться в об-&lt;br /&gt;
ласти, в которую обменивалась USR, иначе она не будет&lt;br /&gt;
выполнена.&lt;br /&gt;
&lt;br /&gt;
Ошибки: отсутствуют.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
 В примере макрокомандой .SETTOP запрашивается вся&lt;br /&gt;
память, что приводит к нерезидентности USR. Перед открытием&lt;br /&gt;
канала, макрокомандой .LOCK USR заносится в память и&lt;br /&gt;
становится резидентной, т.е. при выполнении макрокоманд&lt;br /&gt;
.LOOKUP свопинга не происходит. После выполнени макро-&lt;br /&gt;
команды .UNLOCK USR снова становится нерезидентной.&lt;br /&gt;
&lt;br /&gt;
 .MCALL	.LOCK,.UNLOCK,.SETTOP,.SCMDF&lt;br /&gt;
	.MCALL	.LOOKUP,.PRINT,.EXIT&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
START:	.SCMDF			;ОПРЕДЕЛИТЬ МНЕМОНИКУ&lt;br /&gt;
    ;СИСТЕМНОЙ ОБЛАСТИ СВЯЗИ&lt;br /&gt;
    ;(ЗДЕСЬ SYSPTR)&lt;br /&gt;
	.SETTOP	@#SYSPTR	;ЗАПРОСИТЬ ВСЮ ПАМЯТЬ&lt;br /&gt;
 .LOCK			;ВЫЗОВ USR В ПАМЯТЬ&lt;br /&gt;
 .LOOKUP	#AREA,#0,#DEV1	;ИСПОЛЗОВАНИЕ USR&lt;br /&gt;
	BCS	1$&lt;br /&gt;
	.LOOKUP	#AREA,#1,#DEV2&lt;br /&gt;
	BCS	1$&lt;br /&gt;
	.UNLOCK			;УДАЛИТЬ USR ИЗ ПАМЯТИ&lt;br /&gt;
 .EXIT&lt;br /&gt;
1$:	.PRINT	#MSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
MSG:	.ASCIZ	/ОШИБКА .LOOKUP/&lt;br /&gt;
	.EVEN&lt;br /&gt;
AREA:	.BLKW	3		;БЛОКАРГУМЕНТОВ EMT&lt;br /&gt;
DEV1:	.RAD50	/SY FORTRASAV/&lt;br /&gt;
DEV2:	.RAD50	/SY PATCH SAV/&lt;br /&gt;
	.END	START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	3.50. .UNPROTECT  ( Только для FB- и XM-мониторов )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Системная макрокоманда .UNPROTECT освобождает вектор&lt;br /&gt;
устройства в диапазоне 0 - 476.&lt;br /&gt;
&lt;br /&gt;
 Формат макрокоманды:&lt;br /&gt;
&lt;br /&gt;
   .UNPROTECT	AREA,ADDR&lt;br /&gt;
где&lt;br /&gt;
&lt;br /&gt;
AREA&lt;br /&gt;
	-адрес списка аргументов EMT из двух слов;&lt;br /&gt;
&lt;br /&gt;
ADDR&lt;br /&gt;
	-адрес вектора, который должен быть освобожден.&lt;br /&gt;
&lt;br /&gt;
 Формат списка аргументов EMT:&lt;br /&gt;
&lt;br /&gt;
   !------!------!&lt;br /&gt;
 R0=&amp;gt; AREA:	!  31  !  1   !&lt;br /&gt;
			!------!------!&lt;br /&gt;
			!    ADDR     !&lt;br /&gt;
			!-------------!&lt;br /&gt;
Ошибки:&lt;br /&gt;
&lt;br /&gt;
 Код  Пояснение&lt;br /&gt;
&lt;br /&gt;
  1 Адрес (ADDR) &amp;gt; 476 (восьмеричных) или &amp;lt; 4.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        - 54 -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        .MCALL  .PROTECT,.UNPROTECT,.EXIT,.PRINT&lt;br /&gt;
START:  .PROTECT #AREA,#234         ;ЗАЩИТА ЯЧЕЕК 234,236&lt;br /&gt;
         BCS    INUSE&lt;br /&gt;
         .&lt;br /&gt;
         .&lt;br /&gt;
         .&lt;br /&gt;
        .UNPROTECT #AREA,#234       ;ОСВОБОДИТЬ ЯЧЕЙКИ&lt;br /&gt;
        .EXIT&lt;br /&gt;
INUSE:  .PRINT  #ERR&lt;br /&gt;
        .EXIT&lt;br /&gt;
ERR:    .ASCIZ  /ОШИБКА PROTECT/&lt;br /&gt;
        .EVEN&lt;br /&gt;
AREA:   .BLKW   2&lt;br /&gt;
        .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.51.   .USBDF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .USBDF ОПРЕДЕЛЯЕТ&lt;br /&gt;
МНЕМОНИЧЕСКИЕ ОБОЗНАЧЕНИЯ СТАТУСА ЗАВЕРШЕНИЯ ПРОГРАММЫ&lt;br /&gt;
(СМ. Т.3 КН.2 Ч.1 П.2.3.2.2).&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .USBDF&lt;br /&gt;
    РАСШИРЕНИЕ МАКРОКОМАНДЫ:&lt;br /&gt;
ERRBYT  =^052&lt;br /&gt;
USERRB  =^053&lt;br /&gt;
SEVER$  =^010&lt;br /&gt;
ERROR$  =^04&lt;br /&gt;
WARN$   =^02&lt;br /&gt;
SUCCS$  =^01&lt;br /&gt;
    ДАННАЯ МАКРОКОМАНДА НЕ ГЕНЕРИРУЕТ КОДОВ ЕМТ, А&lt;br /&gt;
ЯВЛЯЕТСЯ ЧИСТО ОПИСАТЕЛЬНОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ: ОТСУТСТВУЮТ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .SERR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        3.52.   .WAIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    СИСТЕМНАЯ МАКРОКОМАНДА .WAIT ПРИОСТАНАВЛИВАЕТ&lt;br /&gt;
ВЫПОЛНЕНИЕ ПРОГРАММЫ ДО ЗАВЕРШЕНИЯ ОПЕРАЦИЙ ВВОДА/ВЫВОДА&lt;br /&gt;
ПО УКАЗАННОМУ КАНАЛУ.&lt;br /&gt;
    ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
                        .WAIT CHAN&lt;br /&gt;
ГДЕ&lt;br /&gt;
CHAN    - НОМЕР КАНАЛА ВВОДА/ВЫВОДА.&lt;br /&gt;
�&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ФОРМАТ РЕГИСТРА RO:&lt;br /&gt;
&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
RO=&amp;gt;                    !   0    !  CHAN  !&lt;br /&gt;
                        !--------!--------!&lt;br /&gt;
&lt;br /&gt;
    МАКРОКОМАНДА .WAIT, ИСПОЛЬЗУЕМАЯ СОВМЕСТНО С&lt;br /&gt;
МАКРОКОМАНДАМИ .READ/.WRITE, ПОЗВОЛЯЕТ ОСУЩЕСТВИТЬ&lt;br /&gt;
ДВОЙНУЮ БУФЕРИЗАЦИЮ ПРОЦЕССА ВВОДА/ВЫВОДА.&lt;br /&gt;
    МАКРОКОМАНДА .WAIT ПЕРЕДАЕТ ПОЛЬЗОВАТЕЛЮ ИНФОРМАЦИЮ&lt;br /&gt;
ОБ ОШИБКАХ АППАРАТУРЫ В ОПЕРАЦИИ ВВОДА/ВЫВОДА.&lt;br /&gt;
    В FB-МОНИТОРЕ ВЫПОЛНЕНИЕ МАКРОКОМАНДЫ .WAIT ПРИ&lt;br /&gt;
ОПЕРАЦИЯХ ВВОДА/ВЫВОДА ВЫЗОВЕТ ПРИОСТАНОВКУ ОДНОЙ&lt;br /&gt;
ПРОГРАММЫ И ВЫПОЛНЕНИЕ (ЕСЛИ ВОЗМОЖНО) ДРУГОЙ.&lt;br /&gt;
&lt;br /&gt;
ОШИБКИ:&lt;br /&gt;
        КОД             ПОЯСНЕНИЕ&lt;br /&gt;
         0      КАНАЛ НЕ ОТКРЫТ;&lt;br /&gt;
         1      В ОПЕРАЦИИ ВВОДА/ВЫВОДА БЫЛА АППАРАТНАЯ&lt;br /&gt;
                ОШИБКА.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР: СМ. ПРИМЕР МАКРОКОМАНДЫ .MRKT.&lt;br /&gt;
�&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1696</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1696"/>
		<updated>2007-07-17T18:45:39Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 sysmac]] — ФОДОС-2. СИСТЕМНАЯ МАКРОБИБЛИОТЕКА. РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Здесь будет собрана вся известная информация об УКНЦ&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 08:59, 21 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_FODOS-2_sysmac&amp;diff=1695</id>
		<title>Uknc FODOS-2 sysmac</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_FODOS-2_sysmac&amp;diff=1695"/>
		<updated>2007-07-17T18:44:15Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                  ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
                   СИСТЕМНАЯ МАКРОБИБЛИОТЕКА&lt;br /&gt;
                    РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
                   589.7545471.00042-01 33 01&lt;br /&gt;
                           ЛИСТОВ 158&lt;br /&gt;
                              1985&lt;br /&gt;
&lt;br /&gt;
                          СОДЕРЖАНИЕ&lt;br /&gt;
&lt;br /&gt;
                                                       ЛИСТ&lt;br /&gt;
1.  Назначение и условия применения&lt;br /&gt;
2.  Обращение к системной макробиблиотеке&lt;br /&gt;
2.1.   Адресация аргументов&lt;br /&gt;
2.2.   Ключевой аргумент CODE&lt;br /&gt;
3.  Входные и выходные данные&lt;br /&gt;
3.1.   Номер канала&lt;br /&gt;
3.2.   Блок устройства&lt;br /&gt;
3.3.   Блок аргументов ЕМТ&lt;br /&gt;
3.4.   Подпрограммы завершения&lt;br /&gt;
3.5.   Требование USR&lt;br /&gt;
4.  Сообщения&lt;br /&gt;
5.  Программные запросы&lt;br /&gt;
5.1.   Программные запросы для операций с файлами&lt;br /&gt;
5.1.1.   .CHCOPY (FB,XM)&lt;br /&gt;
5.1.2.   .CLOSE&lt;br /&gt;
5.1.3.   .DELETE&lt;br /&gt;
5.1.4.   .ENTER&lt;br /&gt;
5.1.5.   .LOOKUP&lt;br /&gt;
5.1.6.   .PURGE&lt;br /&gt;
5.1.7.   .RENAME&lt;br /&gt;
5.1.8.   .REOPEN&lt;br /&gt;
5.1.9.   .SAVESTATUS&lt;br /&gt;
5.2.   Программные  запросы  для   организации ввода-вывода&lt;br /&gt;
5.2.1.   .READ,.READC,.READW&lt;br /&gt;
5.2.2.   .WRITE,.WRITC,.WRITW&lt;br /&gt;
5.2.3.   .RCVD,.RCVDC,.RCVDW (FB,ХМ)&lt;br /&gt;
5.2.4.   .SDAT,.SDATC,.SDATW (FB,ХМ)&lt;br /&gt;
5.2.5.   .TTYIN,.TTINR&lt;br /&gt;
5.2.6.   .TTYOUT,.TTOUTR&lt;br /&gt;
5.2.7.   .PRINT&lt;br /&gt;
5.2.8.   .MTIN&lt;br /&gt;
5.2.9.   .MTOUT&lt;br /&gt;
5.2.10.  .MTPRNT&lt;br /&gt;
5.2.11.  .SPFUN&lt;br /&gt;
5.3.   Запросы общего назначения&lt;br /&gt;
5.3.1.   .CDFN&lt;br /&gt;
5.3.2.   .CHAIN&lt;br /&gt;
5.3.3.   .CMKT&lt;br /&gt;
5.3.4.   .CNTXSW (FB,XM)&lt;br /&gt;
5.3.5.   .CSIGEN&lt;br /&gt;
5.3.6.   .CSISPC&lt;br /&gt;
5.3.6.1. Передача  информации  о  переключателях программе пользователя&lt;br /&gt;
5.3.7.   .ABTIO&lt;br /&gt;
5.3.8.   .CSTAT (FB,XM)&lt;br /&gt;
5.3.9.   .DATE&lt;br /&gt;
5.3.10.  .DEVICE(FB,XM)&lt;br /&gt;
5.3.11.  .DSTATUS&lt;br /&gt;
5.3.12.  .EXIT&lt;br /&gt;
5.3.13.  .FETCH,.RELEAS&lt;br /&gt;
5.3.14.  .FORK&lt;br /&gt;
5.3.15.  .FPROT&lt;br /&gt;
5.3.16.  .GTIM&lt;br /&gt;
5.3.17.  .GTJB&lt;br /&gt;
5.3.18.  .GTLIN&lt;br /&gt;
5.3.19.  .GVAL,.PVAL&lt;br /&gt;
5.3.20.  .HERR,.SERR&lt;br /&gt;
5.3.21.  .HRESET&lt;br /&gt;
5.3.22.  .INTEN&lt;br /&gt;
5.3.23.  .LOCK,.UNLOCK&lt;br /&gt;
5.3.24.  .MFPS, .MTPS&lt;br /&gt;
5.3.25.  .MRKT&lt;br /&gt;
5.3.26.  .MTATCH&lt;br /&gt;
5.3.27.  .MTDTCH&lt;br /&gt;
5.3.28.  .MTSET&lt;br /&gt;
5.3.29.  .MTGET&lt;br /&gt;
5.3.30.  .MTSTAT&lt;br /&gt;
5.3.31.  .MTRCTD&lt;br /&gt;
5.3.32.  .MWAIT (FB,XM)&lt;br /&gt;
5.3.33.  .PEEK,.POKE&lt;br /&gt;
5.3.34.  .PROTECT,.UNPROTECT (FB,XM)&lt;br /&gt;
5.3.35.  .QSET&lt;br /&gt;
5.3.36.  .RCTRLD&lt;br /&gt;
5.3.37.  .SPND,.RSUM (FB,XM)&lt;br /&gt;
5.3.38.  .SCCA&lt;br /&gt;
5.3.39.  .SDTTM&lt;br /&gt;
5.3.40.  .SETTOP&lt;br /&gt;
5.3.41.  .SPCPS (FB,ХМ)&lt;br /&gt;
5.3.42.  .SFDAT&lt;br /&gt;
5.3.43.  .SFPA&lt;br /&gt;
5.3.44.  .SRESET&lt;br /&gt;
5.3.45.  .SYNCH&lt;br /&gt;
5.3.46.  .TLOCK&lt;br /&gt;
5.3.47.  .TRPSET&lt;br /&gt;
5.3.48.  .TWAIT&lt;br /&gt;
5.3.49.  .WAIT&lt;br /&gt;
6.  Сообщения&lt;br /&gt;
ПРИЛОЖЕНИЕ  1. Коды ошибок программных запросов&lt;br /&gt;
ПРИЛОЖЕНИЕ  2. Структура блока CBLK&lt;br /&gt;
ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ&lt;br /&gt;
&lt;br /&gt;
           1. Назначение и условия применения&lt;br /&gt;
&lt;br /&gt;
    Ядром операционной системы RT11 является монитор. В зависимости от &lt;br /&gt;
конфигурации технических средств и потребностей пользователя может &lt;br /&gt;
использоваться один из трех мониторов RT11: монитор одного задания (SJ),&lt;br /&gt;
монитор основного-фонового задания (FB) и монитор расширенной памяти (XM).&lt;br /&gt;
все изложенное в данном документе, если не оговорено особо, относится к&lt;br /&gt;
любому монитору RT11.&lt;br /&gt;
    Монитор выполняется параллельно с прикладными программами и обеспечивает&lt;br /&gt;
выполнение следующих функций:&lt;br /&gt;
    - Инициализация и управление характеристиками операционной системы;&lt;br /&gt;
    - Распределение системных ресурсов и получение информации о состояниии &lt;br /&gt;
	операционной системы;&lt;br /&gt;
    - Интерпретация команд;&lt;br /&gt;
    - Операции с файлами;&lt;br /&gt;
    - Управление вводом-выводом;&lt;br /&gt;
    - Обеспечение связи между заданиями;&lt;br /&gt;
    - Завершение или временный приостанов программы;&lt;br /&gt;
    - Работа с расширенной памятью.&lt;br /&gt;
 &lt;br /&gt;
    Связь пользователя с RT11 осуществляется главным образом с помощью команд &lt;br /&gt;
клавиатурного монитора и программных запросов.&lt;br /&gt;
    Программные запросы обеспечивают разнообразные возможности для &lt;br /&gt;
манипулирования файлами, выполнения операций ввода-вывода, управления &lt;br /&gt;
выполнением и приостановкой программ и реализации других стандартных &lt;br /&gt;
системных функций.&lt;br /&gt;
    Программный запрос представляет собой макрокоманду, помещаемую &lt;br /&gt;
пользователем в исходный текст программы на языке ассемблера (программа &lt;br /&gt;
может  содержать  несколько  программных запросов).&lt;br /&gt;
    Каждая  макрокоманда  заменяется   последовательностью обычных &lt;br /&gt;
символических команд. этот процесс называется  макрорасширением и выполняется &lt;br /&gt;
во время ассемблирования.&lt;br /&gt;
    Для формирования макрорасширения ассемблер использует макроопределения, &lt;br /&gt;
включенные в системную макробиблиотеку SYSMAC.SML, которая находится на &lt;br /&gt;
системном томе и может быть использована любой программой.&lt;br /&gt;
    Большинство программных запросов используют машинную команду ЕМТ, которая &lt;br /&gt;
обеспечивает передачу управления монитору из программы, как только при &lt;br /&gt;
выполнении этой программы очередь доходит до команды ЕМТ.&lt;br /&gt;
    Младший байт команды ЕМТ содержит код в интервале от 340 до 377 &lt;br /&gt;
(восьмеричное), определяющий  местоположение передаваемых монитору &lt;br /&gt;
аргументов:&lt;br /&gt;
&lt;br /&gt;
 МЛАДШИЙ          ПРОГРАММНЫЙ ЗАПРОС                    &lt;br /&gt;
  БАЙТ                                                  &lt;br /&gt;
&lt;br /&gt;
 340-357  программный запрос с аргументами в стеке и/или в R0                                          &lt;br /&gt;
 360-373  используется только монитором RT11         &lt;br /&gt;
 374      программный запрос с одним аргументом. Регистр R0 содержит &lt;br /&gt;
	  функциональный код в старшем байте и номер канала в младшем байте                &lt;br /&gt;
 375      программный запрос с несколькими аргументами. Регистр R0 &lt;br /&gt;
	  используется в качестве указателя на блок аргументов                            &lt;br /&gt;
 376      используется только монитором RT11         &lt;br /&gt;
 377      Резервный. RT11 игнорирует этот ЕМТ и возвращает управление &lt;br /&gt;
	  программе пользователя.     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        2. Обращение к системной макробиблиотеке&lt;br /&gt;
&lt;br /&gt;
    ДЛЯ ВЫПОЛНЕНИЯ ОПЕРАЦИЙ СРЕДСТВАМИ ОПЕРАЦИОННОЙ СИСТЕ-&lt;br /&gt;
МЫ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ ОБРАЩАЮТСЯ К МОНИТОРУ ЧЕРЕЗ ПРОГ-&lt;br /&gt;
РАММНЫЕ ЗАПРОСЫ. В ДАННОМ РАЗДЕЛЕ ОПИСАН ФОРМАТ И НАЗНАЧЕ-&lt;br /&gt;
НИЕ ПРОГРАММНЫХ ЗАПРОСОВ ОПЕРАЦИОННОЙ СИСТЕМЫ.&lt;br /&gt;
    ИМЕНА ВСЕХ ПРОГРАММНЫХ ЗАПРОСОВ НАЧИНАЮТСЯ СИМВОЛОМ&lt;br /&gt;
&amp;quot;ТОЧКА&amp;quot;(.), ЧТО ОТЛИЧАЕТ ИХ ОТ МАКРОКОМАНД, ОПРЕДЕЛЯЕМЫХ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
    ВСЕ ПРОГРАММНЫЕ ЗАПРОСЫ, ИСПОЛЬЗУЕМЫЕ В ПРОГРАММЕ,&lt;br /&gt;
ДОЛЖНЫ БЫТЬ ОПРЕДЕЛЕНЫ В ДИРЕКТИВЕ .MCALL.&lt;br /&gt;
    В RT11 ИСПОЛЬЗУЮТСЯ ДВА ФОРМАТА ПРОГРАММНЫХ ЗАПРО-&lt;br /&gt;
СОВ:&lt;br /&gt;
&lt;br /&gt;
    1) .PRGREQ ARG1,ARG2,...,ARGN&lt;br /&gt;
    2) .PRGREQ AREA,ARG1,...,ARGN&lt;br /&gt;
&lt;br /&gt;
    В ЭТИХ ФОРМАТАХ PRGREQ ПРЕДСТАВЛЯЕТ СОБОЙ ИМЯ ПРОГ-&lt;br /&gt;
РАММНОГО ЗАПРОСА, AREA - УКАЗАТЕЛЬ НА АДРЕС БЛОКА АРГУМЕН-&lt;br /&gt;
ТОВ, ARG1,ARG2,...,ARGN - АРГУМЕНТЫ ПРОГРАММНОГО ЗАПРОСА.&lt;br /&gt;
    ПРОГРАММЫЕ ЗАПРОСЫ ПЕРВОГО ФОРМАТА ВЫЗЫВАЮТ ГЕНЕРАЦИЮ&lt;br /&gt;
КОМАНДЫ ЕМТ С КОДОМ 374 ИЛИ ОДНОЙ ИЗ КОМАНД ЕМТ 340-357.&lt;br /&gt;
    ПРОГРАММНЫЕ ЗАПРОСЫ, ИСПОЛЬЗУЮЩИЕ КОМАНДУ ЕМТ 374,&lt;br /&gt;
ПОМЕЩАЮТ В МЛАДШИЙ БАЙТ РЕГИСТРА R0 НОМЕР КАНАЛА, А В СТАР-&lt;br /&gt;
ШИЙ - ФУНКЦИОНАЛЬНЫЙ КОД (СМ.РИС.1).&lt;br /&gt;
&lt;br /&gt;
          15               8 7                 0&lt;br /&gt;
           -------------------------------------&lt;br /&gt;
      R0 = ! ФУНКЦИОНАЛЬНЫЙ !   НОМЕР КАНАЛА   !&lt;br /&gt;
           !      КОД       !(ЕСЛИ ПРИМЕНЯЕТСЯ)!&lt;br /&gt;
           -------------------------------------&lt;br /&gt;
&lt;br /&gt;
                          РИС.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ОДНИМ ИЗ ПРОГРАММНЫХ ЗАПРОСОВ, ИСПОЛЬЗУЮЩИХ ЕМТ 374,&lt;br /&gt;
ЯВЛЯЕТСЯ ЗАПРОС .DATE. МАКРООПРЕДЕЛЕНИЕ ДЛЯ ЭТОГО ЗАПРОСА&lt;br /&gt;
СЛЕДУЮЩЕЕ:&lt;br /&gt;
.MACRO .DATE&lt;br /&gt;
      MOV     #10.*^O400,%0&lt;br /&gt;
      EMT     ^374&lt;br /&gt;
.ENDM&lt;br /&gt;
    СООТВЕТСТВУЮЩИЙ ЗАПРОСУ .DATE ФУНКЦИОНАЛЬНЫЙ КОД, РАВ-&lt;br /&gt;
НЫЙ 10., ПОМЕЩАЕТСЯ В СТАРШИЙ БАЙТ РЕГИСТРА R0, А НОМЕР&lt;br /&gt;
XКАНАЛА (0) - В МЛАДШИЙ БАЙТ РЕГИСТРА R0.&lt;br /&gt;
    ПРОГРАММНЫЕ ЗАПРОСЫ, ИСПОЛЬЗУЮЩИЕ ЕМТ 340-357, ПОМЕ-&lt;br /&gt;
ЩАЮТ АРГУМЕНТЫ (ЕСЛИ ОНИ ЗАДАНЫ) В СТЕК И/ИЛИ В R0.&lt;br /&gt;
    ПРОГРАММНЫЙ ЗАПРОС .CSIGEN ЯВЛЯЕТСЯ ПРИМЕРОМ ПРОГРАММ-&lt;br /&gt;
НОГО ЗАПРОСА, ИСПОЛЬЗУЮЩЕГО ЕМТ 344. НИЖЕ ПРЕДСТАВЛЕНО&lt;br /&gt;
УПРОЩЕННОЕ МАКРООПРЕДЕЛЕНИЕ ДЛЯ ЭТОГО ЗАПРОСА:&lt;br /&gt;
&lt;br /&gt;
.MACRO .CSIGEN DEVSPC,DEFEXT,CSTRNG,LINBUF&lt;br /&gt;
.IFF NB &amp;lt;LINBUF&amp;gt;       MOV     LINBUF,-(6.)&lt;br /&gt;
      MOV     DEVSPC,-(6.)&lt;br /&gt;
.IFF NB &amp;lt;LINBUF&amp;gt;       INC     (6.)&lt;br /&gt;
      MOV     DEFEXT,-(6.)&lt;br /&gt;
.IF B CSTRNG&lt;br /&gt;
      CLR     -(6.)&lt;br /&gt;
.IFF&lt;br /&gt;
.IF IDN CSTRNG,#0&lt;br /&gt;
       CLR     -(6.)&lt;br /&gt;
.IFF&lt;br /&gt;
       MOV     CSTRNG,-(6.)&lt;br /&gt;
.ENDC&lt;br /&gt;
.ENDC&lt;br /&gt;
       EMT     ^O344&lt;br /&gt;
.ENDM&lt;br /&gt;
&lt;br /&gt;
    ВСЕ УКАЗАННЫЕ АРГУМЕНТЫ ПОМЕЩАЮТСЯ В СТЕК ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
(СМ.РИС.2) И ИСПОЛЬЗУЮТСЯ МОНИТОРОМ ПРИ ВЫПОЛНЕНИИ ЗАПРОСА&lt;br /&gt;
.CSIGEN.&lt;br /&gt;
&lt;br /&gt;
                      ------------ ВЕРХНИЙ АДРЕС&lt;br /&gt;
                      !  LINBUF  !&lt;br /&gt;
                      ------------&lt;br /&gt;
                      !  DEVSPC  !&lt;br /&gt;
                      ------------&lt;br /&gt;
                      !  DEFEXT  !&lt;br /&gt;
                      ------------&lt;br /&gt;
 УКАЗАТЕЛЬ СТЕКА -&amp;gt;   !  CSTRNG  !&lt;br /&gt;
                      ------------ НИЖНИЙ АДРЕС&lt;br /&gt;
&lt;br /&gt;
                          РИС.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ПРОГРАММНЫЕ ЗАПРОСЫ ВТОРОГО ФОРМАТА ВЫЗЫВАЮТ ГЕНЕРАЦИЮ&lt;br /&gt;
КОМАНДЫ ЕМТ С КОДОМ 375.&lt;br /&gt;
    ФОРМАТ БЛОКА АРГУМЕНТОВ ДЛЯ ЕМТ 375 ПРЕДСТАВЛЕН НА&lt;br /&gt;
РИС.3.&lt;br /&gt;
&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
R0 -&amp;gt;  AREA:   ! ФУНКЦИОНАЛЬНЫЙ !     НОМЕР     !&lt;br /&gt;
              !      КОД       !     КАНАЛА    !&lt;br /&gt;
              !     (CODE)     !     (CHAN)    !&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
              !              ARG1              !&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
              !              ARG2              !&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
                               .&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
              !              ARGN              !&lt;br /&gt;
              ----------------------------------&lt;br /&gt;
&lt;br /&gt;
                          РИС.3&lt;br /&gt;
&lt;br /&gt;
    НЕКОТОРЫЕ АРГУМЕНТЫ ПРОГРАММНЫХ ЗАПРОСОВ МОГУТ БЫТЬ&lt;br /&gt;
ОПУЩЕНЫ. ЕСЛИ ОТСУТСТВУЕТ АРГУМЕНТ AREA, ТО ПРЕДПОЛАГАЕТСЯ&lt;br /&gt;
ЧТО ОН СОДЕРЖИТСЯ В R0. ЕСЛИ НЕ УКАЗАНЫ (ОПУЩЕНЫ) КАКИЕ-&lt;br /&gt;
ЛИБО ИЗ АРГУМЕНТОВ ОТ ARG1 ДО ARGN, ТО СОДЕРЖИМОЕ СООТ-&lt;br /&gt;
ВЕТСТВУЮЩИХ ЭТИМ АРГУМЕНТАМ СЛОВ В БЛОКЕ АРГУМЕНТОВ НЕ&lt;br /&gt;
ИЗМЕНЯЕТСЯ.&lt;br /&gt;
    НАПРИМЕР, ПРИ ВЫПОЛНЕНИИ ЗАПРОСА&lt;br /&gt;
&lt;br /&gt;
              .PRGREQ AREA,ARG1,ARG2&lt;br /&gt;
&lt;br /&gt;
РЕГИСТР R0 СОДЕРЖИТ АДРЕС БЛОКА АРГУМЕНТОВ, ВТОРОЕ СЛОВО&lt;br /&gt;
СОДЕРЖИТ ARG1, ТРЕТЬЕ - ARG2.&lt;br /&gt;
    ПРИ ВЫПОЛНЕНИИ ЗАПРОСА&lt;br /&gt;
              .PRGREQ AREA&lt;br /&gt;
СТАРШИЙ БАЙТ ПЕРВОГО СЛОВА БЛОКА АРГУМЕНТОВ СОДЕРЖИТ ФУНК-&lt;br /&gt;
ЦИОНАЛЬНЫЙ КОД. СОДЕРЖИМОЕ ДРУГИХ СЛОВ БЛОКА АРГУМЕНТОВ НЕ&lt;br /&gt;
ИЗМЕНЯЕТСЯ.&lt;br /&gt;
    ЕСЛИ В ЗАПРОСЕ&lt;br /&gt;
              .PRGREQ ,ARG1&lt;br /&gt;
&lt;br /&gt;
ОПУЩЕН АРГУМЕНТ AREA, ТО ПРЕПОЛАГАЕТСЯ ЧТО ОН СОДЕРЖИТСЯ В&lt;br /&gt;
R0 (ФУНКЦИОНАЛЬНЫЙ КОД В ЭТОМ СЛУЧАЕ В БЛОК АРГУМЕНТОВ НЕ&lt;br /&gt;
ЗАНОСИТСЯ).&lt;br /&gt;
    БЛОК АРГУМЕНТОВ МОЖЕТ ФОРМИРОВАТЬСЯ МАКРОАССЕМБЛЕРОМ&lt;br /&gt;
ВО ВРЕМЯ ТРАСЛЯЦИИ ПРОГРАММЫ ИЛИ НЕПОСРЕДСТВЕНО ПОЛЬЗОВАТЕ-&lt;br /&gt;
ЛЕМ, НАПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
      1) MOV  #ARG1,AREA+2&lt;br /&gt;
         MOV  #ARG2,AREA+4&lt;br /&gt;
         .PRGREQ      #AREA&lt;br /&gt;
&lt;br /&gt;
      2) MOV  #AREA,R0&lt;br /&gt;
         .PRGREQ      ,#ARG1,#ARG2&lt;br /&gt;
&lt;br /&gt;
      3) MOV  #AREA,R0&lt;br /&gt;
         MOV  #ARG1,2(R0)&lt;br /&gt;
         MOV  #ARG2,4(R0)&lt;br /&gt;
         MOV  #CODE*400!CHAN,(R0)&lt;br /&gt;
         .PRGREQ&lt;br /&gt;
&lt;br /&gt;
    ВО ВСЕХ ВЫШЕПРИВЕДЕННЫХ ПРИМЕРАХ ОПРЕДЕЛЯЕТСЯ ОДИН И&lt;br /&gt;
ТОТ ЖЕ ПРОГРАММНЫЙ ЗАПРОС.&lt;br /&gt;
    В ПРИМЕРЕ, КОТОРЫЙ СЛЕДУЕТ НИЖЕ, ПРИВЕДЕН ОДИН ИЗ ВОЗ-&lt;br /&gt;
МОЖНЫХ СПОСОБОВ ФОРМИРОВАНИЯ БЛОКА АРГУМЕНТОВ ДЛЯ ПРОГРАММ-&lt;br /&gt;
НОГО ЗАПРОСА .TWAIT.&lt;br /&gt;
&lt;br /&gt;
         .MCALL  .PRINT,.TWAIT&lt;br /&gt;
 START:  .TWAIT  #EMTBLK&lt;br /&gt;
         .PRINT  #MSG&lt;br /&gt;
         BR      START&lt;br /&gt;
&lt;br /&gt;
 EMTBLK: .BYTE   0,24&lt;br /&gt;
         .WORD   TIME&lt;br /&gt;
&lt;br /&gt;
 TIME:   .WORD   0,10.*50&lt;br /&gt;
         .ASCIZ  /ЧЕРЕЗ 10 СЕКУНД - ПЕЧАТЬ  СООБЩЕНИЯ/&lt;br /&gt;
         .END    START&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    2.1. АДРЕСАЦИЯ АРГУМЕНТОВ&lt;br /&gt;
    ВСЕ АРГУМЕНТЫ ПРОГРАММНЫХ ЗАПРОСОВ СЛУЖАТ В КАЧЕСТВЕ&lt;br /&gt;
ОПЕРАНДА ИСТОЧНИКА КОМАНДЫ MOV И БЛОК АРГУМЕНТОВ ДОЛЖЕН&lt;br /&gt;
СОДЕРЖАТЬ НЕПОСРЕДСТВЕННО ЗНАЧЕНИЯ АРГУМЕНТОВ.&lt;br /&gt;
    ПОЭТОМУ НЕОБХОДИМО ПОМНИТЬ, ЧТО АРГУМЕНТЫ ПРОГРАММНЫХ&lt;br /&gt;
ЗАПРОСОВ ДОЛЖНЫ БЫТЬ ДОПУСТИМЫМИ В ЯЗЫКЕ АССЕМБЛЕРА И ТОЧНО&lt;br /&gt;
ПРЕДСТАВЛЯТЬ ТРЕБУЕМУЮ ВЕЛИЧИНУ. ЕСЛИ ВЕЛИЧИНА ЯВЛЯЕТСЯ&lt;br /&gt;
КОНСТАНТОЙ ИЛИ СИМВОЛИЧЕСКИМ ИМЕНЕМ ПОЛЬЗОВАТЕЛЯ, ТО ДОЛЖЕН&lt;br /&gt;
БЫТЬ ИСПОЛЬЗОВАН НЕПОСРЕДСТВЕННЫЙ МЕТОД АДРЕСАЦИИ (#), НАП-&lt;br /&gt;
РИМЕР:&lt;br /&gt;
&lt;br /&gt;
    .PRGREQ #AREA,#4&lt;br /&gt;
    ЕСЛИ ВЕЛИЧИНА ЯВЛЯЕТСЯ СОДЕРЖИМЫМ РЕГИСТРА, ТО ДОЛЖНА&lt;br /&gt;
БЫТЬ ИСПОЛЬЗОВАНА МНЕМОНИКА РЕГИСТРА (RN). ЕСЛИ ВЕЛИЧИНА&lt;br /&gt;
ЯВЛЯЕТСЯ СОДЕРЖИМЫМ ЯЧЕЙКИ ПАМЯТИ, ТО ДОЛЖНА БЫТЬ ИСПОЛЬЗО-&lt;br /&gt;
ВАНА МЕТКА ЭТОЙ ЯЧЕЙКИ, НАПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
      .PRGREQ LIST,NUMBER&lt;br /&gt;
              .&lt;br /&gt;
              .&lt;br /&gt;
                 .&lt;br /&gt;
 LIST:   .WORD   AREA&lt;br /&gt;
 NUMBER: .WORD   4&lt;br /&gt;
&lt;br /&gt;
    ПРИМЕЧАНИЕ. ПРИ ВЫПОЛНЕНИИ ЗАПРОСА, СОДЕРЖИМОЕ РЕГИСТ-&lt;br /&gt;
РОВ ОБЩЕГО НАЗНАЧЕНИЯ, КРОМЕ R0, НЕ ИЗМЕНЯЕТСЯ. УКАЗАТЕЛЬ&lt;br /&gt;
СТЕКА НЕ ПЕРЕУСТАНАВЛИВАЕТСЯ. ИСКЛЮЧЕНИЕМ ЯВЛЯЕТСЯ ВЫЗОВ&lt;br /&gt;
ИНТЕРПРЕТАТОРА КОМАНДНОЙ СТРОКИ (ЗАПРОСЫ .CSIGEN,.CSISPC).&lt;br /&gt;
&lt;br /&gt;
    2.2. КЛЮЧЕВОЙ АРГУМЕНТ CODE&lt;br /&gt;
    КЛЮЧЕВОЙ АРГУМЕНТ CODE ПОЗВОЛЯЕТ ИСПОЛЬЗОВАТЬ ОДИН И&lt;br /&gt;
ТОТ ЖЕ БЛОК АРГУМЕНТОВ ДЛЯ РАЗЛИЧНЫХ ПРОГРАММНЫХ ЗАПРОСОВ,&lt;br /&gt;
ИМЕЮЩИХ ОДНИ И ТЕ ЖЕ АРГУМЕНТЫ, НО РАЗЛИЧНЫЕ ФУНКЦИОНАЛЬНЫЕ&lt;br /&gt;
КОДЫ. ИСПОЛЬЗОВАНИЕ ЭТОГО КЛЮЧЕВОГО АРГУМЕНТА УМЕНЬШАЕТ&lt;br /&gt;
РАЗМЕР ПРОГРАММЫ И ВРЕМЯ ЕЕ ВЫПОЛНЕНИЯ. АРГУМЕНТ CODE МОЖЕТ&lt;br /&gt;
ИМЕТЬ ДВА ЗНАЧЕНИЯ: CODE=SET (ЗАНЕСТИ ФУНКЦИОНАЛЬНЫЙ КОД) И&lt;br /&gt;
CODE=NOSET (НЕ ЗАНОСИТЬ ФУНКЦИОНАЛЬНЫЙ КОД).&lt;br /&gt;
&lt;br /&gt;
       ПРИМЕР.&lt;br /&gt;
         .WRITW  #AREA,#CHAN,#BUFF,#WCNT,#BLK&lt;br /&gt;
            .&lt;br /&gt;
            .&lt;br /&gt;
            .&lt;br /&gt;
         .READW  #AREA,CODE=SET&lt;br /&gt;
            .&lt;br /&gt;
            .&lt;br /&gt;
            .&lt;br /&gt;
&lt;br /&gt;
              3. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ&lt;br /&gt;
    АРГУМЕНТЫ ПРОГРАММНЫХ ЗАПРОСОВ ЯВЛЯЮТСЯ ВХОДНЫМИ ДАН-&lt;br /&gt;
НЫМИ ДЛЯ МОНИТОРА RT11. В ТАБЛ.2 ПРИВЕДЕНЫ ИХ УСЛОВНЫЕ&lt;br /&gt;
ОБОЗНАЧЕНИЯ. В ЭТОМ РАЗДЕЛЕ ТАКЖЕ ПРИВЕДЕНЫ НЕКОТОРЫЕ&lt;br /&gt;
ОСНОВНЫЕ ПОНЯТИЯ, КОТОРЫЕ ИСПОЛЬЗУЮТСЯ ПРИ ОБРАЩЕНИИ К МАК-&lt;br /&gt;
РОБИБЛИОТЕКЕ.&lt;br /&gt;
&lt;br /&gt;
    3.1. НОМЕР КАНАЛА&lt;br /&gt;
    НОМЕР КАНАЛА (CHAN) ПРЕДСТАВЛЯЕТ СОБОЙ ЛОГИЧЕСКИЙ&lt;br /&gt;
ИДЕНТИФИКАТОР ФАЙЛА И ИСПОЛЬЗУЕТСЯ МОНИТОРОМ ПРИ ВЫПОЛНЕНИИ&lt;br /&gt;
ЗАПРАШИВАЕМЫХ ОПЕРАЦИЙ. НОМЕР КАНАЛА МОЖЕТ ИМЕТЬ ЗНАЧЕНИЕ&lt;br /&gt;
ОТ 0 ДО 254 (ДЕСЯТИЧНОЕ) (0-376 (ВОСЬМЕРИЧНОЕ)). КАНАЛ С&lt;br /&gt;
НОМЕРОМ 255 (ДЕСЯТИЧНОЕ) РЕЗЕРВИРУЕТСЯ ДЛЯ СИСТЕМНЫХ ОПЕРА-&lt;br /&gt;
ЦИЙ.&lt;br /&gt;
    КАЖДЫЙ ОТКРЫТЫЙ ФАЙЛ МОНИТОР ЛОГИЧЕСКИ СВЯЗЫВАЕТ С&lt;br /&gt;
ОПРЕДЕЛЕННЫМ КАНАЛОМ (ЭЛЕМЕНТОМ СТРУКТУРЫ МОНИТОРА, ТОЧНО&lt;br /&gt;
ОПРЕДЕЛЯЮЩИМ ФАЙЛ В ОПЕРАЦИОННОЙ СИСТЕМЕ). ДЛЯ ОБРАЩЕНИЯ К&lt;br /&gt;
ФАЙЛУ ДОСТАТОЧНО УКАЗАТЬ НОМЕР СООТВЕТСТВУЮЩЕГО КАНАЛА.&lt;br /&gt;
&lt;br /&gt;
    3.2. БЛОК УСТРОЙСТВА&lt;br /&gt;
    БЛОК УСТРОЙСТВА (DBLK) ПРЕДСТАВЛЯЕТ СОБОЙ БЛОК ИНФОР-&lt;br /&gt;
МАЦИИ В КОДАХ RADIX-50, КОТОРЫЙ СОДЕРЖИТ ФИЗИЧЕСКОЕ ИЛИ&lt;br /&gt;
ЛОГИЧЕСКОЕ ИМЯ УСТРОЙСТВА, ИМЯ И ТИП ФАЙЛА. РАЗМЕР БЛОКА -&lt;br /&gt;
4 СЛОВА.&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
                   .RAD50/DX1/&lt;br /&gt;
                   .RAD50/FIL/&lt;br /&gt;
                   .RAD50/NAM/&lt;br /&gt;
                   .RAD50/TYP/&lt;br /&gt;
&lt;br /&gt;
    ИМЯ УСТРОЙСТВА, ИМЯ И ТИП ФАЙЛА ДОЛЖНЫ БЫТЬ ЛЕВООПРЕ-&lt;br /&gt;
ДЕЛЕННЫМИ В КАЖДОМ ПОЛЕ ОПЕРАНДА (Т.Е. НЕПОСРЕДСТВЕННО СЛЕ-&lt;br /&gt;
ДОВАТЬ ЗА ОГРАНИЧИТЕЛЕМ ОПЕРАНДА ДИРЕКТИВЫ .RAD50).&lt;br /&gt;
    ДОПУСКАЕТСЯ ЗАПИСЬ БЛОКА УСТРОЙСТВА В СЛЕДУЮЩЕМ ВИДЕ:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                   .RAD50/DX1FILNAMTYP/&lt;br /&gt;
&lt;br /&gt;
ПРИ ЭТОМ КАЖДОЕ ПРОПУЩЕННОЕ ПОЛЕ ОПЕРАНДА ДОЛЖНО ЗАМЕНЯТЬСЯ&lt;br /&gt;
ПРОБЕЛОМ.&lt;br /&gt;
&lt;br /&gt;
                                                 ТАБЛИЦА 2&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
! УСЛОВНОЕ   !                   АРГУМЕНТ                 !&lt;br /&gt;
!ОБОЗНАЧЕНИЕ !                                            !&lt;br /&gt;
!---------------------------------------------------------!&lt;br /&gt;
! ADDR       !  АДРЕС; ЗНАЧЕНИЕ АДРЕСА ЗАВИСИТ ОТ ИСПОЛЬ- !&lt;br /&gt;
!            !  ЗУЕМОГО ЗАПРОСА                           !&lt;br /&gt;
! AREA       !  АДРЕС БЛОКА АРГУМЕНТОВ ЕМТ                !&lt;br /&gt;
! BLK        !  НОМЕР БЛОКА ОТНОСИТЕЛЬНО НАЧАЛА ФАЙЛА, С  !&lt;br /&gt;
!            !  КОТОРОГО ДОЛЖНА ВЫПОЛНЯТЬСЯ ОПЕРАЦИЯ      !&lt;br /&gt;
!            !  ВВОДА-ВЫВОДА                              !&lt;br /&gt;
! BUF        !  АДРЕС БУФЕРА ПАМЯТИ                       !&lt;br /&gt;
! CBLK       !  АДРЕС БЛОКА ИЗ ПЯТИ СЛОВ, В КОТОРОМ ХРА-  !&lt;br /&gt;
!            !  НИТСЯ ИНФОРМАЦИЯ О СОСТОЯНИИ КАНАЛА       !&lt;br /&gt;
! CHAN       !  НОМЕР КАНАЛА                              !&lt;br /&gt;
! CRTN       !  ТОЧКА ВХОДА ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ       !&lt;br /&gt;
! DBLK       !  АДРЕС БЛОКА УСТРОЙСТВА                    !&lt;br /&gt;
! NUM        !  ЧИСЛО, ЗНАЧЕНИЕ КОТОРОГО ЗАВИСИТ ОТ       !&lt;br /&gt;
!            !  ИСПОЛЬЗУЕМОГО   ЗАПРОСА                   !&lt;br /&gt;
! WCNT       !  СЧЕТЧИК СЛОВ; КОЛИЧЕСТВО СЛОВ, КОТОРЫЕ    !&lt;br /&gt;
!            !  НЕОБХОДИМО ПЕРЕДАТЬ В ИЛИ ИЗ БУФЕРА ПРИ   !&lt;br /&gt;
!            !  ВЫПОЛНЕНИИ ОПЕРАЦИИ ВВОДА-ВЫВОДА          !&lt;br /&gt;
! SEQN       !  ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР ФАЙЛА (ДЛЯ ОПЕРАЦИЙ!&lt;br /&gt;
!            !  С МАГНИТНОЙ ЛЕНТОЙ)                       !&lt;br /&gt;
! CHRCNT     !  СЧЕТЧИК СИМВОЛОВ                          !&lt;br /&gt;
! FUNC       !  ЧИСЛОВОЙ КОД, ОПРЕДЕЛЯЮЩИЙ ВЫПОЛНЯЕМУЮ    !&lt;br /&gt;
!            !  ФУНКЦИЮ                                   !&lt;br /&gt;
! JOBBLK     ! АДРЕС БЛОКА, СОДЕРЖАЩЕГО ИМЯ СИСТЕМНОГО    !&lt;br /&gt;
!            ! ЗАДАНИЯ В КОДАХ КОИ-7                      !&lt;br /&gt;
! JOBDEV     !  АДРЕС БЛОКА, СОДЕРЖАЩЕГО ИМЯ УСТРОЙСТВА И !&lt;br /&gt;
!            ! ИМЯ СИСТЕМНОГО ЗАДАНИЯ                     !&lt;br /&gt;
! UNIT       ! ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА                 !&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
    3.3. БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ОБЩИЙ ВИД БЛОКА АРГУМЕНТОВ КОМАНДЫ ЕМТ ПОКАЗАН НА&lt;br /&gt;
РИС.4. ЧЕТНЫЙ БАЙТ 1-ГО СЛОВА СОДЕРЖИТ НОМЕР КАНАЛА, ОПРЕ-&lt;br /&gt;
ДЕЛЕННЫЙ В МАКРОКОМАНДЕ. ЕСЛИ НОМЕР КАНАЛА НЕ ТРЕБУЕТСЯ, ТО&lt;br /&gt;
ЧЕТНЫЙ БАЙТ СОДЕРЖИТ 0. НЕЧЕТНЫЙ БАЙТ 1-ГО СЛОВА БЛОКА&lt;br /&gt;
СОДЕРЖИТ ФУНКЦИОНАЛЬНЫЙ КОД МАКРОКОМАНДЫ (КАЖДОМУ ПРОГРАММ-&lt;br /&gt;
НОМУ ЗАПРОСУ СООТВЕТСТВУЕТ СВОЙ ФУНКЦИОНАЛЬНЫЙ КОД).&lt;br /&gt;
ОСТАЛЬНЫЕ СЛОВА БЛОКА СОДЕРЖАТ АРГУМЕНТЫ (ЕСЛИ ОНИ ЗАДАНЫ),&lt;br /&gt;
ОПРЕДЕЛЕННЫЕ В МАКРОКОМАНДЕ.&lt;br /&gt;
&lt;br /&gt;
AREA:   -----------------------------------------&lt;br /&gt;
       ! ФУНКЦИОНАЛЬНЫЙ    !     НОМЕР         !&lt;br /&gt;
       !     КОД           !    КАНАЛА         !&lt;br /&gt;
       !---------------------------------------!&lt;br /&gt;
       !           1-Й АРГУМЕНТ                !&lt;br /&gt;
       !---------------------------------------!&lt;br /&gt;
       !           2-ОЙ АРГУМЕНТ               !&lt;br /&gt;
       !---------------------------------------!&lt;br /&gt;
                           .&lt;br /&gt;
                           .&lt;br /&gt;
                           .&lt;br /&gt;
       -----------------------------------------&lt;br /&gt;
       !           N-ЫЙ АРГУМЕНТ               !&lt;br /&gt;
       -----------------------------------------&lt;br /&gt;
&lt;br /&gt;
                РИС.4 БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    3.4. ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ&lt;br /&gt;
    ПОДПРОГРАММА ЗАВЕРШЕНИЯ СОЗДАЕТСЯ ПОЛЬЗОВАТЕЛЕМ И&lt;br /&gt;
ВЫПОЛНЯЕТСЯ ПРИ НАСТУПЛЕНИИ СОБЫТИЯ. СОБЫТИЕ МОЖЕТ ЗАКЛЮ-&lt;br /&gt;
ЧАТЬСЯ В ЗАВЕРШЕНИИ ОПЕРАЦИИ ВВОДА-ВЫВОДА, МОЖЕТ БЫТЬ ВЫЗ-&lt;br /&gt;
ВАНО ПРЕРЫВАНИЕМ ОТ ВНЕШНЕГО УСТРОЙСТВА, ИСТЕЧЕНИЕМ ЗАДАН-&lt;br /&gt;
НОГО ИНТЕРВАЛА ВРЕМЕНИ И Т.Д.&lt;br /&gt;
    НА ВХОДЕ В ПОДПРОГРАММУ ЗАВЕРШЕНИЯ РЕГИСТР R0 СОДЕРЖИТ&lt;br /&gt;
СЛОВО СОСТОЯНИЯ КАНАЛА, А R1 - ВОСЬМЕРИЧНЫЙ НОМЕР КАНАЛА&lt;br /&gt;
ДЛЯ ОПЕРАЦИИ.&lt;br /&gt;
    В РЕЖИМЕ SJ ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ ЯВЛЯЮТСЯ АССИНХ-&lt;br /&gt;
РОННЫМИ И МОГУТ ПРЕРЫВАТЬ ДРУГ ДРУГА. В РЕЖИМАХ FB И ХМ,&lt;br /&gt;
ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ НЕ ПРЕРЫВАЮТ ДРУГ ДРУГА, А ОРГАНИ-&lt;br /&gt;
ЗУЮТСЯ В ОЧЕРЕДЬ.&lt;br /&gt;
&lt;br /&gt;
    3.5. ТРЕБОВАНИЕ USR&lt;br /&gt;
    ДЛЯ ВЫПОЛНЕНИЯ НЕКОТОРЫХ ПРОГРАММНЫХ ЗАПРОСОВ НЕОБХО-&lt;br /&gt;
ДИМО, ЧТОБЫ КОМПОНЕНТА МОНИТОРА USR НАХОДИЛАСЬ В ОПЕРАТИВ-&lt;br /&gt;
НОЙ ПАМЯТИ. ТРЕБОВАНИЕ USR ПРОГРАММНЫМ ЗАПРОСАМ ОПИСАНО В&lt;br /&gt;
ТАБЛ.3. ЗАМЕТИМ, ЧТО ЗАПРОС CLOSE НА УСТРОЙСТВАХ НЕФАЙЛОВОЙ&lt;br /&gt;
СТРУКТУРЫ (LP:,TT:,PC:, И Т.Д.) НЕ ТРЕБУЕТ НАЛИЧИЯ USR В&lt;br /&gt;
ПАМЯТИ.&lt;br /&gt;
    ПРОГРАММА USR НЕ ЯВЛЯЕТСЯ РЕЕНТЕРАБЕЛЬНОЙ; ЕСЛИ USR&lt;br /&gt;
ИСПОЛЬЗУЕТСЯ ОДНИМ ЗАДАНИЕМ (В РЕЖИМЕ FB), ДРУГОЕ ЗАДАНИЕ,&lt;br /&gt;
ТРЕБУЮЩЕЕ USR, БУДЕТ ЖДАТЬ ЕЕ ОСВОБОЖДЕНИЯ.&lt;br /&gt;
                                                  ТАБЛИЦА 3&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
! ПРОГРАММНЫЙ ЗАПРОС  !           ТРЕБОВАНИЕ USR           !&lt;br /&gt;
!                     !-------------------------------------&lt;br /&gt;
!                     !  РЕЖИМ SJ  !  РЕЖИМ FB !  РЕЖИМ XM !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!                     !       *    !           !           !&lt;br /&gt;
! .CDFN               !     ДА     !    НЕТ    !    НЕТ    !&lt;br /&gt;
!       1)            !            !           !           !&lt;br /&gt;
! .CLOSE              !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .CSIGEN             !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .CSISPC             !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .DELETE             !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .DSTATUS            !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .ENTER              !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .EXIT               !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .FETCH/.RELEAS      !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .GTLIN              !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .HRESET             !     ДА     !    НЕТ    !    НЕТ    !&lt;br /&gt;
!      2)             !            !           !           !&lt;br /&gt;
! .LOCK               !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .LOOKUP             !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
!                     !       *    !      *    !           !&lt;br /&gt;
! .QSET               !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .RENAME             !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
! .REOPEN             !     НЕТ    !    НЕТ    !    НЕТ    !&lt;br /&gt;
!                     !       *    !           !           !&lt;br /&gt;
! .SRESET             !     ДА     !    НЕТ    !    НЕТ    !&lt;br /&gt;
!       3)            !            !           !           !&lt;br /&gt;
! .TLOCK              !     ДА     !    ДА     !    ДА     !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
             1)               ЕСЛИ КАНАЛ БЫЛ ОТКРЫТ ПО .ENTER ;&lt;br /&gt;
 &lt;br /&gt;
             2)               ЕСЛИ USR НАХОДИТСЯ В СОСТОЯНИИ СВОПИНГА;&lt;br /&gt;
 &lt;br /&gt;
             3)               ЕСЛИ USR НЕ  ИСПОЛЬЗУЕТСЯ ДРУГИМ ЗАДАНИЕМ.&lt;br /&gt;
 &lt;br /&gt;
        ЗАПРОСЫ, ПОМЕЧЕННЫЕ В ТАБЛ.3 ЗВЕЗДОЧКОЙ, ВСЕГДА ТРЕ-&lt;br /&gt;
    БУЮТ ЗАГРУЗКИ НОВОЙ КОПИИ USR ПЕРЕД ИХ ВЫПОЛНЕНИЕМ (ДАЖЕ,&lt;br /&gt;
    ЕСЛИ USR В ЭТОТ МОМЕНТ НАХОДИТСЯ В ПАМЯТИ).&lt;br /&gt;
 &lt;br /&gt;
                          4. СООБЩЕНИЯ&lt;br /&gt;
        ПРИ ОБРАБОТКЕ ЗАПРОСОВ, МОНИТОР МОЖЕТ ОБНАРУЖИТЬ УСЛО-&lt;br /&gt;
   ВИЯ ОШИБОК. ПРОГРАММНЫЕ ЗАПРОСЫ ИНФОРМИРУЮТ ОБ ЭТОМ ПОЛЬЗО-&lt;br /&gt;
   ВАТЕЛЯ, ИСПОЛЬЗУЯ  С-РАЗРЯД,  БАЙТ  ОШИБОК  (52-ОЙ  БАЙТ  В&lt;br /&gt;
   ОБЛАСТИ СВЯЗЕЙ СИСТЕМЫ) И  ПЕЧАТЬ  НА  ТЕРМИНАЛЕ  СООБЩЕНИЙ&lt;br /&gt;
   МОНИТОРА. С-РАЗРЯД ОЧИЩАЕТСЯ  ПОСЛЕ  ВЫПОЛНЕНИЯ  ЗАПРОСА  И&lt;br /&gt;
   УСТАНАВЛИВАЕТСЯ В СЛУЧАЕ ОШИБКИ. ДЛЯ ОБНАРУЖЕНИЯ ОШИБКИ  ЗА&lt;br /&gt;
   ЗАПРОСОМ ДОЛЖНА СЛЕДОВАТЬ КОМАНДА BCS ИЛИ BCC. КОГДА  УСТА-&lt;br /&gt;
   НОВЛЕН С-РАЗРЯД, БАЙТ ОШИБОК СОДЕРЖИТ КОД ОШИБКИ.&lt;br /&gt;
        ПРИ ВОЗНИКНОВЕНИИ  СЕРЬЕЗНЫХ  ОШИБОК  (В  ЭТОМ  СЛУЧАЕ&lt;br /&gt;
   МОНИТОР ПЕЧАТАЕТ СООТВЕТСТВУЮЩЕЕ  СООБЩЕНИЕ  НА  ТЕРМИНАЛЕ)&lt;br /&gt;
   УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ МОНИТОРУ. ДЛЯ АНАЛИЗА ПОДОБНЫХ ОШИБОК&lt;br /&gt;
   РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ ПРОГРАММНЫЙ ЗАПРОС .SERR. В ПРИ-&lt;br /&gt;
   ЛОЖЕНИИ ПЕРЕЧИСЛЕНЫ КОДЫ ОШИБОК ПРОГРАММНЫХ ЗАПРОСОВ И ПРИ-&lt;br /&gt;
   ЧИНЫ, ВЫЗЫВАЮЩИЕ ЭТИ ОШИБКИ.&lt;br /&gt;
 &lt;br /&gt;
                     5. ПРОГРАММНЫЕ ЗАПРОСЫ&lt;br /&gt;
        СУЩЕСТВУЮТ СЛЕДУЮЩИЕ ТИПЫ ПРОГРАММНЫХ ЗАПРОСОВ:&lt;br /&gt;
          - ЗАПРОСЫ ДЛЯ ОПЕРАЦИЙ С ФАЙЛАМИ;&lt;br /&gt;
          - ЗАПРОСЫ ДЛЯ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА ДАННЫХ;&lt;br /&gt;
          - ЗАПРОСЫ ОБЩЕГО НАЗНАЧЕНИЯ;&lt;br /&gt;
          - ЗАПРОСЫ РАСШИРЕННОЙ ПАМЯТИ;&lt;br /&gt;
          - ЗАПРОСЫ ДЛЯ ДРАЙВЕРОВ.&lt;br /&gt;
        В ТАБЛИЦЕ 4 ПЕРЕЧИСЛЕНЫ ПРОГРАММНЫЕ  ЗАПРОСЫ,  КОТОРЫЕ&lt;br /&gt;
   МОГУТ ИСПОЛЬЗОВАТЬСЯ В ЛЮБОМ ИЗ РЕЖИМОВ (SJ,FB,XM).  ЗАПРО-&lt;br /&gt;
   СЫ, ПОМЕЧЕННЫЕ В ТАБЛ.4 СИМВОЛАМИ &amp;quot;МТ&amp;quot;, МОЖНО  ИСПОЛЬЗОВАТЬ&lt;br /&gt;
   ТОЛЬКО ПРИ НАЛИЧИИ В СИСТЕМЕ МУЛЬТИТЕРМИНАЛЬНОЙ ПОДДЕРЖКИ.&lt;br /&gt;
        ОПИСАНИЕ ПРОГРАММНЫХ ЗАПРОСОВ ДЛЯ ПРОГРАММ - ДРАЙВЕРОВ&lt;br /&gt;
   УСТРОЙСТВ ДАЕТСЯ В [1].&lt;br /&gt;
        ОПИСАНИЕ ЗАПРОСОВ РАСШИРЕННОЙ ПАМЯТИ ДАЕТСЯ В [2].&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                                      ТАБЛИЦА 4&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! ПРОГРАММНЫЙ ! КОД ! ФУНК- !                              !&lt;br /&gt;
    !   ЗАПРОС    ! ЕМТ ! ЦИОН. !         НАЗНАЧЕНИЕ           !&lt;br /&gt;
    !             !     ! КОД   !                              !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! .ABTIO      ! 374 !  13   ! ПРЕРЫВАЕТ ОПЕРАЦИИ ВВОДА-ВЫ- !&lt;br /&gt;
    !             !     !       ! ВОДА НА УКАЗАННОМ КАНАЛЕ     !&lt;br /&gt;
    ! .CDFN       ! 375 !  15   ! ОПРЕДЕЛЯЕТ ДОПОЛНИТЕЛЬНЫЕ    !&lt;br /&gt;
    !             !     !       ! КАНАЛЫ ДЛЯ ОПЕРАЦИЙ ВВОДА-   !&lt;br /&gt;
    !             !     !       ! ВЫВОДА                       !&lt;br /&gt;
    ! .CHAIN      ! 374 !   10  ! ПЕРЕДАЕТ УПРАВЛЕНИЕ ДРУГОЙ   !&lt;br /&gt;
    !             !     !       ! ФОНОВОЙ ПРОГРАММЕ            !&lt;br /&gt;
    ! .CLOSE      ! 374 !   6   ! ЗАКРЫВАЕТ КАНАЛ И ОСВОБОЖДАЕТ!&lt;br /&gt;
    !             !     !       ! ЕГО ДЛЯ ИСПОЛЬЗОВАНИЯ В      !&lt;br /&gt;
    !             !     !       ! ДРУГИХ ОПЕРАЦИЯХ             !&lt;br /&gt;
    ! .CMKT       ! 375 !   23  ! АННУЛИРУЕТ ОДИН ИЛИ НЕСКОЛЬКО!&lt;br /&gt;
    !             !     !       ! ЗАПРОСОВ .MRKT               !&lt;br /&gt;
    ! .CSIGEN     ! 344 !   -   ! ВЫЗЫВАЕТ РАБОТУ ИНТЕРПРЕТАТО-!&lt;br /&gt;
    !             !     !       ! РА КОМАНДНОЙ СТРОКИ В ОБЩЕМ  !&lt;br /&gt;
    !             !     !       ! РЕЖИМЕ                       !&lt;br /&gt;
    ! .CSISPC     ! 345 !   -   ! ВЫЗЫВАЕТ РАБОТУ ИНТЕРПРЕТАТО-!&lt;br /&gt;
    !             !     !       ! РА КОМАНДНОЙ СТРОКИ В СПЕ-   !&lt;br /&gt;
    !             !     !       ! ЦИАЛЬНОМ РЕЖИМЕ              !&lt;br /&gt;
    ! .CSTAT      ! 375 !   27  ! ПОЗВОЛЯЕТ ПОЛУЧИТЬ ИНФОРМАЦИЮ!&lt;br /&gt;
    !             !     !       ! О СОСТОЯНИИ ОПРЕДЕЛЕННОГО    !&lt;br /&gt;
    !             !     !       ! КАНАЛА                       !&lt;br /&gt;
    ! .CTIMIO     !  -  !   -   ! ИСПОЛЬЗУЕТСЯ В ПРОГРАММАХ -  !&lt;br /&gt;
    !             !     !       ! ДРАЙВЕРАХ УСТРОЙСТВ ДЛЯ ОТМЕ-!&lt;br /&gt;
    !             !     !       ! МЕНЫ ЗАПРОСОВ, ТРЕБУЮЩИХ НА- !&lt;br /&gt;
    !             !     !       ! ЛИЧИЯ ТАЙМЕРА                !&lt;br /&gt;
    ! .DATE       ! 374 !   12  ! ПЕРЕСЫЛАЕТ ТЕКУЩУЮ ДАТУ В    !&lt;br /&gt;
    !             !     !       ! РЕГИСТР R0                   !&lt;br /&gt;
    ! .DELETE     ! 375 !   0   ! СТИРАЕТ ФАЙЛ С ТОМА УКАЗАН-  !&lt;br /&gt;
    !             !     !       ! НОГО УСТРОЙСТВА              !&lt;br /&gt;
    ! .DRAST:     !     !       ! ОПРЕДЕЛЯЕТ НАЧАЛО ПОДПРОГРАМ-!&lt;br /&gt;
    !             !     !       ! МЫ ОБРАБОТКИ ПРЕРЫВАНИЙ      !&lt;br /&gt;
    ! .DRBEG      !     !       ! СОЗДАЕТ ТАБЛИЦУ ЗАГОЛОВКА    !&lt;br /&gt;
    !             !     !       ! ДРАЙВЕРА                     !&lt;br /&gt;
    ! .DRBOT      !     !       ! ОПРЕДЕЛЯЕТ НАЧАЛО ПЕРВИЧНОГО !&lt;br /&gt;
    !             !     !       ! ЗАГРУЗЧИКА В ДРАЙВЕРЕ        !&lt;br /&gt;
    ! .DRDEF      !     !       ! ОПРЕДЕЛЯЕТ ПАРАМЕТРЫ ДРАЙВЕРА!&lt;br /&gt;
    !             !     !       ! И УСТРОЙСТВА                 !&lt;br /&gt;
    ! .DREND      !     !       ! ФОРМИРУЕТ ТАБЛИЦУ АДРЕСОВ    !&lt;br /&gt;
    !             !     !       ! ПОДПРОГРАММ МОНИТОРА; ОПРЕДЕ-!&lt;br /&gt;
    !             !     !       ! ЛЯЕТ ЛОГИЧЕСКИЙ КОНЕЦ ТЕКСТА !&lt;br /&gt;
    !             !     !       ! ДРАЙВЕРА                     !&lt;br /&gt;
    ! .DRFIN      !     !       ! ПЕРЕДАЕТ УПРАВЛЕНИЕ МОНИТОРУ !&lt;br /&gt;
    !             !     !       ! ПО  ЗАВЕРШЕНИИ ОБСЛУЖИВАНИЯ  !&lt;br /&gt;
    !             !     !       ! ЭЛЕМЕНТА ОЧЕРЕДИ             !&lt;br /&gt;
    ! .DRSET      !     !       ! ИСПОЛЬЗУЕТСЯ ДЛЯ ФОРМИРОВАНИЯ!&lt;br /&gt;
    !             !     !       ! ТАБЛИЦ ПАРАМЕТРОВ ДРАЙВЕРА   !&lt;br /&gt;
    ! .DRVTB      !     !       ! ИСПОЛЬЗУЕТСЯ ДЛЯ ОПИСАНИЯ    !&lt;br /&gt;
    !             !     !       ! ТАБЛИЦЫ ВЕКТОРОВ ПРЕРЫВАНИЙ  !&lt;br /&gt;
    !             !     !       ! И ПОДПРОГРАММ ИХ ОБРАБОТКИ   !&lt;br /&gt;
    ! .DSTATUS    ! 342 !    -  ! ПОЗВОЛЯЕТ ПОЛУЧИТЬ ИНФОРМАЦИЮ!&lt;br /&gt;
    !             !     !       ! О СОСТОЯНИИ ОПРЕДЕЛЕННОГО    !&lt;br /&gt;
    !             !     !       ! УСТРОЙСТВА                   !&lt;br /&gt;
    ! .ENTER      ! 375 !   2   ! РЕЗЕРВИРУЕТ ОБЛАСТЬ НА ТОМЕ  !&lt;br /&gt;
    !             !     !       ! УКАЗАННОГО УСТРОЙСТВА ДЛЯ    !&lt;br /&gt;
    !             !     !       ! СОЗДАНИЯ НОВОГО ФАЙЛА        !&lt;br /&gt;
    ! .EXIT       ! 350 !   -   ! ЗАВЕРШАЕТ ВЫПОЛНЕНИЕ ПРОГРАМ-!&lt;br /&gt;
    !             !     !       ! МЫ ПОЛЬЗОВАТЕЛЯ И ПЕРЕДАЕТ   !&lt;br /&gt;
    !             !     !       ! УПРАВЛЕНИЕ КЛАВИАТУРНОМУ     !&lt;br /&gt;
    !             !     !       ! МОНИТОРУ                     !&lt;br /&gt;
    ! .FETCH      ! 343 !   -   ! ЗАГРУЖАЕТ ДРАЙВЕР УСТРОЙСТВА !&lt;br /&gt;
    ! .FPROT      ! 375 !  43   ! УСТАНАВЛИВАЕТ (ОТМЕНЯЕТ)     !&lt;br /&gt;
    !             !     !       ! ЗАЩИТУ ФАЙЛА                 !&lt;br /&gt;
    ! .GTIM       ! 375 !   21  ! ОПРЕДЕЛЯЕТ ТЕКУЩЕЕ ВРЕМЯ ДНЯ !&lt;br /&gt;
    ! .GTJB       ! 375 !   20  ! ОПРЕДЕЛЯЕТ ПАРАМЕТРЫ ВЫПОЛНЯ-!&lt;br /&gt;
    !             !     !       ! ЕМОГО ЗАДАНИЯ                !&lt;br /&gt;
    ! .GTLIN      ! 345 !   -   ! ПРИНИМАЕТ ВХОДНУЮ СТРОКУ С   !&lt;br /&gt;
    !             !     !       ! ТЕРМИНАЛА ИЛИ ИЗ КОСВЕННОГО  !&lt;br /&gt;
    !             !     !       ! ФАЙЛА                        !&lt;br /&gt;
    ! .GVAL       ! 376 !   34  ! ПЕРЕСЫЛАЕТ В R0 СОДЕРЖИМОЕ   !&lt;br /&gt;
    !             !     !       ! УКАЗАННОЙ ЯЧЕЙКИ МОНИТОРА    !&lt;br /&gt;
    ! .HERR       ! 374 !    5  ! ОТМЕНЯЕТ ДЕЙСТВИЕ ЗАПРОСА    !&lt;br /&gt;
    !             !     !       ! .SERR                        !&lt;br /&gt;
    ! .HRESET     ! 357 !   -   ! ПРЕКРАЩАЕТ ВСЕ ОПЕРАЦИИ      !&lt;br /&gt;
    !             !     !       ! ВВОДА-ВЫВОДА И ВЫПОЛНЯЕТ     !&lt;br /&gt;
    !             !     !       ! ФУНКЦИИ ЗАПРОСА .SRESET      !&lt;br /&gt;
    ! .INTEN      !  -  !   -   ! СООБЩАЕТ МОНИТОРУ О ТОМ, ЧТО !&lt;br /&gt;
    !             !     !       ! ПРОИЗОШЛО ПРЕРЫВАНИЕ ОТ      !&lt;br /&gt;
    !             !     !       ! УСТРОЙСТВА И УСТАНАВЛИВАЕТ   !&lt;br /&gt;
    !             !     !       ! ПРИОРИТЕТ ПРОЦЕССОРА НА СО-  !&lt;br /&gt;
    !             !     !       ! ОТВЕТСТВУЮЩИЙ УРОВЕНЬ        !&lt;br /&gt;
    ! .LOCK       ! 346 !   -   ! ДЕЛАЕТ ПРОГРАММУ USR РЕЗИ-   !&lt;br /&gt;
    !             !     !       ! ДЕНТНОЙ В ПАМЯТИ ДО ТЕХ ПОР, !&lt;br /&gt;
    !             !     !       ! ПОКА НЕ БУДЕТ ВЫПОЛНЕН .EXIT !&lt;br /&gt;
    !             !     !       ! ИЛИ .UNLOCK . ЕСЛИ НЕОБХОДИ- !&lt;br /&gt;
    !             !     !       ! МО, СВОПИРУЕТ ПРОГРАММУ      !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ                 !&lt;br /&gt;
    ! .LOOKUP     ! 375 !   1   ! ОТКРЫВАЕТ СУЩЕСТВУЮЩИЙ ФАЙЛ  !&lt;br /&gt;
    !             !     !       ! ДЛЯ ВВОДА И/ИЛИ ВЫВОДА НА    !&lt;br /&gt;
    !             !     !       ! УКАЗАННОМ КАНАЛЕ             !&lt;br /&gt;
    ! .MFPS       !  -  !   -   ! ВЫБИРАЕТ СОДЕРЖИМОЕ ССП      !&lt;br /&gt;
    ! .MRKT       ! 375 !   22  ! ПЛАНИРУЕТ ЗАПУСК ПОДПРОГРАММЫ!&lt;br /&gt;
    !             !     !       ! ЗАВЕРШЕНИЯ ЧЕРЕЗ ОПРЕДЕЛЕН-  !&lt;br /&gt;
    !             !     !       ! НЫЙ ИНТЕРВАЛ ВРЕМЕНИ         !&lt;br /&gt;
    ! .MTATCH(MT) ! 374 !   37  ! УСТАНАВЛИВАЕТ СВЯЗЬ МЕЖДУ    !&lt;br /&gt;
    !             !     !       ! ЗАДАНИЕМ И ОПРЕДЕЛЕННЫМ ТЕР- !&lt;br /&gt;
    !             !     !       ! МИНАЛОМ                      !&lt;br /&gt;
    ! .MTDTCH(MT) ! 374 !   37  ! ПРЕРЫВАЕТ СВЯЗЬ УКАЗАННОГО   !&lt;br /&gt;
    !             !     !       ! ТЕРМИНАЛА С ЗАДАНИЕМ И ОСВО- !&lt;br /&gt;
    !             !     !       ! БОЖДАЕТ ЕГО ДЛЯ ИСПОЛЬЗОВАНИЯ!&lt;br /&gt;
    !             !     !       ! ДРУГИМ ЗАДАНИЕМ              !&lt;br /&gt;
    ! .MTGET(MT)  ! 374 !   37  ! ОПРЕДЕЛЯЕТ СОСТОЯНИЕ УКАЗАН- !&lt;br /&gt;
    !             !     !       ! НОГО ТЕРМИНАЛА               !&lt;br /&gt;
    ! .MTIN(MT)   ! 374 !   37  ! ДЕЙСТВУЕТ В МУЛЬТИТЕРМИНАЛЬ- !&lt;br /&gt;
    !             !     !       ! НОМ РЕЖИМЕ АНАЛОГИЧНО .TTYIN !&lt;br /&gt;
    ! .MTOUT(MT)  ! 374 !  37   ! ДЕЙСТВУЕТ В МУЛЬТИТЕРМИНАЛЬ- !&lt;br /&gt;
    !             !     !       ! НОМ РЕЖИМЕ АНАЛОГИЧНО .TTYOUT!&lt;br /&gt;
    ! .MTPRNT(MT) ! 374 !  32   ! ДЕЙСТВУЕТ В МУЛЬТИТЕРМИНАЛЬ- !&lt;br /&gt;
    !             !     !       ! НОМ РЕЖИМЕ АНАЛОГИЧНО .PRINT !&lt;br /&gt;
    ! .MTPS       !  -  !       ! УСТАНАВЛИВАЕТ ССП            !&lt;br /&gt;
    ! .MTRCTD(MT) ! 374 !   37  ! ОБЕСПЕЧИВАЕТ ВЫВОД НА УКАЗАН-!&lt;br /&gt;
    !             !     !       ! НЫЙ ТЕРМИНАЛ                 !&lt;br /&gt;
    ! .MTSET(MT)  ! 374 !   37  ! УСТАНАВЛИВАЕТ И МОДИФИЦИРУЕТ !&lt;br /&gt;
    !             !     !       ! ХАРАКТЕРИСТИКИ ТЕРМИНАЛА В   !&lt;br /&gt;
    !             !     !       ! МУЛЬТИТЕРМИНАЛЬНОМ РЕЖИМЕ    !&lt;br /&gt;
    ! .MTSTAT(MT) ! 375 !   37  ! ПЕРЕСЫЛАЕТ ПРОГРАММЕ ИНФОРМА-!&lt;br /&gt;
    !             !     !       ! ЦИЮ О СОСТОЯНИИ МУЛЬТИТЕРМИ- !&lt;br /&gt;
    !             !     !       ! НАЛЬНОЙ СИСТЕМЫ              !&lt;br /&gt;
    ! .PEEK       ! 375 !   34  ! ОПРЕДЕЛЯЕТ СОДЕРЖИМОЕ ЯЧЕЕК  !&lt;br /&gt;
    !             !     !       ! ПАМЯТИ                       !&lt;br /&gt;
    ! .POKE       ! 375 !   34  ! ИЗМЕНЯЕТ СОДЕРЖИМОЕ ЯЧЕЕК    !&lt;br /&gt;
    !             !     !       ! ПАМЯТИ                       !&lt;br /&gt;
    ! .PRINT      ! 351 !   -   ! ВЫДАЕТ НА ПЕЧАТЬ СТРОКУ СИМ- !&lt;br /&gt;
    !             !     !       ! ВОЛОВ КОИ-7                  !&lt;br /&gt;
    ! .PURGE      ! 374 !   3   ! ОСВОБОЖДАЕТ КАНАЛ            !&lt;br /&gt;
    ! .PVAL       ! 375 !   34  ! ИЗМЕНЯЕТ СОДЕРЖИМОЕ ЯЧЕЕК    !&lt;br /&gt;
    !             !     !       ! МОНИТОРА                     !&lt;br /&gt;
    ! .QELDF      !  -  !   -   ! ОПРЕДЕЛЯЕТ МНЕМОНИЧЕСКИЕ     !&lt;br /&gt;
    !             !     !       ! ОБОЗНАЧЕНИЯ ДЛЯ ЭЛЕМЕНТОВ    !&lt;br /&gt;
    !             !     !       ! ОЧЕРЕДИ ВВОДА-ВЫВОДА         !&lt;br /&gt;
    ! .QSET       ! 353 !   -   ! УВЕЛИЧИВАЕТ РАЗМЕР ОЧЕРЕДИ   !&lt;br /&gt;
    !             !     !       ! ВВОДА-ВЫВОДА ДЛЯ МОНИТОРА    !&lt;br /&gt;
    ! .RCTRLD     ! 355 !   -   ! ОБЕСПЕЧИВАЕТ ВЫВОД НА ТЕРМИ- !&lt;br /&gt;
    !             !     !       ! НАЛ                          !&lt;br /&gt;
    ! .READ       ! 375 !   10  ! ПЕРЕДЕТ ДАННЫЕ ПО УКАЗАННОМУ !&lt;br /&gt;
    !             !     !       ! КАНАЛУ В БУФЕР ПАМЯТИ И ВОЗ- !&lt;br /&gt;
    !             !     !       ! ВРАЩАЕТ УПРАВЛЕНИЕ ПРОГРАММЕ !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ, КАК ТОЛЬКО ЗА- !&lt;br /&gt;
    !             !     !       ! ПРОС НА ЧТЕНИЕ ДАННЫХ БУДЕТ  !&lt;br /&gt;
    !             !     !       ! ПОСТАВЛЕН В ОЧЕРЕДЬ ВВОДА-   !&lt;br /&gt;
    !             !     !       ! ВЫВОДА                       !&lt;br /&gt;
    ! .READC      ! 375 !   10  ! ПЕРЕДЕТ ДАННЫЕ ПО УКАЗАННОМУ !&lt;br /&gt;
    !             !     !       ! КАНАЛУ В БУФЕР ПАМЯТИ И ВОЗ- !&lt;br /&gt;
    !             !     !       ! ВРАЩАЕТ УПРАВЛЕНИЕ ПРОГРАММЕ !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ, КАК ТОЛЬКО ЗА- !&lt;br /&gt;
    !             !     !       ! ПРОС НА ЧТЕНИЕ ДАННЫХ БУДЕТ  !&lt;br /&gt;
    !             !     !       ! ПОСТАВЛЕН В ОЧЕРЕДЬ ВВОДА-   !&lt;br /&gt;
    !             !     !       ! ВЫВОДА. ПОСЛЕ ОКОНЧАНИЯ ЧТЕ- !&lt;br /&gt;
    !             !     !       ! НИЯ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ    !&lt;br /&gt;
    !             !     !       ! ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ      !&lt;br /&gt;
    ! .READW      ! 375 !   10  ! ПЕРЕДЕТ ДАННЫЕ ПО УКАЗАННОМУ !&lt;br /&gt;
    !             !     !       ! КАНАЛУ В БУФЕР ПАМЯТИ И ВОЗ- !&lt;br /&gt;
    !             !     !       ! ВРАЩАЕТ УПРАВЛЕНИЕ ПРОГРАММЕ !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ ПОСЛЕ ОКОНЧАНИЯ !&lt;br /&gt;
    !             !     !       ! ОПЕРАЦИИ                     !&lt;br /&gt;
    ! .RELEAS     ! 343 !   -   ! УДАЛЯЕТ ДРАЙВЕР УСТРОЙСТВА   !&lt;br /&gt;
    !             !     !       ! ИЗ ПАМЯТИ                    !&lt;br /&gt;
    ! .RENAME     ! 375 !   4   ! ПЕРЕИМЕНОВЫВАЕТ ФАЙЛ. НЕДО-  !&lt;br /&gt;
    !             !     !       ! ПУСТИМ В ОПЕРАЦИЯХ С МАГНИТ- !&lt;br /&gt;
    !             !     !       ! НОЙ ЛЕНТОЙ                   !&lt;br /&gt;
    ! .REOPEN     ! 375 !   6   ! ОБЕСПЕЧИВАЕТ ВОССТАНОВЛЕНИЕ  !&lt;br /&gt;
    !             !     !       ! ПАРАМЕТРОВ, КОТОРЫЕ ЗАПОМИНА-!&lt;br /&gt;
    !             !     !       ! ЛИСЬ ПО ЗАПРОСУ .SAVESTATUS  !&lt;br /&gt;
    !             !     !       ! И ПОВТОРНО ОТКРЫВАЕТ КАНАЛ   !&lt;br /&gt;
    !             !     !       ! ДЛЯ ВВОДА-ВЫВОДА             !&lt;br /&gt;
    ! .SAVESTATUS ! 375 !   5   ! ЗАПОМИНАЕТ ПАРАМЕТРЫ СОСТОЯ- !&lt;br /&gt;
    !             !     !       ! НИЯ ОТКРЫТОГО ФАЙЛА В ОПРЕДЕ-!&lt;br /&gt;
    !             !     !       ! ЛЕННОЙ ОБЛАСТИ ПАМЯТИ И ОСВО-!&lt;br /&gt;
    !             !     !       ! БОЖДАЕТ КАНАЛ                !&lt;br /&gt;
    ! .SCCA       ! 374 !   35  ! ПОЗВОЛЯЕТ БЛОКИРОВАТЬ ВЫПОЛ- !&lt;br /&gt;
    !             !     !       ! НЕНИЕ КОМАНДЫ СУ/С           !&lt;br /&gt;
    ! .SDTTM      ! 375 !   40  ! УСТАНАВЛИВАЕТ СИСТЕМНУЮ ДАТУ !&lt;br /&gt;
    !             !     !       ! И/ИЛИ ВРЕМЯ                  !&lt;br /&gt;
    ! .SERR       ! 374 !   4   ! БЛОКИРУЕТ ПРЕРЫВАНИЕ ПРОГРАМ-!&lt;br /&gt;
    !             !     !       ! МЫ ПРИ ОБНАРУЖЕНИИ МОНИТОРОМ !&lt;br /&gt;
    !             !     !       ! ОШИБКИ                       !&lt;br /&gt;
    ! .SETTOP     ! 354 !   -   ! ОПРЕДЕЛЯЕТ ВЕРХНЮЮ ГРАНИЦУ   !&lt;br /&gt;
    !             !     !       ! ПАМЯТИ ДЛЯ ВЫПОЛНЯЕМОГО ЗА-  !&lt;br /&gt;
    !             !     !       ! ДАНИЯ                        !&lt;br /&gt;
    ! .SFDAT      ! 375 !   42  ! ИЗМЕНЯЕТ ДАТУ СОЗДАНИЯ ФАЙЛА !&lt;br /&gt;
    ! .SFPA       ! 375 !   30  ! УСТАВАВЛИВАЕТ В ПРОГРАММЕ    !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ АДРЕС ПОДПРОГ-  !&lt;br /&gt;
    !             !     !       ! РАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ   !&lt;br /&gt;
    !             !     !       ! ОТ ПРОЦЕССОРА ПЛАВАЮЩЕЙ      !&lt;br /&gt;
    !             !     !       ! ЗАПЯТОЙ                      !&lt;br /&gt;
    ! .SPFUN      ! 375 !   32  ! ВЫПОЛНЯЕТ СПЕЦИАЛЬНЫЕ ФУНКЦИИ!&lt;br /&gt;
    !             !     !       ! ДЛЯ УСТРОЙСТВ                !&lt;br /&gt;
    ! .SRESET     ! 352 !   -   ! ВОССТАНАВЛИВАЕТ КАНАЛЫ ВВОДА-!&lt;br /&gt;
    !             !     !       ! ВЫВОДА И УДАЛЯЕТ ДРАЙВЕРЫ    !&lt;br /&gt;
    !             !     !       ! УСТРОЙСТВ ИЗ ПАМЯТИ          !&lt;br /&gt;
    ! .SYNCH      !  -  !   -   ! ОБЕСПЕЧИВАЕТ ВОЗМОЖНОСТЬ ВЫ- !&lt;br /&gt;
    !             !     !       ! ПОЛНЕНИЯ ПРОГРАММНЫХ ЗАПРОСОВ!&lt;br /&gt;
    !             !     !       ! В ПОДПРОГРАММЕ ОБРАБОТКИ     !&lt;br /&gt;
    !             !     !       ! ПРЕРЫВАНИЯ                   !&lt;br /&gt;
    ! .TIMIO      !  -  !   -   ! ПЛАНИРУЕТ ЗАПУСК ПОДПРОГРАММЫ!&lt;br /&gt;
    !             !     !       ! ЗАВЕРШЕНИЯ ЧЕРЕЗ ЗАДАННЫЙ    !&lt;br /&gt;
    !             !     !       ! ИНТЕРВАЛ ВРЕМЕНИ             !&lt;br /&gt;
    ! .TLOCK      ! 374 !    7  ! ОПРЕДЕЛЯЕТ, ИСПОЛЬЗУЕТСЯ ЛИ  !&lt;br /&gt;
    !             !     !       ! USR В ДАННЫЙ МОМЕНТ ДРУГИМ   !&lt;br /&gt;
    !             !     !       ! ЗАДАНИЕМ. ЕСЛИ USR НЕ ИСПОЛЬ-!&lt;br /&gt;
    !             !     !       ! ЗУЕТСЯ, ТО ВЫПОЛНЯЕТСЯ .LOCK !&lt;br /&gt;
    ! .TRPSET     ! 375 !    3  ! УСТАНАВЛИВАЕТ ОБРАБОТКУ ПРЕ- !&lt;br /&gt;
    !             !     !       ! РЫВАНИЙ ПО 4-ОМУ ИЛИ 10-ОМУ  !&lt;br /&gt;
    !             !     !       ! ВЕКТОРАМ В ПРОГРАММЕ ПОЛЬЗО- !&lt;br /&gt;
    !             !     !       ! ВАТЕЛЯ                       !&lt;br /&gt;
    ! .TTINR      ! 340 !   -   ! ПЕРЕДАЮТ ОДИН СИМВОЛ ИЗ БУ-  !&lt;br /&gt;
    ! .TTYIN      !     !       ! ФЕРА ТЕРМИНАЛА В РЕГИСТР R0  !&lt;br /&gt;
    ! .TTYOUT     ! 341 !   -   ! ПЕРЕДАЮТ ОДИН СИМВОЛ ИЗ РЕ-  !&lt;br /&gt;
    ! .TTOUTR     !     !       ! ГИСТРА R0 В БУФЕР ТЕРМИНАЛА  !&lt;br /&gt;
    ! .TWAIT      ! 375 !   24  ! ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ  !&lt;br /&gt;
    !             !     !       ! ЗАДАНИЯ НА УКАЗАННЫЙ ИНТЕРВАЛ!&lt;br /&gt;
    !             !     !       ! ВРЕМЕНИ                      !&lt;br /&gt;
    ! .UNLOCK     ! 347 !   -   ! ОСВОБОЖДАЕТ ПРОГРАММУ USR,   !&lt;br /&gt;
    !             !     !       ! ЕСЛИ РАНЕЕ БЫЛ ВЫПОЛНЕН ЗАП- !&lt;br /&gt;
    !             !     !       ! РОС .LOCK И, ЕСЛИ НЕОБХОДИМО,!&lt;br /&gt;
    !             !     !       ! ВНОВЬ ЗАГРУЖАЕТ ПРОГРАММУ    !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАТЕЛЯ                 !&lt;br /&gt;
    ! .WAIT       ! 374 !   0   ! ОЖИДАЕТ ЗАВЕРШЕНИЯ ОПЕРАЦИИ  !&lt;br /&gt;
    !             !     !       ! ВВОДА-ВЫВОДА НА УКАЗАННОМ    !&lt;br /&gt;
    !             !     !       ! КАНАЛЕ                       !&lt;br /&gt;
    ! .WRITC      ! 375 !   11  ! ПЕРЕДАЕТ ДАННЫЕ ПО УКАЗАННО- !&lt;br /&gt;
    !             !     !       ! МУ КАНАЛУ НА УСТРОЙСТВО И    !&lt;br /&gt;
    !             !     !       ! ВОЗВРАЩАЕТ УПРАВЛЕНИЕ ПРОГ-  !&lt;br /&gt;
    !             !     !       ! РАММЕ ПОЛЬЗОВАТЕЛЯ КАК ТОЛЬКО!&lt;br /&gt;
    !             !     !       ! ЗАПРОС НА ПЕРЕДАЧУ ДАННЫХ БУ-!&lt;br /&gt;
    !             !     !       ! ДЕТ ПОСТАВЛЕН В ОЧЕРЕДЬ      !&lt;br /&gt;
    !             !     !       ! ВВОДА-ВЫВОДА. ПОСЛЕ ОКОНЧАНИЯ!&lt;br /&gt;
    !             !     !       ! ЗАПИСИ, УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ!&lt;br /&gt;
    !             !     !       ! ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ      !&lt;br /&gt;
    ! .WRITE      ! 375 !   11  ! ПЕРЕДАЕТ ДАННЫЕ ПО УКАЗАННО- !&lt;br /&gt;
    !             !     !       ! МУ КАНАЛУ НА УСТРОЙСТВО И    !&lt;br /&gt;
    !             !     !       ! ВОЗВРАЩАЕТ УПРАВЛЕНИЕ ПРОГ-  !&lt;br /&gt;
    !             !     !       ! РАММЕ ПОЛЬЗОВАТЕЛЯ КАК ТОЛЬКО!&lt;br /&gt;
    !             !     !       ! ЗАПРОС НА ПЕРЕДАЧУ ДАННЫХ БУ-!&lt;br /&gt;
    !             !     !       ! ДЕТ ПОСТАВЛЕН В ОЧЕРЕДЬ      !&lt;br /&gt;
    !             !     !       ! ВВОДА-ВЫВОДА                 !&lt;br /&gt;
    ! .WRITW      ! 375 !   11  ! ПЕРЕДАЕТ ДАННЫЕ ПО УКАЗАННО- !&lt;br /&gt;
    !             !     !       ! МУ КАНАЛУ НА УСТРОЙСТВО И    !&lt;br /&gt;
    !             !     !       ! ВОЗВРАЩАЕТ УПРАВЛЕНИЕ ПРОГ-  !&lt;br /&gt;
    !             !     !       ! РАММЕ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ     !&lt;br /&gt;
    !             !     !       ! ОКОНЧАНИЯ ПЕРЕДАЧИ ДАННЫХ    !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                                      ТАБЛИЦА 5&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! ПРОГРАММНЫЙ ! КОД ! ФУНК- !                              !&lt;br /&gt;
    !   ЗАПРОС    ! ЕМТ ! ЦИОН. !         НАЗНАЧЕНИЕ           !&lt;br /&gt;
    !             !     ! КОД   !                              !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! .CHCOPY     ! 375 !  13   ! ОТКРЫВАЕТ КАНАЛ ДЛЯ ВВОДА И  !&lt;br /&gt;
    !             !     !       ! ЛОГИЧЕСКИ СВЯЗЫВАЕТ ЕГО С    !&lt;br /&gt;
    !             !     !       ! ОТКРЫТЫМ КАНАЛОМ ДРУГОГО     !&lt;br /&gt;
    !             !     !       ! ЗАДАНИЯ                      !&lt;br /&gt;
    ! .CNTXSW     ! 375 !   33  ! ОПРЕДЕЛЯЕТ ЯЧЕЙКИ ПАМЯТИ ДЛЯ !&lt;br /&gt;
    !             !     !       ! ОПЕРАЦИИ ПЕРЕКЛЮЧЕНИЯ  КОН-  !&lt;br /&gt;
    !             !     !       ! ТЕКСТА                       !&lt;br /&gt;
    ! .CRAW(XM)   ! 374 !   36  ! СОЗДАЕТ ВИРТУАЛЬНОЕ АДРЕСНОЕ !&lt;br /&gt;
    !             !     !       ! ОКНО                         !&lt;br /&gt;
    ! .CRRG(XM)   ! 374 !   36  ! СОЗДАЕТ ДИНАМИЧЕСКУЮ ОБЛАСТЬ !&lt;br /&gt;
    !             !     !       ! ФИЗИЧЕСКОЙ ПАМЯТИ            !&lt;br /&gt;
    ! .DEVICE     ! 375 !   14  ! ПОЗВОЛЯЕТ ЗАПРЕТИТЬ ПРЕРЫВА- !&lt;br /&gt;
    !             !     !       ! НИЕ ОТ УСТРОЙСТВА В РЕЖИМЕ   !&lt;br /&gt;
    !             !     !       ! FB ПОСЛЕ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ!&lt;br /&gt;
    !             !     !       ! ПРОГРАММЫ                    !&lt;br /&gt;
    ! .ELAW(XM)   ! 374 !   36  ! АННУЛИРУЕТ ВИРТУАЛЬНОЕ АДРЕС-!&lt;br /&gt;
    !             !     !       ! НОЕ ОКНО                     !&lt;br /&gt;
    ! .ELRG(XM)   ! 374 !   36  ! АННУЛИРУЕТ ДИНАМИЧЕСКУЮ ОБ-  !&lt;br /&gt;
    !             !     !       ! ЛАСТЬ ФИЗИЧЕСКОЙ ПАМЯТИ И    !&lt;br /&gt;
    !             !     !       ! ДЕЛАЕТ ЕЕ СВОБОДНОЙ ДЛЯ ИС-  !&lt;br /&gt;
    !             !     !       ! ПОЛЬЗОВАНИЯ ДРУГИМ ЗАДАНИЕМ  !&lt;br /&gt;
    ! .GMCX(XM)   ! 374 !   36  ! ПЕРЕСЫЛАЕТ ПРОГРАММЕ ИНФОР-  !&lt;br /&gt;
    !             !     !       ! МАЦИЮ О СОСТОЯНИИ ОПРЕДЕЛЕН- !&lt;br /&gt;
    !             !     !       ! НОГО ОКНА                    !&lt;br /&gt;
    ! .MAP(XM)    ! 374 !   36  ! ОТОБРАЖАЕТ ПРЕДВАРИТЕЛЬНО    !&lt;br /&gt;
    !             !     !       ! СОЗДАННОЕ ОКНО ВИРТУАЛЬНОГО  !&lt;br /&gt;
    !             !     !       ! АДРЕСА                       !&lt;br /&gt;
    ! .MWAIT      ! 374 !   11  ! ПЕРЕВОДИТ ТЕКУЩЕЕ ЗАДАНИЕ В  !&lt;br /&gt;
    !             !     !       ! СОСТОЯНИЕ ОЖИДАНИЯ ДО ЗАВЕР- !&lt;br /&gt;
    !             !     !       ! ШЕНИЯ ПЕРЕДАЧИ ДАННЫХ        !&lt;br /&gt;
    ! .PROTECT    ! 375 !   31  ! ЗАКРЕПЛЯЕТ ОДИН ИЗ ВЕКТОРОВ  !&lt;br /&gt;
    !             !     !       ! (АДРЕСА ОТ 0 ДО 476) ЗА ДАН- !&lt;br /&gt;
    !             !     !       ! НЫМ ЗАДАНИЕМ                 !&lt;br /&gt;
    ! .RCVD       ! 375 !   26  ! ОСУЩЕСТВЛЯЮТ ПРИЕМ СООБЩЕНИЙ !&lt;br /&gt;
    ! .RCVDC      !     !       ! ИЛИ ДАННЫХ, ПЕРЕДАВАЕМЫХ ДРУ-!&lt;br /&gt;
    ! .RCVDW      !     !       ! ГИМ ЗАДАНИЕМ В РЕЖИМЕ FB.    !&lt;br /&gt;
    !             !     !       ! АНАЛОГИЧНЫ ЗАПРОСАМ .READ,   !&lt;br /&gt;
    !             !     !       ! .READC,.READW                !&lt;br /&gt;
    ! .RDBBK(XM)  !  -  !   -   ! СОЗДАЕТ БЛОК ОПРЕДЕЛЕНИЯ     !&lt;br /&gt;
    !             !     !       ! ОБЛАСТИ                      !&lt;br /&gt;
    ! .RDBDF(XM)  ! -   !   -   ! ОПРЕДЕЛЯЕТ МНЕМОНИЧЕСКИЕ     !&lt;br /&gt;
    !             !     !       ! ОБОЗНАЧЕНИЯ ДЛЯ БЛОКА ОПРЕДЕ-!&lt;br /&gt;
    !             !     !       ! НИЯ ОБЛАСТИ                  !&lt;br /&gt;
    ! .RSUM       ! 374 !   2   ! ВОЗОБНОВЛЯЕТ ВЫПОЛНЕНИЕ ЗАДА-!&lt;br /&gt;
    !             !     !       ! НИЯ, КОТОРОЕ БЫЛО ПРЕРВАНО   !&lt;br /&gt;
    !             !     !       ! ПО ЗАПРОСУ .SPND             !&lt;br /&gt;
    ! .SDAT       ! 375 !   25  ! ОСУЩЕСТВЛЯЮТ ПЕРЕДАЧУ СООБЩЕ-!&lt;br /&gt;
    ! .SDATC      !     !       ! НИЙ ИЛИ ДАННЫХ ДРУГОЙ        !&lt;br /&gt;
    ! .SDATW      !     !       ! ПРОГРАММЕ. АНАЛОГИЧНЫ ЗАПРО- !&lt;br /&gt;
    !             !     !       ! САМ .WRITE,.WRITC,.WRITW     !&lt;br /&gt;
    ! .SPCPS      ! 375 !   41  ! ПОЗВОЛЯЕТ ИЗМЕНИТЬ АДРЕС     !&lt;br /&gt;
    !             !     !       ! ВОЗВРАТА ИЗ ПРЕРЫВАНИЯ В ПОД-!&lt;br /&gt;
    !             !     !       ! ПРОГРАММЕ ЗАВЕРШЕНИЯ         !&lt;br /&gt;
    ! .SPND       ! 374 !   1   ! ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ  !&lt;br /&gt;
    !             !     !       ! ЗАДАНИЯ                      !&lt;br /&gt;
    ! .UNMAP(XM)  ! 374 !   36  ! ОТМЕНЯЕТ ДЕЙСТВИЕ ЗАПРОСА    !&lt;br /&gt;
    !             !     !       ! .MAP                         !&lt;br /&gt;
    ! .UNPROTECT  ! 374 !   31  ! ОТМЕНЯЕТ ДЕЙСТВИЕ ЗАПРОСА    !&lt;br /&gt;
    !             !     !       ! .PROTECT                     !&lt;br /&gt;
    ! .WDBBK(XM)  !  -  !   -   ! СОЗДАЕТ БЛОК ОПРЕДЕЛЕНИЯ ОКНА!&lt;br /&gt;
    ! .WDBDF(XM)  !  -  !   -   ! ОПРЕДЕЛЯЕТ МНЕМОНИЧЕСКИЕ     !&lt;br /&gt;
    !             !     !       ! ОБОЗНАЧЕНИЯ ДЛЯ БЛОКА ОПРЕДЕ-!&lt;br /&gt;
    !             !     !       ! ЛЕНИЯ ОКНА                   !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        5.1. ПРОГРАММНЫЕ ЗАПРОСЫ ДЛЯ ОПЕРАЦИЙ С ФАЙЛАМИ&lt;br /&gt;
        5.1.1. .CHCOPY (РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .CHCOPY ОТКРЫВАЕТ  КАНАЛ  ДЛЯ  ВВОДА  ДАННЫХ  И&lt;br /&gt;
   ЛОГИЧЕСКИ СВЯЗЫВАЕТ ЕГО С КАНАЛОМ ДРУГОГО ЗАДАНИЯ  ОТКРЫТЫМ&lt;br /&gt;
   ДЛЯ ВВОДА ИЛИ ВЫВОДА. ЗАПРОС МОЖЕТ ИСПОЛЬЗОВАТЬСЯ ОСНОВНОЙ,&lt;br /&gt;
   ФОНОВОЙ ПРОГРАММАМИ, А  ТАКЖЕ  СИСТЕМНЫМ  ЗАДАНИЕМ.  ЗАПРОС&lt;br /&gt;
   .CHCOPY ДОПУСТИМ ТОЛЬКО ДЛЯ ФАЙЛОВ,  КОТОРЫЕ  НАХОДЯТСЯ  НА&lt;br /&gt;
   ДИСКАХ; ОДНАКО СИСТЕМА НЕ ОБНАРУЖИТ  ОШИБКИ,  ЕСЛИ  ИСПОЛЬ-&lt;br /&gt;
   ЗУЕТСЯ ДРУГОЕ УСТРОЙСТВО. ДЛЯ ТОГО,  ЧТОБЫ  ЗАКРЫТЬ  КАНАЛ,&lt;br /&gt;
   ОТКРЫТЫЙ ПО .CHCOPY НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ЗАПРОСЫ  .CLOSE&lt;br /&gt;
   ИЛИ .PURGE.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CHCOPY AREA,CHAN,OCHAN[,JOBBLK]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        CHAN - НОМЕР КАНАЛА, ИСПОЛЬЗУЕМОГО ЗАДАНИЕМ ДЛЯ ЧТЕНИЯ&lt;br /&gt;
   ДАННЫХ;&lt;br /&gt;
        OCHAN - НОМЕР КАНАЛА ДРУГОГО ЗАДАНИЯ;&lt;br /&gt;
        JOBBLK - АДРЕС БЛОКА ИЗ ТРЕХ СЛОВ,  СОДЕРЖАЩЕГО  ЛОГИ-&lt;br /&gt;
   ЧЕСКОЕ ИМЯ ЗАДАНИЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,13&lt;br /&gt;
                  .WORD   OCHAN&lt;br /&gt;
                  .WORD   JOBBLK&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
  ;ПРИМЕР СОСТОИТ ИЗ ДВУХ ПРОГРАММ. ПЕРВАЯ ИЗ ПРОГРАММ&lt;br /&gt;
  ;(ОСНОВНАЯ) ВЫПОЛНЯЕТ ПЕРЕДАЧУ ДАННЫХ ВО ВТОРУЮ -&lt;br /&gt;
  ;ФОНОВУЮ ПРОГРАММУ.&lt;br /&gt;
          .TITLE  CHCOPF.MAC&lt;br /&gt;
  ;ОСНОВНАЯ ПРОГРАММА&lt;br /&gt;
          .MCALL  .ENTER,.PRINT,.SDATW,.RCVDW,.CLOSE,.WRITW&lt;br /&gt;
	  .MCALL  .EXIT &lt;br /&gt;
  STARTF: MOV     #AREA,R5&lt;br /&gt;
          .ENTER  R5,#0,#FILE,#5          ;СОЗДАТЬ ФАЙЛ&lt;br /&gt;
          .WRITW  R5,#0,#RECRD,#256.,#4   ;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          BCS     ENTERR&lt;br /&gt;
          .SDATW  R5,#BUFR,#2             ;ПЕРЕДАТЬ СООБШЕНИЕ&lt;br /&gt;
          ;       .&lt;br /&gt;
          .RCVDW  R5,#BUFR,#1&lt;br /&gt;
          .CLOSE  #0&lt;br /&gt;
          .PRINT  #FEXIT&lt;br /&gt;
          .EXIT&lt;br /&gt;
  ENTERR: .PRINT  #ERMSG&lt;br /&gt;
          .EXIT&lt;br /&gt;
  FILE:   .RAD50  /DK QUFILE/&lt;br /&gt;
          .RAD50  /TMP/&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  BUFR:   .WORD   0                       ;НОМЕР КАНАЛА&lt;br /&gt;
          .WORD   4                       ;НОМЕР БЛОКА&lt;br /&gt;
  RECRD:  .BLKW   256.&lt;br /&gt;
  ERMSG:  .ASCIZ  /ОШИБКА .ENTER/&lt;br /&gt;
  FEXIT:  .ASCIZ  /КОНЕЦ ОСНОВНОЙ ПРОГРАММЫ/&lt;br /&gt;
          .END    STARTF&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  CHCOPB.MAC&lt;br /&gt;
  ;ФОНОВАЯ ПРОГРАММА&lt;br /&gt;
          .MCALL  .CHCOPY,.RCVDW,.READW,.EXIT,.PRINT,.SDATW&lt;br /&gt;
  STARTB: MOV     #AREA,R5&lt;br /&gt;
          .RCVDW  R5,#MSG,#2      ;ПОЛУЧИТЬ СООБЩЕНИЕ&lt;br /&gt;
          BCS     1$&lt;br /&gt;
          .CHCOPY R5,#0,MSG+2     ;НОМЕР КАНАЛА ИЗ MSG+2&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .READW  R5,#0,#BUFF,#256.,MSG+4 ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCS     3$&lt;br /&gt;
          ;       .&lt;br /&gt;
          .SDATW  R5,#MSG,#1&lt;br /&gt;
          .PRINT  #BEXIT&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     MOV     #NOJOB,R0&lt;br /&gt;
          BR      4$&lt;br /&gt;
  2$:     MOV     #NOCH,R0&lt;br /&gt;
          BR      4$&lt;br /&gt;
  3$:     MOV     #RDERR,R0&lt;br /&gt;
  4$:     .PRINT&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  MSG:    .BLKW   3               ;БУФЕР ДЛЯ СООБЩЕНИЯ&lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  BEXIT:  .ASCIZ  /КОНЕЦ ФОНОВОЙ ПРОГРАММЫ/&lt;br /&gt;
  NOJOB:  .ASCIZ  /НЕТ ОСНОВНОГО ЗАДАНИЯ/&lt;br /&gt;
  NOCH:   .ASCIZ  /НЕ ОТКРЫТ КАНАЛ ДЛЯ ОСНОВНОГО ЗАДАНИЯ/&lt;br /&gt;
  RDERR:  .ASCIZ  /ОШИБКА ЧТЕНИЯ/&lt;br /&gt;
          .END    STARTB&lt;br /&gt;
 &lt;br /&gt;
        5.1.2. .CLOSE&lt;br /&gt;
        ЗАПРОС .CLOSE ЗАВЕРШАЕТ ДЕЙСТВИЕ НА УКАЗАННОМ КАНАЛЕ И&lt;br /&gt;
   ОСВОБОЖДАЕТ ЕГО ДЛЯ ИСПОЛЬЗОВАНИЯ В  ДРУГОЙ  ОПЕРАЦИИ.  ДЛЯ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ЗАПРОСА ДРАЙВЕР СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА ДОЛ-&lt;br /&gt;
   ЖЕН НАХОДИТЬСЯ В ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ&lt;br /&gt;
        .CLOSE CHAN&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,6&lt;br /&gt;
        ДЛЯ ТОГО, ЧТОБЫ СДЕЛАТЬ ФАЙЛ ПОСТОЯННЫМ НА ТОМЕ  НЕОБ-&lt;br /&gt;
   ХОДИМО НА  СООТВЕТСТВУЮЩЕМ  КАНАЛЕ,  ОТКРЫТОМ  ДЛЯ  ВЫВОДА,&lt;br /&gt;
   ВЫПОЛНИТЬ ЗАПРОС .CLOSE. ЗАПРОС .CLOSE НА НЕОТКРЫТОМ КАНАЛЕ&lt;br /&gt;
   ИГНОРИРУЕТСЯ.&lt;br /&gt;
        .CLOSE, ВЫПОЛНЯЕМЫЙ НА КАНАЛЕ, КОТОРЫЙ БЫЛ  ОТКРЫТ  ПО&lt;br /&gt;
   .ENTER ВЫЗЫВАЕТ КОРРЕКТИРОВКУ  СПРАВОЧНИКА  УСТРОЙСТВА  ДЛЯ&lt;br /&gt;
   ОПРЕДЕЛЕНИЯ ФАЙЛА КАК ПОСТОЯННОГО НА ЭТОМ УСТРОЙСТВЕ.  ЕСЛИ&lt;br /&gt;
   ФАЙЛ ОТКРЫТ ПО .LOOKUP,  ТО  КОРРЕКТИРОВКИ  СПРАВОЧНИКА  НЕ&lt;br /&gt;
   ПРОИСХОДИТ.&lt;br /&gt;
        ЕСЛИ УСТРОЙСТВО, СВЯЗАННОЕ С  УКАЗАННЫМ  КАНАЛОМ,  УЖЕ&lt;br /&gt;
   СОДЕРЖИТ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ И ТИПОМ, ЧТО И ВНОВЬ  СОЗДАН-&lt;br /&gt;
   НЫЙ ФАЙЛ, ТО СТАРАЯ КОПИЯ ФАЙЛА СТИРАЕТСЯ, КОГДА НОВЫЙ ФАЙЛ&lt;br /&gt;
   СТАНОВИТСЯ ПОСТОЯННЫМ.&lt;br /&gt;
        ЕСЛИ НА УСТРОЙСТВЕ УЖЕ СУЩЕСТВУЕТ  ЗАЩИЩЕННЫЙ  ФАЙЛ  С&lt;br /&gt;
   ТЕМ ЖЕ ИМЕНЕМ, ТО ТЕКУЩИЙ ФАЙЛ ЗАКРЫВАЕТСЯ,  НО  ПОЯВЛЯЮТСЯ&lt;br /&gt;
   ДВА ФАЙЛА С ОДИНАКОВЫМИ ИМЕНАМИ.&lt;br /&gt;
        ПРИМЕЧАНИЕ. МОНИТОР ИНФОРМИРУЕТ ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
   ОБ ОШИБКЕ ПРИ ВЫПОЛНЕНИИ ЗАПРОСА .CLOSE ТОЛЬКО В  ТОМ  СЛУ-&lt;br /&gt;
   ЧАЕ, ЕСЛИ ДО ЭТОГО БЫЛ ВЫПОЛНЕН ЗАПРОС .SERR.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .CLOSE  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CSISPC.&lt;br /&gt;
 &lt;br /&gt;
        5.1.3. .DELETE&lt;br /&gt;
        ЗАПРОС .DELETE УДАЛЯЕТ ФАЙЛ ИЗ СПРАВОЧНИКА  УКАЗАННОГО&lt;br /&gt;
   УСТРОЙСТВА. .DELETE НЕДОПУСТИМ ДЛЯ МАГНИТНЫХ ЛЕНТ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .DELETE AREA,CHAN,DBLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        DBLK - АДРЕС БЛОКА УСТРОЙСТВА, СОДЕРЖАЩЕГО  СПЕЦИФИКА-&lt;br /&gt;
   ЦИЮ УДАЛЯЕМОГО ФАЙЛА.&lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
        1. ОБРАЩЕНИЕ К ОТКРЫТОМУ КАНАЛУ ПРИВОДИТ К ОШИБКЕ;&lt;br /&gt;
        2. УДАЛЕННЫЙ ФАЙЛ В  ЛИСТИНГЕ  СПРАВОЧНИКА  УСТРОЙСТВА&lt;br /&gt;
   БУДЕТ ОПИСАН КАК НЕИСПОЛЬЗУЕМАЯ ОБЛАСТЬ  (UNUSED)  ТОГО  ЖЕ&lt;br /&gt;
   РАЗМЕРА;&lt;br /&gt;
        3. ЗАПРОС .DELETE НА УСТРОЙСТВАХ НЕФАЙЛОВОЙ  СТРУКТУРЫ&lt;br /&gt;
   ИГНОРИРУЕТСЯ;&lt;br /&gt;
        4. ПРИ ВЫПОЛНЕНИИ .DELETE  НЕОБХОДИМО,  ЧТОБЫ  ДРАЙВЕР&lt;br /&gt;
   СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА НАХОДИЛСЯ В ПАМЯТИ;&lt;br /&gt;
        5. ПОСЛЕ ВЫПОЛНЕНИЯ .DELETE, УКАЗАННЫЙ КАНАЛ  ОСВОБОЖ-&lt;br /&gt;
   ДАЕТСЯ ДЛЯ ДАЛЬНЕЙШЕГО ИСПОЛЬЗОВАНИЯ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .DELETE СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CSISPC.&lt;br /&gt;
 &lt;br /&gt;
        5.1.4. .ENTER&lt;br /&gt;
        ЗАПРОС .ENTER РЕЗЕРВИРУЕТ ОБЛАСТЬ НА ОПРЕДЕЛЕННОМ УСТ-&lt;br /&gt;
   РОЙСТВЕ И ЗАНОСИТ В СПРАВОЧНИК УСТРОЙСТВА ЗАПИСЬ О СОЗДАНИИ&lt;br /&gt;
   ВРЕМЕННОГО ФАЙЛА. ПО ЗАПРОСУ .ENTER МОНИТОР  ИДЕНТИФИЦИРУЕТ&lt;br /&gt;
   НОМЕР КАНАЛА, ОПРЕДЕЛЕННЫЙ В ЗАПРОСЕ, С  УКАЗАННЫМ  ФАЙЛОМ.&lt;br /&gt;
   ЗАМЕТИМ, ЧТО ЕСЛИ ПРОГРАММА ИМЕЕТ ОВЕРЛЕЙНУЮ СТРУКТУРУ,  ТО&lt;br /&gt;
   15-Й КАНАЛ ИСПОЛЬЗУЕТСЯ ОВЕРЛЕЙНЫМ ДРАЙВЕРОМ  И  НЕ  ДОЛЖЕН&lt;br /&gt;
   МОДИФИЦИРОВАТЬСЯ ПРОГРАММОЙ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .ENTER AREA,CHAN,DBLK,LEN[,SEQN]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 4-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        DBLK - АДРЕС БЛОКА УСТРОЙСТВА, В КОТОРОМ ОПИСАН СОЗДА-&lt;br /&gt;
   ВАЕМЫЙ ФАЙЛ;&lt;br /&gt;
        LEN - РАЗМЕР ФАЙЛА; (СМ.ТАБЛ.6);&lt;br /&gt;
        SEQN - ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР ФАЙЛА ДЛЯ МАГНИТНОЙ ЛЕН-&lt;br /&gt;
   ТЫ; ЗНАЧЕНИЯ АРГУМЕНТА SEQN И СООТВЕТСТВУЮЩИЕ  ИМ  ДЕЙСТВИЯ&lt;br /&gt;
   МОНИТОРА ОПИСАНЫ В ТАБЛ.7.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,2&lt;br /&gt;
                  .WORD   DBLK&lt;br /&gt;
                  .WORD   LEN&lt;br /&gt;
                  .WORD   SEQN&lt;br /&gt;
 &lt;br /&gt;
                                                      ТАБЛИЦА 6&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! ЗНАЧЕНИЕ    !               ДЕЙСТВИЕ МОНИТОРА            !&lt;br /&gt;
    ! АРГУМЕНТА   !                                            !&lt;br /&gt;
    !-----------------------------------------------------------&lt;br /&gt;
    !     0       ! ОТВОДИТ ДЛЯ ФАЙЛА ПОЛОВИНУ НАИБОЛЬШЕЙ      !&lt;br /&gt;
    !             ! СВОБОДНОЙ ОБЛАСТИ ИЛИ ПОЛНОСТЬЮ ВТОРУЮ ПО  !&lt;br /&gt;
    !             ! ВЕЛИЧИНЕ СВОБОДНУЮ ОБЛАСТЬ НА ТОМЕ, В ЗА-  !&lt;br /&gt;
    !             ! ВИСИМОСТИ ОТ ТОГО, КАКАЯ ИЗ НИХ БОЛЬШЕ     !&lt;br /&gt;
    !     М       ! ОТВОДИТ ДЛЯ ФАЙЛА М БЛОКОВ                 !&lt;br /&gt;
    !     -1      ! ОТВОДИТ ДЛЯ ФАЙЛА НАИБОЛЬШУЮ СВОБОДНУЮ ОБ- !&lt;br /&gt;
    !             ! ЛАСТЬ НА ТОМЕ                              !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                                      ТАБЛИЦА 7&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! ЗНАЧЕНИЕ    !             ДЕЙСТВИЕ МОНИТОРА              !&lt;br /&gt;
    ! АРГУМЕНТА   !                                            !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    !     0       ! ПЕРЕМАТЫВАЕТ МАГНИТНУЮ ЛЕНТУ И ПРОИЗВОДИТ  !&lt;br /&gt;
    !             ! ПОИСК МЕТКИ LEOT (ЛОГИЧЕСКИЙ КОНЕЦ ЛЕНТЫ)  !&lt;br /&gt;
    !     N       ! УСТАНАВЛИВАЕТ МАГНИТНУЮ ЛЕНТУ В ПОЛОЖЕНИЕ, !&lt;br /&gt;
    !             ! СООТВЕТСТВУЮЩЕЕ ФАЙЛУ С ПОСЛЕДОВАТЕЛЬНЫМ   !&lt;br /&gt;
    !             ! НОМЕРОМ N                                  !&lt;br /&gt;
    !     -1      ! ПРОИЗВОДИТ ПОИСК LEOT                      !&lt;br /&gt;
    !     -2      ! ПЕРЕМАТЫВАЕТ МАГНИТНУЮ ЛЕНТУ И ПРОИЗВОДИТ  !&lt;br /&gt;
    !             ! ПОИСК LEOT ИЛИ ФАЙЛА С ТЕМ ЖЕ ИМЕНЕМ, ЧТО  !&lt;br /&gt;
    !             ! И ВНОВЬ СОЗДАВАЕМЫЙ ФАЙЛ                   !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ФАЙЛ, СОЗДАННЫЙ ПО .ENTER НЕ  ЯВЛЯЕТСЯ  ПОСТОЯННЫМ  ДО&lt;br /&gt;
   ТЕХ ПОР, ПОКА НА СООТВЕТСТВУЮЩЕМ КАНАЛЕ НЕ  БУДЕТ  ВЫПОЛНЕН&lt;br /&gt;
   ЗАПРОС .CLOSE. ЗАПРОСЫ .LOOKUP  И  .SAVESTATUUS  НЕДЕЙСТВИ-&lt;br /&gt;
   ТЕЛЬНЫ ДЛЯ ФАЙЛОВ, КОТОРЫЕ НЕ ЯВЛЯЮТСЯ ПОСТОЯННЫМИ.  ОДНАКО&lt;br /&gt;
   ЧТЕНИЕ ТАКОГО ФАЙЛА ВОЗМОЖНО ПОСРЕДСТВОМ ОБРАЩЕНИЯ К НОМЕРУ&lt;br /&gt;
   СООТВЕТСТВУЮЩЕГО  БЛОКА.  ЕСЛИ  НА  СООТВЕТСТВУЮЩЕМ  КАНАЛЕ&lt;br /&gt;
   ВЫПОЛНЯЕТСЯ .CLOSE, ТО ЛЮБОЙ СУЩЕСТВУЮЩИЙ НА ТОМЕ  ПОСТОЯН-&lt;br /&gt;
   НЫЙ, НЕЗАЩИЩЕННЫЙ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ И ТИПОМ СТИРАЕТСЯ  И&lt;br /&gt;
   НОВЫЙ ФАЙЛ СТАНОВИТСЯ ПОСТОЯННЫМ. ХОТЯ  ОБЛАСТЬ  ДЛЯ  ФАЙЛА&lt;br /&gt;
   РЕЗЕРВИРУЕТСЯ ПРИ ВЫПОЛНЕНИИ .ENTER, ФАКТИЧЕСКАЯ ДЛИНА ФАЙ-&lt;br /&gt;
   ЛА ОПРЕДЕЛЯЕТСЯ ПОСЛЕ ВЫПОЛНЕНИЯ .CLOSE.&lt;br /&gt;
        КАЖДОЕ ЗАДАНИЕ МОЖЕТ ИМЕТЬ ДО 255 ОДНОВРЕМЕННО  ОТКРЫ-&lt;br /&gt;
   ТЫХ ФАЙЛОВ. ЕСЛИ ТРЕБУЕТСЯ, ВСЕ 255 ФАЙЛОВ МОГУТ БЫТЬ  ОТК-&lt;br /&gt;
   РЫТЫ ДЛЯ ВЫВОДА ПОСРЕДСТВОМ .ENTER. ДЛЯ  ВЫПОЛНЕНИЯ  .ENTER&lt;br /&gt;
   НЕОБХОДИМО, ЧТОБЫ ДРАЙВЕР СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА БЫЛ В&lt;br /&gt;
   ПАМЯТИ. ПОСЛЕ ВЫПОЛНЕНИЯ .ENTER РЕГИСТР R0 БУДЕТ  СОДЕРЖАТЬ&lt;br /&gt;
   РАЗМЕР ОБЛАСТИ ТОМА, ОТВЕДЕННЫЙ ДЛЯ СОЗДАНИЯ НОВОГО ФАЙЛА.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  ENTER.MAC&lt;br /&gt;
  ;В СЛЕДУЮЩЕМ ПРИМЕРЕ С ИСПОЛЬЗОВАНИЕМ ЗАПРОСА .ENTER&lt;br /&gt;
  ;ВЫПОЛНЯЕТСЯ КОПИРОВАНИЕ ФАЙЛА ENTER.SAV НА УСТРОЙСТВО&lt;br /&gt;
  ;DK:.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .LOOKUP,.ENTER,.WRITW,.READW,.CLOSE&lt;br /&gt;
          .MCALL  .PRINT,.EXIT&lt;br /&gt;
          ERRBYT = 52&lt;br /&gt;
  START:  .LOOKUP #AREA,#0,#ENTER         ;СВЯЗАТЬ 0-ОЙ КАНАЛ&lt;br /&gt;
                                          ;С ФАЙЛОМ ENTER.SAV&lt;br /&gt;
          BCS     5$&lt;br /&gt;
          MOV     R0,R3                   ;РАЗМЕР ФАЙЛА В R3&lt;br /&gt;
          .ENTER  #AREA,#1,#NEWFIL,R3     ;ОТКРЫТЬ НОВЫЙ ФАЙЛ&lt;br /&gt;
          BCS     6$&lt;br /&gt;
          CLR     BLK&lt;br /&gt;
  1$:     .READW  #AREA,#0,#BUFFR,#256.,BLK ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCC     2$&lt;br /&gt;
          TSTB    @#ERRBYT                ;КОНЕЦ ФАЙЛА?&lt;br /&gt;
          BEQ     3$                      ;ДА&lt;br /&gt;
          MOV     #RERR,R0&lt;br /&gt;
          BR      7$&lt;br /&gt;
  2$:     .WRITW  #AREA,#1,#BUFFR,#256.,BLK ;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          INC     BLK&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          MOV     #WERR,R0&lt;br /&gt;
          BR      7$&lt;br /&gt;
  3$:     .CLOSE  #1&lt;br /&gt;
          MOV     #DONE,R0&lt;br /&gt;
          BR      7$&lt;br /&gt;
  5$:     MOV     #NOFIL,R0&lt;br /&gt;
          BR      7$&lt;br /&gt;
  6$:     MOV     #NOENT,R0&lt;br /&gt;
  7$:     .PRINT&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .WORD   0&lt;br /&gt;
  BLK:    .WORD   0,0,0,0&lt;br /&gt;
  BUFFR:  .BLKW   256.&lt;br /&gt;
  ENTER:  .RAD50  /DK/&lt;br /&gt;
          .RAD50  /ENT/&lt;br /&gt;
          .RAD50  /ER/&lt;br /&gt;
          .RAD50  /SAV/&lt;br /&gt;
  NEWFIL: .RAD50  /DK/&lt;br /&gt;
          .RAD50  /NEWENT/&lt;br /&gt;
          .RAD50  /SAV/&lt;br /&gt;
 &lt;br /&gt;
  NOFIL:  .ASCIZ  /ФАЙЛ НЕ НАЙДЕН/&lt;br /&gt;
  NOENT:  .ASCIZ  /ОШИБКА .ENTER  /&lt;br /&gt;
  WERR:   .ASCIZ  /ОШИБКА .WRITW /&lt;br /&gt;
  RERR:   .ASCIZ  / ОШИБКА .READW /&lt;br /&gt;
  DONE:   .ASCIZ  /КОПИРОВАНИЕ ЗАВЕРШЕНО/&lt;br /&gt;
          .EVEN&lt;br /&gt;
          .END    START&lt;br /&gt;
  &lt;br /&gt;
        5.1.5. .LOOKUP&lt;br /&gt;
         ИСПОЛЬЗУЮТСЯ ДВЕ ФОРМЫ ЗАПРОСА .LOOKUP.  ПЕРВАЯ  ФОРМА&lt;br /&gt;
    .LOOKUP  СВЯЗЫВАЕТ  УКАЗАННЫЙ  КАНАЛ  С  УСТРОЙСТВОМ  И/ИЛИ&lt;br /&gt;
    СУЩЕСТВУЮЩИМ ФАЙЛОМ ДЛЯ ВЫПОЛНЕНИЯ  ОПЕРАЦИЙ  ВВОДА-ВЫВОДА.&lt;br /&gt;
    ИСПОЛЬЗУЕМЫЙ КАНАЛ БУДЕТ &amp;quot;ЗАНЯТ&amp;quot; ДО ТЕХ ПОР, ПОКА НЕ  БУДЕТ&lt;br /&gt;
    ВЫПОЛНЕН    ОДИН    ИЗ    СЛЕДУЮЩИХ    ЗАПРОСОВ:    .CLOSE,&lt;br /&gt;
    .SAVESTATUS,.SRESET,.HRESET,.PURGE,.CSIGEN   (ЕСЛИ    НОМЕР&lt;br /&gt;
    КАНАЛА В ДИАПОЗОНЕ ОТ 0 ДО 10 (ВОСЬМЕРИЧНОЙ).&lt;br /&gt;
         ЗАМЕТИМ, ЧТО ЕСЛИ ПРОГРАММА ИМЕЕТ ОВЕРЛЕЙНУЮ  СТРУКТУ-&lt;br /&gt;
    РУ, ТО 15-ЫЙ КАНАЛ ИСПОЛЬЗУЕТСЯ ОВЕРЛЕЙНЫМ ДРАЙВЕРОМ  И  НЕ&lt;br /&gt;
    ДОЛЖЕН ИЗМЕНЯТЬСЯ ПРОГРАММОЙ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
         ЕСЛИ ПЕРВОЕ  СЛОВО  ИМЕНИ  ФАЙЛА  В  БЛОКЕ  УСТРОЙСТВА&lt;br /&gt;
    (DBLK) СОДЕРЖИТ НУЛЬ И УСТРОЙСТВО ЕСТЬ УСТРОЙСТВО  ФАЙЛОВОЙ&lt;br /&gt;
    СТРУКТУРЫ, ТО АБСОЛЮТНЫЙ БЛОК 0  ЭТОГО  УСТРОЙСТВА  ОПРЕДЕ-&lt;br /&gt;
    ЛЯЕТСЯ КАК &amp;quot;НАЧАЛО ФАЙЛА&amp;quot; (В ЭТОМ СЛУЧАЕ ГОВОРЯТ О НЕФАЙЛО-&lt;br /&gt;
    ВОМ .LOOKUP). ЭТОТ МЕТОД ДОПУСКАЕТ  ВВОД-ВЫВОД  ДЛЯ  ЛЮБОГО&lt;br /&gt;
    ФИЗИЧЕСКОГО БЛОКА НА УСТРОЙСТВЕ. ЕСЛИ ИМЯ ФАЙЛА  ОПРЕДЕЛЕНО&lt;br /&gt;
    ДЛЯ УСТРОЙСТВА НЕФАЙЛОВОЙ СТРУКТУРЫ, ТО ИМЯ  ФАЙЛА  ИГНОРИ-&lt;br /&gt;
    РУЕТСЯ.&lt;br /&gt;
         ДЛЯ ВЫПОЛНЕНИЯ .LOOKUP ДРАЙВЕР  СООТВЕТСТВУЮЩЕГО  УСТ-&lt;br /&gt;
    РОЙСТВА ДОЛЖЕН БЫТЬ В ПАМЯТИ. ПОСЛЕ  ВЫПОЛНЕНИЯ  .LOOKUP  ,&lt;br /&gt;
    РЕГИСТР R0 БУДЕТ СОДЕРЖАТЬ ДЛИНУ ОТКРЫТОГО ФАЙЛА В  БЛОКАХ.&lt;br /&gt;
    ПОСЛЕ ВЫПОЛНЕНИЯ .LOOKUP ДЛЯ УСТРОЙСТВ НЕСПРАВОЧНОЙ  СТРУК-&lt;br /&gt;
    ТУРЫ, РЕГИСТР RO БУДЕТ СОДЕРЖАТЬ НОЛЬ.&lt;br /&gt;
         ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
         .LOOKUP AREA,CHAN,DBLK[,SEQN]&lt;br /&gt;
    ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
         SEQN - ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР ФАЙЛА ДЛЯ МАГНИТНОЙ ЛЕН-&lt;br /&gt;
    ТЫ; ЗНАЧЕНИЯ, КОТОРЫЕ МОЖЕТ ИМЕТЬ SEQN И СООТВЕТСТВУЮЩИЕ ИМ&lt;br /&gt;
    ДЕЙСТВИЯ МОНИТОРА ОПИСАНЫ В ТАБЛИЦЕ 8.&lt;br /&gt;
         ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
           AREA:   .BYTE   CHAN,1&lt;br /&gt;
                   .WORD   DBLK&lt;br /&gt;
                   .WORD   SEQN&lt;br /&gt;
   ПРИМЕР 1.&lt;br /&gt;
  &lt;br /&gt;
          .TITLE  LOOKUP.MAC&lt;br /&gt;
   ;В ДАННОМ ПРИМЕРЕ, ИСПОЛЬЗУЮЩЕМ ЗАПРОС .LOOKUP,&lt;br /&gt;
  ;ОПРЕДЕЛЯЕТСЯ НАЛИЧИЕ НА УСТРОЙСТВЕ DK: РАБОЧЕГО&lt;br /&gt;
  ;ФАЙЛА, СОДЕРЖАЩЕГО ОЧЕРЕДЬ ФАЙЛОВ ДЛЯ ВЫВОДА НА&lt;br /&gt;
  ;УКАЗАННОЕ УСТРОЙСТВО.&lt;br /&gt;
  ;ЕСЛИ РАБОЧИЙ ФАЙЛ СУЩЕСТВУЕТ, ТО ЕГО РАЗМЕР&lt;br /&gt;
  ;(В БЛОКАХ) ПЕЧАТАЕТСЯ НА СИСТЕМНОМ ТЕРМИНАЛЕ.&lt;br /&gt;
           .MCALL  .LOOKUP,.PRINT,.EXIT&lt;br /&gt;
   START:  .LOOKUP #AREA,#0,#QUSPEC ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #NOFILE         ;ФАЙЛА НЕТ&lt;br /&gt;
          .EXIT&lt;br /&gt;
   1$:     MOV     #SIZE,R1&lt;br /&gt;
          CALL    CNV10&lt;br /&gt;
          .PRINT  #BUFF&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  CNV10:  MOV     R0,-(SP)        ;ПОДПРОГРАММА&lt;br /&gt;
          CLR     R0              ;ПРЕОБРАЗОВАНИЯ РАЗМЕРА&lt;br /&gt;
  1$:     INC     R0              ;ФАЙЛА ДЛЯ ВЫВОДА НА&lt;br /&gt;
          SUB     #10.,@SP        ;ТЕРМИНАЛ&lt;br /&gt;
          BGE     1$&lt;br /&gt;
          ADD     #72,@SP&lt;br /&gt;
          DEC     R0&lt;br /&gt;
          BEQ     2$&lt;br /&gt;
          CALL    CNV10&lt;br /&gt;
   2$:     MOVB    (SP)+,(R1)+&lt;br /&gt;
          RETURN&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   3&lt;br /&gt;
  QUSPEC: .RAD50  /DK QUFILE/&lt;br /&gt;
          .RAD50  /TMP/&lt;br /&gt;
  BUFF:   .ASCII  /РАЗМЕР ФАЙЛА QUFILE.TMP = /&lt;br /&gt;
  SIZE:   .ASCIZ  /      /&lt;br /&gt;
  NOFILE: .ASCIZ  /НА DK: НЕТ ФАЙЛА QUFILE.TMP/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                                      ТАБЛИЦА 8&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
    ! ЗНАЧЕНИЕ    !             ДЕЙСТВИЕ  МОНИТОРА             !&lt;br /&gt;
    ! АРГУМЕНТА   !                                            !&lt;br /&gt;
    !----------------------------------------------------------!&lt;br /&gt;
    !     -1      ! ПРОИЗВОДИТ ПОИСК ФАЙЛА С ТЕКУЩЕГО ПОЛОЖЕНИЯ!&lt;br /&gt;
    !             ! МАГНИТНОЙ ЛЕНТЫ                            !&lt;br /&gt;
    !      0      ! ПЕРЕМАТЫВАЕТ МАГНИТНУЮ ЛЕНТУ И ПРОИЗВОДИТ  !&lt;br /&gt;
    !             ! ПОИСК ФАЙЛА                                !&lt;br /&gt;
    !   N(N&amp;gt;0)    ! УСТАНАВЛИВАЕТ МАГНИТНУЮ ЛЕНТУ В ПОЛОЖЕНИЕ  !&lt;br /&gt;
    !             ! СООТВЕТСТВУЮЩЕЕ ФАЙЛУ С ПОСЛЕДОВАТЕЛЬНЫМ   !&lt;br /&gt;
    !             ! НОМЕРОМ N                                  !&lt;br /&gt;
    ------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
       ВТОРАЯ ФОРМА .LOOKUP СВЯЗЫВАЕТ КАНАЛ С УКАЗАННЫМ ЗАДА-&lt;br /&gt;
   НИЕМ ДЛЯ ОБМЕНА ИНФОРМАЦИЕЙ В РЕЖИМАХ FB И ХМ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .LOOKUP AREA,CHAN,JOBDES&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        JOBDES - АДРЕС БЛОКА ИЗ 4-Х СЛОВ; 1-ОЕ СЛОВО  СОДЕРЖИТ&lt;br /&gt;
   ИМЯ ДРАЙВЕРА ОЧЕРЕДИ СООБЩЕНИЙ (MQ) В КОДАХ RADIX-50; 2,3,4&lt;br /&gt;
   СЛОВА СОДЕРЖАТ ЛОГИЧЕСКОЕ ИМЯ СИСТЕМНОГО  ЗАДАНИЯ  В  КОДАХ&lt;br /&gt;
   КОИ-7. ЕСЛИ 2-ОЕ СЛОВО СОДЕРЖИТ 0 , ТО КАНАЛ  (CHAN)  МОЖЕТ&lt;br /&gt;
   ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО  ЗАПРОСАМИ  .READ/C/W  ДЛЯ  ПОЛУЧЕНИЯ&lt;br /&gt;
   СООБЩЕНИЯ ОТ ЛЮБОГО ЗАДАНИЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,1&lt;br /&gt;
                  .WORD   JOBDES&lt;br /&gt;
  ПРИМЕР 2.&lt;br /&gt;
          .TITLE  SJLOOK.MAC&lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ ЗАПРОС .LOOKUP ОТКРЫВАЕТ КАНАЛ&lt;br /&gt;
  ;ДЛЯ СИСТЕМНОГО ЗАДАНИЯ QUEUE.REL.&lt;br /&gt;
  ;ПРИМЕР ВЫПОЛНЯЕТСЯ ПОД УПРАВЛЕНИЕМ МОНИТОРОВ FB&lt;br /&gt;
  ;ИЛИ ХМ.&lt;br /&gt;
  ;&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .LOOKUP,.PRINT,.EXIT,.WRITW,.READW&lt;br /&gt;
  START:  .LOOKUP #AREA,#0,#QMSG  ;ОТКРЫТЬ КАНАЛ ДЛЯ QUEUE&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #NOJOB&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .WRITW  #AREA,#0,#RMSJ,#6&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .READW  #AREA,#0,#RMSJ,#6&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .PRINT  #QRUN&lt;br /&gt;
          .EXIT&lt;br /&gt;
  2$:     .PRINT  #MSGERR&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  QMSG:   .RAD50  /MQ/&lt;br /&gt;
          .ASCIZ  /QUEUE/&lt;br /&gt;
          .WORD   0,0&lt;br /&gt;
  RMSJ:   .WORD   0&lt;br /&gt;
          .ASCII  /SJLOOK/&lt;br /&gt;
  MSGERR: .ASCIZ  /ОШИБКА/&lt;br /&gt;
  NOJOB:  .ASCIZ  /QUEUE НЕ ЗАГРУЖЕНА/&lt;br /&gt;
  QRUN:   .ASCIZ  /QUEUE РАБОТАЕТ!/&lt;br /&gt;
          .EVEN&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        5.1.6. .PURGE&lt;br /&gt;
        ЗАПРОС .PURGE ОСВОБОЖДАЕТ УКАЗАННЫЙ КАНАЛ ДЛЯ  ИСПОЛЬ-&lt;br /&gt;
   ЗОВАНИЯ В ДРУГОЙ ОПЕРАЦИИ БЕЗ ВЫПОЛНЕНИЯ КАКИХ-ЛИБО ФУНКЦИЙ&lt;br /&gt;
   ЗАПРОСОВ .HRESET,.SRESET,.SAVESTATUS ИЛИ .CLOSE.  ВРЕМЕННЫЙ&lt;br /&gt;
   ФАЙЛ ОТКРЫТЫЙ НА ЭТОМ КАНАЛЕ ПО .ENTER, АННУЛИРУЕТСЯ.  ЗАП-&lt;br /&gt;
   РОС .PURGE НА СВОБОДНОМ КАНАЛЕ ИГНОРИРУЕТСЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .PURGE CHAN&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,3&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .PURGE  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .HERR.&lt;br /&gt;
 &lt;br /&gt;
        5.1.7. .RENAME&lt;br /&gt;
        ЗАПРОС .RENAME ИЗМЕНЯЕТ ИМЯ ФАЙЛА (НЕДОПУСТИМ В ОПЕРА-&lt;br /&gt;
   ЦИЯХ С МАГНИТНОЙ ЛЕНТОЙ).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RENAME AREA,CHAN,DBLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-ХСЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        DBLK - АДРЕС БЛОКА, СОДЕРЖАЩЕГО ИМЯ УСТРОЙСТВА  И  ИМЯ&lt;br /&gt;
   ФАЙЛА, КОТОРЫЕ ТРЕБУЕТСЯ ИЗМЕНИТЬ, И НОВОЕ ИМЯ УСТРОЙСТВА И&lt;br /&gt;
   ИМЯ ФАЙЛА В КОДАХ RADIX-50.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
 &lt;br /&gt;
          AREA:   .BYTE   CHAN,4&lt;br /&gt;
                  .WORD   DBLK&lt;br /&gt;
   НАПРИМЕР,&lt;br /&gt;
          .RENAME  #AREA,#7,#DXLK&lt;br /&gt;
          BCS  RNMERR&lt;br /&gt;
           .&lt;br /&gt;
           .&lt;br /&gt;
           .&lt;br /&gt;
   DBLK:  .RAD50 /DX1OLDFILMAC/&lt;br /&gt;
          .RAD50 /DX1NEWFILMAC/&lt;br /&gt;
 &lt;br /&gt;
        ЕСЛИ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ, ЧТО И НОВОЕ, УЖЕ СУЩЕСТВУЕТ&lt;br /&gt;
   НА ТОМЕ, ТО ОН УДАЛЯЕТСЯ. ПОВТОРНОЕ ОПРЕДЕЛЕНИЕ ИМЕНИ  УСТ-&lt;br /&gt;
   РОЙСТВА DX1 В НОВОЙ СПЕЦИФИКАЦИИ ФАЙЛА НЕОБХОДИМО ДЛЯ  ПРА-&lt;br /&gt;
   ВИЛЬНОГО ВЫПОЛНЕНИЯ ОПЕРАЦИИ И НЕ ДОЛЖНО ОПУСКАТЬСЯ.  ПОСЛЕ&lt;br /&gt;
   ВЫПОЛНЕНИЯ .RENAME ИСПОЛЬЗУЕМЫЙ КАНАЛ ОСВОБОЖДАЕТСЯ. ЗАПРОС&lt;br /&gt;
   .RENAME ТРЕБУЕТ, ЧТОБЫ ДРАЙВЕР СООТВЕТСТВУЮЩЕГО  УСТРОЙСТВА&lt;br /&gt;
   БЫЛ В ПАМЯТИ ПЕРЕД ВЫПОЛНЕНИЕМ ОПЕРАЦИИ. ЗАПРОС .RENAME  НЕ&lt;br /&gt;
   ВЫПОЛНЯЕТСЯ ДЛЯ ЗАЩИЩЕННЫХ ФАЙЛОВ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  RENAME.MAC&lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ ЗАПРОС .RENAME ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
  ;ДЛЯ ИЗМЕНЕНИЯ ИМЕНИ ФАЙЛА.&lt;br /&gt;
          .MCALL  .CSISPC,.RENAME,.FETCH,.PRINT,.SRESET,.EXIT&lt;br /&gt;
          ERRBYT = 52&lt;br /&gt;
  START:  .CSISPC #FILESP,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          .FETCH  #DRVLOD,#FILESP ;ЗАГРУЗИТЬ ДРАЙВЕР&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          MOV     #FILESP,R2&lt;br /&gt;
          MOV     #FILESP+46,R3&lt;br /&gt;
          MOV     @R2,#FILESP+36&lt;br /&gt;
          .REPT   4&lt;br /&gt;
          MOV     (R2)+,(R3)+&lt;br /&gt;
          .ENDR&lt;br /&gt;
          .RENAME #AREA,#0,#FILESP+36 ;ПЕРЕИМЕНОВАТЬ ФАЙЛ&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          DECB    @#ERRBYT        ;АНАЛИЗ ОШИБКИ&lt;br /&gt;
          BEQ     3$&lt;br /&gt;
          MOV     #ILLOP,R0&lt;br /&gt;
          BR      4$&lt;br /&gt;
  1$:     .SRESET&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  2$:     MOV     #FERR,R0&lt;br /&gt;
          BR      4$&lt;br /&gt;
  3$:     MOV     #NOFIL,R0&lt;br /&gt;
  4$:     .PRINT&lt;br /&gt;
          BR      1$&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  NOFIL:  .ASCIZ  /ФАЙЛ НЕ НАЙДЕН/&lt;br /&gt;
  ILLOP:  .ASCIZ  /НЕДОПУСТИМАЯ ОПЕРАЦИЯ/&lt;br /&gt;
  FERR:   .ASCIZ  /ОШИБКА .FETCH/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  FILESP: .BLKW   39.*2&lt;br /&gt;
  DRVLOD  =.&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        5.1.8. .REOPEN&lt;br /&gt;
        ЗАПРОС .REOPEN ПОВТОРНО СВЯЗЫВАЕТ  УКАЗАННЫЙ  КАНАЛ  С&lt;br /&gt;
   ФАЙЛОМ, ДЛЯ КОТОРОГО БЫЛ ВЫПОЛНЕН ЗАПРОС .SAVESTATUS.  СОВ-&lt;br /&gt;
   МЕСТНОЕ ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ .SAVESTATUS И  .REOPEN  ТРЕ-&lt;br /&gt;
   БУЕТСЯ ДЛЯ ОДНОВРЕМЕННОГО ОБРАЩЕНИЯ К БОЛЬШОМУ  ЧИСЛУ  ФАЙ-&lt;br /&gt;
   ЛОВ. ФАЙЛЫ ОТКРЫВАЮТСЯ ПО .LOOKUP И ПАРАМЕТРЫ ИХ  СОСТОЯНИЯ&lt;br /&gt;
   ЗАПОМИНАЮТСЯ ПО .SAVESTATUS. КОГДА ТРЕБУЮТСЯ ДАННЫЕ ИЗ ФАЙ-&lt;br /&gt;
   ЛА, .REOPEN ОБЕСПЕЧИВАЕТ ПРОГРАММЕ ВОЗМОЖНОСТЬ ЧТЕНИЯ  ЭТИХ&lt;br /&gt;
   ДАННЫХ. НЕ ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ ВЫПОЛНЕНИЕ .REOPEN НА  ТОМ&lt;br /&gt;
   ЖЕ КАНАЛЕ, НА КОТОРОМ БЫЛИ ВЫПОЛНЕНЫ .LOOKUP И .SAVESTATUS.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .REOPEN AREA,CHAN,CBLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        CBLK - АДРЕС БЛОКА  ИЗ  5-ТИ  СЛОВ,  ГДЕ  ЗАПОМИНАЕТСЯ&lt;br /&gt;
   ИНФОРМАЦИЯ О СОСТОЯНИИ КАНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,6&lt;br /&gt;
                  .WORD   CBLK&lt;br /&gt;
        ПРИМЕР СМ. В ОПИСАНИИ ЗАПРОСА .SAVESTATUS.&lt;br /&gt;
 &lt;br /&gt;
        5.1.9. .SAVESTATUS&lt;br /&gt;
        ЗАПРОС .SAVESTATUS ЗАПОМИНАЕТ ПЯТЬ СЛОВ  ИНФОРМАЦИИ  О&lt;br /&gt;
   СОСТОЯНИИ КАНАЛА В УКАЗАННОЙ ПОЛЬЗОВАТЕЛЕМ ОБЛАСТИ  ПАМЯТИ.&lt;br /&gt;
   ЭТИ СЛОВА СОДЕРЖАТ  ПОЛНУЮ  ИНФОРМАЦИЮ,  КОТОРАЯ  ТРЕБУЕТСЯ&lt;br /&gt;
   ОПЕРАЦИОННОЙ СИСТЕМЕ ДЛЯ ТОЧНОГО ОПРЕДЕЛЕНИЯ  ФАЙЛА.  ПОСЛЕ&lt;br /&gt;
   ВЫПОЛНЕНИЯ .SAVESTATUS УКАЗАННЫЙ КАНАЛ ОСВОБОЖДАЕТСЯ.  ЕСЛИ&lt;br /&gt;
   НЕОБХОДИМО ПОЛУЧИТЬ ДАННЫЕ ПО ЭТОМУ КАНАЛУ, ТО ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
   ЗАПРОС .REOPEN. ЗАПРОС .SAVESTATUS МОЖЕТ  ИСПОЛЬЗОВАТЬСЯ  В&lt;br /&gt;
   ТОМ СЛУЧАЕ, ЕСЛИ ФАЙЛ  БЫЛ  ОТКРЫТ  ПО  .LOOKUP.  ЕСЛИ  БЫЛ&lt;br /&gt;
   ИСПОЛЬЗОВАН .ENTER, ТО .SAVESTATUS ИГНОРИРУЕТСЯ  И  ГЕНЕРИ-&lt;br /&gt;
   РУЕТСЯ ОШИБКА. ЗАПРОС .SAVESTATUS НЕДОПУСТИМ В ОПЕРАЦИЯХ  С&lt;br /&gt;
   ФАЙЛАМИ, КОТОРЫЕ НАХОДЯТСЯ НА МАГНИТНОЙ ЛЕНТЕ.&lt;br /&gt;
        ЗАПРОСЫ .SAVESTATUS И .REOPEN ИСПОЛЬЗУЮТСЯ ДЛЯ  РАБОТЫ&lt;br /&gt;
   С БОЛЬШИМ ЧИСЛОМ ФАЙЛОВ ПРИ ОГРАНИЧЕННОМ ЧИСЛЕ КАНАЛОВ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SAVESTATUS AREA,CHAN,CBLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        CBLK - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ, В КОТОРЫЙ БУДЕТ ЗАПИ-&lt;br /&gt;
   САНА ИНФОРМАЦИЯ О СОСТОЯНИИ КАНАЛА; АДРЕС ДОЛЖЕН БЫТЬ  УКА-&lt;br /&gt;
   ЗАН В ПРЕДЕЛАХ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ. (СМ. ПРИЛОЖЕНИЕ 2).&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,5&lt;br /&gt;
                  .WORD   CBLK&lt;br /&gt;
 &lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  SAVEST.MAC&lt;br /&gt;
          .MCALL  .CSIGEN,.SAVESTATUS,.READW,.WRITW,.PRINT&lt;br /&gt;
          .MCALL  .PURGE,.REOPEN,.CLOSE,.EXIT&lt;br /&gt;
          ERRBYT = 52&lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          MOV     #3,R4           ;ВХОДНОЙ КАНАЛ&lt;br /&gt;
          MOV     #AREA,R3        ;УКАЗАТЕЛЬ НА БЛОК&lt;br /&gt;
                                  ;СОСТОЯНИЯ КАНАЛА&lt;br /&gt;
          MOV     #SAVBLK,R5&lt;br /&gt;
  1$:     .SAVEST R3,R4,R5        ;СОХРАНИТЬ ИНФОРМАЦИЮ&lt;br /&gt;
                                  ;О КАНАЛЕ&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          ADD     #12,R5          ;УКАЗАТЕЛЬ НА СЛЕДУЮЩИЙ&lt;br /&gt;
                                  ;БЛОК ИНФОРМАЦИИ&lt;br /&gt;
          INC     R4&lt;br /&gt;
          CMP     #8.,R4          ;ВХОДНЫЕ ФАЙЛЫ ВСЕ?&lt;br /&gt;
          BGE     1$              ;НЕТ&lt;br /&gt;
  2$:     MOV     #SAVBLK,R5&lt;br /&gt;
          BEQ     7$&lt;br /&gt;
  4$:     .REOPEN R3,#3,R5        ;ПОВТОРНО ИСПОЛЬЗОВАТЬ&lt;br /&gt;
                                  ;КАНАЛ 3&lt;br /&gt;
          CLR     BLK&lt;br /&gt;
  5$:     .READW  R3,#3,#BUFF,#256.,BLK ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCC     6$&lt;br /&gt;
          TSTB    @#ERRBYT        ;КОНЕЦ ФАЙЛА?&lt;br /&gt;
 &lt;br /&gt;
          BNE     8$&lt;br /&gt;
          .PURGE  #3              ;ОСВОБОДИТЬ КАНАЛ&lt;br /&gt;
          ADD     #12,R5&lt;br /&gt;
          TST     @R5             ;ПОСЛЕДНИЙ ФАЙЛ?&lt;br /&gt;
          BNE     4$&lt;br /&gt;
          .CLOSE  #0              ;ЗАКРЫТЬ ВЫХ.КАНАЛ&lt;br /&gt;
          .PRINT  #DONE&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  6$:     .WRITW  R3,#0,#BUFF,#256.,WBLK ;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          INC     WBLK&lt;br /&gt;
          INC     BLK&lt;br /&gt;
          BCC     5$&lt;br /&gt;
          MOV     #WERR,R0&lt;br /&gt;
          BR      9$&lt;br /&gt;
  7$:     MOV     #NOIMP,R0&lt;br /&gt;
          BR      9$&lt;br /&gt;
  8$:     MOV     #RERR,R0&lt;br /&gt;
  9$:     .PRINT&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  BLK:    .WORD   0&lt;br /&gt;
  WBLK:   .WORD   0&lt;br /&gt;
  SAVBLK: .BLKW   30.&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  NOIMP:  .ASCIZ  /НЕТ БОЛЬШЕ ВХОДНЫХ ФАЙЛОВ/&lt;br /&gt;
  WERR:   .ASCIZ  /ОШИБКА ЗАПИСИ/&lt;br /&gt;
  RERR:   .ASCIZ  /ОШИБКА ЧТЕНИЯ/&lt;br /&gt;
  DONE:   .ASCIZ  /КОНЕЦ ПРОГРАММЫ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.2. ПРОГРАММНЫЕ  ЗАПРОСЫ  ДЛЯ   ОРГАНИЗАЦИИ&lt;br /&gt;
             ВВОДА-ВЫВОДА ДАННЫХ&lt;br /&gt;
 &lt;br /&gt;
        5.2.1. .READ,.READC,.READW&lt;br /&gt;
        СИСТЕМА RT11 ПРЕДУСМАТРИВАЕТ ТРИ РЕЖИМА  ВЫПОЛНЕНИЯ&lt;br /&gt;
   ОПЕРАЦИЙ ВВОДА-ВЫВОДА:&lt;br /&gt;
                    .READ /.WRITE&lt;br /&gt;
                    .READC/.WRITC&lt;br /&gt;
                    .READW/.WRITW&lt;br /&gt;
        ПРИ ИСПОЛЬЗОВАНИИ ЗАПРОСОВ .READ И .READC ДОЛЖНЫ  БЫТЬ&lt;br /&gt;
   ОПРЕДЕЛЕНЫ  ДОПОЛНИТЕЛЬНЫЕ  ЭЛЕМЕНТЫ  ДЛЯ  ОЧЕРЕДИ   ВВОДА-&lt;br /&gt;
   ВЫВОДА.&lt;br /&gt;
        ЕСЛИ ЗАПРОСЫ READ/C/W ИСПОЛЬЗУЮТСЯ ДЛЯ ОБМЕНА ИНФОРМА-&lt;br /&gt;
   ЦИЕЙ МЕЖДУ ЗАДАНИЯМИ, ТО РАЗМЕР БУФЕРА (BUF) ДОЛЖЕН НА ОДНО&lt;br /&gt;
   СЛОВО ПРЕВЫШАТЬ ЧИСЛО СЛОВ ДЛЯ ЧТЕНИЯ  (WCNT)  Т.К.  ПЕРВОЕ&lt;br /&gt;
   СЛОВО БУФЕРА (BUF) БУДЕТ СОДЕРЖАТЬ ДЕЙСТВИТЕЛЬНОЕ КОЛИЧЕСТ-&lt;br /&gt;
   ВО ПЕРЕДАННЫХ СЛОВ.&lt;br /&gt;
        ЗАПРОС .READ ИСПОЛЬЗУЕТСЯ ДЛЯ  ПЕРЕДАЧИ  ОПРЕДЕЛЕННОГО&lt;br /&gt;
   КОЛИЧЕСТВА СЛОВ ПО УКАЗАННОМУ КАНАЛУ В БУФЕР ПАМЯТИ. УПРАВ-&lt;br /&gt;
   ЛЕНИЕ ПЕРЕДАЕТСЯ ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ  НЕМЕДЛЕННО  ПОСЛЕ&lt;br /&gt;
   НАЧАЛА ВЫПОЛНЕНИЯ ЗАПРОСА .READ. ПОСЛЕ ЗАВЕРШЕНИЯ  ПЕРЕДАЧИ&lt;br /&gt;
   ДАННЫХ НИКАКИХ ДЕЙСТВИЙ НЕ ПРОИСХОДИТ.&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .READ AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА ДЛЯ ЧТЕНИЯ ДАННЫХ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЧТЕНИЯ;&lt;br /&gt;
        BLK -  НОМЕР  БЛОКА  ДЛЯ  ОПЕРАЦИИ  ЧТЕНИЯ;  ЕСЛИ  БЫЛ&lt;br /&gt;
   ИСПОЛЬЗОВАН ФАЙЛОВЫЙ .LOOKUP, TO BLK - НОМЕР БЛОКА  ОТНОСИ-&lt;br /&gt;
   ТЕЛЬНО  НАЧАЛА  ФАЙЛА;  ЕСЛИ  БЫЛ  ИСПОЛЬЗОВАН   НЕФАЙЛОВЫЙ&lt;br /&gt;
   .LOOKUP, TO BLK - АБСОЛЮТНЫЙ НОМЕР БЛОКА УСТРОЙСТВА;  ПРОГ-&lt;br /&gt;
   РАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА МОДИФИЦИРОВАТЬ BLK ПЕРЕД ЕГО ПОВ-&lt;br /&gt;
   ТОРНЫМ ИСПОЛЬЗОВАНИЕМ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,10&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   1&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  READ.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСОВ .READ,.WRITE.&lt;br /&gt;
          .MCALL  .READ,.WRITE,.CLOSE,.PRINT,.CSIGEN&lt;br /&gt;
          .MCALL  .WAIT,.SRESET,.EXIT&lt;br /&gt;
          ERRBYT = 52&lt;br /&gt;
          .ENABL  LSB&lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          MOV     #AREA,R5&lt;br /&gt;
          CLR     IOBLK&lt;br /&gt;
  1$:     .READ   R5,#3   ;ЧИТАТЬ С 0-ГО БЛОКА&lt;br /&gt;
          BCS     6$      ;ОШИБКА ЧТЕНИЯ&lt;br /&gt;
          ;       .&lt;br /&gt;
          BIT     #1,IOBLK&lt;br /&gt;
          BNE     2$&lt;br /&gt;
          .PRINT  #MES&lt;br /&gt;
          ;       .&lt;br /&gt;
  2$:     .WAIT   #3      ;ЖДАТЬ ЗАВЕРШЕНИЯ ОПЕРАЦИИ&lt;br /&gt;
          BCS     5$&lt;br /&gt;
          .WRITE  R5,#0   ;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          BCS     3$&lt;br /&gt;
          INC     IOBLK&lt;br /&gt;
          ;       .&lt;br /&gt;
          .WAIT   #0      ;ЖДАТЬ ЗАВЕРШЕНИЯ ОПЕРАЦИИ&lt;br /&gt;
          BCC     1$&lt;br /&gt;
  3$:     MOV     #WERR,R0&lt;br /&gt;
  4$:     .PRINT&lt;br /&gt;
          BR      7$&lt;br /&gt;
  5$:     MOV     #RERR,R0&lt;br /&gt;
          BR      4$&lt;br /&gt;
  6$:     TSTB    @#ERRBYT&lt;br /&gt;
          BNE     5$&lt;br /&gt;
          .PRINT  #MES1&lt;br /&gt;
          .CLOSE  #0&lt;br /&gt;
  7$:     .SRESET         ;УДАЛИТЬ ЗАГРУЖЕННЫЙ ДРАЙВЕР&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .WORD   0&lt;br /&gt;
  IOBLK:  .WORD   0&lt;br /&gt;
          .WORD   BUFF&lt;br /&gt;
          .WORD   256.&lt;br /&gt;
          .WORD   0&lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  MES1:   .ASCIZ  /ОПЕРАЦИЯ ВВОДА-ВЫВОДА ЗАВЕРШЕНА/&lt;br /&gt;
  MES:    .ASCIZ  &amp;lt;15&amp;gt;&amp;lt;12&amp;gt;/ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРОДОЛЖАЕТСЯ/&lt;br /&gt;
  WERR:   .ASCIZ  /ОШИБКА .WRITE/&lt;br /&gt;
  RERR:   .ASCIZ  /ОШИБКА .READ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        ЕСЛИ ВВОД ВЫПОЛНЯЕТСЯ С ТЕРМИНАЛА И BLK=0, ТО НА  ТЕР-&lt;br /&gt;
   МИНАЛЕ ПЕЧАТАЕТСЯ &amp;quot;^&amp;quot; (КОД 136).&lt;br /&gt;
        КОГДА ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ  НУЖНО  ВЫПОЛНИТЬ  ЧТЕНИЕ&lt;br /&gt;
   ДАННЫХ, МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН ЗАПРОС .WAIT.  ЭТО  ГАРАНТИ-&lt;br /&gt;
   РУЕТ ТО, ЧТО ДАННЫЕ БУДУТ ПРОЧИТАНЫ ПОЛНОСТЬЮ. ЕСЛИ ВО ВРЕ-&lt;br /&gt;
   МЯ ПЕРЕДАЧИ ДАННЫХ ПРОИЗОШЛА ОШИБКА, ЗАПРОС .WAIT  СООБЩАЕТ&lt;br /&gt;
   О НЕЙ.&lt;br /&gt;
        ЗАПРОС .READC ПЕРЕДАЕТ ОПРЕДЕЛЕННОЕ КОЛИЧЕСТВО СЛОВ ПО&lt;br /&gt;
   УКАЗАННОМУ КАНАЛУ В ПАМЯТЬ. УПРАВЛЕНИЕ ПРОГРАММЕ  ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЯ БУДЕТ ПЕРЕДАНО СРАЗУ ПОСЛЕ НАЧАЛА  ВЫПОЛНЕНИЯ  .READC.&lt;br /&gt;
   ПОПЫТКА ЧТЕНИЯ ДАННЫХ ПОСЛЕ КОНЦА ФАЙЛА  ВЫЗЫВАЕТ  ПЕРЕДАЧУ&lt;br /&gt;
   УПРАВЛЕНИЯ ВЫЗЫВАЮЩЕЙ ПРОГРАММЕ С УСТАНОВЛЕНИЕМ С-РАЗРЯДА И&lt;br /&gt;
   ЗАПИСЬЮ НУЛЯ В  БАЙТ  ОШИБОК  (52-БАЙТ).  ПОСЛЕ  ВЫПОЛНЕНИЯ&lt;br /&gt;
   .READC УПРАВЛЕНИЕ БУДЕТ ПЕРЕДАНО  ПОДПРОГРАММЕ  ЗАВЕРШЕНИЯ,&lt;br /&gt;
   АДРЕС КОТОРЫЙ УКАЗАН В ЗАПРОСЕ. ЕСЛИ В ПОДПРОГРАММЕ  ЗАВЕР-&lt;br /&gt;
   ШЕНИЯ ВЫПОЛНЯЕТСЯ КОМАНДА RTS PC, ТО УПРАВЛЕНИЕ ВОЗВРАЩАЕТ-&lt;br /&gt;
   СЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .READC AREA,CHAN,BUF,WCNT,CRTN,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА ДЛЯ ЧТЕНИЯ ДАННЫХ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЧТЕНИЯ;&lt;br /&gt;
        CRTN - АДРЕС  ПОДПРОГРАММЫ  ЗАВЕРШЕНИЯ  (АДРЕС  ДОЛЖЕН&lt;br /&gt;
   БЫТЬ БОЛЬШЕ 500 (ВОСЬМЕРИЧНОЙ));&lt;br /&gt;
        BLK - СМ. ЗАПРОС .READ&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,10&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
        ПРИ ЗАПУСКЕ ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ  СПРАВЕДЛИВО  СЛЕ-&lt;br /&gt;
   ДУЮЩЕЕ:&lt;br /&gt;
        1) РЕГИСТР R0 СОДЕРЖИТ СЛОВО СОСТОЯНИЯ КАНАЛА; ЕСЛИ  В&lt;br /&gt;
   R0 УСТАНОВЛЕН РАЗРЯД 0, ТО ПРОИЗОШЛА АППАРАТНАЯ  ОШИБКА  ВО&lt;br /&gt;
   ВРЕМЯ ПЕРЕДАЧИ ДАННЫХ;&lt;br /&gt;
        2) РЕГИСТР R1 СОДЕРЖИТ НОМЕР КАНАЛА ДЛЯ ОПЕРАЦИИ;  ЭТА&lt;br /&gt;
   ИНФОРМАЦИЯ НЕОБХОДИМА, КОГДА  ОДНА  И  ТА  ЖЕ  ПОДПРОГРАММА&lt;br /&gt;
   ЗАВЕРШЕНИЯ ИСПОЛЬЗУЕТСЯ В НЕСКОЛЬКИХ ОПЕРАЦИЯХ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  READC.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСОВ .READC,.WRITC.&lt;br /&gt;
          .MCALL  .READC,.WRITC,.CSIGEN,.PRINT&lt;br /&gt;
          .MCALL  .CLOSE,.WAIT,.SRESET,.EXIT&lt;br /&gt;
          ERRBYT  = 52&lt;br /&gt;
          .ENABL  LSB&lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          CALL    IOXFER          &lt;br /&gt;
          .PRINT  #MES&lt;br /&gt;
          MOV     #-1,R5&lt;br /&gt;
  1$:     DEC     R5&lt;br /&gt;
          BNE     1$&lt;br /&gt;
          TSTB    EOF&lt;br /&gt;
          BEQ     1$              ;0 - ОШИБКА ЗАПИСИ&lt;br /&gt;
          BLT     RERR            ;&amp;lt;0- ОШИБКА ЧТЕНИЯ&lt;br /&gt;
          .CLOSE  #0              ;&amp;gt;0- КОНЕЦ ФАЙЛА&lt;br /&gt;
          MOV     #DONE,R0&lt;br /&gt;
          BR      EXIT&lt;br /&gt;
  WERR:   MOV     #WRERR,R0&lt;br /&gt;
          BR      EXIT&lt;br /&gt;
  RERR:   MOV     #RDERR,R0&lt;br /&gt;
  EXIT:   .PRINT&lt;br /&gt;
          .SRESET                 ;УДАЛИТЬ ЗАГРУЖЕННЫЕ&lt;br /&gt;
                                  ;ДРАЙВЕРЫ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  WRDONE: .WAIT   #0&lt;br /&gt;
          BCS     3$&lt;br /&gt;
  IOXFER: .READC  #AREA,#3,,,#4$  ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCC     7$&lt;br /&gt;
          TSTB    @#ERRBYT        ;КОНЕЦ ФАЙЛА?&lt;br /&gt;
          BEQ     6$              ;ДА&lt;br /&gt;
  2$:     DECB    EOF&lt;br /&gt;
  3$:     DECB    EOF&lt;br /&gt;
          RETURN&lt;br /&gt;
  4$:     .WAIT   #3&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .WRITC  #AREA,#0,,,#WRDONE;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          BCS     3$&lt;br /&gt;
  5$:     INC     BLOK&lt;br /&gt;
          RETURN&lt;br /&gt;
  6$:     INCB    EOF&lt;br /&gt;
  7$:     RETURN&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .WORD   0       ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
  BLOK:   .WORD   0       ;НОМЕР БЛОКА&lt;br /&gt;
          .WORD   BUFF    ;АДРЕС БУФЕРА&lt;br /&gt;
          .WORD   256.    ;СЧЕТЧИК СЛОВ&lt;br /&gt;
          .WORD   0       ;АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ&lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  DONE:   .ASCIZ  /КОНЕЦ ПРОГРАММЫ/&lt;br /&gt;
  MES:    .ASCIZ  /ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРОДОЛЖАЕТСЯ/&lt;br /&gt;
  WRERR:  .ASCIZ  /ОШИБКА .WRITC/&lt;br /&gt;
  RDERR:  .ASCIZ  /ОШИБКА .READC/&lt;br /&gt;
  EOF:    .BYTE   0&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
          &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        ЗАПРОС .READW ПЕРЕДАЕТ ОПРЕДЕЛЕНННОЕ  КОЛИЧЕСТВО  СЛОВ&lt;br /&gt;
   ПО УКАЗАННОМУ КАНАЛУ В ПАМЯТЬ. УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ  ПРОГ-&lt;br /&gt;
   РАММЕ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ ВЫПОЛНЕНИЯ ЗАПРОСА .READW ИЛИ  ПРИ&lt;br /&gt;
   ОБНАРУЖЕНИИ ОШИБКИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .READW AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЧТЕНИЯ (КАЖДЫЙ ЗАПРОС МОЖЕТ&lt;br /&gt;
   ПЕРЕДАТЬ МАКСИМАЛЬНО 32К СЛОВ);&lt;br /&gt;
        BLK - СМ. ЗАПРОС .READ&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,10&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   0&lt;br /&gt;
        ЕСЛИ ПОСЛЕ  ЗАВЕРШЕНИЯ  ЗАПРОСА  БУДЕТ  УСТАНОВЛЕН  С-&lt;br /&gt;
   РАЗРЯД, ТО ЭТО УКАЗЫВАЕТ НА ТО,  ЧТО  НА  КАНАЛЕ  ПРОИЗОШЛА&lt;br /&gt;
   АППАРАТНАЯ ОШИБКА. ЕСЛИ ОШИБКИ НЕ БЫЛО, ТО ДАННЫЕ НАХОДЯТСЯ&lt;br /&gt;
   В ПАМЯТИ, НАЧИНАЯ С УКАЗАННОГО АДРЕСА. В РЕЖИМЕ FB ОДНО  ИЗ&lt;br /&gt;
   ЗАДАНИЙ МОЖЕТ ВЫПОЛНЯТЬСЯ В ТО  ВРЕМЯ  КАК  ДРУГОЕ  ЗАДАНИЕ&lt;br /&gt;
   ОЖИДАЕТ ЗАВЕРШЕНИЯ ОПЕРАЦИИ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  READW.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСОВ .READW,.WRITW.&lt;br /&gt;
          .MCALL  .CSIGEN,.READW,.WRITW,.PRINT,.CLOSE&lt;br /&gt;
          .MCALL  .SRESET,.EXIT&lt;br /&gt;
 &lt;br /&gt;
          ERRBYT = 52&lt;br /&gt;
 &lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEFEXT&lt;br /&gt;
          CLR     IOBLK&lt;br /&gt;
          MOV     #AREA,R5&lt;br /&gt;
  READ:   .READW  R5,#3&lt;br /&gt;
          BCC     2$&lt;br /&gt;
          TSTB    @#ERRBYT&lt;br /&gt;
          BEQ     3$&lt;br /&gt;
          MOV     #RERR,R0&lt;br /&gt;
  1$:     .PRINT&lt;br /&gt;
          BR      4$&lt;br /&gt;
  2$:     .WRITW  R5,#0&lt;br /&gt;
          INC     IOBLK&lt;br /&gt;
          BCC     READ&lt;br /&gt;
          MOV     #WERR,R0&lt;br /&gt;
          BR      1$&lt;br /&gt;
  3$:     .CLOSE  #0&lt;br /&gt;
          .PRINT  #DONE&lt;br /&gt;
  4$:     .SRESET&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  AREA:   .WORD   0&lt;br /&gt;
  IOBLK:  .WORD   0&lt;br /&gt;
          .WORD   BUFF&lt;br /&gt;
          .WORD   256.&lt;br /&gt;
          .WORD   0&lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  RERR:   .ASCIZ  /ОШИБКА .READW/&lt;br /&gt;
  WERR:   .ASCIZ  /ОШИБКА .WRITW/&lt;br /&gt;
  DONE:   .ASCIZ  /КОНЕЦ ПРОГРАММЫ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.2.2. .WRITE,.WRITC,.WRITW&lt;br /&gt;
        ПРИ ИСПОЛЬЗОВАНИИ ЗАПРОСОВ .WRITE И .WRITC ДОЛЖНЫ БЫТЬ&lt;br /&gt;
   ОПРЕДЕЛЕНЫ  ДОПОЛНИТЕЛЬНЫЕ  ЭЛЕМЕНТЫ  ДЛЯ  ОЧЕРЕДИ   ВВОДА-&lt;br /&gt;
   ВЫВОДА.&lt;br /&gt;
        ЗАПРОС .WRITE ПЕРЕДАЕТ УКАЗАННОЕ  КОЛИЧЕСТВО  СЛОВ  ИЗ&lt;br /&gt;
   ПАМЯТИ ПО УКАЗАННОМУ КАНАЛУ. УПРАВЛЕНИЕ ПРОГРАММЕ ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЯ ПЕРЕДАЕТСЯ СРАЗУ ЖЕ ПОСЛЕ ТОГО, КАК ЗАПРОС БУДЕТ  ПОС-&lt;br /&gt;
   ТАВЛЕН В ОЧЕРЕДЬ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .WRITE AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА ПАМЯТИ,  КОТОРЫЙ  ИСПОЛЬЗУЕТСЯ  ДЛЯ&lt;br /&gt;
   ВЫВОДА;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЗАПИСИ;&lt;br /&gt;
        BLK - НОМЕР БЛОКА ДЛЯ ОПЕРАЦИИ  ЗАПИСИ;  ЕСЛИ  ИСПОЛЬ-&lt;br /&gt;
   ЗУЕТСЯ ФАЙЛОВЫЙ .LOOKUP ИЛИ .ENTER, TO BLK  -  НОМЕР  БЛОКА&lt;br /&gt;
   ОТНОСИТЕЛЬНО НАЧАЛА ФАЙЛА; ЕСЛИ БЫЛ ИСПОЛЬЗОВАН  НЕФАЙЛОВЫЙ&lt;br /&gt;
   .LOOKUP ИЛИ .ENTER, ТО BLK - АБСОЛЮТНЫЙ  НОМЕР  БЛОКА  УСТ-&lt;br /&gt;
   РОЙСТВА; ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА  МОДИФИЦИРОВАТЬ  BLK&lt;br /&gt;
   ПЕРЕД ЕГО ПОВТОРНЫМ ИСПОЛЬЗОВАНИЕМ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,11&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   1&lt;br /&gt;
        ЗАПРОС .WRITC ПЕРЕДАЕТ  ЗАДАННОЕ  КОЛИЧЕСТВО  СЛОВ  ИЗ&lt;br /&gt;
   ПАМЯТИ ПО УКАЗАННОМУ КАНАЛУ. УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПРОГРАМ-&lt;br /&gt;
   МЕ ПОЛЬЗОВАТЕЛЯ НЕМЕДЛЕННО ПОСЛЕ НАЧАЛА ВЫПОЛНЕНИЯ  .WRITC.&lt;br /&gt;
   ПОСЛЕ ВЫПОЛНЕНИЯ ЗАПРОСОВ, УПРАВЛЕНИЕ БУДЕТ ПЕРЕДАНО  ПОДП-&lt;br /&gt;
   РОГРАММЕ ЗАВЕРШЕНИЯ. ПО КОМАНДЕ RTS PC  УПРАВЛЕНИЕ  ВОЗВРА-&lt;br /&gt;
   ШАЕТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .WRITC AREA,CHAN,BUF,WCNT,CRTN,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА ПАМЯТИ,  КОТОРЫЙ  ИСПОЛЬЗУЕТСЯ  ДЛЯ&lt;br /&gt;
   ВЫВОДА;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЗАПИСИ;&lt;br /&gt;
        CRTN - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ;&lt;br /&gt;
        BLK - СМ. ЗАПРОС .WRITE&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,11&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
 &lt;br /&gt;
        ЗАПРОС .WRITW ПЕРЕДАЕТ  ЗАДАННОЕ  КОЛИЧЕСТВО  СЛОВ  ИЗ&lt;br /&gt;
   ПАМЯТИ ПО УКАЗАННОМУ КАНАЛУ. УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПРОГРАМ-&lt;br /&gt;
   МЕ ПОЛЬЗОВАТЕЛЯ ПОСЛЕ ЗАВЕРШЕНИЯ .WRITW.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .WRITW AREA,CHAN,BUF,WCNT,BLK&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА, КОТОРЫЙ ИСПОЛЬЗУЕТСЯ ДЛЯ ВЫВОДА;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ЗАПИСИ;&lt;br /&gt;
        BLK - СМ. ЗАПРОС .WRITE.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,10&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   0&lt;br /&gt;
 &lt;br /&gt;
        5.2.3. .RCVD,.RCVDC,.RCVDW (РЕЖИМ FB,ХМ)&lt;br /&gt;
        СУЩЕСТВУЮТ ТРИ ФОРМЫ ЗАПРОСА ПОЛУЧЕНИЯ ДАННЫХ, КОТОРЫЕ&lt;br /&gt;
   ИСПОЛЬЗУЮТСЯ ВМЕСТЕ С ЗАПРОСАМИ .SDAT. ЗАПРОСЫ .RCVD АНАЛО-&lt;br /&gt;
   ГИЧНЫ ЗАПРОСАМ .READ, НО  В  ОТЛИЧИИ  ОТ  НИХ  ОСУЩЕСТВЛЯЮТ&lt;br /&gt;
   ПРИЕМ ДАННЫХ ИЗ ДРУГОЙ ПРОГРАММЫ, А НЕ  С  УСТРОЙСТВА.  ПРИ&lt;br /&gt;
   ИСПОЛЬЗОВАНИИ ЗАПРОСОВ .RCVD И .RCVDC ДОЛЖНЫ БЫТЬ ОПРЕДЕЛЕ-&lt;br /&gt;
   НЫ ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ ДЛЯ ОЧЕРЕДИ ВВОДА-ВЫВОДА.&lt;br /&gt;
        ЗАПРОС .RCVD ИСПОЛЬЗУЕТСЯ  ДЛЯ  ПОЛУЧЕНИЯ  ДАННЫХ  ИЛИ&lt;br /&gt;
   СООБЩЕНИЙ, ПОСЫЛАЕМЫХ ДРУГОЙ ПРОГРАММОЙ.  УПРАВЛЕНИЕ  ВЫЗЫ-&lt;br /&gt;
   ВАЮЩЕЙ ПРОГРАММЕ ПЕРЕДАЕТСЯ СРАЗУ ЖЕ ПОСЛЕ НАЧАЛА  ВЫПОЛНЕ-&lt;br /&gt;
   НИЯ ЗАПРОСА .RCVD. ПРИ НЕОБХОДИМОСТИ, С .RCVD  ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
   ЗАПРОС .MWAIT, КОТОРЫЙ ЗАДЕРЖИВАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ  ДО&lt;br /&gt;
   ОКОНЧАНИЯ ОПЕРАЦИИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RCVD AREA,BUF,WCNT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА ДЛЯ СООБЩЕНИЙ (ДАННЫХ);&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО ПЕРЕДАВАЕМЫХ СЛОВ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,26&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   1&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ МОНИТОРОМ ЗАПРОСА .RCVD, ПЕРВОЕ СЛОВО&lt;br /&gt;
   БУФЕРА  (BUF)  БУДЕТ  СОДЕРЖАТЬ  ДЕЙСТВИТЕЛЬНОЕ  КОЛИЧЕСТВО&lt;br /&gt;
   ПЕРЕДАННЫХ СЛОВ. ТАКИМ ОБРАЗОМ, ОБЛАСТЬ ПАМЯТИ  ДЛЯ  ПРИЕМА&lt;br /&gt;
   ДАННЫХ ДОЛЖНА БЫТЬ, ПО КРАЙНЕЙ МЕРЕ, НА ОДНО  СЛОВО  БОЛЬШЕ&lt;br /&gt;
   РАЗМЕРА ПЕРЕДАВАЕМОГО СООБЩЕНИЯ.&lt;br /&gt;
        КОМБИНАЦИЯ .SDAT/.RCVD  МОЖЕТ  БЫТЬ  ИСПОЛЬЗОВАНА  ДЛЯ&lt;br /&gt;
   ПЕРЕДАЧИ КАК НЕСКОЛЬКИХ СЛОВ, ТАК И ЦЕЛОГО БУФЕРА. ОПЕРАЦИЯ&lt;br /&gt;
   ПО ЗАПРОСУ  .RCVD  ЗАКАНЧИВАЕТСЯ  ТОЛЬКО  ПОСЛЕ  ВЫПОЛНЕНИЯ&lt;br /&gt;
   .SDAT ИЗ ДРУГОЙ ПРОГРАММЫ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .RCVD  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .MWAIT.&lt;br /&gt;
        ЗАПРОС .RCVDC ОСУЩЕСТВЛЯЕТ ПРИЕМ  ДАННЫХ  И  ЗАПУСКАЕТ&lt;br /&gt;
   ПОДПРОГРАММУ ЗАВЕРШЕНИЯ ПОСЛЕ ПОЛУЧЕНИЯ  СООБЩЕНИЯ  (АНАЛО-&lt;br /&gt;
   ГИЧНО .READC).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RCVDC AREA,BUF,WCNT,CRTN&lt;br /&gt;
   ГДЕ CRTN - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,26&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
 &lt;br /&gt;
        ЗАПРОС .RCVDW  ОСУЩЕСТВЛЯЕТ  ПРИЕМ  ДАННЫХ  И  ОЖИДАЕТ&lt;br /&gt;
   ОКОНЧАНИЯ ОПЕРАЦИИ. ВЫПОЛНЕНИЕ ВЫЗЫВАЮЩЕЙ ПРОГРАММЫ  ЗАДЕР-&lt;br /&gt;
   ЖИВАЕТСЯ ДО ОКОНЧАНИЯ ПЕРЕДАЧИ СООБЩЕНИЯ ДРУГОЙ ПРОГРАММОЙ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RCVDW AREA,BUF,WCNT&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,26&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   0&lt;br /&gt;
 &lt;br /&gt;
        КАК И В .RCVD, ПЕРВОЕ СЛОВО БУФЕРА ДЛЯ .RCVDC И .RCVDW&lt;br /&gt;
   БУДЕТ СОДЕРЖАТЬ ДЕЙСТВИТЕЛЬНОЕ КОЛИЧЕСТВО ПЕРЕДАННЫХ СЛОВ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .RCVDW  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CHCOPY.&lt;br /&gt;
 &lt;br /&gt;
        5.2.4. .SDAT,.SDATC,.SDATW (РЕЖИМ FB,ХМ)&lt;br /&gt;
        ЗАПРОСЫ .SDAT,.SDATC,.SDATW ИСПОЛЬЗУЮТСЯ ВМЕСТЕ С ЗАП-&lt;br /&gt;
   РОСАМИ .RCVD,.RCVDC, .RCVDW ДЛЯ ПЕРЕДАЧИ СООБЩЕНИЙ ИЛИ ДАН-&lt;br /&gt;
   НЫХ МЕЖДУ ПРОГРАММАМИ ПОД УПРАВЛЕНИЕМ МОНИТОРОВ FB ИЛИ XM.&lt;br /&gt;
        ЗАПРОСЫ   .SDAT,.SDATC,.SDATW   АНАЛОГИЧНО    ЗАПРОСАМ&lt;br /&gt;
   .WRITE,.WRITC,.WRITW, ТОЛЬКО ОСУЩЕСТВЛЯЮТ  ПЕРЕДАЧУ  ДАННЫХ&lt;br /&gt;
   НЕ НА УСТРОЙСТВО, А  ДРУГОЙ  ПРОГРАММЕ.  ПРИ  ИСПОЛЬЗОВАНИИ&lt;br /&gt;
   ЗАПРОСОВ .SDAT И .SDATC ДОЛЖНЫ БЫТЬ ОПРЕДЕЛЕНЫ ДОПОЛНИТЕЛЬ-&lt;br /&gt;
   НЫЕ ЭЛЕМЕНТЫ ДЛЯ ОЧЕРЕДИ ВВОДА-ВЫВОДА.&lt;br /&gt;
        .SDAT&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SDAT AREA,BUF,WCNT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА  ДЛЯ  СООБЩЕНИЙ  (ДАННЫХ),  КОТОРЫЕ&lt;br /&gt;
   БУДУТ ПЕРЕДАНЫ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ПЕРЕДАЧИ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,25&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   1&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .SDAT  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .MWAIT.&lt;br /&gt;
        .SDATC&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SDATC AREA,BUF,WCNT,CRTN&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА  ДЛЯ  СООБЩЕНИЙ  (ДАННЫХ),  КОТОРЫЕ&lt;br /&gt;
   БУДУТ ПЕРЕДАНЫ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ПЕРЕДАЧИ;&lt;br /&gt;
        CRTN - АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,25&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
        .SDATW&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SDATW AREA,BUF,WCNT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 5-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА  ДЛЯ  СООБЩЕНИЙ  (ДАННЫХ),  КОТОРЫЕ&lt;br /&gt;
   БУДУТ ПЕРЕДАНЫ;&lt;br /&gt;
        WCNT - КОЛИЧЕСТВО СЛОВ ДЛЯ ПЕРЕДАЧИ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,25&lt;br /&gt;
                  .WORD   &amp;lt;ЗАРЕЗЕРВИРОВАНО&amp;gt;&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .WORD   0&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .SDATW  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CHCOPY.&lt;br /&gt;
 &lt;br /&gt;
        5.2.5. .TTYIN,.TTINR&lt;br /&gt;
        ЗАПРОСЫ .TTYIN И .TTINR ИСПОЛЬЗУЮТСЯ ДЛЯ ПЕРЕДАЧИ СИМ-&lt;br /&gt;
   ВОЛОВ С ТЕРМИНАЛА В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        МАКРОРАСШИРЕНИЕ ДЛЯ .TTYIN:&lt;br /&gt;
                EMT 340&lt;br /&gt;
                BCS .-2&lt;br /&gt;
        МАКРОРАСШИРЕНИЕ ДЛЯ .TTINR:&lt;br /&gt;
                EMT 340&lt;br /&gt;
        ЗАПРОС .TTYIN ЦИКЛИТСЯ В ОЖИДАНИИ ПОДАЧИ  СИМВОЛА  ИЛИ&lt;br /&gt;
   СТРОКИ СИМВОЛОВ, В ТО ВРЕМЯ КАК ПОЛЬЗОВАТЕЛЬ МОЖЕТ ИЛИ ОЖИ-&lt;br /&gt;
   ДАТЬ,  ИЛИ  ПРОДОЛЖАТЬ  ВЫПОЛНЕНИЕ   ПРОГРАММЫ,   ИСПОЛЬЗУЯ&lt;br /&gt;
   .TTINR. ЕСЛИ ПО ЗАВЕРШЕНИЮ ВЫПОЛНЕНИЯ .TTINR  УСТАНАВЛИВАЕТ&lt;br /&gt;
   С-РАЗРЯД, ТО ЭТО  ЗНАЧИТ  ЧТО  В  БУФЕРЕ  ТЕРМИНАЛА  СИМВОЛ&lt;br /&gt;
   ОТСУТСТВУЕТ (ПОЛЬЗОВАТЕЛЬ ЕЩЕ НЕ НАПЕЧАТАЛ ЕГО). В  РЕЖИМАХ&lt;br /&gt;
   FB,ХМ И  SJ(БЕЗ  МУЛЬТИТЕРМИНАЛЬНОЙ  ПОДДЕРЖКИ)  .TTINR  НЕ&lt;br /&gt;
   УСТАНАВЛИВАЕТ С-РАЗРЯД, ЕСЛИ НЕ УСТАНОВЛЕН  6-ОЙ  РАЗРЯД  В&lt;br /&gt;
   СЛОВЕ СОСТОЯНИЯ ЗАДАНИЯ (ССЗ).&lt;br /&gt;
        СУЩЕСТВУЮТ ДВА РЕЖИМА ВВОДА С ТЕРМИНАЛА.  РЕЖИМ  ВВОДА&lt;br /&gt;
   ОПРЕДЕЛЯЕТСЯ СОДЕРЖИМЫМ 12-ГО РАЗРЯДА В ССЗ. ЕСЛИ СОДЕРЖИМОЕ&lt;br /&gt;
   12-ГО РАЗРЯДА НОЛЬ, ТО  ГОВОРЯТ  ОБ ОБЩЕМ РЕЖИМЕ ВВОДА-ВЫВО-&lt;br /&gt;
   ДА. В ЭТОМ РЕЖИМЕ  ВЫПОЛНЯЮТСЯ  СЛЕДУЮЩИЕ ДЕЙСТВИЯ:&lt;br /&gt;
        1) МОНИТОР ОБЕСПЕЧИВАЕТ &amp;quot;ЭХО&amp;quot; ВСЕМ СИМВОЛАМ,  ВВОДИМЫМ&lt;br /&gt;
   С ТЕРМИНАЛА;&lt;br /&gt;
        2) СТИРАНИЕ СИМВОЛОВ И СТРОК ОСУЩЕСТВЛЯЕТСЯ С  ПОМОЩЬЮ&lt;br /&gt;
   КОМАНД ЗБ И СУ/U СООТВЕТСТВЕННО;&lt;br /&gt;
        3) ДЛЯ ПЕРЕДАЧИ СИМВОЛОВ ПРОГРАММЕ  НЕОБХОДИМО  ПОДАТЬ&lt;br /&gt;
   ВК , ПС ИЛИ КОМАНДЫ СУ/Z ИЛИ СУ/С; ВОЗВРАТ КАРЕТКИ И  ПЕРЕ-&lt;br /&gt;
   ВОД СТРОКИ ТАКЖЕ ПЕРЕДАЮТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        ЕСЛИ 12-ЫЙ РАЗРЯД В ССЗ РАВЕН ЕДИНИЦЕ,  ТО  УСТАНАВЛИ-&lt;br /&gt;
   ВАЕТСЯ СПЕЦИАЛЬНЫЙ РЕЖИМ ВВОДА-ВЫВОДА. В ЭТОМ РЕЖИМЕ ВЫПОЛ-&lt;br /&gt;
   НЯЮТСЯ СЛЕДУЮЩИЕ ДЕЙСТВИЯ:&lt;br /&gt;
        1) МОНИТОР НЕ ВЫДАЕТ &amp;quot;ЭХО&amp;quot; СИМВОЛАМ, ВВОДИМЫМ С ТЕРМИ-&lt;br /&gt;
   НАЛА, КРОМЕ СУ/С И СУ/D;&lt;br /&gt;
        2) СУ/U И ЗБ НЕ ВЫПОЛНЯЮТ СВОИХ ФУНКЦИЙ;&lt;br /&gt;
        3) СИМВОЛЫ СРАЗУ ЖЕ ПЕРЕДАЮТСЯ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        В СПЕЦИАЛЬНОМ  РЕЖИМЕ  ПРОГРАММА  ПОЛЬЗОВАТЕЛЯ  ДОЛЖНА&lt;br /&gt;
   САМА ВЫПОЛНЯТЬ ПЕЧАТЬ ВВОДИМЫХ СИМВОЛОВ, ЕСЛИ ЭТО НЕОБХОДИ-&lt;br /&gt;
   МО (ИСКЛЮЧЕНИЕ СОСТАВЛЯЮТ СУ/С И СУ/D).&lt;br /&gt;
        12-ЫЙ РАЗРЯД В ССЗ ДОЛЖЕН  УСТАНАВЛИВАТЬСЯ  ПРОГРАММОЙ&lt;br /&gt;
   ПОЛЬЗОВАТЕЛЯ. ЭТОТ РАЗРЯД ОЧИЩАЕТСЯ, ЕСЛИ УПРАВЛЕНИЕ  ПЕРЕ-&lt;br /&gt;
   ДАЕТСЯ МОНИТОРУ.&lt;br /&gt;
        ДЕЙСТВИЯ СУ/F,СУ/В И СУ/Х НЕ  ЗАВИСЯТ  ОТ  СОДЕРЖИМОГО&lt;br /&gt;
   12-ГО РАЗРЯДА, ЕСЛИ РАНЕЕ НЕ БЫЛА  ПОДАНА  КОМАНДА  SET  TT&lt;br /&gt;
   NOFB).&lt;br /&gt;
        КОМАНДЫ СУ/S И СУ/Q ВЫПОЛНЯЮТСЯ МОНИТОРОМ, ЕСЛИ ТОЛЬКО&lt;br /&gt;
   В РЕЖИМЕ FB(XM) РАНЕЕ НЕ  БЫЛА  ВЫПОЛНЕНА  КОМАНДА  SET  TT&lt;br /&gt;
   NOPAGE.&lt;br /&gt;
        ЕСЛИ В РЕЖИМЕ FB (XM) СДЕЛАН ЗАПРОС ВВОДА,  А  СИМВОЛА&lt;br /&gt;
   НЕТ В НАЛИЧИИ, ТО ВЫПОЛНЕНИЕ ПРОГРАММЫ БЛОКИРУЕТСЯ  ДО  ТЕХ&lt;br /&gt;
   ПОР, ПОКА В БУФЕРЕ ВВОДА НЕ ПОЯВИТСЯ СИМВОЛ. ЭТО СПРАВЕДЛИ-&lt;br /&gt;
   ВО ДЛЯ .TTYIN И TTINR И НЕ ЗАВИСИТ  ОТ  РЕЖИМА  ВВОДА.  ДЛЯ&lt;br /&gt;
   ТОГО, ЧТОБЫ ПРОДОЛЖИТЬ ВЫПОЛНЕНИЕ ПРОГРАММЫ  (И  ОБЕСПЕЧИТЬ&lt;br /&gt;
   УСТАНОВКУ С-РАЗРЯДА В СЛУЧАЕ ОТСУТСТВИЯ  СИМВОЛА  В  БУФЕРЕ&lt;br /&gt;
   ВВОДА) НЕОБХОДИМО УСТАНОВИТЬ ПЕРЕД  .TTINR  6-ОЙ  РАЗРЯД  В&lt;br /&gt;
   ССЗ. 6-ОЙ РАЗРЯД ОЧИЩАЕТСЯ ПОСЛЕ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ ПРОГ-&lt;br /&gt;
   РАММЫ.&lt;br /&gt;
        ВВОДИМЫЕ ПО .TTYIN, .TTYINR СИМВОЛЫ  МОЖНО  РЕДАКТИРО-&lt;br /&gt;
   ВАТЬ С ПОМОЩЬЮ SL, ЕСЛИ ПРЕДВАРИТЕЛЬНО БЫЛИ ПОДАНЫ  КОМАНДЫ&lt;br /&gt;
   SET SL ON И SET SL TTYIN И СОДЕРЖИМОЕ 4-ГО И 12-ГО РАЗРЯДОВ&lt;br /&gt;
   ССЗ РАВНЫ НУЛЮ.&lt;br /&gt;
        ПРИ РЕДАКТИРОВАНИИ  ПОСРЕДСТВОМ  SL,  СОДЕРЖИМОЕ  6-ГО&lt;br /&gt;
   РАЗРЯДА ССЗ НЕ СУЩЕСТВЕННО,  И  ВЫПОЛНЕНИЕ  ЗАПРОСА  .TTINR&lt;br /&gt;
   БУДЕТ ЗАВЕРШЕНО ТОЛЬКО ПОСЛЕ ЗАВЕРШЕНИЯ ОПЕРАЦИИ РЕДАКТИРО-&lt;br /&gt;
   ВАНИЯ.&lt;br /&gt;
        ПРИМЕЧАНИЕ. ЗАПРОС  .TTYIN  НЕ  ОБСЛУЖИВАЕТ  КОСВЕННЫЕ&lt;br /&gt;
   ФАЙЛЫ. ДЛЯ ЭТОЙ ЦЕЛИ  НЕОБХОДИМО  ВОСПОЛЬЗОВАТЬСЯ  ЗАПРОСОМ&lt;br /&gt;
   .GTLIN. ПО .TTYIN НЕВОЗМОЖНО ПОЛУЧИТЬ СИМВОЛ ИЗ  КОСВЕННОГО&lt;br /&gt;
   ФАЙЛА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .TTYIN CHAR&lt;br /&gt;
        .TTINR&lt;br /&gt;
   ГДЕ CHAR - АДРЕС ЯЧЕЙКИ, КУДА  ПЕРЕСЫЛАЕТСЯ  КОД  ВВОДИМОГО&lt;br /&gt;
   СИМВОЛА; ЕСЛИ CHAR УКАЗАН В ЗАПРОСЕ, ТО КОД ПЕРЕСЫЛАЕТСЯ  В&lt;br /&gt;
   УКАЗАННУЮ ЯЧЕЙКУ И В R0; ЕСЛИ CHAR НЕ УКАЗАН, ТО В R0.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .TTYIN,.TTINR СМ. В ОПИСАНИИ ЗАП-&lt;br /&gt;
   РОСОВ .TTYOUT,.TTOUTR.&lt;br /&gt;
 &lt;br /&gt;
        5.2.6. .TTYOUT,.TTOUTR&lt;br /&gt;
        ЗАПРОСЫ .TTYOUT,.TTOUTR ИСПОЛЬЗУЮТСЯ ДЛЯ ПЕРЕДАЧИ СИМ-&lt;br /&gt;
   ВОЛОВ ИЗ R0 В БУФЕР ТЕРМИНАЛА. ДЕЙСТВИЯ ЭТИХ ЗАПРОСОВ  АНА-&lt;br /&gt;
   ЛОГИЧНЫ ДЕЙСТВИЯМ ЗАПРОСОВ .TTYIN,.TTINR. ЕСЛИ БУФЕР ТЕРМИ-&lt;br /&gt;
   НАЛА ЗАПОЛНЕН, ТО ЗАПРОС .TTYOUT ОЖИДАЕТ ПОЯВЛЕНИЯ В БУФЕРЕ&lt;br /&gt;
   СВОБОДНОГО МЕСТА ДЛЯ ВЫВОДИМОГО СИМВОЛА, ТОГДА КАК  .TTOUTR&lt;br /&gt;
   НЕ ОЖИДАЕТ СВОБОДНОГО МЕСТА И СИМВОЛ, НАХОДЯЩИЙСЯ В R0,  НА&lt;br /&gt;
   ТЕРМИНАЛ НЕ ВЫВОДИТСЯ. ЕСЛИ ПОСЛЕ ЗАВЕРШЕНИЯ .TTOUTR  УСТА-&lt;br /&gt;
   НОВЛЕН  С-РАЗРЯД, ТО  ЭТО  ГОВОРИТ О ТОМ, ЧТО В БУФЕРЕ  НЕТ&lt;br /&gt;
   СВОБОДНОГО МЕСТА И ЧТО СИМВОЛ НЕ БЫЛ ВЫВЕДЕН НА ТЕРМИНАЛ. В&lt;br /&gt;
   РЕЖИМАХ FB,ХМ ЗАПРОС .TTOUTR НЕ УСТАНАВЛИВАЕТ  С-РАЗРЯД.  В&lt;br /&gt;
   ЭТОМ СЛУЧАЕ, ВЫПОЛНЕНИЕ ПРОГРАММЫ БЛОКИРУЕТСЯ ДО  ПОЯВЛЕНИЯ&lt;br /&gt;
   В БУФЕРЕ  СВОБОДНОГО  МЕСТА.  ДЛЯ  ТОГО,  ЧТОБЫ  ПРОДОЛЖИТЬ&lt;br /&gt;
   ВЫПОЛНЕНИЕ  ПРОГРАММЫ  И  ОБЕСПЕЧИТЬ  УСТАНОВКУ  С-РАЗРЯДА,&lt;br /&gt;
   НЕОБХОДИМО В ССЗ УСТАНОВИТЬ 6-ОЙ РАЗРЯД.&lt;br /&gt;
        ПРИМЕЧАНИЕ. ЕСЛИ В ОСНОВНОМ  ЗАДАНИИ  УСТАНОВЛЕН  6-ОЙ&lt;br /&gt;
   РАЗРЯД В ССЗ, ТО ЗАПРОСЫ .TTYIN И  .TTYOUT  БУДУТ  ВЫЗЫВАТЬ&lt;br /&gt;
   БЛОКИРОВКУ ФОНОВОГО ЗАДАНИЯ. ЗАМЕТИМ, ЧТО КАЖДОЕ ЗАДАНИЕ  В&lt;br /&gt;
   ОСНОВНОМ ИЛИ ФОНОВОМ РЕЖИМЕ ИМЕЕТ СВОЕ  СОБСТВЕННОЕ  ССЗ  И&lt;br /&gt;
   ПОЭТОМУ ОНИ МОГУТ ИСПОЛЬЗОВАТЬ РАЗЛИЧНЫЕ РЕЖИМЫ РАБОТЫ ТЕР-&lt;br /&gt;
   МИНАЛА НЕЗАВИСИМО ДРУГ ОТ ДРУГА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .TTYOUT CHAR&lt;br /&gt;
        .TTOUTR&lt;br /&gt;
   ГДЕ CHAR - АДРЕС ЯЧЕЙКИ, СОДЕРЖАЩЕЙ  КОД  СИМВОЛА,  КОТОРЫЙ&lt;br /&gt;
   БУДЕТ ПЕРЕСЫЛАТЬСЯ В R0 С ПОСЛЕДУЮЩИМ ВЫВОДОМ НА  ТЕРМИНАЛ;&lt;br /&gt;
   ЕСЛИ CHAR НЕ УКАЗАН, НА ТЕРМИНАЛ ВЫВОДИТСЯ СОДЕРЖИМОЕ R0.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  TTIO.MAC&lt;br /&gt;
          .MCALL  .TTYIN,.TTYOUT,.TTINR,.TTOUTR,.EXIT&lt;br /&gt;
          JSW     =44       ;СЛОВО СОСТОЯНИЯ ЗАДАНИЯ&lt;br /&gt;
  START:  MOV     #BUFFER,R1&lt;br /&gt;
          CLR     R2&lt;br /&gt;
          BIS     #100,@#JSW ;УСТАНОВИТЬ 6 РАЗРЯД&lt;br /&gt;
  INLOOP: .TTINR             ;ВВЕСТИ СИМВОЛ С ТТ:&lt;br /&gt;
          BCS     NOCHR&lt;br /&gt;
  CHRIN:  MOVB    R0,(R1)+   ;ПЕРЕСЛАТЬ СИМВОЛ В БУФЕР&lt;br /&gt;
          INC     R2&lt;br /&gt;
          CMPB    R0,#12&lt;br /&gt;
          BNE     INLOOP&lt;br /&gt;
          MOV     #BUFFER,R1&lt;br /&gt;
  OUTLOOP:MOVB    (R1),R0    ;ПЕРЕСЛАТЬ СИМВОЛ В R0&lt;br /&gt;
          .TTOUTR            ;ВЫВЕСТИ СИМВОЛ НА ТТ:&lt;br /&gt;
          BCS     NOROOM&lt;br /&gt;
  CHROUT: DEC     R2&lt;br /&gt;
          BEQ     START&lt;br /&gt;
          INC     R1&lt;br /&gt;
          BR      OUTLOOP    ;ПЕЧАТАТЬ СЛЕДУЮЩИЙ СИМВОЛ&lt;br /&gt;
  NOCHR:  .TTINR&lt;br /&gt;
          BCC     CHRIN      ;ЕСТЬ СИМВОЛ?&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          BR      NOCHR&lt;br /&gt;
          &lt;br /&gt;
  NOROOM: MOVB    (R1),R0&lt;br /&gt;
          .TTOUTR&lt;br /&gt;
          BCC     CHROUT     ;ПРИ НАЛИЧИИ СИМВОЛА -&lt;br /&gt;
                             ;ПЕЧАТАТЬ ЕГО&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          BIC     #100,@#JSW ;ОЧИСТИТЬ 6 РАЗРЯД И&lt;br /&gt;
          .TTYOUT (R1)       ;ПЕЧАТАТЬ СИМВОЛ&lt;br /&gt;
          BIS     #100,@#JSW&lt;br /&gt;
          BR      CHROUT&lt;br /&gt;
 &lt;br /&gt;
  BUFFER: .BLKB   128.&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.2.7. .PRINT&lt;br /&gt;
        ЗАПРОС .PRINT ВЫЗЫВАЕТ ПЕЧАТЬ СТРОКИ СИМВОЛОВ КОИ-7 НА&lt;br /&gt;
   СИСТЕМНОМ ТЕРМИНАЛЕ.  В  РЕЖИМАХ  FB,ХМ  КАЖДОМУ  СООБЩЕНИЮ&lt;br /&gt;
   ПРЕДШЕСТВУЕТ ПОБУЖДАЮЩИЙ ЗНАК В&amp;gt; ИЛИ F&amp;gt;, В  ЗАВИСИМОСТИ  ОТ&lt;br /&gt;
   ТОГО, КАКОЕ ЗАДАНИЕ ЕГО ПЕЧАТАЕТ (В&amp;gt; - ФОНОВОЕ, F&amp;gt; - ОСНОВ-&lt;br /&gt;
   НОЕ). ЭТО ПРОИСХОДИТ В СЛУЧАЕ ПЕРЕКЛЮЧЕНИЯ СИСТЕМНОГО  ТЕР-&lt;br /&gt;
   МИНАЛА НА ОБСЛУЖИВАНИЕ ДРУГОГО ЗАДАНИЯ.&lt;br /&gt;
        ЕСЛИ ВВОД НА ТЕРМИНАЛ ВЫПОЛНЯЕТСЯ СИСТЕМНЫМ  ЗАДАНИЕМ,&lt;br /&gt;
   ТО В КАЧЕСТВЕ ПОБУЖДАЮЩЕГО ЗНАКА ПЕЧАТАЕТСЯ ИМЯ  СИСТЕМНОГО&lt;br /&gt;
   ЗАДАНИЯ.&lt;br /&gt;
        СТРОКА ТЕКСТА,  КОТОРАЯ  ВЫВОДИТСЯ  НА  ПЕЧАТЬ,  МОЖЕТ&lt;br /&gt;
   ОКАНЧИВАТЬСЯ КАК НУЛЕВЫМ (0) БАЙТОМ, ТАК И  БАЙТОМ  200.  В&lt;br /&gt;
   ПЕРВОМ СЛУЧАЕ, В ОТЛИЧИИ ОТ  ВТОРОГО,  ВЫВОД  АВТОМАТИЧЕСКИ&lt;br /&gt;
   ЗАКАНЧИВАЕТСЯ ВК И ПС .&lt;br /&gt;
        УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ  ПОСЛЕ&lt;br /&gt;
   ТОГО КАК ВСЕ СИМВОЛЫ БУДУТ ЗАПИСАНЫ В БУФЕР ВЫВОДА  МОНИТО-&lt;br /&gt;
   РА.&lt;br /&gt;
        ОСНОВНОЕ ЗАДАНИЕ ПЕЧАТАЕТ СООБЩЕНИЕ СРАЗУ ЖЕ,  НЕЗАВИ-&lt;br /&gt;
   СИМО ОТ СОСТОЯНИЯ ФОНОВОГО ЗАДАНИЯ.&lt;br /&gt;
        ТАКИМ ОБРАЗОМ, ДЛЯ  ПЕЧАТИ  СРОЧНЫХ  СООБЩЕНИЙ  ДОЛЖЕН&lt;br /&gt;
   ИСПОЛЬЗОВАТЬСЯ ЗАПРОС .PRINT, А НЕ .TTYIN ИЛИ .TTYOUT.&lt;br /&gt;
        ЕСЛИ ФОНОВОЕ ЗАДАНИЕ ПЕЧАТАЕТ ПОБУЖДАЮЩИЙ ЗНАК И ЗВЕЗ-&lt;br /&gt;
   ДОЧКУ, ТО СИСТЕМНЫЙ ТЕРМИНАЛ БУДЕТ ПРИНАДЛЕЖАТЬ ЕМУ И  ЗАП-&lt;br /&gt;
   РОСЫ .TTYOUT ИЗ ОСНОВНОГО  ЗАДАНИЯ  ВЫПОЛНЯТЬСЯ  НЕ  БУДУТ,&lt;br /&gt;
   ПОКА ДЛЯ ФОНОВОГО НЕ БУДЕТ ВЫПОЛНЕН ВК .&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .PRINT ADDR&lt;br /&gt;
   ГДЕ ADDR - АДРЕС СТРОКИ, КОТОРУЮ НЕОБХОДИМО НАПЕЧАТАТЬ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  PRINT.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ЗАПРОС .PRINT ИСПОЛЬЗУЕТСЯ ДЛЯ ПЕЧАТИ&lt;br /&gt;
  ;СИМВОЛОВ, ВВОДИМЫХ С ТЕРМИНАЛА.&lt;br /&gt;
          .MCALL  .GTLIN,.PRINT,.EXIT&lt;br /&gt;
  START:  .GTLIN  #BUFF,#PROMPT   ;ВВОД СИМВОЛОВ С ТЕРМИНАЛА&lt;br /&gt;
          TSTB    BUFF            ;СТРОКА ПУСТАЯ?&lt;br /&gt;
          BEQ     1$              ;ДА&lt;br /&gt;
          .PRINT  #BUFF           ;НЕТ-ПЕЧАТЬ СТРОКИ&lt;br /&gt;
          CLRB    BUFF&lt;br /&gt;
          BR      START&lt;br /&gt;
  1$:     .EXIT&lt;br /&gt;
  BUFF:   .BLKW   41.&lt;br /&gt;
  PROMPT: .ASCII  /ВВЕДИТЕ СТРОКУ :   /&amp;lt;200&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
          .END START&lt;br /&gt;
 &lt;br /&gt;
        5.2.8. .MTIN&lt;br /&gt;
        ЗАПРОС .MTIN ЯВЛЯЕТСЯ МУЛЬТИТЕРМИНАЛЬНОЙ ФОРМОЙ ЗАПРО-&lt;br /&gt;
   СА .TTYIN. ЗАПРОС .MTIN ПЕРЕСЫЛАЕТ ОДИН ИЛИ БОЛЕЕ  СИМВОЛОВ&lt;br /&gt;
   ИЗ БУФЕРА ВВОДА МОНИТОРА В БУФЕР, УКАЗАННЫЙ  ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
   ТЕРМИНАЛ ДОЛЖЕН БЫТЬ ЛОГИЧЕСКИ СВЯЗАН С  ТЕКУЩИМ  ЗАДАНИЕМ.&lt;br /&gt;
   ЕСЛИ ЗАПРОС ВЫПОЛНЕН  УСПЕШНО,  ТО  МОДИФИЦИРОВАННЫЙ  АДРЕС&lt;br /&gt;
   БУФЕРА ПОЛЬЗОВАТЕЛЯ БУДЕТ ЗАПИСАН В R0 . ЕСЛИ РАЗРЯД  TCBIT&lt;br /&gt;
   УСТАНОВЛЕН В СЛОВЕ M.TSTS, ТО ЗАПРОС .MTIN УСТАНАВЛИВАЕТ С-&lt;br /&gt;
   РАЗРЯД И ПЕРЕДАЕТ  УПРАВЛЕНИЕ  ВЫЗЫВАЮЩЕЙ  ПРОГРАММЕ,  ЕСЛИ&lt;br /&gt;
   ВВОД С ТЕРМИНАЛА НЕВОЗМОЖЕН (Т.Е. НЕТ СТРОКИ,  ЕСЛИ  РАЗРЯД&lt;br /&gt;
   TTSPC ОЧИЩЕН ИЛИ НЕТ СИМВОЛА В БУФЕРЕ  ВВОДА,  ЕСЛИ  РАЗРЯД&lt;br /&gt;
   TTSPC УСТАНОВЛЕН). В ПРОТИВНОМ СЛУЧАЕ, .MTIN БУДЕТ  ОЖИДАТЬ&lt;br /&gt;
   ОПЕРАЦИИ ВВОДА  И,  ТЕМ  САМЫМ,  ВЫПОЛНЕНИЕ  ЗАДАНИЯ  БУДЕТ&lt;br /&gt;
   ПРИОСТАНОВЛЕНО.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTIN AREA,ADDR,UNIT[,CHRCNT]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БУФЕРА ПОЛЬЗОВАТЕЛЯ;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА (ЛНТ);&lt;br /&gt;
        CHRCNT - КОЛИЧЕСТВО ПЕРЕСЫЛАЕМЫХ  СИМВОЛОВ  (ОТ  1  ДО&lt;br /&gt;
   255); ЕСЛИ ЭТОТ АРГУМЕНТ ОПУЩЕН, ТО ПЕРЕДАЕТСЯ ОДИН СИМВОЛ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   2,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT,CHRCNT&lt;br /&gt;
&lt;br /&gt;
        5.2.9. .MTOUT&lt;br /&gt;
        ЗАПРОС .MTOUT ЯВЛЯЕТСЯ МУЛЬТИТЕРМИНАЛЬНОЙ ФОРМОЙ  ЗАП-&lt;br /&gt;
   РОСА .TTYOUT. ЗАПРОС .MTOUT ПЕРЕСЫЛАЕТ ОДИН ИЛИ БОЛЕЕ  СИМ-&lt;br /&gt;
   ВОЛОВ ИЗ БУФЕРА ПОЛЬЗОВАТЕЛЯ В БУФЕР ВЫВОДА ТЕРМИНАЛА. ТЕР-&lt;br /&gt;
   МИНАЛ ДОЛЖЕН БЫТЬ ЛОГИЧЕСКИ СВЯЗАН С ЗАДАНИЕМ.  МОДИФИЦИРО-&lt;br /&gt;
   ВАННЫЙ АДРЕС БУФЕРА ПОЛЬЗОВАТЕЛЯ БУДЕТ ЗАПИСАН В  R0,  ЕСЛИ&lt;br /&gt;
   ЗАПРОС ВЫПОЛНЕН УСПЕШНО. ЕСЛИ В БУФЕРЕ ВЫВОДА НЕТ СВОБОДНО-&lt;br /&gt;
   ГО МЕСТА И РАЗРЯД  TCBIT  УСТАНОВЛЕН  В  СЛОВЕ  M.TSTS,  ТО&lt;br /&gt;
   .MTOUT УСТАНАВЛИВАЕТ С-РАЗРЯД И ПЕРЕДАЕТ  УПРАВЛЕНИЕ  ВЫЗЫ-&lt;br /&gt;
   ВАЮЩЕЙ ПРОГРАММЕ.  ЕСЛИ  РАЗРЯД  TCBIT  ОЧИЩЕН,  ВЫПОЛНЕНИЕ&lt;br /&gt;
   ЗАДАНИЯ ПРИОСТАНАВЛИВАЕТСЯ ДО ТЕХ  ПОР,  ПОКА  НЕ  ПОЯВИТСЯ&lt;br /&gt;
   СВОБОДНОЕ МЕСТО В БУФЕРЕ ВЫВОДА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTOUT AREA,ADDR,UNIT[,CHRCNT]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БУФЕРА ПОЛЬЗОВАТЕЛЯ;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА;&lt;br /&gt;
        CHRCNT - КОЛИЧЕСТВО ПЕРЕДАВАЕМЫХ  СИМВОЛОВ  (ОТ  1  ДО&lt;br /&gt;
   255); ЕСЛИ ЭТОТ АРГУМЕНТ ОПУЩЕН, ТО ПЕРЕДАЕТСЯ ОДИН СИМВОЛ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   3,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT,CHRCNT&lt;br /&gt;
 &lt;br /&gt;
       5.2.10. .MTPRNT&lt;br /&gt;
        ЗАПРОС .MTPRNT ЯВЛЯЕТСЯ МУЛЬТИТЕРМИНАЛЬНОЙ ФОРМОЙ ЗАП-&lt;br /&gt;
   РОСА .PRINT. ОН ОСУЩЕСТВЛЯЕТ  ВЫВОД  ОДНОЙ  ИЛИ  НЕСКОЛЬКИХ&lt;br /&gt;
   СТРОК СИМВОЛОВ НА УКАЗАННЫЙ ТЕРМИНАЛ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTPRNT AREA,ADDR,UNIT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС  СТРОКИ,  КОТОРУЮ  НЕОБХОДИМО  НАПЕЧАТАТЬ&lt;br /&gt;
   (Т.Е. .ASCII /СТРОКА/ &amp;lt;200&amp;gt; ИЛИ .ASCIZ /СТРОКА/);&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   7,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT&lt;br /&gt;
 &lt;br /&gt;
       5.2.11. .SPFUN&lt;br /&gt;
        ЗАПРОС .SPFUN ИСПОЛЬЗУЕТСЯ ГЛАВНЫМ ОБРАЗОМ  ДРАЙВЕРАМИ&lt;br /&gt;
   УСТРОЙСТВ ДЛЯ ВЫПОЛНЕНИЯ СПЕЦИАЛЬНЫХ ФУНКЦИЙ, ЗАВИСЯЩИХ  ОТ&lt;br /&gt;
   ЭТИХ УСТРОЙСТВ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SPFUN AREA,CHAN,FUNC,BUF,WCNT,BLK[,CRTN]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 6-ТИ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        FUNC - КОД ФУНКЦИИ, КОТОРАЯ БУДЕТ ВЫПОЛНЯТЬСЯ;&lt;br /&gt;
        BUF - АДРЕС БУФЕРА; ЭТОТ АРГУМЕНТ  ДОЛЖЕН  БЫТЬ  РАВЕН&lt;br /&gt;
   НУЛЮ, ЕСЛИ ДЛЯ ОПЕРАЦИИ БУФЕР НЕ ТРЕБУЕТСЯ;&lt;br /&gt;
        CRTN - АДРЕС ПОДПРОГРАММЫ  ЗАВЕРШЕНИЯ;  ЕСЛИ  CRTN  НЕ&lt;br /&gt;
   УКАЗАН, ТО ЕГО ЗНАЧЕНИЕ АВТОМАТИЧЕСКИ ПРИРАВНИВАЕТСЯ  НУЛЮ;&lt;br /&gt;
   ЕСЛИ CRTN РАВЕН НУЛЮ, ТО УПРАВЛЕНИЕ ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
   БУДЕТ ПЕРЕДАНО ПОСЛЕ ЗАВЕРШЕНИЯ ОПЕРАЦИИ; ЕСЛИ  CRTN  РАВЕН&lt;br /&gt;
   1, УПРАВЛЕНИЕ БУДЕТ ПЕРЕДАНО ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ  НЕМЕД-&lt;br /&gt;
   ЛЕННО ПОСЛЕ НАЧАЛА ОПЕРАЦИИ; ЕСЛИ CRTN=N ,  ТО  N  -  АДРЕС&lt;br /&gt;
   ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ (N&amp;gt;500 (ВОСЬМЕРИЧНОЙ)).&lt;br /&gt;
        АРГУМЕНТЫ  CHAN,BLK,WCNT  ТЕ  ЖЕ,  ЧТО  И  В  ЗАПРОСАХ&lt;br /&gt;
   .READ/.WRITE. ОНИ ИСПОЛЬЗУЮТСЯ ТОЛЬКО ТОГДА, КОГДА  НЕОБХО-&lt;br /&gt;
   ДИМО ПРОИЗВЕСТИ ЗАПИСЬ НА  МАГНИТНУЮ  ЛЕНТУ  С  РАСШИРЕННЫМ&lt;br /&gt;
   МЕЖФАЙЛОВЫМ ПРОМЕЖУТКОМ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,32&lt;br /&gt;
                  .WORD   BLK&lt;br /&gt;
                  .WORD   BUF&lt;br /&gt;
                  .WORD   WCNT&lt;br /&gt;
                  .BYTE   377,FUNC&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
        В ТАБЛ.9 ПРИВОДЯТСЯ ФУНКЦИИ  ЗАПРОСА  .SPFUN  И  СООТ-&lt;br /&gt;
   ВЕТСТВУЮЩИЕ ИМ КОДЫ.&lt;br /&gt;
 &lt;br /&gt;
                                                    ТАБЛИЦА 9&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    !                                 !         КОД           !&lt;br /&gt;
    !          ФУНКЦИЯ                !-----------------------!&lt;br /&gt;
    !                                 !  MТ !  DX !  DY !  LD !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    ! ПЕРЕМОТКА ДО ТОЧКИ ЗАГРУЗКИ     ! 373 !     !     !     !&lt;br /&gt;
    ! ЗАПИСЬ МЕТКИ EOF                ! 377 !     !     !     !&lt;br /&gt;
    ! ПЕРЕМОТКА ВПЕРЕД НА ОДИН БЛОК   ! 376 !     !     !     !&lt;br /&gt;
    ! ПЕРЕМОТКА НАЗАД НА ОДИН БЛОК    ! 375 !     !     !     !&lt;br /&gt;
    ! ЗАПИСЬ                          ! 371 ! 376 ! 376 !     !&lt;br /&gt;
    ! ЧТЕНИЕ                          ! 370 ! 377 ! 377 !     !&lt;br /&gt;
    ! ЗАПИСЬ С РАСШИРЕННЫМ МЕЖФАЙЛОВЫМ!     !     !     !     !&lt;br /&gt;
    ! ПРОМЕЖУТКОМ                     ! 374 !     !     !     !&lt;br /&gt;
    ! ОБРАТНАЯ ПЕРЕМОТКА В АВТОНОМНОМ !     !     !     !     !&lt;br /&gt;
    ! РЕЖИМЕ                          ! 372 !     !     !     !&lt;br /&gt;
    ! ЗАПИСЬ СО СТИРАНИЕМ МАРКЕРА     !     !     !     !     !&lt;br /&gt;
    ! ДАННЫХ                          !     ! 375 ! 375 !     !&lt;br /&gt;
    ! ОПРЕДЕЛЕНИЕ РАЗМЕРА УСТРОЙСТВА  !     !     !     !     !&lt;br /&gt;
    ! (ТОМА)                          !     !  -  ! 373 ! 373 !&lt;br /&gt;
    ! ЧТЕНИЕ(ЗАПИСЬ) ТАБЛИЦЫ ТРАНСЛЯ- !     !     !     !     !&lt;br /&gt;
    ! ЦИИ                             !     !     !     ! 372 !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ДЛЯ ИСПОЛЬЗОВАНИЯ  ЗАПРОСА  .SPFUN  НЕОБХОДИМО,  ЧТОБЫ&lt;br /&gt;
   ДРАЙВЕР СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА НАХОДИЛСЯ  В  ПАМЯТИ  И&lt;br /&gt;
   КАНАЛ БЫЛ СВЯЗАН С ФАЙЛОМ ПО ЗАПРОСУ .LOOKUP.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  SPFUN.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСА .SPFUN.&lt;br /&gt;
          .MCALL  .SPFUN,.FETCH,.LOOKUP,.PRINT,.CLOSE,.EXIT&lt;br /&gt;
  START:  .FETCH  #DSPC,#MT       ;ЗАГРУЗИТЬ ДРАЙВЕР МТ:&lt;br /&gt;
          BCS     1$&lt;br /&gt;
          .LOOKUP #AREA,#4,#MT    ;ОТКРЫТЬ КАНАЛ&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .SPFUN  #AREA,#4,#373,#0;ПЕРЕМОТКА ДО ТОЧКИ&lt;br /&gt;
                                  ;ЗАГРУЗКИ&lt;br /&gt;
          .BCS    3$&lt;br /&gt;
          .CLOSE  #4&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     MOV     #FERR,R0&lt;br /&gt;
          BR      5$&lt;br /&gt;
  2$:     MOV     #LKERR,R0&lt;br /&gt;
          BR      5$&lt;br /&gt;
  3$:     MOV     #SPERR,R0&lt;br /&gt;
  5$:     .PRINT&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .WORD   0&lt;br /&gt;
  MT:     .RAD50  /MT /&lt;br /&gt;
          .WORD   0,0,0&lt;br /&gt;
  FERR:   .ASCIZ  /ОШИБКА .FETCH/&lt;br /&gt;
  LKERR:  .ASCIZ  /ОШИБКА .LOOKUP/&lt;br /&gt;
  SPERR:  .ASCIZ  /ОШИБКА .SPFUN/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPC    =.&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.3. ЗАПРОСЫ ОБЩЕГО НАЗНАЧЕНИЯ&lt;br /&gt;
        5.3.1. .CDFN&lt;br /&gt;
        ЗАПРОС .CDFN ИСПОЛЬЗУЕТСЯ  ДЛЯ  ПЕРЕОПРЕДЕЛЕНИЯ  ЧИСЛА&lt;br /&gt;
   КАНАЛОВ ВВОДА-ВЫВОДА. КАЖДОЕ  ЗАДАНИЕ  НЕЗАВИСИМО  ОТ  ТОГО&lt;br /&gt;
   ЯВЛЯЕТСЯ ЛИ ОНО ОСНОВНЫМ ИЛИ ФОНОВЫМ, ПЕРВОНАЧАЛЬНО ОБЕСПЕ-&lt;br /&gt;
   ЧИВАЕТСЯ 16 (ДЕСЯТИЧНОЕ) КАНАЛАМИ  ВВОДА-ВЫВОДА  (ОТ  0  ДО&lt;br /&gt;
   15). ЗАПРОС .CDFN ПОЗВОЛЯЕТ УВЕЛИЧИТЬ ЧИСЛО КАНАЛОВ  ДО 255&lt;br /&gt;
   (ДЕСЯТИЧНОЕ) (ОТ 0 ДО 254). КАНАЛ С НОМЕРОМ 255 ИСПОЛЬЗУЕТ-&lt;br /&gt;
   СЯ МОНИТОРОМ. ОБЛАСТЬ ПАМЯТИ ДЛЯ НОВЫХ КАНАЛОВ ОПРЕДЕЛЯЕТСЯ&lt;br /&gt;
   В ПРЕДЕЛАХ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ. ПОД КАЖДЫЙ КАНАЛ  ВВОДА-&lt;br /&gt;
   ВЫВОДА ОТВОДИТСЯ ПЯТЬ СЛОВ (СЕМЬ СЛОВ ДЛЯ МОНИТОРА  ХМ).  В&lt;br /&gt;
   РЕЖИМЕ ХМ ОБЛАСТЬ ПАМЯТИ ДЛЯ ДОПОЛНИТЕЛЬНЫХ  КАНАЛОВ,  УКА-&lt;br /&gt;
   ЗАННЫХ В ЗАПРОСЕ .CDFN, ДОЛЖНА РАСПОЛАГАТЬСЯ В  НИЖНИХ  28К&lt;br /&gt;
   ОПЕРАТИВНОЙ  ПАМЯТИ.  РЕКОМЕНДУЕТСЯ,  ЧТОБЫ  ЗАПРОС   .CDFN&lt;br /&gt;
   ВЫПОЛНЯЛСЯ  В  НАЧАЛЕ  ПРОГРАММЫ  ПЕРЕД  ОПЕРАЦИЯМИ  ВВОДА-&lt;br /&gt;
   ВЫВОДА. ЕСЛИ В ПРОГРАММЕ ИСПОЛЬЗУЕТСЯ БОЛЕЕ ОДНОГО  ЗАПРОСА&lt;br /&gt;
   .CDFN, ТО ОБЛАСТИ КАНАЛОВ ДЛЯ  НИХ  НЕ  ДОЛЖНЫ  ПЕРЕКРЫВАТЬ&lt;br /&gt;
   ДРУГ ДРУГА, НО МОГУТ ИМЕТЬ ОДИН И ТОТ ЖЕ  НАЧАЛЬНЫЙ  АДРЕС.&lt;br /&gt;
   ДВА ЗАПРОСА .SRESET И .HRESET ВОССТАНАВЛИВАЮТ  ПЕРВОНАЧАЛЬ-&lt;br /&gt;
   НОЕ ЧИСЛО КАНАЛОВ (16 (ДЕСЯТИЧНОЙ)). СЛЕДОВАТЕЛЬНО ВСЕ ЗАП-&lt;br /&gt;
   РОСЫ .CDFN ДОЛЖНЫ ВЫПОЛНЯТЬСЯ ПОВТОРНО ПОСЛЕ  ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
   .SRESET ИЛИ .HRESET.&lt;br /&gt;
        ЗАМЕТИМ, ЧТО ЗАПРОС  .CDFN  ОПРЕДЕЛЯЕТ  НОВЫЕ  КАНАЛЫ.&lt;br /&gt;
   ОБЛАСТЬ ПАМЯТИ ДЛЯ РАНЕЕ ОПРЕДЕЛЕННЫХ  КАНАЛОВ  НЕ  ИСПОЛЬ-&lt;br /&gt;
   ЗУЕТСЯ. ТАК, ЗАПРОС .CDFN ДЛЯ 20 (ДЕСЯТИЧНОЙ) КАНАЛОВ  ВВО-&lt;br /&gt;
   ДА-ВЫВОДА (В ТО ВРЕМЯ КАК  16  ПЕРВОНАЧАЛЬНЫХ  КАНАЛОВ  УЖЕ&lt;br /&gt;
   ОПРЕДЕЛЕНЫ) СОЗДАЕТ 20 НОВЫХ КАНАЛОВ ВВОДА-ВЫВОДА.  ОБЛАСТЬ&lt;br /&gt;
   ДЛЯ 16-ТИ ПЕРВОНАЧАЛЬНЫХ КАНАЛОВ НЕ ИСПОЛЬЗУЕТСЯ, НО СОДЕР-&lt;br /&gt;
   ЖИМОЕ СТАРЫХ КАНАЛОВ БУДЕТ СКОПИРОВАНО В НОВЫЕ.&lt;br /&gt;
        ДЛЯ ПРОГРАММЫ  С  ОВЕРЛЕЙНОЙ  СТРУКТУРОЙ  15-ЫЙ  КАНАЛ&lt;br /&gt;
   ИСПОЛЬЗУЕТСЯ ОВЕРЛЕЙНЫМ ДРАЙВЕРОМ И НЕ ДОЛЖЕН ИЗМЕНЯТЬСЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CDFN AREA,ADDR,NUM&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ОБЛАСТИ ПАМЯТИ ДЛЯ НОВЫХ КАНАЛОВ;&lt;br /&gt;
        NUM - ЧИСЛО СОЗДАВАЕМЫХ КАНАЛОВ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,15&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .WORD   NUM&lt;br /&gt;
 &lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  CDFN.MAC&lt;br /&gt;
  ; В ЭТОМ ПРИМЕРЕ ЗАПРОС .CDFN ИСПОЛЬЗУЕТСЯ ДЛЯ&lt;br /&gt;
  ; ОПРЕДЕЛЕНИЯ 32. НОВЫХ КАНАЛОВ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .CDFN,.PRINT,.EXIT,.HRESET&lt;br /&gt;
 &lt;br /&gt;
  START:  .CDFN   #AREA,#CHAN,#255.   ;ОПРЕДЕЛИТЬ 32.КАНАЛА&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #MSG1               ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
          .EXIT                       ;ВЫХОД ИЗ ПРОГРАММЫ&lt;br /&gt;
  1$:     .PRINT  #MSG2               ;ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
          .HRESET&lt;br /&gt;
          .EXIT                       ;ВЫХОД ИЗ ПРОГРАММЫ&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   3                   ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
  CHAN:   .BLKW   5*255.              ;ОБЛАСТЬ ДЛЯ КАНАЛОВ&lt;br /&gt;
 &lt;br /&gt;
  MSG1:   .ASCIZ  /ОШИБКА .CDFN/&lt;br /&gt;
  MSG2:   .ASCII  /ОПРЕДЕЛЕНЫ 32. НОВЫХ КАНАЛА/&amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
          .ASCIZ /ВОЗВРАТ К 16. КАНАЛАМ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.3.2. .CHAIN&lt;br /&gt;
        ЗАПРОС .CHAIN ПОЗВОЛЯЕТ ОДНОЙ ФОНОВОЙ  ПРОГРАММЕ  ИНИ-&lt;br /&gt;
   ЦИИРОВАТЬ ВЫПОЛНЕНИЕ ДРУГОЙ ФОНОВОЙ  ПРОГРАММЫ  БЕЗ  ВМЕША-&lt;br /&gt;
   ТЕЛЬСТВА ОПЕРАТОРА. ЭТОТ ПРОЦЕСС МОЖЕТ ПОВТОРЯТЬСЯ, И  ПОЗ-&lt;br /&gt;
   ВОЛЯЕТ ОРГАНИЗОВАТЬ  ПОСЛЕДОВАТЕЛЬНОЕ  ВЫПОЛНЕНИЕ  БОЛЬШОГО&lt;br /&gt;
   ЧИСЛА ПРОГРАММ.&lt;br /&gt;
        ЯЧЕЙКИ 500-507 ДОЛЖНЫ СОДЕРЖАТЬ ИМЯ УСТРОЙСТВА  И  ИМЯ&lt;br /&gt;
   ФАЙЛА (В КОДАХ RADIX-50), КОТОРЫЙ НЕОБХОДИМО ВЫЗВАТЬ. ЯЧЕЙ-&lt;br /&gt;
   КИ 510-777 ИСПОЛЬЗУЮТСЯ ДЛЯ ПЕРЕДАЧИ ИНФОРМАЦИИ МЕЖДУ  ПОС-&lt;br /&gt;
   ЛЕДОВАТЕЛЬНО ВЫПОЛНЯЕМЫМИ ПРОГРАММАМИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ: .CHAIN&lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
        1) СОДЕРЖИМОЕ ОБЛАСТЕЙ ОПЕРАТИВНОЙ ПАМЯТИ, ЗА ИСКЛЮЧЕ-&lt;br /&gt;
   НИЕМ ОБЛАСТИ ПАМЯТИ КОТОРУЮ ЗАНИМАЕТ РЕЗИДЕНТНЫЙ МОНИТОР  И&lt;br /&gt;
   ЯЧЕЕК 500-777, МОЖЕТ ИЗМЕНЯТЬСЯ  ПОСЛЕ  ВЫПОЛНЕНИЯ  .CHAIN;&lt;br /&gt;
   ЕСЛИ .CHAIN ВЫПОЛНЯЕТСЯ ИЗ ВИРТУАЛЬНОГО ЗАДАНИЯ, ТО  СОДЕР-&lt;br /&gt;
   ЖИМОЕ ЯЧЕЕК 500-777 НЕ СОХРАНЯЕТСЯ.&lt;br /&gt;
        2) КАНАЛЫ ВВОДА-ВЫВОДА ОСТАЮТСЯ ОТКРЫТЫМИ ПОСЛЕ ВЫПОЛ-&lt;br /&gt;
   НЕНИЯ ЗАПРОСА .CHAIN ДЛЯ  ИСПОЛЬЗОВАНИЯ  НОВОЙ  ПРОГРАММОЙ.&lt;br /&gt;
   ОДНАКО, КАНАЛЫ ВВОДА-ВЫВОДА, ОТКРЫТЫЕ ПО ЗАПРОСУ  .CDFN  НЕ&lt;br /&gt;
   МОГУТ ИСПОЛЬЗОВАТЬСЯ. ТАК КАК  ПО  ЗАПРОСУ  .CHAIN  МОНИТОР&lt;br /&gt;
   ВОССТАНАВЛИВАЕТ ПЕРВОНАЧАЛЬНОЕ ЧИСЛО КАНАЛОВ (16  (ДЕСЯТИЧ-&lt;br /&gt;
   НОЙ)), ТО ПРОГРАММА, КОТОРАЯ ОСТАВЛЯЕТ ФАЙЛЫ ОТКРЫТЫМИ  ПРИ&lt;br /&gt;
   ВЫПОЛНЕНИИ .CHAIN НЕ ДОЛЖНА ИСПОЛЬЗОВАТЬ .CDFN. НЕРЕЗИДЕНТ-&lt;br /&gt;
   НЫЕ ДРАЙВЕРЫ УСТРОЙСТВ УДАЛЯЮТСЯ ИЗ ПАМЯТИ  ПРИ  ВЫПОЛНЕНИИ&lt;br /&gt;
   .CHAIN, ПОЭТОМУ ОНИ ДОЛЖНЫ БЫТЬ ВНОВЬ ЗАГРУЖЕНЫ НОВОЙ ПРОГ-&lt;br /&gt;
   РАММОЙ.&lt;br /&gt;
        3) ПО 8-ОМУ РАЗРЯДУ ССЗ  ПРОГРАММА  МОЖЕТ  ОПРЕДЕЛИТЬ,&lt;br /&gt;
   КАК ОНА БЫЛА ЗАГРУЖЕНА - ПО ЗАПРОСУ .CHAIN ИЛИ  ПО  КОМАНДЕ&lt;br /&gt;
   RUN.   РАЗРЯД   УСТАНАВЛИВАЕТСЯ   ВО    ВРЕМЯ    ВЫПОЛНЕНИЯ&lt;br /&gt;
   ПРОГРАММЫ, ЕСЛИ ОНА БЫЛА ЗАГРУЖЕНА С ПОМОЩЬЮ  .CHAIN.  ЕСЛИ&lt;br /&gt;
   ПРОГРАММА, ЗАНИМАЮЩАЯ ЯЧЕЙКИ ОТ 500 ДО  777,  ПРЕДНАЗНАЧЕНА&lt;br /&gt;
   ДЛЯ ЗАГРУЗКИ ПО ЗАПРОСУ .CHAIN, ТО В НЕЙ ДОЛЖЕН БЫТЬ  УСТА-&lt;br /&gt;
   НОВЛЕН 8-ОЙ РАЗРЯД В ССЗ ВО ВРЕМЯ  ЕЕ  ТРАНСЛЯЦИИ.  В  ЭТОМ&lt;br /&gt;
   СЛУЧАЕ, ПРОГРАММА БУДЕТ ЗАГРУЖЕНА ПРАВИЛЬНО. ЕСЛИ РАЗРЯД НЕ&lt;br /&gt;
   УСТАНОВЛЕН, ЯЧЕЙКИ 500-777, СОДЕРЖИМОЕ КОТОРЫХ  СОХРАНЯЕТСЯ&lt;br /&gt;
   ОТ ПРЕДЫДУЩЕЙ ПРОГРАММЫ, МОГУТ ВЫЗВАТЬ НЕПРАВИЛЬНУЮ  РАБОТУ&lt;br /&gt;
   НОВОЙ ПРОГРАММЫ.&lt;br /&gt;
        4) ДЛЯ ЗАПРОСА .CHAIN ХАРАКТЕРНЫ ТЕ ЖЕ ОШИБКИ,  ЧТО  И&lt;br /&gt;
   ДЛЯ КОМАНДЫ RUN.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
  ; В ЭТОМ ПРИМЕРЕ ПРОГРАММА CHAIN1.SAV ЗАГРУЖАЕТСЯ&lt;br /&gt;
  ; ИЗ ПРОГРАММЫ CHAIN.SAV ПОСРЕДСТВОМ ЗАПРОСА .CHAIN&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  CHAIN.MAC&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .CHAIN,.TTYIN,.PRINT&lt;br /&gt;
 &lt;br /&gt;
  START:  MOV     #500,R1&lt;br /&gt;
          MOV     #CHPTR,R2&lt;br /&gt;
          .REPT   4&lt;br /&gt;
          MOV     (R2)+,(R1)+   ;ИМЯ ФАЙЛА В ЯЧЕЙКИ 500-507&lt;br /&gt;
          .ENDR&lt;br /&gt;
          .PRINT  #PROMT&lt;br /&gt;
  LOOP:   .TTYIN                ;ПЕРЕДАТЬ СИМВОЛЫ С ТТ: В&lt;br /&gt;
                                ;ЯЧЕЙКИ 510-777&lt;br /&gt;
          MOVB    R0,(R1)+&lt;br /&gt;
          CMPB    R0,#12        ;КОНЕЦ СТРОКИ?&lt;br /&gt;
          BNE     LOOP          ;НЕТ&lt;br /&gt;
          CLRB    @R1&lt;br /&gt;
          .CHAIN                ;ЗАПУСК ПРОГРАММЫ CHAIN1&lt;br /&gt;
  CHPTR:  .RAD50  /DK/&lt;br /&gt;
          .RAD50  /CHAIN1/&lt;br /&gt;
          .RAD50  /SAV/&lt;br /&gt;
  PROMT:  .ASCII /ВВЕДИТЕ ДАННЫЕ ДЛЯ ПРОГРАММЫ CHAIN1: /&amp;lt;200&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
  ; ПРОГРАММА  CHAIN1&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  CHAIN1.MAC&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
          JSW = 44&lt;br /&gt;
          CHAIN$ = 400&lt;br /&gt;
 &lt;br /&gt;
  STARTC: BIT     #CHAIN$,@#JSW   ;8 РАЗРЯД УСТАНОВЛЕН?&lt;br /&gt;
          BEQ     1$              ;НЕТ&lt;br /&gt;
          .PRINT  #CHAIND         ;ДА - ПЕЧАТЬ СООБЩЕНИЯ&lt;br /&gt;
          MOV     #510,R0&lt;br /&gt;
          .PRINT                  ;ПЕЧАТЬ СОДЕРЖИМОГО ЯЧЕЕК&lt;br /&gt;
                                  ;510-777&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .PRINT  #NOCHN&lt;br /&gt;
          .EXIT&lt;br /&gt;
  CHAIND: .ASCII  /СОДЕРЖИМОЕ ЯЧЕЕК 510-777 :  /&amp;lt;200&amp;gt;&lt;br /&gt;
  NOCHN:  .ASCIZ  /НЕ УСТАНОВЛЕН 8-ОЙ РАЗРЯД !/&lt;br /&gt;
          .END    STARTC&lt;br /&gt;
 &lt;br /&gt;
        5.3.3. .CMKT&lt;br /&gt;
        ЗАПРОС .CMKT АННУЛИРУЕТ ОДИН  ИЛИ  НЕСКОЛЬКО  ЗАПРОСОВ&lt;br /&gt;
   .MRKT.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CMKT AREA,ID[,TIME]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ID - ЧИСЛО, ИСПОЛЬЗУЕМОЕ ДЛЯ ИДЕНТИФИКАЦИИ С  ЗАПРОСОМ&lt;br /&gt;
   .MRKT, КОТОРЫЙ НЕОБХОДИМО АННУЛИРОВАТЬ; ЕСЛИ НЕСКОЛЬКО ЗАП-&lt;br /&gt;
   РОСОВ .MRKT ИМЕЮТ ОДИНАКОВЫЙ ID,  ТО  АННУЛИРУЕТСЯ  ТОТ  ИЗ&lt;br /&gt;
   НИХ, КОТОРОМУ СООТВЕТСТВУЕТ НАИМЕНЬШИЙ НЕИСТЕКШИЙ  ИНТЕРВАЛ&lt;br /&gt;
   ВРЕМЕНИ; ЕСЛИ ID=0, ТО АННУЛИРУЮТСЯ ВСЕ ЗАПРОСЫ .MRKT;&lt;br /&gt;
        TIME - АДРЕС БЛОКА ИЗ  2-Х  СЛОВ,  В  КОТОРЫЕ  МОНИТОР&lt;br /&gt;
   ЗАПИСЫВАЕТ ВЕЛИЧИНУ НЕИСПОЛЬЗОВАННОГО ВРЕМЕНИ  В  АННУЛИРО-&lt;br /&gt;
   ВАННОМ ЗАПРОСЕ; ПЕРВОЕ СЛОВО СОДЕРЖИТ НИЖНЮЮ ГРАНИЦУ ИНТЕР-&lt;br /&gt;
   ВАЛА ВРЕМЕНИ, ВТОРОЕ - ВЕРХНЮЮ ГРАНИЦУ; ЕСЛИ АДРЕС НЕ  УКА-&lt;br /&gt;
   ЗАН, ТАКОЙ ЗАПИСИ НЕ ПРОИСХОДИТ, ЕСЛИ ID=0,  АРГУМЕНТ  TIME&lt;br /&gt;
   ИГНОРИРУЕТСЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,23&lt;br /&gt;
                  .WORD   ID&lt;br /&gt;
&lt;br /&gt;
        ПРИМЕЧАНИЕ. АННУЛИРОВАННЫЙ  ЗАПРОС  .MRKT  ОСВОБОЖДАЕТ&lt;br /&gt;
   СООТВЕТСТВУЮЩИЙ ЭЛЕМЕНТ ОЧЕРЕДИ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .CMKT  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .MRKT.&lt;br /&gt;
 &lt;br /&gt;
        5.3.4. .CNTXSW (РЕЖИМ FB,XM)&lt;br /&gt;
        ПРИ ПЕРЕДАЧЕ УПРАВЛЕНИЯ  ОТ  ОДНОГО  ЗАДАНИЯ  ДРУГОМУ,&lt;br /&gt;
   МОНИТОР ВЫПОЛНЯЕТ, ТАК  НАЗЫВАЕМУЮ,  ОПЕРАЦИЮ  ПЕРЕКЛЮЧЕНИЯ&lt;br /&gt;
   КОНТЕКСТА. ОНА ЗАКЛЮЧАЕТСЯ В СОХРАНЕНИИ СИСТЕМОЙ  НЕОБХОДИ-&lt;br /&gt;
   МЫХ ПАРАМЕТРОВ ДЛЯ ОДНОЗНАЧНОГО  ОПРЕДЕЛЕНИЯ  И  ВЫПОЛНЕНИЯ&lt;br /&gt;
   ЗАДАНИЯ. ЭТИ ПАРАМЕТРЫ ВКЛЮЧАЮТ ВСЕ РЕГИСТРЫ ОБЩЕГО  НАЗНА-&lt;br /&gt;
   ЧЕНИЯ, ЯЧЕЙКИ 34-52, А ТАКЖЕ ВСЕ РЕГИСТРЫ ППЗ, ЕСЛИ  ЗАПРОС&lt;br /&gt;
   .SFPA ВЫПОЛНЯЛСЯ С ОТЛИЧНЫМ ОТ  НУЛЯ  АДРЕСОМ  ПОДПРОГРАММЫ&lt;br /&gt;
   ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ППЗ.&lt;br /&gt;
        ЗАПРОС  .CNTXSW  ИСПОЛЬЗУЕТСЯ  ДЛЯ  ОПРЕДЕЛЕНИЯ  ЯЧЕЕК&lt;br /&gt;
   ПАМЯТИ, КОТОРЫЕ БУДУТ  ДОПОЛНИТЕЛЬНО  ВКЛЮЧЕНЫ  В  ОПЕРАЦИЮ&lt;br /&gt;
   ПЕРЕКЛЮЧЕНИЯ КОНТЕКСТА.&lt;br /&gt;
        ИНОГДА,  ДЛЯ  ОБОИХ  ЗАДАНИЙ  НЕОБХОДИМО   НЕЗАВИСИМОЕ&lt;br /&gt;
   ИСПОЛЬЗОВАНИЕ ОПРЕДЕЛЕННОЙ ЯЧЕЙКИ ПАМЯТИ, КОТОРАЯ НЕ  ВКЛЮ-&lt;br /&gt;
   ЧЕНА В ОБЫЧНУЮ ОПЕРАЦИЮ ПЕРЕКЛЮЧЕНИЯ  КОНТЕКСТА.  НАПРИМЕР,&lt;br /&gt;
   ЕСЛИ ПРОГРАММА ИСПОЛЬЗУЕТ КОМАНДУ IOT,ТО ОНА ДОЛЖНА УСТАНО-&lt;br /&gt;
   ВИТЬ В ВЕКТОРЕ 20 АДРЕС СВОЕЙ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫ-&lt;br /&gt;
   ВАНИЯ ПО ЭТОЙ КОМАНДЕ. А ЕСЛИ  ОБА  ЗАДАНИЯ  -  ОСНОВНОЕ  И&lt;br /&gt;
   ФОНОВОЕ - ИСПОЛЬЗУЮТ КОМАНДУ IOT, ТО ВЕКТОР 20 ДОЛЖЕН ВСЕГ-&lt;br /&gt;
   ДА СОДЕРЖАТЬ СООТВЕТСТВУЮЩИЙ С ВЫПОЛНЯЕМЫМ ЗАДАНИЕМ  АДРЕС.&lt;br /&gt;
   ЭТО ДОСТИГАЕТСЯ ПУТЕМ ВКЛЮЧЕНИЯ ЯЧЕЕК  20  И  22  В  СПИСОК&lt;br /&gt;
   АДРЕСОВ ЗАПРОСА .CNTXSW.&lt;br /&gt;
        ЕСЛИ ЗАПРОС .CNTXSW УКАЗАН В ПРОГРАММЕ НЕСКОЛЬКО  РАЗ,&lt;br /&gt;
   ТО МОНИТОР ИСПОЛЬЗУЕТ СПИСОК АДРЕСОВ ПОСЛЕДНЕГО ИЗ НИХ.&lt;br /&gt;
        СПИСОК АДРЕСОВ .CNTXSW НЕ МОЖЕТ БЫТЬ В ОБЛАСТИ СВОПИН-&lt;br /&gt;
   ГА USR И ЕГО НЕЛЬЗЯ ИЗМЕНЯТЬ В ПРОЦЕССЕ РАБОТЫ ПРОГРАММЫ.&lt;br /&gt;
        В РЕЖИМЕ ХМ, ЗАПРОС .CNTXSW ИГНОРИРУЕТСЯ ДЛЯ ВИРТУАЛЬ-&lt;br /&gt;
   НЫХ ЗАДАНИЙ, Т.К. ОНИ НЕ ИСПОЛЬЗУЮТ ПАМЯТЬ СОВМЕСТНО С ДРУ-&lt;br /&gt;
   ГИМИ ЗАДАНИЯМИ. ДЛЯ ВИРТУАЛЬНЫХ ЗАДАНИЙ ВЕКТОРЫ IOT,  TRAP,&lt;br /&gt;
   BPT И ВЕКТОР 250 АВТОМАТИЧЕСКИ ВКЛЮЧАЮТСЯ  МОНИТОРОМ  XM  В&lt;br /&gt;
   ОПЕРАЦИЮ ПЕРЕКЛЮЧЕНИЯ КОНТЕКСТА,  И,  СЛЕДОВАТЕЛЬНО,  МОГУТ&lt;br /&gt;
   БЫТЬ ИСПОЛЬЗОВАНЫ ДРУГИМ ЗАДАНИЕМ БЕЗ .CNTXSW.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CNTXSW AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС СПИСКА  АДРЕСОВ  (ДОЛЖЕН  БЫТЬ  ОГРАНИЧЕН&lt;br /&gt;
   НУЛЕМ); АДРЕСА В СПИСКЕ ДОЛЖНЫ БЫТЬ ЧЕТНЫМИ И В ПРЕДЕЛАХ ОТ&lt;br /&gt;
   2 ДО 476 ИЛИ В ОБЛАСТИ ЗАДАНИЯ ПОЛЬЗОВАТЕЛЯ, ИЛИ В ПРЕДЕЛАХ&lt;br /&gt;
   ОТ 160000 ИЛИ 177776.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ ЕМТ:&lt;br /&gt;
          AREA:   .BYTE   0,33&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  CNTXSW.MAC&lt;br /&gt;
  ; В ЭТОМ ПРИМЕРЕ ЗАПРОС .CNTXSW ИСПОЛЬЗУЕТСЯ ДЛЯ&lt;br /&gt;
  ; ВКЛЮЧЕНИЯ ЯЧЕЕК 20,22,177302,177304,177310 В&lt;br /&gt;
  ; ОПЕРАЦИЮ ПЕРЕКЛЮЧЕНИЯ КОНТЕКСТА.&lt;br /&gt;
          .MCALL  .CNTXSW,.PRINT,.EXIT&lt;br /&gt;
  START:  .CNTXSW #AREA,#SWLIST&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #ADDRER&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .PRINT  #CNTOK&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  SWLIST: .WORD   20&lt;br /&gt;
          .WORD   22&lt;br /&gt;
          .WORD   177302&lt;br /&gt;
          .WORD   177304&lt;br /&gt;
          .WORD   177310&lt;br /&gt;
          .WORD   0&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   2&lt;br /&gt;
 &lt;br /&gt;
  ADDRER: .ASCIZ  /ОШИБКА .CNTXSW /&lt;br /&gt;
  CNTOK:  .ASCIZ  /АДРЕСА ВКЛЮЧЕНЫ В ОПЕРАЦИЮ КОНТЕКСТА/&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.3.5. .CSIGEN&lt;br /&gt;
        ЗАПРОС .CSIGEN ВЫЗЫВАЕТ РАБОТУ ИНТЕРПРЕТАТОРА  КОМАНД-&lt;br /&gt;
   НОЙ СТРОКИ (CSI) В ОБЩЕМ РЕЖИМЕ. В  ЭТОМ  РЕЖИМЕ  CSI  ОСУ-&lt;br /&gt;
   ЩЕСТВЛЯЕТСЯ СИНТАКСИЧЕСКИЙ АНАЛИЗ КОМАНДНОЙ СТРОКИ И ВЫПОЛ-&lt;br /&gt;
   НЯЕТ СЛЕДУЮЩИЕ ФУНКЦИИ:&lt;br /&gt;
        1) ЗАГРУЖАЕТ ДРАЙВЕРЫ УКАЗАННЫХ УСТРОЙСТВ;&lt;br /&gt;
        2) ВЫПОЛНЯЕТ ЗАПРОСЫ .LOOKUP И/ИЛИ .ENTER ДЛЯ  УКАЗАН-&lt;br /&gt;
   НЫХ ФАЙЛОВ;&lt;br /&gt;
        3) ЗАПИСЫВАЕТ В СТЕК ИНФОРМАЦИЮ О ПЕРЕКЛЮЧАТЕЛЯХ;&lt;br /&gt;
        4) ВЫПОЛНЯЕТ ЗАПРОС .CLOSE НА КАНАЛАХ 0-10 (ВОСЬМЕРИЧ-&lt;br /&gt;
   НОЙ).&lt;br /&gt;
        ОБЛАСТЬ, КОТОРАЯ ОТВОДИТСЯ  ДЛЯ  ДРАЙВЕРОВ  УСТРОЙСТВ,&lt;br /&gt;
   ДОЛЖНА   БЫТЬ  ДОСТАТОЧНОЙ  ДЛЯ  ОДНОВРЕМЕННОГО  РАЗМЕЩЕНИЯ&lt;br /&gt;
   ВСЕХ НЕОБХОДИМЫХ ДРАЙВЕРОВ. ЕСЛИ ЭТОЙ ОБЛАСТИ  НЕДОСТАТОЧНО,&lt;br /&gt;
   ТО ПРОГРАММА ПОЛЬЗОВАТЕЛЯ МОЖЕТ БЫТЬ РАЗРУШЕНА.&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ ЗАПРОСА .CSIGEN РЕГИСТР R0 БУДЕТ УКА-&lt;br /&gt;
   ЗЫВАТЬ НА ПЕРВУЮ СВОБОДНУЮ ЯЧЕЙКУ  ПАМЯТИ  ПОСЛЕ  ДРАЙВЕРОВ&lt;br /&gt;
   УСТРОЙСТВ.&lt;br /&gt;
        КОГДА УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ  ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
   ПОСЛЕ ВЫПОЛНЕНИЯ ЗАПРОСА .CSIGEN, ВСЕ УКАЗАННЫЕ ФАЙЛЫ БУДУТ&lt;br /&gt;
   ОТКРЫТЫ ДЛЯ ВВОДА И/ИЛИ ВЫВОДА. ТРИ  ВЫХОДНЫХ  ФАЙЛА  БУДУТ&lt;br /&gt;
   ОТКРЫТЫ СООТВЕТСТВЕННО НА 0,1 И 2-ОМ КАНАЛАХ; ШЕСТЬ ВХОДНЫХ&lt;br /&gt;
   - БУДУТ СВЯЗАНЫ С КАНАЛАМИ 3-10 (ВОСЬМЕРИЧНОЙ).&lt;br /&gt;
        НАПРИМЕР, В КОМАНДНОЙ СТРОКЕ&lt;br /&gt;
   *,LP:=F1,F2&lt;br /&gt;
   0-ОЙ И 2-ОЙ КАНАЛЫ ОСТАЮТСЯ СВОБОДНЫМИ,  1-Й  КАНАЛ  СВЯЗЫ-&lt;br /&gt;
   ВАЕТСЯ С LP:, 3 И 4-Й КАНАЛЫ СВЯЗЫВАЮТСЯ  СООТВЕТСТВЕННО  С&lt;br /&gt;
   ФАЙЛАМИ F1 И F2 НА DK:, КАНАЛЫ 5-10 (ВОСЬМЕРИЧНОЙ) ОСТАЮТСЯ&lt;br /&gt;
   СВОБОДНЫМИ.&lt;br /&gt;
        ПРОГРАММА ПОЛЬЗОВАТЕЛЯ МОЖЕТ ОПРЕДЕЛИТЬ ОТКРЫТ ИЛИ НЕТ&lt;br /&gt;
   КАНАЛ ПОСРЕДСТВОМ ЗАПРОСА .WAIT НА СООТВЕТСТВУЮЩЕМ  КАНАЛЕ,&lt;br /&gt;
   И ПОЛУЧИТЬ СООБЩЕНИЕ ОБ ОШИБКЕ, ЕСЛИ КАНАЛ НЕ ОТКРЫТ.&lt;br /&gt;
        ПЕРЕКЛЮЧАТЕЛИ И ИХ АРГУМЕНТЫ ЗАПИСЫВАЮТСЯ В СТЕК .&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CSIGEN DEVSPC,DEFTUP,CSTR[,LINBUF]&lt;br /&gt;
   ГДЕ DEVSPC - АДРЕС ОБЛАСТИ ПАМЯТИ ДЛЯ ДРАЙВЕРОВ УСТРОЙСТВ;&lt;br /&gt;
        DEFTUP - АДРЕС БЛОКА ИЗ  4-Х  СЛОВ,  КОТОРЫЙ  СОДЕРЖИТ&lt;br /&gt;
   ТИПЫ  ФАЙЛОВ  В  КОДАХ  RADIX-50.  СОДЕРЖИМОЕ  ЭТОГО  БЛОКА&lt;br /&gt;
   ИСПОЛЬЗУЕТСЯ МОНИТОРОМ, ЕСЛИ В КОМАНДНОЙ СТРОКЕ НЕ  УКАЗАНЫ&lt;br /&gt;
   ТИПЫ ФАЙЛОВ;&lt;br /&gt;
        CSTR - АДРЕС КОМАНДНОЙ СТРОКИ. ОНА НЕ ДОЛЖНА СОДЕРЖАТЬ&lt;br /&gt;
   ВК , ПС , НО ДОЛЖНА ОКАНЧИВАТЬСЯ НУЛЕВЫМ БАЙТОМ. ЕСЛИ  CSTR&lt;br /&gt;
   НЕ УКАЗАН ИЛИ 0, ТО ВВОД ОСУЩЕСТВЛЯЕТСЯ  С  ТЕРМИНАЛА;  ПОД&lt;br /&gt;
   УПРАВЛЕНИЕМ МОНИТОРА FB(ХМ),  ЕСЛИ  ВВОД  ОСУЩЕСТВЛЯЕТСЯ  С&lt;br /&gt;
   СИСТЕМНОГО ТЕРМИНАЛА, БУДЕТ АВТОМАТИЧЕСКИ  ВЫПОЛНЕН  ЗАПРОС&lt;br /&gt;
   .UNLOCK ДЛЯ USR;&lt;br /&gt;
        LINBUF - АДРЕС, ПО КОТОРОМУ БУДЕТ ЗАПИСАНА КОПИЯ  ВВЕ-&lt;br /&gt;
   ДЕННОЙ КОМАНДНОЙ СТРОКИ; ЭТА ОБЛАСТЬ ОПРЕДЕЛЯЕТСЯ ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЕМ И ИМЕЕТ ДЛИНУ 81 (ДЕСЯТИЧНОЙ) БАЙТ; КОМАНДНАЯ  СТРОКА&lt;br /&gt;
   В ЭТОЙ ОБЛАСТИ ОГРАНИЧИВАЕТСЯ НУЛЕВЫМ БАЙТОМ.&lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
        1) БЛОК, АДРЕС КОТОРОГО УКАЗАН В DEFTYP, В 1-ОМ  СЛОВЕ&lt;br /&gt;
   СОДЕРЖИТ ТИП ФАЙЛА ДЛЯ ВСЕХ ВХОДНЫХ ФАЙЛОВ, ВО 2, 3 И  4-ОМ&lt;br /&gt;
   СЛОВАХ - ТИПЫ ФАЙЛОВ СООТВЕТСТВЕННО ДЛЯ 0,1 И 2-ГО ВЫХОДНЫХ&lt;br /&gt;
   ФАЙЛОВ. ЕСЛИ В БЛОКЕ НЕ УКАЗАН ТИП ФАЙЛА ДЛЯ  ОПРЕДЕЛЕННОГО&lt;br /&gt;
   КАНАЛА, СООТВЕТСТВУЮЩЕЕ СЛОВО ДОЛЖНО  СОДЕРЖАТЬ  НУЛЬ.  ВСЕ&lt;br /&gt;
   ТИПЫ ФАЙЛОВ ДОЛЖНЫ БЫТЬ ЗАПИСАНЫ В КОДАХ RADIX-50.&lt;br /&gt;
        2) ЗАПРОС CSIGEN АВТОМАТИЧЕСКИ ВОСПРИНИМАЕТ  КОМАНДНУЮ&lt;br /&gt;
   СТРОКУ ИЗ КОСВЕННОГО ФАЙЛА, ЕСЛИ УКАЗАН  ВВОД  С  ТЕРМИНАЛА&lt;br /&gt;
   (CSTR=0) И ПРОГРАММА, ИСПОЛЬЗУЮЩАЯ .CSIGEN ВЫЗЫВАЕТСЯ ЧЕРЕЗ&lt;br /&gt;
   КОСВЕННЫЙ ФАЙЛ.&lt;br /&gt;
        3) АРГУМЕНТ LINBUF ПРЕДОСТАВЛЯЕТ ПОЛЬЗОВАТЕЛЮ  ВОЗМОЖ-&lt;br /&gt;
   НОСТЬ  ВОССТАНОВЛЕНИЯ  ПЕРВОНАЧАЛЬНО  ВВЕДЕННОЙ   КОМАНДНОЙ&lt;br /&gt;
   СТРОКИ.&lt;br /&gt;
        4) ЕСЛИ ОШИБКА ПРОИСХОДИТ ПРИ ВВОДЕ КОМАНДНОЙ СТРОКИ С&lt;br /&gt;
   ТЕРМИНАЛА, ТО CSI ПЕЧАТАЕТ СООБЩЕНИЕ ОБ ОШИБКЕ НА  ТЕРМИНА-&lt;br /&gt;
   ЛЕ, ЕСЛИ ПРИ ВВОДЕ ИЗ ПАМЯТИ - УСТАНАВЛИВАЕТСЯ  С-РАЗРЯД  И&lt;br /&gt;
   КОД ОШИБКИ (52-ОЙ БАЙТ).&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  CSIGEN.MAC&lt;br /&gt;
  ;ПРИМЕР ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ ЗАПРОСА .CSIGEN&lt;br /&gt;
  ;ВЫПОЛНЯЕТ КОПИРОВАНИЕ УКАЗАННОГО ФАЙЛА&lt;br /&gt;
 &lt;br /&gt;
          .MCALL .CSIGEN,.READW,.WRITW,.CLOSE,.SRESET,.EXIT&lt;br /&gt;
          .MCALL .PRINT&lt;br /&gt;
 &lt;br /&gt;
          ERRBYT=52&lt;br /&gt;
 &lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEXT   ;ВВЕСТИ КОМАНДНУЮ СТРОКУ&lt;br /&gt;
          MOV     R0,BUFF         ;УКАЗАТЕЛЬ НА СВОБОДНУЮ&lt;br /&gt;
                                  ;ПАМЯТЬ&lt;br /&gt;
          CLR     INBLK           ;НОМЕР БЛОКА&lt;br /&gt;
          MOV     #AREA,R5&lt;br /&gt;
  READ:   .READW  R5,#3,BUFF,#400,INBLK ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCC     2$&lt;br /&gt;
          TSTB    @#ERRBYT        ;КОНЕЦ ФАЙЛА?&lt;br /&gt;
          BEQ     EOF             ;ДА&lt;br /&gt;
          MOV     #INERR,R0&lt;br /&gt;
  1$:     .PRINT                  ;ПЕЧАТЬ ССОБЩЕНИЯ&lt;br /&gt;
          CLR     R0&lt;br /&gt;
          .EXIT&lt;br /&gt;
  2$:     .WRITW  R5,#0,BUFF,#400,INBLK ;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          BCC     NOERR&lt;br /&gt;
          MOV     #WTERR,R0&lt;br /&gt;
          BR      1$&lt;br /&gt;
  NOERR:  INC     INBLK           ;УВЕЛИЧИТЬ СЧЕТЧИК И&lt;br /&gt;
          BR      READ            ;ЧИТАТЬ СЛЕДУЮЩИЙ БЛОК&lt;br /&gt;
  EOF:    .CLOSE  #0              ;КОНЕЦ ФАЙЛА - ЗАКРЫТЬ&lt;br /&gt;
          .CLOSE  #3              ;ВХОДНОЙ И ВЫХОДНОЙ&lt;br /&gt;
                                  ;КАНАЛЫ&lt;br /&gt;
          .SRESET                 ;УДАЛИТЬ ДРАЙВЕРЫ ИЗ&lt;br /&gt;
                                  ;ПАМЯТИ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  DEXT:   .WORD   0,0,0,0&lt;br /&gt;
  BUFF:   .WORD   0&lt;br /&gt;
  INBLK:  .WORD   0&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
 &lt;br /&gt;
  INERR:  .ASCIZ /ОШИБКА ВВОДА/&lt;br /&gt;
  WTERR:  .ASCIZ /ОШИБКА ВЫВОДА/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
        5.3.6. .CSISPC&lt;br /&gt;
        ЗАПРОС .CSISPC ВЫЗЫВАЕТ РАБОТУ CSI В СПЕЦИАЛЬНОМ РЕЖИ-&lt;br /&gt;
   МЕ. В ЭТОМ РЕЖИМЕ  ОН  ОСУЩЕСТВЛЯЕТ  СИНТАКСИЧЕСКИЙ  АНАЛИЗ&lt;br /&gt;
   КОМАНДНОЙ СТРОКИ И ПЕРЕДАЕТ СПЕЦИФИКАЦИИ ФАЙЛОВ И  ПЕРЕКЛЮ-&lt;br /&gt;
   ЧАТЕЛИ, УКАЗАННЫЕ В НЕЙ,  ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ.  В  СПЕ-&lt;br /&gt;
   ЦИАЛЬНОМ РЕЖИМЕ  CSI  НЕ  ВЫПОЛНЯЕТ  ДЕЙСТВИЙ,  АНАЛОГИЧНЫХ&lt;br /&gt;
   ФУНКЦИЯМ ЗАПРОСОВ .FETCH,.CLOSE, .ENTER,.LOOKUP.&lt;br /&gt;
        ПЕРЕКЛЮЧАТЕЛИ И ИХ АРГУМЕНТЫ ПЕРЕСЫЛАЮТСЯ В СТЕК.&lt;br /&gt;
        ЕСЛИ ПРОГРАММА, ИСПОЛЬЗУЮЩАЯ .CSISPC, ВЫЗЫВАЕТСЯ ЧЕРЕЗ&lt;br /&gt;
   КОСВЕННЫЙ ФАЙЛ И CSTR=0, TO .CSISPC АВТОМАТИЧЕСКИ  ВЫБИРАЕТ&lt;br /&gt;
   ВХОДНУЮ СТРОКУ ИЗ КОСВЕННОГО ФАЙЛА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CSISPC OUTSPC,DEFTUP[,CSTR[],LINBUF]&lt;br /&gt;
   ГДЕ OUTSPC - АДРЕС БЛОКА ИЗ 39 СЛОВ ДЛЯ СПЕЦИФИКАЦИЙ ФАЙЛОВ&lt;br /&gt;
   КОМАНДНОЙ СТРОКИ;&lt;br /&gt;
        DEFTYP - АДРЕС БЛОКА ИЗ  4-Х  СЛОВ,  КОТОРЫЙ  СОДЕРЖИТ&lt;br /&gt;
   ТИПЫ  ФАЙЛОВ  В  КОДАХ  RADIX-50.  СОДЕРЖИМОЕ  ЭТОГО  БЛОКА&lt;br /&gt;
   ИСПОЛЬЗУЕТСЯ МОНИТОРОМ, ЕСЛИ В КОМАНДНОЙ СТРОКЕ НЕ  УКАЗАНЫ&lt;br /&gt;
   ТИПЫ ФАЙЛОВ;&lt;br /&gt;
        CSTR - АДРЕС КОМАНДНОЙ СТРОКИ. ОНА НЕ ДОЛЖНА СОДЕРЖАТЬ&lt;br /&gt;
   ВК,ПС , НО ДОЛЖНА ОКАНЧИВАТЬСЯ НУЛЕВЫМ БАЙТОМ. ЕСЛИ CSTR НЕ&lt;br /&gt;
   УКАЗАН ИЛИ 0, ТО ВВОД ОСУЩЕСТВЛЯТСЯ С ТЕРМИНАЛА;&lt;br /&gt;
        LINBUF - АДРЕС, ПО КОТОРОМУ БУДЕТ ЗАПИСАНА КОПИЯ  ВВЕ-&lt;br /&gt;
   ДЕННОЙ КОМАНДНОЙ СТРОКИ; ЭТА ОБЛАСТЬ ОПРЕДЕЛЯЕТСЯ ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЕМ И ИМЕЕТ ДЛИНУ 81 БАЙТ; КОМАНДНАЯ СТРОКА В ЭТОЙ ОБЛАС-&lt;br /&gt;
   ТИ ОГРАНИЧИВАЕТСЯ НУЛЕВЫМ БАЙТОМ.&lt;br /&gt;
        БЛОК, АДРЕС КОТОРОГО УКАЗАН В OUTSPC, СОДЕРЖИТ  СПЕЦИ-&lt;br /&gt;
   ФИКАЦИЮ ДЛЯ 9 ФАЙЛОВ: ПО 5 СЛОВ ДЛЯ КАЖДОГО ИЗ 3-Х ВЫХОДНЫХ&lt;br /&gt;
   ФАЙЛОВ И ПО 4 СЛОВА ДЛЯ КАЖДОГО  ИЗ  6-ТИ  ВХОДНЫХ  ФАЙЛОВ.&lt;br /&gt;
   ПЯТЬ СЛОВ ДЛЯ ВЫХОДНОГО ФАЙЛА ИМЕЮТ  СЛЕДУЮЩЕЕ  СОДЕРЖИМОЕ:&lt;br /&gt;
   1-ОЕ СЛОВО - ИМЯ УСТРОЙСТВА; 2 И 3 СЛОВА - ИМЯ ФАЙЛА;  4-ОЕ&lt;br /&gt;
   СЛВО - ТИП ФАЙЛА; 5-Е СЛОВО - ДЛИНА ВЫХОДНОГО  ФАЙЛА.  ЕСЛИ&lt;br /&gt;
   КАКОЙ-ТО ФАЙЛ ОТСУТСТВУЕТ, ТО СООТВЕТСТВУЮЩИЕ  СЛОВА  БЛОКА&lt;br /&gt;
   СОДЕРЖАТ НУЛИ.&lt;br /&gt;
        НАПРИМЕР,&lt;br /&gt;
   *DX1:LIST.MAC[15]=PC:&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ .CSISPC  ПЕРВЫЕ  5  СЛОВ  ДЛЯ  БЛОКА,&lt;br /&gt;
   АДРЕС КОТОРОГО УКАЗАН В OUTSPC, БУДУТ ИМЕТЬ СЛЕДУЮЩЕЕ  ЗНА-&lt;br /&gt;
   ЧЕНИЯ:&lt;br /&gt;
   16337  RADIX-50 ДЛЯ DX1&lt;br /&gt;
   46173  RADIX-50 ДЛЯ LIS&lt;br /&gt;
   76400  RADIX-50 ДЛЯ T&lt;br /&gt;
   50553  RADIX-50 ДЛЯ MAC&lt;br /&gt;
   00017  ДЛИНА ФАЙЛА&lt;br /&gt;
 &lt;br /&gt;
        ПЕРВЫЕ 4 СЛОВА ДЛЯ СПЕЦИФИКАЦИЙ ВХОДНЫХ ФАЙЛОВ  (НАЧИ-&lt;br /&gt;
   НАЯ С АДРЕСА OUTSPC+36) БУДУТ ВЫГЛЯДЕТЬ ТАК:&lt;br /&gt;
   62170  RADIX-50 ДЛЯ PC&lt;br /&gt;
    0     ИМЯ ФАЙЛА НЕ УКАЗАНО&lt;br /&gt;
    0&lt;br /&gt;
    0&lt;br /&gt;
        ЕСЛИ ПРИ ВВОДЕ С ТЕРМИНАЛА ПРОИЗОШЛА  ОШИБКА,  USR  НЕ&lt;br /&gt;
   ПЕЧАТАЕТ НА ТЕРМИНАЛЕ СООБЩЕНИЕ ОБ ОШИБКЕ, А  УСТАНАВЛИВАЕТ&lt;br /&gt;
   С-РАЗРЯД В ССП.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  CSISPC.MAC&lt;br /&gt;
 &lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ИСПОЛЬЗУЕТСЯ СПЕЦИАЛЬНЫЙ РЕЖИМ&lt;br /&gt;
  ;РАБОТЫ ИНТЕРПРЕТАТОРА КОМАНДНОЙ СТРОКИ.&lt;br /&gt;
  ;ЗАПРОС .DSTATUS ОПРЕДЕЛЯЕТ ЗАГРУЖЕН ЛИ ДРАЙВЕР&lt;br /&gt;
  ;ВЫХОДНОГО УСТРОЙСТВА И, ЕСЛИ НЕТ, ТО ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
  ;ЗАПРОС .FETCH ДЛЯ ЗАГРУЗКИ ДРАЙВЕРА В ПАМЯТЬ.&lt;br /&gt;
  ;ЗАТЕМ УКАЗАНЫЙ ФАЙЛ УДАЛЯЕТСЯ ПО ЗАПРОСУ .DELETE.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .CSISPC,.DSTATUS,.FETCH,.PRINT,.EXIT,.DELETE&lt;br /&gt;
 &lt;br /&gt;
  START:  MOV     SP,R5   ;СОХРАНИТЬ ТЕКУЩИЙ УКАЗАТЕЛЬ СТЕКА&lt;br /&gt;
          .CSISPC #OUTSP,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          MOV     R5,SP   ;ВОССТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА&lt;br /&gt;
          .DSTAT  #STAT,#OUTSP   ;ПРОВЕРИТЬ НАЛИЧИЕ ДРАЙВЕРА&lt;br /&gt;
                                 ;ВЫХОДНОГО УСТРОЙСТВА&lt;br /&gt;
          TST     STAT+4         ;ДРАЙВЕР ЗАГРУЖЕН?&lt;br /&gt;
          BNE     2$             ;ДА&lt;br /&gt;
          .FETCH  #DEVLOD,#INSPEC;НЕТ-ЗАГРУЗИТЬ ДРАЙВЕР&lt;br /&gt;
          BCC     2$&lt;br /&gt;
          .PRINT  #FEFAIL&lt;br /&gt;
          .EXIT&lt;br /&gt;
  2$:     .DELETE #AREA,#0,#INSPEC;УДАЛИТЬ ФАЙЛ&lt;br /&gt;
          BCC     3$&lt;br /&gt;
          .PRINT  #NOFILE&lt;br /&gt;
          BR      START&lt;br /&gt;
  3$:     .PRINT  #FILDEL&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   2&lt;br /&gt;
  STAT:   .BLKW   4&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  FEFAIL: .ASCIZ  /ОШИБКА .FETCH/&lt;br /&gt;
  NOFILE: .ASCIZ  /ФАЙЛ НЕ НАЙДЕН/&lt;br /&gt;
  FILDEL: .ASCIZ  /ФАЙЛ УДАЛЕН/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  OUTSP:  .BLKW   5*3     ;СПЕЦИФИКАЦИИ ВЫХ.ФАЙЛОВ&lt;br /&gt;
  INSPEC: .BLKW   4*6     ;СПЕЦИФИКАЦИИ ВХ.ФАЙЛОВ&lt;br /&gt;
  DEVLOD: .BLKW   1       ;АДРЕС ЗАГРУЗКИ ДРАЙВЕРА&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
      5.3.6.1. ПЕРЕДАЧА  ИНФОРМАЦИИ  О  ПЕРЕКЛЮЧАТЕЛЯХ&lt;br /&gt;
               ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        В ОБЩЕМ И СПЕЦИАЛЬНОМ РЕЖИМАХ РАБОТЫ CSI ПЕРЕКЛЮЧАТЕЛИ&lt;br /&gt;
   И ИХ АРГУМЕНТЫ ПЕРЕСЫЛАЮТСЯ В СТЕК. ПЕРЕКЛЮЧАТЕЛЬ ПРЕДСТАВ-&lt;br /&gt;
   ЛЯЕТ СОБОЙ НАКЛОННУЮ ЧЕРТУ  (/),  ЗА  КОТОРОЙ  СЛЕДУЕТ  ИМЯ&lt;br /&gt;
   ПЕРЕКЛЮЧАТЕЛЯ (СИМВОЛ КОИ-7). ЗА ПЕРЕКЛЮЧАТЕЛЕМ МОЖЕТ  СЛЕ-&lt;br /&gt;
   ДОВАТЬ АРГУМЕНТ, ПЕРЕД КОТОРЫМ  СТАВИТСЯ  РАЗДЕЛИТЕЛЬ  (:).&lt;br /&gt;
   АРГУМЕНТ МОЖЕТ  БЫТЬ  ВОСЬМЕРИЧНЫМ  ИЛИ  ДЕСЯТИЧНЫМ  ЧИСЛОМ&lt;br /&gt;
   (ЧИСЛОМ С ТОЧКОЙ),  ИЛИ  КОМБИНАЦИЕЙ  БУКВЕННО  -  ЦИФРОВЫХ&lt;br /&gt;
   СИМВОЛОВ (ОТ ОДНОГО ДО ТРЕХ), ПЕРВЫЙ ИЗ КОТОРЫХ -  БУКВА. В&lt;br /&gt;
   КОМАНДНОЙ СТРОКЕ ПЕРЕКЛЮЧАТЕЛИ МОГУТ БЫТЬ СВЯЗАНЫ С  ФАЙЛА-&lt;br /&gt;
   МИ.&lt;br /&gt;
   НАПРИМЕР: *DK:FOO/A,DX1:FILE.OBJ/A:100&lt;br /&gt;
        В ЭТОМ СЛУЧАЕ ИМЕЕТСЯ ДВА ПЕРЕКЛЮЧАТЕЛЯ А,  ПЕРВЫЙ  ИЗ&lt;br /&gt;
   КОТОРЫХ СВЯЗАН С ВХОДНЫМ ФАЙЛОМ FOO, ВТОРОЙ СВЯЗАН С  ВХОД-&lt;br /&gt;
   НЫМ ФАЙЛОМ FILE:OBJ И ИМЕЕТ АРГУМЕНТ 100 (ВОСЬМЕРИЧНЫЙ).&lt;br /&gt;
        В ТАБЛ. 10 ПРИВОДИТСЯ ФОРМАТ СОДЕРЖИМОГО  СТЕКА  ПОСЛЕ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ЗАПРОСА .CSIGEN  ИЛИ  .CSISPC.  УКАЗАТЕЛЬ  СТЕКА&lt;br /&gt;
   БУДЕТ СОДЕРЖАТЬ АДРЕС ПЕРВОГО СЛОВА.&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 10&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! СЛОВО !      СОДЕРЖИМОЕ      !         ЗНАЧЕНИЕ         !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    !   1   !          N           ! ЧИСЛО ПЕРЕКЛЮЧАТЕЛЕЙ В   !&lt;br /&gt;
    !       !                      ! КОМАНДНОЙ СТРОКЕ         !&lt;br /&gt;
    !   2   ! ИМЯ ПЕРЕКЛЮЧАТЕЛЯ И  ! ЧЕТНЫЙ БАЙТ СОДЕРЖИТ ИМЯ !&lt;br /&gt;
    !       ! НОМЕР ФАЙЛА          ! ПЕРЕКЛЮЧАТЕЛЯ. РАЗРЯДЫ   !&lt;br /&gt;
    !       !                      ! 8-14 СОДЕРЖАТ НОМЕР      !&lt;br /&gt;
    !       !                      ! (ОТ 0 ДО 10) ФАЙЛА, С КО-!&lt;br /&gt;
    !       !                      ! ТОРЫМ СВЯЗАН ДАННЫЙ ПЕРЕ-!&lt;br /&gt;
    !       !                      ! КЛЮЧАТЕЛЬ. РАЗРЯД 15 СО- !&lt;br /&gt;
    !       !                      ! ДЕРЖИТ 1, ЕСЛИ ПЕРЕКЛЮЧА-!&lt;br /&gt;
    !       !                      ! ТЕЛЬ ИМЕЕТ АРГУМЕНТ      !&lt;br /&gt;
    !   3   ! АРГУМЕНТ ПЕРЕКЛЮЧА-  ! ЕСЛИ УСТАНОВЛЕН 15-Й РАЗ-!&lt;br /&gt;
    !       ! ТЕЛЯ ИЛИ ИМЯ СЛЕДУ-  ! РЯД В СЛОВЕ 2, ТО СЛОВО 3!&lt;br /&gt;
    !       ! ЮЩЕГО ПЕРЕКЛЮЧАТЕЛЯ  ! СОДЕРЖИТ АРГУМЕНТ ПЕРЕ-  !&lt;br /&gt;
    !       !                      ! КЛЮЧАТЕЛЯ. В ПРОТИВНОМ   !&lt;br /&gt;
    !       !                      ! СЛУЧАЕ - ИМЯ СЛЕДУЮЩЕГО  !&lt;br /&gt;
    !       !                      ! ПЕРЕКЛЮЧАТЕЛЯ            !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        НАПРИМЕР, ПОСЛЕ ОБРАБОТКИ CSI КОМАНДНОЙ СТРОКИ&lt;br /&gt;
        *FILE/B:20.,FIL2/E=DX1:INPUT/X:SY:20&lt;br /&gt;
   СТЕК БУДЕТ СОДЕРЖАТЬ ЗНАЧЕНИЯ, ОПИСАННЫЕ В ТАБЛ. 11.&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 11&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! СОДЕРЖИМОЕ  !                  ЗНАЧЕНИЕ                 !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    !     4       ! ЧИСЛО ПЕРЕКЛЮЧАТЕЛЕЙ (ПЕРЕКЛЮЧАТЕЛЬ X     !&lt;br /&gt;
    !             ! ИМЕЕТ ДВА АРГУМЕНТА И РАССМАТРИВАЕТСЯ КАК !&lt;br /&gt;
    !             ! ДВА ПЕРЕКЛЮЧАТЕЛЯ)                        !&lt;br /&gt;
    !  101530     ! ПОСЛЕДНИЙ ПЕРЕКЛЮЧАТЕЛЬ (X) СВЯЗАН С 3-ИМ !&lt;br /&gt;
    !             ! ФАЙЛОМ  И ИМЕЕТ АРГУМЕНТ                  !&lt;br /&gt;
    !    20       ! АРГУМЕНТ ПЕРЕКЛЮЧАТЕЛЯ  X                 !&lt;br /&gt;
    !  101530     ! СЛЕДУЮЩИЙ ПЕРЕКЛЮЧАТЕЛЬ (X) СВЯЗАН С 3-ИМ !&lt;br /&gt;
    !             ! ФАЙЛОМ  И ИМЕЕТ АРГУМЕНТ                  !&lt;br /&gt;
    !  75250      ! АРГУМЕНТ ПЕРЕКЛЮЧАТЕЛЯ  X-SY В КОДАХ      !&lt;br /&gt;
    !             ! RADIX-50                                  !&lt;br /&gt;
    !    505      ! СЛЕДУЮЩИЙ ПЕРЕКЛЮЧАТЕЛЬ (Е) СВЯЗАН С 1-М  !&lt;br /&gt;
    !             ! ФАЙЛОМ  И НЕ ИМЕЕТ АРГУМЕНТА              !&lt;br /&gt;
    !  100102     ! ПЕРЕКЛЮЧАТЕЛЬ (В) СВЯЗАН С 0-М  ФАЙЛОМ И  !&lt;br /&gt;
    !             ! ИМЕЕТ АРГУМЕНТ                            !&lt;br /&gt;
    !    24       ! АРГУМЕНТ ПЕРЕКЛЮЧАТЕЛЯ  В                 !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
 &lt;br /&gt;
        1) ВО МНОГИХ СЛУЧАЯХ, ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ  НЕ  ТРЕ-&lt;br /&gt;
   БУЕТСЯ ОБРАБОТКА ПЕРЕКЛЮЧАТЕЛЕЙ  ПОСРЕДСТВОМ  CSI.  ОДНАКО,&lt;br /&gt;
   ВОЗМОЖЕН НЕПРЕДНАМЕРЕННЫЙ ВВОД  ПЕРЕКЛЮЧАТЕЛЕЙ  ПОЛЬЗОВАТЕ-&lt;br /&gt;
   ЛЕМ. В ЭТОМ СЛУЧАЕ, РЕКОМЕНДУЕТСЯ СОХРАНИТЬ ЗНАЧЕНИЕ УКАЗА-&lt;br /&gt;
   ТЕЛЯ СТЕКА ПЕРЕД ВЫЗОВОМ CSI,  А  ЗАТЕМ  ВОССТАНОВИТЬ  ЕГО.&lt;br /&gt;
   ЗАМЕТИМ, ЧТО КОМАНДНАЯ СТРОКА БЕЗ ПЕРЕКЛЮЧАТЕЛЕЙ ПЕРЕМЕЩАЕТ&lt;br /&gt;
   УКАЗАТЕЛЬ СТЕКА НА ОДНО СЛОВО.&lt;br /&gt;
 &lt;br /&gt;
        5.3.7. .ABTIO&lt;br /&gt;
        ЗАПРОС .ABTIO ПОЗВОЛЯЕТ ТЕКУЩЕМУ ЗАДАНИЮ ЗАПРЕТИТЬ ВСЕ&lt;br /&gt;
   ОПЕРАЦИИ ВВОДА - ВЫВОДА НА УКАЗАННОМ  КАНАЛЕ,  НЕ  ПРЕРЫВАЯ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ПРОГРАММЫ.&lt;br /&gt;
        ЗАПРЕЩАЕТСЯ ИСПОЛЬЗОВАТЬ .ABTIO В ПОДПРОГРАММАХ ЗАВЕР-&lt;br /&gt;
   ШЕНИЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ: .ABTIO CHAN&lt;br /&gt;
   ГДЕ CHAN - НОМЕР КАНАЛА.&lt;br /&gt;
 &lt;br /&gt;
        5.3.8. .CSTAT (РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .CSTAT ПЕРЕДАЕТ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ ИНФОРМА-&lt;br /&gt;
   ЦИЮ О СОСТОЯНИИ КАНАЛА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .CSTAT AREA,CHAN,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ ДВУХ СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        CHAN - НОМЕР КАНАЛА, ИНФОРМАЦИЮ  О  КОТОРОМ  ТРЕБУЕТСЯ&lt;br /&gt;
   ПОЛУЧИТЬ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 6-ТИ СЛОВ ДЛЯ ИНФОРМАЦИИ О  СОС-&lt;br /&gt;
   ТОЯНИИ КАНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,27&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  CSTAT.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ЗАПРОС .CSTAT ИСПОЛЬЗУЕТСЯ ДЛЯ ОПРЕДЕЛЕНИЯ&lt;br /&gt;
  ;УСТРОЙСТВА, СВЯЗАНОГО С УКАЗАННЫМ КАНАЛОМ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .CSTAT,.CSIGEN,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  MOV     SP,R5&lt;br /&gt;
          .CSIGEN #DEVSDC,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          MOV     R5,SP&lt;br /&gt;
          .CSTAT  #AREA,#0,#ADDR  ;ПОЛУЧИТЬ ИНФОРМАЦИЮ О&lt;br /&gt;
                                  ;КАНАЛЕ&lt;br /&gt;
          BCS     NOCHAN          ;КАНАЛ НЕ ОТКРЫТ&lt;br /&gt;
          MOV     #ADDR+10,R5&lt;br /&gt;
          MOV     (R5)+,R0&lt;br /&gt;
          ADD     (PC)+,R0&lt;br /&gt;
          .RAD50  /  0/&lt;br /&gt;
          ADD     (R5),R0         ;ПОЛУЧИТЬ ИМЯ УСТРОЙСТВА&lt;br /&gt;
          MOV     R0,DEVNAM&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  NOCHAN: .PRINT  #MSG&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  MSG:    .ASCIZ  /НЕТ ВЫХОДНОГО ФАЙЛА - КАНАЛ НЕ ОТКРЫТ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  ADDR:   .BLKW   6&lt;br /&gt;
  DEVNAM: .WORD   0               ;ИМЯ УСТРОЙСТВА&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
 &lt;br /&gt;
  DEVSDC  =.                      ;АДРЕС ЗАГРУЗКИ ДРАЙВЕРА&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        5.3.9. .DATE&lt;br /&gt;
        ЗАПРОС .DATE ПЕРЕДАЕТ ИНФОРМАЦИЮ  О  ТЕКУЩЕЙ  ДАТЕ  ИЗ&lt;br /&gt;
   СИСТЕМНОЙ ЯЧЕЙКИ ДАТЫ В РЕГИСТР R0. ЯЧЕЙКА ДАТЫ ИМЕЕТ  СЛЕ-&lt;br /&gt;
   ДУЮЩИЙ ФОРМАТ:&lt;br /&gt;
        РАЗРЯДЫ 13-10 - МЕСЯЦ;&lt;br /&gt;
        РАЗРЯДЫ 9-5 - ДЕНЬ;&lt;br /&gt;
        РАЗРЯДЫ 4-0 - ГОД.&lt;br /&gt;
        ЗНАЧЕНИЕ ГОДА В РАЗРЯДАХ С 0 ПО 4 ЯВЛЯЕТСЯ ФАКТИЧЕСКИМ&lt;br /&gt;
   ГОДОМ МИНУС 1972.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .DATE&lt;br /&gt;
        НУЛЕВОЕ ЗНАЧЕНИЕ В R0 УКАЗЫВАЕТ НА ТО,  ЧТО  ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЬ ДАТУ НЕ ОПРЕДЕЛИЛ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE DATE.MAC&lt;br /&gt;
  ;ПРИМЕР ПОДПРОГРАММЫ ОБРАБОТКИ ДАТЫ (ВВЕДЕНОЙ ПО КОМАНДЕ&lt;br /&gt;
  ;DATE) С ИСПОЛЬЗОВАНИЕМ ЗАПРОСА .DATE, К КОТОРОЙ МОЖНО&lt;br /&gt;
  ;ОБРАТИТЬСЯ ИЗ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
  ;&lt;br /&gt;
  ;ВЫХ.ДАННЫЕ:    R0 = МЕСЯЦ (1-12)&lt;br /&gt;
  ;               R1 = ДЕНЬ  (1-31)&lt;br /&gt;
  ;               R2 = ГОД   (ДВЕ ПОСЛЕДНИЕ ЦИФРЫ)&lt;br /&gt;
  ;&lt;br /&gt;
  ;ОШИБКИ:        R0 = 0, ЕСЛИ ДАТА НЕ ВВЕДЕНА&lt;br /&gt;
  ;&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .DATE&lt;br /&gt;
 &lt;br /&gt;
  DATE::  .DATE           ;ПОЛУЧИТЬ ДАТУ ИЗ R0&lt;br /&gt;
          MOV     R0,R2&lt;br /&gt;
          BEQ     1$      ;ВЕТВЛЕНИЕ, ЕСЛИ ДАТА НЕ&lt;br /&gt;
                          ;ВВЕДЕНА&lt;br /&gt;
          BIC     #37,R2;ВЫБРАТЬ ГОД&lt;br /&gt;
          ADD     #72,R2&lt;br /&gt;
          MOV     R0,R1&lt;br /&gt;
          ASL     R1      ;ВЫБРАТЬ ДЕНЬ&lt;br /&gt;
          ASL     R1&lt;br /&gt;
          ASL     R1&lt;br /&gt;
          SWAB    R1&lt;br /&gt;
          BIC     #37,R1;ВЫБРАТЬ МЕСЯЦ&lt;br /&gt;
          SWAB    R0&lt;br /&gt;
          ASR     R0&lt;br /&gt;
          ASR     R0&lt;br /&gt;
          BIC     #37,R0&lt;br /&gt;
  1$:     RETURN          ;ВЫХОД ИЗ ПОДПРОГРАММЫ&lt;br /&gt;
          .END&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.10. .DEVICE(РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .DEVICE ПОЗВОЛЯЕТ ЗАПИСАТЬ ОПРЕДЕЛЕННЫЕ  ЗНАЧЕ-&lt;br /&gt;
   НИЯ ПО УКАЗАННЫМ АДРЕСАМ  ПОСЛЕ  ВЫХОДА  ИЗ  ПРОГРАММЫ  (ПО&lt;br /&gt;
   .EXIT ИЛИ СУ/С). ЭТА ФУНКЦИЯ В  ОСНОВНОМ  ИСПОЛЬЗУЕТСЯ  ДЛЯ&lt;br /&gt;
   ЗАПИСИ В РЕГИСТРЫ УСТРОЙСТВ НЕОБХОДИМЫХ ЗНАЧЕНИЙ.&lt;br /&gt;
        В ПРОГРАММЕ МОЖЕТ БЫТЬ НЕСКОЛЬКО  ЗАПРОСОВ  .DEVICE  И&lt;br /&gt;
   ПОЛЬЗОВАТЕЛЬ МОЖЕТ СВЯЗАТЬ ВСЕ ТАБЛИЦЫ АДРЕСОВ В ОДНУ  ТАБ-&lt;br /&gt;
   ЛИЦУ.&lt;br /&gt;
        ЗАПРОС .DEVICE ИГНОРИРУЕТСЯ, ЕСЛИ ОН ВЫДАЕТСЯ ИЗ  ВИР-&lt;br /&gt;
   ТУАЛЬНОГО ЗАДАНИЯ В РЕЖИМЕ ХМ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .DEVICE AREA,ADDR[,LINK]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ТАБЛИЦЫ АДРЕСОВ И ЗНАЧЕНИЙ;&lt;br /&gt;
        LINK - ПРОИЗВОЛЬНЫЙ АРГУМЕНТ, КОТОРЫЙ  ПОЗВОЛЯЕТ  СВЯ-&lt;br /&gt;
   ЗАТЬ ТАБЛИЦЫ АДРЕСОВ И ЗНАЧЕНИЙ  ПОСЛЕДОВАТЕЛЬНЫХ  ЗАПРОСОВ&lt;br /&gt;
   .DEVICE. ЕСЛИ АРГУМЕНТ LINK  ОПУЩЕН,  ТО  УЖЕ  СУЩЕСТВУЮЩАЯ&lt;br /&gt;
   ТАБЛИЦА ЗАМЕНЯЕТСЯ НОВОЙ ПРИ ОБНАРУЖЕНИИ ОЧЕРЕДНОГО ЗАПРОСА&lt;br /&gt;
   .DEVICE.&lt;br /&gt;
        ТАБЛИЦА АДРЕСОВ И ЗНАЧЕНИЙ МОЖЕТ ИМЕТЬ ДВА  ФОРМАТА  -&lt;br /&gt;
   СВЯЗАННЫЙ И НЕ СВЯЗАННЫЙ. ОБА ФОРМАТА  ДОЛЖНЫ  ОКАНЧИВАТЬСЯ&lt;br /&gt;
   НУЛЕМ. СВЯЗАННЫЙ ФОРМАТ ДОЛЖЕН ИМЕТЬ В ПЕРВОМ  СЛОВЕ  ТАКЖЕ&lt;br /&gt;
   НОЛЬ. НА РИС.5 ПОКАЗАНЫ РАЗЛИЧНЫЕ ФОРМАТЫ ТАБЛИЦЫ АДРЕСОВ И&lt;br /&gt;
   ЗНАЧЕНИЙ.&lt;br /&gt;
 &lt;br /&gt;
           НЕ СВЯЗАННЫЙ                     СВЯЗАННЫЙ&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
  ADDR:   !   АДРЕС   !         ADDR:     !     0     !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
          ! ЗНАЧЕНИЕ  !                   !   АДРЕС   !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
          !   АДРЕС   !                   ! ЗНАЧЕНИЕ  !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
          ! ЗНАЧЕНИЕ  !                   !   АДРЕС   !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
                .                         ! ЗНАЧЕНИЕ  !&lt;br /&gt;
                .                         -------------&lt;br /&gt;
                .                               .&lt;br /&gt;
          -------------                         .&lt;br /&gt;
          !  АДРЕС    !                         .&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
          ! ЗНАЧЕНИЕ  !                   !   АДРЕС   !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
          !     0     !                   ! ЗНАЧЕНИЕ  !&lt;br /&gt;
          -------------                   -------------&lt;br /&gt;
                                          !     0     !&lt;br /&gt;
                                          -------------&lt;br /&gt;
 &lt;br /&gt;
                              РИС.5&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.11. .DSTATUS&lt;br /&gt;
        ЗАПРОС .DSTATUS ИСПОЛЬЗУЕТСЯ ДЛЯ ПОЛУЧЕНИЯ  ИНФОРМАЦИИ&lt;br /&gt;
   ОБ ОПРЕДЕЛЕННОМ УСТРОЙСТВЕ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
 &lt;br /&gt;
        .DSTATUS DSTBLK,DEVNAM&lt;br /&gt;
   ГДЕ DSTBLK - АДРЕС БЛОКА ИЗ 4-Х СЛОВ СОСТОЯНИЯ УСТРОЙСТВА;&lt;br /&gt;
        DEVNAM - АДРЕС ИМЕНИ УСТРОЙСТВА В КОДАХ RADIX-50. ПЕР-&lt;br /&gt;
   ВЫМ СЛОВОМ БЛОКА СОСТОЯНИЯ ЯВЛЯЕТСЯ  СЛОВО  СОСТОЯНИЯ  УСТ-&lt;br /&gt;
   РОЙСТВА. ВОЗМОЖНЫЕ ЗНАЧЕНИЯ РАЗРЯДОВ СЛОВА  СОСТОЯНИЯ  УСТ-&lt;br /&gt;
   РОЙСТВА ПРИВЕДЕНЫ В ТАБЛ.12.&lt;br /&gt;
                                                   ТАБЛИЦА 12&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! РАЗРЯД ! СОДЕРЖИМОЕ !            ЗНАЧЕНИЕ               !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    ! 0-7    !     0      ! КАССЕТА МАГНИТНЫХ ДИСКОВ          !&lt;br /&gt;
    !        !     2      ! ЛОГИЧЕСКОЕ УСТРОЙСТВО РЕГИСТРАЦИИ !&lt;br /&gt;
    !        !            ! ОШИБОК                            !&lt;br /&gt;
    !        !     3      ! ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ УСТРОЙСТВО   !&lt;br /&gt;
    !        !     4      ! СИСТЕМНЫЙ ТЕРМИНАЛ ИЛИ ДРАЙВЕР    !&lt;br /&gt;
    !        !            ! BATCH                             !&lt;br /&gt;
    !        !     6      ! ГИБКИЕ ДИСКИ С ДВОЙНОЙ ПЛОТНОСТЬЮ !&lt;br /&gt;
    !        !     7      ! ПЕРФОЛЕНТОЧНОЕ УСТРОЙСТВО ВВОДА И !&lt;br /&gt;
    !        !            ! ВЫВОДА                            !&lt;br /&gt;
    !        !    11      ! НАКОПИТЕЛЬ НА МАГНИТНОЙ ЛЕНТЕ     !&lt;br /&gt;
    !        !    21      ! ПАКЕТ МАГНИТНЫХ ДИСКОВ DP         !&lt;br /&gt;
    !        !            ! (29 МГБАЙТ)                       !&lt;br /&gt;
    !        !    22      ! ГИБКИЕ ДИСКИ                      !&lt;br /&gt;
    !        !    25      ! ФИКТИВНОЕ УСТРОЙСТВО              !&lt;br /&gt;
    !        !    34      ! КАССЕТНАЯ МАГНИТНАЯ ЛЕНТА         !&lt;br /&gt;
    !        !    41      ! УСТРОЙСТВО ПЕЧАТИ ПОСЛЕДОВАТЕЛЬНО-!&lt;br /&gt;
    !        !            ! ГО ТИПА                           !&lt;br /&gt;
    !        !    42      ! ДРАЙВЕР ОБМЕНА МЕЖДУ ЗАДАНИЯМИ    !&lt;br /&gt;
    !        !    46      ! ДРАЙВЕР ЛОГИЧЕСКОГО ДИСКА         !&lt;br /&gt;
    !        !    47      ! ДРАЙВЕР РАСШИРЕННОЙ ПАМЯТИ        !&lt;br /&gt;
    !        !    50      ! ДИСКИ ВИНЧЕСТЕРСКОГО ТИПА ИЛИ     !&lt;br /&gt;
    !        !            ! ГИБКИЕ МИНИ-ДИСКИ                 !&lt;br /&gt;
    !        !    51      ! РЕДАКТОР КОМАНДНОЙ СТРОКИ         !&lt;br /&gt;
    !  10    !    1       ! ДРАЙВЕР УСТРОЙСТВА ДОПУСКАЕТ      !&lt;br /&gt;
    !        !            ! ИСПОЛЬЗОВАНИЕ ЗАПРОСА .SPFUN      !&lt;br /&gt;
    !        !    0       ! НЕ ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ      !&lt;br /&gt;
    !        !            ! ЗАПРОСА .SPFUN                    !&lt;br /&gt;
    !  11    !    -       ! РЕЗЕРВНЫЙ                         !&lt;br /&gt;
    !  12    !    1       ! УСТРОЙСТВО НЕСПРАВОЧНОЙ СТРУКТУРЫ !&lt;br /&gt;
    !  13    !    1       ! УСТРОЙСТВО ТОЛЬКО ДЛЯ ЗАПИСИ      !&lt;br /&gt;
    !  14    !    1       ! УСТРОЙСТВО ТОЛЬКО ДЛЯ ЧТЕНИЯ      !&lt;br /&gt;
    !  15    !    1       ! УСТРОЙСТВО С ПРОИЗВОЛЬНЫМ ДОСТУПОМ!&lt;br /&gt;
    !        !            ! К ДАННЫМ                          !&lt;br /&gt;
    !        !    0       ! УСТРОЙСТВО С ПОСЛЕДОВАТЕЛЬНЫМ     !&lt;br /&gt;
    !        !            ! ДОСТУПОМ К ДАННЫМ                 !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ВТОРОЕ СЛОВО ПРЕДСТАВЛЯЕТ СОБОЙ  ДЛИНУ  ДРАЙВЕРА  УСТ-&lt;br /&gt;
   РОЙСТВА В БАЙТАХ.&lt;br /&gt;
        ТРЕТЬЕ СЛОВО ПРЕДСТАВЛЯЕТ СОБОЙ АДРЕС ЗАГРУЗКИ ДРАЙВЕ-&lt;br /&gt;
   РА ПЛЮС 6. ЕСЛИ 0 - ДРАЙВЕРА В ПАМЯТИ НЕТ.&lt;br /&gt;
        ЧЕТВЕРТОЕ СЛОВО ПРЕДСТАВЛЯЕТ СОБОЙ ЕМКОСТЬ  УСТРОЙСТВА&lt;br /&gt;
   (В БЛОКАХ) ДЛЯ УСТРОЙСТВ С ПРОИЗВОЛЬНЫМ ДОСТУПОМ  К  ДАННЫМ&lt;br /&gt;
   ИЛИ 0 ДЛЯ УСТРОЙСТВ С ПОСЛЕДОВАТЕЛЬНЫМ ДОСТУПОМ К ДАННЫМ.&lt;br /&gt;
        ИМЯ УСТРОЙСТВА В DEVNAM МОЖЕТ БЫТЬ ЛОГИЧЕСКИМ  ИМЕНЕМ,&lt;br /&gt;
   ПРИСВОЕННЫМ ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .DSTATUS СМ. В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CSISPC.&lt;br /&gt;
 &lt;br /&gt;
       5.3.12. .EXIT&lt;br /&gt;
        ЗАПРОС .EXIT ВЫЗЫВАЕТ ОКОНЧАНИЕ  ВЫПОЛНЕНИЯ  ПРОГРАММЫ&lt;br /&gt;
   ПОЛЬЗОВАТЕЛЯ И ПЕРЕДАЕТ УПРАВЛЕНИЕ KMON.&lt;br /&gt;
        ПЕРЕД ВЫХОДОМ ИЗ ПРОГРАММЫ ВЫПОЛНЕНИЕ  ВСЕХ  ИНИЦИИРО-&lt;br /&gt;
   ВАННЫХ ОПЕРАЦИЙ ВВОДА-ВЫВОДА И /ИЛИ ПОДПРОГРАММ  ЗАВЕРШЕНИЯ&lt;br /&gt;
   БУДЕТ ЗАКОНЧЕНО. ВСЕ НЕВЫПОЛНЕННЫЕ ЗАПРОСЫ  .MRKT  И  .CMKT&lt;br /&gt;
   БУДУТ АННУЛИРОВАНЫ.&lt;br /&gt;
        ЕСЛИ ЧАСТЬ ФОНОВОЙ ПРОГРАММЫ ЗАНИМАЕТ  ОБЛАСТЬ  ПАМЯТИ&lt;br /&gt;
   KMON И USR, ТО ОНА БУДЕТ ЗАПИСАНА В  БЛОКИ  ДЛЯ  ВРЕМЕННОГО&lt;br /&gt;
   ХРАНЕНИЯ ДАННЫХ НА СИСТЕМНОЕ УСТРОЙСТВО  (ЕСЛИ  РАНЕЕ  БЫЛА&lt;br /&gt;
   ВЫПОЛНЕНА КОМАНДА SET EXIT SWAP). ПОСЛЕ ЭТОГО  KMON  И  USR&lt;br /&gt;
   ЗАГРУЖАЮТСЯ В ПАМЯТЬ И УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ  КЛАВИАТУРНОМУ&lt;br /&gt;
   МОНИТОРУ. ЕСЛИ БЫЛА ВЫПОЛНЕНА КОМАНДА SET EXIT  NOSWAP,  ТО&lt;br /&gt;
   ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ПРОСТО ПЕРЕЗАПИСЫВАЕТСЯ.&lt;br /&gt;
        ЕСЛИ R0 = 0 ВО ВРЕМЯ ВЫПОЛНЕНИЯ .EXIT, ТО  ВЫПОЛНЯЕТСЯ&lt;br /&gt;
   ОПЕРАЦИЯ  АНАЛОГИЧНАЯ  .HRESET,   ЗАПРЕЩАЮЩАЯ   ПОСЛЕДУЮЩЕЕ&lt;br /&gt;
   ВЫПОЛНЕНИЕ КОМАНД REENTER, START ИЛИ CLOSE.&lt;br /&gt;
        ЗАПРОС .EXIT ПОЗВОЛЯЕТ ПРОГРАММЕ ПЕРЕДАТЬ КОМАНДЫ КЛА-&lt;br /&gt;
   ВИАТУРНОМУ МОНИТОРУ, ИСПОЛЬЗУЯ ЯЧЕЙКИ 500-777, ДЛЯ ИХ  ПОС-&lt;br /&gt;
   ЛЕДУЮЩЕГО ВЫПОЛНЕНИЯ. ДЛЯ ЭТОГО НЕОБХОДИМО:&lt;br /&gt;
        1) ЯЧЕЙКА 510 ДОЛЖНА СОДЕРЖАТЬ ОБЩЕЕ КОЛИЧЕСТВО БАЙТОВ&lt;br /&gt;
   В КОМАНДЕ, КОТОРАЯ БУДЕТ ПЕРЕДАНА KMON;&lt;br /&gt;
        2) КОМАНДЫ ЗАПИСЫВАЮТСЯ, НАЧИНАЯ С ЯЧЕЙКИ 512;  СТРОКА&lt;br /&gt;
   ДОЛЖНА БЫТЬ ЗАПИСАНА В СИМВОЛАХ КОИ-7 И НЕ ДОЛЖНА СОДЕРЖАТЬ&lt;br /&gt;
   ВК ИЛИ ПС ; НАПРИМЕР:&lt;br /&gt;
      .=510&lt;br /&gt;
      .WORD B-A&lt;br /&gt;
  A:  .ASCIZ /COPY A.MAC W.MAC/&lt;br /&gt;
      .ASCIZ /DELETE A.MAC/&lt;br /&gt;
  B=  .&lt;br /&gt;
        3) ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА УСТАНОВИТЬ 5  ИЛИ  11&lt;br /&gt;
   РАЗРЯД В ССЗ ПЕРЕД ВЫПОЛНЕНИЕМ .EXIT; СОДЕРЖИМОЕ R0  ДОЛЖНО&lt;br /&gt;
   БЫТЬ НУЛЕВЫМ.&lt;br /&gt;
        КОГДА ЗАПРОС .EXIT ИСПОЛЬЗУЕТСЯ  ДЛЯ  ПЕРЕДАЧИ  КОМАНД&lt;br /&gt;
   НЕОБХОДИМО УЧИТЫВАТЬ СЛЕДУЮЩЕЕ:&lt;br /&gt;
        1) ЕСЛИ ЭТО СВОЙСТВО ИСПОЛЬЗУЕТСЯ ПРОГРАММОЙ,  КОТОРАЯ&lt;br /&gt;
   ВЫЗЫВАЕТСЯ С ПОМОЩЬЮ КОСВЕННОГО ФАЙЛА, ТО ВСЕ КОМАНДЫ  СЛЕ-&lt;br /&gt;
   ДУЮЩИЕ В КОСВЕННОМ ФАЙЛЕ  ЗА  КОМАНДОЙ,  ИНИЦИИРУЮЩЕЙ  ПУСК&lt;br /&gt;
   ЭТОЙ ПРОГРАММЫ, ВЫПОЛНЯТЬСЯ НЕ БУДУТ;&lt;br /&gt;
        2) КОСВЕННЫЙ ФАЙЛ МОЖЕТ  БЫТЬ  ВЫЗВАН,  ИСПОЛЬЗУЯ  ЭТО&lt;br /&gt;
   СВОЙСТВО, ТОЛЬКО В ТОМ СЛУЧАЕ ЕСЛИ ПЕРЕДАВАЕМАЯ KMON СТРОКА&lt;br /&gt;
   СОДЕРЖИТ ЕДИНСТВЕННУЮ СПЕЦИФИКАЦИЮ ФАЙЛА; ПОПЫТКА  ПЕРЕДАЧИ&lt;br /&gt;
   НЕСКОЛЬКИХ КОСВЕННЫХ ФАЙЛОВ ИЛИ КОМБИНАЦИЙ КОСВЕННЫХ ФАЙЛОВ&lt;br /&gt;
   С ДРУГИМИ КОМАНДАМИ KMON ПРИВОДИТ К НЕПРАВИЛЬНЫМ  РЕЗУЛЬТА-&lt;br /&gt;
   ТАМ;&lt;br /&gt;
        3) .EXIT В ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ  НЕДОПУСТИМ.  ЗАМЕ-&lt;br /&gt;
   ТИМ, ЧТО ЗАПРОС .EXIT ИЗМЕНЯЕТ ТЕКУЩЕЕ ПОЛОЖЕНИЕ  УКАЗАТЕЛЯ&lt;br /&gt;
   СТЕКА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ: .EXIT&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  EXIT.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ, ПОСЛЕ ЗАВЕРШЕНИЯ ПРОГРАММЫ,&lt;br /&gt;
  ;КЛАВИАТУРНОМУ МОНИТОРУ ПЕРЕДЕТСЯ КОМАНДНАЯ&lt;br /&gt;
  ;СТРОКА НА ПЕЧАТЬ СПРАВОЧНИКА УСТРОЙСТВА DK:&lt;br /&gt;
          .MCALL  .EXIT&lt;br /&gt;
  CHNIF$  = 4000&lt;br /&gt;
  JSW     = 44&lt;br /&gt;
 &lt;br /&gt;
  START:  MOV     #510,R0&lt;br /&gt;
          MOV     #CMDSTR,R1&lt;br /&gt;
          MOV     #START,SP&lt;br /&gt;
 &lt;br /&gt;
  1$:     MOVB    (R1)+,(R0)+&lt;br /&gt;
          CMP     R1,#CMDEND&lt;br /&gt;
          BLO     1$&lt;br /&gt;
          BIS     #CHNIF$,@#JSW ;УСТАНОВИТЬ 11-ЫЙ РАЗРЯД&lt;br /&gt;
                                ;В JSW&lt;br /&gt;
          CLR     R0            ;В R0 ДОЛЖЕН БЫТЬ 0&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  CMDSTR: .WORD   CMDEND-CMDSTR ;ДЛИНА КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          .ASCIZ  &amp;quot;DIRECT/FULL *.MAC&amp;quot; ;КОМАНДНАЯ СТРОКА&lt;br /&gt;
  CMDEND:&lt;br /&gt;
          .EVEN&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.13. .FETCH,.RELEAS&lt;br /&gt;
        ЗАПРОС .FETCH ЗАГРУЖАЕТ ДРАЙВЕР УСТРОЙСТВА ИЗ  СИСТЕМ-&lt;br /&gt;
   НОГО УСТРОЙСТВА В ОПЕРАТИВНУЮ ПАМЯТЬ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .FETCH ADDR,DEVNAM&lt;br /&gt;
   ГДЕ ADDR - АДРЕС ЗАГРУЗКИ ДРАЙВЕРА;&lt;br /&gt;
        DEVNAM - АДРЕС ИМЕНИ УСТРОЙСТВА В КОДАХ RADIX-50.&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ .FETCH,  R0  СОДЕРЖИТ  АДРЕС  ПЕРВОЙ,&lt;br /&gt;
   РАСПОЛОЖЕННОЙ ВЫШЕ  ДРАЙВЕРА,  ЯЧЕЙКИ  ОПЕРАТИВНОЙ  ПАМЯТИ.&lt;br /&gt;
   ЕСЛИ ДРАЙВЕР УЖЕ ЗАГРУЖЕН  В  ПАМЯТЬ,  R0  БУДЕТ  СОДЕРЖАТЬ&lt;br /&gt;
   АДРЕС ЗАГРУЗКИ ADDR.&lt;br /&gt;
        ДЛЯ ВЫПОЛНЕНИЯ ЗАПРОСОВ&lt;br /&gt;
           .CLOSE   .READC   .READ    .SFDAT&lt;br /&gt;
           .LOOKUP  .WRITE   .WRITC   .FPROT&lt;br /&gt;
           .ENTER   .READW   .SPFUN&lt;br /&gt;
           .RENAME  .WRITW   .DELETE&lt;br /&gt;
   НЕОБХОДИМО НАЛИЧИЕ В ПАМЯТИ ДРАЙВЕРОВ СООТВЕТСТВУЮЩИХ  УСТ-&lt;br /&gt;
   РОЙСТВ.&lt;br /&gt;
        В РЕЖИМЕ FB, ДРАЙВЕРЫ ДЛЯ ОСНОВНОЙ ПРОГРАММЫ ИЛИ  СИС-&lt;br /&gt;
   ТЕМНОГО ЗАДАНИЯ ДОЛЖНЫ ЗАГРУЖАТЬСЯ ПО КОМАНДЕ LOAD ПЕРЕД ИХ&lt;br /&gt;
   ВЫПОЛНЕНИЕМ.&lt;br /&gt;
        В РЕЖИМЕ ХМ, ДРАЙВЕРЫ УСТРОЙСТВ ДОЛЖНЫ  ЗАГРУЖАТЬСЯ  В&lt;br /&gt;
   ЛЮБУЮ ОБЛАСТЬ ПАМЯТИ (ФОНОВУЮ ИЛИ ОСНОВНУЮ) ПО КОМАНДЕ LOAD&lt;br /&gt;
   ПЕРЕД ЗАГРУЗКОЙ ПРОГРАММ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .FETCH  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CSISPC.&lt;br /&gt;
        ЗАПРОС .RELEAS УДАЛЯЕТ ДРАЙВЕР  УКАЗАННОГО  УСТРОЙСТВА&lt;br /&gt;
   ИЗ ПАМЯТИ. ЗАПРОС .RELEAS ИГНОРИРУЕТСЯ, ЕСЛИ ДРАЙВЕР:&lt;br /&gt;
        1) ЯВЛЯЕТСЯ ЧАСТЬЮ RMON (Т.Е. ЯВЛЯЕТСЯ ДРАЙВЕРОМ  СИС-&lt;br /&gt;
   ТЕМНОГО УСТРОЙСТВА);&lt;br /&gt;
        2) ОТСУТСТВУЕТ В ПАМЯТИ;&lt;br /&gt;
        3) БЫЛ ЗАГРУЖЕН ПО КОМАНДЕ LOAD.&lt;br /&gt;
        ЗАПРОС .RELEAS В ОСНОВНОЙ ПРОГРАММЕ  ИЛИ  В  СИСТЕМНОМ&lt;br /&gt;
   ЗАДАНИИ ПОД УПРАВЛЕНИЕМ МОНИТОРА FB(ХМ) ВСЕГДА  ИГНОРИРУЕТ-&lt;br /&gt;
   СЯ, Т.К. МОНИТОРЫ FB ИЛИ ХМ МОГУТ  ИСПОЛЬЗОВАТЬ  ТОЛЬКО  ТЕ&lt;br /&gt;
   ДРАЙВЕРЫ, КОТОРЫЕ БЫЛИ ЗАГРУЖЕНЫ ПО КОМАНДЕ LOAD.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RELEAS DEVNAM&lt;br /&gt;
   ГДЕ DEVNAM - АДРЕС ИМЕНИ УСТРОЙСТВА В КОДАХ RADIX-50.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  RELEAS.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ДРАЙВЕР РС: ЗАГРУЖАЕТСЯ В ПАМЯТЬ,&lt;br /&gt;
  ;А ЗАТЕМ ПО ЗАПРОСУ .RELEAS УДАЛЯЕТСЯ ИЗ ПАМЯТИ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .FETCH,.RELEAS,.EXIT,.PRINT&lt;br /&gt;
 &lt;br /&gt;
  START:  .FETCH  #DSPACE,#DEVNAM ;ЗАГРУЗИТЬ ДРАЙВЕР&lt;br /&gt;
          BCS     FERR&lt;br /&gt;
          .RELEAS #DEVNAM         ;УДАЛИТЬ ДРАЙВЕР&lt;br /&gt;
          BR      START&lt;br /&gt;
 &lt;br /&gt;
  FERR:   .PRINT  #NODEV&lt;br /&gt;
          .EXIT&lt;br /&gt;
  DEVNAM: .RAD50  /PC /&lt;br /&gt;
  NODEV:  .ASCIZ  &amp;quot; УСТРОЙСТВО ОТСУТСТВУЕТ !&amp;quot;&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPACE:&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.14. .FORK&lt;br /&gt;
        ЗАПРОС .FORK ИСПОЛЬЗУЕТСЯ В ДРАЙВЕРАХ ДЛЯ  СИНХРОНИЗА-&lt;br /&gt;
   ЦИИ РАБОТЫ СИСТЕМЫ.  ЗАПРОСУ  .FORK  ДОЛЖЕН  ПРЕДШЕСТВОВАТЬ&lt;br /&gt;
   ЗАПРОС .INTEN, .FORK ТРЕБУЕТ  ДЛЯ  СВОЕГО  ВЫПОЛНЕНИЯ  БЛОК&lt;br /&gt;
   ПАМЯТИ ИЗ 4-Х СЛОВ. СОДЕРЖИМОЕ  РЕГИСТРОВ  R4  И  R5  ПОСЛЕ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ЗАПРОСА СОХРАНЯЕТСЯ. .FORK  ИСПОЛЬЗУЕТСЯ  В  ТОМ&lt;br /&gt;
   СЛУЧАЕ, КОГДА ДОЛЖЕН БЫТЬ  УПОРЯДОЧЕН  ДОСТУП  К  СИСТЕМНЫМ&lt;br /&gt;
   РЕСУРСАМ ИЛИ ДОЛЖНА БЫТЬ ВЫПОЛНЕНА НЕ КРИТИЧЕСКАЯ ПО ВРЕМЕ-&lt;br /&gt;
   НИ, НО БОЛЬШАЯ ПО РАЗМЕРУ, ЧАСТЬ ПРОГРАММЫ. ПОСЛЕ ОБРАБОТКИ&lt;br /&gt;
   МОНИТОРОМ ЗАПРОСА .FORK ПРЕРЫВАНИЕ ОТ УСТРОЙСТВА БУДЕТ ЗАП-&lt;br /&gt;
   РЕЩЕНО И ДРАЙВЕР БУДЕТ РАБОТАТЬ НА НУЛЕВОМ ПРИОРИТЕТЕ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .FORK FKBLK&lt;br /&gt;
   ГДЕ FKBLK - АДРЕС БЛОКА ИЗ 4-Х СЛОВ (ДОЛЖЕН БЫТЬ В ДРАЙВЕРЕ&lt;br /&gt;
   УСТРОЙСТВА).&lt;br /&gt;
 &lt;br /&gt;
       5.3.15. .FPROT&lt;br /&gt;
        С ПОМОЩЬЮ ЗАПРОСА .FPROT УСТАНАВЛИВАЕТСЯ ИЛИ ОТМЕНЯЕТ-&lt;br /&gt;
   СЯ ЗАЩИТА ФАЙЛА (ОТ УДАЛЕНИЯ).&lt;br /&gt;
        НА ЗАЩИЩЕНЫЙ ФАЙЛ НЕ РАСПОСТРАНЯЕТСЯ ДЕЙСТВИЯ ЗАПРОСОВ&lt;br /&gt;
   .CLOSE, .DELETE, .ENTER И .RENAME. ОДНАКО ДАННЫЕ, ХРАНЯЩИЕ-&lt;br /&gt;
   СЯ  В  ЗАЩИЩЕНОМ  ФАЙЛЕ,  МОЖНО  МОДИФИЦИРОВАТЬ.  НАПРИМЕР,&lt;br /&gt;
   ИСПОЛЬЗОВАНИЕ ЗАПРОСА  .LOOKUP  ДЛЯ  ЗАЩИЩЕННОГО  ФАЙЛА  ЗА&lt;br /&gt;
   КОТОРЫМ СЛЕДУЕТ .WRITE, ИСПОЛЬЗУЮЩИЙ ТОТ ЖЕ  КАНАЛ,  ДОПУС-&lt;br /&gt;
   КАЕТСЯ.&lt;br /&gt;
        ЗАЩИТА ФАЙЛА ОТ УДАЛЕНИЯ РЕАЛИЗУЕТСЯ УСТАНОВКОЙ  15-ГО&lt;br /&gt;
   РАЗРЯДА В СЛОВЕ СОСТОЯНИЯ СПРАВОЧНИКА УСТРОЙСТВА  ДЛЯ  УКА-&lt;br /&gt;
   ЗАННОГО ФАЙЛА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .FPROT AREA,CCHAN,DBLK,PROT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА (ИЗ 4-Х СЛОВ) АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        CHAN - НОМЕР КАНАЛА ( ОТ 0 ДО 376);&lt;br /&gt;
        DBLK - АДРЕС БЛОКА (ИЗ 4-Х СЛОВ), СОДДЕРЖАЩЕГО  СПЕЦИ-&lt;br /&gt;
   ФИКАЦИЮ ФАЙЛА В КОДАХ RADIX-50;&lt;br /&gt;
        PROT - КОНСТАНТА, РАВНАЯ  1  (ЗАЩИТА  УСТАНАВЛИВАЕТСЯ)&lt;br /&gt;
   ИЛИ 0 (ЗАЩИТА ОТМЕНЯЕТСЯ).&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,43&lt;br /&gt;
                  .WORD   DBLK    &lt;br /&gt;
                  .WORD   PROT&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE FPROT.MAC&lt;br /&gt;
  ;В ПРИМЕРЕ ИСПОЛЬЗУЮТСЯ ЗАПРОСЫ .FPROT И .SFDAT&lt;br /&gt;
  ;ДЛЯ УСТАНОВКИ ЗАЩИТЫ УКАЗАННОГО ФАЙЛА И&lt;br /&gt;
  ;ИЗМЕНЕНИЯ ДАТЫ СОЗДАНИЯ ФАЙЛА НА ТЕКУЩУЮ ДАТУ.&lt;br /&gt;
  ;КОМАНДНАЯ СТРОКА ВВОДИТСЯ С ТЕРМИНАЛА.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL .FPROT,.FETCH,.CSISPC,.DSTATUS,.SFDAT&lt;br /&gt;
          .MCALL .PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  .CSISPC #OUTSP,#DEFEXT  ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          .DSTAT  #STAT,#INSPEC   ;ПРОВЕРИТЬ НАЛИЧИЕ&lt;br /&gt;
                                  ;УСТРОЙСТВА&lt;br /&gt;
          TST     STAT+4          ;ДРАЙВЕР ЗАГРУЖЕН?&lt;br /&gt;
          BNE     1$              ;ДА&lt;br /&gt;
          .FETCH  #DRVLOD,#INSPEC ;НЕТ-ЗАГРУЗИТЬ ДРАЙВЕР&lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #LOFAIL&lt;br /&gt;
          BR      START&lt;br /&gt;
  1$:     .FPROT  #EMTBLK,#0,#INSPEC,#1;УСТАНОВИТЬ ЗАЩИТУ&lt;br /&gt;
                                       ;ФАЙЛА     &lt;br /&gt;
          BCC     2$&lt;br /&gt;
          .PRINT  #PRFAIL&lt;br /&gt;
          BR      START&lt;br /&gt;
  2$:     .SFDAT  #EMTBLK,#0,#INSPEC,#0;ИЗМЕНИТЬ ДАТУ НА&lt;br /&gt;
                                       ;ТЕКУЩУЮ   &lt;br /&gt;
          BCC     3$&lt;br /&gt;
          .PRINT  #SDFAIL&lt;br /&gt;
          BR      START&lt;br /&gt;
  3$:     .EXIT&lt;br /&gt;
 &lt;br /&gt;
  EMTBLK: .BLKW   4&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  STAT:   .BLKW   4               ;БЛОК СОСТОЯНИЯ УСТРОЙСТВА  &lt;br /&gt;
  LOFAIL: .ASCIZ  /ОШИБКА ЗАПРОСА .FETCH/&lt;br /&gt;
  PRFAIL: .ASCIZ  /ОШИБКА ЗАПРОСА .FPROT/&lt;br /&gt;
  SDFAIL: .ASCIZ  /ОШИБКА ЗАПРОСА .SFDAT/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  OUTSP:  .BLKW   5*3&lt;br /&gt;
  INSPEC: .BLKW   4*6&lt;br /&gt;
  DRVLOD: .BLKW   1&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.16. .GTIM&lt;br /&gt;
        ЗАПРОС .GTIM ПОЗВОЛЯЕТ  ПРОГРАММЕ  ОПРЕДЕЛИТЬ  ТЕКУЩЕЕ&lt;br /&gt;
   ВРЕМЯ СУТОК.  ВЕЛИЧИНА  ВРЕМЕНИ  ОПРЕДЕЛЯЕТСЯ  В  ТИКАХ  (1&lt;br /&gt;
   ТИК=1/50 С).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .GTIM AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 2-Х СЛОВ,  СОДЕРЖАЩЕГО  ЗНАЧЕНИЕ&lt;br /&gt;
   ВРЕМЕНИ ВО ВНУТРЕННЕМ ФОРМАТЕ; ПЕРВОЕ СЛОВО СОДЕРЖИТ  СТАР-&lt;br /&gt;
   ШИЕ РАЗРЯДЫ, ВТОРОЕ СЛОВО - МЛАДШИЕ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,21&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
        ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН ПРЕДУСМОТРЕТЬ  В  СВОЕЙ  ПРОГРАММЕ&lt;br /&gt;
   ОПЕРАЦИЮ  ПРЕОБРАЗОВАНИЯ  ТИКОВ  В  ЧАСЫ-МИНУТЫ-СЕКУНДЫ.  В&lt;br /&gt;
   РЕЖИМЕ FB ВЕЛИЧИНА ВРЕМЕНИ АВТОМАТИЧЕСКИ  ВОССТАНАВЛИВАЕТСЯ&lt;br /&gt;
   ПОСЛЕ 24:00:, В РЕЖИМЕ SJ  ОПЕРАЦИЯ  ВОССТАНОВЛЕНИЯ  ВЫПОЛ-&lt;br /&gt;
   НЯЕТСЯ, ЕСЛИ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ БЫЛА ОПРЕДЕЛЕНА ПОДДЕРЖ-&lt;br /&gt;
   КА ТАЙМЕРА.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  .GTIM.MAC&lt;br /&gt;
 &lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ПОЛЬЗОВАТЕЛЬ ПОЛУЧАЕТ ТЕКУЩЕЕ ВРЕМЯ&lt;br /&gt;
  ;В ТИКАХ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .GTIM,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  .GTIM   #AREA,#TICKS    ;ОПРЕДЕЛИТЬ ТЕКУЩЕЕ&lt;br /&gt;
                                  ;ВРЕМЯ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  TICKS:  .WORD   0,0&lt;br /&gt;
  AREA:   .BLKW   2&lt;br /&gt;
          &lt;br /&gt;
          .END START&lt;br /&gt;
 &lt;br /&gt;
       5.3.17. .GTJB&lt;br /&gt;
        ЗАПРОС  .GTJB  ПОЗВОЛЯЕТ  ПРОГРАММЕ  ОПРЕДЕЛИТЬ  НОМЕР&lt;br /&gt;
   ВЫПОЛНЯЕМОГО ЗАДАНИЯ, НИЖНЮЮ ГРАНИЦУ ПАМЯТИ И ДРУГИЕ  ПАРА-&lt;br /&gt;
   МЕТРЫ ЗАДАНИЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .GTJB AREA,ADDR[,JOBBLK]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 8-МИ ИЛИ 12-ТИ СЛОВ ДЛЯ ПАРАМЕТ-&lt;br /&gt;
   РОВ ЗАДАНИЯ (СМ. ТАБЛ.13);&lt;br /&gt;
        JOBBLK - АДРЕС БЛОКА ИЗ 3-Х СЛОВ, СОДЕРЖАЩЕГО ЛОГИЧЕС-&lt;br /&gt;
   КОЕ ИМЯ ЗАДАНИЯ В КОДАХ КОИ-7.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,20&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .WORD   JOBBLK&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 13&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    !   СЛОВО     !             СОДЕРЖИМОЕ                    !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    !     1       ! НОМЕР ЗАДАНИЯ; В РЕЖИМАХ FB,XM БЕЗ ПОД-   !&lt;br /&gt;
    !             ! ДЕРЖКИ СИСТЕМНЫХ ЗАДАНИЙ: ФОНОВОЕ - 0,    !&lt;br /&gt;
    !             ! ОСНОВНОЕ - 2;                             !&lt;br /&gt;
    !             ! В РЕЖИМАЬ FB,ХМ С ПОДДЕРЖКОЙ СИСТЕМНЫХ ЗА-!&lt;br /&gt;
    !             ! ДАНИЙ: ФОНОВОЕ - 0, СИСТЕМНЫЕ - 2,4,6,10, !&lt;br /&gt;
    !             ! 12,14, ОСНОВНОЕ - 16                      !&lt;br /&gt;
    !     2       ! ВЕРХНЯЯ ГРАНИЦА ОБЛАСТИ ЗАДАНИЯ           !&lt;br /&gt;
    !     3       ! НИЖНЯЯ ГРАНИЦА ОБЛАСТИ ЗАДАНИЯ            !&lt;br /&gt;
    !     4       ! НАЧАЛО ОБЛАСТИ КАНАЛОВ ВВОДА-ВЫВОДА       !&lt;br /&gt;
    !     5       ! АДРЕС СМЕШАННОЙ ОБЛАСТИ ЗАДАНИЙ ДЛЯ       !&lt;br /&gt;
    !             ! МОНИТОРОВ FB И XM                         !&lt;br /&gt;
    !     6       ! МЛАДШИЙ БАЙТ - НОМЕР СИСТЕМНОГО ТЕРМИНАЛА !&lt;br /&gt;
    !             ! ДЛЯ СИСТЕМ С МУЛЬТИТЕРМИНАЛЬНОЙ ПОДДЕРЖКОЙ!&lt;br /&gt;
    !     7       ! В РЕЖИМЕ ХМ - ВЕРХНИЙ ВИРТУАЛЬНЫЙ АДРЕС   !&lt;br /&gt;
    !             ! ДЛЯ ВИРТУАЛЬНОГО ЗАДАНИЯ.                 !&lt;br /&gt;
    !   10-12     ! В РЕЖИМАХ FB,ХМ С ПОДДЕРЖКОЙ СИСТЕМНЫХ    !&lt;br /&gt;
    !             ! ЗАДАНИЙ - ЛОГИЧЕСКОЕ ИМЯ ЗАДАНИЯ В КОДАХ  !&lt;br /&gt;
    !             ! КОИ-7                                     !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕЧАНИЕ.  ИНФОРМАЦИЮ  НЕОБХОДИМУЮ  ДЛЯ   УПРАВЛЕНИЯ&lt;br /&gt;
   ВЫПОЛНЕНИЕМ ОСНОВНОГО ЗАДАНИЯ, МОНИТОР ХРАНИТ В, ТАК  НАЗЫ-&lt;br /&gt;
   ВАЕМОЙ, СМЕШАННОЙ ОБЛАСТИ, КОТОРАЯ СОЗДАЕТСЯ ВО ВРЕМЯ  ЗАГ-&lt;br /&gt;
   РУЗКИ ОСНОВНОЙ ПРОГРАММЫ В МЛАДШИХ АДРЕСАХ ОСНОВНОЙ ОБЛАСТИ&lt;br /&gt;
   ПАМЯТИ.&lt;br /&gt;
        СЛОВО 4 СОДЕРЖИТ АДРЕС, С КОТОРОГО НАЧИНАЕТСЯ  ОБЛАСТЬ&lt;br /&gt;
   КАНАЛОВ ВВОДА-ВЫВОДА. ОБЫЧНО ЭТОТ АДРЕС НАХОДИТСЯ В  ПРЕДЕ-&lt;br /&gt;
   ЛАХ RMON. ОДНАКО, ПОСЛЕ ВЫПОЛНЕНИЯ .CDFN,  ОБЛАСТЬ  КАНАЛОВ&lt;br /&gt;
   ВВОДА-ВЫВОДА ЗАМЕНЯЕТСЯ НА ОБЛАСТЬ,  АДРЕС  КОТОРОЙ  УКАЗЫ-&lt;br /&gt;
   ВАЕТСЯ ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  GTJB.MAC&lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ С ПОМОЩЬЮ ЗАПРОСА .GTJB ОПРЕДЕЛЯЕТСЯ&lt;br /&gt;
  ;ЗАГРУЖЕНО ЛИ ОСНОВНОЕ ЗАДАНИЕ.&lt;br /&gt;
  ;ПРОГРАММА МОЖЕТ ВЫПОЛНЯТЬСЯ КАК ПОД УПРАВЛЕНИЕМ МОНИТОРА&lt;br /&gt;
  ;FB, ИМЕЮЩЕГО ПОДДЕРЖКУ СИСТЕМНЫХ ЗАДАНИЙ, ТАК И ПОД&lt;br /&gt;
  ;УПРАВЛЕНИЕМ МОНИТОРА FB, КОТОРЫЙ НЕ ИМЕЕТ ПОДДЕРЖКИ&lt;br /&gt;
  ;СИСТЕМНЫХ ЗАДАНИЙ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .GVAL,.GTJB,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
          SYSGEN = 372            ;СЛОВО ПАРАМЕТРОВ ГЕНЕРАЦИИ&lt;br /&gt;
          SYSJOB = 40000          ;РАЗРЯД СИСТЕМНОГО ЗАДАНИЯ&lt;br /&gt;
 &lt;br /&gt;
  START:  MOV     #2,     R1&lt;br /&gt;
          .GVAL   #LIST,  #SYSGEN ;ПОЛУЧИТЬ В R0 СОДЕРЖИМОЕ&lt;br /&gt;
                                  ;ЯЧЕЙКИ МОНИТОРА&lt;br /&gt;
          BIT     #SYSJOB,R0      ;ЕСТЬ ПОДДЕРЖКА СИСТЕМНОГО&lt;br /&gt;
                                  ;ЗАДАНИЯ&lt;br /&gt;
          BEQ     1$&lt;br /&gt;
          MOV     #16,    R1      ;НОМЕР ОСНОВНОГО ЗАДАНИЯ=16&lt;br /&gt;
 &lt;br /&gt;
  1$:     .GTJB   #LIST,#JOBARG,R1;ПОЛУЧИТЬ ПАРАМЕТРЫ&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .PRINT  #FGLOAD&lt;br /&gt;
          .EXIT&lt;br /&gt;
  2$:     .PRINT  #NOFG&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  LIST:   .BLKW   3&lt;br /&gt;
  JOBARG: .BLKW   12.             ;БЛОК ПАРАМЕТРОВ ЗАДАНИЯ&lt;br /&gt;
  FGLOAD: .ASCIZ  / ПРОГРАММА В ОСНОВНОЙ ОБЛАСТИ ПАМЯТИ/&lt;br /&gt;
  NOFG:   .ASCIZ  /НЕТ ПРОГРАММЫ В ОСНОВНОЙ ОБЛАСТИ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.18. .GTLIN&lt;br /&gt;
        ЗАПРОС .GTLIN ИСПОЛЬЗУЕТСЯ ДЛЯ ПОЛУЧЕНИЯ ОТ  ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЯ КОМАНДНОЙ ИНФОРМАЦИИ, ОТЛИЧНОЙ ОТ КОМАНДНЫХ СТРОК  CSI&lt;br /&gt;
   И ПОЗВОЛЯЕТ ПРОГРАММЕ РАБОТАТЬ С КОСВЕННЫМИ ФАЙЛАМИ.&lt;br /&gt;
        ЗАПРОС .GTLIN ТРЕБУЕТ НАЛИЧИЯ USR В ПАМЯТИ И ПРИНИМАЕТ&lt;br /&gt;
   ВХОДНУЮ СТРОКУ С СИСТЕМНОГО ТЕРМИНАЛА,  ИЛИ  ИЗ  КОСВЕННОГО&lt;br /&gt;
   ФАЙЛА, В ЗАВИСИМОСТИ ОТ ТОГО БЫЛА ЛИ  ВЫЗВАНА  ПРОГРАММА  С&lt;br /&gt;
   ТЕРМИНАЛА ИЛИ КОМАНДОЙ ИЗ КОСВЕННОГО ФАЙЛА.&lt;br /&gt;
        ЗАПРОС .GTLIN ИГНОРИРУЕТ АРГУМЕНТ PSTR, ЕСЛИ ВВОД ОСУ-&lt;br /&gt;
   ЩЕСТВЛЯЕТСЯ ИЗ КОСВЕННОГО ФАЙЛА И, ЕСЛИ РАНЕЕ БЫЛА ВЫПОЛНЕ-&lt;br /&gt;
   НА КОМАНДА SET TT QUIET. ОДНАКО, ЕСЛИ ВВОД ОСУЩЕСТВЛЯЕТСЯ С&lt;br /&gt;
   ТЕРМИНАЛА ИЛИ ИЗ КОСВЕННОГО ФАЙЛА, И РАНЕЕ НЕ БЫЛА ВЫПОЛНЕ-&lt;br /&gt;
   НА КОМАНДА SET TT QUIET, ЗАПРОС .GTLIN  БУДЕТ  ИСПОЛЬЗОВАТЬ&lt;br /&gt;
   АРГУМЕНТ PSTR ДЛЯ ПЕЧАТИ ПОБУЖДАЮЩЕЙ СТРОКИ СИМВОЛОВ  ПЕРЕД&lt;br /&gt;
   ВЫБОРКОЙ ВХОДНОЙ СТРОКИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .GTLIN SPTR[,PSTR][,TYPE]&lt;br /&gt;
   ГДЕ SPTR - АДРЕС БУФЕРА ДЛЯ ЗАПИСИ  ВХОДНОЙ  СТРОКИ;  ДЛИНА&lt;br /&gt;
   СТРОКИ НЕ ДОЛЖНА ПРЕВЫШАТЬ 81 БАЙТ; СТРОКА БУДЕТ ОГРАНИЧЕНА&lt;br /&gt;
   НУЛЕВЫМ БАЙТОМ ВМЕСТО ВК ПС ;&lt;br /&gt;
        PSTR - АДРЕС ПОБУЖДАЮЩЕЙ СТРОКИ, КОТОРАЯ  БУДЕТ  ПЕЧА-&lt;br /&gt;
   ТАТЬСЯ НА ТЕРМИНАЛЕ; PSTR ИМЕЕТ ТОТ ЖЕ ФОРМАТ, ЧТО И  АРГУ-&lt;br /&gt;
   МЕНТ ЗАПРОСА .PRINT.&lt;br /&gt;
        TYPE - НЕОБЯЗАТЕЛЬНЫЙ  АРГУМЕНТ, ПОЗВОЛЯЮЩИЙ  ОСУЩЕСТ-&lt;br /&gt;
   ВИТЬ ВВОД С ТЕРМИНАЛА ПРИ ВЫПОЛНЕНИИ КОСВЕННОГО ФАЙЛА.&lt;br /&gt;
        ПРИМЕЧАНИЕ.  ЕДИНСТВЕННЫМИ  ЗАПРОСАМИ,  КОТОРЫЕ  МОГУТ&lt;br /&gt;
   ОСУЩЕСТВЛЯТЬ ВВОД ИЗ  КОСВЕННОГО  ФАЙЛА,  ЯВЛЯЮТСЯ  ЗАПРОСЫ&lt;br /&gt;
   .CSIGEN, .CSISPC И .GTLIN.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  GTLIN.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ПЕЧАТАЕТСЯ СТРОКА, ВВЕДЕНАЯ С&lt;br /&gt;
  ;ТЕРМИНАЛА.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .GTLIN,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  .GTLIN  #BUFF,#PROMT&lt;br /&gt;
          TSTB    BUFF&lt;br /&gt;
          BEQ     1$&lt;br /&gt;
          .PRINT  #BUFF&lt;br /&gt;
          CLRB    BUFF&lt;br /&gt;
          BR      START&lt;br /&gt;
  1$:     .EXIT&lt;br /&gt;
  BUFF:   .BLKW   41.&lt;br /&gt;
  PROMT:  .ASCII  /ВВЕДИТЕ СТРОКУ -  /&amp;lt;200&amp;gt;&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.19. .GVAL,.PVAL&lt;br /&gt;
        ЗАПРОС .GVAL ПЕРЕДАЕТ В R0 СОДЕРЖИМОЕ УКАЗАНОЙ  ЕР.&lt;br /&gt;
          .TITLE  GTLIN.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ПЕЧАТАЕТСЯ СТРОКА, ВВЕДЕНАЯ С&lt;br /&gt;
  ;ТЕРМИНАЛА.&lt;br /&gt;
          .MCALL  .GTLIN,.PRINT,.EXIT&lt;br /&gt;
  START:  .GTLIN  #BUFF,#PROMT&lt;br /&gt;
          TSTB    BUFF&lt;br /&gt;
          BEQ     1$&lt;br /&gt;
          .PRINT  #BUFF&lt;br /&gt;
          CLRB    BUFF&lt;br /&gt;
          BR      START&lt;br /&gt;
  1$:     .EXIT&lt;br /&gt;
  BUFF:   .BLKW   41.&lt;br /&gt;
  PROMT:  .ASCII  /ВВЕДИТЕ СТРОКУ -  /&amp;lt;200&amp;gt;&lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.19. .GVAL,.PVAL&lt;br /&gt;
        ЗАПРОС .GVAL ПЕРЕДАЕТ В R0 СОДЕРЖИМОЕ УКАЗАНОЙ  ЯЧЕЙКИ&lt;br /&gt;
   МОНИТОРА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .GVAL AREA, OFFSET&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        OFFSET - ЗНАЧЕНИЕ СМЕЩЕНИЯ ОТНОСИТЕЛЬНО НАЧАЛА RMON.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
 &lt;br /&gt;
          AREA:   .BYTE   0,34&lt;br /&gt;
                  .WORD   OFFSET&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .GVAL  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .GTJB.&lt;br /&gt;
        ЗАПРОС .PVAL ИЗМЕНЯЕТ СОДЕРЖИМОЕ УКАЗАНОЙ ЯЧЕЙКИ МОНИ-&lt;br /&gt;
   ТОРА. СТАРОЕ СОДЕРЖИМОЕ ЗАПИСЫВАЕТСЯ В РЕГИСТР R0.&lt;br /&gt;
        В РЕЖИМЕ ХМ .GVAL И .PVAL  ДОЛЖНЫ  ИСПОЛЬЗОВАТЬСЯ  ДЛЯ&lt;br /&gt;
   ИЗМЕНЕНИЯ СОДЕРЖИМОГО ЯЧЕЕК МОНИТОРА  ДЛЯ  СОВМЕСТИМОСТИ  С&lt;br /&gt;
   ДРУГИМИ МОНИТОРАМИ RT11.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .PVAL AREA,OFFSET,VALUE&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        OFFSET - ЗНАЧЕНИЕ СМЕЩЕНИЯ ОТНОСИТЕЛЬНО  НАЧАЛА  RMON;&lt;br /&gt;
   VALUE - НОВОЕ СОДЕРЖИМОЕ ЯЧЕЙКИ МОНИТОРА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
 &lt;br /&gt;
          AREA:   .BYTE   2,34&lt;br /&gt;
                  .WORD   OFFSET&lt;br /&gt;
                  .WORD   VALUE&lt;br /&gt;
 &lt;br /&gt;
       5.3.20. .HERR,.SERR&lt;br /&gt;
        ЗАПРОСЫ .HERR,  .SERR  ПОЗВОЛЯЮТ  ЗАДАТЬ  ОПРЕДЕЛЕННЫЙ&lt;br /&gt;
   РЕЖИМ РАБОТЫ МОНИТОРА ПРИ ОБНАРУЖЕНИИ  УСЛОВИЙ  ОШИБОК.  ВО&lt;br /&gt;
   ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ  МОГУТ  ВОЗНИКНУТЬ  ОПРЕДЕЛЕННЫЕ&lt;br /&gt;
   ОШИБКИ, ВЫЗЫВАЮЩИЕ ПРЕРЫВАНИЕ  ПРОГРАММЫ  (СМ.  ТАБЛ.  14).&lt;br /&gt;
   ОБЫЧНО ЭТИ ОШИБКИ ВЫЗЫВАЮТ  ВЫХОД  ИЗ  ПРОГРАММЫ  И  ПЕЧАТЬ&lt;br /&gt;
   МОНИТОРОМ СООБЩЕНИЯ ОБ ОШИБКЕ. ОДНАКО В  НЕКОТОРЫХ  СЛУЧАЯХ&lt;br /&gt;
   НЕВОЗМОЖНО ПРЕРВАТЬ ВЫПОЛНЕНИЕ  ПРОГРАММЫ  ИЗ-ЗА  ВОЗНИКШИХ&lt;br /&gt;
   ОШИБОК. НАПРИМЕР,  МНОГОПОЛЬЗОВАТЕЛЬСКАЯ  ПРОГРАММА  ДОЛЖНА&lt;br /&gt;
   СОХРАНЯТЬ УПРАВЛЕНИЕ И ПРЕРВАТЬ РАБОТУ ТОЛЬКО С ТЕМ ПОЛЬЗО-&lt;br /&gt;
   ВАТЕЛЕМ, КОТОРЫЙ  СДЕЛАЛ  ОШИБКУ.  В  ЭТОМ  СЛУЧАЕ  ПОЛЕЗНО&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ ЗАПРОС .SERR, КОТОРЫЙ ЗАПРЕЩАЕТ МОНИТОРУ  УДА-&lt;br /&gt;
   ЛЕНИЕ ИЗ ПАМЯТИ ПРОГРАММЫ,  В  КОТОРОЙ  ОБНАРУЖЕНА  ОШИБКА.&lt;br /&gt;
   ВМЕСТО ЭТОГО, ПРИ  ВОЗНИКНОВЕНИИ  ОШИБКИ  ПОСЛЕ  ВЫПОЛНЕНИЯ&lt;br /&gt;
   ЗАПРОСА .SERR, УСТАНАВЛИВАЕТСЯ  С-РАЗРЯД  И  КОД  ОШИБКИ  В&lt;br /&gt;
   52-ОМ БАЙТЕ. В НЕКОТОРЫХ  СЛУЧАЯХ  ЗАПРОС  .SERR  ОСТАВЛЯЕТ&lt;br /&gt;
   КАНАЛЫ ОТКРЫТЫМИ,  НАПРИМЕР,  ЕСЛИ  ИСПОЛЬЗОВАЛИСЬ  ЗАПРОСЫ&lt;br /&gt;
   .LOOKUP И .ENTER.&lt;br /&gt;
        ЗАПРОС .HERR ОТМЕНЯЕТ ДЕЙСТВИЕ ЗАПРОСА .SERR.  В  ЭТОМ&lt;br /&gt;
   СЛУЧАЕ ПЕЧАТАЕТСЯ СООБЩЕНИЕ ОБ ОШИБКЕ И ПРОГРАММА УДАЛЯЕТСЯ&lt;br /&gt;
   ИЗ ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .HERR&lt;br /&gt;
        .SERR&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 14&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    !    КОД      !           ПРИЧИНА ОШИБКИ                  !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    !     -1      ! ВЫЗОВ USR ИЗ ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ      !&lt;br /&gt;
    !     -2      ! В ПАМЯТИ НЕТ ДРАЙВЕРА УСТРОЙСТВА          !&lt;br /&gt;
    !     -3      ! ОШИБКА ВВОДА-ВЫВОДА СПРАВОЧНИКА УСТРОЙСТВА!&lt;br /&gt;
    !     -4      ! ОШИБКА .FETCH. ОШИБКА ПРИ ЧТЕНИИ ДРАЙВЕРА,!&lt;br /&gt;
    !             ! ИЛИ ПОПЫТКА ЗАГРУЗИТЬ ЕГО ВЫШЕ USR ИЛИ    !&lt;br /&gt;
    !             ! RMON                                      !&lt;br /&gt;
    !     -5      ! ОШИБКА ЧТЕНИЯ ОВЕРЛЕЙНОГО СЕГМЕНТА        !&lt;br /&gt;
    !     -6      ! В СПРАВОЧНИКЕ УСТРОЙСТВА НЕТ СВОБОДНОГО   !&lt;br /&gt;
    !             ! МЕСТА ДЛЯ ЗАПИСИ ФАЙЛА                    !&lt;br /&gt;
    !     -7      ! НЕДОПУСТИМЫЙ АДРЕС (ТОЛЬКО В РЕЖИМЕ FB)   !&lt;br /&gt;
    !             ! ПОПЫТКА ВЫПОЛНИТЬ ОПЕРАЦИЮ ВНЕ ГРАНИЦ ЗА- !&lt;br /&gt;
    !             ! ДАНИЯ                                     !&lt;br /&gt;
    !     -10     ! НЕСУЩЕСТВУЮЩИЙ НОМЕР КАНАЛА               !&lt;br /&gt;
    !     -11     ! НЕДОПУСТИМАЯ КОМАНДА EMT; ОПРЕДЕЛЕН НЕДО- !&lt;br /&gt;
    !             ! ПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД               !&lt;br /&gt;
    !     -14     ! НЕДОПУСТИМЫЙ СПРАВОЧНИК                   !&lt;br /&gt;
    !     -15     ! ОТСУТСТВУЕТ ДРАЙВЕР УСТРОЙСТВА (В РЕЖИМЕ  !&lt;br /&gt;
    !             ! ХМ)                                       !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
&lt;br /&gt;
.MCALL	.ENTER	.HERR	.SERR	.PRINT	.EXIT	.USRDF&lt;br /&gt;
&lt;br /&gt;
START:	.SERR			;запретить прерывание программы&lt;br /&gt;
				;по ошибке&lt;br /&gt;
	.USRDF			;определить мнемонику статуса завершения&lt;br /&gt;
				;программы USERRB&lt;br /&gt;
	.ENTER	#AREA,#1,#FILE	;открыть файл на PR:&lt;br /&gt;
	BCC	3$&lt;br /&gt;
	CALL	ERR		;обработать ошибку&lt;br /&gt;
	.HERR			;разрешить прерывание программы по ошибке&lt;br /&gt;
	.ENTER	#AREA,#1,#FILE	;открыть файл на PR:&lt;br /&gt;
	BCS	ERR1&lt;br /&gt;
3$:	.EXIT&lt;br /&gt;
ERR1:	.PRINT	#MSG&lt;br /&gt;
	.EXIT&lt;br /&gt;
MSG:	.ASCIZ	/ошибка .ENTER/&lt;br /&gt;
	.EVEN&lt;br /&gt;
ERR:	MOVB	@#52,R0		;подпрограмма обработки ошибок&lt;br /&gt;
	NEG	R0&lt;br /&gt;
	DEC	R0&lt;br /&gt;
	ASL	R0&lt;br /&gt;
	MOV	COD(R0),R0&lt;br /&gt;
	.PRINT&lt;br /&gt;
	BISB	#3,@#USERRB	;установить завершение с грубой ошибкой&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
COD:&lt;br /&gt;
	C1&lt;br /&gt;
	C2&lt;br /&gt;
	C3&lt;br /&gt;
	C4&lt;br /&gt;
	C5&lt;br /&gt;
	C6&lt;br /&gt;
	C7&lt;br /&gt;
	C10&lt;br /&gt;
	C11&lt;br /&gt;
	C14&lt;br /&gt;
C1:	.ASCIZ	/USR?/&lt;br /&gt;
C2:	.ASCIZ	/не загружен драйвер/&lt;br /&gt;
C3:	.ASCIZ	/ошибка чтения каталога/&lt;br /&gt;
C4:	.ASCIZ	/ошибка .FETCH/&lt;br /&gt;
C5:	.ASCIZ	/оверлей?/&lt;br /&gt;
C6:	.ASCIZ	/каталог переполнен/&lt;br /&gt;
C7:	.ASCIZ	/ошибка адресации/&lt;br /&gt;
C10:	.ASCIZ	.ASCIZ	/неверный номер канала/&lt;br /&gt;
C11:	.ASCIZ	/неверный код EMT/&lt;br /&gt;
C14:	.ASCIZ  /недопустимый каталог/&lt;br /&gt;
	.EVEN&lt;br /&gt;
AREA:	.BLKW	4&lt;br /&gt;
FILE:	.RAD50	/PR /&lt;br /&gt;
	.WORD	0,0,0&lt;br /&gt;
.END START&lt;br /&gt;
 &lt;br /&gt;
       5.3.21. .HRESET&lt;br /&gt;
        ЗАПРОС .HRESET ПРЕКРАЩАЕТ ВЫПОЛНЕНИЕ  ОПЕРАЦИЙ  ВВОДА-&lt;br /&gt;
   ВЫВОДА ДЛЯ ВЫЗЫВАЮЩЕЙ ПРОГРАММЫ И ВЫПОЛНЯЕТ ФУНКЦИИ ЗАПРОСА&lt;br /&gt;
   .SRESET. В РЕЖИМЕ SJ ЗАПРОС .HRESET ИСПОЛЬЗУЕТСЯ ДЛЯ  ПРЕК-&lt;br /&gt;
   РАЩЕНИЯ ВСЕХ ОПЕРАЦИЙ ВВОДА-ВЫВОДА ДЛЯ ЗАДАНИЯ,  В  КОТОРОМ&lt;br /&gt;
   ИСПОЛЬЗУЕТСЯ .HRESET. ВСЕ ДРУГИЕ ОПЕРАЦИИ ВВОДА-ВЫВОДА ПРО-&lt;br /&gt;
   ДОЛЖАЮТСЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .HRESET&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ .HRESET СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .CDFN.&lt;br /&gt;
 &lt;br /&gt;
       5.3.22. .INTEN&lt;br /&gt;
        ЗАПРОС .INTEN ИСПОЛЬЗУЕТСЯ  В  ПОДПРОГРАММЕ  ОБРАБОТКИ&lt;br /&gt;
   ПРЕРЫВАНИЯ ПРОГРАММЫ  ПОЛЬЗОВАТЕЛЯ  И  ВЫПОЛНЯЕТ  СЛЕДУЮЩИЕ&lt;br /&gt;
   ФУНКЦИИ:&lt;br /&gt;
        1) СООБЩАЕТ МОНИТОРУ О ТОМ, ЧТО ПРОИЗОШЛО ПРЕРЫВАНИЕ;&lt;br /&gt;
        2) УСТАНАВЛИВАЕТ ПРИОРИТЕТ ПРОЦЕССОРА НА СООТВЕТСТВУЮ-&lt;br /&gt;
   ЩИЙ УРОВЕНЬ.&lt;br /&gt;
        ВСЕ ВНЕШНИЕ ПРЕРЫВАНИЯ ВЫЗЫВАЮТ РАБОТУ  ПРОЦЕССОРА  ПО&lt;br /&gt;
   7-МУ ПРИОРИТЕТУ. ЗАПРОС .INTEN ИСПОЛЬЗУЕТСЯ  ДЛЯ  ПОНИЖЕНИЯ&lt;br /&gt;
   ПРИОРИТЕТА ДО УРОВНЯ, НА КОТОРОМ БУДЕТ РАБОТАТЬ  СООТВЕТСТ-&lt;br /&gt;
   ВУЮЩЕЕ УСТРОЙСТВО.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .INTEN PRIOR[,PIC]&lt;br /&gt;
   ГДЕ PRIOR  -  ПРИОРИТЕТ  ПРОЦЕССОРА,  КОТОРЫЙ  ПОЛЬЗОВАТЕЛЬ&lt;br /&gt;
   УСТАНАВЛИВАЕТ ДЛЯ СВОЕЙ ПОДПРОГРАММЫ ОБРАБОТКИ  ПРЕРЫВАНИЯ;&lt;br /&gt;
   ОБЫЧНО ТОТ ПРИОРИТЕТ, ПО  КОТОРОМУ  УСТРОЙСТВО  ЗАПРАШИВАЕТ&lt;br /&gt;
   ПРЕРЫВАНИЕ;&lt;br /&gt;
        PIC - НЕОБЯЗАТЕЛЬНЫЙ  АРГУМЕНТ;  ДОЛЖЕН  БЫТЬ  УКАЗАН,&lt;br /&gt;
   ЕСЛИ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ НАПИСАНА В ПОЗИЦИОН-&lt;br /&gt;
   НО-НЕЗАВИСИМЫХ КОДАХ; ЛЮБАЯ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВА-&lt;br /&gt;
   НИЯ (ДРАЙВЕР  УСТРОЙСТВА),  ДОЛЖНА  БЫТЬ  НАПИСАНА  В  ЭТИХ&lt;br /&gt;
   КОДАХ.&lt;br /&gt;
 &lt;br /&gt;
       5.3.23. .LOCK,.UNLOCK&lt;br /&gt;
        ЗАПРОС .LOCK БЛОКИРУЕТ USR  В  ПАМЯТИ  ДЛЯ  ВЫПОЛНЕНИЯ&lt;br /&gt;
   РЯДА ОПЕРАЦИЙ. ЕСЛИ СУЩЕСТВУЮТ УСЛОВИЯ, ВЫЗЫВАЮЩИЕ  ПРОЦЕСС&lt;br /&gt;
   СВОПИНГА, ТО ПРОГРАММА ПОЛЬЗОВАТЕЛЯ (ТА ЕЕ  ЧАСТЬ,  КОТОРУЮ&lt;br /&gt;
   USR ПЕРЕКРЫВАЕТ В ПАМЯТИ) ЗАПИСЫВАЕТСЯ В  БЛОКИ  ДИСКА  ДЛЯ&lt;br /&gt;
   ВРЕМЕННОГО ХРАНЕНИЯ ДАННЫХ И USR ЗАГРУЖАЕТСЯ  В  ПАМЯТЬ.  В&lt;br /&gt;
   ПРОТИВНОМ СЛУЧАЕ ИСПОЛЬЗУЕТСЯ USR, НАХОДЯЩАЯСЯ В  ПАМЯТИ  И&lt;br /&gt;
   СВОПИНГА НЕ ПРОИСХОДИТ. ЗАПРОС .LOCK ВСЕГДА ЗАГРУЖАЕТ USR В&lt;br /&gt;
   ПАМЯТЬ, ЕСЛИ ТАМ ЕЕ НЕТ. USR БУДЕТ БЛОКИРОВАНА В ПАМЯТИ  ДО&lt;br /&gt;
   ТЕХ ПОР, ПОКА НЕ БУДЕТ СДЕЛАН ЗАПРОС .UNLOCK. ЗАМЕТИМ,  ЧТО&lt;br /&gt;
   В РЕЖИМЕ FB, ВЫЗОВ CSI МОЖЕТ ТАКЖЕ ВЫПОЛНИТЬ ДЕЙСТВИЕ  АНА-&lt;br /&gt;
   ЛОГИЧНОЕ .UNLOCK.&lt;br /&gt;
        В РЕЖИМЕ FB ЗАПРОС  .LOCK  ЗАПРЕЩАЕТ  ДРУГИМ  ЗАДАНИЯМ&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ USR. ПОСЛЕ ЗАПРОСА .LOCK ДОЛЖЕН БЫТЬ  ВЫПОЛНЕН&lt;br /&gt;
   ЗАПРОС .UNLOCK ДЛЯ ОСВОБОЖДЕНИЯ USR.&lt;br /&gt;
        ЗАПРОСЫ .LOCK И .UNLOCK ДОПОЛНЯЮТ ДРУГ ДРУГА И, ПОЭТО-&lt;br /&gt;
   МУ, ДОЛЖНЫ БЫТЬ СОГЛАСОВАНЫ (Т.Е., ЕСЛИ ВЫПОЛНЕНО ТРИ  ЗАП-&lt;br /&gt;
   РОСА .LOCK, ТО ДОЛЖНО БЫТЬ ВЫПОЛНЕНО, ПО КРАЙНЕЙ МЕРЕ,  ТРИ&lt;br /&gt;
   .UNLOCK, В ПРОТИВНОМ СЛУЧАЕ USR НЕ БУДЕТ УДАЛЕНА  ИЗ  ПАМЯ-&lt;br /&gt;
   ТИ). ЕСЛИ КОЛИЧЕСТВО .UNLOCK БОЛЬШЕ ЧЕМ .LOCK, ТО ОШИБКИ НЕ&lt;br /&gt;
   ПРОИСХОДИТ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ: .LOCK&lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
        1. ВАЖНО, ЧТОБЫ ПРОГРАММА ИСПОЛЬЗУЮЩАЯ .LOCK НЕ НАХОДИ-&lt;br /&gt;
   ЛАСЬ В ОБЛАСТИ ПАМЯТИ, КУДА БУДЕТ ЗАГРУЖАТЬСЯ USR. ЕСЛИ ЭТО&lt;br /&gt;
   ПРОИЗОЙДЕТ, ТО  ПОСЛЕ  ВЫПОЛНЕНИЯ  .LOCK  УПРАВЛЕНИЕ  БУДЕТ&lt;br /&gt;
   ПЕРЕДАНО НЕ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ, А USR.&lt;br /&gt;
        2. ПОСЛЕ ВЫПОЛНЕНИЯ .LOCK НЕ  РЕКОМЕНДУЕТСЯ  ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ЭТО  МОЖЕТ  ВЫЗВАТь &lt;br /&gt;
РЕЗУЛЬТАТЫ&lt;br /&gt;
        3. ЕСЛИ ОСНОВНОЕ ЗАДАНИЕ &lt;br /&gt;
НАХОДИЛАСЬ В ОБЛАСТИ ПАМЯТИ, КУДА БУДЕТ ЗАГРУЖАТЬСЯ USR. ЕСЛИ ЭТО&lt;br /&gt;
    ПРОИЗОЙДЕТ, ТО  ПОСЛЕ  ВЫПОЛНЕНИЯ  .LOCK  УПРАВЛЕНИЕ  БУДЕТ&lt;br /&gt;
    ПЕРЕДАНО НЕ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ, А USR.&lt;br /&gt;
         2. ПОСЛЕ ВЫПОЛНЕНИЯ .LOCK НЕ  РЕКОМЕНДУЕТСЯ  ИСПОЛ&lt;br /&gt;
СЯ СВОПИНГ, ТО .UNLOCK ЗАГРУЖАЕТ ПРОГРАММУ ПОЛъЗОВАУЕАмЯТЬ.&lt;br /&gt;
/jа!ю&amp;gt; 8 ФОРмАв?ъъкъОКОМАНЪъ:м&lt;br /&gt;
0&lt;br /&gt;
э#ъ/пъ  .UNLOSK# &lt;br /&gt;
 ъЪьъ:Ъ &lt;br /&gt;
 Ъгъъ м&lt;br /&gt;
 ' ъъъъ п  0 /!ю! &amp;quot;П ъ#&amp;amp;ч ,  О въвъ-&lt;br /&gt;
!&lt;br /&gt;
* ъ ?ъъыГ    2$ ъ5ъъчъ5в5471&amp;gt;0ъ0ъъ-п1 3?=м&lt;br /&gt;
 Е НАХОДИ-&lt;br /&gt;
   ЛАСЬ В ОБЛАСТИ ПАМЯТИ, КУДА БУДЕТ ЗАГРУЖАТЬСЯ USR. ЕСЛИ ЭТО&lt;br /&gt;
   ПРОИЗОЙДЕТ, ТО  ПОСЛЕ  ВЫПОЛНЕНИЯ  .LOCK  УПРАВЛЕНИЕ  БУДЕТ&lt;br /&gt;
   ПЕРЕДАНО НЕ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ, А USR.&lt;br /&gt;
        2. ПОСЛЕ ВЫПОЛНЕНИЯ .LOCK НЕ  РЕКОМЕНДУЕТСЯ  ИСПОЛОКА НЕ БУДЕТ&lt;br /&gt;
   ВЫПОЛНЕН .UNLOCK В ПЕРВОМ ЗАДАНИИ.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  LOCK.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСОВ .LOCK,.UNLOCK&lt;br /&gt;
          .MCALL  .LOCK,.UNLOCK,.LOOKUP,.SETTOP,.PRINT,.EXIT&lt;br /&gt;
          SYSPTR=54               ;УКАЗАТЕЛЬ НА НАЧАЛО RMON&lt;br /&gt;
  START:  .SETTOP @#SYSPTR        ;ЗАПРОСИТЬ ВСЮ СВОБОДНУЮ&lt;br /&gt;
                                  ;ПАМЯТЬ&lt;br /&gt;
          .LOCK                   ;ВЫЗОВ USR В ПАМЯТЬ&lt;br /&gt;
          .LOOKUP #AREA,#0,#FILE1 ;ОТКРЫТЬ ФАЙЛ НА 0-ОМ КАНАЛЕ&lt;br /&gt;
          BCC     1$&lt;br /&gt;
  2$:     .PRINT  #LMSG&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .PRINT  #F1FND&lt;br /&gt;
          MOV     #AREA,R0&lt;br /&gt;
          INC     @R0             ;НОМЕР КАНАЛА = 1&lt;br /&gt;
          MOV     #FILE2,2(R0)&lt;br /&gt;
          .LOOKUP                 ;ОТКРЫТЬ ФАЙЛ НА 1-ОМ КАНАЛЕ&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .PRINT  #F2FND&lt;br /&gt;
          .UNLOCK                 ;УДАЛИТЬ USR ИЗ ПАМЯТИ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   3&lt;br /&gt;
  FILE1:  .RAD50  /DK /&lt;br /&gt;
          .RAD50  /PIP   /&lt;br /&gt;
          .RAD50  /SAV/&lt;br /&gt;
  FILE2:  .RAD50  /DK /&lt;br /&gt;
          .RAD50  /DIR   /&lt;br /&gt;
          .RAD50  /SAV/&lt;br /&gt;
  LMSG:   .ASCIZ  /ОШИБКА .LOOKUP/&lt;br /&gt;
  F1FND:  .ASCIZ  /ФАЙЛ PIP.SAV ОТКРЫТ НА 0-ОМ КАНАЛЕ/&lt;br /&gt;
  F2FND:  .ASCIZ  /ФАЙЛ DIR.SAV ОТКРЫТ НА 1-ОМ КАНАЛЕ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.24. .MFPS, .MTPS&lt;br /&gt;
        ЗАПРОСЫ .MFPS И .MTPS ОБЕСПЕЧИВАЮТ ДОСТУП К ССП.  ЗАП-&lt;br /&gt;
   РОС .MFPS ИСПОЛЬЗУЕТСЯ ДЛЯ ВЫБОРКИ ССП.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MFPS ADDR&lt;br /&gt;
   ГДЕ ADDR - АДРЕС, ПО КОТОРОМУ ЗАПИСЫВАЕТСЯ СОДЕРЖИМОЕ  ССП;&lt;br /&gt;
   ЕСЛИ АДРЕС НЕ УКАЗАН, СОДЕРЖИМОЕ ССП ПЕРЕСЫЛАЕТСЯ ДЛЯ УСТА-&lt;br /&gt;
   НОВКИ ССП.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTPS ADDR&lt;br /&gt;
   ГДЕ ADDR - АДРЕС СЛОВА, КОТОРОЕ БУДЕТ ЗАПИСАНО В ССП;  ЕСЛИ&lt;br /&gt;
   АДРЕС НЕ УКАЗАН, ТО ЗНАЧЕНИЕ ДЛЯ ССП БЕРЕТСЯ ИЗ СТЕКА.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  MFPS.MAC&lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ, С ИСПОЛЬЗОВАНИЕМ ЗАПРОСОВ .MFPS,.MTPS,&lt;br /&gt;
  ;ОСУЩЕСТВЛЯЕТСЯ ОБРАЩЕНИЕ К ПОДПРОГРАММЕ, КОТОРАЯ&lt;br /&gt;
  ;ОПРЕДЕЛЯЕТ НАЛИЧИЕ СВОБОДНОГО ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .MFPS,.MTPS,.EXIT,.PRINT,.TTINR&lt;br /&gt;
 &lt;br /&gt;
          JSW = 44        ;СЛОВО СОСТОЯНИЯ ЗАДАНИЯ&lt;br /&gt;
          TTSPC$ = 10000  ;РАЗРЯД СПЕЦИАЛЬНОГО РЕЖИМА ВЫВОДА&lt;br /&gt;
 &lt;br /&gt;
  START:                          ;ГЛАВНАЯ ПРОГРАММА&lt;br /&gt;
          BIS     #TTSPC$,@#JSW   ;УСТАНОВИТЬ 12 РАЗРЯД В JSW&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          CALL    GETQUE          ;ВЫЗОВ ПОДПРОГРАММЫ&lt;br /&gt;
 &lt;br /&gt;
          BCC     1$&lt;br /&gt;
          .PRINT  #NOELEM&lt;br /&gt;
          BIC     #TTSPC$,@#JSW&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  1$:     NOP                     ;ПРОДОЛЖЕНИЕ ГЛАВНОЙ&lt;br /&gt;
          NOP                     ;ПРОГРАММЫ&lt;br /&gt;
          .PRINT  #GOT1&lt;br /&gt;
  2$:     .TTINR&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          BR      START&lt;br /&gt;
 &lt;br /&gt;
  GETQUE: MOV     #QHEAD,R4&lt;br /&gt;
          TST     @R4&lt;br /&gt;
          BEQ     11$&lt;br /&gt;
          .MFPS                   ;СОХРАНИТЬ ЗНАЧЕНИЕ В СТЕКЕ&lt;br /&gt;
          .MTPS   #340            ;УСТАНОВИТЬ ПРИОРИТЕТ = 7&lt;br /&gt;
          MOV     @R4,R5          ;УКАЗАТЕЛЬ НА СЛЕДУЮЩИЙ&lt;br /&gt;
                                  ;ЭЛЕМЕНТ&lt;br /&gt;
          MOV     @R5,@R4&lt;br /&gt;
          .MTPS                   ;ВОССТАНОВИТЬ РАЗРЯДЫ&lt;br /&gt;
                                  ;ПРИОРИТЕТА&lt;br /&gt;
          TST     (PC)+&lt;br /&gt;
  11$:    SEC&lt;br /&gt;
          RETURN&lt;br /&gt;
 &lt;br /&gt;
  QHEAD:  .WORD   Q1&lt;br /&gt;
  Q1:     .WORD   Q2,0,0&lt;br /&gt;
  Q2:     .WORD   Q3,0,0&lt;br /&gt;
  Q3:     .WORD   0,0,0&lt;br /&gt;
 &lt;br /&gt;
  NOELEM: .ASCIZ  /НЕТ В НАЛИЧИИ ЭЛЕМЕНТА ОЧЕРЕДИ/&lt;br /&gt;
  GOT1:   .ASCII  /ЕСТЬ СВОБОДНЫЙ ЭЛЕМЕНТ - НАЖМИТЕ ЛЮБУЮ /&lt;br /&gt;
          .ASCIZ  /КЛАВИШУ ДЛЯ ПРОДОЛЖЕНИЯ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.25. .MRKT&lt;br /&gt;
        ЗАПРОС .MRKT ПЛАНИРУЕТ ЗАПУСК ПОДПРОГРАММЫ  ЗАВЕРШЕНИЯ&lt;br /&gt;
   ЧЕРЕЗ ОПРЕДЕЛЕННЫЙ ИНТЕРВАЛ ВРЕМЕНИ.&lt;br /&gt;
        ЗАПРОС .MRKT ИСПОЛЬЗУЮТ  ЭЛЕМЕНТЫ  ОЧЕРЕДИ  ИЗ  СПИСКА&lt;br /&gt;
   ЭЛЕМЕНТОВ ОЧЕРЕДИ ВВОДА-ВЫВОДА. ЭЛЕМЕНТ ОЧЕРЕДИ ИСПОЛЬЗУЕТ-&lt;br /&gt;
   СЯ ДО ТЕХ ПОР, ПОКА НЕ БУДЕТ ВВЕДЕНА ПОДПРОГРАММА  ЗАВЕРШЕ-&lt;br /&gt;
   НИЯ ИЛИ НЕ БУДЕТ ВЫПОЛНЕН ЗАПРОС .CMKT.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MRKT AREA,TIME,CRTN,ID&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 4-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        TIME - АДРЕС БЛОКА ИЗ 2-Х СЛОВ,  СОДЕРЖАЩЕГО  ВЕЛИЧИНУ&lt;br /&gt;
   ИНТЕРВАЛА ВРЕМЕНИ; &lt;br /&gt;
	CRTN - ТОЧКА ВХОДА ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ;&lt;br /&gt;
        ID - ЧИСЛО, ИСПОЛЬЗУЕМОЕ ДЛЯ ИДЕНТИФИКАЦИИ  ЗАПРОСА  С&lt;br /&gt;
   ПРОГРАММОЙ ЗАВЕРШЕНИЯ И ЗАПРОСАМИ .CMKT; ЭТО ЧИСЛО НЕ ДОЛЖ-&lt;br /&gt;
   НО БЫТЬ В ПРЕДЕЛАХ ОТ 177400 ДО 177777; НЕСКОЛЬКО  ЗАПРОСОВ&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:Й &lt;br /&gt;
          AREA:   .BYTE   0,22&lt;br /&gt;
                  .WORD   TIME&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
                  .WORD   ID&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  TREAD.MAC&lt;br /&gt;
          AREA:   .BYTE   0,22&lt;br /&gt;
                  .WORD   TIME&lt;br /&gt;
                  .WORD   CRTN&lt;br /&gt;
                  .WORD   ID&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  TREAD.MAC&lt;br /&gt;
  ;ПЗ R0&lt;br /&gt;
          BEQ     1$&lt;br /&gt;
          .PRINT&lt;br /&gt;
  1$:     CLR     TBYT&lt;br /&gt;
          .MRKT   #TAREA,#TIME,#TOUT,#1;ЗАПУСТИТЬ ПОДПРОГРАММУ&lt;br /&gt;
                                      ;ЗАВЕРШЕНИЯ ПО ИСТЕЧЕНИИ&lt;br /&gt;
                                      ;ВРЕМЕНИ&lt;br /&gt;
          BIS     #TCBIT$,@#JSW&lt;br /&gt;
          CLRB    @R1&lt;br /&gt;
  TTIN:   .TWAIT  #AREA&lt;br /&gt;
          .TTINR&lt;br /&gt;
          BIT     #1,(PC)+&lt;br /&gt;
  TBYT:   .WORD   0&lt;br /&gt;
          BNE     2$&lt;br /&gt;
          BCS     TTIN&lt;br /&gt;
          MOVB    R0,(R1)+&lt;br /&gt;
          .CMKT   #TAREA,#0       ;ОТМЕНИТЬ .MRKT&lt;br /&gt;
  2$:     BIS     #TTSPC$,@#JSW&lt;br /&gt;
  3$:     .TTINR&lt;br /&gt;
          MOVB    R0,(R1)+&lt;br /&gt;
          BCC     3$&lt;br /&gt;
          CLRB    -(R1)&lt;br /&gt;
          BIC     #TCBIT$!TTSPC$,@#JSW&lt;br /&gt;
          ROR     TBYT&lt;br /&gt;
          RETURN&lt;br /&gt;
  TOUT:   INC     TBYT&lt;br /&gt;
          RETURN&lt;br /&gt;
  XQUE:   .BLKW   10.&lt;br /&gt;
  AREA:   .WORD   0,WAIT&lt;br /&gt;
  TAREA:  .BLKW   4&lt;br /&gt;
  TIME:   .WORD   0,500.&lt;br /&gt;
  WAIT:   .WORD   0,1&lt;br /&gt;
  LINE:   .ASCII  /ОБРАБОТКА ДАННЫХ    /&lt;br /&gt;
  BUFF:   .BLKB   81.&lt;br /&gt;
  PROMT:  .ASCIZ  /ВВЕДИТЕ ДАННЫЕ :   / &amp;lt;200&amp;gt;&lt;br /&gt;
  TIMOUT: .ASCIZ  /ВРЕМЯ НА ВВОД ДАННЫХ ИСТЕКЛО/&lt;br /&gt;
          .END START&lt;br /&gt;
 &lt;br /&gt;
       5.3.26. .MTATCH&lt;br /&gt;
        ЗАПРОС .MTATCH ЛОГИЧЕСКИ СВЯЗЫВАЕТ ЗАДАНИЕ  С  ОПРЕДЕ-&lt;br /&gt;
   ЛЕННЫМ ТЕРМИНАЛОМ. ЭТОТ ЗАПРОС ДОЛЖЕН БЫТЬ  ВЫПОЛНЕН  ПЕРЕД&lt;br /&gt;
   ТЕМ КАК ЗАДАНИЕ НАЧНЕТ ИСПОЛЬЗОВАТЬ ТЕРМИНАЛ В МУЛЬТИТЕРМИ-&lt;br /&gt;
   НАЛЬНОМ РЕЖИМЕ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTATCH AREA,ADDR,UNIT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС СЛОВА  АСИНХРОННОГО  СОСТОЯНИЯ  ТЕРМИНАЛА&lt;br /&gt;
   ИЛИ 0;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   5,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT,0&lt;br /&gt;
 &lt;br /&gt;
       5.3.27. .MTDTCH&lt;br /&gt;
        ЗАПРОС .MTDTCH ПРЕРЫВАЕТ ЛОГИЧЕСКУЮ  СВЯЗЬ  УКАЗАННОГО&lt;br /&gt;
   ТЕРМИНАЛА С ЗАДАНИЕМ И  ДЕЛАЕТ  ЕГО  ДОСТУПНЫМ  ДЛЯ  ДРУГИХ&lt;br /&gt;
   ЗАДАНИЙ. ПОПЫТКА ПРЕРВАТЬ  СВЯЗЬ  С  ТЕРМИНАЛОМ,  ЛОГИЧЕСКИ&lt;br /&gt;
   СВЯЗАННЫМ С ДРУГИМ ЗАДАНИЕМ, ПРИВОДИТ К ОШИБКЕ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTDTCH AREA,UNIT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   6,37&lt;br /&gt;
                  .WORD   &amp;lt;НЕ ИСПОЛЬЗУЕТСЯ&amp;gt;&lt;br /&gt;
                  .BYTE   UNIT&lt;br /&gt;
 &lt;br /&gt;
       5.3.28. .MTSET&lt;br /&gt;
        ЗАПРОС .MTSET ПОЗВОЛЯЕТ УСТАНОВИТЬ ХАРАКТЕРИСТИКИ ТЕР-&lt;br /&gt;
   МИНАЛА. ОН ТАКЖЕ ОПРЕДЕЛЯЕТ РЕЖИМ ВВОДА-ВЫВОДА ДЛЯ  УКАЗАН-&lt;br /&gt;
   НОГО ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTSET AREA,ADDR,UNIT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 4-Х  СЛОВ  СОСТОЯНИЯ  УКАЗАННОГО&lt;br /&gt;
   ТЕРМИНАЛА;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT&lt;br /&gt;
 &lt;br /&gt;
        НА РИС. 6 ПОКАЗАНА СТРУКТУРА БЛОКА СОСТОЯНИЯ  ТЕРМИНА-&lt;br /&gt;
   ЛА, КОТОРЫЙ ОРГАНИЗУЕТСЯ ПОЛЬЗОВАТЕЛЕМ. ОПИСАНИЕ СЛОВ БЛОКА&lt;br /&gt;
   СОСТОЯНИЯ ПРИВЕДЕНО В ТАБЛ.15.&lt;br /&gt;
&lt;br /&gt;
                     -------------------------------&lt;br /&gt;
                     !         M.TSTS              !&lt;br /&gt;
                     !-----------------------------!&lt;br /&gt;
                     !         M.TST2              !&lt;br /&gt;
                     !-----------------------------!&lt;br /&gt;
                     !         M.TST3              !&lt;br /&gt;
                     !-----------------------------!&lt;br /&gt;
                     !  M.TSTW      !    M.TWID    !&lt;br /&gt;
                     -------------------------------&lt;br /&gt;
 &lt;br /&gt;
          РИС. 6. СТРУКТУРА  БЛОКА СОСТОЯНИЯ ТЕРМИНАЛА&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 15&lt;br /&gt;
    ----------------------------------------------------------&lt;br /&gt;
    !  ОБОЗНАЧЕНИЕ     !              ОПИСАНИЕ               !&lt;br /&gt;
    !--------------------------------------------------------!&lt;br /&gt;
    !  M.TSTS          ! СЛОВО КОНФИГУРАЦИИ ТЕРМИНАЛА        !&lt;br /&gt;
    !  M.TSTS2         ! РЕЗЕРВНОЕ                      ! РГЗ&lt;br /&gt;
    !&lt;br /&gt;
    !                  !              Ъ ъъъъъъъъъъъъъъъъ     !&lt;br /&gt;
    !--------------------------------------------------------!&lt;br /&gt;
    !  M.TSTS          ! СЛОВО КОНФИГУРАЦИИ ТЕРМИНАЛА        !&lt;br /&gt;
ОНФИГУРАЦИИ  ТЕРМИН хM.TSъSъъъъъъъъъЫБЛ.16/ъъ&lt;br /&gt;
 &lt;br /&gt;
                                                    ТАБЛ. 16&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! РАЗРЯД ! СОДЕРЖАНИЕ   !             ЗНАЧЕНИЕ            !&lt;br /&gt;
    !----------------------------------------------------------&lt;br /&gt;
    !  M.TSTS          ! СЛОВО КОНФИГУРАЦИИ ТЕРМИНАЛА        !&lt;br /&gt;
    !   0    !      1       ! АППАРАТНАЯ ТАБУЛЯЦИЯ            !&lt;br /&gt;
    !   1    !      2       ! ВЫПОЛНЕНИЕ ВОЗВРАТА КАРЕТКИ И   !&lt;br /&gt;
    !        !              ! ПЕРЕВОДА СТРОКИ, ЕСЛИ ДЕЙСТВИ-  !&lt;br /&gt;
    !        !              ! ТЕЛЬНАЯ ДЛИНА СТРОКИ БОЛЬШЕ     !&lt;br /&gt;
    !        !              ! УСТАНОВЛЕННОЙ В M.TWID          !&lt;br /&gt;
    !   2    !      4       ! АППАРАТНЫЙ ПЕРЕВОД ФОРМАТА      !&lt;br /&gt;
    !   3    !     10       ! ВЫПОЛНЕНИЕ КОМАНД СУ/F И СУ/В   !&lt;br /&gt;
    !  4,5   !      -       ! РЕЗЕРВНЫЕ                       !&lt;br /&gt;
    !   6    !    100       ! ЗАПРЕЩЕНИЕ РЕЖИМА ОЖИДАНИЯ ДЛЯ  !&lt;br /&gt;
    !        !              ! ТЕРМИНАЛА (ЭКВИВАЛЕНТЕН 6-ОМУ   !&lt;br /&gt;
    !        !              ! РАЗРЯДУ В ССЗ); РАЗРЯД TCBIT    !&lt;br /&gt;
    !  7-11  !      -       ! РЕЗЕРВНЫЕ                       !&lt;br /&gt;
    !  12    !   10000      ! РЕЖИМ ПОСИМВОЛЬНОГО ВВОДА (ЭКВИ-!&lt;br /&gt;
    !        !              ! ВАЛЕНТЕН РАЗРЯДУ СПЕЦИАЛЬНОГО   !&lt;br /&gt;
    !        !              ! РЕЖИМА В ССЗ); РАЗРЯД TTSPC     !&lt;br /&gt;
    !  13    !      -       ! РЕЗЕРВНЫЙ                       !&lt;br /&gt;
    !  14    !   40000      ! ЗАПРЕЩЕНИЕ ПРЕОБРАЗОВАНИЯ КОДОВ !&lt;br /&gt;
    !        !              ! СИМВОЛОВ НИЖНЕГО РЕГИСТРА В КО- !&lt;br /&gt;
    !        !              ! ДЫ СИМВОЛОВ ВЕРХНЕГО РЕГИСТРА   !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        В ТАБЛ.17 ДАНЫ ЗНАЧЕНИЯ РАЗРЯДОВ ДЛЯ M.TSTW.&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 17&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! РАЗРЯД ! СОДЕРЖИМОЕ   !             ЗНАЧЕНИЕ            !&lt;br /&gt;
    !----------------------------------------------------------&lt;br /&gt;
    !  10    !    2000      ! ТЕРМИНАЛ ИСПОЛЬЗУЕТСЯ ОСНОВНЫМ  !&lt;br /&gt;
    !        !              ! И ФОНОВЫМ ЗАДАНИЯМИ             !&lt;br /&gt;
    !  11    !    4000      ! ТЕРМИНАЛ НЕ ВКЛЮЧЕН             !&lt;br /&gt;
    !  14    !   40000      ! ДВАЖДЫ ПОДАНА КОМАНДА СУ/С      !&lt;br /&gt;
    !  15    !  100000      ! СИСТЕМНЫЙ ТЕРМИНАЛ              !&lt;br /&gt;
!&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.29. .MTGET&lt;br /&gt;
 &lt;br /&gt;
        ЗАПРОС .MTGET ПОЗВОЛЯЕТ ПОЛУЧИТЬ ИНФОРМАЦИЮ О&lt;br /&gt;
ъИч, ОПИСАННУЮ &lt;br /&gt;
&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    ! ОТНОСИТЕЛЬНЫЙ   !                $                      !&lt;br /&gt;
    ! НОМЕР БАЙТА В   !               СОДЕРЖИМОЕ           &lt;br /&gt;
&lt;br /&gt;
    !        0        ! СЛОВО КОНФИГУРАЦИИ ТЕРМИНАЛА. ЗНАЧЕНИЯ!&lt;br /&gt;
    !                 ! РАЗРЯДОВ ТЕ ЖЕ, ЧТО И В .MTSET        !&lt;br /&gt;
    !       2-4       ! РЕЗЕРВНЫЕ                             !&lt;br /&gt;
    !        6        ! ДЛИНА СТРОКИ                          !&lt;br /&gt;
    !        7        ! ТЕКУЩЕЕ ПОЛОЖЕНИЕ СТРОКИ              !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTGET AREA,ADDR,UNIT&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА СОСТОЯНИЯ ТЕРМИНАЛА ИЗ 4-Х СЛОВ;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА, ИНФОРМАЦИЮ О  СОСТОЯ-&lt;br /&gt;
   НИИ КОТОРОГО ТРЕБУЕТСЯ ПОЛУЧИТЬ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   1,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .BYTE   UNIT&lt;br /&gt;
&lt;br /&gt;
       5.3.30. .MTSTAT&lt;br /&gt;
        ЗАПРОС .MTSTAT ПОЗВОЛЯЕТ ПОЛУЧИТЬ ИНФОРМАЦИЮ О СОСТОЯНИИ&lt;br /&gt;
   МУЛЬТИТЕРМИНАЛЬНОЙ СИСТЕМЫ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTSTAT AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС 3-Х СЛОВНОГО БЛОКА АРГУМЕНТОВ;&lt;br /&gt;
        ADDR - АДРЕС 8-МИ СЛОВНОГО БЛОКА, СОДЕРЖАЩЕГО ИНФОРМАЦИЮ&lt;br /&gt;
   О СОСТОЯНИИ МУЛЬТИТЕРМИНАЛЬНОЙ СИСТЕМЫ (СМ. ЗАПРОС .MTGET).&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   10,37&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .WORD   0&lt;br /&gt;
 &lt;br /&gt;
       5.3.31. .MTRCTD&lt;br /&gt;
        ЗАПРОС .MTRCTD ЯВЛЯЕТСЯ МУЛЬТИТЕРМИНАЛЬНОЙ ФОРМОЙ ЗАПРО-&lt;br /&gt;
   СА .RCTRLD. ОН ОТМЕНЯЕТ КОМАНДУ СУ/D  И  РАЗРЕШАЕТ  ВЫВОД  НА&lt;br /&gt;
   УКАЗАННЫЙ ТЕРМИНАЛ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MTRCTD AREA,UNIT ГДЕ AREA - АДРЕС  БЛОКА  ИЗ  3-Х  СЛОВ&lt;br /&gt;
   АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        UNIT - ЛОГИЧЕСКИЙ НОМЕР ТЕРМИНАЛА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   4,37&lt;br /&gt;
                  .WORD   &amp;lt;НЕ ИСПОЛЬЗУЕТСЯ&amp;gt;&lt;br /&gt;
                  .BYTE   UNIT&lt;br /&gt;
 &lt;br /&gt;
       5.3.32. .MWAIT (РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .MWAIT ПЕРЕВОДИТ ПРОГРАММУ В  СОСТОЯНИЕ  ОЖИДАНИЯ&lt;br /&gt;
   ДО ТЕХ ПОР, ПОКА ВСЕ СООБЩЕНИЯ НЕ БУДУТ ПЕРЕДАНЫ ИЛИ  ПОЛУЧЕ-&lt;br /&gt;
   НЫ. С ПОМОЩЬЮ ЭТОГО ЗАПРОСА ПОЛЬЗОВАТЕЛЬ МОЖЕТ УДОСТОВЕРИТЬСЯ&lt;br /&gt;
   В ПРАВИЛЬНОСТИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ. ЗАПРОС .MWAIT ИСПОЛЬЗУЕТ-&lt;br /&gt;
   СЯ В ОСНОВНОМ СОВМЕСТНО С ЗАПРОСАМИ .RCVD ИЛИ .SDAT,  КОТОРЫЕ&lt;br /&gt;
   НЕ ПРЕДУСМАТРИВАЮТ СПЕЦИАЛЬНЫХ ДЕЙСТВИЙ ПОСЛЕ  ПОЛУЧЕНИЯ  ИЛИ&lt;br /&gt;
   ПЕРЕДАЧИ СООБЩЕНИЙ (ДАННЫХ).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .MWAIT&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
  ;В ПРИВЕДЕНОМ ПРИМЕРЕ ИСПОЛЬЗУЕТСЯ ЗАПРОС .MWAIT.&lt;br /&gt;
  ;ПРИМЕР СОСТОИТ ИЗ ДВУХ ПРОГРАММ: ФОНОВОЙ, КОТОРАЯ&lt;br /&gt;
  ;ПОСЫЛАЕТ СООБЩЕНИЕ, И ОСНОВНОЙ ПРОГРАММЫ, КОТОРОЕ&lt;br /&gt;
  ;ЭТО СООБЩЕНИЕ ПОЛУЧАЕТ.&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  MWAITF.MAC&lt;br /&gt;
 &lt;br /&gt;
  ;ОСНОВНАЯ ПРОГРАММА ...&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .MWAIT,.RCVD,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  .RCVD   #AREA,#MBUFF,#40. ;ПОЛУЧИТЬ СООБЩЕНИЕ&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          .PRINT  #FGJOB&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          ;       .&lt;br /&gt;
          .MWAIT          ;ОЖИДАТЬ ПРИЕМА&lt;br /&gt;
          TST     MBUFF+2 ;СООБЩЕНИЯ НЕТ?&lt;br /&gt;
          BEQ     FEXIT   ;ЕСЛИ НЕТ - ВЫХОД&lt;br /&gt;
                          ;ИЗ ПРОГРАММЫ&lt;br /&gt;
          .PRINT  #FMSG&lt;br /&gt;
          .PRINT  #MBUFF+2;ПЕЧАТЬ ПОЛУЧЕННОГО&lt;br /&gt;
                          ;СООБЩЕНИЯ&lt;br /&gt;
          BR      START&lt;br /&gt;
 &lt;br /&gt;
  FEXIT:  .EXIT&lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  MBUFF:  .BLKW   41.&lt;br /&gt;
          .WORD   0&lt;br /&gt;
  FGJOB:  .ASCIZ  /ОСНОВНАЯ ПРОГРАММА ГОТОВА К ПРИЕМУ СООБЩЕНИЙ/&lt;br /&gt;
  FMSG:   .ASCIZ  /ПЕРЕДАНО СООБЩЕНИЕ:/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END START&lt;br /&gt;
 &lt;br /&gt;
  ;ФОНОВАЯ ПРОГРАММА ...&lt;br /&gt;
 &lt;br /&gt;
          .TITLE  MWAITB.MAC&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .MWAIT,.SDAT,.GTLIN,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  CLR     BUFF&lt;br /&gt;
          .GTLIN  #BUFF,#PROMPT   ;ВВЕСТИ СООБЩЕНИЕ&lt;br /&gt;
          .SDAT   #AREA,#BUFF,#40.;ПЕРЕДАТЬ СООБЩЕНИЕ&lt;br /&gt;
          BCS     1$&lt;br /&gt;
          .MWAIT&lt;br /&gt;
          TST     BUFF&lt;br /&gt;
          BNE     START&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .PRINT  #NOFG&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  BUFF:   .BLKW   40.&lt;br /&gt;
  PROMPT: .ASCII  /ВВЕДИТЕ СООБЩЕНИЕ ДЛЯ ОСНОВНОЙ ПРОГРАММЫ/&lt;br /&gt;
          .BYTE   15,12,200&lt;br /&gt;
  NOFG:   .ASCIZ  /ОСНОВНОЙ ПРОГРАММЫ НЕТ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.33. .PEEK,.POKE&lt;br /&gt;
        ЗАПРОС .PEEK ПЕРЕДАЕТ В РЕГИСТР R0 СОДЕРЖИМОЕ  УКАЗАННОЙ&lt;br /&gt;
   ЯЧЕЙКИ ПАМЯТИ (НИЖЕ 28К СЛОВ) ИЛИ СОДЕРЖИМОЕ ЯЧЕЙКИ  СТРАНИЦЫ&lt;br /&gt;
   ВВОДА - ВЫВОДА.&lt;br /&gt;
        ЗАПРОС .POKE ИЗМЕНЯЕТ СОДЕРЖИМОЕ ЯЧЕЙКИ ПАМЯТИ. ПРИ ЭТОМ&lt;br /&gt;
   СТАРОЕ СОДЕРЖИМОЕ ЗАПИСЫВАЕТСЯ В РЕГИСТР R0.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .PEEK AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ЯЧЕЙКИ ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   1,34&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .POKE AREA,ADDR,VALUE&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ЯЧЕЙКИ ПАМЯТИ;&lt;br /&gt;
        VALUE - НОВОЕ СОДЕРЖИМОЕ ЯЧЕЙКИ ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   3,34&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
                  .WORD   VALUE&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
 &lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ ЗАПРОСЫ .PEEK,.POKE ИСПОЛЬЗУЮТСЯ&lt;br /&gt;
  ;ДЛЯ ЧТЕНИЯ И УСТАНОВКИ РАЗМЕРА ФАЙЛА, ОТКРЫТОГО&lt;br /&gt;
  ;РАНЕЕ ПО ЗАПРОСУ .ENTER.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .PEEK,.POKE,.EXIT&lt;br /&gt;
 &lt;br /&gt;
          RMON   = 54&lt;br /&gt;
          MAXBLK = 314&lt;br /&gt;
 &lt;br /&gt;
  START:  .PEEK   #EMTBLK,#RMON   ;УСТАНОВИТЬ АДРЕС НАЧАЛА&lt;br /&gt;
                                  ;RMON&lt;br /&gt;
          ADD     #MAXBLK,R0      ;ПОЛУЧИТЬ РАЗМЕР ФАЙЛА&lt;br /&gt;
          MOV     R0,R1&lt;br /&gt;
          .POKE   #EMTBLK,R1,#NEWSIZ ;УСТАНОВИТЬ НОВЫЙ&lt;br /&gt;
                                     ;РАЗМЕР ФАЙЛА&lt;br /&gt;
          MOV     R0,OLDSIZ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  EMTBLK: .BLKW   3&lt;br /&gt;
  NEWSIZ: .WORD   100.&lt;br /&gt;
  OLDSIZ: .WORD   0               ;СТАРЫЙ РАЗМЕР ФАЙЛА&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
       5.3.34. .PROTECT,.UNPROTECT (РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .PROTECT ИСПОЛЬЗУЕТСЯ ДЛЯ ПОЛУЧЕНИЯ  ИСКЛЮЧИТЕЛЬ-&lt;br /&gt;
   НОГО ПРАВА ПОЛЬЗОВАНИЯ ВЕКТОРОМ ПРЕРЫВАНИЯ В ДИАПОЗОНЕ  0-476&lt;br /&gt;
   И УСТАНАВЛИВАЕТ ЗАЩИТУ ВЕКТОРА.&lt;br /&gt;
        ЕСЛИ ЗАПРОС .PROTECT ЗАВЕРШЕН УСПЕШНО, ТО ЭТО  УКАЗЫВАЕТ&lt;br /&gt;
   НА ТО, ЧТО ЯЧЕЙКИ ВЕКТОРА НЕ ИСПОЛЬЗУЮТСЯ ДРУГИМ ЗАДАНИЕМ ИЛИ&lt;br /&gt;
   МОНИТОРОМ И В ЭТОМ  СЛУЧАЕ  ТЕКУЩЕЕ  ЗАДАНИЕ  МОЖЕТ  ЗАПИСАТЬ&lt;br /&gt;
   АДРЕС ПОДПРОГРАММЫ ОБРАБОТКИ  ПРЕРЫВАНИЯ  И  ЗНАЧЕНИЯ  УРОВНЯ&lt;br /&gt;
   ПРИОРИТЕТА В ЭТИ ЯЧЕЙКИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .PROTECT AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 3-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ВЕКТОРА, КОТОРЫЙ БУДЕТ ИСПОЛЬЗОВАТЬСЯ  ДАН-&lt;br /&gt;
   НЫМ ЗАДАНИЕМ; ADDR ДОЛЖЕН БЫТЬ КРАТЕН ЧЕТЫРЕМ И МЕНЬШЕ 476.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,31&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
        ЗАПРРОС .UNPROTECT ОТМЕНЯЕТ РЕЗУЛЬТАТ  ДЕЙСТВИЯ  ЗАПРОСА&lt;br /&gt;
   .PROTECT.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .UNPROTECT AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ВЕКТОРА, КОТОРЫЙ ОСВОБОЖДАЕТСЯ ОТ ЗАЩИТЫ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   1,31&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  PROTECT.MAC&lt;br /&gt;
  ;В ДАННОМ ПРИМЕРЕ ПОКАЗАНО, КАК УСТАНОВИТЬ ЗАЩИТУ ВЕКТОРА&lt;br /&gt;
  ;УСТРОЙСТВА, А ЗАТЕМ ОТМЕНИТЬ ЗАЩИТУ ВЕКТОРА.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .PROTECT,.UNPROTECT,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  .PROTECT   #AREA,#300&lt;br /&gt;
          BCS        1$&lt;br /&gt;
          .UNPROTECT #AREA,#300&lt;br /&gt;
          .EXIT&lt;br /&gt;
  1$:     .PRINT     #NOVEC&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .BLKW      3&lt;br /&gt;
  NOVEC:  .ASCIZ     /ВЕКТОР УЖЕ ЗАЩИЩЕН !/&lt;br /&gt;
          .END       START&lt;br /&gt;
 &lt;br /&gt;
         5.3.35. .QSET&lt;br /&gt;
        ВСЕ ОПЕРАЦИИ ВВОДА-ВЫВОДА В СИСТЕМЕ ФОДОС ОСУЩЕСТВЛЯЮТСЯ&lt;br /&gt;
   ЧЕРЕЗ ЦЕНТРАЛИЗОВАННУЮ СИСТЕМУ УПРАВЛЕНИЯ ОЧЕРЕДЬЮ  ЗАПРОСОВ.&lt;br /&gt;
   КАЖДЫЙ ЗАПРОС НЕСИНХРОННОЙ ПЕРЕДАЧИ (НАПРИМЕР,  .WRITE)  ТРЕ-&lt;br /&gt;
   БУЕТ ДЛЯ СВОЕГО ВЫПОЛНЕНИЯ НАЛИЧИЕ ЭЛЕМЕНТА ОЧЕРЕДИ. ЕСЛИ ДЛЯ&lt;br /&gt;
   ОЧЕРЕДНОГО ЗАПРОСА ВВОДА-ВЫВОДА НЕТ СВОБОДНОГО ЭЛЕМЕНТА  ОЧЕ-&lt;br /&gt;
   РЕДИ, ТО ВЫПОЛНЕНИЕ ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ БУДЕТ  БЛОКИРОВАНО&lt;br /&gt;
   ДО ТЕХ ПОР, ПОКА ЭЛЕМЕНТ ОЧЕРЕДИ НЕ ОСВОБОДИТСЯ. В РЕЖИМЕ FB,&lt;br /&gt;
   ОДНО ИЗ ЗАДАНИЙ МОЖЕТ ВЫПОЛНЯТЬСЯ, ПОКА ДРУГОЕ  ЗАДАНИЕ  ОЖИ-&lt;br /&gt;
   ДАЕТ ЭЛЕМЕНТ ОЧЕРЕДИ.&lt;br /&gt;
        ЗАПРОС .QSET ИСПОЛЬЗУЕТСЯ ДЛЯ ТОГО, ЧТОБЫ УВЕЛИЧИТЬ ЧИС-&lt;br /&gt;
   ЛО ЭЛЕМЕНТОВ ОЧЕРЕДИ ВВОДА-ВЫВОДА. ОБЩЕЕ ПРАВИЛО  ЗАКЛЮЧАЕТСЯ&lt;br /&gt;
   В ТОМ, ЧТОБЫ В КАЖДОЙ ПРОГРАММЕ КОЛИЧЕСТВО ЭЛЕМЕНТОВ  ОЧЕРЕДИ&lt;br /&gt;
   БЫЛО НА ЕДИНИЦУ БОЛЬШЕ, ЧЕМ ОБЩЕЕ КОЛИЧЕСТВО ЗАПРОСОВ  ВВОДА-&lt;br /&gt;
   ВЫВОДА, КОТОРЫЕ БУДУТ ВЫПОЛНЯТЬСЯ ОДНОВРЕМЕННО  НА  РАЗЛИЧНЫХ&lt;br /&gt;
   КАНАЛАХ.&lt;br /&gt;
        ЗАПРОСЫ .MRKT,.TWAIT И .SDAT ТАКЖЕ  ИСПОЛЬЗУЮТ  ЭЛЕМЕНТЫ&lt;br /&gt;
   ОЧЕРЕДИ И ДОЛЖНЫ  ПРИНИМАТЬСЯ  ВО  ВНИМАНИЕ  ПРИ  ОПРЕДЕЛЕНИИ&lt;br /&gt;
   КОЛИЧЕСТВА ЭЛЕМЕНТОВ ОЧЕРЕДИ ДЛЯ ПРОГРАММЫ. КАЖДЫЙ РАЗ, КОГДА&lt;br /&gt;
   ВЫПОЛНЯЕТСЯ .QSET, НЕПРЕРЫВНАЯ ОБЛАСТЬ ПАМЯТИ, КОТОРАЯ  ОТВО-&lt;br /&gt;
   ДИТСЯ ПОД ЭЛЕМЕНТЫ ОЧЕРЕДИ ДЕЛИТСЯ НА СЕГМЕНТЫ, СОДЕРЖАЩИЕ ПО&lt;br /&gt;
   7 СЛОВ (ПО 10 СЛОВ ДЛЯ  МОНИТОРА  XM)  И  СВЯЗЫВАЕТСЯ  С  УЖЕ&lt;br /&gt;
   СУЩЕСТВУЮЩЕЙ ОЧЕРЕДЬЮ ВВОДА-ВЫВОДА ДЛЯ ЭТОГО ЗАДАНИЯ.&lt;br /&gt;
        ЗАПРОС .QSET МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН НЕОДНОКРАТНО В ПРОГ-&lt;br /&gt;
   РАММЕ ПОЛЬЗОВАТЕЛЯ. ПРИ ЭТОМ, ОБЛАСТИ ПАМЯТИ ДЛЯ  НОВЫХ  ЭЛЕ-&lt;br /&gt;
   МЕНТОВ ОЧЕРЕДИ,  ОТВОДИМЫЕ  РАЗЛИЧНЫМИ  .QSET,  НЕОБЯЗАТЕЛЬНО&lt;br /&gt;
   ДОЛЖНЫ БЫТЬ СОПРИКАСАЮЩИМИСЯ. ОБЛАСТЬ ПАМЯТИ ДЛЯ ДОПОЛНИТЕЛЬ-&lt;br /&gt;
   НЫХ ЭЛЕМЕНТОВ ОЧЕРЕДИ  ВВОДА-ВЫВОДА  ДОЛЖНА  БЫТЬ  ОПРЕДЕЛЕНА&lt;br /&gt;
   ВНУТРИ ПРОГРАММЫ  ПОЛЬЗОВАТЕЛЯ.  ЗАПРОСВ  .SRESET  И  .HRESET&lt;br /&gt;
   АННУЛИРУЮТ РЕЗУЛЬТАТ ДЕЙСТВИЯ .QSET.&lt;br /&gt;
        НЕОБХОДИМО  СОБЛЮДАТЬ  ОСТОРОЖНОСТЬ  ПРИ   РАСПРЕДЕЛЕНИИ&lt;br /&gt;
   ПАМЯТИ ДЛЯ ЭЛЕМЕНТОВ ОЧЕРЕДИ. ОЧЕРЕДЬ ВВОДА-ВЫВОДА ИЗМЕНЯЕТСЯ&lt;br /&gt;
   МОНИТОРОМ АСИНХРОННО. ЕСЛИ ОБЛАСТЬ, ОТВЕДЕННАЯ  ПОЛЬЗОВАТЕЛЕМ&lt;br /&gt;
   ДЛЯ ЭЛЕМЕНТОВ ОЧЕРЕДИ ОКАЗАЛАСЬ НЕДОСТАТОЧНОЙ, ЭТО ПРИВЕДЕТ К&lt;br /&gt;
   НАРУШЕНИЮ ВЫПОЛНЕНИЯ ПРОГРАММЫ. ЭЛЕМЕНТЫ ДЛЯ  ОЧЕРЕДИ  ВВОДА-&lt;br /&gt;
   ВЫВОДА НЕЛЬЗЯ РАСПОЛАГАТЬ В ОВЕРЛЕЙНОЙ  ОБЛАСТИ,  А  ТАКЖЕ  В&lt;br /&gt;
   ОБЛАСТИ ПАМЯТИ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ СВОПИНГА USR.&lt;br /&gt;
        СЛЕДУЮЩИЕ ЗАПРОСЫ ТРЕБУЮТ ДЛЯ СВОЕГО ВЫПОЛНЕНИЯ  ЭЛЕМЕНТ&lt;br /&gt;
   ОЧЕРЕДИ:&lt;br /&gt;
   .TWAIT     .READW     .WRITE    .SDAT      .SDATW&lt;br /&gt;
   .MRKT      .RCVD      .WRITC    .READC     .SDATC&lt;br /&gt;
   .READ      .RCVDC     .WRITW    .RCVDW&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .QSET ADDR,LEN&lt;br /&gt;
   ГДЕ ADDR - АДРЕС НАЧАЛА ОБЛАСТИ ДЛЯ НОВЫХ  ЭЛЕМЕНТОВ  ОЧЕРЕДИ&lt;br /&gt;
   ВВОДА-ВЫВОДА;&lt;br /&gt;
        LEN - ЧИСЛО НОВЫХ ЭЛЕМЕНТОВ ОЧЕРЕДИ ВВОДА-ВЫВОДА.&lt;br /&gt;
        ПРИМЕР  ИСПОЛЬЗОВАНИЯ  .QSET  СМ.  В  ОПИСАНИИ   ЗАПРОСА&lt;br /&gt;
   .TWAIT.&lt;br /&gt;
 &lt;br /&gt;
       5.3.36. .RCTRLD&lt;br /&gt;
        ЗАПРОС .RCTRLD ОБЕСПЕЧИВАЕТ ГОТОВНОСТЬ СИСТЕМНОГО ТЕРМИ-&lt;br /&gt;
   НАЛА К ПЕЧАТИ. КОМАНДА СУ/D ЗАПРЕЩАЕТ ВЫВОД  НА  ТЕРМИНАЛ  ДО&lt;br /&gt;
   ТЕХ ПОР, ПОКА НЕ БУДЕТ ПОВТОРНО ПОДАНА  КОМАНДА  СУ/D  ИЛИ  В&lt;br /&gt;
   ПРОГРАММЕ НЕ БУДЕТ ВЫПОЛНЕН ЗАПРОС .RCTRLD. Т.Е. ПРОГРАММА, В&lt;br /&gt;
   КОТОРОЙ ПРЕДУСМОТРЕНА ПЕЧАТЬ СООБЩЕНИЙ НА  ТЕРМИНАЛЕ,  ДОЛЖНА&lt;br /&gt;
   ПРЕДУСМАТРИВАТЬ  ВОЗМОЖНОСТЬ  ПОДАЧИ  ПОЛЬЗОВАТЕЛЕМ   КОМАНДЫ&lt;br /&gt;
   СУ/D.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RCTRLD&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  RCTRLD.MAC&lt;br /&gt;
          .MCALL  .RCTRLD,.CSIGEN,.EXIT&lt;br /&gt;
  START:  .RCTRLD&lt;br /&gt;
          .CSIGEN #DSPACE,#DEXT,#0&lt;br /&gt;
 &lt;br /&gt;
  ;               .&lt;br /&gt;
  ;               .&lt;br /&gt;
  ;               .&lt;br /&gt;
          JMP     START&lt;br /&gt;
 &lt;br /&gt;
  DEXT:   .WORD   0,0,0,0&lt;br /&gt;
  DSPACE  = .&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.37. .SPND,.RSUM (РЕЖИМ FB,XM)&lt;br /&gt;
        ЗАПРОС .SPND ВРЕМЕННО ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ  ПРОГ-&lt;br /&gt;
   РАММЫ ПОЛЬЗОВАТЕЛЯ  И  ДОПУСКАЕТ  РАБОТУ  ТОЛЬКО  ПОДПРОГРАММ&lt;br /&gt;
   ЗАВЕРШЕНИЯ (ДЛЯ ОПЕРАЦИЙ ВВОДА-ВЫВОДА И ЗАПРОСОВ .MRKT).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SPND&lt;br /&gt;
        ЗАПРОС .RSUM ИЗ ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ  ВНОВЬ  ПЕРЕДАЕТ&lt;br /&gt;
   УПРАВЛЕНИЕ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .RSUM&lt;br /&gt;
        ПРИМЕЧАНИЯ:&lt;br /&gt;
        1. МОНИТОР СОДЕРЖИТ ТАК НАЗЫВАЕМЫЙ СЧЕТЧИК  ПРИОСТАНОВКИ&lt;br /&gt;
   ДЛЯ КАЖДОГО ЗАДАНИЯ. ЭТОТ  СЧЕТЧИК  УМЕНЬШАЕТСЯ  ПО  .SPND  И&lt;br /&gt;
   НАРАЩИВАЕТСЯ ПО .RSUM. ЗАДАНИЕ БУДЕТ  ФАКТИЧЕСКИ  ПРИОСТАНОВ-&lt;br /&gt;
   ЛЕННЫМ, ЕСЛИ СЧЕТЧИК БУДЕТ СОДЕРЖАТЬ ОТРИЦАТЕЛЬНОЕ  ЗНАЧЕНИЕ.&lt;br /&gt;
   ПОЭТОМУ, ЕСЛИ .RSUM БУДЕТ ВЫПОЛНЯТЬСЯ ПЕРЕД .SPND,  ПОСЛЕДНИЙ&lt;br /&gt;
   ЗАПРОС БУДЕТ ИГНОРИРОВАТЬСЯ.&lt;br /&gt;
        2. ПРОГРАММА ДОЛЖНА ИСПОЛЬЗОВАТЬ РАВНОЕ КОЛИЧЕСТВО .SPND&lt;br /&gt;
   И .RSUM.&lt;br /&gt;
        3. ЗАПРОС .SPND  ИЗ  ПОДПРОГРАММЫ  ЗАВЕРШЕНИЯ  УМЕНЬШАЕТ&lt;br /&gt;
   СЧЕТЧИК ПРИОСТАНОВКИ, НО НЕ ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ ПРОГ-&lt;br /&gt;
   РАММЫ. ЕСЛИ  В  ПОДПРОГРАММЕ  ЗАВЕРШЕНИЯ  ВЫПОЛНЯЕТСЯ  .SPND,&lt;br /&gt;
   ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРОДОЛЖАЕТСЯ ДО ТЕХ ПОР ПОКА  ОНА  ТАКЖЕ&lt;br /&gt;
   НЕ ВЫПОЛНИТ .SPND,  ПОСЛЕ  ЧЕГО  ВЫПОЛНЕНИЕ  ПРОГРАММЫ  БУДЕТ&lt;br /&gt;
   ПРИОСТАНОВЛЕНО И ДЛЯ ВОЗОБНОВЛЕНИЯ ЕЕ РАБОТЫ ПОТРЕБУЕТСЯ  УЖЕ&lt;br /&gt;
   ДВА ЗАПРОСА .RSUM.&lt;br /&gt;
        4. .SPND И .RSUM  ПОДОБНО  ДРУИМ  ЗАПРОСАМ,  МОГУТ  БЫТЬ&lt;br /&gt;
   ВЫПОЛНЕНЫ В ПОДПРОГРАММАХ ОБРАБОТКИ ПРЕРЫВАНИЙ, КОТОРЫЕ НАПИ-&lt;br /&gt;
   САНЫ  ПОЛЬЗОВАТЕЛЕМ,  ЕСЛИ  РАНЕЕ  БЫЛИ  ВЫПОЛНЕНЫ  .INTEN  И&lt;br /&gt;
   .SYNCH. ВСЕ ЗАМЕЧАНИЯ, ОТНОСЯЩИЕСЯ К .SPND И .RSUM  ИЗ  ПОДП-&lt;br /&gt;
   РОГРАММ ЗАВЕРШЕНИЯ, ИМЕЮТ СИЛУ И ДЛЯ ЭТОГО СЛУЧАЯ.&lt;br /&gt;
 &lt;br /&gt;
       5.3.38. .SCCA&lt;br /&gt;
        ЗАПРОС .SCCA ВЫПОЛНЯЕТ СЛЕДУЮЩИЕ ФУНКЦИИ:&lt;br /&gt;
        - БЛОКИРУЕТ ВЫПОЛНЕНИЕ КОМАНДЫ СУ/С;&lt;br /&gt;
        - СООБЩАЕТ О ТОМ, ЧТО С ТЕРМИНАЛА БЫЛО ПОДАНО ДВЕ КОМАН-&lt;br /&gt;
   ДЫ СУ/С;&lt;br /&gt;
        ПО ЗАПРОСУ .SCCA КОМАНДА СУ/С ВОСПРИНИМАЕТСЯ  ПРОГРАММОЙ&lt;br /&gt;
   КАК ОБЫЧНАЯ УПРАВЛЯЮЩАЯ КОМАНДА БЕЗ СПЕЦИАЛЬНЫХ ФУНКЦИЙ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SCCA AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС СЛОВА СОСТОЯНИЯ ТЕРМИНАЛА.&lt;br /&gt;
        СЛОВО СОСТОЯНИЯ ТЕРМИНАЛА  ПРЕДНАЗНАЧЕНО ДЛЯ  ФИКСИРОВА-&lt;br /&gt;
   НИЯ ПОДАЧИ ДВУХ КОМАНД СУ/С. ЕСЛИ В НЕМ УСТАНОВЛЕН 15-Й  РАЗ-&lt;br /&gt;
   РЯД, ТО ЭТО ЗНАЧИТ,  ЧТО  С  ТЕРМИНАЛА  БЫЛИ  ПОСЛЕДОВАТЕЛЬНО&lt;br /&gt;
   ПОДАНЫ ДВЕ КОМАНДЫ СУ/С. ЭТОТ РАЗРЯД ДОЛЖЕН  ОЧИЩАТЬСЯ  ПРОГ-&lt;br /&gt;
   РАММОЙ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
        ЕСЛИ АРГУМЕНТ ADDR РАВЕН НУЛЮ В ЗАПРОСЕ  .SCCA,  МОНИТОР&lt;br /&gt;
   ВОССТАНАВЛИВАЕТ СИСТЕМНЫЕ ФУНКЦИИ КОМАНДЫ СУ/С.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,35&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  SCCA.MAC&lt;br /&gt;
          .MCALL  .SCCA,.TTYIN,.TTYOUT,.PRINT&lt;br /&gt;
          JSW    = 44&lt;br /&gt;
ъъъъъ    CLR     (R1)&lt;br /&gt;
          .PRINT  #MSG1&lt;br /&gt;
 &lt;br /&gt;
  1$:     TST     (R1)&lt;br /&gt;
          BNE     2$&lt;br /&gt;
          .TTYIN&lt;br /&gt;
          .TTYOUT&lt;br /&gt;
          BV      1$&lt;br /&gt;
  2$:     .PRINT  #MSG2&lt;br /&gt;
          .SCCA   #AREA,#0&lt;br /&gt;
          CR      .&lt;br /&gt;
  SCCA:   .BLKW   1&lt;br /&gt;
  AREA:   .BLKW   2&lt;br /&gt;
 MSG1:   .ASCII  /ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСА .SCCA/&amp;lt;&lt;br /&gt;
ъъъъъъъъ    CLR     (R1)&lt;br /&gt;
          .PRINT  #MSG1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  1$:     TST     (R1)&lt;br /&gt;
          BNE     2$&lt;br /&gt;
          .TTYIN&lt;br /&gt;
          .TTYOUT&lt;br /&gt;
       ИСТЕМНУЮ ДАТУ И ВРЕМЯ.&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SDTTM AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА АРГУМЕНТОВ ЕМТ ИЗ 2-Х СЛОВ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 3-Х СЛОВ, СОДЕРЖАЩЕГО НОВУЮ ДАТУ И&lt;br /&gt;
   ВРЕМЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,40&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
 &lt;br /&gt;
        ПЕРВОЕ СЛОВО ТРЕХСЛОВНОГО БЛОКА СОДЕРЖИТ НОВУЮ  ДАТУ  ВО&lt;br /&gt;
   ВНУТРЕННЕМ ФОРМАТЕ (СМ.  ЗАПРОС  .DATE).  ЕСЛИ  ПЕРВОЕ  СЛОВО&lt;br /&gt;
   СОДЕРЖИТ -1, ТО МОНИТОР ИГНОРИРУЕТ ЕГО. ВТОРОЕ И ТРЕТЬЕ СЛОВА&lt;br /&gt;
   СОДЕРЖАТ НОВОЕ ЗНАЧЕНИЕ ВРЕМЕНИ (СТАРШЕГО И МЛАДШЕГО  ПОРЯДКА&lt;br /&gt;
   СООТВЕТСТВЕННО). ЕСЛИ  ВТОРОЕ  СЛОВО  СОДЕРЖИТ  ОТРИЦАТЕЛЬНУЮ&lt;br /&gt;
   ВЕЛИЧИНУ, ТО МОНИТОР НЕ ИЗМЕНЯЕТ ЗНАЧЕНИЕ ВРЕМЕНИ.&lt;br /&gt;
        ИЗМЕНЕНИЯ СИСТЕМНОЙ ДАТЫ ИЛИ ВРЕМЕНИ НЕ ВЛИЯЕТ НА ВЫПОЛ-&lt;br /&gt;
   НЕНИЕ ЗАПРОСОВ, ИСПОЛЬЗУЮЩИХ ТАЙМЕР.&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  SDTTM.MAC&lt;br /&gt;
  ;В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА ПОДПРОГРАММА КОРРЕКЦИИ&lt;br /&gt;
  ;ВРЕМЕНИ (НА 1 ЧАС) С УЧЕТОМ ДЕКРЕТНОГО ВРЕМЕНИ.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .SDTTM,.PRINT,.GTIM,.EXIT&lt;br /&gt;
          .GLOBL  STD,DALITE&lt;br /&gt;
 &lt;br /&gt;
  STD:    COM     HR&lt;br /&gt;
          NEG     HR+2&lt;br /&gt;
 &lt;br /&gt;
  DALITE:: .GTIM  #AREA,#TIME     ;ПОЛУЧИТЬ ТЕКУЩЕЕ ВРЕМЯ&lt;br /&gt;
          CALL    JADD&lt;br /&gt;
          .SDTTM  #AREA,#NEWDT    ;УСТАНОВИТЬ НОВОЕ ВРЕМЯ&lt;br /&gt;
          .GTIM   #AREA,#TIME     ;ПОЛУЧИТЬ НОВОЕ ВРЕМЯ&lt;br /&gt;
          RETURN&lt;br /&gt;
 &lt;br /&gt;
  NEWDT:  .WORD   -1              ;ДАТУ НЕ ИЗМЕНЯТЬ&lt;br /&gt;
  TIME:   .WORD   0,0&lt;br /&gt;
  HR:     .WORD   2               ;1 ЧАС ВО ВНУТРЕННЕМ&lt;br /&gt;
          .WORD   137440          ;ФОРМАТЕ&lt;br /&gt;
  AREA:   .WORD   0,0&lt;br /&gt;
  JADD:&lt;br /&gt;
          MOV     #HR,R4&lt;br /&gt;
          MOV     #AREA,R3&lt;br /&gt;
          MOV     #HR,R1&lt;br /&gt;
          MOV     -(R4),R2&lt;br /&gt;
          ADD     -(R3),R2&lt;br /&gt;
          MOV     -(R4),R5&lt;br /&gt;
          ADC     R5&lt;br /&gt;
          ADD     -(R3),R5&lt;br /&gt;
          MOV     R2,-(R1)&lt;br /&gt;
          MOV     R5,-(R1)&lt;br /&gt;
          RETURN&lt;br /&gt;
          .END&lt;br /&gt;
 &lt;br /&gt;
       5.3.40. .SETTOP&lt;br /&gt;
        ЗАПРОС .SETTOP ПОЗВОЛЯЕТ ПРОГРАММЕ ПОЛЬЗОВАТЕЛЯ  УСТАНО-&lt;br /&gt;
   ВИТЬ НОВЫЙ АДРЕС В КАЧЕСТВЕ ВЕРХНЕЙ ГРАНИЦЫ ПРОГРАММЫ.  МОНИ-&lt;br /&gt;
   ТОР ОПРЕДЕЛЯЕТ, ЯВЛЯЕТСЯ ЛИ ЭТОТ АДРЕС ДОПУСТИМЫМ И НУЖЕН  ЛИ&lt;br /&gt;
   СВОПИНГ USR. НАПРИМЕР,  ЕСЛИ  ЗАПРОС  ОПРЕДЕЛЯЕТ  АДРЕС  НИЖЕ&lt;br /&gt;
   НАЧАЛЬНОГО АДРЕСА USR, ТО  СВОПИНГ  USR  НЕ  ТРЕБУЕТСЯ.  ЕСЛИ&lt;br /&gt;
   .SETTOP ИЗ ФОНОВОГО ЗАДАНИЯ ОПРЕДЕЛЯЕТ АДРЕС ВЫШЕ  НАЧАЛЬНОГО&lt;br /&gt;
   АДРЕСА USR И РАНЕЕ НЕ БЫЛА ВЫПОЛНЕНА КОМАНДА SET USR  NOSWAP,&lt;br /&gt;
   ТО НЕОБХОДИМ СВОПИНГ USR.&lt;br /&gt;
        ПОСЛЕ ВЫПОЛНЕНИЯ .SETTOP, R0 И ЯЧЕЙКА 50 БУДУТ СОДЕРЖАТЬ&lt;br /&gt;
   АДРЕС ПАМЯТИ, ПРЕДОСТАВЛЕННЫЙ МОНИТОРОМ ПРОГРАММЕ ПОЛЬЗОВАТЕ-&lt;br /&gt;
   ЛЯ В КАЧЕСТВЕ ВЕРХНЕГО АДРЕСА ПРОГРАММЫ. ЕСЛИ ПРОГРАММА  ЗАП-&lt;br /&gt;
   РАШИВАЕТ ПО .SETTOP НЕДОПУСТИМЫЙ АДРЕС ДЛЯ  ДАННОГО  ЗАДАНИЯ,&lt;br /&gt;
   МОНИТОР НЕ УДОВЛЕТВОРИТ ЭТО ТРЕБОВАНИЕ, И УСТАНОВИТ ДЛЯ ПРОГ-&lt;br /&gt;
   РАММЫ ФАКТИЧЕСКИ ДОПУСТИМУЮ ВЕРХНЮЮ ГРАНИЦУ ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SETTOP ADDR&lt;br /&gt;
   ГДЕ ADDR - ЗАПРАШИВАЕМЫЙ АДРЕС ВЕРХНЕЙ ГРАНИЦЫ ПРОГРАММЫ.&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .SETTOP  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .LOCK.&lt;br /&gt;
 &lt;br /&gt;
       5.3.41. .SPCPS (РЕЖИМ FB,ХМ)&lt;br /&gt;
        ЗАПРОС .SPCPS ИСПОЛЬЗУЕТСЯ  В  ПОДПРОГРАММАХ  ЗАВЕРШЕНИЯ&lt;br /&gt;
   ДЛЯ СОХРАНЕНИЯ СОДЕРЖИМОГО РЕГИСТРОВ РС И PS И ЗАМЕНУ  СОДЕР-&lt;br /&gt;
   ЖИМОГО РС НА НОВОЕ ЗНАЧЕНИЕ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SPCPS AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА АРГУМЕНТОВ ЕМТ ИЗ 2-Х СЛОВ;&lt;br /&gt;
        ADDR - АДРЕС БЛОКА ИЗ 3-Х СЛОВ, СОДЕРЖАЩЕГО НОВОЕ ЗНАЧЕ-&lt;br /&gt;
   НИЕ РС, СТАРОЕ ЗНАЧЕНИЕ РС И СТАРОЕ ЗНАЧЕНИЕ PS СООТВЕТСТВЕН-&lt;br /&gt;
   НО В 1-ОМ, 2-ОМ И 3-ЕМ СЛОВАХ.&lt;br /&gt;
        МОНИТОР СОХРАНЯЕТ СТАРЫЕ ЗНАЧЕНИЯ PS  И  РС  И  ПЕРЕДАЕТ&lt;br /&gt;
   УПРАВЛЕНИЕ ПО АДРЕСУ, КОТОРЫЙ ЯВЛЯЕТСЯ СОДЕРЖИМЫМ 1-ГО СЛОВА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,41&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  SPCPS.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСА .SPCPS.&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .READC,.WRITC,.CSIGEN,.PRINT,.SPCPS&lt;br /&gt;
          .MCALL  .CLOSE,.WAIT,.SRESET,.EXIT&lt;br /&gt;
 &lt;br /&gt;
          ERRBYT  = 52&lt;br /&gt;
          .ENABL  LSB&lt;br /&gt;
 &lt;br /&gt;
  START:  .CSIGEN #DSPACE,#DEFEXT ;ВВОД КОМАНДНОЙ СТРОКИ&lt;br /&gt;
          CALL    IOXFER          &lt;br /&gt;
          .PRINT  #MES&lt;br /&gt;
  1$:     DEC     R5&lt;br /&gt;
          BR      1$&lt;br /&gt;
  FINI:   .CLOSE  #0              ;&amp;gt;0- КОНЕЦ ФАЙЛА&lt;br /&gt;
          MOV     #DONE,R0&lt;br /&gt;
          BR      EXIT&lt;br /&gt;
  WERR:   MOV     #WRERR,R0&lt;br /&gt;
          BR      EXIT&lt;br /&gt;
  RERR:   MOV     #RDERR,R0&lt;br /&gt;
  EXIT:   .PRINT&lt;br /&gt;
          .SRESET                 ;УДАЛИТЬ ЗАГРУЖЕННЫЕ&lt;br /&gt;
                                  ;ДРАЙВЕРЫ&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  WRDONE: .WAIT   #0&lt;br /&gt;
          BCS     3$&lt;br /&gt;
  IOXFER: .READC  #AREA,#3,,,#6$  ;ЧИТАТЬ БЛОК&lt;br /&gt;
          BCC     5$&lt;br /&gt;
          TSTB    @#ERRBYT        ;КОНЕЦ ФАЙЛА?&lt;br /&gt;
          BEQ     4$              ;ДА&lt;br /&gt;
  2$:     MOV     #RERR,SBLOK&lt;br /&gt;
          BR      4$&lt;br /&gt;
  3$:     MOV     #WERR,SBLOK&lt;br /&gt;
  4$:     TSTB    SPCALL&lt;br /&gt;
          BNE     5$&lt;br /&gt;
          .SPCPS  #AREA,#SBLOK&lt;br /&gt;
          INCB    SPCALL&lt;br /&gt;
          BCS     7$&lt;br /&gt;
  5$:     RETURN&lt;br /&gt;
  6$:     .WAIT   #3&lt;br /&gt;
          BCS     2$&lt;br /&gt;
          .WRITC  #AREA,#0,,,#WRDONE;ЗАПИСАТЬ БЛОК&lt;br /&gt;
          BCS     3$&lt;br /&gt;
          INC     BLOK&lt;br /&gt;
          RETURN&lt;br /&gt;
  7$:     .PRINT  #SPERR&lt;br /&gt;
          RETURN&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .WORD   0       ;БЛОК АРГУМЕНТОВ ЕМТ&lt;br /&gt;
  BLOK:   .WORD   0       ;НОМЕР БЛОКА&lt;br /&gt;
          .WORD   BUFF    ;АДРЕС БУФЕРА&lt;br /&gt;
          .WORD   256.    ;СЧЕТЧИК СЛОВ&lt;br /&gt;
          .WORD   0       ;АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ&lt;br /&gt;
  SBLOK:  .WORD   FINI,0,0&lt;br /&gt;
 &lt;br /&gt;
  BUFF:   .BLKW   256.&lt;br /&gt;
  DEFEXT: .WORD   0,0,0,0&lt;br /&gt;
  SPCALL: .BYTE   0&lt;br /&gt;
          .NLIST  BEX&lt;br /&gt;
  DONE:   .ASCIZ  /КОНЕЦ ПРОГРАММЫ/&lt;br /&gt;
  MES:    .ASCIZ  /ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРОДОЛЖАЕТСЯ/&lt;br /&gt;
  WRERR:  .ASCIZ  /ОШИБКА .WRITC/&lt;br /&gt;
  RDERR:  .ASCIZ  /ОШИБКА .READC/&lt;br /&gt;
  SPERR:  .ASCIZ  /ОШИБКА .SPCPS/&lt;br /&gt;
          .EVEN&lt;br /&gt;
  DSPACE  =.&lt;br /&gt;
          &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.42. .SFDAT&lt;br /&gt;
        ЗАПРОС .SFDAT ПОЗВОЛЯЕТ ПРОГРАММЕ  ПОЛЬЗОВАТЕЛЯ  УСТАНО-&lt;br /&gt;
   ВИТЬ ИЛИ ИЗМЕНИТЬ ДАТУ СОЗДАНИЯ УКАЗАННОГО ФАЙЛА  (КАК  ЗАЩИ-&lt;br /&gt;
   ЩЕННОГО ТАК И НЕ ЗАЩИЩЕННОГО).&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SFDAT AREA,CHAN,DBLK,DATE&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА АРГУМЕНТОВ ЕМТ ИЗ 3-Х СЛОВ;&lt;br /&gt;
        CHAN - НОМЕР КАНАЛА;&lt;br /&gt;
        DBLK - АДРЕС БЛОКА ИЗ 4-Х СЛОВ, СОДЕРЖАЩЕГО СПЕЦИФИКАЦИЮ&lt;br /&gt;
   ФАЙЛА;&lt;br /&gt;
        DATE - АДРЕС ЯЧЕЙКИ, СОДЕРЖАЩЕЙ НОВОЕ ЗНАЧЕНИЕ  ДАТЫ  (В&lt;br /&gt;
   ФОРМАТЕ RT11); ЕСЛИ АРГУМЕНТ  РАВЕН  НУЛЮ,  ТО  ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
   СИСТЕМНАЯ ДАТА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   CHAN,42&lt;br /&gt;
                  .WORD   DBLK&lt;br /&gt;
                  .WORD   DATE&lt;br /&gt;
        ПРИМЕР  ИСПОЛЬЗОВАНИЯ  .SFDAT  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .FPROT.&lt;br /&gt;
 &lt;br /&gt;
       5.3.43. .SFPA&lt;br /&gt;
        ЗАПРОС .SFPA ПОЗВОЛЯЕТ ПОЛЬЗОВАТЕЛЮ, РАБОТАЮЩЕМУ С  ПРО-&lt;br /&gt;
   ЦЕССОРОМ ПЛАВАЮЩЕЙ  ЗАПЯТОЙ,  УСТАНОВИТЬ  АДРЕС  ПОДПРОГРАММЫ&lt;br /&gt;
   ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ППЗ. ЕСЛИ АДРЕС ПОДПРОГРАММЫ ОБРАБОТ-&lt;br /&gt;
   КИ ПРЕРЫВАНИЯ НЕ ОПРЕДЕЛЕН И ПРОИСХОДИТ  ПРЕРЫВАНИЕ  ОТ  ППЗ,&lt;br /&gt;
   МОНИТОР ПЕЧАТАЕТ СООБЩЕНИЕ  ОБ  ОШИБКЕ  И  УДАЛЯЕТ  ПРОГРАММУ&lt;br /&gt;
   ПОЛЬЗОВАТЕЛЯ ИЗ ПАМЯТИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SFPA AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ППЗ.&lt;br /&gt;
        ПО ОКОНЧАНИИ РАБОТЫ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ&lt;br /&gt;
   ППЗ, НЕОБХОДИМО ПОВТОРИТЬ ЗАПРОС .SFPA, Т.К.  МОНИТОР  ЗАПРЕ-&lt;br /&gt;
   ЩАЕТ ОБРАБОТКУ ПРЕРЫВАНИЙ ПОСЛЕ ОБСЛУЖИВАНИЯ ОДНОГО  ИЗ  НИХ.&lt;br /&gt;
   ЭТО ДЕЛАЕТСЯ ДЛЯ ТОГО, ЧТОБЫ ИСКЛЮЧИТЬ ВОЗМОЖНОСТЬ ЗАЦИКЛИВА-&lt;br /&gt;
   НИЯ ПРОГРАММЫ ПРИ МНОГОКРАТНОМ ПОВТОРЕНИИ ПРЕРЫВАНИЯ ОТ ППЗ.&lt;br /&gt;
        ПРИ ИСПОЛЬЗОВАНИИ ППЗ, МОНИТОР  ВЫПОЛНЯЕТ  КОМАНДУ  STST&lt;br /&gt;
   -(SP). ПОЭТОМУ, ПЕРЕД КОМАНДОЙ RTI, ПОДПРОГРАММА ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
   ДОЛЖНА УВЕЛИЧИТЬ УКАЗАТЕЛЬ СТЕКА НА ДВА.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,30&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
 &lt;br /&gt;
       5.3.44. .SRESET&lt;br /&gt;
        ЗАПРОС .SRESET ВЫПОЛНЯЕТ СЛЕДУЮЩИЕ ФУНКЦИИ:&lt;br /&gt;
        1) УДАЛЯЕТ ИЗ ПАМЯТИ ДРАЙВЕРЫ  УСТРОЙСТВ,  КОТОРЫЕ  БЫЛИ&lt;br /&gt;
   ЗАГРУЖЕНЫ ПО ЗАПРОСУ .FETCH; ДРАЙВЕРЫ, КОТОРЫЕ БЫЛИ ЗАГРУЖЕНЫ&lt;br /&gt;
   ПО КОМАНДЕ LOAD, ОСТАЮТСЯ РЕЗИДЕНТНЫМИ, ТАК ЖЕ КАК И  ДРАЙВЕР&lt;br /&gt;
   СИСТЕМНОГО УСТРОЙСТВА;&lt;br /&gt;
        2) СТИРАЕТ ОТКРЫТЫЕ В НАСТОЯЩЕЕ ВРЕМЯ ФАЙЛЫ (ФАЙЛЫ, ОТК-&lt;br /&gt;
   РЫТЫЕ ПО .ENTER, НИКОГДА НЕ СТАНУТ ПОСТОЯННЫМИ);&lt;br /&gt;
        3) ВОССТАНАВЛИВАЕТ ЧИСЛО КАНАЛОВ ВВОДА-ВЫВОДА (16 (ДЕСЯ-&lt;br /&gt;
   ТИЧНОЙ)); КАНАЛЫ, ОПРЕДЕЛЕННЫЕ ПО .CDFN, АННУЛИРУЮТСЯ;&lt;br /&gt;
        4) ВОССТАНАВЛИВАЕТ ОЧЕРЕДЬ ВВОДА-ВЫВОДА (ПЕРВОНАЧАЛЬНО -&lt;br /&gt;
   ОДИН ЭЛЕМЕНТ); QSET ДОЛЖЕН ВЫПОЛНЯТЬСЯ ПОВТОРНО ДЛЯ ОПРЕДЕЛЕ-&lt;br /&gt;
   НИЯ ДОПОЛНИТЕЛЬНЫХ ЭЛЕМЕНТОВ ОЧЕРЕДИ;&lt;br /&gt;
        5) ОЧИЩАЕТ ОЧЕРЕДЬ ПОДПРОГРАММ ЗАВЕРШЕНИЯ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SRESET&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .SRESET  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .READ.&lt;br /&gt;
 &lt;br /&gt;
       5.3.45. .SYNCH&lt;br /&gt;
        ЗАПРОС .SYNCH ПОЗВОЛЯЕТ В ПОДПРОГРАММЕ ОБРАБОТКИ  ПРЕРЫ-&lt;br /&gt;
   ВАНИЯ ИСПОЛЬЗОВАТЬ ПРОГРАММНЫЕ ЗАПРОСЫ. БЕЗ .SYNCH ЗАПРОСЫ ИЗ&lt;br /&gt;
   ПОДПРОГРАММЫ ОБРАБОТКИ  ПРЕРЫВАНИЯ  НЕ  БУДУТ  ОБРАБАТЫВАТЬСЯ&lt;br /&gt;
   МОНИТОРОМ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .SYNCH AREA[,PIC]&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 7-МИ СЛОВ; ЭТОТ БЛОК НЕОБХОДИМ  ПРИ&lt;br /&gt;
   ИСПОЛЬЗОВАНИИ .SYNCH; СОДЕРЖИМОЕ БЛОКА ФОРМИРУЕТСЯ  ПОЛЬЗОВА-&lt;br /&gt;
   ТЕЛЕМ (СМ. ТАБЛ.19); PIC - НЕОБЯЗАТЕЛЬНЫЙ  АРГУМЕНТ,  КОТОРЫЙ&lt;br /&gt;
   ДАЕТ МАКРОКОМАНДЕ .SYNCH ВОЗМОЖНОСТЬ ОБРАЗОВАНИЯ PIC -  КОДОВ&lt;br /&gt;
   ДЛЯ ИСПОЛЬЗОВАНИЯ ДРАЙВЕРАМИ УСТРОЙСТВ.&lt;br /&gt;
 &lt;br /&gt;
                                                   ТАБЛИЦА 19&lt;br /&gt;
    ----------------------------------------------------------&lt;br /&gt;
    !   СЛОВО     !                СОДЕРЖИМОЕ                !&lt;br /&gt;
    !--------------------------------------------------------!&lt;br /&gt;
    !     1       ! ИСПОЛЬЗУЕТСЯ ТОЛЬКО СИСТЕМОЙ; ЕГО СОДЕР- !&lt;br /&gt;
    !             ! ЖИМОЕ НЕ ДОЛЖНО ИЗМЕНЯТЬСЯ ПЛЬЗОВАТЕЛЕМ  !&lt;br /&gt;
    !     2       ! НОМЕР ТЕКУЩЕГО ЗАДАНИЯ (0 ИЛИ 2); МОЖЕТ  !&lt;br /&gt;
    !             ! БЫТЬ ПОЛУЧЕН С ПОМОЩЬЮ ЗАПРОСА .GTJB     !&lt;br /&gt;
    !    3,4      ! НЕ ИСПОЛЬЗУЮТСЯ                          !&lt;br /&gt;
    !     5       ! АРГУМЕНТ R0; ПРИ УСПЕШНОМ ВЫПОЛНЕНИИ     !&lt;br /&gt;
    !             ! .SYNCH РЕГИСТР R0 БУДЕТ СОДЕРЖАТЬ ЭТОТ   !&lt;br /&gt;
    !             ! АРГУМЕНТ                                 !&lt;br /&gt;
    !     6       ! -1                                       !&lt;br /&gt;
    !     7       !  0                                       !&lt;br /&gt;
    ----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
        ПРИМЕЧАНИЕ. МЕЖДУ ВЫПОЛНЕНИЕМ ЗАПРОСОВ .INTEN И .SYNCH&lt;br /&gt;
   НЕЛЬЗЯ ВЫПОЛНЯТЬ ОПЕРАЦИИ СО СТЕКОМ.&lt;br /&gt;
 &lt;br /&gt;
       5.3.46. .TLOCK&lt;br /&gt;
        ЗАПРОС .TLOCK МОЖЕТ ИСПОЛЬЗОВАТЬСЯ ПРОГРАММАМИ,  КОТО-&lt;br /&gt;
   РЫЕ ВЫПОЛНЯЮТСЯ В РЕЖИМЕ FB, ДЛЯ  ТОГО  ЧТОБЫ  СДЕЛАТЬ  USR&lt;br /&gt;
   РЕЗИДЕНТНОЙ, ЕСЛИ ТОЛЬКО USR НЕ ЗАНЯТА ОБСЛУЖИВАНИЕМ ДРУГО-&lt;br /&gt;
   ГО ЗАДАНИЯ. ЕСЛИ USR ИСПОЛЬЗУЕТСЯ ДРУГИМ ЗАДАНИЕМ,  ТО  ПРИ&lt;br /&gt;
   ВЫПОЛНЕНИИ .TLOCK БУДЕТ УСТАНОВЛЕН С-РАЗРЯД, ЧТО  УКАЗЫВАЕТ&lt;br /&gt;
   НА ТО, ЧТО ЗАПРОС НЕ ВЫПОЛНЕН.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .TLOCK&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  TLOCK.MAC&lt;br /&gt;
  ;ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСА .TLOCK.&lt;br /&gt;
          .MCALL  .TLOCK,.UNLOCK,.LOOKUP,.PRINT,.EXIT&lt;br /&gt;
  START:  .TLOCK                  ;USR ЗАНЯТА?&lt;br /&gt;
          BCS     SUSPND          ;ДА&lt;br /&gt;
          .LOOKUP #AREA,#4,#FILE  ;ОТКРЫТЬ ФАЙЛ&lt;br /&gt;
          BCS     LKERR&lt;br /&gt;
 &lt;br /&gt;
          .PRINT  #J1MSG&lt;br /&gt;
          .UNLOCK                 ;ОСВОБОДИТЬ USR&lt;br /&gt;
          TSTB    J2SW&lt;br /&gt;
          BNE     1$&lt;br /&gt;
          CALL    JOB2&lt;br /&gt;
  1$:     .EXIT&lt;br /&gt;
 &lt;br /&gt;
  SUSPND: TSTB    J2SW&lt;br /&gt;
          BNE     START&lt;br /&gt;
          JSR     PC,JOB2&lt;br /&gt;
          INC     J2SW&lt;br /&gt;
          BR      START&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .BLKW   5&lt;br /&gt;
  FILE:   .RAD50  /DK /&lt;br /&gt;
          .RAD50  /FILE  /&lt;br /&gt;
          .RAD50  /TMP/&lt;br /&gt;
  LKERR:  .PRINT  #LKMSG&lt;br /&gt;
          .EXIT&lt;br /&gt;
  LKMSG:  .ASCIZ  /ФАЙЛ НЕ НАЙДЕН/&lt;br /&gt;
  J1MSG:  .ASCIZ  /ВЫПОЛНЯЕТСЯ ЗАДАНИЕ 1/&lt;br /&gt;
  J2MSG:  .ASCIZ  /ВЫПОЛНЯЕТСЯ ЗАДАНИЕ 2/&lt;br /&gt;
  J2SW:   .BYTE   0&lt;br /&gt;
          .EVEN&lt;br /&gt;
  JOB2:   .PRINT  #J2MSG&lt;br /&gt;
          RTS     PC&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.47. .TRPSET&lt;br /&gt;
        ЗАПРОС .TRPSET ПОЗВОЛЯЕТ УСТАНОВИТЬ АДРЕС ПОДПРОГРАММЫ&lt;br /&gt;
   ОБРАБОТКИ ПРЕРЫВАНИЯ ПО 4-МУ И 10-МУ ВЕКТОРАМ. ЗНАЧЕНИЕ  С-&lt;br /&gt;
   РАЗРЯДА НА ВХОДЕ В ПОДПРОГРАММУ УКАЗЫВАЕТ НА ТО, КАКОЕ ПРЕ-&lt;br /&gt;
   РЫВАНИЕ ПРОИЗОШЛО: ОЧИЩЕННЫЙ С-РАЗРЯД  -  ПРЕРЫВАНИЕ  ПО  4&lt;br /&gt;
   ВЕКТОРУ; УСТАНОВЛЕННЫЙ С-РАЗРЯД - ПО 10 ВЕКТОРУ.  ВЫХОД  ИЗ&lt;br /&gt;
   ПОДПРОГРАММЫ ОБРАБОТКИ  ПРЕРЫВАНИЯ  ПОЛЬЗОВАТЕЛЯ  ОСУЩЕСТВ-&lt;br /&gt;
   ЛЯЕТСЯ ПО КОМАНДЕ RTI.&lt;br /&gt;
        ЕСЛИ ПРИ ВЫПОЛНЕНИИ СТЕКА ПРОИЗОШЛО ПРЕРЫВАНИЕ ПО 4-МУ&lt;br /&gt;
   ВЕКТОРУ, ТО ОНО НЕ ОБРАБАТЫВАЕТСЯ ПО .TRPSET И НА ТЕРМИНАЛЕ&lt;br /&gt;
   ПЕЧАТАЕТСЯ СООБЩЕНИЕ ?MON-F-STACK OVERFLOW МОНИТОРОМ SJ ИЛИ&lt;br /&gt;
   ?MON-F-TRAP TO 4 МОНИТОРОМ FB И XM.&lt;br /&gt;
 &lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .TRPSET AREA,ADDR&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        ADDR - АДРЕС ПОДПРОГРАММЫ ОБРАБОТКИ  ПРЕРЫВАНИЯ;  ЕСЛИ&lt;br /&gt;
   ADDR=0, ТО ПРЕДЫДУЩИЙ .TRPSET ОТМЕНЯЕТСЯ.&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,3&lt;br /&gt;
                  .WORD   ADDR&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  TRPSET.MAC&lt;br /&gt;
          .MCALL  .TRPSET,.PRINT,.EXIT&lt;br /&gt;
          DIVZ    =67&lt;br /&gt;
  START:  .TRPSET #AREA,#TRPLOC ;ЗАПРЕТИТЬ УДАЛЕНИЕ&lt;br /&gt;
                                ;ПРОГРАММЫ&lt;br /&gt;
          DIVZ                  ;НЕДОПУСТИМАЯ КОМАНДА&lt;br /&gt;
          TST     @#166666      ;НЕСУЩЕСТВУЮЩИЙ АДРЕС&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  TRPLOC:                       ;ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
                                ;ПРЕРЫВАНИЙ&lt;br /&gt;
          BCS     1$&lt;br /&gt;
          .PRINT  #TRP4&lt;br /&gt;
          BR      2$&lt;br /&gt;
  1$:     .PRINT  #TRP10&lt;br /&gt;
          .TRPSET #AREA,#TRPLOC&lt;br /&gt;
  2$:     RTI&lt;br /&gt;
 &lt;br /&gt;
  AREA:   .WORD   0,0&lt;br /&gt;
  TRP4:   .ASCIZ  /ПРЕРЫВАНИЕ ПО 4 ВЕКТОРУ/&lt;br /&gt;
  TRP10:  .ASCIZ  /ПРЕРЫВАНИЕ ПО 10 ВЕКТОРУ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
          &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.48. .TWAIT&lt;br /&gt;
        ЗАПРОС .TWAIT  ПРИОСТАНАВЛИВАЕТ  ВЫПОЛНЕНИЕ  ПРОГРАММЫ&lt;br /&gt;
   ПОЛЬЗОВАТЕЛЯ НА УКАЗАННЫЙ ИНТЕРВАЛ ВРЕМЕНИ.  ЗАПРОС  .TWAIT&lt;br /&gt;
   ТРЕБУЕТ ДЛЯ СВОЕГО ВЫПОЛНЕНИЯ ЭЛЕМЕНТ ОЧЕРЕДИ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .TWAIT AREA,TIME&lt;br /&gt;
   ГДЕ AREA - АДРЕС БЛОКА ИЗ 2-Х СЛОВ АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
        TIME - АДРЕС БЛОКА ИЗ 2-Х СЛОВ, КОТОРЫЕ СОДЕРЖАТ ВЕЛИ-&lt;br /&gt;
   ЧИНУ ИНТЕРВАЛА  ВРЕМЕНИ  (ПЕРВОЕ  СЛОВО  -  НИЖНЮЮ  ГРАНИЦУ&lt;br /&gt;
   ИНТЕРВАЛА, ВТОРОЕ СЛОВО - ВЕРХНЮЮ ГРАНИЦУ ИНТЕРВАЛА).&lt;br /&gt;
        ФОРМАТ БЛОКА АРГУМЕНТОВ:&lt;br /&gt;
          AREA:   .BYTE   0,24&lt;br /&gt;
                  .WORD   TIME&lt;br /&gt;
  ПРИМЕР.&lt;br /&gt;
          .TITLE  TWAIT.MAC&lt;br /&gt;
 &lt;br /&gt;
          .MCALL  .TWAIT,.QSET,.PRINT,.EXIT&lt;br /&gt;
 &lt;br /&gt;
  START:  CALL    TASK&lt;br /&gt;
  1$:     .TWAIT  #AREA,#TIME&lt;br /&gt;
          BCS     NOQ&lt;br /&gt;
          CALL    TASK&lt;br /&gt;
          DEC     COUNT&lt;br /&gt;
          BNE     1$&lt;br /&gt;
          .PRINT  #EXIT&lt;br /&gt;
          .EXIT&lt;br /&gt;
 &lt;br /&gt;
  TASK:&lt;br /&gt;
          INC     TCNT&lt;br /&gt;
          BIT     #1,TCNT&lt;br /&gt;
          BEQ     1$&lt;br /&gt;
          .PRINT  #TIK&lt;br /&gt;
          RETURN&lt;br /&gt;
  1$:     .PRINT  #TAK&lt;br /&gt;
          RETURN&lt;br /&gt;
 &lt;br /&gt;
  NOQ:    .PRINT  #QERR&lt;br /&gt;
          .EXIT&lt;br /&gt;
  AREA:   .WORD   0,0&lt;br /&gt;
  TIME:   .WORD   0,50.*2&lt;br /&gt;
  COUNT:  .WORD   7&lt;br /&gt;
  TCNT:   .WORD   0&lt;br /&gt;
  TIK:    .ASCII  /ТИК - /&amp;lt;200&amp;gt;&lt;br /&gt;
  TAK:    .ASCIZ  /ТАК/&lt;br /&gt;
  EXIT:   .ASCIZ  /КОНЕЦ ПРОГРАММЫ/&lt;br /&gt;
  QERR:   .ASCIZ  /НЕТ ЭЛЕМЕНТА ОЧЕРЕДИ/&lt;br /&gt;
          .EVEN&lt;br /&gt;
 &lt;br /&gt;
          .END    START&lt;br /&gt;
 &lt;br /&gt;
       5.3.49. .WAIT&lt;br /&gt;
        ЗАПРОС .WAIT ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ  ДО&lt;br /&gt;
   ТЕХ ПОР, ПОКА НЕ ЗАКОНЧИТСЯ ОПЕРАЦИЯ ВВОДА-ВЫВОДА  НА  УКА-&lt;br /&gt;
   ЗАННОМ КАНАЛЕ. ПО ЭТОМУ ЗАПРОСУ МОЖНО ПОЛУЧИТЬ ИНФОРМАЦИЮ О&lt;br /&gt;
   ПРАВИЛЬНОСТИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ: ЕСЛИ КАНАЛ НЕ ОТКРЫТ  ИЛИ&lt;br /&gt;
   ПРОИЗОШЛА АППАРАТНАЯ ОШИБКА, УСТАНАВЛИВАЕТСЯ С-РАЗРЯД.&lt;br /&gt;
        В РЕЖИМЕ FB(XM) ЗАПРОС  .WAIT,  ЕСЛИ  ОПЕРАЦИЯ  ВВОДА-&lt;br /&gt;
   ВЫВОДА НЕ ЗАВЕРШЕНА ВЫЗЫВАЕТ ЗАДЕРЖКУ ВЫПОЛНЕНИЯ ОДНОГО  ИЗ&lt;br /&gt;
   ЗАДАНИЙ И ВЫПОЛНЕНИЕ ДРУГОГО, ЕСЛИ ОНО СУЩЕСТВУЕТ.&lt;br /&gt;
        ФОРМАТ МАКРОКОМАНДЫ:&lt;br /&gt;
        .WAIT CHAN&lt;br /&gt;
        ПРИМЕР ИСПОЛЬЗОВАНИЯ  .WAIT  СМ.  В  ОПИСАНИИ  ЗАПРОСА&lt;br /&gt;
   .READ.&lt;br /&gt;
 &lt;br /&gt;
                          6. СООБЩЕНИЯ&lt;br /&gt;
  ИНФОРМАЦИЯ О СООБЩЕНИЯХ ДАНА В [3].&lt;br /&gt;
 &lt;br /&gt;
                                              ПРИЛОЖЕНИЕ  1&lt;br /&gt;
 &lt;br /&gt;
                КОДЫ ОШИБОК ПРОГРАММНЫХ ЗАПРОСОВ&lt;br /&gt;
        В ТАБЛИЦЕ ПРИВЕДЕНЫ КОДЫ ОШИБОК ПРОГРАММНЫХ ЗАПРОСОВ И&lt;br /&gt;
   ПРИЧИНЫ, ВЫЗЫВАЮЩИЕ ЭТИ ОШИБКИ.&lt;br /&gt;
 &lt;br /&gt;
                                                       ТАБЛИЦА&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
    !  ЗАПРОС    !  КОД   !         ПРИЧИНА ОШИБКИ            !&lt;br /&gt;
    !            ! ОШИБКИ !                                   !&lt;br /&gt;
    !---------------------------------------------------------!&lt;br /&gt;
    ! .CDFN      !   0    ! ПОПЫТКА ОПРЕДЕЛИТЬ МЕНЬШЕЕ ЧИСЛО  !&lt;br /&gt;
    !            !        ! КАНАЛОВ, ЧЕМ ЕСТЬ В НАЛИЧИИ       !&lt;br /&gt;
    ! .CHCOPY    !   0    ! ДРУГОЕ ЗАДАНИЕ НЕ СУЩЕСТВУЕТ ИЛИ  !&lt;br /&gt;
    !            !        ! КАНАЛ (OCHAN) НЕ ОТКРЫТ           !&lt;br /&gt;
    !            !   1    ! КАНАЛ (CHAN) ЗАНЯТ                !&lt;br /&gt;
    ! .CLOSE     !   3    ! ЗАЩИЩЕННЫЙ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ   !&lt;br /&gt;
    !            !        ! УЖЕ СУЩЕСТВУЕТ                    !&lt;br /&gt;
    ! .CMKT      !   0    ! ЗАПРОС С УКАЗАННЫМ ID (ID=0)      !&lt;br /&gt;
    !            !        ! НЕ СУЩЕСТВУЕТ                     !&lt;br /&gt;
    ! .CNTXSW    !   0    ! В СПИСКЕ АДРЕСОВ УКАЗАН  НЕДОПУС- !&lt;br /&gt;
    !            !        ! ТИМЫЙ АДРЕС                       !&lt;br /&gt;
    ! .CSIGEN    !   0    ! НЕДОПУСТИМАЯ КОМАНДА              !&lt;br /&gt;
    !            !   1    ! УКАЗАННОГО УСТРОЙСТВА НЕТ В       !&lt;br /&gt;
    !            !        ! ТАБЛИЦАХ СИСТЕМЫ                  !&lt;br /&gt;
    !            !   2    ! ПОПЫТКА ОТКРЫТЬ ЗАЩИЩЕННЫЙ ФАЙЛ,  !&lt;br /&gt;
    !            !        ! ИМЕЮЩИЙ ТО ЖЕ ИМЯ                 !&lt;br /&gt;
    !            !   3    ! ПОПЫТКА ОТКРЫТЬ ФАЙЛ ПО .ENTER    !&lt;br /&gt;
    !            !        ! НЕУДАЧНА ИЗ-ЗА ПЕРЕПОЛНЕНИЯ       !&lt;br /&gt;
    !            !        ! СПРАВОЧНИКА УСТРОЙСТВА            !&lt;br /&gt;
    !            !   4    ! ВХОДНОЙ ФАЙЛ НЕ НАЙДЕН ПРИ        !&lt;br /&gt;
    !            !        ! ВЫПОЛНЕНИИ .LOOKUP                !&lt;br /&gt;
    ! .CSISPC    !   0    ! НЕДОПУСТИМАЯ КОМАНДА              !&lt;br /&gt;
    !            !   1    ! НЕДОПУСТИМОЕ УСТРОЙСТВО           !&lt;br /&gt;
    ! .CSTAT     !   0    ! КАНАЛ НЕ ОТКРЫТ                   !&lt;br /&gt;
    ! .DELETE    !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ             !&lt;br /&gt;
    !            !   1    ! ФАЙЛ НЕ НАЙДЕН В СПРАВОЧНИКЕ      !&lt;br /&gt;
    !            !        ! УСТРОЙСТВА                        !&lt;br /&gt;
    !            !   2    ! НЕДОПУСТИМАЯ ОПЕРАЦИЯ             !&lt;br /&gt;
    !            !   3    ! ЗАЩИЩЕННЫЙ ФАЙЛ                   !&lt;br /&gt;
    ! .DSTATUS   !   0    ! УСТРОЙСТВО НЕ НАЙДЕНО В ТАБЛИЦАХ  !&lt;br /&gt;
    !            !        ! СИСТЕМЫ                           !&lt;br /&gt;
    ! .ENTER     !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ             !&lt;br /&gt;
    !            !   1    ! НА УСТРОЙСТВЕ НЕ НАЙДЕНА ОБЛАСТЬ  !&lt;br /&gt;
    !            !        ! БОЛЬШАЯ ИЛИ РАВНАЯ М (LEN=М); ИЛИ !&lt;br /&gt;
    !            !        ! УСТРОЙСТВО ИЛИ СПРАВОЧНИК УСТРОЙ- !&lt;br /&gt;
    !            !        ! СТВА ПЕРЕПОЛНЕН                   !&lt;br /&gt;
    !            !   3    ! ЗАЩИЩЕННЫЙ ФАЙЛ С ТЕМ ЖЕ ИМЕНЕМ   !&lt;br /&gt;
    !            !        ! УЖЕ СУЩЕСТВУЕТ                    !&lt;br /&gt;
    ! .FETCH     !   0    ! НЕДОПУСТИМОЕ ИМЯ УСТРОЙСТВА ИЛИ В !&lt;br /&gt;
    !            !        ! СИСТЕМЕ ОТСУТСТВУЕТ ДРАЙВЕР УКА-  !&lt;br /&gt;
    !            !        ! ЗАННОГО УСТРОЙСТВА                !&lt;br /&gt;
    ! .RELEAS    !   0    ! НЕДОПУСТИМОЕ ИМЯ УСТРОЙСТВА       !&lt;br /&gt;
    ! .FPROT     !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ             !&lt;br /&gt;
    !            !   1    ! ФАЙЛ НЕ НАЙДЕН                    !&lt;br /&gt;
    !            !   2    ! НЕДОПУСТИМАЯ ОПЕРАЦИЯ             !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМОЕ ЗНАЧЕНИЕ АРГУМЕНТА   !&lt;br /&gt;
    !            !        ! &amp;quot;PROT&amp;quot;                            !&lt;br /&gt;
    ! .GTJB      !   0    ! НЕТ ЗАДАНИЯ                       !&lt;br /&gt;
    ! .GVAL      !   0    ! УКАЗАННОЕ ЗНАЧЕНИЕ СМЕЩЕНИЯ НАХО- !&lt;br /&gt;
    ! .PVAL      !        !                                   !&lt;br /&gt;
    !            !        ! ДИТСЯ ВНЕ ОБЛАСТИ RMON            !&lt;br /&gt;
    ! .LOOKUP    !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ. НЕТ ЗАДАНИЯ!&lt;br /&gt;
    ! .MRKT      !   0    ! НЕТ СВОБОДНОГО ЭЛЕМЕНТА ОЧЕРЕДИ   !&lt;br /&gt;
    ! .MTATCH    !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   4    ! ТЕРМИНАЛ ЛОГИЧЕСКИ СВЯЗАН С ДРУГИМ!&lt;br /&gt;
    !            !        ! ЗАДАНИЕМ                          !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС СЛОВА АСИНХ!&lt;br /&gt;
    !            !        ! РОННОГО СОСТОЯНИЯ ТЕРМИНАЛА (В РЕ-!&lt;br /&gt;
    !            !        ! ЖИМЕ XM)                          !&lt;br /&gt;
    ! .MTDTCH    !   1    ! НЕДОПУСТИМЫЙ ЛОГИЧЕСКИЙ НОМЕР ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛА; ТЕРМИНАЛ НЕ СВЯЗАН С ЗАДА-!&lt;br /&gt;
    !            !        ! НИЕМ                              !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    ! .MTGET     !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА; ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСВУЮЩИЙ ЛНТ                 !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   4    ! ТЕРМИНАЛ СВЯЗАН С ДРУГИМ ЗАДАНИЕМ !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    !            !        ! АСИНХРОННОГО СОСТОЯНИЯ ТЕРМИНАЛА  !&lt;br /&gt;
    ! .MTIN      !   0    ! НЕТ СИМВОЛОВ В БУФЕРЕ ВВОДА       !&lt;br /&gt;
    !            !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА; ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    !            !        ! (В РЕЖИМЕ XM)                     !&lt;br /&gt;
    ! .MTOUT     !   0    ! НЕТ СВОБОДНОГО МЕСТА В БУФЕРЕ ВЫ- !&lt;br /&gt;
    !            !        ! ВОДА                              !&lt;br /&gt;
    !            !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА, ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    ! .MTPRNT    !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА; ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    !            !        ! СТРОКИ                            !&lt;br /&gt;
    ! .MTRCTD    !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА; ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    ! .MTSET     !   1    ! НЕДОПУСТИМЫЙ НОМЕР ТЕРМИНАЛА; ТЕР-!&lt;br /&gt;
    !            !        ! МИНАЛ НЕ СВЯЗАН С ЗАДАНИЕМ        !&lt;br /&gt;
    !            !   2    ! НЕСУЩЕСТВУЮЩИЙ ЛНТ                !&lt;br /&gt;
    !            !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    ! .MTSTAT    !   3    ! НЕДОПУСТИМЫЙ ФУНКЦИОНАЛЬНЫЙ КОД   !&lt;br /&gt;
    !            !   5    ! НЕДЕЙСТВИТЕЛЬНЫЙ АДРЕС БУФЕРА     !&lt;br /&gt;
    ! .PROTECT   !   0    ! УКАЗАННЫЙ ВЕКТОР УЖЕ ИСПОЛЬЗУЕТСЯ !&lt;br /&gt;
    !            !   1    ! АДРЕС ВЕКТОРА БОЛЬШЕ 474 ИЛИ НЕ   !&lt;br /&gt;
    !            !        ! КРАТЕН ЧЕТЫРЕМ                    !&lt;br /&gt;
    ! .UNPROTECT !   1    ! АДРЕС ВЕКТОРА БОЛЬШЕ 474 ИЛИ НЕ   !&lt;br /&gt;
    !            !        ! КРАТЕН ЧЕТЫРЕМ                    !&lt;br /&gt;
    ! .RCVD      !   0    ! ПОПЫТКА ОБРАЩЕНИЯ К НЕСУЩЕСТВУЮЩЕ-!&lt;br /&gt;
    ! .RCVDC     !        ! МУ ЗАДАНИЮ                        !&lt;br /&gt;
    ! .RCVDW     !        !                                   !&lt;br /&gt;
    ! .READ      !   0    ! ПОПЫТКА ЧТЕНИЯ ПОСЛЕ КОНЦА ФАЙЛА  !&lt;br /&gt;
    ! .READC     !        !                                   !&lt;br /&gt;
    ! .READW     !        !                                   !&lt;br /&gt;
    !            !   1    ! АППАРАТНАЯ ОШИБКА НА КАНАЛЕ       !&lt;br /&gt;
    !            !   2    ! УКАЗАННЫЙ КАНАЛ НЕ ОТКРЫТ         !&lt;br /&gt;
    ! .RENAME    !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ             !&lt;br /&gt;
    !            !   1    ! ФАЙЛ НЕ НАЙДЕН                    !&lt;br /&gt;
    !            !   2    ! НЕДОПУСТИМАЯ ОПЕРАЦИЯ             !&lt;br /&gt;
    !            !   3    ! ПОПЫТКА ПЕРЕИМЕНОВАНИЯ ЗАЩИШЕННОГО!&lt;br /&gt;
    !            !        ! ФАЙЛА                             !&lt;br /&gt;
    ! .REOPEN    !   0    ! УКАЗАННЫЙ КАНАЛ ЗАНЯТ             !&lt;br /&gt;
    ! .SAVESTATUS!   0    ! УКАЗАННЫЙ КАНАЛ НЕ ОТКРЫТ         !&lt;br /&gt;
    !            !   1    ! ФАЙЛ ОТКРЫТ ПО .ENTER ИЛИ НАХОДИТ-!&lt;br /&gt;
    !            !        ! СЯ НА МАГНИТНОЙ ЛЕНТЕ, ПОЭТОМУ    !&lt;br /&gt;
    !            !        ! .SAVESTATUS ДЛЯ НЕГО НЕДОПУСТИМ   !&lt;br /&gt;
    ! .SDAT      !   0    ! ПОПЫТКА ОБРАЩЕНИЯ К НЕСУЩЕСТВУЮЩЕ-!&lt;br /&gt;
    ! .SDATC     !        ! МУ ЗАДАНИЮ                        !&lt;br /&gt;
    ! .SDATW     !        !                                   !&lt;br /&gt;
    ! .SFDAT     !   0    ! КАНАЛ ЗАНЯТ                       !&lt;br /&gt;
    !            !        ! ФАЙЛ НЕ НАЙДЕН                    !&lt;br /&gt;
    !            !        ! УСТРОЙСТВО НЕФАЙЛОВОЙ СТРУКТУРЫ   !&lt;br /&gt;
    ! .SPCPS     !   0    ! ПОПЫТКА ИСПОЛЬЗОВАТЬ .SPCPS В     !&lt;br /&gt;
    !            !        ! ГЛАВНОЙ ПРОГРАММЕ (А НЕ В ПОДПРОГ-!&lt;br /&gt;
    !            !        ! РАММЕ ЗАВЕРШЕНИЯ)                 !&lt;br /&gt;
    !            !   1    ! ПРЕДЫДУЩИЙ .SPCPS НЕ ВЫПОЛНЕН     !&lt;br /&gt;
    ! .SPFUN     !   0    ! ПОПЫТКА ЧТЕНИЯ ИЛИ ЗАПИСИ ПОСЛЕ   !&lt;br /&gt;
    !            !        ! КОНЦА ФАЙЛА                       !&lt;br /&gt;
    !            !   1    ! АППАРАТНАЯ ОШИБКА НА КАНАЛЕ       !&lt;br /&gt;
    !            !   2    ! КАНАЛ НЕ ОТКРЫТ                   !&lt;br /&gt;
    ! .TLOCK     !   0    ! USR УЖЕ ИСПОЛЬЗУЕТСЯ ДРУГИМ ЗАДА- !&lt;br /&gt;
    !            !        ! НИЕМ                              !&lt;br /&gt;
    ! .TTYIN     !   0    ! НЕТ СИМВОЛА В БУФЕРЕ ВВОДА        !&lt;br /&gt;
    ! .TTINR     !        !                                   !&lt;br /&gt;
    ! .TTYOUT    !   0    ! БУФЕР ВЫВОДА ПЕРЕПОЛНЕН           !&lt;br /&gt;
    ! .TTOUTR    !        !                                   !&lt;br /&gt;
    ! .TWAIT     !   0    ! НЕТ СВОБОДНОГО ЭЛЕМЕНТА ОЧЕРЕДИ   !&lt;br /&gt;
    ! .WAIT      !   0    ! УКАЗАННЫЙ КАНАЛ НЕ ОТКРЫТ         !&lt;br /&gt;
    !            !   1    ! АППАРАТНАЯ ОШИБКА НА КАНАЛЕ ВО    !&lt;br /&gt;
    !            !        ! ВРЕМЯ ВЫПОЛНЕНИЯ ПРЕДЫДУЩЕЙ ОПЕРА-!&lt;br /&gt;
    !            !        ! ЦИИ ВВОДА-ВЫВОДА                  !&lt;br /&gt;
    ! .WRITE     !   0    ! ПОПЫТКА ЗАПИСИ ПОСЛЕ КОНЦА ФАЙЛА  !&lt;br /&gt;
    ! .WRITC     !   1    ! АППАРАТНАЯ ОШИБКА НА КАНАЛЕ       !&lt;br /&gt;
    !            !   2    ! КАНАЛ НЕ ОТКРЫТ                   !&lt;br /&gt;
    -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
         ПРИМЕЧАНИЯ:&lt;br /&gt;
         1. ДЛЯ ЗАПРОСА .SYNCH ВОЗВРАТ ПО ОШИБКЕ  ПРОИСХОДИТ  В&lt;br /&gt;
    СЛЕДУЮЩИХ СЛУЧАЯХ:&lt;br /&gt;
         - НЕ ЗАКОНЧЕНА МАКРОКОМАНДА .SYNCH,  ИСПОЛЬЗУЮЩАЯ  ТОТ&lt;br /&gt;
    ЖЕ БЛОК АРГУМЕНТОВ ЕМТ;&lt;br /&gt;
         - УКАЗАН НЕДОПУСТИМЫЙ НОМЕР ЗАДАНИЯ;&lt;br /&gt;
         - ЕСЛИ ПРОИЗОШЛО УДАЛЕНИЕ ИЛИ ОСТАНОВ ПРОГРАММЫ.&lt;br /&gt;
         ПРИ ЭТОМ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ НА СЛЕДУЮЩУЮ ЗА  .SYNCH&lt;br /&gt;
    ЯЧЕЙКУ. ЕСЛИ  МАКРОКОМАНДА  .SYNCH  ВЫПОЛНЕНА  УСПЕШНО,  ТО&lt;br /&gt;
    ВОЗВРАТ ПРОИСХОДИТ В СЛЕДУЮЩУЮ ЗА ВОЗВРАТОМ ПО ОШИБКЕ ЯЧЕЙ-&lt;br /&gt;
    КУ.&lt;br /&gt;
         2. ПРИ ВЫПОЛНЕНИИ ЗАПРОСОВ, НЕ  УКАЗАННЫХ  В  ТАБЛИЦЕ,&lt;br /&gt;
    ОШИБОК НЕ ПРОИСХОДИТ.&lt;br /&gt;
 &lt;br /&gt;
                                                ПРИЛОЖЕНИЕ  2&lt;br /&gt;
 &lt;br /&gt;
                       СТРУКТУРА БЛОКА CBLK&lt;br /&gt;
 &lt;br /&gt;
                                                    ТАБЛИЦА&lt;br /&gt;
  -----------------------------------------------------------&lt;br /&gt;
  ! СЛОВО  ! РАЗРЯД  ! ЗНАЧЕНИЕ !         ОПИСАНИЕ          !&lt;br /&gt;
  !---------------------------------------------------------!&lt;br /&gt;
  !   1    !    0    !     1    !АППАРАТНАЯ ОШИБКА НА КАНАЛЕ!&lt;br /&gt;
  !(СЛОВО  !   1-5   !     N    ! N-ИНДЕКС УСТРОЙСТВА В ТАБ-!&lt;br /&gt;
  !СОСТОЯ- !         !          ! ЛИЦАХ МОНИТОРА (ИДЕНТИФИ- !&lt;br /&gt;
  !НИЯ КА- !         !          ! ЦИРУЕТ ФИЗИЧЕСКОЕ УСТРОЙ- !&lt;br /&gt;
  !НАЛА)   !         !          ! СТВО, КОТОРОЕ СВЯЗАНО С   !&lt;br /&gt;
  !        !         !          ! ИСПОЛЬЗУЕМЫМ КАНАЛОМ)     !&lt;br /&gt;
  !        !    6    !     1    ! НА КАНАЛЕ ВЫПОЛНЯЕТСЯ     !&lt;br /&gt;
  !        !         !          ! ЗАПРОС .RENAME            !&lt;br /&gt;
  !        !    7    !     1    ! НА КАНАЛЕ ВЫПОЛНЕН .ENTER;!&lt;br /&gt;
  !        !         !          ! СПРАВОЧНИК УСТРОЙСТВА ДОЛ-!&lt;br /&gt;
  !        !         !          ! ЖЕН МОДИФИЦИРОВАТЬСЯ ПО   !&lt;br /&gt;
  !        !         !          ! ЗАПРОСУ .CLOSE            !&lt;br /&gt;
  !        !  8-12   !          ! НОМЕР СЕГМЕНТА СПРАВОЧНИКА!&lt;br /&gt;
  !        !         !          ! (1-37(ВОСЬМЕРИЧНОЙ)), В   !&lt;br /&gt;
  !        !         !          ! КОТОРОМ НАХОДИТСЯ ЗАПИСЬ О!&lt;br /&gt;
  !        !         !          ! ТЕКУЩЕМ ФАЙЛЕ             !&lt;br /&gt;
  !        !   13    !     1    ! ОБНАРУЖЕНА МЕТКА КОНЦА ФАЙ!&lt;br /&gt;
  !        !         !          ! ЛА (EOF)                  !&lt;br /&gt;
  !        !   14    !     -    ! НЕ ИСПОЛЬЗУЕТСЯ           !&lt;br /&gt;
  !        !   15    !     1    ! КАНАЛ ЗАНЯТ               !&lt;br /&gt;
  !   2    !         !          ! НОМЕР НАЧАЛЬНОГО БЛОКА    !&lt;br /&gt;
  !        !         !          ! ФАЙЛА НА ТОМЕ; ЗНАЧЕНИЕ   !&lt;br /&gt;
  !        !         !          ! СЛОВА РАВНО НУЛЮ, ЕСЛИ    !&lt;br /&gt;
  !        !         !          ! УСТРОЙСТВО ПОСЛЕДОВАТЕЛЬНО!&lt;br /&gt;
  !        !         !          ! ГО ДОСТУПА                !&lt;br /&gt;
  !   3    !         !          ! ДЛИНА ФАЙЛА В БЛОКАХ      !&lt;br /&gt;
  !   4    !         !          ! НЕ ИСПОЛЬЗУЕТСЯ           !&lt;br /&gt;
  !   5    !         !          ! ЧЕТНЫЙ БАЙТ - ЧИСЛО НЕЗА- !&lt;br /&gt;
  !        !         !          ! ВЕРШЕННЫХ ОПЕРАЦИЙ ВВОДА- !&lt;br /&gt;
  !        !         !          ! ВЫВОДА НА КАНАЛЕ; НЕЧЕТНЫЙ!&lt;br /&gt;
  !        !         !          ! БАЙТ - НОМЕР ПРИВОДА      !&lt;br /&gt;
  !        !         !          ! УСТРОЙСТВА, СВЯЗАННОГО С  !&lt;br /&gt;
  !        !         !          ! КАНАЛОМ (ОТ 0 ДО 7)       !&lt;br /&gt;
  -----------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                  ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ&lt;br /&gt;
 &lt;br /&gt;
        1.ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
        ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ&lt;br /&gt;
        РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
        589.7547471.00042-01 32 03&lt;br /&gt;
&lt;br /&gt;
        2.ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
        МОНИТОР РАСШИРЕННОЙ ПАМЯТИ&lt;br /&gt;
        РУКОВОДСТВО ПРОГРАММИСТА&lt;br /&gt;
        589.7547471.00042-01 33 04&lt;br /&gt;
&lt;br /&gt;
        3.ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
        СООБЩЕНИЯ СИСТЕМЫ&lt;br /&gt;
        589.7547471.00042-01 90 03&lt;br /&gt;
&lt;br /&gt;
        4.ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
        ОПИСАНИЕ ПРИМЕНЕНИЯ&lt;br /&gt;
        589.7547471.00042-01 31 01&lt;br /&gt;
�&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1694</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1694"/>
		<updated>2007-07-17T18:42:46Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
* [[Uknc RT-11 monrt]] — RT-11. МОНИТОР СИСТЕМЫ. Руководство программиста&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Здесь будет собрана вся известная информация об УКНЦ&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 08:59, 21 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_RT-11_monrt&amp;diff=1693</id>
		<title>Uknc RT-11 monrt</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_RT-11_monrt&amp;diff=1693"/>
		<updated>2007-07-17T18:41:39Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			ОПЕРАЦИОННАЯ СИСТЕМА RT11&lt;br /&gt;
&lt;br /&gt;
			     МОНИТОР СИСТЕМЫ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			 Руководство программиста&lt;br /&gt;
			      00010-01 33 01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				АННОТАЦИЯ&lt;br /&gt;
&lt;br /&gt;
		В  документе описываются  функции и характеристики  мониторов&lt;br /&gt;
	системы ФОДОС и программные запросы как  способ обращения  к монитора&lt;br /&gt;
	с целью выполнения тех или  иных действий, необходимых для выполнения&lt;br /&gt;
	программы.&lt;br /&gt;
		Перед   использованием    настоящего   документа   необходимо&lt;br /&gt;
	ознакомиться со следующими  документами:&lt;br /&gt;
		-&amp;quot;Операционная система ФОДОС. Общее описание. 00010-01 31 01&amp;quot;&lt;br /&gt;
		-&amp;quot;Операционная  система ФОДОС. Монитор  системы.  Руководство&lt;br /&gt;
	оператора. 00010-01 34 01&amp;quot;�&lt;br /&gt;
&lt;br /&gt;
				 	- 3 -&lt;br /&gt;
&lt;br /&gt;
				СОДЕРЖАНИЕ.&lt;br /&gt;
&lt;br /&gt;
		1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ...................4  &lt;br /&gt;
		2. СТРУКТУРА ИНФОРМАЦИИ НА НОСИТЕЛЯХ.................5  &lt;br /&gt;
		   2.1. Структура системного тома....................5  &lt;br /&gt;
		   2.2. Структура тома магнитной ленты...............8   &lt;br /&gt;
		   2.3. Организация ввода-вывода.....................9   &lt;br /&gt;
		3. ХАРАКТЕРИСТИКИ МОНИТОРА..........................11  &lt;br /&gt;
		   3.1. Особые области памяти RT11..................12  &lt;br /&gt;
		   3.2. Алгоритмы свопинга..........................16  &lt;br /&gt;
		   3.3. Ячейки фиксированного смещения..............17  &lt;br /&gt;
		   3.4. Подпрограммы завершения.....................21  &lt;br /&gt;
		4. ОБРАЩЕНИЕ К МОНИТОРУ, ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ..22  &lt;br /&gt;
		   4.1. Программные запросы.........................22  &lt;br /&gt;
		5. СООБЩЕНИЯ........................................81  &lt;br /&gt;
		ПРИЛОЖЕНИЕ .........................................94  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				 	- 4 -&lt;br /&gt;
&lt;br /&gt;
		Ядром   операционной   системы   RT11   является  монитор.  В&lt;br /&gt;
	зависимости от  конструкции  технических   средств   и   потребностей&lt;br /&gt;
	пользователь   может   использовать  один из  пяти  мониторов   RT11:&lt;br /&gt;
	RM - исполняющий  монитор  реального  времени,  резидентный в памяти;&lt;br /&gt;
	SJ(CD) - однозадачный монитор реального времени; FB - фоново-операти-&lt;br /&gt;
	вный монитор  реального  времени, обслуживающий две (до 8) задачи  на &lt;br /&gt;
	комплексах с памятью до 56K; XM - монитор управления памятью до 248 K&lt;br /&gt;
	для не более 8 задач реального времени; TS - многопользовательский&lt;br /&gt;
	монитор разделения времени для комплексов с памятью 96 - 248 K, обслу&lt;br /&gt;
	живающий до 30 задач.&lt;br /&gt;
&lt;br /&gt;
			1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
		Монитор RT11 предназначен для управления работой операционной&lt;br /&gt;
	системы и обеспечивает выполнение следующих функций:&lt;br /&gt;
&lt;br /&gt;
		- обработка прерываний;&lt;br /&gt;
		- обработка ошибок;&lt;br /&gt;
		- связь с оператором;&lt;br /&gt;
		- обслуживание программных запросов;&lt;br /&gt;
		- управление файлами;&lt;br /&gt;
		- обеспечение одновременного выполнения двух задач&lt;br /&gt;
	пользователя (для монитора SJ - одной задачи);&lt;br /&gt;
		- обслуживание таймера.&lt;br /&gt;
		Условия  применения  монитора  RT11 аналогичны  условиям при-&lt;br /&gt;
	менения операционной системы в целом ( документ &amp;quot;Операционная система&lt;br /&gt;
	ФОДОС. Общее описание&amp;quot;).&lt;br /&gt;
		Примечание. Для работы монитора системы необходимо наличие на&lt;br /&gt;
	системном томе файла свопинга SWAP.SYS. Для мониторов:&lt;br /&gt;
			FB,XM - 26 блоков&lt;br /&gt;
			CD,DS - 2 блока при SET USR NOSWAP&lt;br /&gt;
			   SJ - 24 блока�&lt;br /&gt;
&lt;br /&gt;
					- 5 -&lt;br /&gt;
&lt;br /&gt;
			2. СТРУКТУРА ИНФОРМАЦИИ НА НОСИТЕЛЯХ.&lt;br /&gt;
&lt;br /&gt;
			2.1. Структура системного тома.&lt;br /&gt;
&lt;br /&gt;
		Системный том RT11 содержит все компоненты системы -загрузчик&lt;br /&gt;
	системы,  монитор,  драйверы  устройств,  системные и вспомагательные&lt;br /&gt;
	программы. Структура системного тома  предусматривает запись перечис-&lt;br /&gt;
	ленных компонентов по блокам:&lt;br /&gt;
&lt;br /&gt;
	 Блок:		 		Содержимое:&lt;br /&gt;
	  0			Начало загрузчика системы&lt;br /&gt;
	  1			Идентификация тома&lt;br /&gt;
	 2-5			Продолжение загрузчика системы&lt;br /&gt;
	 6-(Nx2) + 5		Каталог тома, N - число сегментов&lt;br /&gt;
				каталога&lt;br /&gt;
	 (Nx2) + 6 - до конца	Файлы&lt;br /&gt;
&lt;br /&gt;
	Примечание:  1блок=256.  слов=512.  байт.  1сегмент  каталога=2блока.&lt;br /&gt;
	На  дисках  DX, MX  каталог=1сегмент. На  дисках  двойной  плотности,&lt;br /&gt;
	винчестере - каталог больше.&lt;br /&gt;
&lt;br /&gt;
			2.1.1. Виды файлов.&lt;br /&gt;
&lt;br /&gt;
		RT11  использует  &amp;quot;соприкасающуюся&amp;quot;  структуру  файлов. Такая&lt;br /&gt;
	структура   означает,  что  каждый  файл  на  томе  составляет группу&lt;br /&gt;
	смежных  физических  блоков  (т.е. файл  длиной  в  9 блоков занимает&lt;br /&gt;
	9 смежных блоков на томе). Различают следующие виды файлов:&lt;br /&gt;
	&amp;gt; постоянный файл-файл,который был открыт по .ENTER,а затем закрыт по&lt;br /&gt;
	 .CLOSE;файлы,включенные в листинг каталога тома,являются постоянными&lt;br /&gt;
	&amp;gt; временный  файл-файл, который  был  открыт по .ENTER,  но не закрыт&lt;br /&gt;
	  по .CLOSЕ; если  выполнен запрос  .CLOSE, временный файл становится&lt;br /&gt;
	  постоянным, при этом, если на томе уже существует постоянный файл с&lt;br /&gt;
	  тем же именем,то он стирается; если запрос.CLOSE  не  используется,&lt;br /&gt;
	  то  временный  файл  рассматривается как  пустой  файл;   временный&lt;br /&gt;
	  файл стирается,если создается новый временный файл с тем же именем;&lt;br /&gt;
	&amp;gt; пустой файл; т.е. область диска не используется.В листинге каталога&lt;br /&gt;
	  он определен как &amp;lt;Unused&amp;gt; N {неиспользуемый}, где N-длина свободной&lt;br /&gt;
	  области в блоках.�&lt;br /&gt;
&lt;br /&gt;
					- 6 -&lt;br /&gt;
&lt;br /&gt;
			2.1.2. Структура каталога тома.&lt;br /&gt;
&lt;br /&gt;
		Каталог тома любого устройства  справочной  структуры состоит&lt;br /&gt;
	из  сегментов  и начинается с  6-го блока тома. Длина каталога  может&lt;br /&gt;
	изменяться  от 1. до 31. сегмента ( устанавливается при инициализации&lt;br /&gt;
	тома).&lt;br /&gt;
		Каждый сегмент занимает два блока  (512. слов)  и состоит  из&lt;br /&gt;
	заголовка сегмента и записей каталога.&lt;br /&gt;
&lt;br /&gt;
			2.1.2.1. Формат заголовка сегмента.&lt;br /&gt;
&lt;br /&gt;
		Заголовок  сегмента находится  в  начале сегмента  и занимает&lt;br /&gt;
	первые пять слов:&lt;br /&gt;
&lt;br /&gt;
	    1	Число сегментов справочника (1&amp;lt;= N &amp;lt;=31.)&lt;br /&gt;
	    2	Номер  сегмента, логически  связанного с данным.  Если  0,  в&lt;br /&gt;
		справочнике  нет  сегментов,  логически  связанных с  данным.&lt;br /&gt;
	    3	Номер последнего  открытого  сегмента  (возрастает  при  фор-&lt;br /&gt;
		мировании  нового  сегмента).  Это  слово используется только &lt;br /&gt;
		в первом сегменте&lt;br /&gt;
	    4	Число  дополнительных  байтов  в  записи   справочника&lt;br /&gt;
	    5	Номер  блока  тома,  с  которого  начинаются файлы, описанные&lt;br /&gt;
		в этом сегменте&lt;br /&gt;
&lt;br /&gt;
		Примечание: в системе RT11 при непрерывной (без стирания) за-&lt;br /&gt;
	писи  файлов  на  том и заполнении сегмента  каталога, осуществляется&lt;br /&gt;
	перезапись  примерно   половины  файлов  в  свободный ( если он есть)&lt;br /&gt;
	сегмент каталога. В результате между сегментами устанавливается логи-&lt;br /&gt;
	ческая связь, которая отражается во втором слове  заголовка  сегмента&lt;br /&gt;
	и используется монитором для поиска файлов на томе. Логически связан-&lt;br /&gt;
	ные сегменты  не обязательно  являются  физически смежными  на  томе.�&lt;br /&gt;
&lt;br /&gt;
					- 7 -&lt;br /&gt;
&lt;br /&gt;
			2.1.2.2. Формат записи каталога.&lt;br /&gt;
&lt;br /&gt;
		Запись каталога представляет собой  основную его  структурную&lt;br /&gt;
	единицу и содержит информацию  о  файле,  хранящемся на данном томе.&lt;br /&gt;
	Структура записи:&lt;br /&gt;
&lt;br /&gt;
	 слово:&lt;br /&gt;
	   0	слово состояния&lt;br /&gt;
	   1	имя файла RADIX-50&lt;br /&gt;
	   2	имя файла RADIX-50&lt;br /&gt;
	   3	тип файла (расширение) RADIX-50&lt;br /&gt;
	   4	длина файла&lt;br /&gt;
	   5	номер задания/номер канала&lt;br /&gt;
	   6	дата (начало счисления=1 января 1972 г.)&lt;br /&gt;
	   *&lt;br /&gt;
	   *	дополнительные слова&lt;br /&gt;
	   *&lt;br /&gt;
&lt;br /&gt;
	Нечетный байт слова состояния:			RAD50:&lt;br /&gt;
	1	временный файл				/ FP/&lt;br /&gt;
	2	свободная область			/ L2/&lt;br /&gt;
	4	постоянный файл				/ YX/&lt;br /&gt;
	10	конец сегмента				/AKH/&lt;br /&gt;
	204	защищенный (PROTECTED) файл		/UD2/&lt;br /&gt;
&lt;br /&gt;
	Четный байт слова состояния - резервный.&lt;br /&gt;
&lt;br /&gt;
		Имя и тип файла-последовательность символов  RADIX-50 ( кроме&lt;br /&gt;
	пробела, табуляции, знака $). Длина файла равна  числу занимаемых  им&lt;br /&gt;
	блоков. Попытки чтения/записи за пределами файла вызовут ошибку.Номер&lt;br /&gt;
	задания и номер канала устанавливаются  только  для временных файлов:&lt;br /&gt;
		При работе с монитором SJ четный байт содержит  номер канала,&lt;br /&gt;
	на котором открыт данный файл.При выполнении запроса .CLOSE указанный&lt;br /&gt;
	номер канала позволяет однозначно определить искомый временный  файл;&lt;br /&gt;
		При работе с монитором  FB четный байт содержит номер канала,&lt;br /&gt;
	нечетный байт - номер задания, открывшего данный файл. При выполнении&lt;br /&gt;
	запроса .CLOSE однозначное определение искомого временного файла обес&lt;br /&gt;
	печивается номером задания, т.к. задания  могут иметь временные файлы&lt;br /&gt;
	на своих каналах, имеющих одинаковые номера.�&lt;br /&gt;
&lt;br /&gt;
					- 8 -&lt;br /&gt;
&lt;br /&gt;
		Дата создания файла  заносится при выполнении запроса .ENTER:&lt;br /&gt;
&lt;br /&gt;
		 15 14  10 9	5 4	 0 &lt;br /&gt;
		+--+------+------+--------+&lt;br /&gt;
		|  |месяц |день  |год-117 |&lt;br /&gt;
		+--+------+------+--------+&lt;br /&gt;
&lt;br /&gt;
		Формат даты:&lt;br /&gt;
	15-й разряд не используется.&lt;br /&gt;
	Месяцы нумеруются от 1 до 12, дни - от 1 до 31.&lt;br /&gt;
	в RAD50 /ED2/ высвечивается как -BAD-&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
		Запись  справочника  имеет  длину 7 слов. Однако,пользователь&lt;br /&gt;
	может  разместить  дополнительные  слова  в  записи  справочника  при&lt;br /&gt;
	инициализации тома. RT11 не обслуживает дополнительные слова в записи&lt;br /&gt;
	справочника, поэтому пользователь должен  предусмотреть доступ к ним.&lt;br /&gt;
&lt;br /&gt;
			2.1.2.3. Число файлов тома.&lt;br /&gt;
&lt;br /&gt;
		Число файлов,которые можно  записать на томе зависит от числа&lt;br /&gt;
	сегментов каталога тома и числа дополнительных слов в записи каталога.&lt;br /&gt;
		Общее число записей в каталоге определяется выражением:&lt;br /&gt;
			31*[(512-5)/(7+N)]&lt;br /&gt;
	где N - число дополнительных слов в записи.&lt;br /&gt;
		Если  N=0, общее  число записей в каталоге ( файлов на томе )&lt;br /&gt;
	2232. . При  размещении дополнительных  слов в записи каталога  число&lt;br /&gt;
	файлов, хранящихся на томе, уменьшается.1 сегмент содержит до 145.фай&lt;br /&gt;
	лов.&lt;br /&gt;
&lt;br /&gt;
			2.2. Структура тома магнитной ленты.&lt;br /&gt;
&lt;br /&gt;
		RT11 использует магнитную ленту, структура которой предусмат-&lt;br /&gt;
	ривает идентификацию данных  с  помощью различных  маркеров и  меток.&lt;br /&gt;
	Каждый файл на   магнитной  ленте записывается  по блокам длиной 256.&lt;br /&gt;
	слов и имеет следующий формат:�&lt;br /&gt;
&lt;br /&gt;
					- 9 -&lt;br /&gt;
&lt;br /&gt;
		HDRn* --- данные ---* EOFn*&lt;br /&gt;
	где  HDR -идентификатор метки начала файла;&lt;br /&gt;
	     EOF -идентификатор метки конца файла;&lt;br /&gt;
	       n -номер метки;&lt;br /&gt;
	       * -ленточная марка.&lt;br /&gt;
	Том,содержащий один файл,имеет формат:&lt;br /&gt;
		VOL1 HDR1 * --- данные --- * EOF1 **&lt;br /&gt;
	где  VOL1 - идентификатор метки тома с номером 1.&lt;br /&gt;
		Том,содержащий два файла,имеет формат:&lt;br /&gt;
		VOL1NDR1* - - данные - - *EOF1*NDR2* - - данные - - *EOF2**&lt;br /&gt;
		Две  ленточные  марки,  следующие  за  меткой   конца  файла,&lt;br /&gt;
	указывают логический конец ленты, обозначаемый  LEOT.&lt;br /&gt;
		Лента, на  которой не записаны  файлы данных имеет  следующий&lt;br /&gt;
	формат:			VOL1**&lt;br /&gt;
		Каждая  метка  VOLn,  HDRn  или  EOFn  занимает  полный  блок&lt;br /&gt;
	длиной 256.  слов, в котором используются первые 80 байтов.&lt;br /&gt;
		Идентификатор  и номер метки  записываются по  байтам в кодах&lt;br /&gt;
	КОИ-7.&lt;br /&gt;
		Блок метки  тома  содержит  идентификацию  тома,  блок  метки&lt;br /&gt;
	начала файла  HDRn - имя файла, порядковый номер файла на ленте, дату&lt;br /&gt;
	создания и код системы.&lt;br /&gt;
		Блок метки конца файла  EOFn  построен аналогично блоку HDRn.&lt;br /&gt;
	Кроме характеристик блока  HDRn , указанных выше, блок  EOFn содержит&lt;br /&gt;
	десятичное число блоков в данном файле в кодах КОИ-7.&lt;br /&gt;
		Магнитная лента,содержащая в начале тома начальный загрузчик,&lt;br /&gt;
	имеет следующий формат:&lt;br /&gt;
	    VOL1 BOOT HDR1* - - данные - - *EOF1* ...* ,&lt;br /&gt;
	где   BOOT - блок  длиной 256.  слов, содержащий начальный загрузчик.&lt;br /&gt;
&lt;br /&gt;
			2.3. Организация ввода-вывода.&lt;br /&gt;
&lt;br /&gt;
		Управление операциями ввода-вывода в системе RT11 осуществля-&lt;br /&gt;
	ется монитором с помощью драйверов устройств.&lt;br /&gt;
		Драйверы устройств являются резидентными на системном устрой-&lt;br /&gt;
	стве и загружаются в оперативную память по запросу из программы	поль-&lt;br /&gt;
	зователя или по команде KMON.�&lt;br /&gt;
&lt;br /&gt;
					- 10 -&lt;br /&gt;
&lt;br /&gt;
		Все запросы на ввод-вывод данных интерпретируются монитором и&lt;br /&gt;
	адресуются драйверу соответствующего устройства. Если запрос не может&lt;br /&gt;
	быть удовлетворен по каким-либо причинам, он автоматически ставится в&lt;br /&gt;
	очередь.&lt;br /&gt;
			2.3.1. Элемент очереди ввода-вывода.&lt;br /&gt;
		&lt;br /&gt;
		Очередь ввода-вывода состоит из связанных элементов по 7 (SJ/&lt;br /&gt;
	FB-мониторы) или 10 (XM/TS) слов каждый. Элемент очереди  формируется&lt;br /&gt;
	монитором при поступлении запросов на ввод-вывод и используется драй-&lt;br /&gt;
	вером устройства для выполнения операции. Структура элемента очереди:&lt;br /&gt;
&lt;br /&gt;
		+-----------------------------------------------+&lt;br /&gt;
		|	Адрес следующего элемента очереди	|&lt;br /&gt;
		|	Адрес слова состояния канала		|&lt;br /&gt;
		|	Номер начального блока файла		|     &lt;br /&gt;
		|		на томе				|&lt;br /&gt;
		|-------+-----------------------+---------------|&lt;br /&gt;
		| Номер	|	 Номер привода	|    Код	|&lt;br /&gt;
		|задания|	  устройства	|  функции	|&lt;br /&gt;
		|-------+-----------------------+---------------|&lt;br /&gt;
		|	Адрес буфера памяти			|&lt;br /&gt;
		|	Счетчик слов				|&lt;br /&gt;
		|	Функция завершения			|&lt;br /&gt;
		+-----------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
		1-е слово элемента очереди - адрес следующего элемента очере-&lt;br /&gt;
	ди,если он есть (иначе - 0).&amp;lt;Q.LINK=0;Q$LINK=-4&amp;gt;&lt;br /&gt;
		2-е слово - адрес слова состояния канала,на котором осуществ-&lt;br /&gt;
	ляется операция ввода-вывода.&amp;lt;Q.CSW=2;Q$CSW=-2&amp;gt;&lt;br /&gt;
		3-е слово -номер начального блока файла на томе для устройств&lt;br /&gt;
	файловой структуры (иначе - 0).&amp;lt;Q.BLKN=4;Q$BLKN=0&amp;gt;&lt;br /&gt;
		4-е слово:разряды 0-7 - код функции,которую необходимо выпол-&lt;br /&gt;
	нить; разряды 8-10 - номер привода устройства, на котором выполняется&lt;br /&gt;
	операция;разряды 11-13 - номер задания:0 -фоновое, 2 - основное.&lt;br /&gt;
	&amp;lt;Q.FUNC=6;Q$FUNC=2&amp;gt;&amp;lt;Q.JNUM=Q.UNIT=7;Q$JNUM=Q$UNIT=3&amp;gt;&lt;br /&gt;
		5-е слово - адрес буфера оперативной памяти для запрашиваемой&lt;br /&gt;
	операции.&amp;lt;Q.BUFF=10;Q$BUFF=4&amp;gt;&lt;br /&gt;
		6-е слово - счетчик слов; &amp;lt;0 для операции записи, &amp;gt;0 для чте-&lt;br /&gt;
	ния и 0 - для поиска файла на томе.&amp;lt;Q.WCNT=12;Q$WCNT=6&amp;gt;�&lt;br /&gt;
&lt;br /&gt;
					- 11 -&lt;br /&gt;
		7-е слово - адрес подпрограммы завершения:&lt;br /&gt;
		0 - синхронный режим ввода-вывода, управление - задаче  после&lt;br /&gt;
		    завершения операции;&lt;br /&gt;
		1 - модифицированный синхронный режим ввода-вывода,управление&lt;br /&gt;
		    возвращается задаче после запуска операции;&lt;br /&gt;
		Четный адрес - адрес подпрограммы завершения для асинхронного&lt;br /&gt;
	режима ввода-вывода.&amp;lt;Q.COMP=14;Q$COMP=10&amp;gt;&lt;br /&gt;
	(в угловых скобках-мнемоники и соотв. смещения, определяемые макроко-&lt;br /&gt;
	мандой .QELDF; смещения, содержащие в имени точку-относительно начала&lt;br /&gt;
	элемента  очереди, содержащие &amp;quot;$&amp;quot; -относительно  третьего слова). Для&lt;br /&gt;
	XM/TS мониторов Q.PAR=16; Q$PAR=12 содержит  значение, записываемое в&lt;br /&gt;
	PAR1(XM-монитор) или  PAR6(TS-монитор)  для получения  доступа  через&lt;br /&gt;
	Q.BUFF к данным в буфере программы;PAR-один из регистров адреса стра-&lt;br /&gt;
	ницы диспетчера памяти; длина элемента очереди в байтах Q.ELNG=16 для&lt;br /&gt;
	SJ/FB мониторов, Q.ELNG=24-для XM/TS.&lt;br /&gt;
		В системе RT11 предусмотрена  очередь ввода-вывода  из одного&lt;br /&gt;
	элемента ( в режиме FB для каждого задания - свой  элемент очереди ).&lt;br /&gt;
		Этого  достаточно для  работы в режиме синхронного выполнения&lt;br /&gt;
	операций ввода-вывода.Для работы в других режимах пользователь должен&lt;br /&gt;
	предусмотреть в своей  программе создание дополнительных элементов по&lt;br /&gt;
	запросу .QSET .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			3. ХАРАКТЕРИСТИКИ МОНИТОРА.&lt;br /&gt;
&lt;br /&gt;
		Монитор системы RT11 имеет модульную структуру и включает сле&lt;br /&gt;
	дующие программные компоненты:&lt;br /&gt;
		- Резидентный монотор RMON;&lt;br /&gt;
		- Клавиатурный монотор KMON;&lt;br /&gt;
		- Программу обслуживания пользователя USR и Интерпретатор ко-&lt;br /&gt;
	мандной строки CSI;&lt;br /&gt;
		- Драйверы устройств.&lt;br /&gt;
		Работа RT11 под управлением монитора SJ обеспечивает выполне-&lt;br /&gt;
	ние одной  программы пользователя, под управлением  мониторов FB и XM&lt;br /&gt;
	обеспечивает  одновременное  выполнение двух  независимых программ, и&lt;br /&gt;
	кроме того, в режиме XM обеспечивает доступ к памяти объемом до 124 К&lt;br /&gt;
	слов.�&lt;br /&gt;
&lt;br /&gt;
				 	- 12 -&lt;br /&gt;
&lt;br /&gt;
			3.1. Особые области памяти RT11.&lt;br /&gt;
&lt;br /&gt;
		Область памяти  для векторов  прерывания  и некоторые  ячейки&lt;br /&gt;
	RMON являются особыми для функционирования операционной системы. Одни&lt;br /&gt;
	ячейки в этих областях могут использоваться программами пользователя,&lt;br /&gt;
	другие использовать запрещается.&lt;br /&gt;
&lt;br /&gt;
			3.1.1. Адреса векторов прерывания.&lt;br /&gt;
&lt;br /&gt;
		Ячейки памяти  от 0 до 476 используются операционной системой&lt;br /&gt;
	и программы пользователя не должны изменять содержимого этих ячеек. В&lt;br /&gt;
	противном случае система должна быть перезагружена,или программа дол-&lt;br /&gt;
	жна восстановить первоначальное содержимое этих ячеек.&lt;br /&gt;
	В  таблице перечислены адреса векторов прерывания и типы  прерываний:&lt;br /&gt;
&lt;br /&gt;
	+---------------------------------------------------------------+&lt;br /&gt;
	|Вектор	|	Тип прерывания					|&lt;br /&gt;
	|  4,6	| Прерывание по ошибке обращения к каналу.В процессоре	|&lt;br /&gt;
	|	| BM3 обращение к слову по нечетному адресу		|&lt;br /&gt;
	| 10,12	| Прерывание по резервной команде			|&lt;br /&gt;
	| 30,32	| Прерывание по команде EMT				|&lt;br /&gt;
	| 34,36	| Прерывание по команде TRAP				|&lt;br /&gt;
	| 60,62	| Прерывание от клавиатуры терминала			|&lt;br /&gt;
	| 64,66	| Прерывание от печати терминала			|&lt;br /&gt;
	|100,102| Прерывание от таймера					|&lt;br /&gt;
	|134,136| Прерывание от платы CDR				|&lt;br /&gt;
	|200,202| Прерывание от принтера				|&lt;br /&gt;
	|220,222| Прерывание от дисков на базе СМ-5400			|&lt;br /&gt;
	|224,226| Прерывание от магнитной ленты на базе ИЗОТ  5003	|&lt;br /&gt;
	|250,252| Прерывание от Диспетчепра памяти			|&lt;br /&gt;
	|254,256| Прерывание от дисков DP (29 Мбайт)			|&lt;br /&gt;
	|264,266| Прерывание от гибких дисков				|&lt;br /&gt;
	| 70,72 | ФС							|&lt;br /&gt;
	| 74,76 | ПЛ							|&lt;br /&gt;
	+---------------------------------------------------------------+&lt;br /&gt;
		Перезапуск монитора осуществляется с 0-го адреса.�&lt;br /&gt;
&lt;br /&gt;
				 	- 13 -&lt;br /&gt;
&lt;br /&gt;
			3.1.2. Область связей системы.&lt;br /&gt;
&lt;br /&gt;
		Для хранения информации о выполняющейся программе,а также ин-&lt;br /&gt;
	формации,используемой только монитором,система использует байты 40-57&lt;br /&gt;
      &lt;br /&gt;
 		SET USR NOSWAP			  SET USR SWAP&lt;br /&gt;
                --------------			----------------- &lt;br /&gt;
 		  KMON				   KMON          &lt;br /&gt;
	        --------------			----------------- &lt;br /&gt;
 		  RMON				   RMON&lt;br /&gt;
	@#54-&amp;gt;  --------------		@#54-&amp;gt;	-----------------&lt;br /&gt;
		  драйверы			   драйверы&lt;br /&gt;
		--------------			-----------------&lt;br /&gt;
		   USR&lt;br /&gt;
   266(@#54)-&amp;gt;	--------------&lt;br /&gt;
		..............&lt;br /&gt;
	1000	--------------		1000-&amp;gt;	-----------------&lt;br /&gt;
		 векторы,                    &lt;br /&gt;
   		стек и т.п.                &lt;br /&gt;
	0	--------------		  0	-----------------&lt;br /&gt;
&lt;br /&gt;
	Системная область связи:&lt;br /&gt;
&lt;br /&gt;
	 Байт		Назначение и использование  &lt;br /&gt;
&lt;br /&gt;
	 40,41	Пусковой адрес программы. При создании файлов в форматах .SAV&lt;br /&gt;
		и .REL, Редактор связей записывает в это слово пусковой адрес&lt;br /&gt;
		программы.&lt;br /&gt;
&lt;br /&gt;
	 42,43	Первоначальный адрес стека. По умолчанию равен 1000&lt;br /&gt;
&lt;br /&gt;
	 44,45	Слово состояния задания. Одни разряды устанавливаются монито-&lt;br /&gt;
		ром, другие  могут  устанавливаться или очищаться  программой&lt;br /&gt;
		пользователя.&lt;br /&gt;
&lt;br /&gt;
	 46,47	Адрес загрузки USR. Это слово может содержать любой действите&lt;br /&gt;
		льный адрес программы пользователя. Если 0, то USR загружает-&lt;br /&gt;
		ся по адресу,записанному в ячейке фиксированного смещения 266&lt;br /&gt;
		RMON�&lt;br /&gt;
&lt;br /&gt;
					- 14 -&lt;br /&gt;
&lt;br /&gt;
	 50,51	Адрес верхней границы памяти для программы.В этом слове мони-&lt;br /&gt;
		тор содержит наивысший адрес,который может использовать прог-&lt;br /&gt;
		рамма пользователя. Адрес верхней границы может модифицирова-&lt;br /&gt;
		ться с помощью запроса .SETTOP&lt;br /&gt;
&lt;br /&gt;
	 52	Код ошибки EMT. Eсли при выполнении программного запроса про-&lt;br /&gt;
		исходит ошибка,  то  устанавливается С - разряд и код  ошибки&lt;br /&gt;
		записывается в байт 52&lt;br /&gt;
&lt;br /&gt;
	 53	Код  ошибки  программы пользователя USERRB.  Используется при&lt;br /&gt;
		работе с косвенными файлами. Если в процессе выполнения прог-&lt;br /&gt;
		рамма  пользователя обнаружит условия ошибки, она может сооб-&lt;br /&gt;
		щить об этом, используя байт 53.  KMON проверяет этот байт по&lt;br /&gt;
		окончании  работы  программы. При возникновении ошибки,  KMON&lt;br /&gt;
		может аннулировать использующийся косвенный файл. Это предот-&lt;br /&gt;
		вращает от  получения неправильных результатов, которые могут&lt;br /&gt;
		возникнуть,если выполнение команд косвенного файла зависит от&lt;br /&gt;
		успешного завершения предыдущих команд. Программа может прек-&lt;br /&gt;
		ратить свою работу в одном из следующих состояний:&lt;br /&gt;
			- нормально ;&lt;br /&gt;
			- предупреждение ;&lt;br /&gt;
			- ошибка ;&lt;br /&gt;
			- фатальная ошибка .&lt;br /&gt;
		Состояние программы считается &amp;quot;нормально&amp;quot;, если при ее выпол-&lt;br /&gt;
		нении не возникает ошибок. Состояние &amp;quot;предупреждение&amp;quot; указыва&lt;br /&gt;
		ет на то,что имело место предупреждающее сообщение и выполне-&lt;br /&gt;
		ние программы завершилось до конца. Состояние &amp;quot;ошибка&amp;quot; указы-&lt;br /&gt;
		вает на то, что  произошла ошибка  и  выполнение программы не&lt;br /&gt;
		завершилось.Такое состояние используется,если программа созда&lt;br /&gt;
		ет  выходной  файл, содержащий  ошибки. Состояние  &amp;quot;фатальная&lt;br /&gt;
		ошибка&amp;quot; указывает на то, что  программа  не  создала выходные&lt;br /&gt;
		данные и все команды или операции, зависящие от данных, будут&lt;br /&gt;
		выполнены неправильно.Такая ошибка может возникнуть в случае,&lt;br /&gt;
		если для завершения выполнения программы недостаточно памяти.�&lt;br /&gt;
&lt;br /&gt;
					- 15 -&lt;br /&gt;
&lt;br /&gt;
	54,55	Начальный адрес Резидентного монитора.Это слово не должно из-&lt;br /&gt;
		меняться пользователем.&lt;br /&gt;
							&lt;br /&gt;
		Разряд		Назначение	@#44&lt;br /&gt;
		-------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
		15	Разряд свопинга USR (только в режиме SJ). Moнитор ус-&lt;br /&gt;
			танавливает этот разряд,если программа не требует сво&lt;br /&gt;
			пинга USR&lt;br /&gt;
&lt;br /&gt;
	TT$LC	14*	Разряд нижнего регистра. Когда  разряд установлен, то&lt;br /&gt;
			запрещается автоматическое преобразование кодов  сим-&lt;br /&gt;
			волов нижнего регистра в коды верхнего регистра&lt;br /&gt;
&lt;br /&gt;
		13*	Разряд перезапуска. Если разряд установлен, программа&lt;br /&gt;
			может быть перезапущена по команде REENTER&lt;br /&gt;
&lt;br /&gt;
	TT$SPC	12*	Разряд специального режима работы с  терминалом. Если&lt;br /&gt;
			этот разряд установлен,он указывает на то,что програм&lt;br /&gt;
			ма находится в специальном клавиатурном режиме&lt;br /&gt;
&lt;br /&gt;
		11*	Разряд передачи строки KMON. Если разряд установлен и&lt;br /&gt;
			выполнение  программы  пользователя заканчивается  по&lt;br /&gt;
			.EXIT , то KMON осуществляет выборку команды из ячеек&lt;br /&gt;
			500 - 776&lt;br /&gt;
&lt;br /&gt;
		10*	Разряд виртуального отображения ( только в режиме XM)&lt;br /&gt;
&lt;br /&gt;
		 9	Оверлейный разряд. Устанавливается Редактором связей,&lt;br /&gt;
			если программа имеет оверлейную структуру&lt;br /&gt;
&lt;br /&gt;
		 8	Разряд CHAIN.Этот разряд устанавливатся в том случае,&lt;br /&gt;
			если программа была загружена по запросу CHAIN&lt;br /&gt;
&lt;br /&gt;
		 7*	Разряд останова по ошибке (только в режиме SJ).  Если&lt;br /&gt;
			установлен,то в случае ошибки в операции ввода-вывода&lt;br /&gt;
			произойдет останов системы&lt;br /&gt;
&lt;br /&gt;
		 6*	Разряд запрещения состояния ожидания терминала.Исполь&lt;br /&gt;
			зуется в режиме FB&lt;br /&gt;
&lt;br /&gt;
		5-3	Резервируются для системных целей.&lt;br /&gt;
&lt;br /&gt;
		2-0	Резервные для системы.&lt;br /&gt;
	Примечание: Разряды, отмеченные в таблице звездочкой, устанавливаются&lt;br /&gt;
	программой пользователя.�&lt;br /&gt;
&lt;br /&gt;
					- 16 -&lt;br /&gt;
&lt;br /&gt;
		Разряд		Значение	@#53&lt;br /&gt;
		-------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
		7-4	Резервные.  Не должны использоваться программой поль-&lt;br /&gt;
			зователя.&lt;br /&gt;
		 3	Фатальная ошибка&lt;br /&gt;
		 2	Ошибка&lt;br /&gt;
		 1	Предупреждение&lt;br /&gt;
		 0	Нормально&lt;br /&gt;
&lt;br /&gt;
			3.2. Алгоритм свопинга.&lt;br /&gt;
&lt;br /&gt;
		Программные запросы в зависимости от того, требуют  они нали-&lt;br /&gt;
	чия USR в памяти или нет, делятся на 2 категории. Запрос,который тре-&lt;br /&gt;
	бует наличия USR в памяти, может  также потребовать, чтобы часть про-&lt;br /&gt;
	граммы  пользователя временно удалялась из памяти  и  запоминалась на&lt;br /&gt;
	диске. В этом  случае USR загружается в освободившуюся область. В ре-&lt;br /&gt;
	жиме XM не требуется свопинг  USR, т.к. USR является резидентной. При&lt;br /&gt;
	работе с RT11 необходимо помнить следующее:&lt;br /&gt;
		1) если в фоновой  программе запрос .SETTOP  запрашивает вер-&lt;br /&gt;
	хний адрес программе  выше начального адреса USR, то при  обращении к&lt;br /&gt;
	USR требуется свопинг;&lt;br /&gt;
		2) если  пользователь меняет содержимое @#46, то RT11 исполь-&lt;br /&gt;
	зует содержимое этого  слова в процессе свопинга для USR; если содер-&lt;br /&gt;
	жимое  ячейки  46 нулевое,  USR загружается  с адреса  установленного&lt;br /&gt;
	системой.&lt;br /&gt;
		Если  свопинг  не нужен,  содержимое  ячейки 46 игнорируется.&lt;br /&gt;
	Основное задание всегда должно иметь адрес в ячейке 46, независимо от&lt;br /&gt;
	того, осуществляется или нет свопинг USR. Указывая адрес в ячейке 46,&lt;br /&gt;
	нужно соблюдать осторожность: поскольку монитор SJ не проверяет допу-&lt;br /&gt;
	стимость  адреса для  свопинга  USR,  то при свопинге может произойти&lt;br /&gt;
	наложение областей памяти, используемых для свопинга  USR и RMON. Это&lt;br /&gt;
	приводит к нарушению нормального функционирования системы.�&lt;br /&gt;
&lt;br /&gt;
					- 17 -&lt;br /&gt;
&lt;br /&gt;
		4. Не допускается  определять адрес для свопинга USR в преде-&lt;br /&gt;
	лах следующих областей: стека  программы, блока аргументов для вызова&lt;br /&gt;
	USR, буферов ввода-вывода, драйверов устройств или подпрограмм завер-&lt;br /&gt;
	шения,использующихся при вызове USR.&lt;br /&gt;
&lt;br /&gt;
			3.3. Ячейки фиксированного смещения&lt;br /&gt;
		Существует ряд  ячеек, которые имееют фиксированное положение&lt;br /&gt;
	относительно начала Резидентного монитора. Информация в  этих ячейках&lt;br /&gt;
	может быть использована программами пользователя:&lt;br /&gt;
&lt;br /&gt;
	Смещение			Содержимое&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	 266		Адрес загрузки  USR ( если ячейка 46  содержит 0 )&lt;br /&gt;
&lt;br /&gt;
	 270		Адрес подпрограммы монитора  управления очередью вво-&lt;br /&gt;
			да-вывода. Обращение к подпрограмме осуществляется из&lt;br /&gt;
			драйверов устройств по окончании операции ввода-выво-&lt;br /&gt;
			да&lt;br /&gt;
&lt;br /&gt;
	 272		SPUSR::&lt;br /&gt;
&lt;br /&gt;
	 274		Номер привода системного устройства (устройства,с ко-&lt;br /&gt;
			торого последний раз была загружена система)&lt;br /&gt;
&lt;br /&gt;
	 276		Номер версии монитора&lt;br /&gt;
&lt;br /&gt;
	 300		Слово конфигурации системы. Разряды слова несут инфо-&lt;br /&gt;
			рмацию об  аппаратной конфигурации системы и ее прог-&lt;br /&gt;
			раммных компонентах.&lt;br /&gt;
&lt;br /&gt;
	 302		SCROLL::&lt;br /&gt;
&lt;br /&gt;
	 304		Адрес регистра состояния клавиатуры терминала&lt;br /&gt;
&lt;br /&gt;
	 306		Адрес регистра буфера клавиатуры терминала&lt;br /&gt;
&lt;br /&gt;
	 310		Адрес регистра состояния печати терминала&lt;br /&gt;
&lt;br /&gt;
	 312		Адрес регистра буфера печати терминала�&lt;br /&gt;
&lt;br /&gt;
					- 18 -&lt;br /&gt;
&lt;br /&gt;
	 314		Максимально  допустимая  длина файла (предоставляемая&lt;br /&gt;
			системой,если соответствующий аргумент запроса .ENTER&lt;br /&gt;
			равен нулю). Она  может  быть установлена  программой&lt;br /&gt;
			пользователя или с помощью программы  PATCH. Значение&lt;br /&gt;
			по умолчанию равно 177777&lt;br /&gt;
&lt;br /&gt;
	 316		E16LST::.WORD LST16-$RMON&lt;br /&gt;
&lt;br /&gt;
	 324		Адрес подпрограммы обработки запроса .SYNCH. Подпрог-&lt;br /&gt;
			раммы пользователя обработки прерываний могут исполь-&lt;br /&gt;
			зовать его для синхронизации с заданиями, которые они&lt;br /&gt;
			обслуживают&lt;br /&gt;
&lt;br /&gt;
	 326-350	карта загрузки&lt;br /&gt;
&lt;br /&gt;
	 352		USRLOC::&lt;br /&gt;
&lt;br /&gt;
	 354		GTVECT:: вектор графтерминала&lt;br /&gt;
&lt;br /&gt;
	 356		счетчик ошибок&lt;br /&gt;
&lt;br /&gt;
	 360		Адрес подпрограммы записи в слово состояния процессо-&lt;br /&gt;
			ра (PSW).  Вызов этой  подпрограммы осуществляется по&lt;br /&gt;
			запросу .MTPS&lt;br /&gt;
&lt;br /&gt;
	 362		Адрес подпрограммв выборки из PSW. Этот адрес исполь-&lt;br /&gt;
			зуется запросом .MFPS&lt;br /&gt;
&lt;br /&gt;
	 364		SYINDX::&lt;br /&gt;
&lt;br /&gt;
	 366		Слово состояния косвенного файла&lt;br /&gt;
&lt;br /&gt;
	 370		Слово расширенной конфигурации.Это слово содержит ин-&lt;br /&gt;
			формацию о дополнительном оборудовании&lt;br /&gt;
&lt;br /&gt;
	 372		Слово параметров генерации. Содержит информацию о до-&lt;br /&gt;
			полнительных возможностях системы&lt;br /&gt;
&lt;br /&gt;
	 374		Размер USR в байтах�&lt;br /&gt;
&lt;br /&gt;
					- 19 -&lt;br /&gt;
&lt;br /&gt;
	 377		Глубина вложения косвенных файлов (значение по умол-&lt;br /&gt;
			чанию равно 3). Значение  может  быть модифицировано&lt;br /&gt;
			для изменения глубины вложения косвенных файлов&lt;br /&gt;
&lt;br /&gt;
	 376		Байт уровня ошибки&lt;br /&gt;
&lt;br /&gt;
	 400		.WORD EMTDON-$RMON&lt;br /&gt;
&lt;br /&gt;
	 402		.WORD $FORK-$RMON&lt;br /&gt;
&lt;br /&gt;
	 404		.WORD $PNAME-$RMON&lt;br /&gt;
&lt;br /&gt;
	 406,410,412	имя монитора в RAD50&lt;br /&gt;
&lt;br /&gt;
	 414&lt;br /&gt;
&lt;br /&gt;
	 416&lt;br /&gt;
&lt;br /&gt;
	 417&lt;br /&gt;
&lt;br /&gt;
	 420		размер ОЗУ&lt;br /&gt;
&lt;br /&gt;
	 424&lt;br /&gt;
&lt;br /&gt;
	Ячейки 304-313 содержат адреса регистров терминала и не используются&lt;br /&gt;
	в мультитерминальном режиме.�&lt;br /&gt;
&lt;br /&gt;
					- 20 -&lt;br /&gt;
&lt;br /&gt;
	Слово конфигурации системы:&lt;br /&gt;
&lt;br /&gt;
	 Разряд		Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	 0		0 - монитор SJ; 1 - монитор FB, если разряд 12 не ус-&lt;br /&gt;
			тановлен; если установлен - монитор XM&lt;br /&gt;
&lt;br /&gt;
	 3		1 - фоновым заданием управляет BATCH&lt;br /&gt;
&lt;br /&gt;
	 5		1 - таймер с частотой 50 Гц&lt;br /&gt;
&lt;br /&gt;
	 6		1 - Процессор плавающей запятой ЭВМ &amp;quot;Электроника-79&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	 7		0 - основного задания в памяти нет&lt;br /&gt;
			1 - основное задание в памяти&lt;br /&gt;
&lt;br /&gt;
	 9		1 - USR является резидентной по SET USR NOSWAP&lt;br /&gt;
&lt;br /&gt;
	11		1 - процессор &amp;quot;Электроника 60&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	12		1 - система работает под управлением монитора XM&lt;br /&gt;
&lt;br /&gt;
	13,14		    используются системой&lt;br /&gt;
&lt;br /&gt;
	15		1 - имеется таймер&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	Слово расширенной конфигурации:&lt;br /&gt;
&lt;br /&gt;
	 Разряд		Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	 0		1 - сверхбыстрая память (КЭШ - память)&lt;br /&gt;
&lt;br /&gt;
	 1		1 - паритетность&lt;br /&gt;
&lt;br /&gt;
	 8		1 - блок расширенной арифметики ЭВМ &amp;quot;Электроника-60М&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	14		1 - процессор ЭВМ &amp;quot;Электроника 79&amp;quot;�&lt;br /&gt;
&lt;br /&gt;
					- 21 -			&lt;br /&gt;
	&lt;br /&gt;
	Слово параметров генерации:&lt;br /&gt;
&lt;br /&gt;
	 Разряд		Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	 0		1 - регистрация ошибок&lt;br /&gt;
&lt;br /&gt;
	 1		1 - обслуживание расширенной памяти&lt;br /&gt;
&lt;br /&gt;
	 2		1 - обслуживание ожидания готовности устройств&lt;br /&gt;
&lt;br /&gt;
	 9		1 - обслуживание паритетности&lt;br /&gt;
&lt;br /&gt;
	10		1 - обслуживание запросов  .MRKT и .CMKT  монитора SJ&lt;br /&gt;
&lt;br /&gt;
	13		1 - мультитерминальное обслуживание&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
			3.4. Подпрограммы завершения.&lt;br /&gt;
&lt;br /&gt;
		Подпрограммы завершения создаются пользователем и  запускают-&lt;br /&gt;
	ся сразу же  после окончания  некоторых внешних  операций. Управление &lt;br /&gt;
	подпрограмме завершения передается после операции ввода-вывода данных&lt;br /&gt;
	или через определенный интервал  времени. На входе в подпрограмму за-&lt;br /&gt;
	вершения R0 содержит слово состояния канала для операции, а R1 -вось-&lt;br /&gt;
	меричный номер канала для операции. В режиме SJ подпрограммы заверше-&lt;br /&gt;
	ния являются асинхронными и могут прерывать друг друга. В  режимах FB&lt;br /&gt;
	и XM подпрограммы  завершения не прерывают друг друга, а организуются&lt;br /&gt;
	в очередь и ждут окончания выполнения соответствующего задания.&lt;br /&gt;
		При создании подпрограмм завершения необходимо соблюдать сле-&lt;br /&gt;
	дующие правила:&lt;br /&gt;
		1) в подпрограммах  завершения  нельзя  использовать запросы,&lt;br /&gt;
	требующие USR ;&lt;br /&gt;
		2) подпрограммы  завершения  не  должны находиться  в области&lt;br /&gt;
	памяти, которая используется для USR ;&lt;br /&gt;
		3) выход из  подпрограммы завершения - по RTS PC ;&lt;br /&gt;
		4) если подпрограмма  завершения использует регистры кроме R0&lt;br /&gt;
	и R1, она должна запомнить их содержимое после входа в подпрограмму и&lt;br /&gt;
	восстановить их перед выходом.�&lt;br /&gt;
&lt;br /&gt;
					- 22 -&lt;br /&gt;
&lt;br /&gt;
			4.ОБРАЩЕНИЕ К МОНИТОРУ.ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ.&lt;br /&gt;
&lt;br /&gt;
		Обращение  к монитору  RT11  осуществляется по командам KMON,&lt;br /&gt;
	вводимых с системного терминала, и через программные запросы.В данном&lt;br /&gt;
	разделе описан формат и назначение всех программных запросов операци-&lt;br /&gt;
	онной системы. Обслуживание  программных запросов, помеченных в доку-&lt;br /&gt;
	менте, как вариант SJ (FB,XM), не реализовано в данной  версии  RT11.&lt;br /&gt;
&lt;br /&gt;
			4.1. Программные запросы.&lt;br /&gt;
&lt;br /&gt;
		Программные запросы  представляют собой ассемблерные макроко-&lt;br /&gt;
	манды, которые обрабатываются монитором во время выполнения программы&lt;br /&gt;
	Основа программного запроса - команда EMT. Она используется для пере-&lt;br /&gt;
	дачи информации монитору на выполнение определенной операции.Все про-&lt;br /&gt;
	граммные запросы начинаются символом &amp;quot;.&amp;quot;&lt;br /&gt;
		Существуют два формата программных запросов:&lt;br /&gt;
		1.  .PRGREQ  area, arg1,...,argn&lt;br /&gt;
		2.  .PRGREQ  arg1, arg2,...,argn&lt;br /&gt;
		В первом  формате аргумент area является указателем блока ар-&lt;br /&gt;
	гументов  arg1,...,argn. Программные запросы такого  формата вызывают&lt;br /&gt;
	генерацию команды EMT 375. Если аргумент  area в макрокоманде не ука-&lt;br /&gt;
	зан, в качества указателя блока аргументов  используется  регистр R0.&lt;br /&gt;
		Программные  запросы второго  формата  вызывают генерацию ко-&lt;br /&gt;
	манды EMT 374 или одной из команд EMT 340-357.&lt;br /&gt;
		Все аргументы программных запросов  служат в качестве  источ-&lt;br /&gt;
	ника команды MOV.&lt;br /&gt;
		Например,&lt;br /&gt;
				.PRGREQ&lt;br /&gt;
	транслируется,как&lt;br /&gt;
				MOV CHAR,R0&lt;br /&gt;
				EMT 374&lt;br /&gt;
&lt;br /&gt;
		Пример записи программного запроса:&lt;br /&gt;
&lt;br /&gt;
			.GTLIN	#LINE,#PROMPT&lt;br /&gt;
			  .&lt;br /&gt;
			  .&lt;br /&gt;
			  .&lt;br /&gt;
		PROMPT:	.ASCIZ	/Введите строку&amp;gt;/&amp;lt;200&amp;gt;&lt;br /&gt;
		.EVEN&lt;br /&gt;
		LINE:	.BLKB	81.&lt;br /&gt;
		.EVEN�&lt;br /&gt;
&lt;br /&gt;
					- 23 -&lt;br /&gt;
&lt;br /&gt;
		При выполнении запроса содержимое регистров, кроме R0, не из-&lt;br /&gt;
	меняется и указатель стека, за исключением запросов CSI, не переуста-&lt;br /&gt;
	навливается.&lt;br /&gt;
&lt;br /&gt;
			4.1.1. Аргументы программных запросов.&lt;br /&gt;
&lt;br /&gt;
		Аргументы программных  запросов являются входными данными для&lt;br /&gt;
	монитора RT11.&lt;br /&gt;
&lt;br /&gt;
			4.1.1.1. Номер канала.&lt;br /&gt;
&lt;br /&gt;
		Номер канала (chan) представляет собой логический идентифика-&lt;br /&gt;
	тор файла и  используется  монитором  при выполнении операций.  Номер&lt;br /&gt;
	канала может быть от 0 до 255. (0-377).&lt;br /&gt;
		Каждый открытый файл монитор логически связывает с определен-&lt;br /&gt;
	ным каналом.Для обращения к файлу достаточно указать номер его канала&lt;br /&gt;
&lt;br /&gt;
			4.1.1.2. Блок устройства.&lt;br /&gt;
&lt;br /&gt;
		Блок устройства  (dblk)  представляет собой блок информации в&lt;br /&gt;
	кодах Radix-50, который содержит имя устройства, имя и тип файла.Дли-&lt;br /&gt;
	на блока - 4 слова.&lt;br /&gt;
		Пример:&lt;br /&gt;
			.RAD50 /MY0/&lt;br /&gt;
			.RAD50 /FIL/&lt;br /&gt;
			.RAD50 /E  /&lt;br /&gt;
			.RAD50 /TYP/&lt;br /&gt;
&lt;br /&gt;
		Имя устройства,имя и  тип файла должны быть левоопределенными&lt;br /&gt;
	в каждом поле операнда (т.е. непосредственно следовать за ограничите-&lt;br /&gt;
	лем операнда директивы .RAD50 ).&lt;br /&gt;
		Допускается  запись  блока  устройства  .RAD50  /DK FILE TYP/&lt;br /&gt;
	При этом  каждое  поле операнда  отделяется  друг от  друга пробелом.�&lt;br /&gt;
&lt;br /&gt;
					- 24 -&lt;br /&gt;
&lt;br /&gt;
	Аргументы программных запросов:&lt;br /&gt;
&lt;br /&gt;
	Обозначение	Аргумент&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	 addr		Адрес; значение зависит от используемого запроса&lt;br /&gt;
	 area		Адрес блока аргументов EMT&lt;br /&gt;
	 blk		Номер блока относительно начала файла,с которого&lt;br /&gt;
			должна выполняться операция ввода-вывода&lt;br /&gt;
	 buf		Адрес буфера памяти&lt;br /&gt;
	 cblk		Адрес блока из пяти слов, в котором хранится информа-&lt;br /&gt;
			ция о состоянии канала&lt;br /&gt;
	 chan		Номер канала&lt;br /&gt;
	 crtn		Точка входа подпрограммы завершения&lt;br /&gt;
	 dblk		Адрес блока устройства&lt;br /&gt;
	 num		Число, зависит от используемого запроса&lt;br /&gt;
	 wcnt		Счетчик слов&lt;br /&gt;
	 seqn		Последовательный номер файла для операций с магнитной&lt;br /&gt;
			лентой&lt;br /&gt;
&lt;br /&gt;
			4.1.1.3. Блок аргументов EMT.&lt;br /&gt;
&lt;br /&gt;
		Четный байт  1-го слова содержит  номер канала,определенный в&lt;br /&gt;
	макрокоманде. Если номер канала не требуется, то четный байт содержит&lt;br /&gt;
	0.Нечетный байт 1-го слова блока содержит функциональный код макроко-&lt;br /&gt;
	манды. Остальные слова блока содержат аргументы,определенные в макро-&lt;br /&gt;
	команде:&lt;br /&gt;
&lt;br /&gt;
			-------------------------&lt;br /&gt;
		area:    Функциональный |  Номер&lt;br /&gt;
			 код		|  канала&lt;br /&gt;
			-------------------------&lt;br /&gt;
			      1-й аргумент&lt;br /&gt;
			-------------------------&lt;br /&gt;
			      2-й аргумент&lt;br /&gt;
			-------------------------&lt;br /&gt;
				.&lt;br /&gt;
				.&lt;br /&gt;
				.&lt;br /&gt;
			-------------------------&lt;br /&gt;
			     n-ый аргумент&lt;br /&gt;
			-------------------------�&lt;br /&gt;
&lt;br /&gt;
					- 25 -&lt;br /&gt;
	&lt;br /&gt;
			4.1.2. Сообщения об ошибках.&lt;br /&gt;
&lt;br /&gt;
		При обработке запросов, монитор может обнаружить ошибки.&lt;br /&gt;
	Программные запросы информируют об этом пользователя, используя бит C&lt;br /&gt;
	байт ошибок (@#52) и сообщения монитора. Бит C очищается после выпол-&lt;br /&gt;
	нения запроса и устанавливается при ошибке. Для обнаружения ошибки за&lt;br /&gt;
	запросом должна следовать команда BCS или BCC. Когда установлен бит C&lt;br /&gt;
	байт ошибок содержит код ошибки. В Приложении перечислены коды ошибок&lt;br /&gt;
	программных запросов и причины,вызывающие эти ошибки.&lt;br /&gt;
&lt;br /&gt;
			4.1.3. Типы программных запросов.&lt;br /&gt;
&lt;br /&gt;
		Существуют три типа программных запросов:&lt;br /&gt;
		&amp;gt; запросы для операций с файлами;&lt;br /&gt;
		&amp;gt; запросы для организации ввода-вывода данных;&lt;br /&gt;
		&amp;gt; запросы общего назначения.&lt;br /&gt;
		Запросы использующиеся только в режиме FB помечены звездочкой&lt;br /&gt;
	только в XM помечены двумя звездочками - игнорируются в режиме SJ.  В&lt;br /&gt;
	программе пользователя достаточно указать первые шесть символов	имени&lt;br /&gt;
	программного запроса.&lt;br /&gt;
					&lt;br /&gt;
  	Программный  Код  Функ-	Назначение&lt;br /&gt;
	 запрос	     EMT  цион.&lt;br /&gt;
			   код&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	.CHCOPY	*    375   13	Открывает канал для ввода и логически связыва&lt;br /&gt;
				ет его с открытым каналом другого задания&lt;br /&gt;
&lt;br /&gt;
	.CLOSE	     374    6	Закрывает канал и освобождает его для исполь-&lt;br /&gt;
				зования в других операциях&lt;br /&gt;
&lt;br /&gt;
	.DELETE	     375    0	Стирает  файл с  тома  указанного  устройства&lt;br /&gt;
&lt;br /&gt;
	.ENTER	     375    2	Резервирует обдасть на томе указанного устрой&lt;br /&gt;
				ства для создания нового файла&lt;br /&gt;
&lt;br /&gt;
	.LOOKUP	     375    1	Открывает существующий файл  для ввода  и/или&lt;br /&gt;
				вывода на указанном канале�&lt;br /&gt;
&lt;br /&gt;
					- 26 -&lt;br /&gt;
&lt;br /&gt;
	.PURGE	     374    3	Освобождает канал&lt;br /&gt;
&lt;br /&gt;
	.RENAME	     375    4	Переименовывает файл.  Недопустим в операциях&lt;br /&gt;
				с магнитной лентой&lt;br /&gt;
&lt;br /&gt;
	.REOPEN	     375    6	Обеспечивает восстановление параметров, кото-&lt;br /&gt;
				рые  запоминались  по  запросу  .SAVESTATUS и&lt;br /&gt;
				повторно  открывает  канал  для  ввода-вывода&lt;br /&gt;
&lt;br /&gt;
	.SAVESTATUS  375    5	Запоминает параметры состояния открытого фай-&lt;br /&gt;
				ла в памяти и освобождает канал&lt;br /&gt;
&lt;br /&gt;
	.READ	     375   10	Передает данные по  указанному каналу в буфер&lt;br /&gt;
				памяти и возвращает управление программе поль&lt;br /&gt;
				зователя, как  только запрос на чтение данных&lt;br /&gt;
				будет поставлен в очередь ввода-вывода&lt;br /&gt;
&lt;br /&gt;
	.READC	     375   10	Передает данные по  указанному каналу в буфер&lt;br /&gt;
				памяти и возвращает управление программе поль&lt;br /&gt;
				зователя, как  только запрос на чтение данных&lt;br /&gt;
				будет поставлен в очередь ввода-вывода. После&lt;br /&gt;
				окончания чтения, управление передается подп-&lt;br /&gt;
				рограмме завершения&lt;br /&gt;
&lt;br /&gt;
	.READW	     375   10	Передает данные по указанному уканалу в буфер&lt;br /&gt;
				памяти и возвращает управление программе поль&lt;br /&gt;
				зователя после окончания операции&lt;br /&gt;
&lt;br /&gt;
	.WRITE	     375   11	Передает  данные по указанному каналу на уст-&lt;br /&gt;
				ройство и  возвращает   управление  программе&lt;br /&gt;
				пользователя, как  только  запрос на передачу&lt;br /&gt;
				данных  будет поставлен в очередь вода-вывода&lt;br /&gt;
&lt;br /&gt;
	.WRITC	     375   11	Передает данные  по указанному каналу на уст-&lt;br /&gt;
				ройство  и  возвращает  управление  программе&lt;br /&gt;
				пользователя, как  только  запрос на передачу&lt;br /&gt;
				данных будет поставлен в очередь ввода-вывода&lt;br /&gt;
				После окончания записи, управление передается&lt;br /&gt;
				подпрограмме завершения�&lt;br /&gt;
&lt;br /&gt;
					- 27 -&lt;br /&gt;
&lt;br /&gt;
	.WRITW	     375   11	Передает данные по  указанному каналу на уст-&lt;br /&gt;
				ройство  и  возвращает  управление  программе&lt;br /&gt;
				пользователя после  окончания передачи данных&lt;br /&gt;
&lt;br /&gt;
	.RCVD	*		Принимает сообщения или  данные, передаваемые&lt;br /&gt;
	.RCVDC	*    375   26	другой программой. Аналогичны запросам&lt;br /&gt;
	.RCVDW	*		.READ , .READC , .READW&lt;br /&gt;
&lt;br /&gt;
	.SDAT	*    375   25	Передает сообщения или данные другой програм-&lt;br /&gt;
	.SDATC	*		ме. Аналогичны запросам&lt;br /&gt;
	.SDATW	*		.WRITE , .WRITC , .WRITW&lt;br /&gt;
&lt;br /&gt;
	.TTYIN	     340   -	Передает один символ из буфера терминала в R0&lt;br /&gt;
	.TTINR&lt;br /&gt;
&lt;br /&gt;
	.TTYOUT	     341   -	Передает один символ из R0  в буфер терминала&lt;br /&gt;
	.TTOUTR&lt;br /&gt;
&lt;br /&gt;
	.PRINT	     351   -	Выдает   на  печать  строку   символов  КОИ-7&lt;br /&gt;
&lt;br /&gt;
	.MTIN	*    374   37	В мультитерминальном режиме аналогично .TTYIN&lt;br /&gt;
&lt;br /&gt;
	.MTOUT	*    374   37	В мультитерминальном режиме аналогично .TTYOU&lt;br /&gt;
&lt;br /&gt;
	.MTPRNT	*    374   37	В мультитерминальном режиме аналогично .PRINT&lt;br /&gt;
&lt;br /&gt;
	.SPFUN	*    375   32	Выполняет специальные  функции  для магнитных&lt;br /&gt;
				лент и гибких дисков&lt;br /&gt;
&lt;br /&gt;
	.CDFN	     375   15	Определяет дополнительные каналы для операций&lt;br /&gt;
				ввода-вывода&lt;br /&gt;
&lt;br /&gt;
	.CHAIN	     374   10	Передает  управление другой фоновой программе&lt;br /&gt;
&lt;br /&gt;
	.CRAW	**   374   36	Создает окно виртуального адреса&lt;br /&gt;
&lt;br /&gt;
	.CRRG	**   374   36	Создает динамическую область физическ. памяти&lt;br /&gt;
&lt;br /&gt;
	.CMKT	     375   23	Аннулирует один или несколько запросов  .MRKT�&lt;br /&gt;
&lt;br /&gt;
					- 28 -&lt;br /&gt;
&lt;br /&gt;
	.CNTXSW	*    375   33	Определяет ячейки памяти для операции переклю&lt;br /&gt;
				чения контекста&lt;br /&gt;
&lt;br /&gt;
	.CSIGEN	     344   -	Вызывает работу Интерпретатора командной стро&lt;br /&gt;
				ки в общем режиме&lt;br /&gt;
&lt;br /&gt;
	.CSISPC	     345   -	Вызывает работу Интерпретатора командной стро&lt;br /&gt;
				ки в специальном режиме&lt;br /&gt;
&lt;br /&gt;
	.CSTAT	*    375   27	Позволяет  получить  информацию  о  состоянии&lt;br /&gt;
				канала&lt;br /&gt;
&lt;br /&gt;
	.DATE	     374   12	Пересылает текущую дату в регистр R0&lt;br /&gt;
&lt;br /&gt;
	.DEVICE	*    375   14	Позволяет  запретить прерывание от устройства&lt;br /&gt;
				в режиме FB после  окончания выполнения прог-&lt;br /&gt;
				раммы&lt;br /&gt;
&lt;br /&gt;
	.DSTATUS     342   -	Позволяет  получить  информацию  о  состоянии&lt;br /&gt;
				устройства&lt;br /&gt;
&lt;br /&gt;
	.ELAW	**   374   36	Аннулирует окно виртуального адреса&lt;br /&gt;
&lt;br /&gt;
	.ELRG	**   374   36	Аннулирует динамическую область физической па&lt;br /&gt;
				мяти и делает ее  свободной для использования&lt;br /&gt;
				другим заданием&lt;br /&gt;
&lt;br /&gt;
	.EXIT	     350   -	Завершает выполнение программы пользователя и&lt;br /&gt;
				передает  управление  Клавиатурному  монитору&lt;br /&gt;
&lt;br /&gt;
	.FETCH	     343   -	Загружает драйвер устройства&lt;br /&gt;
&lt;br /&gt;
	.GMCX	**   374   36	Пересылает  программе  информацию о состоянии&lt;br /&gt;
				окна&lt;br /&gt;
&lt;br /&gt;
	.GTIM	     375   21	Определяет текущее время дня&lt;br /&gt;
&lt;br /&gt;
	.GTJB	     375   20	Определяет параметры выполняемого задания&lt;br /&gt;
&lt;br /&gt;
	.GTLIN	     345   -	Принимает  входную строку с терминала или из&lt;br /&gt;
				косвенного файла�&lt;br /&gt;
&lt;br /&gt;
					- 29 -&lt;br /&gt;
&lt;br /&gt;
	.GVAL	376	34	Пересылает  в  R0 содержимое указанной ячейки&lt;br /&gt;
				монитора&lt;br /&gt;
&lt;br /&gt;
	.HERR	374	5	Отменяет действие запроса .SERR&lt;br /&gt;
&lt;br /&gt;
	.HRESET 357	-	Прекращает все операции ввода-вывода и выпол-&lt;br /&gt;
				няет функции запроса .SRESET&lt;br /&gt;
&lt;br /&gt;
	.INTEN  -	-	Сообщает  монитору о том,что произошло преры-&lt;br /&gt;
				вание от устройства и устанавливает приоритет&lt;br /&gt;
				процессора на соответствующий уровень&lt;br /&gt;
&lt;br /&gt;
	.LOCK	346	-	Делает программу USR  резидентной в памяти до&lt;br /&gt;
				тех  пор, пока  не  будет  выполнен .EXIT или&lt;br /&gt;
				.UNLOCK . Если необходимо,свопирует программу&lt;br /&gt;
				пользователя&lt;br /&gt;
&lt;br /&gt;
	.MAP**	374	36	Отображает предварительно созданное окно вир-&lt;br /&gt;
				туального адреса&lt;br /&gt;
&lt;br /&gt;
	.MFPS	-	-	Выбирает содержимое PSW&lt;br /&gt;
&lt;br /&gt;
	.MRKT	375	22	Планирует запуск  подпрограммы завершения че-&lt;br /&gt;
				рез определенный интервал времени&lt;br /&gt;
&lt;br /&gt;
	.MTATCH* 374	37	Устанавливает  связь между заданием и опреде-&lt;br /&gt;
				ленным терминалом&lt;br /&gt;
&lt;br /&gt;
	.MTDTCH* 374	37	Прерывает  связь указанного терминала с зада-&lt;br /&gt;
				нием и освобождает его для использования дру-&lt;br /&gt;
				гим заданием&lt;br /&gt;
&lt;br /&gt;
	.MTSET*	374	37	Устанавливает  и  модифицирует характеристики&lt;br /&gt;
				терминала  в  мультитерминальном  режиме&lt;br /&gt;
&lt;br /&gt;
	.MTGET*	374	37	Определяет  состояние   указанного  терминала&lt;br /&gt;
&lt;br /&gt;
	.MTPS	-		Устанавливает PSW�&lt;br /&gt;
&lt;br /&gt;
					- 30 -&lt;br /&gt;
&lt;br /&gt;
	.MTRCTO* 374	37	Обеспечивает   вывод  на  указанный  терминал&lt;br /&gt;
&lt;br /&gt;
	.MWAIT*	374	11	Переводит  текущее  задание в состояние  ожи-&lt;br /&gt;
				дания до завершения передачи данных&lt;br /&gt;
&lt;br /&gt;
	.PROTECT* 375	31	Закрепляет  один  из  векторов  (адреса от  0&lt;br /&gt;
				до 476) за данным заданием&lt;br /&gt;
&lt;br /&gt;
	.QSET	353	-	Устанавливает  размер  очереди  ввода -вывода&lt;br /&gt;
				для монитора&lt;br /&gt;
&lt;br /&gt;
	.RCTRLO	355	-	Обеспечивает вывод на терминал&lt;br /&gt;
&lt;br /&gt;
	.RELEAS	343	-	Удаляет драйвер устройства из памяти&lt;br /&gt;
&lt;br /&gt;
	.RSUM*	374	2	Возобновляет выполнение задания, которое было&lt;br /&gt;
				прервано по запросу .SPND&lt;br /&gt;
&lt;br /&gt;
	.SCCA	374	35	Позволяет блокировать выполнение команды СУ/С&lt;br /&gt;
&lt;br /&gt;
	.SERR	374	4	Блокирует  прерывание программы при обнаруже-&lt;br /&gt;
				нии монитором условий ошибок&lt;br /&gt;
&lt;br /&gt;
	.SETTOP	354	-	Определяет  верхнюю границу памяти для выпол-&lt;br /&gt;
				няемого задания&lt;br /&gt;
&lt;br /&gt;
	.SFPA	375	30	Устанавливает  в программе пользователя адрес&lt;br /&gt;
				подпрограммы  обработки  прерывания  от блока &lt;br /&gt;
				плавающей запятой (БПЗ)&lt;br /&gt;
&lt;br /&gt;
	.SPND*	374	1	Приостанавливает выполнение задания &lt;br /&gt;
&lt;br /&gt;
	.SRESET	352	-	Восстанавливает каналы ввода -вывода и удаля-&lt;br /&gt;
				ет драйверы устройств из памяти&lt;br /&gt;
&lt;br /&gt;
	.SYNCH	-	-	Обеспечивает возможность  выполнения програм-&lt;br /&gt;
				мных запросов в подпрограмме обработки преры-&lt;br /&gt;
				вания�&lt;br /&gt;
&lt;br /&gt;
					- 31 -&lt;br /&gt;
&lt;br /&gt;
	.TLOCK	374	7	Определяет, используется  ли USR в данный мо-&lt;br /&gt;
				мент другим заданием. Если USR не использует-&lt;br /&gt;
				ся, то выполняется .LOCK&lt;br /&gt;
&lt;br /&gt;
	.TRPSET	375	3	Устанавливает  обработку  прерываний по 4-ому&lt;br /&gt;
				или 10-ому векторам в программе  пользователя&lt;br /&gt;
&lt;br /&gt;
	.TWAIT*	375	24	Приостанавливает  выполнение  задания на ука-&lt;br /&gt;
				занный интервал времени&lt;br /&gt;
&lt;br /&gt;
	.UNLOCK	347	-	Освобождает  программу USR, если ранее не был&lt;br /&gt;
				выполнен запрос .LOCK и,если необходимо,вновь&lt;br /&gt;
				загружает программу пользователя&lt;br /&gt;
&lt;br /&gt;
	.UNMAP** 374	36	Отменяет действие запроса .MAP&lt;br /&gt;
&lt;br /&gt;
	.UNPROTECT 374	31	Отменяет действие запроса .PROTECT&lt;br /&gt;
&lt;br /&gt;
	.WAIT	374	0	Ожидает завершения операции ввода-вывода на&lt;br /&gt;
				указанном канале&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		Для выполнения некоторых программных запросов необходимо,что-&lt;br /&gt;
	бы программа  монитора USR находилась  в  оперативной памяти.  .CLOSE&lt;br /&gt;
	на устройствах нефайловой структуры (LP: ,TT: ,PC: , и т.д.)  не тре-&lt;br /&gt;
	бует наличия USR в памяти.&lt;br /&gt;
		Программа USR не является реентерабельной; если USR использу-&lt;br /&gt;
	ется одним заданием (в режиме FB), другое задание,требующее USR,будет&lt;br /&gt;
	ждать его освобождения.�&lt;br /&gt;
&lt;br /&gt;
					- 32 -&lt;br /&gt;
&lt;br /&gt;
	Программный			Требование USR                        &lt;br /&gt;
	запрос			--------------------------------------------&lt;br /&gt;
				Режим SJ  Режим FB  Режим XM&lt;br /&gt;
	--------------------------------------------------------------------&lt;br /&gt;
	.CDFN			да*	  нет		нет&lt;br /&gt;
	.CHAIN			нет	  нет		нет		&lt;br /&gt;
	.CHCOPY			-	  нет		нет&lt;br /&gt;
	.CLOSE   1)		да	  да		да&lt;br /&gt;
	.CMKT			-	  нет		нет&lt;br /&gt;
	.CNTXSW			-	  нет		нет&lt;br /&gt;
	.CSIGEN			да	  да		да&lt;br /&gt;
	.CSISPC			да	  да		да&lt;br /&gt;
	.CSTAT			-	  нет		нет&lt;br /&gt;
	.DATE			нет	  нет		нет&lt;br /&gt;
	.DELETE			да	  да		да&lt;br /&gt;
	.DEVICE			-	  нет		нет&lt;br /&gt;
	.DSTATUS		да	  да		да&lt;br /&gt;
	.ENTER			да	  да		да&lt;br /&gt;
	.EXIT			да	  да		да&lt;br /&gt;
	.FETCH/.RELEAS		да	  да		да&lt;br /&gt;
	.SFPA			нет	  нет		нет&lt;br /&gt;
	.GTIM			нет	  нет		нет&lt;br /&gt;
	.GTJB			-	  нет		нет&lt;br /&gt;
	.GTLIN			да*	  да		да&lt;br /&gt;
	.GVAL			нет	  нет		нет&lt;br /&gt;
	.HERR/.SERR		нет	  нет		нет&lt;br /&gt;
	.HRESET			да*	  нет		нет&lt;br /&gt;
	.LOCK   2)		да	  да		да&lt;br /&gt;
	.LOOKUP			да	  да		да&lt;br /&gt;
	.MRKT			-	  нет		нет&lt;br /&gt;
	.MTGET			-	  нет		нет&lt;br /&gt;
	.MTIN			-	  нет		нет&lt;br /&gt;
	.MTOUT			-	  нет		нет&lt;br /&gt;
	.MTPRNT			-	  нет		нет&lt;br /&gt;
	.MTSET			-	  нет		нет&lt;br /&gt;
	.MWAIT			-	  нет		нет&lt;br /&gt;
	.PRINT			нет	  нет		нет�&lt;br /&gt;
&lt;br /&gt;
					- 33 -&lt;br /&gt;
&lt;br /&gt;
	.PROTECT		-	  нет		нет&lt;br /&gt;
	.PURGE			нет	  нет		нет&lt;br /&gt;
	.QSET			да*	  да*		да*&lt;br /&gt;
	.RCTRLO			нет	  нет		нет&lt;br /&gt;
	.RCVD/.RCVDC/.RCVDW	-	  нет		нет&lt;br /&gt;
	.READ/.READC/.READW	нет	  нет		нет&lt;br /&gt;
	.RENAME			да	  да		да&lt;br /&gt;
	.REOPEN			нет	  нет		нет&lt;br /&gt;
	.RSUM/.SPND		-	  нет		нет&lt;br /&gt;
	.SAVESTATUS		нет	  нет		нет&lt;br /&gt;
	.SDAT/.SDATC/.SDATW	-	  нет		нет&lt;br /&gt;
	.SCCA			нет	  нет		нет&lt;br /&gt;
	.SETTOP			нет	  нет		нет&lt;br /&gt;
	.SPFUN			нет	  нет		нет&lt;br /&gt;
	.SRESET			да*	  нет		нет&lt;br /&gt;
	.TLOCK   3)		да	  да		да&lt;br /&gt;
	.TRPSET			нет	  нет		нет&lt;br /&gt;
	.TTIRN/.TTYIN		нет	  нет		нет&lt;br /&gt;
	.TTOUTR/.TTYOUT		нет	  нет		нет&lt;br /&gt;
	.TWAIT			-	  нет		нет&lt;br /&gt;
    	.UNLOCK			нет	  нет		нет&lt;br /&gt;
	.UNPROTECT		-	  нет		нет&lt;br /&gt;
	.WAIT			нет	  нет		нет&lt;br /&gt;
	.WRITE/.WRITC/.WRITW	нет	  нет		нет&lt;br /&gt;
	&lt;br /&gt;
		1) если канал был открыт по .ENTER&lt;br /&gt;
		2) если USR находится в состоянии свопинга.&lt;br /&gt;
		3) если USR не используется другим заданием.&lt;br /&gt;
		Запосы,помеченные в табл.14 звездочкой,всегда требуют загруз-&lt;br /&gt;
	ки новой копии USR перед их выполнением (даже, если USR в этот момент&lt;br /&gt;
	находится в памяти). Прочерк в графе  табл.14 означает, что запрос не &lt;br /&gt;
	используется в данном режиме.�&lt;br /&gt;
&lt;br /&gt;
					- 34 -&lt;br /&gt;
&lt;br /&gt;
			4.1.4. Программные запросы для операций с файлами&lt;br /&gt;
&lt;br /&gt;
			4.1.4.1.  .CHCOPY  (режим FB)			&lt;br /&gt;
&lt;br /&gt;
		Запрос .CHCOPY  открывает  канал для ввода данных и логически&lt;br /&gt;
	связывает его с файлом другого задания открытым для ввода или вывода.&lt;br /&gt;
	Запрос  может использоваться  как основной так и фоновой программами.&lt;br /&gt;
	Запрос .CHCOPY допустим только для файлов, которые  находятся на дис-&lt;br /&gt;
	ках; одноко система не обнаружит ошибки, если используется другое ус-&lt;br /&gt;
	тройство.Для того,чтобы закрыть канал, открытый по .CHCOPY необходимо&lt;br /&gt;
	использовать запросы .CLOSE или .PURGE.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CHCORY area, chan, ochan&lt;br /&gt;
	где area - адрес блока из двух слов аргументов EMT;&lt;br /&gt;
	    chan - номер канала,используемого заданием для чтения данных;&lt;br /&gt;
	    ochan- номер канала другого задания.&lt;br /&gt;
&lt;br /&gt;
			4.1.4.2.  .CLOSE&lt;br /&gt;
&lt;br /&gt;
		Запрос .CLOSE  завершает действие на указанном канале и осво-&lt;br /&gt;
	бождает его для использования в другой операции.Для выполнения запро-&lt;br /&gt;
	са  драйвер соответствующего устройства  должен  находиться в памяти.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CLOSE chan&lt;br /&gt;
		Для того, чтобы сделать файл постоянным на томе необходимо на&lt;br /&gt;
	соответствующем канале, открытом для вывода,выполнить запрос .CLOSE .&lt;br /&gt;
	Запрос .CLOSE на неоткрытом канале игнорируется.&lt;br /&gt;
		.CLOSE , выполняемый на канале, который был открыт по  .ENTER&lt;br /&gt;
	вызывает корректировку справочника  устройства для определения  файла&lt;br /&gt;
	как постоянного на этом устройстве. Если файл открыт по .LOOKUP ,  то&lt;br /&gt;
	корректировка справочника не происходит.&lt;br /&gt;
		Если устройство, связанное с указанным  каналом, уже содержит &lt;br /&gt;
	файл с тем же именем  и  типом, что и вновь созданный файл, то старая &lt;br /&gt;
	копия файла стирается, когда новый файл становится постоянным.&lt;br /&gt;
		Примечание. Монитор  информирует  программу  пользователя  об&lt;br /&gt;
	ошибке при выполнении запроса .CLOSE  только в  том  случае, если  до &lt;br /&gt;
	этого был выполнен запрос .SERR .�&lt;br /&gt;
&lt;br /&gt;
					- 35 -&lt;br /&gt;
&lt;br /&gt;
			4.1.4.3.  .DELETE&lt;br /&gt;
&lt;br /&gt;
		Запрос .DELETE стирает файл с указанного устройства.&lt;br /&gt;
	.DELETE недопустим для магнитных лент.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.DELETE area, chan, dblk&lt;br /&gt;
	где area - адрес блока из двух слов аргументов EMT;&lt;br /&gt;
	    dblk - адрес блока устройства, в котором описан файл для операции&lt;br /&gt;
	стирания.&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Обращение к открытому  каналу приводит к ошибке.&lt;br /&gt;
		2. Стертый  файл в листинге справочника устройства будет опи-&lt;br /&gt;
	сан как неиспользуемая  область (UNUSED) того же размера.&lt;br /&gt;
		3. Запрос .DELETE на устройствах нефайловой структуры игнори-&lt;br /&gt;
	руется.&lt;br /&gt;
		4. При выполнении .DELETE  необходимо, чтобы драйвер соответ-&lt;br /&gt;
	ствующего устройства находился в памяти.&lt;br /&gt;
		5. После выполнения  .DELETE ,  указанный канал освобождается &lt;br /&gt;
	для дальнейшего использования.&lt;br /&gt;
&lt;br /&gt;
			4.1.4.4.  .ENTER&lt;br /&gt;
&lt;br /&gt;
		Запрос  .ENTER  резервирует область на определенном устройст-&lt;br /&gt;
	ве и создает в справочнике этого устройства временную запись для ука-&lt;br /&gt;
	занного файла. По запросу .ENTER монитор идентифицирует номер канала,&lt;br /&gt;
	определенного в запросе,с указанным файлом. Заметим,что если програм-&lt;br /&gt;
	ма имеет оверлейную структуру, то  15-й канал используется оверлейным&lt;br /&gt;
	драйвером  и  не  должен  модифицироваться  программой  пользователя.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.ENTER area, chan, dblk, len, seqn&lt;br /&gt;
	где area - адрес блока из 4-х слов аргументов EMT;&lt;br /&gt;
	    dblk - адрес блока устройства, в котором описан создаваемый файл;&lt;br /&gt;
	    len  - длина файла;&lt;br /&gt;
	    seqn - последовательный номер файла для магнитной ленты;�&lt;br /&gt;
&lt;br /&gt;
					- 36 -&lt;br /&gt;
&lt;br /&gt;
	Значение		Действие монитора&lt;br /&gt;
	аргумента len&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	0		Отводит для файла половину наибольшей свободной обла-&lt;br /&gt;
			сти  или  полностью  вторую по величине свободную об-&lt;br /&gt;
			ласть  на  томе,  в зависимости от того, какая из них &lt;br /&gt;
			больше&lt;br /&gt;
	М		Отводит для файла М блоков&lt;br /&gt;
	-1		Отводит  для  файла  наибольшую  свободную область на&lt;br /&gt;
			томе&lt;br /&gt;
&lt;br /&gt;
	Значение		Действие монитора&lt;br /&gt;
	аргумента seqn&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	0		Перематывает  магнитную ленту и производит поиск мет-&lt;br /&gt;
			ки LEOT (логический конец ленты)&lt;br /&gt;
	n		Устанавливает  магнитную ленту  в положение, соответ-&lt;br /&gt;
			ствующее файлу с последовательным номером n&lt;br /&gt;
	-1		Производит поиск LEOT&lt;br /&gt;
	-2		Перематывает магнитную  ленту и производит поиск LEOT&lt;br /&gt;
			или файла с тем же  именем, что и  вновь  создаваемый&lt;br /&gt;
			файл&lt;br /&gt;
	&lt;br /&gt;
		Файл, созданный по  .ENTNR не является постоянным до тех пор,&lt;br /&gt;
	пока  на соответствующем  канале  не  будет  выполнен запрос .CLOSE .&lt;br /&gt;
	Запросы .LOOKUP  и .SAVESTATUS недействительны для файлов, которые не&lt;br /&gt;
	являются постоянными. Однако чтение такого файла возможно посредством&lt;br /&gt;
	обращения  к номеру соответствующего  блока.  Если на соответствующем&lt;br /&gt;
	канале  выполняется .CLOSE , то любой существующий на томе постоянный&lt;br /&gt;
	файл с тем же именем и типом стирается и новый файл становится посто-&lt;br /&gt;
	янным. Хотя  область  для файла резервируется  при выполнении ENTER ,&lt;br /&gt;
	фактическая длина файла определяется после выполнения .CLOSE .&lt;br /&gt;
		Каждое задание может иметь до 256. одновременно открытых фай-&lt;br /&gt;
	лов. Если требуется,все 256. файлов могут быть открыты для вывода по-&lt;br /&gt;
	средством .ENTER . Для выполнения .ENTER необходимо,чтобы драйвер со-&lt;br /&gt;
	ответствующего устройства был в памяти. После выполнения .ENTER реги-&lt;br /&gt;
	стр  R0 будет содержать  размер области тома, отведенной для создания &lt;br /&gt;
	нового файла.�&lt;br /&gt;
					- 37 -&lt;br /&gt;
&lt;br /&gt;
			4.1.4.5.  .LOOKUP&lt;br /&gt;
&lt;br /&gt;
		Запрос  .LOOKUP связывает указанный канал с устройством и/или&lt;br /&gt;
	существующим файлом для выполнения операций ввода-вывода.Используемый &lt;br /&gt;
	канал будет 'занят' до тех пор, пока не будет выполнен один из следу-&lt;br /&gt;
	ющих запросов: .CLOSE, .SAVESTATUS, .SRESET, .HRESET, .PURGE, .CSIGEN&lt;br /&gt;
	(если номер канала в диапазоне от 0 до 10 ).&lt;br /&gt;
		Заметим, что  если программа  имеет оверлейную  структуру, то &lt;br /&gt;
	15-ый канал  используется оверлейным драйвером и не должен изменяться&lt;br /&gt;
	программой пользователя.&lt;br /&gt;
		Если  первое слово  имени файла в блоке устройства (dblk) со-&lt;br /&gt;
	держит нуль и устройство есть устройство файловой структуры, то абсо-&lt;br /&gt;
	лютный блок 0 этого  устройства определяется  как  'начало файла'  (в&lt;br /&gt;
	этом случае говорят о нефайловом  .LOOKUP) .&lt;br /&gt;
 	Этот метод допускает ввод-вывод для  любого физического блока на уст-&lt;br /&gt;
	ройстве. Если имя файла определено для устройства нефайловой структу-&lt;br /&gt;
	ры, то имя файла игтнорируется.&lt;br /&gt;
		Для выполнения  .LOOKUP  драйвер  соответствующего устройства &lt;br /&gt;
	должен быть в памяти.После выполнения  .LOOKUP , регистр R0 будет со-&lt;br /&gt;
	держать длину открытого файла в блоках. После выполнения  .LOOKUP для&lt;br /&gt;
	устройств  несправочной  структуры, регистр R0 будет содержать  ноль.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.LOOKUP area, chan, dblk, seqn&lt;br /&gt;
	где area - адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    seqn - последовательный номер файла для магнитной ленты;&lt;br /&gt;
&lt;br /&gt;
	Значение		Действие монитора&lt;br /&gt;
	аргумента seqn&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	-1		Производит  поиск файла  с текущего положения магнит-&lt;br /&gt;
			ной ленты&lt;br /&gt;
	 0		Перематывает магнитную ленту и производит поиск файла&lt;br /&gt;
	n (n&amp;gt;0)		Устанавливает  магнитную ленту в положение соответст-&lt;br /&gt;
			вующее файлу с последовательным номером n�&lt;br /&gt;
&lt;br /&gt;
					- 38 -&lt;br /&gt;
&lt;br /&gt;
			4.1.4.6.  .PURGE&lt;br /&gt;
&lt;br /&gt;
		Запрос .RURGE освобождает указанный канал для использования в &lt;br /&gt;
	другой операции без  выполнения каких-либо функций запросов .HRESET ,&lt;br /&gt;
	.SRESET, .SAVESTATUS или .CLOSE . Временный файл открытый на этом ка-&lt;br /&gt;
	нале по .ENTER ,аннулируется. Запрос .PURGE на свободном канале игно-&lt;br /&gt;
	рируется.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.PURGE chan&lt;br /&gt;
&lt;br /&gt;
			4.1.4.7.  .RENAME&lt;br /&gt;
&lt;br /&gt;
		Запрос  RENAME  изменяет имя  файла (недопустим в операциях с&lt;br /&gt;
	магнитной лентой).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		RENAME area, chan, dblk&lt;br /&gt;
	где area - адрес блока из двух слов аргументов ЕМТ;&lt;br /&gt;
	    dblk - адрес блока,содержащего имя устройства и имя файла,которые&lt;br /&gt;
	требуется  изменить, и  новое  имя  устройства  и  имя файла  в кодах&lt;br /&gt;
	Radix-50.&lt;br /&gt;
		Пример:&lt;br /&gt;
		.RENAME  #AREA, #7, #DBLK&lt;br /&gt;
		BCS RNMERR&lt;br /&gt;
		.&lt;br /&gt;
		.&lt;br /&gt;
		.&lt;br /&gt;
	DBLK: .RAD50 /DX1 OLDFIL MAC/&lt;br /&gt;
	      .RAD50 /DX1 NEWFIL MAC/&lt;br /&gt;
		Если файл с тем же именем,что и новое,уже существует на томе,&lt;br /&gt;
	то он  стирается. Повторное определение  имени устройства DX1 в новой&lt;br /&gt;
	спецификации  файла  необходимо для правильного выполнения операции и &lt;br /&gt;
	не должно опускаться. После выполнения .RENAME используемый канал ос-&lt;br /&gt;
	вобождается.Запрос .RENAME  требует, чтобы  драйвер  соответствующего&lt;br /&gt;
	устройства был в памяти перед выполнением операции.�&lt;br /&gt;
&lt;br /&gt;
					- 39 -&lt;br /&gt;
&lt;br /&gt;
			4.1.4.8.  .REOPEN&lt;br /&gt;
&lt;br /&gt;
		Запрос .REOPEN  повторно связывает  указанный канал с файлом,&lt;br /&gt;
	для которого был выполнен запрос .SAVESTATUS.Совместное использование&lt;br /&gt;
	запросов .SAVESTATUS и .REOREN требуется для одновременного обращения&lt;br /&gt;
	к большому числу файлов. Файлы открываются по .LOOKUP  и параметры их&lt;br /&gt;
	состояния  запоминаются  по .SAVESTATUS .  Когда требуются  данные из &lt;br /&gt;
	файла, .REOPEN обеспечивает программе возможность чтения этих данных.&lt;br /&gt;
	Не является обязательным выполнение .REOPEN на том же канале,на кото-&lt;br /&gt;
	ром были выполнены .LOOKUP  и .SAVESTATUS .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.REOPEN area, chan, sblk&lt;br /&gt;
	где area - адрес блока из 2-х слов ЕМТ;&lt;br /&gt;
	    sblk - адрес блока из 5-ти слов,где запоминается информация о&lt;br /&gt;
	состоянии канала.&lt;br /&gt;
&lt;br /&gt;
			4.1.4.9.  .SAVESTATUS&lt;br /&gt;
&lt;br /&gt;
		Запрос .SAVESTATUS  запоминает пять слов информации о состоя-&lt;br /&gt;
	нии канала в указанной пользователем области памяти. Эти слова содер-&lt;br /&gt;
	жат полную информацию,которая требуется операционной системе для точ-&lt;br /&gt;
	ного определения файла.  После выполнения .SAVESTATUS указанный канал &lt;br /&gt;
	освобождается. Если необходимо получить данные по этому каналу,то ис-&lt;br /&gt;
	пользуется запрос .REOPEN .Запрос .SAVESTATUS  может использоваться в&lt;br /&gt;
	том случае,если файл был  открыт  по .LOOKUP  .Если  был  использован&lt;br /&gt;
	.ENTER ,  то .SAVESTATUS игнорируется и  генерируется ошибка.  Запрос&lt;br /&gt;
	.SAVESTATUS  недопустим в  операциях с файлами, которые  находятся на &lt;br /&gt;
	магнитной ленте.&lt;br /&gt;
		Запросы .SAVESTATUS и  .REOPEN   используются  для  работы  с&lt;br /&gt;
	большим числом файлов при ограниченном числе каналов.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SAVESTATUS area, chan, cblk&lt;br /&gt;
	где area - адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    cblk - адрес блока из 5-ти слов,в который будет записана информа-&lt;br /&gt;
	ция о состоянии канала; адрес должен быть указан в пределах программы&lt;br /&gt;
	пользователя.�&lt;br /&gt;
&lt;br /&gt;
					- 40 -&lt;br /&gt;
&lt;br /&gt;
			4.1.5. Программные запросы для организации&lt;br /&gt;
				ввода-вывода &lt;br /&gt;
&lt;br /&gt;
			4.1.5.1.  .READ, .READC, .READW&lt;br /&gt;
&lt;br /&gt;
		Система RT11  предусматривает  три режима выполнения операций&lt;br /&gt;
	ввода-вывода:&lt;br /&gt;
		.READ/.WRITE&lt;br /&gt;
		.READS/.WRITC&lt;br /&gt;
		.READW/.WRITW&lt;br /&gt;
		При использовании запросов  .READ и .READC должны  быть опре-&lt;br /&gt;
	делены дополнительные элементы для очереди ввода-вывода (п.4.1.6.31.)&lt;br /&gt;
		Запрос .READ используется для передачи  определенного количе-&lt;br /&gt;
	ства слов по указанному  каналу в буфер памяти. Управление передается&lt;br /&gt;
	программе  пользователя немедленно после  начала  выполнения  запроса&lt;br /&gt;
	.READ . После завершения передачи данных никаких действий не происхо-&lt;br /&gt;
	дит.&lt;br /&gt;
	       Формат макрокоманды&lt;br /&gt;
		.READ area, chan, buf, wcnt, blk&lt;br /&gt;
	где area - адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf - адрес буфера для чтения данных;&lt;br /&gt;
	    wcnt- количество слов для чтения;&lt;br /&gt;
	    blk - номер блока для операции чтения;  если был использован фай-&lt;br /&gt;
	ловый .LOOKUP , то blk - номер блока относительно начала файла;  если&lt;br /&gt;
	был использован нефайловый .LOOKUP , то blk - абсолютный номер  блока&lt;br /&gt;
	устройства; программа  пользователя  должна модифицировать  blk перед &lt;br /&gt;
	его повторным использованием.&lt;br /&gt;
		Когда программе пользователя  нужно выполнить чтение  данных,&lt;br /&gt;
	может быть использован запрос .WAIT .  Это гарантирует то, что данные &lt;br /&gt;
	будут прочитаны  полностью. Если  во  время передачи данных произошла &lt;br /&gt;
	ошибка, запрос .WAIT сообщает о ней.&lt;br /&gt;
		Запрос .READC  передает  определенное количество слов по ука-&lt;br /&gt;
	занному каналу в память.Управление программе пользователя будет пере-&lt;br /&gt;
	дано сразу после начала выполнения .READC . Попытка чтения данных по-&lt;br /&gt;
	сле конца файла вызывает передачу  управления  вызывающей программе с&lt;br /&gt;
	установлением С-разряда и записью нуля в байт ошибок (52-байт). После&lt;br /&gt;
	выполнения .READC  управление будет передано подпрограмме завершения,�&lt;br /&gt;
&lt;br /&gt;
					- 41 -&lt;br /&gt;
&lt;br /&gt;
	адрес которой указан в запросе.	Если в подпрограмме завершения выпол-&lt;br /&gt;
	няется команда RTS PC ,то управление возвращается программе пользова-&lt;br /&gt;
	теля.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.READC area, chan, buf, wcnt, crtn, blk&lt;br /&gt;
	где area - адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера для чтения данных;&lt;br /&gt;
	    wcnt -количество слов для чтения;&lt;br /&gt;
	    crtn -адрес подпрограммы  завершения  (адрес должен  быть  больше&lt;br /&gt;
	500);&lt;br /&gt;
	    blk  -см. .READ&lt;br /&gt;
		При запуске подпрограммы завершения:&lt;br /&gt;
		1)  регистр R0 содержит слово состояния канала; если в R0 ус-&lt;br /&gt;
	тановлен  разряд 0 , то произошла аппаратная ошибка во время передачи&lt;br /&gt;
	данных;&lt;br /&gt;
		2) регистр R1 содержит номер канала  для операции; эта инфор-&lt;br /&gt;
	мация необходима, когда одна и та  же подпрограмма завершения исполь-&lt;br /&gt;
	зуется в нескольких операциях.&lt;br /&gt;
		Запрос .READW  передает  определенное количество слов по ука-&lt;br /&gt;
	занному каналу в память. Управление передается программе пользователя&lt;br /&gt;
	после выполнения запроса .READW  или при обнаружении ошибки.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		READW area, chan, buf, wcnt, blk&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    wcnt -количество слов  для чтения  (каждый  запрос может передать&lt;br /&gt;
	максимально 32К слов);&lt;br /&gt;
	    blk  -см. запрос .READ&lt;br /&gt;
		Если  после завершения запроса будет установлен  С-разряд, то &lt;br /&gt;
	это указывает на то, что  на канале произошла аппаратная ошибка. Если&lt;br /&gt;
	ошибки  не было,  то данные находятся  в памяти, начиная с указанного &lt;br /&gt;
	адреса. В режиме FB одно из  заданий может выполняться в то время как&lt;br /&gt;
	другое задание ожидает завершения операции.&lt;br /&gt;
&lt;br /&gt;
			4.1.5.2.  .WRITE, .WRITC, .WRITW&lt;br /&gt;
&lt;br /&gt;
	       При использовании запросов .WRITE и .WRITC должны быть опреде-&lt;br /&gt;
	лены дополнительные элементы для очереди ввода-вывода (п.4.1.6.31.).�&lt;br /&gt;
&lt;br /&gt;
					- 42 -&lt;br /&gt;
&lt;br /&gt;
		Запрос .WRITE передает указанное количество слов из памяти по&lt;br /&gt;
	указанному каналу. Управление программе пользователя передается сразу&lt;br /&gt;
	же после того, как запрос будет поставлен в очередь.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.WRITE area, chan, buf, wcnt,blk&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументоа ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера памяти,который используется для вывода;&lt;br /&gt;
	    wcnt -количество слов для записи;&lt;br /&gt;
	    blk  -номер  блока  для операции записи; если используется файло-&lt;br /&gt;
	вый .LOOKUP  или  .ENTER , то blk - номер блока  относительно  начала&lt;br /&gt;
	файла; если был использован  нефайловый .LOOKUP или .ENTER , то blk -&lt;br /&gt;
	абсолютный  номер блока устройства; программа пользователя должна мо-&lt;br /&gt;
	дифицировать blk перед его повторным использованием.&lt;br /&gt;
		Запрос .WRITC  передает заданное количество слов из памяти по&lt;br /&gt;
	указанному каналу.Управление передается программе пользователя немед-&lt;br /&gt;
	ленно после начала выполнения .WRITC .После выполнения запроса управ-&lt;br /&gt;
	ление будет передано подпрограмме завершения.По команде RTS PC управ-&lt;br /&gt;
	ление возвращается программе пользователя.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.WRITC area, chan, buf, wcnt, crtn, blk&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера памяти,который используется для вывода;&lt;br /&gt;
	    wcnt -количество слов для записи;&lt;br /&gt;
	    crtn -адрес подпрограммы завершения;&lt;br /&gt;
	    blk  -см. запос .WRITE .&lt;br /&gt;
		О содержимом  регистров R0 и R1 (при запуске подпрограммы за-&lt;br /&gt;
	вершения) см.п.4.1.5.1.&lt;br /&gt;
		Запрос .WRITW  передает заданное количество слов из памяти по&lt;br /&gt;
	указанному каналу. Управление передается программе пользователя после&lt;br /&gt;
	завершения .WRITW .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.WRITW area, chan, buf, wcnt, blk&lt;br /&gt;
	где area - адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера,который используется для вывода;&lt;br /&gt;
	    wcnt -количество слов для записи;&lt;br /&gt;
	    blk  -см.запрос .WRITE .�&lt;br /&gt;
&lt;br /&gt;
					- 43 -&lt;br /&gt;
&lt;br /&gt;
			4.1.5.3.  .RCVD, .RCVDC, .RCVDW  (режим FB).&lt;br /&gt;
&lt;br /&gt;
		Существуют три формы запроса получения данных,которые исполь-&lt;br /&gt;
	зуются вместе с запросами .SDAT . Запросы .RCVD  аналогичны  запросам&lt;br /&gt;
	.READ , но в отличие от них осуществляют прием данных из  другой про-&lt;br /&gt;
	граммы, а не с устройства. При использовании запросов .RCVD  и  RCVDC &lt;br /&gt;
	должны быть определены дополнительные  элементы для очереди ввода-вы-&lt;br /&gt;
	вода (п.4.1.6.31).&lt;br /&gt;
		Запрос .RCVD используется для получения данных или сообщений,&lt;br /&gt;
	посылаемых другой программой. Управление вызывающей программе переда-&lt;br /&gt;
	ется  сразу же после начала выполнения запроса .RCVD .При необходимо-&lt;br /&gt;
	сти, с .RCVD используется запрос .MWAIT ,который задерживает выполне-&lt;br /&gt;
	ние программы до окончания операции.&lt;br /&gt;
		Формат макрокоманды:&lt;br /&gt;
		.RCVD area, buf, wcnt&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера для сообщений (данных);&lt;br /&gt;
	    wcnt -количество передаваемых слов.&lt;br /&gt;
		После выполнения монитором запроса .RCVD ,первое слово буфера&lt;br /&gt;
	(buf) будет содержать действительное количество переданных слов.Таким&lt;br /&gt;
	образом,область памяти для приема данных должна быть,по крайней мере,&lt;br /&gt;
	на одно слово больше размера передаваемого сообщения.&lt;br /&gt;
		Комбинация .SDAT/ .RCVD  может быть использована для передачи &lt;br /&gt;
	как нескольких слов, так и целого буфера. Операция по  запросу  .RCVD&lt;br /&gt;
	заканчивается  только после выполнения  .SDAT  из  другой  программы.&lt;br /&gt;
		Запрос .RCVDC  осуществляет  прием данных и запускает подпро-&lt;br /&gt;
	грамму завершения после получения сообщения (аналогично .READC) .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.RCVDC area, buf, wcnt, crtn&lt;br /&gt;
	где crtn -адрес подпрограммы завершения.&lt;br /&gt;
		Запрос .RCVDW  осуществляет  прием данных и ожидает окончания&lt;br /&gt;
	операции. Выполнение вызывающей программы  задерживается до окончания&lt;br /&gt;
	передачи сообщения другой программой.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.RCVDW area, buf, wcnt&lt;br /&gt;
		Как и в .RCVD , первое слово буфера для .RCVDC и .RSVDW будет&lt;br /&gt;
	содержать действительное количество переданных слов.�&lt;br /&gt;
&lt;br /&gt;
					- 44 -&lt;br /&gt;
&lt;br /&gt;
			4.1.5.4.  .SDAT, .SDATC, .SDATW (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Запросы .SDAT, .SDATC, .SDATW используются вместе с запросами&lt;br /&gt;
	.RCVD, .RCVDC, .RCVDW для передачи сообщений или  данных между  прог-&lt;br /&gt;
	раммами под управлением мониторов FB или XM .&lt;br /&gt;
		Запросы  .SDAT,  .SDATC,  SDATW  аналогично  запросам .WRITE,&lt;br /&gt;
	.WRITC, .WRITW ,только осуществляют передачу данных не на устройство,&lt;br /&gt;
	а другой программе. При использовании запросов .SDAT и .SDATC  должны&lt;br /&gt;
	быть определены  дополнительные  элементы  для  очереди  ввода-вывода &lt;br /&gt;
	(п.4.1.6.31).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SDAT area, buf, wcnt&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;&lt;br /&gt;
	    wcnt -количество слов для передачи.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SDATC area, buf, wcnt, crtn&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументов ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;&lt;br /&gt;
	    wcnt -количество слов для передачи;&lt;br /&gt;
	    crtn -адрес подпрограммы завершения.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SDATW area, buf, wcnt&lt;br /&gt;
	где area -адрес блока из 5-ти слов аргументоа ЕМТ;&lt;br /&gt;
	    buf  -адрес буфера для сообщений (данных),которые будут переданы;&lt;br /&gt;
	    wcnt -количество слов для передачи.&lt;br /&gt;
&lt;br /&gt;
			4.1.5.5.  .TTYIN, .TTINR&lt;br /&gt;
&lt;br /&gt;
		Запросы .TTYIN и .TTINR  используются для передачи символов с&lt;br /&gt;
	терминала в программу пользователя.&lt;br /&gt;
		Макрорасширение для .TTYIN :&lt;br /&gt;
		ЕМТ 340&lt;br /&gt;
		BCS .-2&lt;br /&gt;
		Макрорасширение для .TTINR :&lt;br /&gt;
		EMT 340�&lt;br /&gt;
&lt;br /&gt;
					- 45 -&lt;br /&gt;
&lt;br /&gt;
		Запрос .TTYIN циклится  в ожидании  подачи символа или строки &lt;br /&gt;
	символов,в то время как пользователь может ожидать,или продолжать вы-&lt;br /&gt;
	полнение программы, используя .TTINR .Если по  завершению  выполнения&lt;br /&gt;
	.TTINR  устанавливает С-разряд, то это значит, что в буфере терминала &lt;br /&gt;
	символ отсутствует  (пользователь еще не напечатал его).  В режиме FB&lt;br /&gt;
	.TTINR не устанавливает  С-разряд, если не установлен 6-ой  разряд  в &lt;br /&gt;
	слове состояния задания (PSW).&lt;br /&gt;
		Существует два режима ввода с терминала.Режим ввода определя-&lt;br /&gt;
	ется содержимым  12-го разряда в PSW. Если  содержимое 12-го  разряда &lt;br /&gt;
	нуль,то говорят об общем режиме ввода-вывода.В этом режиме выполняют-&lt;br /&gt;
	ся следующие действия:&lt;br /&gt;
		1) монитор обеспечивает 'эхо' всем символам,вводимым с терми-&lt;br /&gt;
	нала;&lt;br /&gt;
		2) стирание символов  и строк осуществляется с помощью команд&lt;br /&gt;
	ЗБ и СУ/U  соответственно;&lt;br /&gt;
		3) для  передачи  символов программе  необходимо подать ВК  ,&lt;br /&gt;
	ПС  или команды СУ/Z или СУ/C ;возврат каретки и перевод строки также&lt;br /&gt;
	передаются программе пользователя.&lt;br /&gt;
		Если  12-ый разряд  в  PSW  равен единице, то устанавлмвается &lt;br /&gt;
	специальный режим  ввода-вывода. В этом режиме  выполняются следующие&lt;br /&gt;
	действия:&lt;br /&gt;
		1) монитор не выдает 'эхо' символам,вводимым с терминала;кро-&lt;br /&gt;
	ме СУ/C и СУ/D ;&lt;br /&gt;
		2) СУ/U и ЗБ не выполняют своих функций;&lt;br /&gt;
		3) символы сразу же передаются программе пользователя.&lt;br /&gt;
		В специальном  режиме программа пользователя  должна сама вы-&lt;br /&gt;
	полнять печать вводимых символов, если это необходимо (исключение со-&lt;br /&gt;
	ставляют СУ/C и СУ/D ).&lt;br /&gt;
		12-ый разряд в PSW должен устанавливаться  программой пользо-&lt;br /&gt;
	вателя. Этот разряд очищается, если  управление передается  монитору.&lt;br /&gt;
		Действия СУ/F и СУ/B не зависят от содержимого 12-го разряда.&lt;br /&gt;
		Команды СУ/S и СУ/Q выполняются монитором,если только в режи-&lt;br /&gt;
	ме FB ранее не была выполнена команда SET TT NOPAGE .&lt;br /&gt;
		Если в режиме FB сделан запрос ввода,а символа нет в наличии,&lt;br /&gt;
	то выполнение программы блокируется до тех пор,пока в буфере ввода не &lt;br /&gt;
	появится символ.Это справедливо для TTYIN и TTINR и не зависит от ре-&lt;br /&gt;
	жима ввода. Для того,чтобы продолжить выполнение программы (и обеспе-&lt;br /&gt;
	чить установку С- разряда в случае отсутствия символа в буфере ввода)&lt;br /&gt;
	необходимо установить перед .TTINR  6-й разряд PSW.  6-й разряд  очи-&lt;br /&gt;
	щается после окончания выполнения программы.�&lt;br /&gt;
&lt;br /&gt;
					- 46 -&lt;br /&gt;
&lt;br /&gt;
		Запрос .TTYIN не  обслуживает  косвенные файлы. Для этой цели&lt;br /&gt;
	необходимо воспользоваться запросом .GTLIN .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.TTYIN char&lt;br /&gt;
		.TTINR&lt;br /&gt;
	где char -адрес ячейки, куда пересылается код вводимого символа; если&lt;br /&gt;
	char указан в запросе,то код пересылается в указанную ячейку и в R0 ;&lt;br /&gt;
	если char не указан,то в R0 .&lt;br /&gt;
&lt;br /&gt;
			4.1.5.6.  .TTYOUT, .TTOUTR&lt;br /&gt;
&lt;br /&gt;
		Запросы  .TTYOUT, .TTOUTR  используются для передачи символов &lt;br /&gt;
	из R0 в буфер терминала. Действия этих  запросов аналогичны действиям&lt;br /&gt;
	запросов .TTYIN, .TTINR .Если буфер терминала полон,то запрос .TTYOUT&lt;br /&gt;
	ожидает появления в  буфере свободного  места для выводимого символа,&lt;br /&gt;
	тогда как .TTOUTR не ожидает свободного места и символ, находящийся в&lt;br /&gt;
	R0 , на терминал не выводится. Если после завершения .TTOUTR устанав-&lt;br /&gt;
	ливает С-разряд, то это говорит о том,что в буфере нет свободного ме-&lt;br /&gt;
	ста и символ не был выведен на терминал.В режиме FB запрос .TTOUTR не&lt;br /&gt;
	устанавливает С-разряд;выполение программы блокируется до появления в&lt;br /&gt;
	буфере свободного места. Для того,чтобы продолжить выполнение програм&lt;br /&gt;
	мы и обеспечить установку С-разряда, необходимо в ССЗ установить 6-ой&lt;br /&gt;
	разряд.&lt;br /&gt;
		Если в основном задании установлен 6-ой разряд в ССЗ,то запро&lt;br /&gt;
	сы .TTYIN и .TTYOUT будут вызывать блокировку фонового задания.Каждое&lt;br /&gt;
	задание в основном или  фоновом режиме  имеет свое собственное ССЗ ,и&lt;br /&gt;
	поэтому они могут использовать различные режимы работы терминала неза&lt;br /&gt;
	висимо друг от друга.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.TTYOUT char&lt;br /&gt;
		.TTOUTR&lt;br /&gt;
	где char -адрес ячейки, содержащей код символа, который будет пересы-&lt;br /&gt;
	латься в R0  с последующим выводом на терминал; если  char не указан,&lt;br /&gt;
	на терминал выводится содержимое R0 .�&lt;br /&gt;
&lt;br /&gt;
					- 47 -&lt;br /&gt;
&lt;br /&gt;
			4.1.5.7.  .PRINT&lt;br /&gt;
&lt;br /&gt;
		Запрос .PRINT вызывает печать строки символов КОИ-7  на  сис-&lt;br /&gt;
	темном терминале.&lt;br /&gt;
		В  режиме FB  каждому сообщению может предшествовать побужда-&lt;br /&gt;
	ющий знак B&amp;gt; или F&amp;gt; , в зависимости от того,какое задание его печата-&lt;br /&gt;
	ет ( B&amp;gt; -фоновое, F&amp;gt; -основное). Это происходит в случае переключения&lt;br /&gt;
	системного терминала на обслуживание другого задания.&lt;br /&gt;
		Строка текста, которая выводится на печать,может оканчиваться&lt;br /&gt;
	как нулевым (0) байтом, так и байтом 200.В первом случае,в отличии от &lt;br /&gt;
	второго, вывод автоматически заканчивается  ВК и ПС .&lt;br /&gt;
		Управление возвращается программе пользователя после того,как&lt;br /&gt;
	все символы будут записаны в буфер вывода монитора.&lt;br /&gt;
		Основное задание печатает сообщение  сразу же, независимо  от &lt;br /&gt;
	состояния фонового задания.&lt;br /&gt;
		Таким образом, для печати срочных  сообщений должен использо-&lt;br /&gt;
	ваться запрос .PRINT , а не .TTYIN или .TTYOUT .&lt;br /&gt;
		Если фоновое задание  печатает побуждающий  знак и звездочку,&lt;br /&gt;
	то  системный терминал  будет принадлежать ему и запросы  .TTYOUT  из&lt;br /&gt;
	основного  задания выполняться  не будут, пока  для фонового не будет&lt;br /&gt;
	выполнено  ВК .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.PRINT addr&lt;br /&gt;
	где addr -адрес строки,которую необходимо напечатать.&lt;br /&gt;
&lt;br /&gt;
			4.1.5.8.  .MTIN (вариант FB и XM )&lt;br /&gt;
&lt;br /&gt;
		Запрос.MTIN является мультитерминальной формой запроса.TTYIN.&lt;br /&gt;
	Запрос .MTIN пересылает знак из буфера ввода монитора в буфер,указан-&lt;br /&gt;
	ный  пользователем.  Терминал должен  быть логически связан с текущим&lt;br /&gt;
	заданием. Если запрос выполнен успешно, то модифицированный адрес бу-&lt;br /&gt;
	фера пользователя будет записан в R0. Если разряд TCBIT  установлен в&lt;br /&gt;
	слове M.TSTS (п.4.1.6.26.), то запрос .MTIN устанавливает С- разряд и&lt;br /&gt;
	передает управление вызывающей программе, если ввод с терминала нево-&lt;br /&gt;
	зможен (нет строки,бит TTSPC очищен;пуст буфер ввода,бит TTSPC устано&lt;br /&gt;
	влен).�&lt;br /&gt;
					- 48 -&lt;br /&gt;
&lt;br /&gt;
	В противном случае , .MTIN  будет ожидать операции ввода и,тем самым,&lt;br /&gt;
	выполнение задания будет приостановлено.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTIN area,addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес буфера пользователя;&lt;br /&gt;
	    unit -логический номер терминала (ЛНТ).&lt;br /&gt;
&lt;br /&gt;
			4.1.5.9. .MTOUT (вариант FB и XM )&lt;br /&gt;
&lt;br /&gt;
		Запрос  .MTOUT  является  мультитерминальной  формой  запроса&lt;br /&gt;
	.TTYOUT .Запрос .MTOUT пересылает символ из буфера пользователя в бу-&lt;br /&gt;
	фер вывода терминала.Терминал должен быть логически связан с заданием&lt;br /&gt;
	Модифицированный адрес  буфера пользователя будет записан в R0 , если&lt;br /&gt;
	запрос выполнен успешно. Если  в буфере ввода  нет свободного места и&lt;br /&gt;
	разряд TCBIT установлен в слове M.TSTS (п.4.1.6.26.), то .MTOUT	уста-&lt;br /&gt;
	навливает С-разряд и передает  управление вызывающей  программе. Если&lt;br /&gt;
	разряд TCBIT очищен, выполнение  задания приостанавливается,  пока не&lt;br /&gt;
	появится свободного места в буфере вывода.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTOUT area, addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес буфера пользователя;&lt;br /&gt;
	    unit -логический номер терминала.&lt;br /&gt;
&lt;br /&gt;
			4.1.5.10. .MTPRNT  (вариант FB и XM )&lt;br /&gt;
&lt;br /&gt;
		Запрос  .MTPRNT  является  мультитерминальной формой  запроса&lt;br /&gt;
	.PRINT .Он выводит строку символов на указанный терминал.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTPRNT area, addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес строки, которую  надо напечатать (.ASCII /line/ &amp;lt;200&amp;gt;&lt;br /&gt;
	или .ASCIZ /line/ );&lt;br /&gt;
	    unit -логический номер терминала.�&lt;br /&gt;
&lt;br /&gt;
					- 49 -&lt;br /&gt;
&lt;br /&gt;
			4.1.5.11.  .SPFUN &lt;br /&gt;
&lt;br /&gt;
		Запрос .SPFUN  используется главным образом драйвером магнит-&lt;br /&gt;
	ной  ленты  для выполнения специальных  функций, таких как перемотка,&lt;br /&gt;
	пропуск назад и т.д. Запрос .SPFUN  может также использоваться с гиб-&lt;br /&gt;
	кими дисками.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SPFUN area, chan, func, buf, wcnt, blk[,crtn]&lt;br /&gt;
	где area -адрес блока из 6-ти слов аргументов ЕМТ;&lt;br /&gt;
	    func -код функции,которая будет выполняться;&lt;br /&gt;
	    buf  -адрес буфера;этот аргумент должен быть равен нулю, если для&lt;br /&gt;
	операции буфер не требуется;&lt;br /&gt;
	    crtn -адрес  подпрограммы завершения; если crtn не указан, то его&lt;br /&gt;
	значение автоматически приравнивается  нулю; если crtn равен нулю, то&lt;br /&gt;
	управление  программе пользователя будет  передано  после  завершения&lt;br /&gt;
	операции; если crnt равен 1,управление будет передано программе поль-&lt;br /&gt;
	зователя немедленно после начала операции; если crtn=N ,то N -	адрес&lt;br /&gt;
	подпрограммы завершения ( N &amp;gt;500 ).&lt;br /&gt;
	    Аргументы chan, blk, wcnt  те же, что и в .READ/.WRITE .Они испо-&lt;br /&gt;
	льзуются только тогда,когда необходимо произвести запись на магнитную&lt;br /&gt;
	ленту с расширенным межзонным промежутком.&lt;br /&gt;
&lt;br /&gt;
		Функция			Код&lt;br /&gt;
				---------------------------------------------&lt;br /&gt;
				MT		DX&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	Перемотка		373&lt;br /&gt;
	Запись метки EOF	377&lt;br /&gt;
	Пропуск вперед		376&lt;br /&gt;
	Пропуск назад		375&lt;br /&gt;
	Запись			371		376&lt;br /&gt;
	Чтение			370		377&lt;br /&gt;
	Запись с расширенным&lt;br /&gt;
	межзонным промежутком	374&lt;br /&gt;
	Автономная перемотка	372&lt;br /&gt;
&lt;br /&gt;
		Для использования  запроса  .SPFUN  необходимо, чтобы драйвер&lt;br /&gt;
	соответствующего  устройства  находился в памяти  и  канал был связан&lt;br /&gt;
	с файлом по запросу .LOOKUP .�&lt;br /&gt;
&lt;br /&gt;
					- 50 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6. Запросы общего назначения&lt;br /&gt;
&lt;br /&gt;
			4.1.6.1.  .CDFN&lt;br /&gt;
&lt;br /&gt;
		Запрос .CDFN  используется для  переопределения числа каналов&lt;br /&gt;
	ввода-вывода.Каждое задание независимо от того является ли оно основ-&lt;br /&gt;
	ным или фоновым,первоначально обеспечивается 16. каналами ввода-выво-&lt;br /&gt;
	да (от 0 до 15).  Запрос .CDFN позволяет  увеличить число каналов  до&lt;br /&gt;
	255. (от 0 до 254). Область  памяти  для новых каналов определяется в&lt;br /&gt;
	пределах  программы пользователя. Под каждый канал ввода-вывода отво-&lt;br /&gt;
	дится пять слов.Рекомендуется ,чтобы запрос .CDFN выполнялся в начале&lt;br /&gt;
	программы перед операциями ввода-вывода.Если в программе используется &lt;br /&gt;
	более одного запроса .CDFN , то области каналов для них не должны пе-&lt;br /&gt;
	рекрывать друг друга, но могут иметь один  и тот  же начальный адрес.&lt;br /&gt;
		Два запроса .SRESET  и .HRESET восстанавливают первоначальное&lt;br /&gt;
	число каналов (16.).Следовательно все запросы .CDFN должны выполнять-&lt;br /&gt;
	ся повторно после использования .SRESET или .HRESET.&lt;br /&gt;
		Заметим,что запрос .CDFN определяет новые каналы. Область па-&lt;br /&gt;
	мяти для ранее определенных каналов не используется. Так,запрос .CDFN&lt;br /&gt;
	для 20. каналов ввода-вывода(в то время как 16 первоначальных каналов&lt;br /&gt;
	уже определены) создает 20 новых каналов ввода-вывода. Область для 16&lt;br /&gt;
	первоначальных  каналов не используется, но содержимое старых каналов&lt;br /&gt;
	будет скопировано в новые.&lt;br /&gt;
		Для программы с оверлейной структурой 15-й канал используется&lt;br /&gt;
	оверлейным драйвером и не должен изменяться.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CDFN area, addr, num&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес области памяти для новых каналов;&lt;br /&gt;
	    num  -число создаваемых каналов.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.2.  .CHAIN&lt;br /&gt;
&lt;br /&gt;
		Запрос .CHAIN позволяет одной фоновой  программе инициировать&lt;br /&gt;
	выполнение другой  фоновой программы без вмешательства оператора.Этот&lt;br /&gt;
	процесс может повторяться, и позволяет  организовать последовательное&lt;br /&gt;
	выполнение большого числа программ.&lt;br /&gt;
		Ячейки  500-507  должны  содержать имя устройства и имя файла&lt;br /&gt;
	(в Radix-50), который необходимо вызвать. Ячейки 510-777 используются&lt;br /&gt;
	для передачи информации между последовательно выполняемыми программа-&lt;br /&gt;
	ми.�&lt;br /&gt;
&lt;br /&gt;
					- 51 -&lt;br /&gt;
&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CHAIN&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Содержимое областей оперативной памяти, за исключением об-&lt;br /&gt;
	ласти  памяти, которую занимает Резидентный монитор, и ячеек 500-777,&lt;br /&gt;
	может изменяться после выполнения .CHAIN .&lt;br /&gt;
		2. Каналы ввода - вывода остаются  открытыми после выполнения&lt;br /&gt;
	запроса .CHAIN для использования новой программой. Однако,каналы вво-&lt;br /&gt;
	да-вывода, открытые по запросу .CDFN не могут использоваться.Програм-&lt;br /&gt;
	ма, оставляющая файлы открытыми при выполнении .CHAIN не должна испо-&lt;br /&gt;
	льзовать .CDFN . Нерезидентные драйверы устройств удаляются из памяти&lt;br /&gt;
	при выполнении  .CHAIN ,поэтому они должны быть вновь загружены новой&lt;br /&gt;
	программой.&lt;br /&gt;
		3. По 8-му биту ССЗ программа  может определить, как она была&lt;br /&gt;
	загружена - по запросу .CHAIN или по каманде RUN .Разряд устанавлива-&lt;br /&gt;
	ется во время выполнения программы, если она была загружена с помощью&lt;br /&gt;
	.CHAIN .Если программа,занимающая ячейки от 500 до 777, предназначена&lt;br /&gt;
	для загрузки по запросу .CHAIN , то в ней  должен быть установлен 8-й&lt;br /&gt;
	разряд ССЗ во время ее трансляции. В этом случае программа будет заг-&lt;br /&gt;
	ружена правильно. Если разряд не установлен,ячейки 500-777,содержимое&lt;br /&gt;
	которых остается от предыдущей программы, могут  вызвать неправильную&lt;br /&gt;
	работу новой программы.&lt;br /&gt;
		4. Для  запроса .CHAIN  характерны те же ошибки,что и для ко-&lt;br /&gt;
	манды RUN .&lt;br /&gt;
&lt;br /&gt;
			4.1.6.3.  .CMKT  (вариант SJ)&lt;br /&gt;
&lt;br /&gt;
		Запрос  .CMKT  аннулирует  один или  несколько запросов .MRKT &lt;br /&gt;
	(п.4.1.6.22.).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CMKT area, id, time&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    id   -число, используемое  для идентификации  с запросом  .MRKT ,&lt;br /&gt;
	который необходимо  аннулировать; если несколько  запросов .MRKT име-&lt;br /&gt;
	ют  одинаковый id , то аннулируется тот из них,которому соответствует &lt;br /&gt;
	наименьший неистекший интервал времени;  если id=0 , то  аннулируются &lt;br /&gt;
	все запросы .MRKT;�&lt;br /&gt;
&lt;br /&gt;
					- 52 -&lt;br /&gt;
&lt;br /&gt;
	    time -адрес блока из 2-х слов, в которые монитор записывает вели-&lt;br /&gt;
	чину неиспользованного времени  в аннулированном запросе; первое сло-&lt;br /&gt;
	во содержит нижнюю  границу интервала времени,второе - верхнюю грани-&lt;br /&gt;
	цу; если адрес не указан, такой записи не происходит,если id=0, аргу-&lt;br /&gt;
	мент time игнорируется.&lt;br /&gt;
		Аннулированный запрос .MRKT  освобождает соответствующий эле-&lt;br /&gt;
	мент очереди.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.4.  .CNTXSW  (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Передавая управление от одного задания другому,монитор выпол-&lt;br /&gt;
	няет операцию переключения контекста.Она заключается в сохранении си-&lt;br /&gt;
	стемой необходимых параметров для однозначного определения и выполне-&lt;br /&gt;
	ния задания. Эти  параметры включают  все регистры общего назначения,&lt;br /&gt;
	ячейки 34-52, а также все регистры БПЗ, если  запрос .SFPA выполнялся&lt;br /&gt;
	с отличным от нуля адресом подпрограммы обработки прерывания  от  БПЗ.&lt;br /&gt;
		Запрос .CNTXSW используется для определения ячеек памяти, ко-&lt;br /&gt;
	торые будут дополнительно включены в операцию переключения контекста.&lt;br /&gt;
		Иногда,для обоих заданий необходимо независимое использование&lt;br /&gt;
	определенной ячейки памяти,которая не включена в обычную операцию пе-&lt;br /&gt;
	реключения контекста.Например,если программа использует команду IOT ,&lt;br /&gt;
	то она должна установить в векторе 20 адрес своей  подпрограммы обра-&lt;br /&gt;
	ботки прерывания по этой команде. А если оба задания - основное и фо-&lt;br /&gt;
	новое используют команду IOT , то  вектор 20 должен  всегда содержать&lt;br /&gt;
	соответствующий с  выполняемым заданием адрес. Это достигается  путем&lt;br /&gt;
	включения ячеек 20 и 22 в список адресов запроса .CNTXSW . &lt;br /&gt;
		Если запрос .CNTXSW  указан в программе несколько раз, то мо-&lt;br /&gt;
	нитор использует список адресов последнего из них.&lt;br /&gt;
		Список  адресов .CNTXSW не  может быть в области свопинга USR&lt;br /&gt;
	и его нельзя изменять в процессе работы программы.&lt;br /&gt;
		Монитор XM игнорирует запрос .CNTXSW по двум причинам.Во-пер-&lt;br /&gt;
	вых,виртуальные задания не разделяют ячейки памяти с другими задания-&lt;br /&gt;
	ми.Во-вторых,векторы IOT, TRAP,  BPT и вектор 250 автоматически вклю-&lt;br /&gt;
	чаются монитором XM в операцию переключения контекста,и, следователь-&lt;br /&gt;
	но,могут быть использованы другим заданием без .CNTXSW .�&lt;br /&gt;
&lt;br /&gt;
					- 53 -&lt;br /&gt;
&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CNTXSW area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес списка  адресов (должен быть ограничен нулем); адреса&lt;br /&gt;
	в списке  должны быть четными и в  пределах от 2 до 476 или в области &lt;br /&gt;
	задания пользователя,или в пределах от 160000 до 177776.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.5.  .CSIGEN&lt;br /&gt;
&lt;br /&gt;
		Запрос .CSIGEN вызывает работу Интерпретатора комендной стро-&lt;br /&gt;
	ки (CSI) в общем режиме.В этом режиме CSI осуществляет синтаксический&lt;br /&gt;
	анализ командной строки и выполняет следующие функции:&lt;br /&gt;
		1) загружает драйверы указанных устройств;&lt;br /&gt;
		2) выполняет запросы.LOOKUP и/или .ENTER для указанных файлов&lt;br /&gt;
		3) записывает в стек информацию о переключателях;&lt;br /&gt;
		4) выполняет запрос .CLOSE на каналах 0-10 .&lt;br /&gt;
		Область,которая отводится для драйверов устройств,должна быть&lt;br /&gt;
	достаточной для одновременного размещения всех необходимых драйверов.&lt;br /&gt;
	Если этой области недостаточно,программа пользователя может быть раз-&lt;br /&gt;
	рушена.&lt;br /&gt;
		После выполнения запроса  .CSIGEN  регистр R0 будет указывать &lt;br /&gt;
	на первую свободную ячейку памяти после драйверов устройств.&lt;br /&gt;
		Когда управление  возвращается  программе пользователя  после&lt;br /&gt;
	выполнения запроса.CSIGEN,все указанные файлы будут открыты для ввода&lt;br /&gt;
	и/или вывода.Три выходных файла будут открыты соответственно на	0,1 и&lt;br /&gt;
	2-ом каналах; шесть входных - будут связаны с каналами 3-10 .&lt;br /&gt;
		Если имя файла не указано, соответствующий канал остается за-&lt;br /&gt;
	крытым.&lt;br /&gt;
		Например,в командной строке&lt;br /&gt;
		*,LP:=F1,F2&lt;br /&gt;
	0 и 2 каналы остаются свободными,1-й канал связывается с LP:, 3 и 4-й&lt;br /&gt;
	каналы  связываются  соответственно  с файлами F1 и F2 на DK:, каналы&lt;br /&gt;
	5-10 остаются свободными.&lt;br /&gt;
		Программа пользователя может определить открыт или  нет канал&lt;br /&gt;
	посредством запроса .WAIT на соответствующем канале, и получить сооб-&lt;br /&gt;
	щение об ошибке, если канал не открыт.�&lt;br /&gt;
&lt;br /&gt;
					- 54 -&lt;br /&gt;
&lt;br /&gt;
		Переключатели и их аргументы записываются в стек(п.4.1.6.6.1.)&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CSIGEN devspc, deftyp, cstr [,linbuf]&lt;br /&gt;
	где devspc -адрес области памяти для драйверов устройств;&lt;br /&gt;
	    deftyp -адрес блока из  4-х слов, который  содержит типы файлов в &lt;br /&gt;
	кодах Radix-50. Содержимое этого блока используется монитором, если в &lt;br /&gt;
	командной строке не указаны типы файлов;&lt;br /&gt;
	    cstr  -адрес командной строки. Она не должна содержать &amp;lt;ВК&amp;gt;,&amp;lt;ПС&amp;gt;,&lt;br /&gt;
	но должна оканчиваться нулевым байтом. Если cstr не указан или 0 , то&lt;br /&gt;
	ввод осуществляется с терминала; под  управлением монитора FB  , если&lt;br /&gt;
	ввод осуществляется с системного терминала,будет автоматически выпол-&lt;br /&gt;
	нен запрос .UNLOCK для USR ;&lt;br /&gt;
	    linbuf -адрес,с которого будет записана введенная командная стро-&lt;br /&gt;
	ка; эта область определяется пользователем и имеет длину 81. байт;ко-&lt;br /&gt;
	мандная строка в этой области ограничивается нулевым байтом.&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Блок,адрес которого указан в deftyp ,в 1-ом слове содержит&lt;br /&gt;
	тип файла для всех входных файлов, во 2, 3 и 4-ом словах- типы файлов&lt;br /&gt;
	соответственно для 0, 1 и 2-го выходных файлов.Если в блоке не указан &lt;br /&gt;
	тип файла для определенного канала, соответствующее слово  должно со-&lt;br /&gt;
	держать нуль. Все типы  файлов должны быть записаны в кодах Radix-50.&lt;br /&gt;
		2. Запрос .CSIGEN автоматически воспринимает командную строку&lt;br /&gt;
	из косвенного файла, если указан ввод с терминала (cstr=0) и програм-&lt;br /&gt;
	ма, использующая .CSIGEN вызывается через косвенный файл.&lt;br /&gt;
		3.Аргумент linbuf предоставляет пользователю возможность вос-&lt;br /&gt;
	становления первоначально введенной командной строки.&lt;br /&gt;
		4. Если ошибка происходит при вводе командной строки с терми-&lt;br /&gt;
	нала,то CSI печатает сообщение об ошибке  на терминале, если при вво-&lt;br /&gt;
	де из памяти - устанавливает С-разряд и код ошибки (52-ой байт).&lt;br /&gt;
&lt;br /&gt;
			4.1.6.6.  .CSISPC&lt;br /&gt;
&lt;br /&gt;
		Запрос .CSISPC  вызывает  работу CSI в  специальном режиме. В &lt;br /&gt;
	этом режиме он осуществляет  синтаксический анализ командной строки и&lt;br /&gt;
	передает спецификации файлов и переключатели,указанные в ней,програм-&lt;br /&gt;
	ме пользователя.В специальном режиме CSI не выполняет действий,анало-&lt;br /&gt;
	гичных функциям запросов .FETCH, .CLOSE, .ENTER, .LOOKUP .�&lt;br /&gt;
&lt;br /&gt;
					- 55 -&lt;br /&gt;
&lt;br /&gt;
		Переключатели и их аргументы пересылаются в стек.&lt;br /&gt;
		Если программа,использующая .CSISPC ,вызывается через косвен-&lt;br /&gt;
	ный файл и cstr=0 , то .CSISPC автоматически  выбирает входную строку&lt;br /&gt;
	из косвенного файла.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CSISPC outspc, deftyp, cstr[,linbuf]&lt;br /&gt;
	где outspc -адрес блока из  39 слов для спецификации файлов командной&lt;br /&gt;
	строки;&lt;br /&gt;
	    deftyp -адрес  блока из 4-х слов, который  содержит типы файлов в &lt;br /&gt;
	кодах Radix-50. Содержимое этого блока используется монитором, если в&lt;br /&gt;
	командной строке не указаны типы файлов;&lt;br /&gt;
	    cstr -адрес командной строки. Она не должна содержать &amp;lt;ВК&amp;gt;  &amp;lt;ПС&amp;gt;,&lt;br /&gt;
	но должна оканчиваться нулевым байтом. Если cstr не указан или 0 , то&lt;br /&gt;
	ввод осуществляется с терминала;&lt;br /&gt;
	    linbuf -адрес,с которого будет записана введенная командная стро-&lt;br /&gt;
	ка; эта область определяется пользователем и имеет длину 81 байт; ко-&lt;br /&gt;
	мандная строка в этой области ограничивается нулевым байтом.&lt;br /&gt;
		Блок, адрес которого указан в outspc , содержит  спецификацию &lt;br /&gt;
	для 9 файлов: по 5 слов для каждого из 3-х  выходных  файлов и  по  4 &lt;br /&gt;
	слова для каждого из 6-ти входных файлов.Пять слов для выходного фай-&lt;br /&gt;
	ла имеют следующее содержимое: 1-ое слово - имя устройства; 2-е и 3-е&lt;br /&gt;
	слова - имя файла; 4-ое слово - тип файла; 5-е слово - длина выходно-&lt;br /&gt;
	го файла.&lt;br /&gt;
		Например&lt;br /&gt;
		*DX1:LIST.MAC[15]=PC:&lt;br /&gt;
		После выполнения .CSISPC первые 5 слов для блока, адрес кото-&lt;br /&gt;
	рого указан в outspc ,будут иметь следующие значения:&lt;br /&gt;
		16337 Radix-50 для DX1&lt;br /&gt;
		46173 Radix-50 для LIS&lt;br /&gt;
		76400 Radix-50 для T&lt;br /&gt;
		50553 Radix-50 для MAC&lt;br /&gt;
		00017 Длина файла&lt;br /&gt;
		Первые 4 слова для спецификаций входных файлов (начиная с ад-&lt;br /&gt;
	реса outspc+36) будут выглядеть так:&lt;br /&gt;
		62170	Radix-50 для PC&lt;br /&gt;
		0	Имя файла не указано&lt;br /&gt;
		0	&lt;br /&gt;
		0&lt;br /&gt;
		Если при  вводе с терминала произошла ошибка, USR не печатает &lt;br /&gt;
	на терминале сообщение об ошибке, а устанавливает С-разряд в PSW.�&lt;br /&gt;
&lt;br /&gt;
					- 56 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.6.1. Передача информации о переключателях&lt;br /&gt;
					программе пользователя.&lt;br /&gt;
&lt;br /&gt;
		В общем и  специальном  режимах работы CSI переключатели и их&lt;br /&gt;
	аргументы пересылаются в стек. Переключатель представляет  собой  на-&lt;br /&gt;
	клонную черту (/),за которой следует имя переключателя (символ КОИ-7)&lt;br /&gt;
	За переключателем может  следовать  аргумент, перед  которым ставится &lt;br /&gt;
	разделитель (:). Аргумент может быть восьмеричным или десятичным чис-&lt;br /&gt;
	лом (числом с точкой), или комбинацией буквенно-цифровых символов (от&lt;br /&gt;
	одного до трех),первый из которых -буква. В командной строке переклю-&lt;br /&gt;
	чатели могут быть связаны с файлами.&lt;br /&gt;
&lt;br /&gt;
		Например:  *DK:FOO/A,DX1:FILE.OBJ/A:100	&lt;br /&gt;
	В этом случае имеется два переключателя A, первый из которых связан с &lt;br /&gt;
	входным файлом FOO ,второй связан с входным файлом FILE:OBJ и имеет&lt;br /&gt;
	аргумент 100  .&lt;br /&gt;
		Формат содержимого стека после выполнения запроса .CSIGEN или&lt;br /&gt;
	.CSISPC: (указатель  стека будет содержать адрес первого слова табл.)&lt;br /&gt;
&lt;br /&gt;
	Слово	Содержимое			Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	1	N		Число переключателей в командной строке&lt;br /&gt;
	2	Имя переключа-	Четный байт содержит имя переключателя.&lt;br /&gt;
		теля и номер	Разряды 8-14 содержат номер (от 0 до 10)&lt;br /&gt;
		файла		файла, с которым связан данный переключатель.&lt;br /&gt;
				Разряд 15 содержит 1, если переключатель име-		&lt;br /&gt;
				ет аргумент&lt;br /&gt;
	3	Аргумент пере-	Если установлен 15-й разряд в слове 2,то сло-&lt;br /&gt;
		ключателя или	во  3 содержит аргумент переключателя. В про-&lt;br /&gt;
		имя следующего	тивном случае - имя  следующего переключателя&lt;br /&gt;
		переключателя&lt;br /&gt;
&lt;br /&gt;
		Например,после обработки CSI командной строки&lt;br /&gt;
		*FILE/B:20.,FIL2/E=DX1:INPUT/X:SY:20&lt;br /&gt;
	стек будет содержать значения:�&lt;br /&gt;
&lt;br /&gt;
					- 57 -&lt;br /&gt;
&lt;br /&gt;
	Содержимое			Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	4		Число переключателей (переключатель X имеет два аргу-&lt;br /&gt;
			мента и рассматривается как два переключателя)&lt;br /&gt;
	101530		Последний переключатель /X связан с 3-им файлом и&lt;br /&gt;
			имеет аргумент&lt;br /&gt;
	20		Аргумент переключателя X&lt;br /&gt;
	101530		Следующий переключатель /X связан с 3-им файлом и&lt;br /&gt;
			имеет аргумент&lt;br /&gt;
	75250		Аргумент переключателя X-SY в кодах Radix-50&lt;br /&gt;
	505		Следующий переключатель /Е связан с 1-м файлом и&lt;br /&gt;
			имеет аргумент&lt;br /&gt;
	100102		Переключатель /B связан с 0-м файлом и имеет аргумент&lt;br /&gt;
	24		Аргумент переключателя B&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Во многих случаях  программе пользователя не требунтся об-&lt;br /&gt;
	работка переключателей посредством CSI . Однако, возможен непреднаме-&lt;br /&gt;
	ренный ввод переключателей пользователем. В этом случае,рекомендуется&lt;br /&gt;
	сохранить значение указателя стека перед вызовом CSI ,а затем восста-&lt;br /&gt;
	новить его.Заметим,что командная строка без переключателей перемещает&lt;br /&gt;
	указатель стека на одно слово.&lt;br /&gt;
		2. В режиме FB , когда вызов  CSI  требует ввода с системного&lt;br /&gt;
	терминала, автоматически выполняется .UNLOCK для USR. Это  необходимо&lt;br /&gt;
	помнить при использовании запроса .LOCK .&lt;br /&gt;
&lt;br /&gt;
			4.1.6.7.  .CSTAT  (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Запрос .CSTAT  передает  программе  пользователя информацию о&lt;br /&gt;
	состоянии канала.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.CSTAT area, chan, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    chan -номер канала,информацию о котором требуется получить;&lt;br /&gt;
	    addr -адрес блока из 6-ти слов для информации о состоянии канала:�&lt;br /&gt;
&lt;br /&gt;
					- 58 -&lt;br /&gt;
&lt;br /&gt;
	Слово			Назначение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	1	Слово состояния канала&lt;br /&gt;
	2	Номер начального блока файла (0 ,если устройство с последова-&lt;br /&gt;
		тельным доступом к данным или,если канал был открыт по нефай-&lt;br /&gt;
		ловому .LOOKUP или .ENTER )&lt;br /&gt;
	3	Длина файла (равна нулю, если  устройство  с последовательным&lt;br /&gt;
		доступом  к данным или, если канал был  открыт по нефайловому&lt;br /&gt;
		.LOOKUP или .ENTER )&lt;br /&gt;
	4	Номер последнего записанного блока файла  (пока файл открыт).&lt;br /&gt;
		Ноль для устройств нефайловой структуры&lt;br /&gt;
	5	Номер привода устройства, с которым  связан  указанный  канал&lt;br /&gt;
	6	Физическое имя устройства в кодах  Radix-50, с которым связан&lt;br /&gt;
		данный канал.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.8.  .DATE&lt;br /&gt;
&lt;br /&gt;
		Запрос .DATE передает  информацию о текущей дате из системной&lt;br /&gt;
	ячейки даты в регистр R0 .Ячейка даты имеет следующий формат:&lt;br /&gt;
&lt;br /&gt;
		Разряд:  14 ... 10, 9 ... 5, 4 ... 0&lt;br /&gt;
			----------  -------  -------&lt;br /&gt;
			  месяц      день      год&lt;br /&gt;
		Значение года в разрядах  с 0 по 4 является фактическим годом&lt;br /&gt;
	минус 72 .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.DATE&lt;br /&gt;
		Нулевой результат в R0 указывает на то, что пользователь дату &lt;br /&gt;
	не определил.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.9.  .DEVICE  (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Запрос .DEVICE позволяет записать  определенные  значения  по &lt;br /&gt;
	указанным  адресам  после выхода из  программы  (по .EXIT или СУ/С ).&lt;br /&gt;
	Эта функция в основном используется для записи  в регистры  устройств&lt;br /&gt;
	необходимых значений.&lt;br /&gt;
		В программе может быть несколько запросов .DEVICE и пользова-&lt;br /&gt;
	тель может связать все списки адресов в один список.�&lt;br /&gt;
&lt;br /&gt;
					- 59 -&lt;br /&gt;
&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.DEVICE area, addr[,L] &lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес списка адресов  и значений;&lt;br /&gt;
	    L    -произвольный аргумент, который позволяет связать списки ад-&lt;br /&gt;
	ресов последовательных запросов .DEVICE . Если  аргумент L отсутству-&lt;br /&gt;
	ет, то уже  существующий список заменяется новым при обнаружении оче-&lt;br /&gt;
	редного запроса запроса .DEVICE .&lt;br /&gt;
		Список адресов и значений может иметь два формата - связанный&lt;br /&gt;
	и не связанный.Оба формата должны оканчиваться нулем.Связанный формат&lt;br /&gt;
	должен иметь в первом  слове также ноль. Различные форматы списка ад-&lt;br /&gt;
	ресов и значений:&lt;br /&gt;
&lt;br /&gt;
		Не связанный			Связанный&lt;br /&gt;
		--------------			----------------&lt;br /&gt;
	addr 	адрес		      addr	0&lt;br /&gt;
		--------------			----------------&lt;br /&gt;
		значение			адрес&lt;br /&gt;
		--------------			----------------&lt;br /&gt;
		адрес				значение&lt;br /&gt;
		--------------			----------------&lt;br /&gt;
		значение			адрес&lt;br /&gt;
		--------------			----------------&lt;br /&gt;
			.			значение	&lt;br /&gt;
			.			----------------	&lt;br /&gt;
			.				.&lt;br /&gt;
		--------------				.&lt;br /&gt;
		адрес	                                .&lt;br /&gt;
		--------------			---------------&lt;br /&gt;
		значение			адрес&lt;br /&gt;
		--------------			---------------&lt;br /&gt;
		0				значение&lt;br /&gt;
		--------------			---------------&lt;br /&gt;
						0&lt;br /&gt;
						---------------�&lt;br /&gt;
		&lt;br /&gt;
					- 60 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.10.  .DSTATUS&lt;br /&gt;
&lt;br /&gt;
	Запрос .DSTATUS используется для получения информации об определенном&lt;br /&gt;
	устройстве.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.DSTATUS  dstblk, devnam&lt;br /&gt;
	где dstblk -адрес блока из 4-х слов состояния устройства;&lt;br /&gt;
	    devnam -адрес имени устройства в кодах Radix-50 .&lt;br /&gt;
		Первым словом блока  состояния  является слово состояния уст-&lt;br /&gt;
	ройства. Значения разрядов слова состояния устройства:&lt;br /&gt;
&lt;br /&gt;
	Разряд	Содержимое		Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	0-7	0		Касета магнитных дисков&lt;br /&gt;
		1,2		Резервные&lt;br /&gt;
		3		Построчно-печатающее устройство&lt;br /&gt;
		4		Системный терминал или драйвер BATCH&lt;br /&gt;
		5,6		Резервные&lt;br /&gt;
		7		Перфоленточное устройство ввода и вывода&lt;br /&gt;
		10		Резервные&lt;br /&gt;
		11		Накопитель на магнитной ленте&lt;br /&gt;
		12-20		Резервные&lt;br /&gt;
		21		Пакет магнитных дисков DP (29 Мбайт)&lt;br /&gt;
		22		Гибкий диск&lt;br /&gt;
		24		Логическое устройство регистрации ошибок&lt;br /&gt;
		25		Фиктивное устройство&lt;br /&gt;
		26-33		Резервные&lt;br /&gt;
	10	1		Драйвер устройства допускает использование &lt;br /&gt;
				запроса .SPFUN&lt;br /&gt;
		0		Не допускается использование запроса .SPFUN&lt;br /&gt;
	11	-		Резервный&lt;br /&gt;
	12	1		Устройство несправочной структуры&lt;br /&gt;
	13	1		Устройство только для записи&lt;br /&gt;
	14	1		Устройство только для чтения&lt;br /&gt;
	15	1		Устройство с произвольным доступом к данным&lt;br /&gt;
		0		Устройство с последовательным доступом к &lt;br /&gt;
				данным�&lt;br /&gt;
&lt;br /&gt;
					- 61 -&lt;br /&gt;
&lt;br /&gt;
		Второе слово  представляет  собой длину драйвера устройства в &lt;br /&gt;
	байтах.&lt;br /&gt;
		Третье  слово представляет собой адрес загрузки драйвера плюс &lt;br /&gt;
	6.(FB,SJ) Если 0 -драйвера в памяти нет.&lt;br /&gt;
		Четвертое слово представляет собой емкость устройства (в бло-&lt;br /&gt;
	ках) для устройств  с произвольным  доступом к даннам  или 0 для уст-&lt;br /&gt;
	ройств с последовательным доступом к данным.&lt;br /&gt;
		Имя устройства в devnam может быть логическим именем, присво-&lt;br /&gt;
	енным пользователем.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.11.  .EXIT&lt;br /&gt;
&lt;br /&gt;
		Запрос .EXIT вызывает  окончание выполнения программы пользо-&lt;br /&gt;
	вателя и передает управление KMON .&lt;br /&gt;
		Перед выходом  из  программы  выполнение  всех инициированных &lt;br /&gt;
	операций ввода-вывода и/или подпрограмм завершения  будет  закончено.&lt;br /&gt;
	Все невыполненные запросы .MRKT и .CMKT будут аннулированы.&lt;br /&gt;
		Если  часть фоновой  программы занимает область памяти KMON и&lt;br /&gt;
	USR, то она будет  записана в блоки для временного хранения данных на&lt;br /&gt;
	системное устройство. После этого  KMON и USR  загружаются в память и&lt;br /&gt;
	управление передается Клавиатурному монитору. Если  R0=0 во время вы-&lt;br /&gt;
	полнения .EXIT ,то выполняется операция аналогичная .HRESET ,запреща-&lt;br /&gt;
	ющая последовательное использование команд REENTER, START или CLOSE .&lt;br /&gt;
		Запрос .EXIT позволяет  программе передать команды Клавиатур-&lt;br /&gt;
	ному монитору , используя ячейки 500-777,для их последующего выполне-&lt;br /&gt;
	ния. Для этого:&lt;br /&gt;
		1) ячейка 510 должна содержать  общее количество байтов в ко-&lt;br /&gt;
	манде, которая будет передана KMON;&lt;br /&gt;
		2) команды записываются, начиная с ячейки  512; строка должна &lt;br /&gt;
	быть записана в символах КОИ-7 и не должна  содержать &amp;lt;ВК&amp;gt; или &amp;lt;ПС&amp;gt; ;&lt;br /&gt;
	например:&lt;br /&gt;
		A:	.=510&lt;br /&gt;
			.WORD B-A&lt;br /&gt;
			.ASCIZ/SOPI A.MAC B.MAC/&lt;br /&gt;
			.ASCIZ/DELETE A.MAC/&lt;br /&gt;
		B=	.�&lt;br /&gt;
&lt;br /&gt;
					- 62 -&lt;br /&gt;
		&lt;br /&gt;
		3) программа пользователя должна  установить 11 разряд в  ССЗ&lt;br /&gt;
	перед выполнением .EXIT ; содержимое R0 должно быть нулевым.&lt;br /&gt;
		Когда запрос .EXIT используется  для передачи  команд необхо-&lt;br /&gt;
	димо учитывать следующее:&lt;br /&gt;
		1) если это свойство используется программой, которая вызыва-&lt;br /&gt;
	ется с помощью косвенного файла, то все команды следующие в косвенном&lt;br /&gt;
	файле за командой, инициирующей пуск этой программы,выполняться не бу&lt;br /&gt;
	дут;&lt;br /&gt;
		2) косвенный  файл может  быть вызван, используя это свойство&lt;br /&gt;
	только в том случае, если передаваемая KMON строка содержит единствен&lt;br /&gt;
	ную спецификацию файла; попытка передачи нескольких косвенных  файлов&lt;br /&gt;
	или комбинаций косвенных файлов с другими  командами KMON  приводит к &lt;br /&gt;
	неправильным результатам;&lt;br /&gt;
		3) .EXIT в подпрограмме завершения недопустим.&lt;br /&gt;
		Запрос .EXIT изменяет текущее положение указателя стека.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.EXIT&lt;br /&gt;
&lt;br /&gt;
			4.1.6.12.  .FETCH, .RELEAS&lt;br /&gt;
&lt;br /&gt;
		Запрос .FETCH загружает драйвер устройства из системного уст-&lt;br /&gt;
	ройства в оперативную память.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.FETCH addr, devnam&lt;br /&gt;
	где addr -адрес загрузки драйвера;&lt;br /&gt;
	    devnam -адрес имени устройства в кодах Radix-50 .&lt;br /&gt;
		После выполнения .FETCH , R0 содержит адрес  первой, располо-&lt;br /&gt;
	женной выше драйвера,ячейки оперативной памяти. Если  драйвер уже за-&lt;br /&gt;
	гружен в память, R0 будет содержать адрес загрузки addr.&lt;br /&gt;
&lt;br /&gt;
		Для выполнения запросов&lt;br /&gt;
		.CLOSE		.READC		.READ&lt;br /&gt;
		.LOOKUP		.WRITE		.WRITC&lt;br /&gt;
		.ENTER		.READW		.SPFUN&lt;br /&gt;
		.RENAME		.WRITW		.DELETE&lt;br /&gt;
&lt;br /&gt;
	необходимо наличие в памяти драйверов соответствующих устройств.�&lt;br /&gt;
&lt;br /&gt;
					- 63 -&lt;br /&gt;
&lt;br /&gt;
		Перед  использованием  запроса  .FETCH  в  режимах  FB или XM&lt;br /&gt;
	необходимо,чтобы все  драйверы устройств были  загружены в память (по&lt;br /&gt;
	команде LOAD) .&lt;br /&gt;
		Запрос .RELEAS удаляет драйвер указанного устройства из памя-&lt;br /&gt;
	ти. Запрос .RELEAS игнорируется, если драйвер:&lt;br /&gt;
		1) является частью RMON (т.е. является  драйвером  системного&lt;br /&gt;
	устройства);&lt;br /&gt;
		2) отсутствует в памяти;&lt;br /&gt;
		3) был загружен по команде LOAD;&lt;br /&gt;
		Запрос .RELEAS в основной программе или в любой программе под&lt;br /&gt;
	управлением монитора XM всегда игнорируется,т.к. мониторы FB и XM мо-&lt;br /&gt;
	гут использовать только те драйверы, которые были загружены по коман-&lt;br /&gt;
	де LOAD.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.RELEAS devnam&lt;br /&gt;
	где devnam -адрес имени устройства в кодах Radix-50.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.13.  .FORK&lt;br /&gt;
&lt;br /&gt;
		Запрос .FORK используется в драйверах для синхронизации рабо-&lt;br /&gt;
	ты системы. Запросу .FORK должен предшествовать запрос .INTEN . .FORK&lt;br /&gt;
	требует для своего выполнения блок памяти из 4-х слов. Содержимое ре-&lt;br /&gt;
	гистров R4 и R5 после выполнения запроса сохраняется. .FORK использу-&lt;br /&gt;
	ется в том случае,когда должен быть упорядочен доступ к системным ре-&lt;br /&gt;
	сурсам или должна быть выполнена не критическая по времени,но большая&lt;br /&gt;
	по  размеру, часть программы. После обработки монитором запроса .FORK &lt;br /&gt;
	прерывание от устройства  будет запрещено и драйвер будет работать на&lt;br /&gt;
	нулевом приоритете.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.FORK fkblk&lt;br /&gt;
	где fkblk -адрес блока из 4-х слов (должен  быть в драйвере устройст-&lt;br /&gt;
	ва ).�&lt;br /&gt;
&lt;br /&gt;
					- 64 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.14.  .GTIM&lt;br /&gt;
&lt;br /&gt;
		Запрос .GTIM позволяет программе определить текущее время су-&lt;br /&gt;
	ток. Величина времени определяется в тиках (1 тик= 1/50 с ).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.GTIM area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес блока из 2-х слов величины  времени; первое слово со-&lt;br /&gt;
	держит большее время ,второе слово - меньшее время.&lt;br /&gt;
		Пользователь должен предусмотреть в  своей программе операцию&lt;br /&gt;
	преобразования тиков в часы-минуты-секунды. В режиме FB величина вре-&lt;br /&gt;
	мени автоматически восстанавливается после 24:00:, в режиме SJ опера-&lt;br /&gt;
	ция восстановления отсутствует.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.15.  .GTJB&lt;br /&gt;
&lt;br /&gt;
		Запрос .GTJB позволяет программе определить номер выполняемо-&lt;br /&gt;
	го задания, нижнюю границу памяти и другие параметры задания.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.GTJB area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
 	    addr -адрес блока из 8-ми слов для номеров задания:&lt;br /&gt;
&lt;br /&gt;
	Слово				Содержимое&lt;br /&gt;
	=--------------------------------------------------------------------&lt;br /&gt;
	1	Номер задания (2-основное, 0 -фоновое)&lt;br /&gt;
	2	Верхняя граница памяти&lt;br /&gt;
	3	Нижняя граница памяти&lt;br /&gt;
	4	Начало области каналов ввода-вывода&lt;br /&gt;
	5	Адрес смешанной области заданий для мониторов FB и XM&lt;br /&gt;
	6-8	Резервные&lt;br /&gt;
		Примечание. Информацию необходимую для управления выполнением&lt;br /&gt;
	основного задания, монитор хранит в смешанной области, которая созда-&lt;br /&gt;
	ется во время загрузки основной программы в младших адресах  основной&lt;br /&gt;
	области памяти.&lt;br /&gt;
		В режиме FB номер задания может иметь значение 0 или 2.  Если&lt;br /&gt;
	задание фоновое,то слово 3 содержит 0 ,а слово 4 содержит адрес,с ко-&lt;br /&gt;
	торого начинается область каналов ввода-вывода. Обычно этот адрес на-&lt;br /&gt;
	ходится в пределах RMON. После выполнения .CDFN,область каналов ввода&lt;br /&gt;
	-вывода заменяется на область,адрес которой указывается пользователем.�&lt;br /&gt;
&lt;br /&gt;
					- 65 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.16.  .GTLIN&lt;br /&gt;
&lt;br /&gt;
		Запрос .GTLIN  используется для получения от пользователя ко-&lt;br /&gt;
	мандной информации, отличной от командных  строк CSI и позволяет про-&lt;br /&gt;
	грамме работать с косвенными файлами.&lt;br /&gt;
		Запрос .GTLIN  требует наличия USR в памяти и принимает вход-&lt;br /&gt;
	ную строку с системного терминала,или из косвенного файла,в зависимо-&lt;br /&gt;
	сти от  того, была  ли вызвана  программа с терминала или командой из &lt;br /&gt;
	косвенного файла.&lt;br /&gt;
		Запрос .GTLIN игнорирует аргумент pstr, если ввод осуществля-&lt;br /&gt;
	ется из косвенного файла, и если ранее была выполнена команда  SET TT&lt;br /&gt;
	QUIET. Если ввод осуществляется с терминала или из косвенного файла,и&lt;br /&gt;
	ранее не была выполнена команда SET TT QUIET ,запрос .GTLIN будет ис-&lt;br /&gt;
	пользовать аргумент pstr для печати побуждающей строки перед выборкой&lt;br /&gt;
	входной строки.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.GTLIN sptr[,pstr]&lt;br /&gt;
	где sptr -адрес буфера  для  записи входной строки;  длина  строки не &lt;br /&gt;
	должна  превышать   81 байт;  строка будет  ограничена нулевым байтом&lt;br /&gt;
	вместо &amp;lt;ВК&amp;gt; &amp;lt;ПС&amp;gt; ;&lt;br /&gt;
	    pstr -адрес побуждающей строки,которая будет печататься на терми-&lt;br /&gt;
	нале; pstr имеет тот же формат, что и аргумент запроса .PRINT .&lt;br /&gt;
		Единственными запрпосами, которые могут осуществлять  ввод из&lt;br /&gt;
	косвенного файла, являются запросы .CSIGEN, .CSISPC и GTLIN .&lt;br /&gt;
&lt;br /&gt;
			4.1.6.17.  .GVAL&lt;br /&gt;
&lt;br /&gt;
		Запрос .GVAL  передает в R0  содержимое ячейки фиксированного&lt;br /&gt;
	смещения.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.GVAL area,offset&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    offset -значение смещения относительно начала RMON .�&lt;br /&gt;
&lt;br /&gt;
					- 66 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.18.  .HERR, .SERR&lt;br /&gt;
&lt;br /&gt;
		Запросы .HERR, .SERR  позволяют задать определенный режим ра-&lt;br /&gt;
	боты монитора при обнаружении условий ошибки.Во время выполнения про-&lt;br /&gt;
	граммы  могут возникнуть  определенные ошибки, вызывающие  прерывание &lt;br /&gt;
	программы. Обычно эти ошибки вызывают выход из программы и печать мо-&lt;br /&gt;
	нитором  сообщения об ошибке. В некоторых случаях невозможно прервать&lt;br /&gt;
	выполнение программы из-за возникших ошибок. Например, многопользова-&lt;br /&gt;
	тельская программа должна сохранять управление и прервать работу толь&lt;br /&gt;
	ко с тем пользователем, который сделал  ошибку. В этом случае полезно&lt;br /&gt;
	использовать запрос .SERR , который запрещает монитору удаление из па&lt;br /&gt;
	мяти программы, в которой обнаружена ошибка. Вместо этого,при возник-&lt;br /&gt;
	новении ошибки после выполнения запроса .SERR устанавливается С-бит и&lt;br /&gt;
	код ошибки в 52-ом байте. В некоторых  случаях запрос .SERR оставляет&lt;br /&gt;
	каналы открытыми,например,если использовались запросы .LOOKUP и.ENTER&lt;br /&gt;
		Запрос .HERR  отменяет действие запроса .SERR . В этом случае&lt;br /&gt;
	печатается сообщение об ошибке и программа удаляется из памяти.&lt;br /&gt;
		Формат макрокоманд&lt;br /&gt;
		.HERR&lt;br /&gt;
		.SERR&lt;br /&gt;
&lt;br /&gt;
	Код			Причина ошибки&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	-1	Вызов USR из подпрограммы завершения&lt;br /&gt;
	-2	В памяти нет драйвера устройства&lt;br /&gt;
	-3	Ошибка ввода-вывода справочника устройства&lt;br /&gt;
	-4	Ошибка .FETCH . Ошибка при чтении драйвера,или попытка загру-&lt;br /&gt;
		зить его выше USR или RMON&lt;br /&gt;
	-5	Ошибка чтения оверлейного сегмента&lt;br /&gt;
	-6	В справочнике устройства нет свободного места для записи &lt;br /&gt;
		файла&lt;br /&gt;
	-7	Недопустимый адрес (только в режиме FB).Попытка выполнить&lt;br /&gt;
		операцию вне границ задания&lt;br /&gt;
	-10	Несуществующий номер канала&lt;br /&gt;
	-11	Недопустимая команда ЕМТ; определен недопустимый функциональ-&lt;br /&gt;
		ный код�&lt;br /&gt;
&lt;br /&gt;
					- 67 -&lt;br /&gt;
	&lt;br /&gt;
			4.1.6.19.  .HRESET&lt;br /&gt;
&lt;br /&gt;
		Запрос .HRESET  прекращает  выполнение операций  ввода-вывода &lt;br /&gt;
	для вызывающей программы и выполняет функции запроса .SRESET.В режиме&lt;br /&gt;
	SJ запрос .HRESET используется для прекращения всех операций ввода-вы&lt;br /&gt;
	вода, тогда как в режиме FB прекращается ввод-вывод для задания,в ко-&lt;br /&gt;
	тором используется .HRESET . Все другие операции ввода-вывода продол-&lt;br /&gt;
	жаются.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.HRESET&lt;br /&gt;
&lt;br /&gt;
			4.1.6.20.  .INTEN&lt;br /&gt;
&lt;br /&gt;
		Запрос .INTEN  используется в подпрограмме обработки прерыва-&lt;br /&gt;
	ния программы пользователя и выполняет следующие функции:&lt;br /&gt;
		1) сообщает монитору о том, что произошло прерывание;&lt;br /&gt;
		2) устанавливает приоритет процессора на соответствующий уро-&lt;br /&gt;
	вень.&lt;br /&gt;
		Все  внешние прерывания  вызывают  работу процессора  по 7-му &lt;br /&gt;
	приоритету. Запрос .INTEN  используется  для понижения  приоритета до &lt;br /&gt;
	уровня, на котором будет работать соответствующее устройство.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.INTEN prior[,pic]&lt;br /&gt;
	где prior -приоритет процессора, который  пользователь  устанавливает &lt;br /&gt;
	для своей  программы обработки  прерывания; обычно тот  приоритет, по&lt;br /&gt;
	которому устройство запрашивает прерывание;&lt;br /&gt;
	pic - необязательный аргумент; должен  быть указан, если подпрограмма&lt;br /&gt;
	обработки  прерывания написана в позиционно-независимых кодах;  любая&lt;br /&gt;
	подпрограмма  обработки  прерывания (драйвер устройства), должна быть &lt;br /&gt;
	написана  в этих кодах.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.21.  .LOCK, .UNLOCK&lt;br /&gt;
&lt;br /&gt;
		Запрос .LOCK  блокирует USR в памяти для выполнения ряда опе-&lt;br /&gt;
	раций.Если существуют условия,вызывающие процесс свопинга,то програм-&lt;br /&gt;
	ма пользователя (та ее часть, которую USR перекрывает в памяти) запи-&lt;br /&gt;
	сывается в блоки диска для  временного хранения данных и USR загружа-�&lt;br /&gt;
&lt;br /&gt;
					- 68 -&lt;br /&gt;
&lt;br /&gt;
	ется в память.В противном случае используется USR,находящаяся в памя-&lt;br /&gt;
	ти и свопинга не происходит. Запрос .LOCK  всегда загружает USR в па-&lt;br /&gt;
	мять, если там ее нет. USR будет блокирована в памяти до тех пор,пока&lt;br /&gt;
	не будет сделан запрос .UNLOCK .Заметим,что в режиме FB,вызов CSI мо-&lt;br /&gt;
	жет также выполнить действие аналогичное .UNLOCK .&lt;br /&gt;
		В режиме FB запрос .LOCK запрещает другим заданиям использо-&lt;br /&gt;
	вать USR .После запроса .LOCK должен быть выполнен запрос .UNLOCK для&lt;br /&gt;
	освобождения USR .&lt;br /&gt;
		Запросы .LOCK и UNLOCK дополняют друг друга и должны быть со-&lt;br /&gt;
	гласованы (т.е.,если выполнено три запроса .LOCK , то должно быть вы-&lt;br /&gt;
	полнено,по крайней мере,три .UNLOCK ,в противном случае USR не 	будет&lt;br /&gt;
	удалена из памяти).Если количество .UNLOCK  больше чем .LOCK ,то ошиб&lt;br /&gt;
	ки не происходит.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.LOCK&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Важно,чтобы программа, использующая .LOCK, не находилась в&lt;br /&gt;
	области памяти,куда будет загружаться USR. Если это произойдет,то по-&lt;br /&gt;
	сле выполнения .LOCK управление будет передано не программе пользова-&lt;br /&gt;
	теля,а USR .&lt;br /&gt;
		2. После выполнения  .LOCK не  рекомендуется использовать об-&lt;br /&gt;
	ласть памяти, которую занимает USR,даже если дальнейшее использование&lt;br /&gt;
	USR не требуется. Это может вызвать непредвиденные результаты при вы-&lt;br /&gt;
	полнении .UNLOCK .&lt;br /&gt;
		3. Если основное задание выполняет .LOCK , в то время как фо-&lt;br /&gt;
	новое задание использует USR , то выполнение основного задания задер-&lt;br /&gt;
	живается.&lt;br /&gt;
		Запрос .UNLOCK удаляет USR из памяти, если она была загружена&lt;br /&gt;
	по запросу .LOCK . Если при выполнении .LOCK использовался свопинг,то&lt;br /&gt;
	.UNLOCK загружает программу пользователя обратно в память.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.UNLOCK&lt;br /&gt;
		Примечание. При  выполнении двух  заданий в  режиме  FB  пары&lt;br /&gt;
	.LOCK/.UNLOCK должны использоваться только по необходимости,т.к. ког-&lt;br /&gt;
	да задание  блокирует USR в памяти, другое задание не может использо-&lt;br /&gt;
	вать USR до тех пор, пока не будет выполнен .UNLOCK в первом задании.�&lt;br /&gt;
&lt;br /&gt;
					- 69 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.22.  .MFPS, .MTPS&lt;br /&gt;
&lt;br /&gt;
		Запросы .MFPS, .MTPS обеспечивают доступ к PSW.&lt;br /&gt;
		Запрос .MFPS используется для выборки PSW.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MFPS addr&lt;br /&gt;
	где addr -адрес,  по которому записывается содержимое PSW; если адрес&lt;br /&gt;
	не указан,содержимое PSW пересылается  в стек;&lt;br /&gt;
		Запрос .MTPS используется для установки PSW.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTPS addr&lt;br /&gt;
	где addr -адрес слова, которое  будет  записано в  PSW; если адрес не&lt;br /&gt;
	указан,то значение для PSW берется из стека.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.23.  .MRKT  (вариант SJ)&lt;br /&gt;
&lt;br /&gt;
		Запрос .MRKT планирует  запуск  подпрограммы завершения через&lt;br /&gt;
	определенный интервал времени.&lt;br /&gt;
		Запросы .MRKT используют элементы очереди из списка элементов &lt;br /&gt;
	очереди ввода-вывода. Элемент очереди используется до тех пор,пока не&lt;br /&gt;
	будет введена  подпрограмма  завершения  или не будет выполнен запрос&lt;br /&gt;
	.CMKT .&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MRKT area, time, crtn, id&lt;br /&gt;
	где area -адрес блока из 4-х слов аргументов ЕМТ;&lt;br /&gt;
	    time -адрес блока из 2-х слов,содержащего величину интервала вре-&lt;br /&gt;
	мени;&lt;br /&gt;
	    crtn -точка входа подпрограммы завершения;&lt;br /&gt;
	    id   -число, используемое  для идентификации запроса с программой &lt;br /&gt;
	завершения и запросами .CMKT ;  это число  не  должно быть в пределах&lt;br /&gt;
	от  177400 до 177777; несколько запросов .MRKT могут иметь один и тот &lt;br /&gt;
	же id ; на входе  в  подпрограмму завершения R0 будет содержать число &lt;br /&gt;
	id .�&lt;br /&gt;
&lt;br /&gt;
					- 70 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.24.  .MTATCH  (вариант FB и XM)&lt;br /&gt;
&lt;br /&gt;
		Запрос .MTATCH логически связывает задание с терминалом. Этот&lt;br /&gt;
	запрос должен быть выполнен перед тем,как задание начнет использовать&lt;br /&gt;
	терминал в мультитерминальном режиме.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTATCH area, addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес слова асинхронного состояния терминала или 0 ;&lt;br /&gt;
	    unit -логический номер терминала.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.25.  .MTDTCH  (вариант FB и XM )&lt;br /&gt;
&lt;br /&gt;
		Запрос .MTDTCH  прерывает логическую  связь указанного терми-&lt;br /&gt;
	нала с заданием и  делает его  доступным  для других заданий. Попытка &lt;br /&gt;
	прервать связь с терминалом, логически связанным  с  другим заданием,&lt;br /&gt;
	приводит к ошибке.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTDTCH area, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    unit -логический номер терминала.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.26.  .MTSET (вариант FB и XM)&lt;br /&gt;
&lt;br /&gt;
		Запрос .MTSET позволяет  установить характеристики терминала.&lt;br /&gt;
	Он  также  определяет  режим  ввода-вывода для  указанного терминала.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTSET area, addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес блока из 4-х  слов  состояния  указанного  терминала;&lt;br /&gt;
	    unit -логический номер терминала.�&lt;br /&gt;
					- 71 -&lt;br /&gt;
&lt;br /&gt;
		Структура блока состояния терминала:&lt;br /&gt;
&lt;br /&gt;
		-----------------------&lt;br /&gt;
			M.TSTS&lt;br /&gt;
		-----------------------&lt;br /&gt;
			M.TSTS2&lt;br /&gt;
		-----------------------&lt;br /&gt;
			M.TSTS3&lt;br /&gt;
		-----------------------&lt;br /&gt;
		M.TSTW		M.TWID&lt;br /&gt;
		-----------------------&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	Обозначение		Описание&lt;br /&gt;
	--------------------------------------------------&lt;br /&gt;
	M.TSTS		Слово конфигурации терминала&lt;br /&gt;
	M.TSTS2		Резервное&lt;br /&gt;
	M.TSTS3		Резервное&lt;br /&gt;
	M.TWID		Длина строки&lt;br /&gt;
	M.TSTW		Байт состояния терминала	&lt;br /&gt;
		Значения разрядов слова конфигурации терминала:&lt;br /&gt;
&lt;br /&gt;
	Разряд	Содержание	Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	0	1		Аппаратная табуляция&lt;br /&gt;
	1	2		Выполнение  возврата каретки и перевода стро-&lt;br /&gt;
				ки, если  действительная  длина строки больше&lt;br /&gt;
				установленной в M.TWID&lt;br /&gt;
	2	4		Аппаратный перевод формата&lt;br /&gt;
	3	10		Выполнение команд СУ/F и СУ/B&lt;br /&gt;
	4,5	-		Резервные&lt;br /&gt;
	6	100		Запрещение режима ожидания для терминала (эк-&lt;br /&gt;
				вивалентен 6-ому разряду в ССЗ); разряд TCBIT&lt;br /&gt;
	7-11	-		Резервные&lt;br /&gt;
	12	1000		Режим посимвольного ввода  (эквивалентен раз-&lt;br /&gt;
				ряду специального режима в ССЗ); разряд TTSPC&lt;br /&gt;
	13	-		Резервный	&lt;br /&gt;
	14	40000		Запрещение преобразования кодов символов ниж-&lt;br /&gt;
				него регистра в коды символов верхнего регис-&lt;br /&gt;
				тра�&lt;br /&gt;
&lt;br /&gt;
					- 72 -&lt;br /&gt;
		&lt;br /&gt;
		Значения разрядов для M.TSTW :&lt;br /&gt;
&lt;br /&gt;
	Разряд	Содержимое		Значение&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	10	2000		Терминал используется  основным и фоновым за-&lt;br /&gt;
				даниями&lt;br /&gt;
	11	4000		Терминал не включен&lt;br /&gt;
	14	40000		Дважды подана команда СУ/С&lt;br /&gt;
	15	100000		Системный терминпл&lt;br /&gt;
	&lt;br /&gt;
			4.1.6.27.  .MTGET (вариант FB и XM)&lt;br /&gt;
&lt;br /&gt;
		Запрос .MTGET  позволяет получить информацию о состоянии ука-&lt;br /&gt;
	занного терминала. После  выполнения запроса блок состояния будет со-&lt;br /&gt;
	держать информацию:&lt;br /&gt;
&lt;br /&gt;
	Относительный			Содержимое&lt;br /&gt;
	номер байта&lt;br /&gt;
	в блоке&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
	0		Слово конфигурации терминала.Значения разрядов те же,&lt;br /&gt;
			что и в .MTSET&lt;br /&gt;
	2-4		Резервные&lt;br /&gt;
	6		Длина строки&lt;br /&gt;
	7		Текущее положение строки&lt;br /&gt;
	&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTGET area, addr, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес блока состояния терминала из 4-х слов;&lt;br /&gt;
	    unit -логический номер терминала, информацию о состоянии которого&lt;br /&gt;
	требуется получить.�&lt;br /&gt;
&lt;br /&gt;
					- 73 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.28.  .MTRCTO (вариант FB и XM )&lt;br /&gt;
&lt;br /&gt;
		Запрос  .MTRCTO  является  мультитерминальной  формой запроса&lt;br /&gt;
	.RCTRLO .Он отменяет команду СУ/D и разрешает вывод на указанный тер-&lt;br /&gt;
	минал.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MTRCTO area, unit&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    unit -логический номер терминала.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.29.  .MWAIT  (режим FB )&lt;br /&gt;
&lt;br /&gt;
		Запрос .MWAIT переводит программу в состояние ожидания до тех&lt;br /&gt;
	пор,пока все сообщения не будут переданы или получены. С помощью это-&lt;br /&gt;
	го запроса  пользователь может удостовериться в правильности выполне-&lt;br /&gt;
	ния операции.Запрос .MWAIT используется в основном совместно с запро-&lt;br /&gt;
	сами .RCVD или .SDAT ,которые не предусматривают специальных действий &lt;br /&gt;
	после получения или передачи сообщений (данных).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.MWAIT&lt;br /&gt;
&lt;br /&gt;
			4.1.6.30.  .PROTECT, .UNPROTECT  (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Запрос .PROTECT  используется  для получения  исключительного &lt;br /&gt;
	права пользования вектором прерывания в диапазоне 0-476 и  устанавли-&lt;br /&gt;
	вает защиту вектора.&lt;br /&gt;
		Если запрос .PROTECT завершен успешно,то это указывает на то,&lt;br /&gt;
	что ячейки вектора не используются  другим заданием или монитором и в&lt;br /&gt;
	этом случае текущее задание может записать адрес подпрограммы обрабо-&lt;br /&gt;
	тки прерывания и значения уровня приоритета в эти ячейки.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.PROTECT area, addr&lt;br /&gt;
	где area -адрес блока из 3-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес вектора,который будет использоваться данным заданием;&lt;br /&gt;
	addr должен быть кратен четырем и меньше 476.&lt;br /&gt;
		Запрос .UNPROTECT отменяет результат действия запроса.PROTECT�&lt;br /&gt;
&lt;br /&gt;
					- 74 -&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.UNPROTECT area, addr&lt;br /&gt;
	где area -adres bloka iz 2-h slow argumentow EMT;&lt;br /&gt;
	    addr -адрес вектора,который освобождается от защиты.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.31. .QSET&lt;br /&gt;
&lt;br /&gt;
		Все операции ввода-вывода в системе RT11 осуществляются через&lt;br /&gt;
	централизованную систему  управления очередью запросов. Каждый запрос&lt;br /&gt;
	несинхронной передачи (например,.WRITE) требует для своего выполнения&lt;br /&gt;
	наличия элемента очереди.Если для очередного запроса ввода-вывода нет&lt;br /&gt;
	свободного элемента очереди, выполнение  программы пользователя будет&lt;br /&gt;
	блокировано до тех пор,пока элемент очереди не освободится. В  режиме&lt;br /&gt;
	FB одно из заданий может выполняться,пока другое ожидает элемент оче-&lt;br /&gt;
	реди.&lt;br /&gt;
		Запрос .QSET используется для того,чтобы увеличить число эле-&lt;br /&gt;
	ментов очереди ввода-вывода. Общее правило заключается в том, чтобы в&lt;br /&gt;
	каждой программе количество элементов очереди было на единицу больше,&lt;br /&gt;
	чем количество запросов ввода-вывода,которые будут выполняться однов-&lt;br /&gt;
	ременно на различных каналах.&lt;br /&gt;
		Запросы .MRKT, .TWAIT, .SDAT также используют элементы очере-&lt;br /&gt;
	ди и должны приниматься во внимание при определении количества элеме-&lt;br /&gt;
	нтов очереди для программы.Каждый раз,когда выполняется .QSET ,непре-&lt;br /&gt;
	рывная область памяти,которая отводится под элементы очереди, делится&lt;br /&gt;
	на сегменты, содержащие по 7 слов (по 10 слов для XM) и связывается с&lt;br /&gt;
	уже существующей очередью ввода-вывода для этого задания. &lt;br /&gt;
		Запрос .QSET может быть  использован неоднократно в программе &lt;br /&gt;
	пользователя. При этом область памяти для новых элемнтов очереди, от-&lt;br /&gt;
	водимые различными .QSET ,необязательно должны быть соприкасающимися.&lt;br /&gt;
		Область памяти для дополнительных элементов очереди ввода-вы-&lt;br /&gt;
	вода должна  быть определена внутри  программы  пользователя. Запросы&lt;br /&gt;
	.SRESET  и .HRESET аннулируют результат действия .QSET .�&lt;br /&gt;
					- 75 -&lt;br /&gt;
&lt;br /&gt;
		Необходимо  соблюдать осторожность  при распределении  памяти&lt;br /&gt;
	для элементов очереди.Очередь ввода-вывода изменяется монитором асин-&lt;br /&gt;
	хронно. Если область, отведенная пользователем для элементов  очереди&lt;br /&gt;
	оказалась недостаточной, это приведет к нарушению выполнения програм-&lt;br /&gt;
	мы. Элементы для очереди ввода-вывода нельзя располагать в оверлейной&lt;br /&gt;
	области, а также в области памяти, предназначенной для свопинга USR .&lt;br /&gt;
		Следующие запросы требуют  для своего выполнения элемент оче-&lt;br /&gt;
	реди:&lt;br /&gt;
		.TWAIT	.READW	.WRITE	.SDAT	.SDATW&lt;br /&gt;
		.MRKT	.RCVD	.WRITC	.READC	.SDATC&lt;br /&gt;
		.READ	.RCVDC	.WRITW	.RCVDW&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.QSET addr, qlend&lt;br /&gt;
	где addr -адрес начала  области для новых элементов очереди ввода-вы-&lt;br /&gt;
	вода;&lt;br /&gt;
	    qlend-число новых элементов очереди ввода-вывода.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.32.  .RCTRLO&lt;br /&gt;
&lt;br /&gt;
		Запрос .RCTRLO обеспечивает готовность системного терминала к&lt;br /&gt;
	печати.&lt;br /&gt;
		Команда СУ/D запрещает вывод на  терминал до тех пор, пока не&lt;br /&gt;
	будет повторно подана команда СУ/D или в программе  не будет выполнен&lt;br /&gt;
	запрос .RCTRLO .Т.е. программа,в которой предусмотрене печать сообще-&lt;br /&gt;
	ний на терминале, должна предусматривать возможность подачи пользова-&lt;br /&gt;
	телем команды СУ/D.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.RCTRLO&lt;br /&gt;
&lt;br /&gt;
			4.1.6.33.  .SPND, .RSUM  (режим FB)&lt;br /&gt;
&lt;br /&gt;
		Запрос .SPND  временно  приостанавливает выполнение программы&lt;br /&gt;
	пользователя и допускает  работу только подпрограмм  завершения  (для&lt;br /&gt;
	операций ввода-вывода и запросов .MRKT).&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SPND&lt;br /&gt;
		Запрос .RSUM из подпрограммы завершения вновь передает управ-&lt;br /&gt;
	ление программе пользователя.�&lt;br /&gt;
&lt;br /&gt;
					- 76 -&lt;br /&gt;
&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.RSUM&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1. Монитор  содержит так  называемый счетчик приостановки для&lt;br /&gt;
	каждого задания. Этот  счетчик уменьшается по .SPND и  наращиватся по &lt;br /&gt;
	.RSUM . Задание будет фактически приостановленным, если счетчик будет&lt;br /&gt;
	содержать отрицательное значение.Поэтому,если .RSUM будет выполняться&lt;br /&gt;
	перед .SPND ,то последний запрос будет игнорироваться.&lt;br /&gt;
		2. Программа  должна  использовать равное  количество .SPND и &lt;br /&gt;
	.RSUM .&lt;br /&gt;
		3. Запрос .SPND  из подпрограммы завершения уменьшает счетчик&lt;br /&gt;
	приостановки, но не приостанавливает выполнение программы.Если в под-&lt;br /&gt;
	программе завершения выполняется .SPND , выполнение программы продол-&lt;br /&gt;
	жается до тех пор,пока она также не выполнит .SPND ,после чего выпол-&lt;br /&gt;
	нение программы будет  приостановлено  и  для возобновления ее работы&lt;br /&gt;
	потребуется уже два запроса .RSUM .&lt;br /&gt;
		4. .SPND и .RSUM подобно другим запросам,могут быть выполнены&lt;br /&gt;
	в подпрограммах обработки прерываний, которые написаны пользователем,&lt;br /&gt;
	если ранее были выполнены .INTEN  и .SYNCH .Все замечания,относящиеся &lt;br /&gt;
	к .SPND и .RSUM из  подпрограммы завершения, имеют силу и для каждого&lt;br /&gt;
	случая.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.34.  .SCCA&lt;br /&gt;
&lt;br /&gt;
		Запрос .SCCA выполняет следующие функции:&lt;br /&gt;
		- блокирует выполнение команды СУ/C;&lt;br /&gt;
		-сообщает о том,что с терминала было подано две команды СУ/C.&lt;br /&gt;
		По запросу .SCCA  команда  СУ/C воспринимается программой как&lt;br /&gt;
	обычная управляющая команда без специальных функций.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SCCA area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес слова состояния терминала.&lt;br /&gt;
		Слово состояния терминала  предназначено для фиксирования по-&lt;br /&gt;
	дачи двух команд СУ/C.  Если в нем установлен 15-й разряд,то это зна-&lt;br /&gt;
	чит, что с терминала были  последовательно  поданы две  команды СУ/C.&lt;br /&gt;
	Этот разряд должен очищаться программой пользователя.&lt;br /&gt;
		Если аргумент addr равен  нулю в запросе .SCCA , монитор вос-&lt;br /&gt;
	станавливает системные функции команды СУ/C .�&lt;br /&gt;
&lt;br /&gt;
					- 77 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.35.  .SETTOP&lt;br /&gt;
&lt;br /&gt;
		Запрос .SETTOP  позволяет программе  пользователя  установить&lt;br /&gt;
	новый адрес в качестве верхней границы программы. Монитор определяет,&lt;br /&gt;
	является ли этот  адрес допустимым и нужен ли  свопинг USR. Например,&lt;br /&gt;
	если запрос определяет адрес  ниже начального адреса USR, то  свопинг &lt;br /&gt;
	USR не требуется.  Если .SETTOP из фонового  задания определяет адрес&lt;br /&gt;
	выше начального адреса .USR и ранее не была выполнена команда SET USR&lt;br /&gt;
	NOSWAP, то необходим свопинг USR .&lt;br /&gt;
		После выполнения .SETTOP R0 и ячейка 50 будут содержать адрес&lt;br /&gt;
	памяти, предоставленный  монитором  программе пользователя в качестве&lt;br /&gt;
	верхнего адреса программы. Если программа запрашивает по .SETTOP  не-&lt;br /&gt;
	допустимый адрес для данного задания,монитор не удовлетворит это тре-&lt;br /&gt;
	бование и установит для программы фактически допустимую верхнюю грани&lt;br /&gt;
	цу памяти.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SETTOP addr&lt;br /&gt;
	где addr -запрашиваемый адрес верхней границы программы.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.36.  .SFPA&lt;br /&gt;
&lt;br /&gt;
		Запрос .SFPA позволяет пользователю,работающему с Блоком пла-&lt;br /&gt;
	вающей запятой, установить адрес подпрограммы обработки прерывания от&lt;br /&gt;
	БПЗ. Если адрес подпрограммы обработки прерывания не определен и про-&lt;br /&gt;
	исходит прерывание от БПЗ,монитор печатает сообщение об ошибке и уда-&lt;br /&gt;
	ляет программу пользователя из памяти.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SFPA area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес подпрограммы обработки прерывания от БПЗ.&lt;br /&gt;
		По окончании работы подпрограммы обработки прерывания от БПЗ,&lt;br /&gt;
	необходимо повторить запрос .SFPA , т.к. монитор запрещает  обработку&lt;br /&gt;
	прерываний после  обслуживания одного из них.  Это делается для того,&lt;br /&gt;
	чтобы  исключить возможность  зацикливания программы при многократном &lt;br /&gt;
	повторении прерывания от БПЗ.&lt;br /&gt;
		При использовании БПЗ,  перед запуском подпрограммы обработки&lt;br /&gt;
	прерывания от БПЗ, монитор выполняет команду STST -(SP).&lt;br /&gt;
		Поэтому, перед командой RTI, подпрограмма пользователя должна&lt;br /&gt;
	увеличить указатель стека на два.�&lt;br /&gt;
&lt;br /&gt;
					- 78 -&lt;br /&gt;
&lt;br /&gt;
			4.1.6.37.  .SRESET&lt;br /&gt;
&lt;br /&gt;
	Запрос .SRESET выполняет следующие функции:&lt;br /&gt;
		1) удаляет из памяти драйверы устройств,которые были загруже-&lt;br /&gt;
	ны по запросу .FETCH ; драйверы, которые были  загружены  по  команде&lt;br /&gt;
	LOAD , остаются  резидентными, как и  драйвер  системного устройства;&lt;br /&gt;
		2) стирает открытые в настоящее  время файлы (файлы, открытые&lt;br /&gt;
	по .ENTER , никогда не станут постоянными);&lt;br /&gt;
		3) восстанавливает число каналов ввода-вывода (16.);  каналы,&lt;br /&gt;
	определенные по .CDFN ,аннулируются;&lt;br /&gt;
		4) восстанавливает очередь ввода-вывода (первоначально - один&lt;br /&gt;
	элемент); QSET должен  выполняться повторно  для определения дополни-&lt;br /&gt;
	тельных элементов очереди.;&lt;br /&gt;
		5) очищает очередь подпрограмм завершения.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SRESET&lt;br /&gt;
&lt;br /&gt;
			4.1.6.38.  .SYNCH&lt;br /&gt;
&lt;br /&gt;
		Запрос .SYNCH  позволяет в  подпрограмме обработки прерывания&lt;br /&gt;
	использовать программные запросы. Без .SYNCH  запросы из подпрограммы&lt;br /&gt;
	обработки прерывания не будут обрабатываться монитором.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.SYNCH area[,pic]&lt;br /&gt;
	где area -адрес блока из 7-ми слов; этот блок необходим при использо-&lt;br /&gt;
	вании .SYNCH ; содержимое блока формируется пользователем.&lt;br /&gt;
	    pic  -необязательный аргумент, который дает  макрокоманде  .SYNCH &lt;br /&gt;
	возможность образования  PIC -кодов для использования драйверами уст-&lt;br /&gt;
	ройств.�&lt;br /&gt;
&lt;br /&gt;
					- 79 -&lt;br /&gt;
&lt;br /&gt;
	Слово			Содержимое&lt;br /&gt;
	---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	1	Используется только системой;  его содержимое не должно изме-&lt;br /&gt;
		няться пользователем&lt;br /&gt;
	2	Номер текущего задания (0 или 2);может быть получен с помощью&lt;br /&gt;
		запроса .GTJB&lt;br /&gt;
	3,4	Не используются&lt;br /&gt;
	5	Аргумент R0 ; при успешном выполнении .SYNCH регистр R0 будет&lt;br /&gt;
		содержать этот аргумент&lt;br /&gt;
	6	-1&lt;br /&gt;
	7	0&lt;br /&gt;
		&lt;br /&gt;
		Примечание. Между выполнением запросов .INTEN и .SYNCH нельзя&lt;br /&gt;
		выполнять операции со стеком.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.39.  .TLOCK&lt;br /&gt;
&lt;br /&gt;
		Запрос .TLOCK может использоваться программами,которые выпол-&lt;br /&gt;
	няются в режиме FB, для того чтобы сделать USR резидентной,если толь-&lt;br /&gt;
	ко USR не занята обслуживанием другого задания. Если USR используется &lt;br /&gt;
	другим заданием, то при выполнении .TLOCK  будет установлен С-разряд,&lt;br /&gt;
	что указывает на то,что запрос не выполнен.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.TLOCK&lt;br /&gt;
&lt;br /&gt;
			4.1.6.40.  .TRPSET&lt;br /&gt;
&lt;br /&gt;
		Запрос .TRPSET  позволяет установить адрес подпрограммы обра-&lt;br /&gt;
	ботки прерывания по 4-му и 10-му векторам. Значение С-разряда на вхо-&lt;br /&gt;
	де в подпрограмму указывает на то,какое прерывание произошло: очищен-&lt;br /&gt;
	ный С-разряд - прерывание по  4-му вектору; установленный  С-разряд -&lt;br /&gt;
	по 10-му вектору.Выход из подпрограммы обработки прерывания пользова-&lt;br /&gt;
	теля осуществляется по команде RTI .&lt;br /&gt;
		Если при переполнении стека произошло прерывание по 4-му век-&lt;br /&gt;
	тору, то оно не  обрабатывается по .TRPSET и  на терминале печатается &lt;br /&gt;
	сообщение  ?MON-F-STACK OVERFLOW  старыми версиями  монитора  SJ  или&lt;br /&gt;
	?MON-F-TRAP TO 4 монитором FB и XM и новыми версиями SJ.�&lt;br /&gt;
&lt;br /&gt;
					- 80 -&lt;br /&gt;
&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.TRPSET area, addr&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    addr -адрес подпрограммы обработки прерывания;если addr=0,то пре-&lt;br /&gt;
	дыдущий .TRPSET отменяется.&lt;br /&gt;
&lt;br /&gt;
			4.1.6.41.   .TWAIT&lt;br /&gt;
&lt;br /&gt;
		Запрос .TWAIT приостанавливает выполнение программы пользова-&lt;br /&gt;
	теля на указанный интервал  времени. Запрос .TWAIT требует для своего &lt;br /&gt;
	выполнения элемент очереди.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.TWAIT area, time&lt;br /&gt;
	где area -адрес блока из 2-х слов аргументов ЕМТ;&lt;br /&gt;
	    time -адрес блока из двух слов,которые содержат величину интерва-&lt;br /&gt;
	ла времени  (первое  слово - нижнюю границу интервала, второе слово - &lt;br /&gt;
	верхнюю границу интервала).&lt;br /&gt;
&lt;br /&gt;
			4.1.6.42.  .WAIT&lt;br /&gt;
&lt;br /&gt;
		Запрос  .WAIT  приостанавливает  выполнение  программы до тех &lt;br /&gt;
	пор, пока не закончится операция ввода-вывода на указанном канале. По&lt;br /&gt;
	этому  запросу можно получить  информацию  о правильности  выполнения &lt;br /&gt;
	операции: если канал не открыт или произошла аппаратная ошибка, уста-&lt;br /&gt;
	навливается С-разряд.&lt;br /&gt;
		В режиме FB запрос .WAIT , если операция ввода-вывода не  за-&lt;br /&gt;
	вершена, вызывает  задержку выполнения одного из заданий и выполнение&lt;br /&gt;
	другого, если оно существует.&lt;br /&gt;
		Формат макрокоманды&lt;br /&gt;
		.WAIT chan�&lt;br /&gt;
&lt;br /&gt;
					- 81 -&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
			5.СООБЩЕНИЯ&lt;br /&gt;
&lt;br /&gt;
	?CSI-F-DEVICE FULL&lt;br /&gt;
	ПРИЧИНА. На устройстве недостаточно места для выходного файла.Сообще-&lt;br /&gt;
		ние печатается в том случае, если программа использует запрос&lt;br /&gt;
		.CSIGEN&lt;br /&gt;
	ДЕЙСТВИЕ. Увеличить размер свободной области на томе: стереть или пе-&lt;br /&gt;
		реписать на другой том  ненужные  файлы, сжать том по команде&lt;br /&gt;
		SQUEEZE, использовать переключатель /ALLOCATE или конструкцию&lt;br /&gt;
		[n] для выходного файла.&lt;br /&gt;
&lt;br /&gt;
	?CSI-F-FILE NOT FOUND&lt;br /&gt;
	ПРИЧИНА. Входной файл не найден.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?CSI-F-ILLEGAL COMMAND&lt;br /&gt;
	ПРИЧИНА. Поданная  команда имеет  синтаксическую ошибку  или ее длина&lt;br /&gt;
		превышает 80 знаков.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить команду.&lt;br /&gt;
&lt;br /&gt;
	?CSI-F-ILLEGAL DEVICE&lt;br /&gt;
	ПРИЧИНА. В системе не установлено обслуживание указанного устройства.&lt;br /&gt;
		На системном томе  нет  соответствующего драйвера.&lt;br /&gt;
		ДЕЙСТВИЕ. Проверить команду. Скопировать требуемый драйвер на&lt;br /&gt;
		системный том.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ADDRESS&lt;br /&gt;
	ПРИЧИНА. Недопустимый адрес в команде E и D. Адрес должен быть в пре-&lt;br /&gt;
		делах от 0 до начала RMON  или до начала драйверов, если  они&lt;br /&gt;
		были загружены по команде LOAD.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить базу перемещения,если ранее была подана команда B.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ALREADY INSTALLED/ASSIGNED&lt;br /&gt;
	ПРИЧИНА. Устройство уже описано в системных таблицах.&lt;br /&gt;
	ДЕЙСТВИЕ. Удалить имя устройства из таблицы монитора или отменить ло-&lt;br /&gt;
		гическое имя устройства, чтобы записать  в таблицу имя нового&lt;br /&gt;
		драйвера.�&lt;br /&gt;
&lt;br /&gt;
					- 82 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-AMBIGUOUS COMMAND&lt;br /&gt;
	ПРИЧИНА. Поданная команда определяется неоднозначно (например, CO мо-&lt;br /&gt;
		жет означать COPY или COMPILE).&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать допустимое сокращение команды.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-AMBIGUOUS OPTION&lt;br /&gt;
	ПРИЧИНА. Указанный переключатель определяется неоднозначно.&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать допустимое сокращение.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-BAD FETCH&lt;br /&gt;
	ПРИЧИНА. Ошибка чтения драйвера с системного тома.&lt;br /&gt;
	ДЕЙСТВИЕ. Убедиться,что драйверы устройств описаны в системных табли-&lt;br /&gt;
		цах и не содержат плохих блоков&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-COMMAND FILE I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Ошибка чтения косвенного файла.&lt;br /&gt;
	ДЕЙСТВИЕ. Убедиться, что аппаратура функционирует нормально.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-COMMAND FILE NESTING TOO DEEP&lt;br /&gt;
	ПРИЧИНА. Обращения  к косвенному  файлу на четвертом уровне вложения.&lt;br /&gt;
	ДЕЙСТВИЕ. Ограничить вложение косвенных файлов тремя уровнями.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-COMMAND FILE NOT AT END OF LINE&lt;br /&gt;
	ПРИЧИНА. Косвенный файл должен быть последним (не считая комментария)&lt;br /&gt;
		в строке команды Клавиатурного монитора.Наличие недопустимого &lt;br /&gt;
		символа в имени косвенного файла.&lt;br /&gt;
	ДЕЙСТВИЕ. Исправить команду.Убедиться,что имя косвенного файла содер-&lt;br /&gt;
		жит допустимые символы.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-COMMAND FILE NOT FOUND&lt;br /&gt;
	ПРИЧИНА. На системном устройстве  нет  косвенного  файла  с указанным &lt;br /&gt;
		именем.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить, есть ли  на системном устройстве указанный файл.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-COMMAND STPING TOO COMPLICATED&lt;br /&gt;
	ПРИЧИНА. Команда слишком сложна для анализа.(Команда содержит большое&lt;br /&gt;
		число переключателей).&lt;br /&gt;
	ДЕЙСТВИЕ. Упростить команду.�&lt;br /&gt;
&lt;br /&gt;
					- 83 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-CONFLICTING OPTION&lt;br /&gt;
	ПРИЧИНА. В команде указаны несовместимые переключатели.&lt;br /&gt;
	ДЕЙСТВИЕ. Исправить команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-CONFLICTING SYSTEM OPTION&lt;br /&gt;
	ПРИЧИНА. Используются несовпадающие варианты  генерации драйвера уст-&lt;br /&gt;
		ройства и RMON.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить соответствие вариантов генерации.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-DEVICE LOADED OR NOT REMOVABLE&lt;br /&gt;
	ПРИЧИНА. В команде REMOVE указан недопустимый драйвер устройства (ТТ,&lt;br /&gt;
		BA,драйвер системного устройства).Драйвер,указанный в команде&lt;br /&gt;
		REMOVE,является резидентным в памяти.&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать команду UNLOAD перед REMOVE.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ERROR IN FILE SPEC&lt;br /&gt;
	ПРИЧИНА. Ошибка в формате  спецификации файла. Спецификация файла от-&lt;br /&gt;
		сутствует в команде.&lt;br /&gt;
	ДЕЙСТВИЕ. Подать правильную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-FILE NOT FOUND&lt;br /&gt;
	ПРИЧИНА. Файл,указанный в команде R,RUN,GET или FRUN не найден.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-FOREGROUND ACTIVE&lt;br /&gt;
	ПРИЧИНА. Попытка выполнить команду  FRUN или UNLOAD FG когда выполня-&lt;br /&gt;
		ется программа в основной области памяти.&lt;br /&gt;
	ДЕЙСТВИЕ. Ждать  завершения  работы основной программы, перед тем как &lt;br /&gt;
		выполнить команду FRUN или UNLOAD&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-HANDLER FILE I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Аппаратная ошибка чтения нулевого блока драйвера.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить правильность функционирования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL COMMAND&lt;br /&gt;
	ПРИЧИНА.Подана недопустимая команда KMON.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить команду.�&lt;br /&gt;
&lt;br /&gt;
					- 84 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL CONTINUATION&lt;br /&gt;
	ПРИЧИНА. Попытка продолжить строку косвенного файла на системный тер-&lt;br /&gt;
		минал.&lt;br /&gt;
	ДЕЙСТВИЕ. Исправить косвенный файл.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL DATE&lt;br /&gt;
	ПРИЧИНА. Недопустимый аргумент в команде DATE.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL DEVICE&lt;br /&gt;
	ПРИЧИНА. Указано недопустимое или  несуществующее устройство. Попытка &lt;br /&gt;
		выполнить  операцию, недопустимую  для указанного устройства.&lt;br /&gt;
		Попытка выполнить команду  UNLOAD для драйвера  устройства, с &lt;br /&gt;
		которым  работает   основное  задание.  Попытка  установить в &lt;br /&gt;
		системе  обслуживание TT:  или BA:  по  команде  INSTALL .&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.Выполнить UNLOAD после &lt;br /&gt;
		завершения работы основного задания. Скопировать драйверы TT:&lt;br /&gt;
		и BA: на системный том и перезагрузить систему.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL DEVICE FOR COMMAND FILE&lt;br /&gt;
	ПРИЧИНА. Косвенный файл вызван с устройства последовательного доступа&lt;br /&gt;
		к данным (PC: , MT:).&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать для косвенного файла устройство с произвольным&lt;br /&gt;
		доступом к данным ( RK: ,DX: ) .&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL NO ON OPTION.	&lt;br /&gt;
	ПРИЧИНА. Префикс NO не применим для  указанного переключателя (напри-&lt;br /&gt;
		мер, COPY/NOBOOT ).&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL OPTION&lt;br /&gt;
	ПРИЧИНА. В команде указан недопустимый переключатель.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL OPTION FOR PROGRAM&lt;br /&gt;
	ПРИЧИНА. Используемый переключатель относится к другой команде.&lt;br /&gt;
	ДЕЙСТВИЕ. Выбрать соответствующий переключатель.�&lt;br /&gt;
&lt;br /&gt;
					- 85 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL REL FILE FORMAT&lt;br /&gt;
	ПРИЧИНА.Формат указанного файла не является перемещаемым форматом &lt;br /&gt;
		отображения памяти.&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать соответствующий формат файла.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL TIME&lt;br /&gt;
	ПРИЧИНА. Недопустимый аргумент в команде TIME&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL UNIT NUMBER&lt;br /&gt;
	ПРИЧИНА. В команде SET TT:CONSOL=n  указан  недопустимый логический &lt;br /&gt;
		номер терминала (ЛНТ).&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать допустимый для данной конфигурации терминал.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-ILLEGAL VALUE ON OPTION&lt;br /&gt;
	ПРИЧИНА. В  переключателе  указан  недопустимый  аргумент  (например,&lt;br /&gt;
		DIRECTORY/COLUMN:n ,где n превышает допустимое число колонок)&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать допустимый аргумент.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-LINE TOO LONG&lt;br /&gt;
	ПРИЧИНА. Команда  или строка косвенного  файла  превышает  допустимую &lt;br /&gt;
		длину (максимальная длина - 200. знаков).&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать допустимую длину команды (строки).&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-LOGICAL NAME NOT FOUND&lt;br /&gt;
	ПРИЧИНА. Логическое  имя устройства, указанное в  команде DEASSIGN, в&lt;br /&gt;
		системе не определено.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить  поданную команду. Использовать команду  SHOW для&lt;br /&gt;
		получения информации о логических именах устройств.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-MUST 'R BATCH', TYPE '/U'&lt;br /&gt;
	ПРИЧИНА. Попытка  выполнить  команду  UNLOAD BA  без  предварительной &lt;br /&gt;
		разгрузки драйвера.&lt;br /&gt;
	ДЕЙСТВИЕ. Вызвать BATCH и использовать переключатель /U для разгрузки &lt;br /&gt;
		драйвера. BATCH автоматически выполнит команду UNLOAD BA.�&lt;br /&gt;
&lt;br /&gt;
					- 86 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO CLOCK&lt;br /&gt;
	ПРИЧИНА. Нет таймера.&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать команду TIME нельзя.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO DATE&lt;br /&gt;
	ПРИЧИНА.Дата не установлена.&lt;br /&gt;
	ДЕЙСТВИЕ.Ввести дату,используя команду DATE.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO FG&lt;br /&gt;
	ПРИЧИНА. Попытка  выполнить команду  SUSPEND, RESUME  или  UNLOAD FG,&lt;br /&gt;
		когда в памяти нет основного задания.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную комнду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO FILE&lt;br /&gt;
	ПРИЧИНА. В команде не указано имя файла.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO HANDLER FILE ON SY:&lt;br /&gt;
	ПРИЧИНА. Указанного драйвера нет на системном томе.&lt;br /&gt;
	ДЕЙСТВИЕ. Скопировать требуемый драйвер на системный том.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NO ROOM&lt;br /&gt;
	ПРИЧИНА. Нет свободного места в таблицах монитора при попытке устано-&lt;br /&gt;
		вить в системе обслуживание  нового  устройства  (по  команде&lt;br /&gt;
		INSTALL) или при  попытке присвоить устройству логическое имя&lt;br /&gt;
		(по команде ASSIGN ).&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать команду REMOVE или DEASSIGN.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-NOT ENOUGH MEMORY&lt;br /&gt;
	ПРИЧИНА. Для выполнения  загружаемой  программы  (по  команде GET или &lt;br /&gt;
		RUN) недостаточно свободного места памяти.&lt;br /&gt;
	ДЕЙСТВИЕ. По команде UNLOAD удалить из памяти  драйверы не использую-&lt;br /&gt;
		щихся устройств. Использовать команду SET USR SWAP для разре-&lt;br /&gt;
		шения свопинга программы USR. Если  получено при запуске NED,&lt;br /&gt;
		скопируйте любой файл куда-нибудь,например на SL: и повторите&lt;br /&gt;
		запуск NED.�&lt;br /&gt;
&lt;br /&gt;
					- 87 -&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-OVERLAY READ ERROR&lt;br /&gt;
	ПРИЧИНА. Аппаратная ошибка чтения оверлейного сегмента KMON.Системный&lt;br /&gt;
		файл  монитора имеет плохой блок. Испорчен  монитор в памяти.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить правильность функционирования аппаратуры. Вызвать &lt;br /&gt;
		другой файл монитора по команде BOOT.Попробовать перезагрузи-&lt;br /&gt;
		ться и проверить логику программы.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-PARAMETERS&lt;br /&gt;
	ПРИЧИНА. Аргументы команды SAVE указаны неправильно.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-REL FILE I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Недопустимый формат  файла  для основного задания.Аппаратная &lt;br /&gt;
		ошибка чтения (записи) файла.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить поданную команду. Проверить правильность функцио-&lt;br /&gt;
		нирования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-SAVE FILE I/O ERROR&lt;br /&gt;
	?KMON-F-INPUT ERROR&lt;br /&gt;
	?KMON-F-OUTPUT ERROR &lt;br /&gt;
	ПРИЧИНА. Ошибка при вводе  файла формата  отображения памяти (SAV) по&lt;br /&gt;
		команде R,RUN или GET , или при выводе файла по команде SAVE.&lt;br /&gt;
		Возможна аппаратная ошибка.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить,что указанный  файл имеет  формат отображения па-&lt;br /&gt;
		мяти.Убедиться в том, что при выполнении команды SAVE на томе&lt;br /&gt;
		достаточно свободного места для записи нового файла.Проверить&lt;br /&gt;
		правильность функционирования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-SYSTEM I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Аппаратная ошибка при выполнении операции свопинга.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить установку защиты  записи. Проверить  правильность&lt;br /&gt;
		функционирования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?KMON-F-TOO MANY FILES&lt;br /&gt;
	ПРИЧИНА. В команде указано недопустимое число файлов.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить команду.�&lt;br /&gt;
&lt;br /&gt;
					- 88 -&lt;br /&gt;
&lt;br /&gt;
	?MON-F-BAD FETCH&lt;br /&gt;
	ПРИЧИНА. Ошибка чтения драйвера с системного устройства. Недопустимый&lt;br /&gt;
		адрес загрузки драйвера.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить,что адрес загрузки драйвера находится  в пределах&lt;br /&gt;
		программы.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-DIR I/O ERR (см. ?MON-F-DIRECTORY I/O ERROR)&lt;br /&gt;
	?MON-F-DIR OVFLO (см. ?MON-F-DIRECTORY OVERFLOW)&lt;br /&gt;
	?MON-F-DIRECTORY I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Аппаратурная ошибка  при  выполнении  операции  ввода-вывода &lt;br /&gt;
		справочника устройства.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить диск на плохие блоки.Проверить правильность функ-&lt;br /&gt;
		ционирования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-DIRECTORY OVERFLOW&lt;br /&gt;
	?MON-F-DIRECTORY FULL&lt;br /&gt;
	ПРИЧИНА. Переполнение  справочника устройства (при выполнении запроса&lt;br /&gt;
		.ENTER)&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать команду INITIALIZE/SEGMENTS для увеличения чи-&lt;br /&gt;
		сла сегментов справочника. Стереть или  переписать на  другой &lt;br /&gt;
		том ненужные файлы.  Слить несколько соседних FILE.BAD в один&lt;br /&gt;
	командой CREATE и/или программой DESS&lt;br /&gt;
&lt;br /&gt;
	?MON-F-FP TRAP&lt;br /&gt;
	ПРИЧИНА. Произошло  прерывание от БПЗ, но программой  пользователя не&lt;br /&gt;
		установлен  адрес  подпрограммы  обработки  этого  прерывания &lt;br /&gt;
		(по .SFPA ).&lt;br /&gt;
	ДЕЙСТВИЕ. Не требуется. Программа  пользователя удаляется из  памяти.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-FPU TRAP  (см.?MON-F-FP TRAP )&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILL ADDR  (см.?MON-F-ILLEGAL ADDRESS)&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILL CHAN  (см.?MON-F-ILLEGAL CHANNEL)&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILL EMT   (см.?MON-F-ILLEGAL EMT )�&lt;br /&gt;
&lt;br /&gt;
					- 89 -&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILL SST   (только для монитора XM)&lt;br /&gt;
	ПРИЧИНА. Неправильно  установлен  вектор прерывания  для команды BPT,&lt;br /&gt;
		IOT или TRAP (нечетный или нулевой адрес).&lt;br /&gt;
	ДЕЙСТВИЕ. Установить правильно вектор прерывания.Проверить программу,&lt;br /&gt;
		ошибка в которой  может вызвать непредусмотренное прерывание.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILL USR  (см.?MON-F-ILLEGAL CALL TO USR)&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILLEGAL ADDRESS&lt;br /&gt;
	ПРИЧИНА. Адрес, указанный в запросе, нечетный или вне границ задания.&lt;br /&gt;
	ДЕЙСТВИЕ. Исправить адрес.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILLEGAL CALL TO USR&lt;br /&gt;
	ПРИЧИНА. Попытка вызвать USR из подпрограммы завершения.&lt;br /&gt;
	ДЕЙСТВИЕ. Исправить программу.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILLEGAL CHANNEL&lt;br /&gt;
	ПРИЧИНА. Указан недопустимый номер канала.&lt;br /&gt;
	ДЕЙСТВИЕ. Использовать запрос .CDFN для определения дополнительных &lt;br /&gt;
		каналов ввода-вывода.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ILLEGAL EMT&lt;br /&gt;
	ПРИЧИНА. Недопустимая команда ЕМТ.&lt;br /&gt;
	ДЕЙСТВИЕ. Проверить функциональный код в команде ЕМТ.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-MEM ERR&lt;br /&gt;
	?MON-F-MEMORY NNNNNN&lt;br /&gt;
	ПРИЧИНА.Ошибка памяти по адресу NNNNNN&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить оперативную память с помощью тест-программ.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-MMU FAULT NNNNNN  (только для монитора XM)&lt;br /&gt;
	ПРИЧИНА.Обращение к адресу, который находится вне границ отображенной&lt;br /&gt;
		программы.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить команду, предшествующую команде с адресом NNNNNN и&lt;br /&gt;
		исправить ее.�&lt;br /&gt;
&lt;br /&gt;
					- 90 -&lt;br /&gt;
&lt;br /&gt;
	?MON-F-NO DEV&lt;br /&gt;
	?MON-F-NO DEVICE&lt;br /&gt;
	ПРИЧИНА.Попытка выполнить  операцию  чтения (записи) при отсутствии в&lt;br /&gt;
		памяти драйвера указанного устройства.&lt;br /&gt;
	ДЕЙСТВИЕ.Загрузить  соответствующий драйвер по команде LOAD перед за-&lt;br /&gt;
		грузкой программы.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-OVERLAY ERROR&lt;br /&gt;
	ПРИЧИНА.Ошибка  чтения  оверлейного  сегмента программы пользователя.&lt;br /&gt;
	ДЕЙСТВИЕ.Убедиться, что устройство работает не в  автономном режиме и&lt;br /&gt;
		что загружен соответствующий драйвер,если оверлейная програм-&lt;br /&gt;
		ма вызывается с устройства другого типа,чем системное устрой-&lt;br /&gt;
		ство.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-ROWER FAIL HALT&lt;br /&gt;
	ПРИЧИНА.Нарушение питания.&lt;br /&gt;
	ДЕЙСТВИЕ.Перезагрузить систему.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-STACK OVERFLOW&lt;br /&gt;
	ПРИЧИНА.Прерывание по 4 или 10 векторам.Переполнение стека (указатель&lt;br /&gt;
		стека ниже 400).&lt;br /&gt;
	ДЕЙСТВИЕ.См.сообщение ?MON-F-TRAP TO 4&lt;br /&gt;
&lt;br /&gt;
	?MON-F-SWAP ERROR&lt;br /&gt;
	ПРИЧИНА.Аппаратная  ошибка при записи программы  пользователя на диск &lt;br /&gt;
		во время операции свопинга.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить готовность устройства к выполнению операции записи&lt;br /&gt;
&lt;br /&gt;
	?MON-F-SYSTEM HALT&lt;br /&gt;
	ПРИЧИНА.Ошибка при выполнении системной программы.&lt;br /&gt;
	ДЕЙСТВИЕ.Перезагрузить систему.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-SYSTEM READ ERROR&lt;br /&gt;
	ПРИЧИНА.Ошибка чтения KMON или USR монитором FB или XM .Файл монитора&lt;br /&gt;
		содепжит плохой блок или системный том уже разгружен.&lt;br /&gt;
	ДЕЙСТВИЕ.См.SYSTEM READ FAILURE HALT�&lt;br /&gt;
&lt;br /&gt;
					- 91 -&lt;br /&gt;
&lt;br /&gt;
	?MON-F-SYSTEM READ FAILURE HALT&lt;br /&gt;
	ПРИЧИНА.Попытка прочитать в память KMON или USR, когда системный  том&lt;br /&gt;
		разгружен или файл монитора,находящийся на системном  устрой-&lt;br /&gt;
		стве,имеет плохие блоки.&lt;br /&gt;
	ДЕЙСТВИЕ.Использовать новую копию файла монитора.  Поставить на место &lt;br /&gt;
		системный  диск  и запустить  систему  пультовой  командой  G&lt;br /&gt;
&lt;br /&gt;
	?MON-F-SYSTEM WRITE ERROR&lt;br /&gt;
	ПРИЧИНА.Попыка  записи  на  системное  устройство  при  установленной&lt;br /&gt;
		защите записи.Возможна аппаратная ошибка.&lt;br /&gt;
	ДЕЙСТВИЕ.Разрешить запись на диск.  Проверить правильность функциони-&lt;br /&gt;
		рования аппаратуры.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-TRAP TO 4&lt;br /&gt;
	?MON-F-TRAP TO 10&lt;br /&gt;
	ПРИЧИНА.Обращение к несуществующей  памяти  или неспособность устрой-&lt;br /&gt;
		ства передать или  принять информацию за  отведенное ему вре-&lt;br /&gt;
		мя. Используется несуществующая команда. Произошло переполне-&lt;br /&gt;
		ние стека. Неправильная адресация.&lt;br /&gt;
	ДЕЙСТВИЕ.Определить границы  программы пользователя по карте загрузки&lt;br /&gt;
		или по содержимому ячеек 40, 46, 50 и 54. Если ошибка произо-&lt;br /&gt;
		шла в  пределах  программы пользователя, проверить программу.&lt;br /&gt;
		Проверить,  что программа пользователя  не разрушила  области&lt;br /&gt;
		стека,  элементов  очереди  ввода-вывода или самого монитора.&lt;br /&gt;
		Проверить  правильность  выполнения  свопинга USR .Проверить,&lt;br /&gt;
		нет ли обращения к несуществующему устройству.&lt;br /&gt;
&lt;br /&gt;
	?MON-F-UNLOADED DRIVER  (только для мониторов FB ,XM)&lt;br /&gt;
	ПРИЧИНА.Попытка обращения к  устройству, драйвер которого отсутствует&lt;br /&gt;
		в оперативной памяти.&lt;br /&gt;
	ДЕЙСТВИЕ.Драйверы устройств для основного задания монитора FB и зада-&lt;br /&gt;
		ний монитора XM должны быть резидентными в памяти.  Использо-&lt;br /&gt;
		вать команду LOAD для загрузки  драйверов устройств перед за-&lt;br /&gt;
		пуском программы.�&lt;br /&gt;
&lt;br /&gt;
					- 92 -&lt;br /&gt;
&lt;br /&gt;
	?MON-W-DIRECTORY UNSAFE NNNNNN   (только  для мониторов FB и XM).&lt;br /&gt;
	ПРИЧИНА.Ошибка в  команде, предшествующей команде  с адресом NNNNNN ,&lt;br /&gt;
		при  корректировке справочника  устройства  программой  USR .&lt;br /&gt;
	ДЕЙСТВИЕ.Монитор  пытается завершить операцию  со справочником прежде&lt;br /&gt;
		чем удалить программу из памяти. Проверить справочник устрой-&lt;br /&gt;
       		ства, т.к. возможна потеря информации.&lt;br /&gt;
&lt;br /&gt;
	?MSBOOT-F-FILE NOT FOUND&lt;br /&gt;
	ПРИЧИНА.Указанный файл отсутствует на магнитной ленте.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить поданную команду.&lt;br /&gt;
&lt;br /&gt;
	?MSBOOT-F-I/O ERROR&lt;br /&gt;
	ПРИЧИНА. Аппаратная ошибка при выполнении операции загрузки с&lt;br /&gt;
		магнитной ленты .&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить правильность установки тома магнитной &lt;br /&gt;
		ленты.&lt;br /&gt;
&lt;br /&gt;
	?MSBOOT-F-ILLEGAL FILE NAME&lt;br /&gt;
	ПРИЧИНА. Указано недопустимое имя файла.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить поданную команду.Проверить формат файла.&lt;br /&gt;
&lt;br /&gt;
	?MSBOOT-F-LINE TOO LONG&lt;br /&gt;
	ПРИЧИНА.Командная строка в MSBOOT имеет длину более 80 знаков&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить поданную командную строку.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-I/O ERROR&lt;br /&gt;
	ПРИЧИНА.Ошибка ввода-вывода во время загрузки системы.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить  наличие на  системном диске соответствующего дан-&lt;br /&gt;
		ному  загрузчику  монитора.  Проверить диск  на  плохие блоки&lt;br /&gt;
		Записать на диск системный загрузчик.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-INSUFFICIENT MEMORY&lt;br /&gt;
	ПРИЧИНА.Объем оперативной  памяти не позволяет разместить загружаемый&lt;br /&gt;
		монитор.&lt;br /&gt;
	ДЕЙСТВИЕ.Использовать другой монитор.�&lt;br /&gt;
&lt;br /&gt;
					- 93 -&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-INVALID OR MISSING TT.SYS&lt;br /&gt;
	ПРИЧИНА.На загружаемом  томе нет  драйвера TT: .  Вариант   генерации&lt;br /&gt;
		драйвера  TT: не  соответствует  варианту генерации монитора.&lt;br /&gt;
	ДЕЙСТВИЕ.Записать на том файл TT.SYS.&lt;br /&gt;
		Проверить соответствие  вариантов  генерации  драйвера  TT: и&lt;br /&gt;
		монитора.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-NO MEMORY MANAGEMENT HARDWARE&lt;br /&gt;
	ПРИЧИНА.Попытка загрузить монитор XM при отсутствии диспетчера памяти&lt;br /&gt;
	ДЕЙСТВИЕ.Использовать монитор SJ или FB,или систему,имеющую диспетчер &lt;br /&gt;
		памяти.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-NO MONITOR FILE ON VOLUME&lt;br /&gt;
	ПРИЧИНА.На системном томе нет монитора с соответствующим данному за-&lt;br /&gt;
		грузчику именем.&lt;br /&gt;
	ДЕЙСТВИЕ.Проверить правильность выбора системного тома.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-NO SWAP ON VOLUME&lt;br /&gt;
	ПРИЧИНА.На загруженном томе нет файла SWAP.SYS.&lt;br /&gt;
	ДЕЙСТВИЕ.Использовать другой системный том для копирования файла&lt;br /&gt;
		SWAP.SYS и перезагрузить систему.&lt;br /&gt;
&lt;br /&gt;
	?BOOT-F-SWAP FILE IS TOO SMALL&lt;br /&gt;
	ПРИЧИНА.Размер файла SWAP.SYS менее 24. блоков.&lt;br /&gt;
	ДЕЙСТВИЕ.Использовать другой системный том для увеличения размера&lt;br /&gt;
		файла до 24. блоков и перезагрузить систему.Использовать&lt;br /&gt;
		SET USR NOSWAP(SWAP.SYS=0blocks SJ, =2blocks CD)�&lt;br /&gt;
&lt;br /&gt;
					- 94 -&lt;br /&gt;
&lt;br /&gt;
					ПРИЛОЖЕНИЕ &lt;br /&gt;
&lt;br /&gt;
		Коды ошибок программных запросов&lt;br /&gt;
&lt;br /&gt;
	Запрос	Код		Причина ошибки&lt;br /&gt;
	--------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
	.CDFN	0	Попытка  определить меньшее число каналов,чем есть в&lt;br /&gt;
			наличии&lt;br /&gt;
	.CHCOPY	0	Другое задание не существует  или  канал  (ochan) не&lt;br /&gt;
			открыт&lt;br /&gt;
		1	Канал (chan) занят&lt;br /&gt;
	.CMKT	0	Запрос с указанием id (id&amp;lt;&amp;gt;0) не существует&lt;br /&gt;
	.CNTXSW	0	В списке адресов указан не допустимый адрес&lt;br /&gt;
	.CSIGEN	0	Недопустимая команда&lt;br /&gt;
		1	Указанного устройства нет в таблицах системы&lt;br /&gt;
		3	Попытка открыть файл по .ENTER неудачна из-за пере-&lt;br /&gt;
			полнения справочника устройства&lt;br /&gt;
		4	Входной файл не найден при выполнении .LOOKUP&lt;br /&gt;
	.CSISPC	0	Недопустимая команда&lt;br /&gt;
		1	Недопустимое устройство&lt;br /&gt;
	.CSTAT	0	Канал не открыт&lt;br /&gt;
	.DELETE	0	Указанный канал занят&lt;br /&gt;
		1	Файл не найден в справочнике устройства&lt;br /&gt;
		2	Недопустимая операция&lt;br /&gt;
	.DSTATU 0	Устройство не найдено в таблицах системы&lt;br /&gt;
	.ENTER	0	Указанный канал занят&lt;br /&gt;
		1	На устройстве не найдена область большая или равная&lt;br /&gt;
			М (len=M); или устройство или справочник устройства&lt;br /&gt;
			переполнены&lt;br /&gt;
	.FETCH	0	Недопустимое имя устройства или в системе отсутствует&lt;br /&gt;
			драйвер указанного устройства&lt;br /&gt;
	.RELEAS	0	Недопустимое имя устройства&lt;br /&gt;
	.GVAL	0	Указанное значение смещения находится вне области &lt;br /&gt;
			RMON&lt;br /&gt;
	.LOOKUP	0	Указанный канал занят&lt;br /&gt;
		1	Указанного файла нет на устройстве&lt;br /&gt;
	.MRKT	0	Нет свободного элемента очереди�&lt;br /&gt;
&lt;br /&gt;
					- 95 -&lt;br /&gt;
&lt;br /&gt;
	.MTATCH	2	Несуществующий ЛНТ&lt;br /&gt;
		4	Терминал логически связан с другим заданием&lt;br /&gt;
		5	Недействительный адрес слова асинхронного состояния &lt;br /&gt;
			терминала (в режиме XM)&lt;br /&gt;
	.MTDTCH	1	Недопустимый логический номер терминала ;терминал не &lt;br /&gt;
			связан с заданием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
			 &lt;br /&gt;
	.MTGET	1	Недопустимый номер терминала;терминал не связан с &lt;br /&gt;
			заданием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
		5	Недействительный адрес слова асинхронного состояния &lt;br /&gt;
			терминала&lt;br /&gt;
	.MTIN	0	Нет символов в буфере ввода&lt;br /&gt;
		1	Недопустимый номер терминала; терминал не связан с&lt;br /&gt;
			заданием&lt;br /&gt;
		5	Недействительный адрес слова асинхронного состояния&lt;br /&gt;
			терминала (в режиме XM)&lt;br /&gt;
	.MTOUT	0	Нет свободного места в буфере вывода&lt;br /&gt;
		1	Недопустимый номер терминала,терминал не связан с за-&lt;br /&gt;
			данием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
	.MTPRNT	1	Недопустимый номер терминала; терминал не связан с &lt;br /&gt;
			заданием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
		5	Недействительный адрес слова асинхронного состояния&lt;br /&gt;
			терминала&lt;br /&gt;
	.MTRCTO	1	Недопустимый номер терминала; терминал не связан с&lt;br /&gt;
			заданием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
	.MTSET	1	Недопустимый номер терминала; терминал не связан с&lt;br /&gt;
			заданием&lt;br /&gt;
		2	Несуществующий ЛНТ&lt;br /&gt;
		5	Недействительный адрес слова асинхронного состояния&lt;br /&gt;
			терминала (в режиме XM)&lt;br /&gt;
	.PROTE	0	Указанный вектор уже используется&lt;br /&gt;
		1	Адрес вектора больше 476 или не кратен четырем&lt;br /&gt;
	.UNPRO	1	Адрес вектора больше 476 или не кратен четырем�&lt;br /&gt;
&lt;br /&gt;
					- 96 -&lt;br /&gt;
&lt;br /&gt;
	.RCVD	0	Попытка обращения к несуществующему заданию&lt;br /&gt;
	.RCVDC&lt;br /&gt;
	.RSVDW&lt;br /&gt;
	.READ	0	Попытка чтения после конца файла&lt;br /&gt;
	.READC&lt;br /&gt;
	.READW&lt;br /&gt;
		1	Аппаратная ошибка на канале&lt;br /&gt;
		2	Указанный канал не открыт&lt;br /&gt;
	.RENAME	0	Указанный канал занят&lt;br /&gt;
		1	Файл не найден&lt;br /&gt;
		2	Недопустимая операция&lt;br /&gt;
	.REOPEN	0	Указанный канал занят&lt;br /&gt;
	.SAVEST	0	Указанный канал не открыт&lt;br /&gt;
		1	Файл открыт по .ENTER или находится на магнитной лен-&lt;br /&gt;
			те,поэтому .SAVESTATUS для него недопустим&lt;br /&gt;
	.SDAT	0	Попытка обращения к несуществующему заданию&lt;br /&gt;
	.SDATC&lt;br /&gt;
	.SDATW&lt;br /&gt;
	.SPFUN	0	Попытка чтения или записи после конца файла&lt;br /&gt;
		1	Аппаратная ошибка на канале&lt;br /&gt;
		2	Канал не открыт&lt;br /&gt;
	.TLOCK	0	USR уже используется другим заданием&lt;br /&gt;
	.TTYIN	0	Нет символа в буфере ввода&lt;br /&gt;
	.TTINR&lt;br /&gt;
	.TTYOUT	0	Буфер вывода переполнен&lt;br /&gt;
	.TTOUTR&lt;br /&gt;
	.TWAIT	0	Нет свободного элемента очереди&lt;br /&gt;
	.WAIT	0	Указанный канал не открыт&lt;br /&gt;
		1	Аппаратная ошибка на канале во время выполнения пре-&lt;br /&gt;
			дыдущей операции ввода-вывода&lt;br /&gt;
	.WRITE	0	Попытка записи после конца файла&lt;br /&gt;
	.WRITC&lt;br /&gt;
	.WRITW&lt;br /&gt;
		1	Аппаратная ошибка на канале&lt;br /&gt;
		2	Канал не открыт�&lt;br /&gt;
&lt;br /&gt;
					- 97 -&lt;br /&gt;
&lt;br /&gt;
		Примечания:&lt;br /&gt;
		1.Для запроса .SYNCH возврат по ошибке происходит в следую-&lt;br /&gt;
	щих случаях:&lt;br /&gt;
		-не закончена макрокоманда .SYNCH,использующая тот же блок &lt;br /&gt;
		аргументов ЕМТ;&lt;br /&gt;
		-указан недопустимый номер задания;&lt;br /&gt;
		-если произошло удаление или останов программы.&lt;br /&gt;
		При этом управление передается на следующую за .SYNCH ячейку.&lt;br /&gt;
		Если макрокоманда .SYNCH выполнена успешно,то возврат проис-&lt;br /&gt;
	ходит в следующую за возвратом по ошибке ячейку.&lt;br /&gt;
		2.При выполнении запросов,не указанных в табл.30,ошибок не&lt;br /&gt;
	происходит.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1692</id>
		<title>Uknc info</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_info&amp;diff=1692"/>
		<updated>2007-07-17T18:39:20Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Uknc tech desc]] — Техническое описание (UK_TECH.DOC)&lt;br /&gt;
* [[Uknc FODOS-2 drprog]] — ФОДОС-2. ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
&lt;br /&gt;
* [[Uknc RAM description]] — Описание ОЗУ, из документа RAM.LST от Alex_K&lt;br /&gt;
** [[Uknc RAM description_app]] — Приложения к описанию&lt;br /&gt;
* [[Uknc ROM disasm]] — листинги дизассемблированного ПЗУ УКНЦ, от Alex_K&lt;br /&gt;
&lt;br /&gt;
* [[Uknc Resources|Ресурсы УКНЦ]] — книга Влада Жигалова&lt;br /&gt;
&lt;br /&gt;
* [[Uknc ROM Basic boot|Процесс загрузки Бейсик-Вильнюс с кассеты ПЗУ]]&lt;br /&gt;
* [[Uknc rt11 boot|Процесс загрузки RT11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Здесь будет собрана вся известная информация об УКНЦ&lt;br /&gt;
&lt;br /&gt;
--[[User:Felix|Felix]] 08:59, 21 March 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_FODOS-2_drprog&amp;diff=1691</id>
		<title>Uknc FODOS-2 drprog</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_FODOS-2_drprog&amp;diff=1691"/>
		<updated>2007-07-17T18:37:38Z</updated>

		<summary type="html">&lt;p&gt;Nzeemin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
                       ОПЕРАЦИОННАЯ СИСТЕМА ФОДОС-2&lt;br /&gt;
                  ПРОГРАММИРОВАНИЕ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ&lt;br /&gt;
                    РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА&lt;br /&gt;
                        589.7545471.00042-01 32 03&lt;br /&gt;
&lt;br /&gt;
                                ЛИСТОВ 229&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                         СОДЕРЖАНИЕ&lt;br /&gt;
&lt;br /&gt;
1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММЕ&lt;br /&gt;
2. СТРУКТУРА ПРОГРАММЫ&lt;br /&gt;
2.1. СЕКЦИЯ ОПРЕДЕЛЕНИЙ&lt;br /&gt;
2.1.1. ЗАПРОС .DRDEF&lt;br /&gt;
2.1.2. БАЙТ ИДЕНТИФИКАЦИИ УСТРОЙСТВА&lt;br /&gt;
2.1.3. СЛОВО СОСТОЯНИЯ УСТРОЙСТВА&lt;br /&gt;
2.1.4. СЛОВО РАЗМЕРА УСТРОЙСТВА&lt;br /&gt;
2.2. СЕКЦИЯ ЗАГОЛОВКА&lt;br /&gt;
2.2.1. ИНФОРМАЦИЯ В БЛОКЕ 0&lt;br /&gt;
2.2.2. ПЕРВЫЕ ПЯТЬ СЛОВ ДРАЙВЕРА&lt;br /&gt;
2.2.3. ЗАПРОС .DRBEG&lt;br /&gt;
2.2.4. МНОГОВЕКТОРНЫЕ ДРАЙВЕРЫ: ЗАПРОС .DRVTB&lt;br /&gt;
2.2.5. КОДЫ УСЛОВИЙ PS&lt;br /&gt;
2.3. СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
2.4. СЕКЦИЯ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
2.4.1. ТОЧКА ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ&lt;br /&gt;
2.4.2. ПОНИЖЕНИЕ ПРИОРИТЕТА ДО ПРИОРИТЕТА УСТРОЙСТВА&lt;br /&gt;
2.4.3. ЗАПРОС .DRAST&lt;br /&gt;
2.4.4. ОСНОВНЫЕ ПРАВИЛА ДЛЯ ПРОГРАММИРОВАНИЯ СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
2.5. СЕКЦИЯ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
2.5.1. ЗАПРОС .DRFIN&lt;br /&gt;
2.6. СЕКЦИЯ ОКОНЧАНИЯ ДРАЙВЕРА&lt;br /&gt;
2.6.1. ЗАПРОС .DREND&lt;br /&gt;
2.6.2. ФИКТИВНЫЕ УСТРОЙСТВА&lt;br /&gt;
3. НАСТРОЙКА И ПРОВЕРКА ПРОГРАММЫ&lt;br /&gt;
3.1. ОБЩЕЕ ОПИСАНИЕ ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
3.2. ДРАЙВЕРЫ, КОТОРЫЕ ФОРМИРУЮТ ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
3.2.1. ФОРМИРОВАНИЕ ВНУТРЕННЕЙ ОЧЕРЕДИ&lt;br /&gt;
3.2.2. ОБРАБОТКА ПРЕРЫВАНИЙ ДЛЯ ДРАЙВЕРОВ, ФОРМИРУЮЩИХ ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
3.2.3. ПРОЦЕДУРЫ ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ ДЛЯ ДРАЙВЕРОВ, ФОРМИРУЮЩИХ &lt;br /&gt;
ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
3.3. ПАРАМЕТРЫ SET&lt;br /&gt;
3.3.1. КАК ВЫПОЛНЯЕТСЯ КОМАНДА SET&lt;br /&gt;
3.3.2. ФОРМАТ ТАБЛИЦЫ SET&lt;br /&gt;
3.3.3. ЗАПРОС .DRSET&lt;br /&gt;
3.3.4. ПОДПРОГРАММА ИЗМЕНЕНИЯ ДРАЙВЕРА&lt;br /&gt;
3.3.5. ПРИМЕРЫ ПАРАМЕТРОВ SET&lt;br /&gt;
3.4. КАК ПРОВЕРИТЬ И ОТЛАДИТЬ ДРАЙВЕР УСТРОЙСТВА&lt;br /&gt;
3.4.1. ИСПОЛЬЗОВАНИЕ ODT ДЛЯ ПРОВЕРКИ ДРАЙВЕРА&lt;br /&gt;
3.4.2. ИСПОЛЬЗОВАНИЕ ODT В ХМ&lt;br /&gt;
4. ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
4.1. ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД&lt;br /&gt;
4.2. ВВОД-ВЫВОД, ОБРАБАТЫВАЕМЫЙ ПО ПРЕРЫВАНИЯМ&lt;br /&gt;
4.2.1. КАК РАБОТАЮТ ПРЕРЫВАНИЯ&lt;br /&gt;
4.2.2. ПРИОРИТЕТЫ УСТРОЙСТВ И ПРОЦЕССОРА&lt;br /&gt;
4.2.3. СЛОВО СОСТОЯНИЯ ПРОЦЕССОРА&lt;br /&gt;
4.3. ВНУТРЕННИЕ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ В&lt;br /&gt;
СРАВНЕНИИ С ДРАЙВЕРАМИ УСТРОЙСТВ&lt;br /&gt;
4.4. КАК ПЛАНИРОВАТЬ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
4.4.1. ИЗУЧИТЬ УСТРОЙСТВО&lt;br /&gt;
4.4.2. ПОДГОТОВКА БЛОК-СХЕМЫ ПРОГРАММЫ&lt;br /&gt;
4.4.3. НАПИСАНИЕ КОДОВ&lt;br /&gt;
4.4.4. ПРОВЕРКА И ОТЛАДКА&lt;br /&gt;
4.5. СТРУКТУРА ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
4.5.1. ЗАЩИТА ВЕКТОРОВ: ЗАПРОС .PROTECT&lt;br /&gt;
4.5.2. УСТАНОВКА ВЕКТОРА ПРЕРЫВАНИЯ&lt;br /&gt;
4.5.3. ЧИСТАЯ ОСТАНОВКА: ЗАПРОС .DEVICE&lt;br /&gt;
4.5.4. ПОНИЖЕНИЕ ПРИОРИТЕТА ПРОЦЕССОРА: ЗАПРОС .INTEN&lt;br /&gt;
4.5.5. ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ЗАПРОСА .SYNCH&lt;br /&gt;
4.5.6. ВЫПОЛНЕНИЕ НА FORK-УРОВНЕ: ЗАПРОС .FORK&lt;br /&gt;
4.5.7. ИТОГ ПО .INTEN, .FORK И .SYNCH&lt;br /&gt;
4.5.8. ВЫХОД ИЗ ОБРАБОТКИ ПРЕРЫВАНИЯ: RTS PC&lt;br /&gt;
4.6. СХЕМАТИЧЕСКАЯ КОНСТРУКЦИЯ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
5. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ&lt;br /&gt;
5.1. ТАЙМ-АУТ УСТРОЙСТВА ВВОДА-ВЫВОДА&lt;br /&gt;
5.1.1. ЗАПРОС .TIMIO&lt;br /&gt;
5.1.2. ЗАПРОС .CTIMIO&lt;br /&gt;
5.1.3. ПРИМЕНЕНИЕ ТАЙМ-АУТА УСТРОЙСТВА&lt;br /&gt;
5.2. РЕГИСТРАЦИЯ ОШИБОК&lt;br /&gt;
5.2.1. КОГДА И КАК ВЫЗЫВАТЬ РЕГИСТРАТОР ОШИБОК&lt;br /&gt;
5.3. СПЕЦИАЛЬНЫЕ ФУНКЦИИ&lt;br /&gt;
5.3.1. ПРОГРАММНЫЙ ЗАПРОС .SPFUN&lt;br /&gt;
5.3.2. ПОДДЕРЖКА СПЕЦИАЛЬНЫХ ФУНКЦИЙ В ДРАЙВЕРЕ УСТРОЙСТВА&lt;br /&gt;
5.3.3. ТОМА ПЕРЕМЕННОГО РАЗМЕРА&lt;br /&gt;
5.3.4. УСТРОЙСТВА СО СПЕЦИАЛЬНЫМИ СПРАВОЧНИКАМИ&lt;br /&gt;
5.4. ДРАЙВЕРЫ УСТРОЙСТВ В XM-СИСТЕМЕ&lt;br /&gt;
5.4.1. УСЛОВНЫЕ ОБОЗНАЧЕНИЯ НАИМЕНОВАНИЙ И УСЛОВНЫЕ ОБОЗНАЧЕНИЯ СИСТЕМЫ&lt;br /&gt;
5.4.2. XM-СРЕДА&lt;br /&gt;
5.4.3. ЭЛЕМЕНТ ОЧЕРЕДИ В XM&lt;br /&gt;
5.4.4. УСТРОЙСТВА ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ:ПОДПРОГРАММА $MPPHY&lt;br /&gt;
5.4.5. СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ УСТРОЙСТВА:&lt;br /&gt;
ПОДПРОГРАММЫ $GETBYT И $PUTBYT&lt;br /&gt;
5.4.6. ДРУГИЕ УСТРОЙСТВА: ПОДПРОГРАММА $PUTWRD&lt;br /&gt;
5.4.7. ДРАЙВЕРЫ, КОТОРЫЕ ИМЕЮТ НЕПОСРЕДСТВЕННЫЙ ДОСТУП&lt;br /&gt;
К БУФЕРУ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
5.5. ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ В СИСТЕМЕ XM&lt;br /&gt;
6. УСТАНОВКА ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
6.1. ДРАЙВЕРЫ СИСТЕМНОГО УСТРОЙСТВА И НАЧАЛЬНЫЙ ЗАГРУЗЧИК&lt;br /&gt;
6.1.1. ФАЙЛЫ МОНИТОРА&lt;br /&gt;
6.1.2. СОЗДАНИЕ ДРАЙВЕРА СИСТЕМНОГО УСТРОЙСТВА&lt;br /&gt;
6.1.3. DUP И ПРОЦЕСС НАЧАЛЬНОЙ ЗАГРУЗКИ&lt;br /&gt;
6.2. КАК ТРАНСЛИРОВАТЬ, СВЯЗЫВАТЬ И УСТАНАВЛИВАТЬ ДРАЙВЕР УСТРОЙСТВА&lt;br /&gt;
6.2.1. ТРАНСЛИРОВАНИЕ ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
6.2.2. СВЯЗЫВАНИЕ ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
6.2.3. УСТАНОВКА ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
6.3. СОДЕРЖИМОЕ СИСТЕМНОГО ДРАЙВЕРА&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММЕ&lt;br /&gt;
	В ДАННОМ ДОКУМЕНТЕ БУДЕТ РАССМОТРЕНА СТРУКТУРА&lt;br /&gt;
СТАНДАРТНОГО ДРАЙВЕРА И ОБЩЕЕ ОПИСАНИЕ СХЕМЫ ОБЫЧНОГО&lt;br /&gt;
ДРАЙВЕРА, ПОДРОБНО ОПИСАНЫ ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА&lt;br /&gt;
(ВНУТРЕННЯЯ ОЧЕРЕДНОСТЬ, ПАРАМЕТРЫ КОМАНДЫ SET, ПОДДЕРЖКА&lt;br /&gt;
ТАЙМ-АУТА ВВОДА-ВЫВОДА УСТРОЙСТВА, СПЕЦИАЛЬНЫЕ ФУНКЦИИ,&lt;br /&gt;
РЕГИСТРАЦИЯ ОШИБОК И СПЕЦИАЛЬНЫЕ УСЛУГИ, ИМЕЮЩИЕСЯ В СИСТЕМЕ&lt;br /&gt;
XM) ДЛЯ ДРАЙВЕРОВ И ИХ ВЫПОЛНЕНИЕ. БУДЕТ ПОКАЗАНО ОТЛИЧИЕ&lt;br /&gt;
СИСТЕМНОГО ДРАЙВЕРА ОТ СТАНДАРТНОГО (ЭТО НЕОБХОДИМО ДЛЯ&lt;br /&gt;
ЗАПИСИ НАЧАЛЬНОГО ЗАГРУЗЧИКА НА СИСТЕМНОЕ УСТРОЙСТВО).&lt;br /&gt;
	ПЕРЕД НАПИСАНИЕМ ДРАЙВЕРА УСТРОЙСТВА НЕОБХОДИМО:&lt;br /&gt;
	- ПОДРОБНО ИЗУЧИТЬ УСТРОЙСТВО;&lt;br /&gt;
	- ИЗУЧИТЬ СТРУКТУРУ СТАНДАРТНОГО ДРАЙВЕРА УСТРОЙСТВА;&lt;br /&gt;
	- ИЗУЧИТЬ СХЕМУ ДРАЙВЕРА УСТРОЙСТВА;&lt;br /&gt;
	- ПОДУМАТЬ ОБ ИСПОЛЬЗОВАНИИ СПЕЦИАЛЬНЫХ СРЕДСТВ;&lt;br /&gt;
	- ИЗУЧИТЬ ПРИМЕРЫ ДРАЙВЕРОВ;&lt;br /&gt;
	- ПОДГОТОВИТЬ БЛОК-СХЕМУ ДРАЙВЕРА УСТРОЙСТВА;&lt;br /&gt;
	- НАПИСАТЬ ПРОГРАММУ ДРАЙВЕРА;&lt;br /&gt;
	- УСТАНОВИТЬ, ПРОВЕРИТЬ И ОТЛАДИТЬ ДРАЙВЕР.&lt;br /&gt;
&lt;br /&gt;
		2. СТРУКТУРА ПРОГРАММЫ&lt;br /&gt;
	ДРАЙВЕР УСТРОЙСТВА СИСТЕМЫ ФОДОС-2 СОСТОИТ ИЗ ШЕСТИ&lt;br /&gt;
СЛЕДУЮЩИХ СЕКЦИЙ:&lt;br /&gt;
	- ОПРЕДЕЛЕНИЯ;&lt;br /&gt;
	- ЗАГОЛОВОК;&lt;br /&gt;
	- ИНИЦИИРОВАНИЕ ВВОДА-ВЫВОДА;&lt;br /&gt;
	- ОБРАБОТКА ПРЕРЫВАНИЙ;&lt;br /&gt;
	- ЗАВЕРШЕНИЕ ВВОДА-ВЫВОДА;&lt;br /&gt;
	- ОКОНЧАНИЕ ДРАЙВЕРА.&lt;br /&gt;
	КАЖДАЯ СЕКЦИЯ - ЭТО ОТДЕЛЬНЫЙ ЛОГИЧЕСКИЙ БЛОК,&lt;br /&gt;
СОДЕРЖАЩИЙ КОД ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. ТАК КАК&lt;br /&gt;
МАКРОБИБЛИОТЕКА СИСТЕМЫ ФОДОС-2 ПРЕДУСМАТРИВАЕТ СПЕЦИАЛЬНЫЕ&lt;br /&gt;
ЗАПРОСЫ ДЛЯ ГЕНЕРАЦИИ ТРЕБУЕМОГО КОДА ДЛЯ КАЖДОЙ ЧАСТИ, ТО&lt;br /&gt;
НАПИСАНИЕ ИХ НЕСЛОЖНО, НЕОБХОДИМО ЛИШЬ ВНИМАТЕЛЬНЕЕ ИЗУЧИТЬ&lt;br /&gt;
ПРИМЕРЫ ДРАЙВЕРОВ УСТРОЙСТВ.&lt;br /&gt;
&lt;br /&gt;
	2.1. СЕКЦИЯ ОПРЕДЕЛЕНИЙ&lt;br /&gt;
	ИСХОДНЫЙ ФАЙЛ ДРАЙВЕРА УСТРОЙСТВА НАЧИНАЕТСЯ С СЕКЦИИ&lt;br /&gt;
ОПРЕДЕЛЕНИЙ, КОТОРАЯ ВКЛЮЧАЕТ ДИРЕКТИВУ .MCALL ДЛЯ ЗАПРОСА&lt;br /&gt;
.DRDEF И ДРУГИХ ЗАПРОСОВ. БОЛЬШУЮ ЧАСТЬ РАБОТ В СЕКЦИИ&lt;br /&gt;
ОПРЕДЕЛЕНИЙ ОСУЩЕСТВЛЯЕТ ЗАПРОС .DRDEF.&lt;br /&gt;
&lt;br /&gt;
	2.1.1. ЗАПРОС .DRDEF&lt;br /&gt;
	ЗАПРОС .DRDEF ИСПОЛЬЗУЕТСЯ В НАЧАЛЕ ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
И ВЫПОЛНЯЕТ СЛЕДУЮЩИЕ ФУНКЦИИ:&lt;br /&gt;
	- ВЫДАЕТ ДИРЕКТИВУ .MCALL ДЛЯ ВСЕХ ОТНОСЯЩИХСЯ К&lt;br /&gt;
ДРАЙВЕРУ ЗАПРОСОВ;&lt;br /&gt;
	- ОБЕСПЕЧИВАЕТ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ДЛЯ УСЛОВНЫХ&lt;br /&gt;
ОБОЗНАЧЕНИЙ СИСТЕМЫ;&lt;br /&gt;
	- ВЫЗЫВАЕТ ЗАПРОС .QELDF ДЛЯ ОПРЕДЕЛЕНИЯ СМЕЩЕНИЯ&lt;br /&gt;
ЭЛЕМЕНТОВ ОЧЕРЕДИ;&lt;br /&gt;
	- ОПРЕДЕЛЯЕТ КОМБИНАЦИИ РАЗРЯДОВ СОСТОЯНИЯ УСТРОЙСТВА;&lt;br /&gt;
	- ОПРЕДЕЛЯЕТ РАЗМЕР УСТРОЙСТВА В БЛОКАХ (DDDSIZ);&lt;br /&gt;
	- ОПРЕДЕЛЯЕТ ИДЕНТИФИКАЦИЮ УСТРОЙСТВА (DD$COD);&lt;br /&gt;
	- УСТАНАВЛИВАЕТ СЛОВО СОСТОЯНИЯ УСТРОЙСТВА, ИСПОЛЬЗУЯ&lt;br /&gt;
DDDSIZ И DD$COD;&lt;br /&gt;
	- ОБЕСПЕЧИВАЕТ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ДЛЯ РЕГИСТРА&lt;br /&gt;
СОСТОЯНИЯ УСТРОЙСТВА (DD$CSR) И ВЕКТОРА ПРЕРЫВАНИЯ (DD$VEC);&lt;br /&gt;
	- ДЕЛАЕТ СИМВОЛЫ DD$CSR И DD$VEC ГЛОБАЛЬНЫМИ.&lt;br /&gt;
	ЗДЕСЬ И ДАЛЕЕ DD - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА.&lt;br /&gt;
	ФОРМАТ ЗАПРОСА .DRDEF СЛЕДУЮЩИЙ:&lt;br /&gt;
	.DRDEF NAME,CODE,STAT,SIZE,CSR,VEC&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА (НАПРИМЕР, MT ДЛЯ&lt;br /&gt;
	   МАГНИТНОЙ ЛЕНТЫ);&lt;br /&gt;
    CODE - ВОСЬМЕРИЧНОЕ ЧИСЛО, ОПРЕДЕЛЯЮЩЕЕ УСТРОЙСТВО (СМ.&lt;br /&gt;
	   ТАБЛ.1);&lt;br /&gt;
    STAT - КОМБИНАЦИЯ РАЗРЯДОВ СОСТОЯНИЯ УСТРОЙСТВА (СМ.&lt;br /&gt;
	   ТАБЛ.2);&lt;br /&gt;
    SIZE - РАЗМЕР УСТРОЙСТВА В БЛОКАХ (ПО 256 СЛОВ); ЕСЛИ&lt;br /&gt;
	   УСТРОЙСТВО НЕФАЙЛОВОЙ СТРУКТУРЫ, ТО SIZE=0;&lt;br /&gt;
     CSR - АДРЕС РЕГИСТРА СОСТОЯНИЯ УСТРОЙСТВА ПО УМОЛЧАНИЮ;&lt;br /&gt;
     VEC - АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ УСТРОЙСТВА ПО УМОЛЧАНИЮ.&lt;br /&gt;
	ЗАПРОС .DRDEF ВЫДАЕТ ДИРЕКТИВУ .MCALL ДЛЯ СЛЕДУЮЩИХ&lt;br /&gt;
ЗАПРОСОВ:&lt;br /&gt;
	.DRAST	.DRBEG	.DRFIN&lt;br /&gt;
	.DRBOT	.DREND	.DRSET&lt;br /&gt;
	.DRVTB	.FORK	.QELDF&lt;br /&gt;
&lt;br /&gt;
	КРОМЕ ТОГО, ЕСЛИ В ДРАЙВЕРЕ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ&lt;br /&gt;
ВЫБРАНА ПОДДЕРЖКА ТАЙМЕРА (TIM$IT=1), ТО .DRDEF ВЫДАЕТ&lt;br /&gt;
ДИРЕКТИВУ .MCALL ДЛЯ ЗАПРОСОВ .TIMIO И .CTIMIO.&lt;br /&gt;
&lt;br /&gt;
	2.1.1.1. УСЛОВИЯ ГЕНЕРАЦИИ СИСТЕМЫ&lt;br /&gt;
	В СИСТЕМЕ ФОДОС-2 ШИРОКО ИСПОЛЬЗУЮТСЯ УСЛОВНЫЕ&lt;br /&gt;
ДИРЕКТИВЫ ПРИ ТРАНСЛИРОВАНИИ. СЕКЦИИ ПРОГРАММЫ НА ИСХОДНОМ&lt;br /&gt;
ЯЗЫКЕ УЧАСТВУЮТ В ТРАНСЛИРОВАНИИ ИЛИ НЕТ, В ЗАВИСИМОСТИ ОТ&lt;br /&gt;
ЗНАЧЕНИЯ УСЛОВНЫХ СИМВОЛОВ. НАПРИМЕР, ФОДОС-2 ИСПОЛЬЗУЕТ&lt;br /&gt;
УСЛОВНЫЙ СИМВОЛ ERL$G ДЛЯ ПОКАЗА - ДОЛЖНА ЛИ ТРАНСЛИРОВАТЬСЯ&lt;br /&gt;
ПОДПРОГРАММА РЕГИСТРАЦИИ ОШИБОК ИЛИ НЕТ. ЕСЛИ В ДРАЙВЕРЕ&lt;br /&gt;
УСТРОЙСТВА ИСПОЛЬЗУЮТСЯ УСЛОВНЫЕ СИМВОЛЫ, ТО ОНИ ДОЛЖНЫ&lt;br /&gt;
СОГЛАСОВЫВАТЬСЯ СО СТАНДАРТНЫМИ, ИСПОЛЬЗУЮЩИМИСЯ В ФОДОС-2.&lt;br /&gt;
ПРИ РАВЕНСТВЕ НУЛЮ УСЛОВНОГО СИМВОЛА ДАННАЯ ОСОБЕННОСТЬ НЕ&lt;br /&gt;
ВКЛЮЧАЕТСЯ ПРИ ТРАНСЛИРОВАНИИИ ПРОГРАММЫ, В СЛУЧАЕ, КОГДА&lt;br /&gt;
УСЛОВНЫЙ СИМВОЛ РАВЕН 1, ЭТА ОСОБЕННОСТЬ ПРИСУТСТВУЕТ;&lt;br /&gt;
ФОДОС-2 ИСПОЛЬЗУЕТ ТОЛЬКО ЗНАЧЕНИЯ 0 И 1; ЕСЛИ УСЛОВНЫЕ&lt;br /&gt;
СИМВОЛЫ ИМЕЮТ ЗНАЧЕНИЯ ИНЫЕ, ЧЕМ 0, TO .DRDEF ПРИРАВНИВАЕТ&lt;br /&gt;
ИХ 1.&lt;br /&gt;
	ЗАПРОС .DRDEF ПРИРАВНИВАЕТ НУЛЮ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ&lt;br /&gt;
TIM$IT (ДЛЯ ТАЙМ-АУТА УСТРОЙСТВА), MMG$T (ДЛЯ ПОДДЕРЖКИ&lt;br /&gt;
РАСШИРЕННОЙ ПАМЯТИ) И ERL$G (ДЛЯ РЕГИСТРАЦИИ ОШИБОК), ЕСЛИ&lt;br /&gt;
НЕ ОПРЕДЕЛИТЬ ИХ В НАЧАЛЕ ФАЙЛА ПРИ ТРАНСЛИРОВАНИИ.&lt;br /&gt;
&lt;br /&gt;
	2.1.1.2. СМЕЩЕНИЕ ЭЛЕМЕНТОВ ОЧЕРЕДИ&lt;br /&gt;
	ЗАПРОС .DRDEF ВЫЗЫВАЕТ ЗАПРОС .QELDF ДЛЯ ОПРЕДЕЛЕНИЯ&lt;br /&gt;
СМЕЩЕНИЙ ЭЛЕМЕНТОВ ОЧЕРЕДИ СИМВОЛИЧЕСКИ. НИЖЕ ПРИВЕДЕНЫ&lt;br /&gt;
СГЕНЕРИРОВАННЫЕ СМЕЩЕНИЯ ЭЛЕМЕНТОВ ОЧЕРЕДИ:&lt;br /&gt;
	Q.LINK=0	(СВЯЗЬ СО СЛЕДУЮЩИМ ЭЛЕМЕНТОМ ОЧЕРЕДИ)&lt;br /&gt;
	Q.CSW=2.	(УКАЗАТЕЛЬ ДЛЯ СЛОВА СОСТОЯНИЯ КАНАЛА)&lt;br /&gt;
	Q.BLKN=4.	(НОМЕР ФИЗИЧЕСКОГО БЛОКА)&lt;br /&gt;
	Q.FUNC=6.	(КОД СПЕЦИАЛЬНОЙ ФУНКЦИИ)&lt;br /&gt;
	Q.JNUM=7.	(НОМЕР ЗАДАНИЯ)&lt;br /&gt;
	Q.UNIT=7.	(НОМЕР ПРИВОДА УСТРОЙСТВА)&lt;br /&gt;
	Q.BUFF=^o10	(АДРЕС БУФЕРА ПОЛЬЗОВАТЕЛЯ)&lt;br /&gt;
	Q.WCNT=^o12	(СЧЕТЧИК СЛОВ)&lt;br /&gt;
	Q.COMP=^o14	(КОД ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ)&lt;br /&gt;
	Q.ELGH=^o16	(РАЗМЕР ЭЛЕМЕНТА ОЧЕРЕДИ)&lt;br /&gt;
&lt;br /&gt;
	ТАК КАК ДРАЙВЕР ОБЫЧНО РАССМАТРИВАЕТ ТОЛЬКО СМЕЩЕНИЯ&lt;br /&gt;
ЭЛЕМЕНТОВ ОЧЕРЕДИ ОТНОСИТЕЛЬНО Q.BLKN, ЗАПРОС .QELDF&lt;br /&gt;
ОПРЕДЕЛЯЕТ ТАКЖЕ СЛЕДУЮЩИЕ СИМВОЛИЧЕСКИЕ СМЕЩЕНИЯ:&lt;br /&gt;
	Q$LINK=-4&lt;br /&gt;
	Q$CSW=-2&lt;br /&gt;
	Q$BLKN=0&lt;br /&gt;
	Q$FUNC=2&lt;br /&gt;
	Q$JNUM=3&lt;br /&gt;
	Q$UNIT=3&lt;br /&gt;
	Q$BUFF=4&lt;br /&gt;
	Q$WCNT=6&lt;br /&gt;
	Q$COMP=10&lt;br /&gt;
&lt;br /&gt;
	2.1.1.3. ОПРЕДЕЛЕНИЕ СИМВОЛОВ&lt;br /&gt;
	ДЛЯ ОПРЕДЕЛЕНИЯ СИМВОЛОВ ИСПОЛЬЗУЮТСЯ ОПЕРАТОРЫ ПРЯМОГО&lt;br /&gt;
ПРИСВАИВАНИЯ. ОБЫЧНО ТАКИМ ОБРАЗОМ ОПРЕДЕЛЯЮТСЯ РЕГИСТРЫ&lt;br /&gt;
УСТРОЙСТВ И ДРУГИЕ НЕОБХОДИМЫЕ ВНУТРЕННИЕ СИМВОЛЫ. НИЖЕ&lt;br /&gt;
ПРИВЕДЕНЫ ПРИМЕРЫ ИЗ ДРАЙВЕРОВ УСТРОЙСТВ СИСТЕМЫ ФОДОС-2.&lt;br /&gt;
	НАПРИМЕР, ДЛЯ ОПРЕДЕЛЕНИЯ ВНУТРЕННЕГО СИМВОЛА ДЛЯ&lt;br /&gt;
ПЕРЕВОДА СТРОКИ (КОД 12 В КОИ-7):&lt;br /&gt;
	LF =12 ;ПЕРЕВОД СТРОКИ&lt;br /&gt;
	РЕГИСТРЫ УСТРОЙСТВА ОПРЕДЕЛЯЮТСЯ СЛЕДУЮЩИМ ОБРАЗОМ:&lt;br /&gt;
	RKDS =RK$CSR ;РЕГИСТР СОСТОЯНИЯ ПРИВОДА&lt;br /&gt;
	RKER =RKDS+2 ;РЕГИСТР ОШИБКИ&lt;br /&gt;
	RKCS =RKDS+4 ;РЕГИСТР СОСТОЯНИЯ&lt;br /&gt;
	RKWC =RKDS+6 ;РЕГИСТР СЧЕТЧИКА СЛОВ&lt;br /&gt;
&lt;br /&gt;
	ЗАПРОС .DRDEF ОПРЕДЕЛЯЕТ ДЛЯ ПОЛЬЗОВАТЕЛЯ СЛЕДУЮЩИЕ&lt;br /&gt;
СИМВОЛЫ:&lt;br /&gt;
	HDERR$=1 ;РАЗРЯД НЕВОССТАНОВИМОЙ ОШИБКИ В CSW&lt;br /&gt;
	EOF=20000 ;РАЗРЯД КОНЦА ФАЙЛА В CSW&lt;br /&gt;
&lt;br /&gt;
	2.1.2. БАЙТ ИДЕНТИФИКАЦИИ УСТРОЙСТВА&lt;br /&gt;
	МЛАДШИЙ БАЙТ СЛОВА СОСТОЯНИЯ УСТРОЙСТВА, БАЙТ&lt;br /&gt;
ИДЕНТИФИКАЦИИ УСТРОЙСТВА, ОПРЕДЕЛЯЕТ КАЖДОЕ УСТРОЙСТВО В&lt;br /&gt;
СИСТЕМЕ. ЧТОБЫ УКАЗАТЬ КОНКРЕТНОЕ УСТРОЙСТВО, НЕОБХОДИМО&lt;br /&gt;
УКАЗАТЬ ОПРЕДЕЛЕННЫЙ КОД В АРГУМЕНТЕ CODE ЗАПРОСА .DRDEF.&lt;br /&gt;
ВОСЬМЕРИЧНЫЕ ЗНАЧЕНИЯ КОДА ПРИВЕДЕНЫ В ТАБЛ.1.&lt;br /&gt;
&lt;br /&gt;
 ИМЯ	КОД 		УСТРОЙСТВО&lt;br /&gt;
&lt;br /&gt;
 RK	0	КАССЕТНЫЙ МАГНИТНЫЙ ДИСК ТИПА СМ 5400&lt;br /&gt;
	1	ЗАРЕЗЕРВИРОВАН&lt;br /&gt;
 EL	2	ЛОГИЧЕСКОЕ УСТРОЙСТВО РЕГИСТРАЦИИ ОШИБОК&lt;br /&gt;
 LP	3	ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ УСТРОЙСТВО&lt;br /&gt;
 TT,BA	4	СИСТЕМНЫЙ ТЕРМИНАЛ 15ИЭ-00-013 ИЛИ ДРАЙВЕР ПАКЕТНОЙ ОБРАБОТКИ&lt;br /&gt;
	5	ЗАРЕЗЕРВИРОВАН&lt;br /&gt;
 DY	6	ГИБКИЙ ДИСК С ДВОЙНОЙ ПЛОТНОСТЬЮ ЗАПИСИ&lt;br /&gt;
 PC	7	ПЕРФОЛЕНТОЧНОЕ УСТРОЙСТВО ВВОДА (FS 1501) И ВЫВОДА (ПЛ-150)&lt;br /&gt;
	10	ЗАРЕЗЕРВИРОВАН&lt;br /&gt;
 MT	11	МАГНИТНАЯ ЛЕНТА ТИПА СМ 5300.01&lt;br /&gt;
	12-20	ЗАРЕЗЕРВИРОВАНЫ&lt;br /&gt;
 DP	21	ПАКЕТ МАГНИТНЫХ ДИСКОВ (29 МГБАЙТ)&lt;br /&gt;
 DX	22	ГИБКИЙ ДИСК ТИПА &amp;quot;ЭЛЕКТРОНИКА ГМД-7012&amp;quot;&lt;br /&gt;
	23-24	ЗАРЕЗЕРВИРОВАНЫ&lt;br /&gt;
 NL	25	ФИКТИВНОЕ УСТРОЙСТВО&lt;br /&gt;
	26-33	ЗАРЕЗЕРВИРОВАНЫ&lt;br /&gt;
 DD	34	МАГНИТНАЯ ЛЕНТА КАССЕТНОГО ТИПА&lt;br /&gt;
	35-40	ЗАРЕЗЕРВИРОВАНЫ&lt;br /&gt;
 LS	41	ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ УСТРОЙСТВО ПОСЛЕДОВАТЕЛЬНОГО ТИПА&lt;br /&gt;
 MQ	42	ДРАЙВЕР ОБМЕНА МЕЖДУ ЗАДАНИЯМИ&lt;br /&gt;
	43-45	ЗАРЕЗЕРВИРОВАНЫ&lt;br /&gt;
 LD	46	ДРАЙВЕР ЛОГИЧЕСКОГО ДИСКА&lt;br /&gt;
 VM	47	ДРАЙВЕР РАСШИРЕННОЙ ПАМЯТИ&lt;br /&gt;
 DU	50	ДИСКИ ВИНЧЕСТЕРСКОГО ТИПА ИЛИ МИНИ-ГИБКИЕ ДИСКИ&lt;br /&gt;
 SL	51	РЕДАКТОР КОМАНДНОЙ СТРОКИ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	ДЛЯ СОЗДАНИЯ КОДА ИДЕНТИФИКАЦИИ УСТРОЙСТВ, КОТОРЫЕ НЕ&lt;br /&gt;
ПОДДЕРЖИВАЮТСЯ СИСТЕМОЙ ФОДОС-2, МОЖНО ПОЛЬЗОВАТЬСЯ&lt;br /&gt;
ЗНАЧЕНИЕМ КОДА 377 ДЛЯ ПЕРВОГО НЕПРЕДУСМОТРЕННОГО&lt;br /&gt;
УСТРОЙСТВА, 376 - ДЛЯ ВТОРОГО И Т.Д. ГЛАВНОЕ, ЧТОБЫ ЭТИ&lt;br /&gt;
КОДЫ НЕ ПРОТИВОРЕЧИЛИ КОДАМ, КОТОРЫЕ БУДУТ ИСПОЛЬЗОВАТЬСЯ В&lt;br /&gt;
БУДУЩЕМ.&lt;br /&gt;
&lt;br /&gt;
	2.1.3. СЛОВО СОСТОЯНИЯ УСТРОЙСТВА&lt;br /&gt;
	СЛОВО СОСТОЯНИЯ УСТРОЙСТВА ОПРЕДЕЛЯЕТ КАЖДОЕ ФИЗИЧЕСКОЕ&lt;br /&gt;
УСТРОЙСТВО В СИСТЕМЕ ФОДОС-2 И СОДЕРЖИТ ИНФОРМАЦИЮ О ТОМ,&lt;br /&gt;
КАКОЕ ЭТО УСТРОЙСТВО: ПРОИЗВОЛЬНОГО ИЛИ ПОСЛЕДОВАТЕЛЬНОГО&lt;br /&gt;
ДОСТУПА К ДАННЫМ. СЛОВО СОСТОЯНИЯ УСТРОЙСТВА ЗАПИСЫВАЕТСЯ В&lt;br /&gt;
НУЛЕВОЙ БЛОК ФАЙЛА ДРАЙВЕРА УСТРОЙСТВА И В ТАБЛИЦУ $STAT,&lt;br /&gt;
КОГДА УСТРОЙСТВО УСТАНОВЛЕНО; ПРОГРАММНЫЙ ЗАПРОС .DSTATUS&lt;br /&gt;
ВОЗВРАЩАЕТ ЭТО ЗНАЧЕНИЕ В ВЫПОЛНЯЮЩУЮСЯ ПРОГРАММУ. ЗАПРОС&lt;br /&gt;
.DRDEF УСТАНАВЛИВАЕТ СЛОВО СОСТОЯНИЯ УСТРОЙСТВА НА ОСНОВАНИИ&lt;br /&gt;
АРГУМЕНТОВ CODE И STAT.&lt;br /&gt;
	В ТАБЛ.2 ПОКАЗАНЫ ЗНАЧЕНИЯ РАЗРЯДОВ В СЛОВЕ СОСТОЯНИЯ&lt;br /&gt;
УСТРОЙСТВА. ЗАПРОС .DRDEF ИСПОЛЬЗУЕТ СИМВОЛ DDSTS ДЛЯ&lt;br /&gt;
ОПРЕДЕЛЕНИЯ СЛОВА СОСТОЯНИЯ УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
ТАБЛИЦА 2 &lt;br /&gt;
&lt;br /&gt;
 РАЗРЯД	СИМВОЛ                ЗНАЧЕНИЕ                 &lt;br /&gt;
&lt;br /&gt;
 0-7	-	БАЙТ ИДЕНТИФИКАЦИИ УСТРОЙСТВА&lt;br /&gt;
  8	VARSZ$	0 = ЗАПРОС .SPFUN 373 НЕДОПУСТИМ ДЛЯ&lt;br /&gt;
		ЭТОГО ДРАЙВЕРА&lt;br /&gt;
		1 = ДРАЙВЕР ДОПУСКАЕТ ИСПОЛЬЗОВАНИЕ&lt;br /&gt;
		ЗАПРОСА .SPFUN 373 (ВОЗВРАЩАЕТ РАЗМЕР ТОМА)&lt;br /&gt;
  9	ABTIO$	0 = ВХОД В ДРАЙВЕР ОСУЩЕСТВЛЯЕТСЯ НЕ В ТОЧКЕ ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
		ПРЕРЫВАНИЯ ПО НОРМАЛЬНОМУ ВЫХОДУ ИЗ ПРОГРАММЫ&lt;br /&gt;
		1 = ВХОД В ДРАЙВЕР ОСУЩЕСТВЛЯЕТСЯ В ТОЧКЕ ПРЕЖДЕВРЕМЕННОГО &lt;br /&gt;
		ПРЕРЫВАНИЯ ВСЯКИЙ РАЗ ПО ОКОНЧАНИИ ПРОГРАММЫ&lt;br /&gt;
 10	SPFUN$	0 = ЗАПРОС .SPFUN НЕДОПУСТИМ&lt;br /&gt;
		1 = ДРАЙВЕР ДОПУСКАЕТ ИСПОЛЬЗОВАНИЕ .SPFUN&lt;br /&gt;
 11	HNDLR$	0 = ВВОДИТ ДРАЙВЕР В ТОЧКУ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ,&lt;br /&gt;
		ЕСЛИ В ПРЕРВАННОМ ЗАДАНИИ ЕСТЬ АКТИВНЫЙ ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
		1 = ВВОДИТ ДРАЙВЕР В ТОЧКУ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ&lt;br /&gt;
		ВО ВСЕХ СЛУЧАЯХ ПРЕЖДЕВРЕМЕННЫХ ПРЕРЫВАНИЙ.&lt;br /&gt;
		ЭТОТ РАЗРЯД ИГНОРИРУЕТСЯ В СИСТЕМЕ SJ&lt;br /&gt;
 12	SPECL$	1 = УСТРОЙСТВО СПЕЦИАЛЬНОЙ СПРАВОЧНОЙ&lt;br /&gt;
		СТРУКТУРЫ (НАПРИМЕР, MT)&lt;br /&gt;
 13	WONLY$	1 = УСТРОЙСТВО ТОЛЬКО ДЛЯ ЗАПИСИ&lt;br /&gt;
 14	RONLY$	1 = УСТРОЙСТВО ТОЛЬКО ДЛЯ ЧТЕНИЯ&lt;br /&gt;
 15	FILST$	0 = УСТРОЙСТВО ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА (НАПРИМЕР, LP)&lt;br /&gt;
		1 = УСТРОЙСТВО ПРОИЗВОЛЬНОГО ДОСТУПА (НАПРИМЕР, RK, DX)&lt;br /&gt;
&lt;br /&gt;
РАЗРЯД 11 В СЛОВЕ СОСТОЯНИЯ УСТРОЙСТВА УСТАНАВЛИВАЕТСЯ ДЛЯ&lt;br /&gt;
ДРАЙВЕРОВ УСТРОЙСТВ, КОТОРЫЕ ПЕРЕМЕЩАЮТ ЭЛЕМЕНТ ОЧЕРЕДИ ПРИ&lt;br /&gt;
ВВОДЕ И ОРГАНИЗУЮТ ВНУТРЕННЮЮ ОЧЕРЕДЬ, И ДЛЯ УСТРОЙСТВ,&lt;br /&gt;
ТАКИХ, КАК МАГНИТНАЯ ЛЕНТА, КОТОРЫЕ ИМЕЮТ ВНУТРЕННИЕ ДАННЫЕ,&lt;br /&gt;
КОТОРЫЕ МОГУТ ИЗМЕНИТЬСЯ ПРИ ПРЕЖДЕВРЕМЕННОМ ПРЕРЫВАНИИ.&lt;br /&gt;
ПРЕДПОЛАГАЕТСЯ, ЧТО ВСЕ ДРАЙВЕРЫ УСТРОЙСТВ, У КОТОРЫХ&lt;br /&gt;
УСТАНОВЛЕН РАЗРЯД 15, ЯВЛЯЮТСЯ УСТРОЙСТВАМИ ФАЙЛОВОЙ&lt;br /&gt;
СТРУКТУРЫ В СИСТЕМЕ ФОДОС-2 ДЛЯ БОЛЬШИНСТВА ПРОГРАММ,&lt;br /&gt;
ОБСЛУЖИВАЮЩИХ СИСТЕМУ. САМЫМ ПРОСТЫМ СПОСОБОМ ОПРЕДЕЛЕНИЯ&lt;br /&gt;
СЛОВА СОСТОЯНИЯ УСТРОЙСТВА ЯВЛЯЕТСЯ ИСПОЛЬЗОВАНИЕ МНЕМОНИКИ&lt;br /&gt;
ДЛЯ КОМБИНАЦИИ ДВОИЧНЫХ РАЗРЯДОВ, КОТОРЫЕ ОПРЕДЕЛЯЮТ ЗАПРОС&lt;br /&gt;
.DRDEF. ТАКИМ ОБРАЗОМ, МОЖНО СОЗДАТЬ АРГУМЕНТ STAT&lt;br /&gt;
ПОСРЕДСТВОМ ОБ'ЕДИНЕНИЯ (С ПОМОЩЬЮ ОПЕРАЦИИ &amp;quot;ИЛИ&amp;quot;)&lt;br /&gt;
СООТВЕТСТВУЮЩИХ СИМВОЛОВ ИЗ ВЫШЕПРИВЕДЕННОГО ПЕРЕЧНЯ:&lt;br /&gt;
	FILST$ ==100000	;ФАЙЛОВАЯ СТРУКТУРА ПРОИЗВОЛЬНОГО&lt;br /&gt;
			;ДОСТУПА К ДАННЫМ&lt;br /&gt;
	RONLY$ ==40000	;ТОЛЬКО ЧТЕНИЕ&lt;br /&gt;
	WONLY$ ==20000	;ТОЛЬКО ЗАПИСЬ&lt;br /&gt;
	SPECL$ ==10000	;НЕСПРАВОЧНАЯ СТРУКТУРА&lt;br /&gt;
	HNDLR$ ==4000	;ВВОД ДРАЙВЕРА ПРИ ПРЕЖДЕВРЕМЕННОМ&lt;br /&gt;
			;ПРЕРЫВАНИИ&lt;br /&gt;
	SPFUN$ ==2000	;ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ФУНКЦИЙ&lt;br /&gt;
	ABTIO$ ==1000	;ВСЕГДА ВЫПОЛНЯЕТ ПРЕЖДЕВРЕМЕННОЕ&lt;br /&gt;
			;ПРЕКРАЩЕНИЕ ВХОДА&lt;br /&gt;
	VARSZ$ ==400	;ПОДДЕРЖКА ДРАЙВЕРОМ ТОМОВ&lt;br /&gt;
			;ПЕРЕМЕННОГО РАЗМЕРА&lt;br /&gt;
&lt;br /&gt;
	ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
	ДЛЯ RK: FILST$&lt;br /&gt;
	ДЛЯ MT: SPECL$!SPFUN$&lt;br /&gt;
	ДЛЯ LP: WONLY$&lt;br /&gt;
	В ЭТОМ ПРИМЕРЕ ПРИВЕДЕН АРГУМЕНТ STAT ДЛЯ ДРАЙВЕРОВ&lt;br /&gt;
УСТРОЙСТВ RK, MT, LP.&lt;br /&gt;
&lt;br /&gt;
	2.1.4. СЛОВО РАЗМЕРА УСТРОЙСТВА&lt;br /&gt;
	АРГУМЕНТ SIZE В ЗАПРОСЕ .DRDEF ОПРЕДЕЛЯЕТ РАЗМЕР&lt;br /&gt;
УСТРОЙСТВА В БЛОКАХ. ЗАПРОС .DRDEF ПОМЕЩАЕТ ЗНАЧЕНИЕ&lt;br /&gt;
РАЗМЕРА УСТРОЙСТВА В DDDSIZ. ЕСЛИ УСТРОЙСТВО НЕ ЯВЛЯЕТСЯ&lt;br /&gt;
УСТРОЙСТВОМ ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ, НЕОБХОДИМО&lt;br /&gt;
ПОМЕСТИТЬ ЗНАЧЕНИЕ 0 В SIZE. НАПРИМЕР, РАЗМЕР УСТРОЙСТВА&lt;br /&gt;
DX: РАВЕН 486 БЛОКАМ (746 ВОСЬМЕРИЧНЫЙ); РАЗМЕР УСТРОЙСТВА&lt;br /&gt;
PC: РАВЕН 0, Т.К. ОНО НЕ ЯВЛЯЕТСЯ УСТРОЙСТВОМ&lt;br /&gt;
ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ.&lt;br /&gt;
	ПРОГРАММНЫЙ ЗАПРОС .DSTATUS ВОЗВРАЩАЕТ ЗНАЧЕНИЕ СЛОВА&lt;br /&gt;
РАЗМЕРА УСТРОЙСТВА В ВЫПОЛНЯЮЩУЮСЯ ПРОГРАММУ.&lt;br /&gt;
&lt;br /&gt;
	2.2. СЕКЦИЯ ЗАГОЛОВКА&lt;br /&gt;
	В ЗАГОЛОВКЕ ДРАЙВЕРА ВЫЗЫВАЕТСЯ ЗАПРОС .DRBEG ДЛЯ&lt;br /&gt;
УСТАНОВКИ ПЕРВЫХ ПЯТИ СЛОВ ДРАЙВЕРА. КРОМЕ ТОГО, ЭТОТ&lt;br /&gt;
ЗАПРОС ЗАПИСЫВАЕТ 5 СЛОВ ИНФОРМАЦИИ В БЛОК 0 ФАЙЛА ДРАЙВЕРА,&lt;br /&gt;
В ЯЧЕЙКИ С 52 ПО 60, И СОЗДАЕТ НЕСКОЛЬКО ГЛОБАЛЬНЫХ&lt;br /&gt;
СИМВОЛОВ. ДАННЫЕ, КОТОРЫЕ УСТАНАВЛИВАЮТСЯ В СЕКЦИИ&lt;br /&gt;
ЗАГОЛОВКА, ИСПОЛЬЗУЮТСЯ ПРИ ЗАГРУЗКЕ ДРАЙВЕРА В ПАМЯТЬ&lt;br /&gt;
ПОСРЕДСТВОМ ПРОГРАММНОГО ЗАПРОСА .FETCH ИЛИ КОМАНДЫ МОНИТОРА&lt;br /&gt;
LOAD. СОДЕРЖИМОЕ ЯЧЕЙКИ 176 ИСПОЛЬЗУЕТСЯ НАЧАЛЬНЫМ&lt;br /&gt;
ЗАГРУЗЧИКОМ ДЛЯ ПРОВЕРКИ НАЛИЧИЯ АППАРАТУРЫ УСТРОЙСТВА ВО&lt;br /&gt;
ВРЕМЯ УСТАНОВКИ ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
	2.2.1. ИНФОРМАЦИЯ В БЛОКЕ 0&lt;br /&gt;
	В ТАБЛ.3 ПРИВЕДЕНЫ 5 СЛОВ В БЛОКЕ 0, КОТОРЫЕ ЗАПРОС&lt;br /&gt;
.DRBEG УСТАНАВЛИВАЕТ ПОСРЕДСТВОМ ДИРЕКТИВЫ .ASECT, И 3&lt;br /&gt;
СЛОВА, КОТОРЫЕ .DRBOT УСТАНАВЛИВАЕТ ДЛЯ ЗАГРУЖАЕМЫХ&lt;br /&gt;
УСТРОЙСТВ. В ТАБЛИЦЕ СООТВЕТСТВУЮЩАЯ МНЕМОНИКА ПОКАЗАНА В&lt;br /&gt;
КВАДРАТНЫХ СКОБКАХ, ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА&lt;br /&gt;
ПРЕДСТАВЛЕНО ПОСРЕДСТВОМ DD.&lt;br /&gt;
	КОД СРАВНЕНИЯ УСТАНОВКИ, ЯВЛЯЮЩИЙСЯ ПАРАМЕТРОМ, ОПИСАН&lt;br /&gt;
В П.6.2.3.&lt;br /&gt;
&lt;br /&gt;
ТАБЛИЦА 3 &lt;br /&gt;
&lt;br /&gt;
 ЯЧЕЙКА		СОДЕРЖИМОЕ (И МНЕМОНИКА)&lt;br /&gt;
&lt;br /&gt;
  52	РАЗМЕР ДРАЙВЕРА В БАЙТАХ [DDEND-DDSTRT]&lt;br /&gt;
  54	РАЗМЕР УСТРОЙСТВА В БЛОКАХ [DDDSIZ]&lt;br /&gt;
  56	СЛОВО СОСТОЯНИЯ УСТРОЙСТВА [DDSTS]&lt;br /&gt;
  60	СЛОВО СОСТОЯНИЯ ДЛЯ ОТРАЖЕНИЯ ТЕКУЩИХ&lt;br /&gt;
	ДОПОЛНИТЕЛЬНЫХ СРЕДСТВ ГЕНЕРАЦИИ СИСТЕМЫ [ERL$G+&amp;lt;MMG$T*2&amp;gt;+&amp;lt;TIM$IT*4&amp;gt;]&lt;br /&gt;
  62	УКАЗАТЕЛЬ НАЧАЛА ПЕРВИЧНОГО ДРАЙВЕРА (ИЗ .DRBOT)&lt;br /&gt;
  64	РАЗМЕР ПЕРВИЧНОГО ДРАЙВЕРА В БАЙТАХ (ИЗ .DRBOT)&lt;br /&gt;
  66	СМЕЩЕНИЕ ОТ НАЧАЛА ПЕРВИЧНОГО ДРАЙВЕРА К&lt;br /&gt;
	НАЧАЛУ ПОДПРОГРАММЫ СЧИТЫВАНИЯ НАЧАЛЬНОГО ЗАГРУЗЧИКА (ИЗ .DRBOT)&lt;br /&gt;
 176	АДРЕС РЕГИСТРА КОМАНД И СОСТОЯНИЯ CSR [DD$CSR]&lt;br /&gt;
 200	НАЧАЛО КОДА СРАВНЕНИЯ УСТАНОВКИ&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В ТАБЛ.4 ПРИВЕДЕНЫ 5 СЛОВ, КОТОРЫЕ ЗАПРОС .DRBEG ГЕНЕРИРУЕТ&lt;br /&gt;
В НАЧАЛЕ СЕКЦИИ ОПРЕДЕЛЕНИЙ ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
ТАБЛИЦА 4&lt;br /&gt;
&lt;br /&gt;
 СЛОВО	СИМВОЛ		УСТРОЙСТВО&lt;br /&gt;
&lt;br /&gt;
  1	DDSTRT::	ВЕКТОР УСТРОЙСТВА ДЛЯ ОДНОВЕКТОРНЫХ УСТРОЙСТВ;СМЕЩЕНИЕ&lt;br /&gt;
			К ТАБЛИЦЕ ВЕКТОРОВ ДЛЯ МНОГОВЕКТОРНЫХ УСТРОЙСТВ)&lt;br /&gt;
  2	--		СМЕЩЕНИЕ К ТОЧКЕ ВХОДА ОБРАБОТКИ&lt;br /&gt;
			ПРЕРЫВАНИЯ&lt;br /&gt;
  3	--		ПРИОРИТЕТ (340)&lt;br /&gt;
  4	DDLQE::		УКАЗАТЕЛЬ ПОСЛЕДНЕГО ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
  5	DDCQE::		УКАЗАТЕЛЬ ТЕКУЩЕГО ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
&lt;br /&gt;
	2.2.3. ЗАПРОС .DRBEG&lt;br /&gt;
ЗАПРОС .DRBEG ИСПОЛЬЗУЕТСЯ ДЛЯ УСТАНОВКИ ИНФОРМАЦИИ В БЛОКЕ&lt;br /&gt;
0 И ПЕРВЫХ ПЯТИ СЛОВ ДРАЙВЕРА. ЭТОТ ЗАПРОС ГЕНЕРИРУЕТ ТАКЖЕ&lt;br /&gt;
СООТВЕТСТВУЮЩИЕ ГЛОБАЛЬНЫЕ СИМВОЛЫ ДАННОГО ДРАЙВЕРА. ПЕРЕД&lt;br /&gt;
ИСПОЛЬЗОВАНИЕМ .DRBEG НЕОБХОДИМО С ПОМОЩЬЮ ЗАПРОСА .DRDEF&lt;br /&gt;
ОПРЕДЕЛИТЬ DD$CSR, DD$VEC, DDDSIZ И DDSTS. ФОРМАТ ДЛЯ&lt;br /&gt;
.DRBEG СЛЕДУЮЩИЙ: .DRBEG NAME&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
	2.2.4. МНОГОВЕКТОРНЫЕ ДРАЙВЕРЫ: ЗАПРОС .DRVTB&lt;br /&gt;
ДРАЙВЕРЫ УСТРОЙСТВ СИСТЕМЫ ФОДОС-2 МОГУТ ОБСЛУЖИВАТЬ&lt;br /&gt;
УСТРОЙСТВА, ИМЕЮЩИЕ БОЛЕЕ ОДНОГО ВЕКТОРА. НАПРИМЕР, ДРАЙВЕР&lt;br /&gt;
PC ОБРАБАТЫВАЕТ ПРЕРЫВАНИЕ ПОСРЕДСТВОМ ВЕКТОРА 70 ДЛЯ&lt;br /&gt;
СЧИТЫВАТЕЛЯ С ПЕРФОЛЕНТЫ И ПОСРЕДСТВОМ ВЕКТОРА 74 ДЛЯ&lt;br /&gt;
ПЕРФОРАТОРА. ЕСЛИ ДАННОЕ УСТРОЙСТВО ИМЕЕТ ОДИН ВЕКТОР&lt;br /&gt;
ПРЕРЫВАНИЯ, ТО ЕГО ДРАЙВЕР ДОЛЖЕН ИМЕТЬ ТАБЛИЦУ ТРЕХСЛОВНЫХ&lt;br /&gt;
ЭЛЕМЕНТОВ ДЛЯ КАЖДОГО ВЕКТОРА. ЭЛЕМЕНТ ДЛЯ КАЖДОГО ВЕКТОРА&lt;br /&gt;
СОСТОИТ ИЗ ЯЧЕЙКИ ВЕКТОРА, ТОЧКИ ВХОДА ПО ПРЕРЫВАНИЮ,&lt;br /&gt;
ЗНАЧЕНИЯ СЛОВА СОСТОЯНИЯ ПРОЦЕССОРА (ИЛИ PS). ДЛЯ УСТАНОВКИ&lt;br /&gt;
ЗАГОЛОВКА ДРАЙВЕРА НЕОБХОДИМО ВЫЗВАТЬ ЗАПРОС .DRVTB ДВА ИЛИ&lt;br /&gt;
БОЛЬШЕЕ ЧИСЛО РАЗ. ЗАПРОС .DRVTB УСТАНАВЛИВАЕТ ТАБЛИЦУ&lt;br /&gt;
ТРЕХСЛОВНЫХ ЭЛЕМЕНТОВ ДЛЯ КАЖДОГО ВЕКТОРА МНОГОВЕКТОРНОГО&lt;br /&gt;
УСТРОЙСТВА. ЕЕ НЕОБХОДИМО ПОМЕСТИТЬ В ДРАЙВЕРЕ МЕЖДУ&lt;br /&gt;
ЗАПРОСАМИ .DRBEG И .DREND (.DRBOT) ДО ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ. ЗАПРОС .DRVTB НЕОБХОДИМО ВЫЗЫВАТЬ ОДИН РАЗ ДЛЯ&lt;br /&gt;
КАЖДОГО ВЕКТОРА, ПРОГРАММНЫЕ ЗАПРОСЫ ДОЛЖНЫ ПОЯВЛЯТЬСЯ В&lt;br /&gt;
ДРАЙВЕРЕ ОДИН ЗА ДРУГИМ. ФОРМАТ ЗАПРОСА СЛЕДУЮЩИЙ: .DRVTB&lt;br /&gt;
NAME,VEC,INT[,PS]&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА; ЕГО НЕОБХОДИМО&lt;br /&gt;
		УКАЗАТЬ В ПЕРВОМ ВЫЗОВЕ .DRVTB; ВО ВСЕХ&lt;br /&gt;
		ПОСЛЕДУЮЩИХ ВЫЗОВАХ ЕГО МОЖНО ОПУСТИТЬ;&lt;br /&gt;
	VEC -	ЯЧЕЙКА ВЕКТОРА; ОНА ДОЛЖНА НАХОДИТЬСЯ МЕЖДУ 0 И&lt;br /&gt;
		474; ПЕРВЫМ ВЕКТОРОМ ОБЫЧНО ЯВЛЯЕТСЯ DD$VEC,&lt;br /&gt;
		ЗНАЧЕНИЕ КОТОРОГО ДОЛЖНО БЫТЬ КРАТНО ЧЕТЫРЕМ;&lt;br /&gt;
	INT -	СИМВОЛИЧЕСКОЕ ИМЯ ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
		ПРЕРЫВАНИЙ; ОНО ДОЛЖНО БЫТЬ ОПРЕДЕЛЕНО В&lt;br /&gt;
		ДРАЙВЕРЕ И ОБЫЧНО ПРИНИМАЕT ФОРМУ DDINT;&lt;br /&gt;
	PS -	ПРОИЗВОЛЬНОЕ ЗНАЧЕНИЕ, КОТОРОЕ МОЖНО&lt;br /&gt;
		ИСПОЛЬЗОВАТЬ ДЛЯ ОБОЗНАЧЕНИЯ ЧЕТЫРЕХ МЛАДШИХ&lt;br /&gt;
		РАЗРЯДОВ НОВОГО СЛОВА СОСТОЯНИЯ ПРОЦЕССОРА В&lt;br /&gt;
		ВЕКТОРЕ ПРЕРЫВАНИЯ; ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ РАВНО&lt;br /&gt;
		НУЛЮ.&lt;br /&gt;
&lt;br /&gt;
ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
 ;ТАБЛИЦА ВЕКТОРОВ ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА ВВОДА-ВЫВОДА&lt;br /&gt;
 .IF PR114$ ;ЕСЛИ ПЕРФОЛЕНТОЧНОЕ&lt;br /&gt;
			;УСТРОЙСТВО ВВОДА-ВЫВОДА&lt;br /&gt;
	.DRVTB PC,PC$VEC,PCINT ;ТАБЛИЦА ВВОДА С ПЕРФОЛЕНТЫ&lt;br /&gt;
	.DRVTB ,PP$VEC,PPINT ;ТАБЛИЦА ВЫВОДА НА ПЕРФОЛЕНТУ&lt;br /&gt;
 .ENDC&lt;br /&gt;
&lt;br /&gt;
	В ЭТОМ ПРИМЕРЕ ПОКАЗАНЫ СТРОКИ И КОДЫ, КОТОРЫЕ&lt;br /&gt;
ГЕНЕРИРУЕТ ЗАПРОС .DRVTB.&lt;br /&gt;
	ПРИМЕР:&lt;br /&gt;
	.WORD &amp;lt;PC$VEC&amp;gt;&amp;amp;&amp;lt;^C3&amp;gt;,PCINT-.,340!0	;ТАБЛИЦА ВВОДА&lt;br /&gt;
						;С ПЕРФОЛЕНТЫ&lt;br /&gt;
	.WORD &amp;lt;PP$VEC&amp;gt;&amp;amp;&amp;lt;^C3&amp;gt;,PPINT-.,340!0	;ТАБЛИЦА ВЫВОДА&lt;br /&gt;
						;НА ПЕРФОЛЕНТУ&lt;br /&gt;
	.WORD 0 ;ДЛЯ ОКОНЧАНИЯ ТАБЛИЦЫ&lt;br /&gt;
&lt;br /&gt;
	В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА ТАБЛИЦА ВЕКТОРА,&lt;br /&gt;
СГЕНЕРИРОВАННАЯ ЗАПРОСОМ .DRVTB. ИЗ ПРИМЕРА ВИДНО, ЧТО&lt;br /&gt;
РАЗРЯДЫ ПРИОРИТЕТА PS ВСЕГДА УСТАНОВЛЕНЫ СЕМЕРКОЙ, ДАЖЕ ЕСЛИ&lt;br /&gt;
АРГУМЕНТ PS ОПУЩЕН.&lt;br /&gt;
&lt;br /&gt;
	2.2.5. КОДЫ УСЛОВИЙ PS&lt;br /&gt;
	В ЗАПРОСЕ .DRVTB СУЩЕСТВЕННЫ ТОЛЬКО РАЗРЯДЫ КОДОВ&lt;br /&gt;
УСЛОВИЙ АРГУМЕНТА PS. ОНИ МОГУТ БЫТЬ ПОЛЕЗНЫ, ЕСЛИ ИМЕЕТСЯ&lt;br /&gt;
ОБЩАЯ ТОЧКА ВХОДА В ПОДПРОГРАММУ ОБРАБОТКИ ПРЕРЫВАНИЯ ДЛЯ&lt;br /&gt;
ДВУХ ИЛИ БОЛЬШЕГО ЧИСЛА ВЕКТОРОВ И НЕОБХОДИМО ОПРЕДЕЛИТЬ,&lt;br /&gt;
ЧЕРЕЗ КАКОЙ ВЕКТОР ВОЗНИКЛО ПРЕРЫВАНИЕ. НАПРИМЕР, ДРАЙВЕР&lt;br /&gt;
PC ИМЕЕТ РАЗДЕЛЬНЫЕ ТОЧКИ ВХОДА ПРЕРЫВАНИЯ ДЛЯ ДВУХ ЕГО&lt;br /&gt;
ВЕКТОРОВ, ПОЭТОМУ ОН МОЖЕТ ЛЕГКО ОПРЕДЕЛИТЬ ИСТОЧНИК&lt;br /&gt;
ПРЕРЫВАНИЯ. ПРЕРЫВАНИЯ ПОСРЕДСТВОМ ВЕКТОРА 70 ИДУТ К&lt;br /&gt;
ПОДПРОГРАММЕ У PCINT:; ПРЕРЫВАНИЯ ПОСРЕДСТВОМ ВЕКТОРА 74&lt;br /&gt;
ИДУТ К PPINT:.&lt;br /&gt;
	ЕСЛИ БЫ ДРАЙВЕР PC ИМЕЛ ТОЛЬКО ОДНУ ТОЧКУ ВХОДА&lt;br /&gt;
ПРЕРЫВАНИЯ, НАЗВАННУЮ PCINT:, ТО В ЭТОМ СЛУЧАЕ, ДРАЙВЕР МОГ&lt;br /&gt;
ОПРЕДЕЛИТЬ, КАКОЙ ВЕКТОР ИСПОЛЬЗОВАЛ ПРЕРЫВАНИЕ ПОСРЕДСТВОМ&lt;br /&gt;
УСТАНОВКИ КОДОВ УСЛОВИЙ В PS ДЛЯ ВЕКТОРОВ. ДЛЯ ВЕКТОРА,&lt;br /&gt;
СЧИТЫВАЮЩЕГО УСТРОЙСТВА 70 ОН МОГ ОСТАВИТЬ C-РАЗРЯД ЧИСТЫМ,&lt;br /&gt;
А ДЛЯ ВЕКТОРА 74 ОН МОГ УСТАНОВИТЬ C-РАЗРЯД. ЗАТЕМ У PCINT:&lt;br /&gt;
УПРАВЛЕНИЕ МОЖЕТ ПЕРЕХОДИТЬ К РАЗЛИЧНЫМ ПОДПРОГРАММАМ,&lt;br /&gt;
ОСНОВАННЫМ НА ЗНАЧЕНИИ C-РАЗРЯДА В НОВОМ PS.&lt;br /&gt;
	ПРИМЕР:&lt;br /&gt;
;ТАБЛИЦА ВЕКТОРОВ ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА ВВОДА-ВЫВОДА&lt;br /&gt;
 .IF EQ PR11$X ;ЕСЛИ ПЕРФОЛЕНТОЧНОЕ&lt;br /&gt;
				;УСТРОЙСТВО ВВОДА-ВЫВОДА&lt;br /&gt;
	.DRVTB PC,PR$VEC,PCINT	;C-РАЗРЯД ЧИСТ&lt;br /&gt;
	.DRVTB ,PP$VEC,PCINT,1	;C-РАЗРЯД УСТАНОВЛЕН&lt;br /&gt;
 .ENDC&lt;br /&gt;
	В ЭТОМ ПРИМЕРЕ ПОКАЗАНО КАК ВЫЗЫВАЕТСЯ ЗАПРОС .DRVTB, И&lt;br /&gt;
ОПРЕДЕЛЯЕТСЯ ЗНАЧЕНИЕ КОДОВ УСЛОВИЙ В PS.&lt;br /&gt;
&lt;br /&gt;
	2.3. СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
	СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА СОДЕРЖИТ ПЯТЬ&lt;br /&gt;
ВЫПОЛНЯЕМЫХ КОМАНД ДРАЙВЕРА. ЦЕЛЬ ЭТОЙ СЕКЦИИ - НАЧАТЬ&lt;br /&gt;
ПЕРЕДАЧУ ДАННЫХ. НЕОБХОДИМО НАПИСАТЬ ПОЗИЦИОННО-НЕЗАВИСИМЫЙ&lt;br /&gt;
КОД (PIC) ДЛЯ ДРАЙВЕРА.&lt;br /&gt;
	КОГДА ВЫДАЕТСЯ ПРОГРАММНЫЙ ЗАПРОС, ТРЕБУЮЩИЙ УСТРОЙСТВО&lt;br /&gt;
ВВОДА-ВЫВОДА, ТАКОЙ КАК .READ ИЛИ .WRITE, УПРАВЛЕНИЕ СНАЧАЛА&lt;br /&gt;
ПЕРЕДАЕТСЯ КЛАВИАТУРНОМУ МОНИТОРУ, КОТОРЫЙ ЗАТЕМ ВЫЗЫВАЕТ&lt;br /&gt;
ДРАЙВЕР С ШЕСТОГО СЛОВА ДРАЙВЕРА, Т.Е. ПЕРВОГО СЛОВА СРАЗУ&lt;br /&gt;
ПОСЛЕ ПЯТИСЛОВНОГО ЗАГОЛОВКА. ОН ДЕЛАЕТ ВЫЗОВ КАЖДЫЙ РАЗ,&lt;br /&gt;
КОГДА НОВЫЙ ЭЛЕМЕНТ ОЧЕРЕДИ СТАНОВИТСЯ ПЕРВЫМ ЭЛЕМЕНТОМ&lt;br /&gt;
ОЧЕРЕДИ ДРАЙВЕРА. ТАКАЯ СИТУАЦИЯ ВОЗНИКАЕТ, КОГДА ЭЛЕМЕНТ&lt;br /&gt;
ДОБАВЛЯЕТСЯ В ПУСТУЮ ОЧЕРЕДЬ ДРАЙВЕРА ИЛИ КОГДА ЭЛЕМЕНТ&lt;br /&gt;
СТАНОВИТСЯ ПЕРВЫМ В ОЧЕРЕДИ, ПОТОМУ ЧТО ПРЕДЫДУЩИЙ ЭЛЕМЕНТ&lt;br /&gt;
БЫЛ ОСВОБОЖДЕН. ЕСЛИ ЛЮБОЙ ИЗ ПАРАМЕТРОВ В ЗАПРОСЕ&lt;br /&gt;
ВВОДА-ВЫВОДА НЕДОПУСТИМ ДЛЯ УСТРОЙСТВА (НАПРИМЕР, СЛИШКОМ&lt;br /&gt;
БОЛЬШОЙ НОМЕР БЛОКА, СЛИШКОМ ВЫСОКИЙ НОМЕР ПРИВОДА И Т.Д.),&lt;br /&gt;
ДРАЙВЕР СРАЗУ ЖЕ ДОЛЖЕН ЗАВЕРШИТЬ СЕКЦИЮ ВВОДА-ВЫВОДА И&lt;br /&gt;
СИГНАЛИЗИРОВАТЬ О НЕВОССТАНОВИМОЙ (ФАТАЛЬНОЙ) ОШИБКЕ.&lt;br /&gt;
	КОД ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА ВЫПОЛНЯЕТСЯ ПРИ НУЛЕВОМ&lt;br /&gt;
ПРИОРИТЕТЕ ПРОЦЕССОРА В СИСТЕМНОМ РЕЖИМЕ. ЭТО ОЗНАЧАЕТ, ЧТО&lt;br /&gt;
НЕ МОЖЕТ ПРОИЗОЙТИ ПЕРЕКЛЮЧЕНИЕ КОНТЕКСТА, НЕВОЗМОЖНО&lt;br /&gt;
ВЫЗВАТЬ ПОДПРОГРАММУ ЗАВЕРШЕНИЯ, И ПРЕРЫВАНИЕ ПО ВЕКТОРУ 4 И&lt;br /&gt;
10 ВЫЗЫВАЕТ ФАТАЛЬНЫЙ ОСТАНОВ СИСТЕМЫ. В ЭТОЙ СЕКЦИИ МОЖНО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ВСЕ РЕГИСТРЫ. ПЯТОЕ СЛОВО ЗАГОЛОВКА ДРАЙВЕРА,&lt;br /&gt;
DDCQE, СОДЕРЖИТ УКАЗАТЕЛЬ ТЕКУЩЕГО ЭЛЕМЕНТА ОЧЕРЕДИ В ЕГО&lt;br /&gt;
ТРЕТЬЕМ СЛОВЕ, Q.BLKN.&lt;br /&gt;
ОРГАНИЗОВАННАЯ В ОЧЕРЕДЬ СИСТЕМА ВВОДА-ВЫВОДА&lt;br /&gt;
ГАРАНТИРУЕТ, ЧТО ЗАПРОСЫ ПЕРЕДАЧИ ДАННЫХ ПРЕОБРАЗУЮТСЯ В&lt;br /&gt;
ПОСЛЕДОВАТЕЛЬНУЮ ФОРМУ ТАКИМ ОБРАЗОМ, ЧТО ДРАЙВЕРАМ&lt;br /&gt;
УСТРОЙСТВ СИСТЕМЫ ФОДОС-2 НЕТ НЕОБХОДИМОСТИ ВВОДИТЬСЯ&lt;br /&gt;
ПОВТОРНО. ПОЭТОМУ, МОЖНО УМЕНЬШИТЬ РАЗМЕР ДРАЙВЕРА&lt;br /&gt;
ПОСРЕДСТВОМ ОБ'ЕДИНЕНИЯ, А НЕ РАЗДЕЛЕНИЯ ЧИСТОГО КОДА И&lt;br /&gt;
СЕГМЕНТОВ ДАННЫХ.&lt;br /&gt;
&lt;br /&gt;
	2.3.1. УКАЗАНИЯ ДЛЯ НАЧАЛА ПЕРЕДАЧИ ДАННЫХ&lt;br /&gt;
	ТАК КАК ЦЕЛЬЮ СЕКЦИИ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
ЯВЛЯЕТСЯ НАЧАЛО ПЕРЕДАЧИ ДАННЫХ, ТО ДЛЯ ЭТОГО НЕОБХОДИМО&lt;br /&gt;
УКАЗАТЬ СООТВЕТСТВУЮЩИЕ КОМАНДЫ. СЛЕДУЮЩИЕ ЭТАПЫ&lt;br /&gt;
ПРЕДСТАВЛЯЮТ РУКОВОДСТВО ДЛЯ ОБОБЩЕННОЙ СЕКЦИИ ИНИЦИИРОВАНИЯ&lt;br /&gt;
ВВОДА-ВЫВОДА.&lt;br /&gt;
1.	НЕОБХОДИМО РЕШИТЬ, СКОЛЬКО РАЗ ДРАЙВЕР БУДЕТ ПОВТОРНО&lt;br /&gt;
	ВЫПОЛНЯТЬ ПЕРЕДАЧУ ДАННЫХ В СЛУЧАЕ, ЕСЛИ ПРОИЗОЙДЕТ&lt;br /&gt;
	ОШИБКА. НЕОБХОДИМО ИНИЦИАЛИЗИРОВАТЬ СЧЕТЧИК ПОВТОРНЫХ&lt;br /&gt;
	ПЕРЕДАЧ ПОСРЕДСТВОМ ПЕРЕМЕЩЕНИЯ В НЕГО МАКСИМАЛЬНОГО&lt;br /&gt;
	ЧИСЛА ПОВТОРНЫХ ПЕРЕДАЧ. СЛЕДУЮЩИЕ ДВЕ СТРОКИ&lt;br /&gt;
	ИЛЛЮСТРИРУЮТ ЭТОТ ЭТАП:&lt;br /&gt;
&lt;br /&gt;
	MOV	#RKCNT,(PC)+	;RKCNT=МАКСИМУМ # ПОВТОРНЫХ&lt;br /&gt;
				;ПЕРЕДАЧ&lt;br /&gt;
RETRY:	.WORD	0		;СЧЕТЧИК ПОВТОРНЫХ ПЕРЕДАЧ&lt;br /&gt;
&lt;br /&gt;
2.	УКАЗАТЕЛЬ ТЕКУЩЕГО ЭЛЕМЕНТА ОЧЕРЕДИ НЕОБХОДИМО ПОМЕСТИТЬ&lt;br /&gt;
	В РЕГИСТР И ПОЛУЧИТЬ ЧИСЛО ПРИВОДОВ ДЛЯ УСТРОЙСТВА И&lt;br /&gt;
	ЧИСЛО БЛОКОВ ДЛЯ ПЕРЕДАЧИ ИЗ ЭЛЕМЕНТА ОЧЕРЕДИ. ЭТО&lt;br /&gt;
	ИЛЛЮСТРИРУЮТ СЛЕДУЮЩИЕ СТРОКИ КОДА:&lt;br /&gt;
&lt;br /&gt;
	MOV	RKCQE,R5	;ЗАСЫЛАЕТ УКАЗАТЕЛЬ ТЕКУЩЕГО&lt;br /&gt;
				;ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
	MOV	@R5,R2 		;R2 = НОМЕР БЛОКА&lt;br /&gt;
	MOV	Q$UNIT-1(R5),R4	;R4 = НОМЕР ЗАПРАШИВАЕМОГО&lt;br /&gt;
				;ПРИВОДА&lt;br /&gt;
	ASR	R4		;СДВИГАЕТ НОМЕР ПРИВОДА НА&lt;br /&gt;
	ASR	R4		;ТРИ РАЗРЯДА ВПРАВО&lt;br /&gt;
	ASR	R4		;В МЛАДШИЙ БАЙТ&lt;br /&gt;
	SWAB	R4		;РАЗМЕЩАЕТ НОМЕР ПРИВОДА В&lt;br /&gt;
				;ТРЕХ РАЗРЯДАХ СТАРШЕГО&lt;br /&gt;
				;БАЙТА&lt;br /&gt;
	BIS	#^C&amp;lt;DAUNIT&amp;gt;,R4	;ИЗОЛИРУЕТ ПРИВОД В РАЗРЯДАХ&lt;br /&gt;
				;ВЫБОРКИ ПРИВОДА&lt;br /&gt;
&lt;br /&gt;
3.	ЗАТЕМ ВЫЧИСЛЯЕТСЯ АДРЕС ДЛЯ НАЧАЛА ПЕРЕДАЧИ ДАННЫХ В&lt;br /&gt;
	УСТРОЙСТВО. ИСПОЛЬЗУЕМЫЕ ПРИ ЭТОМ КОМАНДЫ ЗАВИСЯТ ОТ&lt;br /&gt;
	СТРУКТУРЫ УСТРОЙСТВА. ПОСЛЕ ТОГО, КАК АДРЕС ВЫЧИСЛЕН,&lt;br /&gt;
	ЕГО НЕОБХОДИМО ЗАПИСАТЬ В ЯЧЕЙКУ ПАМЯТИ. ЕСЛИ БУДЕТ&lt;br /&gt;
	НЕОБХОДИМО ПОВТОРНО ВЫПОЛНИТЬ ПЕРЕДАЧУ, ТО АДРЕС НЕ&lt;br /&gt;
	ПРИДЕТСЯ ВЫЧИСЛЯТЬ ПОВТОРНО.&lt;br /&gt;
	.&lt;br /&gt;
	.&lt;br /&gt;
	.&lt;br /&gt;
	MOV	R3,(PC)+	;СОХРАНЯЕТСЯ АДРЕС В DISKAD&lt;br /&gt;
DISKAD:	.WORD	0		;ЯЧЕЙКА ПАМЯТИ ДЛЯ СОХРАНЕНИЯ&lt;br /&gt;
				;ВЫЧИСЛЕННОГО АДРЕСА&lt;br /&gt;
&lt;br /&gt;
4.	ОПИСАННЫЕ ВЫШЕ ЭТАПЫ 1-3 ВЫПОЛНЯЮТСЯ ТОЛЬКО ОДИН РАЗ ДЛЯ&lt;br /&gt;
	КАЖДОГО ЗАПРОСА ВВОДА-ВЫВОДА ДАННЫХ ИЗ ВЫПОЛНЯЮЩЕЙСЯ&lt;br /&gt;
	ПРОГРАММЫ. ОДНАКО В СЛУЧАЕ ВОССТАНОВИМОЙ ОШИБКИ МОЖНО&lt;br /&gt;
	НАЧАТЬ ПОВТОРНО ПЕРЕДАЧУ КАК ЧАСТЬ ОПЕРАЦИИ ПОВТОРЕНИЯ.&lt;br /&gt;
	ПОЭТОМУ, ЕСЛИ ПОМЕСТИТЬ МЕТКУ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ЕЕ КАК&lt;br /&gt;
	ТОЧКУ ВХОДА ПОВТОРНОЙ ПЕРЕДАЧИ, ТО МОЖНО ИЗБЕЖАТЬ&lt;br /&gt;
	ПОВТОРЕНИЯ ЭТАПОВ 1-3. СЛЕДУЮЩИЕ ЭТАПЫ МОГУТ БЫТЬ&lt;br /&gt;
	ВЫПОЛНЕНЫ БОЛЕЕ ОДНОГО РАЗА: ОНИ ВЫПОЛНЯЮТСЯ ОДИН РАЗ&lt;br /&gt;
	ДЛЯ ПЕРВОГО ПУСКА ВВОДА-ВЫВОДА, И ОНИ МОГУТ БЫТЬ&lt;br /&gt;
	ВЫПОЛНЕНЫ ВНОВЬ, ЕСЛИ ОШИБКА ВВОДА-ВЫВОДА ВЫЗЫВАЕТ&lt;br /&gt;
	ПОВТОРНУЮ ПЕРЕДАЧУ. В ЭТОЙ ТОЧКЕ ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
	ОПРЕДЕЛИТЬ, ЯВЛЯЕТСЯ ЛИ ЗАПРОС ВВОДА-ВЫВОДА СЧИТЫВАНИЕМ,&lt;br /&gt;
	ЗАПИСЬЮ ИЛИ УСТАНОВКОЙ. ЗАТЕМ ОН ДОЛЖЕН ГЕНЕРИРОВАТЬ&lt;br /&gt;
	СООТВЕТСТВУЮЩИЙ КОД ОПЕРАЦИИ И ЗАСЫЛАТЬ ЕГО В РЕГИСТР&lt;br /&gt;
	СОСТОЯНИЯ УСТРОЙСТВА. ЭТОТ ЭТАП ФАКТИЧЕСКИ ИНИЦИИРУЕТ&lt;br /&gt;
	ПЕРЕДАЧУ ВВОДА-ВЫВОДА.&lt;br /&gt;
&lt;br /&gt;
	CSIE =100		;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ&lt;br /&gt;
	FNWRITE =12		;ЗАПИСЬ&lt;br /&gt;
	CSGO =1			;РАЗРЯД GO&lt;br /&gt;
	.&lt;br /&gt;
	.&lt;br /&gt;
	.&lt;br /&gt;
AGAIN:	MOV	RKCQE,R5	;УКАЗАТЕЛЬ ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
	MOV	#CSIE!FNWRITE!CSGO,R3	;УСТАНАВЛИВАЕТ ЗАПИСЬ&lt;br /&gt;
	MOV	#RKDA,R4	;УКАЗАТЕЛЬ РЕГИСТРА&lt;br /&gt;
	.			;АДРЕСА ДИСКА&lt;br /&gt;
	.&lt;br /&gt;
	.&lt;br /&gt;
&lt;br /&gt;
5.	И ПОСЛЕДНЕЕ, ВОЗВРАТ К ПРЕРВАННОЙ ПРОГРАММЕ НЕОБХОДИМО&lt;br /&gt;
	ОСУЩЕСТВЛЯТЬ ЧЕРЕЗ МОНИТОР. ЗАТЕМ, КОГДА ПЕРЕДАЧА&lt;br /&gt;
	ВВОДА-ВЫВОДА ЗАКАНЧИВАЕТСЯ, УСТРОЙСТВО БУДЕТ ПРЕРВАНО, И&lt;br /&gt;
	УПРАВЛЕНИЕ ПЕРЕЙДЕТ К ДРАЙВЕРУ В ТОЧКЕ ВХОДА ПРЕРЫВАНИЯ В&lt;br /&gt;
	СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЯ ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
	RTS PC	;ОЖИДАНИЕ ПРЕРЫВАНИЯ&lt;br /&gt;
&lt;br /&gt;
	2.4. СЕКЦИЯ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
	УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ДРАЙВЕРА, КОГДА УСТРОЙСТВО ПРЕРЫВАЕТСЯ ИЛИ КОГДА ПРОГРАММА,&lt;br /&gt;
ЗАПРАШИВАЮЩАЯ ПЕРЕДАЧУ ВВОДА-ВЫВОДА, ПРЕЖДЕВРЕМЕННО&lt;br /&gt;
ПРЕРЫВАЕТСЯ. КОД В ЭТОЙ СЕКЦИИ ДОЛЖЕН СНАЧАЛА ОПРЕДЕЛИТЬ,&lt;br /&gt;
ИМЕЛА ЛИ ПЕРЕДАЧА ДАННЫХ ОШИБКУ, БЫЛА ЛИ ПЕРЕДАЧА ДАННЫХ&lt;br /&gt;
ЗАВЕРШЕНА ИЛИ НЕТ, А ЗАТЕМ ПРЕДПРИНЯТЬ СООТВЕТСТВУЮЩЕЕ&lt;br /&gt;
ДЕЙСТВИЕ.&lt;br /&gt;
     ПЕРВЫМ ШАГОМ В КОДИРОВАНИИ СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ЯВЛЯЕТСЯ УСТАНОВКА ТОЧКИ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ&lt;br /&gt;
ПОСРЕДСТВОМ ИСПОЛЬЗОВАНИЯ ЗАПРОСА .DRAST. (ЭТИ ТОЧКИ ВХОДА&lt;br /&gt;
ИНОГДА РАССМАТРИВАЮТСЯ КАК ТОЧКИ ВХОДА АСИНХРОННОГО&lt;br /&gt;
ПРЕРЫВАНИЯ.) ИМЕНЕМ ТОЧКИ ВХОДА ПО УМОЛЧАНИЮ ЯВЛЯЕТСЯ DDINT.&lt;br /&gt;
ОБЫЧНО ДРАЙВЕР УСТРОЙСТВА ВЫЗЫВАЕТСЯ У ТОЧКИ ВХОДА&lt;br /&gt;
ПРЕРЫВАНИЯ, КОГДА ПРЕРЫВАНИЕ ВОЗНИКЛО. ОДНАКО, ПРИ&lt;br /&gt;
НЕКОТОРЫХ ОБСТОЯТЕЛЬСТВАХ ДРАЙВЕР ВЫЗЫВАЕТСЯ У ТОЧКИ ВХОДА&lt;br /&gt;
ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ.&lt;br /&gt;
&lt;br /&gt;
     2.4.1. ТОЧКА ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ&lt;br /&gt;
     СУЩЕСТВУЕТ РЯД СИТУАЦИЙ, КОТОРЫЕ ВЫЗЫВАЮТ&lt;br /&gt;
ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ В ОРГАНИЗОВАННОЙ В ОЧЕРЕДЬ&lt;br /&gt;
СИСТЕМЕ ВВОДА-ВЫВОДА:&lt;br /&gt;
 - ДВОЙНОЕ НАЖАТИЕ СУ/С МОЖЕТ ПРЕЖДЕВРЕМЕННО ПРЕРВАТЬ&lt;br /&gt;
   ВЫПОЛНЯЮЩУЮСЯ ПРОГРАММУ;&lt;br /&gt;
 - ПРОГРАММНЫЙ ЗАПРОС .HRESET ВЫЗЫВАЕТ ПРЕЖДЕВРЕМЕННОЕ&lt;br /&gt;
   ПРЕРЫВАНИЕ;&lt;br /&gt;
 - ПРЕРЫВАНИЕ ПО 4 ИЛИ 10 ВЕКТОРУ ИЛИ ЛЮБОЕ ДРУГОЕ УСЛОВИЕ,&lt;br /&gt;
   КОТОРОЕ ПРИВОДИТ К СЛЕДУЮЩЕМУ ТИПУ НЕВОССТАНОВИМОЙ&lt;br /&gt;
   (ФАТАЛЬНОЙ) ОШИБКИ ?MON-F-.&lt;br /&gt;
     ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ, НЕЗАВИСИМО ОТ ТОГО, ВВЕДЕН&lt;br /&gt;
ДРАЙВЕР ИЛИ НЕТ, ЗАВИСИТ ОТ ДВУХ ФАКТОРОВ. ДРАЙВЕР ВСЕГДА&lt;br /&gt;
ВВОДИТСЯ В ТОЧКЕ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ (СЛОВО&lt;br /&gt;
СРАЗУ ЖЕ ПЕРЕД ОБЫЧНОЙ ТОЧКОЙ ВХОДА ПРЕРЫВАНИЯ), ЕСЛИ&lt;br /&gt;
ВЫПОЛНЯЛСЯ АКТИВНЫЙ ЭЛЕМЕНТ ОЧЕРЕДИ, КОТОРЫЙ ПРИНАДЛЕЖИТ&lt;br /&gt;
ПРЕЖДЕВРЕМЕННО ПРЕРВАННОМУ ЗАДАНИЮ. В МОНИТОРАХ FB И XM&lt;br /&gt;
ДРАЙВЕР ВВОДИТСЯ ВСЕГДА НЕЗАВИСИМО ОТ НАЛИЧИЯ ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ, ЕСЛИ HNDLR$ (РАЗРЯД 11) УСТАНОВЛЕН В СЛОВЕ&lt;br /&gt;
СОСТОЯНИЯ УСТРОЙСТВА. ЕСЛИ HNDLR$ УСТАНОВЛЕН, ПРЕКРАЩЕНИЕ&lt;br /&gt;
ВЫПОЛНЕНИЯ ПРОГРАММЫ РАССМАТРИВАЕТСЯ В ДВУХ СЛУЧАЯХ: (1)&lt;br /&gt;
ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ ВО ВРЕМЯ ОПЕРАЦИИ ВВОДА-ВЫВОДА;&lt;br /&gt;
(2) ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ ДРУГОЙ&lt;br /&gt;
ОПЕРАЦИИ.&lt;br /&gt;
     МОНИТОР SJ ИГНОРИРУЕТ ЭТОТ РАЗРЯД. К ТОМУ ЖЕ, ДРАЙВЕР&lt;br /&gt;
НЕ МОЖЕТ ВЫЙТИ, КОГДА ПРЕКРАЩАЕТСЯ РАБОТА В СИСТЕМЕ SJ,&lt;br /&gt;
МОНИТОР SJ АВТОМАТИЧЕСКИ ВЫПОЛНЯЕТ ЗАПРОС .RESET.&lt;br /&gt;
     ВО ВСЕХ УСЛОВИЯХ, ПРИ ВХОДЕ В ДРАЙВЕР, РЕГИСТР R4&lt;br /&gt;
ВСЕГДА СОДЕРЖИТ НОМЕР ПРЕЖДЕВРЕМЕННО ПРЕРВАННОГО ЗАДАНИЯ.&lt;br /&gt;
РЕГИСТРЫ R0-R3 ДОЛЖНЫ БЫТЬ СОХРАНЕНЫ И ВОССТАНОВЛЕНЫ. КОГДА&lt;br /&gt;
ВОЗНИКАЕТ ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ, В НЕКОТОРЫХ&lt;br /&gt;
УСТРОЙСТВАХ ВАЖНО ОСТАНОВИТЬ ВВОД-ВЫВОД.&lt;br /&gt;
СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ УСТРОЙСТВА, КАК, НАПРИМЕР, PC:,&lt;br /&gt;
ПОПАДАЮТ ПОД ЭТУ КАТЕГОРИЮ. ПРИ ПРЕЖДЕВРЕМЕННОМ ПРЕРЫВАНИИ&lt;br /&gt;
ДРАЙВЕР ДОЛЖЕН ОСТАНОВИТЬ УСТРОЙСТВО, ЧТОБЫ, НАПРИМЕР,&lt;br /&gt;
ПРЕДОТВРАТИТЬ ВЫХОД ИЗ-ПОД КОНТРОЛЯ (ОТКЛОНЕНИЕ) ЛЕНТЫ. ОН&lt;br /&gt;
ТАКЖЕ ДОЛЖЕН УБЕДИТЬСЯ, ЧТО УСТРОЙСТВО НЕ МОЖЕТ ПРЕРВАТЬСЯ&lt;br /&gt;
ВНОВЬ. ПОЭТОМУ СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ УСТРОЙСТВА ОБЫЧНО&lt;br /&gt;
СОДЕРЖАТ ПОДПРОГРАММУ ПРЕЖДЕВРЕМЕННЫХ ПРЕРЫВАНИЙ; ТОЧКА&lt;br /&gt;
ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ - ЭТО ПРОСТО КОМАНДА&lt;br /&gt;
ПЕРЕХОДА К ЭТОЙ ПОДПРОГРАММЕ. НАПРИМЕР, ДРАЙВЕР PC ИМЕЕТ&lt;br /&gt;
ПОДПРОГРАММУ ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ, КОТОРАЯ ЗАПРЕЩАЕТ&lt;br /&gt;
ПРЕРЫВАНИЕ В ПЕРФОЛЕНТОЧНОМ УСТРОЙСТВЕ ВВОДА-ВЫВОДА. ЗАТЕМ&lt;br /&gt;
ДРАЙВЕР ВВОДИТСЯ В МОНИТОР В СЕКЦИЮ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА.&lt;br /&gt;
СЛЕДУЮЩИЕ СТРОКИ ВЗЯТЫ ИЗ ДРАЙВЕРА PC:&lt;br /&gt;
&lt;br /&gt;
PCDONE: CLR @#PC$CSR ;ОТМЕНЯЕТ ПРЕРЫВАНИЕ&lt;br /&gt;
                                ;ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА&lt;br /&gt;
                                ;ВВОДА&lt;br /&gt;
        CLR @#PP$CSR ;ОТМЕНЯЕТ ПРЕРЫВАНИЕ&lt;br /&gt;
                                ;ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА&lt;br /&gt;
                                ;ВЫВОДА&lt;br /&gt;
&lt;br /&gt;
     ДРУГИМ УСТРОЙСТВАМ, КАК, НАПРИМЕР, ДИСКИ, РАЗРЕШАЕТСЯ&lt;br /&gt;
ПОПЫТКА ЗАВЕРШЕНИЯ ПЕРЕДАЧИ ВВОДА-ВЫВОДА, ДАЖЕ ЕСЛИ&lt;br /&gt;
ВОЗНИКАЕТ ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ. ФАКТИЧЕСКИ, ПОПЫТКА&lt;br /&gt;
ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ В СЕРЕДИНЕ ОПЕРАЦИИ МОЖЕТ&lt;br /&gt;
ВЫЗВАТЬ РАЗРУШЕНИЕ ДАННЫХ ИЛИ ФОРМАТИРОВАНИЕ ИНФОРМАЦИИ НА&lt;br /&gt;
ДИСКЕ. ПОЭТОМУ, ВМЕСТО ТОГО, ЧТОБЫ ИМЕТЬ ОТДЕЛЬНУЮ&lt;br /&gt;
ПОДПРОГРАММУ ПРЕЖДЕВРЕМЕННЫХ ПРЕРЫВАНИЙ, БОЛЬШИНСТВО&lt;br /&gt;
ДРАЙВЕРОВ ДИСКОВ ИГНОРИРУЮТ ПРЕЖДЕВРЕМЕННЫЕ ПРЕРЫВАНИЯ.&lt;br /&gt;
ТАКИМ ОБРАЗОМ, КОМАНДА RTS PC РАЗМЕЩАЕТСЯ У ТОЧКИ ВХОДА&lt;br /&gt;
ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯЛ КОТОРАЯ ПРОСТО ВОЗВРАЩАЕТ&lt;br /&gt;
УПРАВЛЕНИЕ МОНИТОРУ.&lt;br /&gt;
     ЕСЛИ В ДРАЙВЕРЕ ИСПОЛЬЗУЕТСЯ ЗАПРОС .FORK, ТО&lt;br /&gt;
СУЩЕСТВУЕТ СПЕЦИАЛЬНАЯ ПРОЦЕДУРА, КОТОРАЯ ИМЕЕТ МЕСТО, ЕСЛИ&lt;br /&gt;
ВОЗНИКАЕТ ПРЕЖДЕВРЕМЕННОЕ ПРЕРЫВАНИЕ. НЕОБХОДИМО ПОМЕСТИТЬ&lt;br /&gt;
0 В F.BADR (АДРЕС ПОДПРОГРАММЫЮ.FORK, СМЕЩЕННЫЙ НА 2) В&lt;br /&gt;
FORK-БЛОКЕ. ЭТО ПРЕДОТВРАЩАЕТ МОНИТОРЮОТЮПОПЫТКИЮВЫПОЛНЕНИЯ&lt;br /&gt;
БЕССМЫСЛЕННОЙ ПОСЛЕ ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ ПОДПРОГРАММЫ&lt;br /&gt;
.FORK.&lt;br /&gt;
&lt;br /&gt;
     2.4.2n ПОНИЖЕНИЕ ПРИОРИТЕТА ДО ПРИОРИТЕТА УСТРОЙСТВА&lt;br /&gt;
     КОГДА ВОЗНИКАЕТ ПРЕРЫВАНИЕ, ДРАЙВЕР ВВОДИТСЯ С&lt;br /&gt;
ПРИОРИТЕТОМ 7. ТАК ЖЕ, КАК И В ПОДПРОГРАММЕ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ, ПЕРВОЙ ЗАДАЧЕЙ ДРАЙВЕРА ЯВЛЯЕТСЯ ПОНИЖЕНИЕ&lt;br /&gt;
ПРИОРИТЕТА ПРОЦЕССОРА ДО ПРИОРИТЕТА УСТРОЙСТВА, ПОЗВОЛЯЯ&lt;br /&gt;
ТАКИМ ОБРАЗОМ УСТРОЙСТВАМ С БОЛЬШИМ ПРИОРИТЕТОМ ПРЕРВАТЬ ЭТУ&lt;br /&gt;
ПОДПРОГРАММУ ОБРАБОТКИ ПРЕРЫВАНИЙ. ВМЕСТО ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
ВЫЗОВА .INTEN, КАК И В ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ,&lt;br /&gt;
ДЛЯ ПОНИЖЕНИЯ ПРИОРИТЕТА ИСПОЛЬЗУЕТСЯ ЗАПРОС .DRAST.&lt;br /&gt;
&lt;br /&gt;
     2.4.3. ЗАПРОС .DRAST&lt;br /&gt;
     ЗАПРОС .DRAST ИСПОЛЬЗУЕТСЯ ДЛЯ УСТАНОВКИ ТОЧКИ ВХОДА&lt;br /&gt;
ПРЕРЫВАНИЯ, ТОЧКИ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ И ДЛЯ&lt;br /&gt;
СНИЖЕНИЯ ПРИОРИТЕТА ПРОЦЕССОРА. ЭТОТ ЗАПРОС УСТАНАВЛИВАЕТ&lt;br /&gt;
ТАКЖЕ ГЛОБАЛЬНЫЙ СИМВОЛ $INPTR, КОТОРЫЙ СОДЕРЖИТ УКАЗАТЕЛЬ&lt;br /&gt;
ПОДПРОГРАММЫ $INTEN В РЕЗИДЕНТНОМ МОНИТОРЕ. ЭТОТ УКАЗАТЕЛЬ&lt;br /&gt;
ЗАПОЛНЯЕТСЯ НАЧАЛЬНЫМ ЗАГРУЗЧИКОМ (ДЛЯ СИСТЕМНОГО&lt;br /&gt;
УСТРОЙСТВА) ИЛИ ВО ВРЕМЯ ЗАПРОСА .FETCH (ДЛЯ УСТРОЙСТВА&lt;br /&gt;
ДАННЫХ).&lt;br /&gt;
&lt;br /&gt;
     ФОРМАТ ЗАПРОСА .DRAST СЛЕДУЮЩИЙ:&lt;br /&gt;
     .DRAST NAME,PRI[,ABO]&lt;br /&gt;
&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА;&lt;br /&gt;
      PRI - ПРИОРИТЕТ УСТРОЙСТВА, Т.Е. ПРИОРИТЕТ, ПРИ&lt;br /&gt;
            КОТОРОМ ДОЛЖНА ВЫПОЛНЯТЬСЯ ПОДПРОГРАММА&lt;br /&gt;
            ОБРАБОТКИ ПРЕРЫВАНИЙ;&lt;br /&gt;
      ABO - ПРОИЗВОЛЬНЫЙ АРГУМЕНТ, КОТОРЫЙ ПРЕДСТАВЛЯЕТ&lt;br /&gt;
            СОБОЙ МЕТКУ ТОЧКИ ВХОДА ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
            ПРЕРЫВАНИЯ; ЕСЛИ ЭТОТ АРГУМЕНТ ОТСУТСТВУЕТ,&lt;br /&gt;
            ЗАПРОС ГЕНЕРИРУЕТ КОМАНДУ RTS PC У ТОЧКИ ВХОДА&lt;br /&gt;
            ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ, КОТОРАЯ ЯВЛЯЕТСЯ&lt;br /&gt;
            СЛОВОМ, ПРЕДШЕСТВУЮЩИМ ТОЧКЕ ВХОДА ПРЕРЫВАНИЯ.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        .DRAST PP,4,PCDONE&lt;br /&gt;
        .GLOBL $INPTR ;ДЕЛАЕТ ЭТОТ СИМВОЛ&lt;br /&gt;
                                ;ГЛОБАЛЬНЫМ&lt;br /&gt;
        BR PCDONE ;ТОЧКА ВХОДА&lt;br /&gt;
                                ;ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
PPINT:: JSR R5,@$INPTR ;ПЕРЕХОД В МОНИТОР&lt;br /&gt;
                                ;ПО КОДУ .INTEN&lt;br /&gt;
       .WORD ^C&amp;lt;4*^O40&amp;gt;&amp;amp;^O340 ;НОВЫЙ ПРИОРИТЕТ&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПОКАЗАНЫ ЗАПРОС .DRAST ИЗ ДРАЙВЕРА PC И&lt;br /&gt;
КОД, КОТОРЫЙ ОН ГЕНЕРИРУЕТ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
        .DRAST RK,5&lt;br /&gt;
        .GLOBL $INPTR ;ДЕЛАЕТ ЭТОТ СИМВОЛ&lt;br /&gt;
                                ;ГЛОБАЛЬНЫМ&lt;br /&gt;
        RTS PC ;ОСУЩЕСТВЛЯЕТ ВОЗВРАТ&lt;br /&gt;
                                ;ИЗ ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
RKINT:: JSR R5,@$INPTR ;ПЕРЕХОД В МОНИТОР ПО КОДУ&lt;br /&gt;
                                ;.INTEN&lt;br /&gt;
        .WORD ^C&amp;lt;5*^O40&amp;gt;&amp;amp;^O340;НОВЫЙ ПРИОРИТЕТ&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА ЧАСТЬ ДРАЙВЕРА RK, КОТОРЫЙ НЕ&lt;br /&gt;
ИМЕЕТ ПОДПРОГРАММЫ ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ.&lt;br /&gt;
&lt;br /&gt;
     2.4.4. ОСНОВНЫЕ ПРАВИЛА ДЛЯ ПРОГРАММИРОВАНИЯ СЕКЦИИ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
     ТАК КАК ЦЕЛЬЮ ЭТОЙ СЕКЦИИ ЯВЛЯЕТСЯ ВЫЧИСЛЕНИЕ&lt;br /&gt;
РЕЗУЛЬТАТОВ ПОСЛЕДНЕГО ДЕЙСТВИЯ УСТРОЙСТВА, ТО НЕТ&lt;br /&gt;
НЕОБХОДИМОСТИ СОСТАВЛЯТЬ КОМАНДЫ ДЛЯ ЭТОГО. В ОСНОВНОМ, КОД&lt;br /&gt;
ДОЛЖЕН ОПРЕДЕЛЯТЬ, БЫЛА ЛИ ПЕРЕДАЧА ОШИБОЧНОЙ, БЫЛА ЛИ ОНА&lt;br /&gt;
ЗАКОНЧЕНА ИЛИ НЕТ.&lt;br /&gt;
1. ЕСЛИ ВОЗНИКЛА ОШИБКА&lt;br /&gt;
        ЕСЛИ ВО ВРЕМЯ ПЕРЕДАЧИ ВОЗНИКЛА ОШИБКА, ДРАЙВЕР&lt;br /&gt;
   ДОЛЖЕН ОПРЕДЕЛИТЬ, БЫЛА ЛИ ЭТА ОШИБКА ВОССТАНОВИМОЙ ИЛИ&lt;br /&gt;
   НЕВОССТАНОВИМОЙ, ПОСЛЕ ТОГО, КАК ОПЕРАЦИЯ ПОВТОРИТСЯ.&lt;br /&gt;
        ЕСЛИ ОШИБКА НЕВОССТАНОВИМАЯ, ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
   НЕМЕДЛЕННО ВЫВОДИТЬСЯ ЧЕРЕЗ СЕКЦИЮ ЗАВЕРШЕНИЯ&lt;br /&gt;
   ВВОДА-ВЫВОДА.&lt;br /&gt;
        ЕСЛИ ОШИБКА ВОССТАНОВИМАЯ, ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
   ПОДГОТОВИТЬСЯ К ПОВТОРНОЙ ПЕРЕДАЧЕ. ОН ДОЛЖЕН УМЕНЬШИТЬ&lt;br /&gt;
   СЧЕТЧИК ДОПУСТИМЫХ ПОВТОРНЫХ ОПЕРАЦИЙ. ЗАТЕМ, НА&lt;br /&gt;
   FORK-УРОВНЕ, ОН ДОЛЖЕН СНОВА ПЕРЕЙТИ К СЕКЦИИ&lt;br /&gt;
   ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА ДЛЯ ВОЗОБНОВЛЕНИЯ ПЕРЕДАЧИ.&lt;br /&gt;
   ЕСЛИ ЧИСЛО ПОВТОРНЫХ ПЕРЕДАЧ ДОСТИГЛО ДОПУСТИМОГО&lt;br /&gt;
   (СЧЕТЧИК ПОВТОРЕНИЙ РАВЕН 0), ТО НЕОБХОДИМО РАССМАТРИВАТЬ&lt;br /&gt;
   ЭТУ НЕИСПРАВНОСТЬ КАК НЕВОССТАНОВИМУЮ ОШИБКУ. В ЭТОМ&lt;br /&gt;
   СЛУЧАЕ ДРАЙВЕР ДОЛЖЕН ПЕРЕХОДИТЬ В СЕКЦИЮ ЗАВЕРШЕНИЯ&lt;br /&gt;
   ВВОДА-ВЫВОДА.&lt;br /&gt;
        СНИЖЕНИЕ ДО FORK-УРОВНЯ НЕОБЯЗАТЕЛЬНО ДЛЯ ОБРАБОТКИ&lt;br /&gt;
   ОШИБКИ. ИСПОЛЬЗОВАТЬ ЗАПРОС .FORK ИЛИ НЕТ, ЗАВИСИТ ОТ&lt;br /&gt;
   ПРОМЕЖУТКА ВРЕМЕНИ, НЕОБХОДИМОГО ДЛЯ УСТАНОВКИ ПОВТОРНОЙ&lt;br /&gt;
   ПЕРЕДАЧИ. ВЫЗОВ .FORK ПОЛЕЗЕН ТЕМ, ЧТО ПОЗВОЛЯЕТ&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ РЕГИСТРЫ R0-R3, ДАВАЯ ВОЗМОЖНОСТЬ&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ ОБЩИЕ ПОДПРОГРАММЫ ДЛЯ ПОВТОРНЫХ ПЕРЕДАЧ.&lt;br /&gt;
   ЕСЛИ ЗАПРОС .FORK НЕ ИСПОЛЬЗУЕТСЯ, ТО ДЛЯ ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
   ДОПУСТИМЫ ТОЛЬКО РЕГИСТРЫ R4 И R5.&lt;br /&gt;
2. ВЫПОЛНЕНИЕ ПОВТОРНЫХ ПЕРЕДАЧ НА FORK-УРОВНЕ&lt;br /&gt;
        ЗАПРОС .FORK ВЫЗЫВАЕТ ВОЗВРАТ К РЕЗИДЕНТНОМУ&lt;br /&gt;
   МОНИТОРУ, КОТОРЫЙ ОТВЕРГАЕТ ТЕКУЩЕЕ ПРЕРЫВАНИЕ. КОД,&lt;br /&gt;
   СЛЕДУЮЩИЙ ЗА .FORK, ВЫПОЛНЯЕТСЯ ПРИ НУЛЕВОМ ПРИОРИТЕТЕ, А&lt;br /&gt;
   НЕ ПРИ ПРИОРИТЕТЕ УСТРОЙСТВА, ПОСЛЕ ТОГО, КАК ВСЕ ДРУГИЕ&lt;br /&gt;
   ПРЕРЫВАНИЯ БЫЛИ ОБРАБОТАНЫ, НО ДО ТОГО, КАК ЛЮБОЕ ЗАДАНИЕ&lt;br /&gt;
   ИЛИ ЕГО ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ СМОГУТ ВЫПОЛНИТЬСЯ. КОД,&lt;br /&gt;
   СЛЕДУЮЩИЙ ЗА .FORK, ВЫПОЛНЯЕТСЯ ТАК ЖЕ, КАК И ОСНОВНАЯ&lt;br /&gt;
   ЧАСТЬ СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ ДРАЙВЕРА, В СИСТЕМНОМ&lt;br /&gt;
   РЕЖИМЕ (ЭТО ТОТ ЖЕ РЕЖИМ, В КОТОРОМ ВЫПОЛНЯЕТСЯ СЕКЦИЯ&lt;br /&gt;
   ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА). ТАКИМ ОБРАЗОМ, ПЕРЕКЛЮЧЕНИЕ&lt;br /&gt;
   КОНТЕКСТА ЗАЩИЩЕНО ВО ВРЕМЯ ВЫПОЛНЕНИЯ КОДА НА&lt;br /&gt;
   FORK-УРОВНЕ, И ЛЮБОЕ ПРЕРЫВАНИЕ ПО 4 ИЛИ 10 ВЕКТОРУ&lt;br /&gt;
   ЯВЛЯЕТСЯ ПРИЧИНОЙ ФАТАЛЬНОГО ОСТАНОВА СИСТЕМЫ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
        .FORK RKFBLK ;ВЫЗОВ .FORK&lt;br /&gt;
        JSR R5,@$FKPTR ;ПЕРЕХОД В МОНИТОР ПО&lt;br /&gt;
                                ;КОДУ .FORK&lt;br /&gt;
        .WORD RKFBLK-. ;СМЕЩЕНИЕ К ЭЛЕМЕНТУ&lt;br /&gt;
                                ;FORK-ОЧЕРЕДИ&lt;br /&gt;
RKRETR: CLRB RETRY+1 ;ПЕРЕУСТАНОВКА ПРИЗНАКА&lt;br /&gt;
        BR AGAIN ;ПЕРЕХОД В СЕКЦИЮ&lt;br /&gt;
                                ;ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
&lt;br /&gt;
        В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА ЧАСТЬ ДРАЙВЕРА RK, ГДЕ&lt;br /&gt;
   ДРАЙВЕР ПОНИЖАЕТ ПРИОРИТЕТ ДО FORK-УРОВНЯ ДЛЯ ВЫПОЛНЕНИЯ&lt;br /&gt;
   ПОВТОРНЫХ ПЕРЕДАЧ ДАННЫХ ПОСЛЕ ВОЗНИКНОВЕНИЯ&lt;br /&gt;
   ВОССТАНОВИМОЙ ОШИБКИ. FORK-УРОВЕНЬ ИДЕАЛЕН ДЛЯ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ПОВТОРНЫХ ПЕРЕДАЧ, ТАК КАК ЭТО МОЖЕТ БЫТЬ&lt;br /&gt;
   ДЛИТЕЛЬНЫЙ ПРОЦЕСС. ЗДЕСЬ ЖЕ ПОКАЗАН ВЫЗОВ .FORK И ЕГО&lt;br /&gt;
   РАСШИРЕНИЕ.&lt;br /&gt;
&lt;br /&gt;
3. ЕСЛИ ПЕРЕДАЧА НЕ БЫЛА ЗАВЕРШЕНА&lt;br /&gt;
        ПЕРЕДАЧА СЧИТАЕТСЯ НЕЗАВЕРШЕННОЙ, ЕСЛИ МНОГО&lt;br /&gt;
   СИМВОЛОВ ИЛИ МНОГО БЛОКОВ ДАННЫХ ОСТАЛИСЬ НЕПЕРЕДАННЫМИ.&lt;br /&gt;
   ДРАЙВЕР ДОЛЖЕН ПЕРЕЗАПУСТИТЬ УСТРОЙСТВО И ВЫЙТИ ПО&lt;br /&gt;
   КОМАНДЕ RTS PC В ОЖИДАНИЕ СЛЕДУЮЩЕГО ПРЕРЫВАНИЯ.&lt;br /&gt;
4. ЕСЛИ ПЕРЕДАЧА БЫЛА ЗАВЕРШЕНА&lt;br /&gt;
        КОГДА ПЕРЕДАЧА ЗАВЕРШЕНА, ДРАЙВЕР МОЖЕТ ПРОСТО ВЫЙТИ&lt;br /&gt;
   ЧЕРЕЗ СЕКЦИЮ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА.&lt;br /&gt;
&lt;br /&gt;
     2.5. СЕКЦИЯ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
     СЕКЦИЯ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА ОБЕСПЕЧИВАЕТ ОБЩИЙ ПУТЬ&lt;br /&gt;
ВЫХОДА, ЧТОБЫ ИНФОРМИРОВАТЬ МОНИТОР О ТОМ, ЧТО ДРАЙВЕР&lt;br /&gt;
ВЫПОЛНИЛ ТЕКУЩИЙ ЗАПРОС, И, ПОЭТОМУ, МОНИТОР МОЖЕТ&lt;br /&gt;
ОСВОБОДИТЬ ТЕКУЩИЙ ЭЛЕМЕНТ ОЧЕРЕДИ. ХОТЯ ДРУГИЕ СЕКЦИИ&lt;br /&gt;
ДРАЙВЕРА ЯВЛЯЮТСЯ РАЗЛИЧНЫМИ ОТДЕЛЬНЫМИ ЧАСТЯМИ, СЕКЦИЯ&lt;br /&gt;
ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА - ЭТО ФАКТИЧЕСКИ РАСШИРЕНИЕ СЕКЦИИ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ, И ГРАНИЦА МЕЖДУ ЭТИМИ ДВУМЯ&lt;br /&gt;
СЕКЦИЯМИ - ИСКУССТВЕННАЯ. УПРАВЛЕНИЕ НЕ ПЕРЕХОДИТ К СЕКЦИИ&lt;br /&gt;
ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА В РЕЗУЛЬТАТЕ ВЫЗОВА МОНИТОРА, ВЫЗОВА&lt;br /&gt;
ПОДПРОГРАММЫ ИЛИ ПЕРЕХОДА, А ПЕРЕХОДИТ ЛИШЬ В РЕЗУЛЬТАТЕ&lt;br /&gt;
ОБЫЧНОГО ХОДА ВЫПОЛНЕНИЯ ЧЕРЕЗ СЕКЦИЮ ОБРАБОТКИ ПРЕРЫВАНИЯ.&lt;br /&gt;
ВЫПОЛНЕНИЕ ПЕРЕДАЕТСЯ В СЕКЦИЮ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА,&lt;br /&gt;
КОГДА ОБНАРУЖЕНА НЕВОССТАНОВИМАЯ ОШИБКА, КОГДА ЧИСЛО&lt;br /&gt;
ПОВТОРНЫХ ПЕРЕДАЧ В СЛУЧАЕ ВОССТАНОВИМОЙ ОШИБКИ ДОСТИГЛО&lt;br /&gt;
ДОПУСТИМОГО ИЛИ КОГДА ПЕРЕДАЧА ДАННЫХ ЗАКОНЧЕНА. (ЕСЛИ&lt;br /&gt;
СРАЗУ ЖЕ БУДЕТ ОБНАРУЖЕНА НЕВОССТАНОВИМАЯ ОШИБКА, ТО МОЖНО&lt;br /&gt;
НЕПОСРЕДСТВЕННО ПЕРЕХОДИТЬ ИЗ ЭТОЙ СЕКЦИИ В СЕКЦИЮ&lt;br /&gt;
ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА.)&lt;br /&gt;
1. ЕСЛИ ПРОИЗОШЛА ОШИБКА&lt;br /&gt;
        СУЩЕСТВУЕТ ДВА ВИДА ОШИБОК, ВЫЗЫВАЮЩИХ ПЕРЕДАЧУ&lt;br /&gt;
   УПРАВЛЕНИЯ В СЕКЦИЮ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА:&lt;br /&gt;
   НЕВОССТАНОВИМЫЕ ОШИБКИ, КОТОРЫЕ ВЫЗЫВАЮТ НЕМЕДЛЕННЫЙ&lt;br /&gt;
   ПЕРЕХОД В ЭТУ СЕКЦИЮ, И ВОССТАНОВИМЫЕ ОШИБКИ, КОТОРЫЕ&lt;br /&gt;
   ИСЧЕРПАЛИ ДОПУСТИМОЕ ЧИСЛО ПОВТОРНЫХ ПЕРЕДАЧ И КОТОРЫЕ&lt;br /&gt;
   ПЕРЕХОДЯТ В ЭТУ СЕКЦИЮ ПОСЛЕ ПОСЛЕДНЕЙ НЕУДАЧНОЙ ПОПЫТКИ&lt;br /&gt;
   ПОВТОРНОЙ ПЕРЕДАЧИ. ПРИ ПЕРЕДАЧЕ УПРАВЛЕНИЯ МОНИТОРУ&lt;br /&gt;
   МОЖНО СЧИТАТЬ ОБА ЭТИ СЛУЧАЯ АНАЛОГИЧНЫМИ.&lt;br /&gt;
        СНАЧАЛА НЕОБХОДИМО УСТАНОВИТЬ РАЗРЯД НЕВОССТАНОВИМОЙ&lt;br /&gt;
   ОШИБКИ ДЛЯ КАНАЛА, РАЗРЯД 0 В СЛОВЕ СОСТОЯНИЯ КАНАЛА&lt;br /&gt;
   (CSW). ВТОРОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ ВВОДА-ВЫВОДА,&lt;br /&gt;
   Q.CSW, УКАЗЫВАЕТ СЛОВО СОСТОЯНИЯ КАНАЛА. ЗАТЕМ&lt;br /&gt;
   НЕОБХОДИМО ПЕРЕХОДИТЬ К ПОДПРОГРАММЕ ЗАВЕРШЕНИЯ&lt;br /&gt;
   ВВОДА-ВЫВОДА В РЕЗИДЕНТНОМ МОНИТОРЕ. ДЛЯ ГЕНЕРАЦИИ КОДА&lt;br /&gt;
   ЭТОГО ПЕРЕХОДА ИСПОЛЬЗУЕТСЯ ЗАПРОС .DRFIN.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        BIS #HDERR$,@-(R5) ;УСТАНАВЛИВАЕТСЯ РАЗРЯД&lt;br /&gt;
                                ;НЕВОССТАНОВИМОЙ ОШИБКИ&lt;br /&gt;
                                ;(R5 УКАЗЫВАЕТ ТРЕТЬЕ СЛОВО&lt;br /&gt;
                                ;ЭЛЕМЕНТА ОЧЕРЕДИ;&lt;br /&gt;
                                ;УКАЗАТЕЛЕМ CSW ЯВЛЯЕТСЯ&lt;br /&gt;
                                ;ВТОРОЕ СЛОВО)&lt;br /&gt;
        .DRFIN RK ;ПЕРЕХОД В МОНИТОР&lt;br /&gt;
   В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНЫ СТРОКИ КОДА ИЗ ДРАЙВЕРА RK. ОНИ&lt;br /&gt;
   ПОКАЗЫВАЮТ, КАК ДРАЙВЕР УСТАНАВЛИВАЕТ РАЗРЯД&lt;br /&gt;
   НЕВОССТАНОВИМОЙ ОШИБКИ И ОСУЩЕСТВЛЯЕТ ВОЗВРАТ В МОНИТОР.&lt;br /&gt;
2. ЕСЛИ ПЕРЕДАЧА БЫЛА ЗАВЕРШЕНА&lt;br /&gt;
        ДЛЯ БЛОЧНО-ОРИЕНТИРОВАННЫХ УСТРОЙСТВ, КАК, НАПРИМЕР,&lt;br /&gt;
   ДИСК, ДРАЙВЕР ПРОСТО ЗАПРЕЩАЕТ ПРЕРЫВАНИЕ И ВЫПОЛНЯЕТ&lt;br /&gt;
   ПЕРЕХОД В МОНИТОР. ЗАПРОС .DRFIN ГЕНЕРИРУЕТ КОД ДЛЯ&lt;br /&gt;
   ВЫПОЛНЕНИЯ ПЕРЕХОДА.&lt;br /&gt;
        ДЛЯ СИМВОЛЬНО-ОРИЕНТИРОВАННЫХ (ИЛИ&lt;br /&gt;
   СЛОВНО-ОРИЕНТИРОВАННЫХ) УСТРОЙСТВ, КАК, НАПРИМЕР,&lt;br /&gt;
   ПЕРФОЛЕНТОЧНОЕ УСТРОЙСТВО ВВОДА-ВЫВОДА, ЭТА ПРОЦЕДУРА&lt;br /&gt;
   СЛОЖНЕЕ, ПОТОМУ ЧТО ДРАЙВЕР ДОЛЖЕН СООБЩИТЬ ОБ ОКОНЧАНИИ&lt;br /&gt;
   ФАЙЛА ЗАДАНИЮ, КОТОРОЕ ЗАПРОСИЛО ПЕРЕДАЧУ ВВОДА-ВЫВОДА.&lt;br /&gt;
   ПРИМЕРАМИ УСЛОВИЙ, КОТОРЫЕ ВЫЗЫВАЮТ КОНЕЦ ФАЙЛА,&lt;br /&gt;
   ЯВЛЯЮТСЯ: ОТСУТСТВИЕ ПЕРФОЛЕНТЫ В ПЕРФОЛЕНТОЧНОМ&lt;br /&gt;
   УСТРОЙСТВЕ ВВОДА И ОБНАРУЖЕНИЕ СУ/Z, НАПЕЧАТАННОГО НА&lt;br /&gt;
   СИСТЕМНОМ ТЕРМИНАЛЕ. КОГДА ДРАЙВЕР ФАКТИЧЕСКИ&lt;br /&gt;
   ОБНАРУЖИВАЕТ УСЛОВИЕ EOF В ОПЕРАЦИИ READ, ОН ДОЛЖЕН&lt;br /&gt;
   УСТАНОВИТЬ ВНУТРЕННИЙ ПРИЗНАК EOF, ПОМЕСТИТЬ ПОСЛЕДНИЙ&lt;br /&gt;
   СИМВОЛ В БУФЕР ПОЛЬЗОВАТЕЛЯ, А ЗАТЕМ ЗАПОЛНИТЬ НУЛЯМИ&lt;br /&gt;
   ОСТАЛЬНОЙ БУФЕР. ЗАТЕМ ДРАЙВЕР ДОЛЖЕН ПЕРЕХОДИТЬ ОБРАТНО&lt;br /&gt;
   В МОНИТОР, КАК ЕСЛИ БЫ EOF НЕ БЫЛ ОБНАРУЖЕН, И БУФЕР&lt;br /&gt;
   ПРОСТО БЫ ЗАПОЛНИЛСЯ. ДРАЙВЕР ОЖИДАЕТ, ПОКА НЕ БУДЕТ&lt;br /&gt;
   ВЫЗВАН ВНОВЬ ПРИЗНАК EOF ПОЛЬЗОВАТЕЛЮ.&lt;br /&gt;
        ДРАЙВЕР PC ИСПОЛЬЗУЕТ РАЗРЯД ГОТОВНОСТИ В СЛОВЕ&lt;br /&gt;
   СОСТОЯНИЯ ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА ВВОДА-ВЫВОДА КАК&lt;br /&gt;
   ВНУТРЕННИЙ ПРИЗНАК EOF.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
1$: CLRB @-(R4) ;ОЧИЩАЕТ БАЙТ (R4 УКАЗЫВАЕТ&lt;br /&gt;
                                ;АДРЕС БУФЕРА)&lt;br /&gt;
        INC (R4)+ ;ИЗМЕНЯЕТ АДРЕС БУФЕРА&lt;br /&gt;
        DEC @R4 ;УМЕНЬШАЕТ СЧЕТЧИК&lt;br /&gt;
                                ;ОСТАВШИХСЯ БАЙТОВ&lt;br /&gt;
        BNE 1$ ;ЦИКЛ ДО ГОТОВНОСТИ&lt;br /&gt;
PCDONE: CLR @#PC$CSR ;ЗАПРЕЩАЕТ ПРЕРЫВАНИЕ&lt;br /&gt;
; ;ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА&lt;br /&gt;
                                ;ВВОДА&lt;br /&gt;
        CLR @#PP$CSR ;ЗАПРЕЩАЕТ ПРЕРЫВАНИЕ&lt;br /&gt;
                                ;ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА&lt;br /&gt;
                                ;ВЫВОДА&lt;br /&gt;
        CLR PCFBLK+2 ;ОЧИЩАЕТ FORK-БЛОК ДЛЯ&lt;br /&gt;
 ;НЕДОПУЩЕНИЯ ДИСПЕТЧЕРИЗАЦИИ&lt;br /&gt;
PCFIN: .DRFIN PC ;ПЕРЕХОД К ОКОНЧАНИЮ&lt;br /&gt;
                                ;ВВОДА-ВЫВОДА&lt;br /&gt;
        В ЭТОМ ПРИМЕРЕ ПОКАЗАНО, КАК ДРАЙВЕР PC ЗАПОЛНЯЕТ&lt;br /&gt;
   НУЛЯМИ БУФЕР ПОЛЬЗОВАТЕЛЯ, КОГДА ОН ОБНАРУЖИВАЕТ КОНЕЦ&lt;br /&gt;
   ФАЙЛА, УСТАНАВЛИВАЕТ ВНУТРЕННИЙ ПРИЗНАК EOF И ПЕРЕХОДИТ&lt;br /&gt;
   ОБРАТНО В МОНИТОР.&lt;br /&gt;
        КОГДА ДРАЙВЕР ВЫЗЫВАЕТСЯ ВНОВЬ С НОВЫМ ЭЛЕМЕНТОМ&lt;br /&gt;
   ОЧЕРЕДИ ДЛЯ ДРУГОЙ ОПЕРАЦИИ READ, ОН СНАЧАЛА ПРОВЕРЯЕТ&lt;br /&gt;
   ВНУТРЕННИЙ ПРИЗНАК EOF. НАЙДЯ ЕГО УСТАНОВЛЕННЫМ, ДРАЙВЕР&lt;br /&gt;
   УСТАНАВЛИВАЕТ РАЗРЯД EOF СЛОВА СОСТОЯНИЯ КАНАЛА, РАЗРЯД&lt;br /&gt;
   13, И ПЕРЕХОДИТ ОБРАТНО В МОНИТОР. РЕЗИДЕНТНЫЙ МОНИТОР,&lt;br /&gt;
   В КОНЦЕ КОНЦОВ, ОЧИЩАЕТ ЭТОТ РАЗРЯД, КОГДА ОСУЩЕСТВЛЯЕТСЯ&lt;br /&gt;
   СЛЕДУЮЩИЙ ЗАПРОС ВВОДА-ВЫВОДА ДЛЯ ЭТОГО КАНАЛА.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        MOV #PC$CSR,R5 ;ЗАПРАШИВАЕТ ПЕРФОЛЕНТОЧНОЕ&lt;br /&gt;
                                ;УСТРОЙСТВО ВВОДА-ВЫВОДА,&lt;br /&gt;
                                ;ЗАСЫЛАЕТ CSR&lt;br /&gt;
        TST (R5)+ ;УСТРОЙСТВО ГОТОВО?&lt;br /&gt;
        BPL PCGORD ;ДА, НАЧАЛО ПЕРЕДАЧИ&lt;br /&gt;
        BIS #EOF$,@-(R4) ;НЕ ГОТОВ ВХОД,&lt;br /&gt;
 ;УСТАНАВЛИВАЕТ EOF&lt;br /&gt;
        BR PCFIN ;И ОПЕРАЦИЯ ЗАВЕРШЕНИЯ&lt;br /&gt;
&lt;br /&gt;
        В ЭТОМ ПРИМЕРЕ ПОКАЗАНО, КАК ДРАЙВЕР PC ПРОВЕРЯЕТ&lt;br /&gt;
   РАЗРЯД ГОТОВНОСТИ УСТРОЙСТВА, КОТОРЫЙ ОН ИСПОЛЬЗУЕТ КАК&lt;br /&gt;
   ПРИЗНАК СВОЕГО EOF, УСТАНАВЛИВАЕТ РАЗРЯД EOF ДЛЯ&lt;br /&gt;
   ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ И ВОЗВРАЩАЕТСЯ ОБРАТНО В МОНИТОР.&lt;br /&gt;
   БЛАГОДАРЯ ЭТОМУ СОГЛАШЕНИЮ ДЛЯ ОБОЗНАЧЕНИЯ КОНЦА ФАЙЛА&lt;br /&gt;
   (EOF) ПРОГРАММА ВОСПРИНИМАЕТ СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ&lt;br /&gt;
   УСТРОЙСТВА КАК УСТРОЙСТВА ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ,&lt;br /&gt;
   ЧТО НЕ ПРОТИВОРЕЧИТ ИДЕЕ СИСТЕМЫ ФОДОС-2 О НЕЗАВИСИМОСТИ&lt;br /&gt;
   УСТРОЙСТВ.&lt;br /&gt;
&lt;br /&gt;
     2.5.1. ЗАПРОС .DRFIN&lt;br /&gt;
     ЗАПРОС .DRFIN ИСПОЛЬЗУЕТСЯ ДЛЯ ГЕНЕРАЦИИ КОМАНД ДЛЯ&lt;br /&gt;
ПЕРЕХОДА ОБРАТНО В МОНИТОР В КОНЦЕ СЕКЦИИ ЗАВЕРШЕНИЯ&lt;br /&gt;
ВВОДА-ВЫВОДА. ОН ДЕЛАЕТ УКАЗАТЕЛЬ ТЕКУЩЕГО ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
ГЛОБАЛЬНЫМ СИМВОЛОМ И ГЕНЕРИРУЕТ ПОЗИЦИОННО-НЕЗАВИСИМЫЙ КОД&lt;br /&gt;
ДЛЯ ВОЗВРАТА В МОНИТОР. КОГДА ПОСЛЕ ВОЗВРАТА УПРАВЛЕНИЕ&lt;br /&gt;
ПЕРЕХОДИТ К МОНИТОРУ, ОН ОСВОБОЖДАЕТ ТЕКУЩИЙ ЭЛЕМЕНТ&lt;br /&gt;
ОЧЕРЕДИ.&lt;br /&gt;
&lt;br /&gt;
     ФОРМАТ ЗАПРОСА .DRFIN СЛЕДУЮЩИЙ:&lt;br /&gt;
     .DRFIN NAME&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
     2.6. СЕКЦИЯ ОКОНЧАНИЯ ДРАЙВЕРА&lt;br /&gt;
     ЦЕЛЬЮ СЕКЦИИ ОКОНЧАНИЯ ДРАЙВЕРА ЯВЛЯЕТСЯ ОБ'ЯВЛЕНИЕ&lt;br /&gt;
НЕКОТОРЫХ ГЛОБАЛЬНЫХ СИМВОЛОВ И УСТАНОВКА ТАБЛИЦЫ УКАЗАТЕЛЕЙ&lt;br /&gt;
ДЛЯ СМЕЩЕНИЙ В РЕЗИДЕНТНОМ МОНИТОРЕ. УКАЗАТЕЛИ ЗАПОЛНЯЮТСЯ&lt;br /&gt;
ВО ВРЕМЯ ЗАГРУЗКИ, ЕСЛИ ЭТО ДРАЙВЕР СИСТЕМНОГО УСТРОЙСТВА.&lt;br /&gt;
В ПРОТИВНОМ СЛУЧАЕ, ОНИ ЗАПОЛНЯЮТСЯ, КОГДА ДРАЙВЕР ДЕЛАЕТСЯ&lt;br /&gt;
РЕЗИДЕНТНЫМ ПОСРЕДСТВОМ ЗАПРОСА .FETCH ИЛИ КОМАНДЫ МОНИТОРА&lt;br /&gt;
LOAD. СЕКЦИЯ ОКОНЧАНИЯ ДРАЙВЕРА ПРЕДУСМАТРИВАЕТ ТАКЖЕ&lt;br /&gt;
СИМВОЛ ДЛЯ ОПРЕДЕЛЕНИЯ РАЗМЕРА ДРАЙВЕРА. ДЛЯ ГЕНЕРАЦИИ&lt;br /&gt;
ОКОНЧАНИЯ ДРАЙВЕРА ИСПОЛЬЗУЕТСЯ ЗАПРОС .DREND.&lt;br /&gt;
&lt;br /&gt;
     2.6.1. ЗАПРОС .DREND&lt;br /&gt;
     ФОРМАТ ЗАПРОСА .DREND СЛЕДУЮЩИЙ:&lt;br /&gt;
     .DREND NAME&lt;br /&gt;
ГДЕ NAME - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
     2.6.2. ФИКТИВНЫЕ УСТРОЙСТВА&lt;br /&gt;
     В СИСТЕМЕ ФОДОС-2 ПРЕДУСМОТРЕНА ВОЗМОЖНОСТЬ НАПИСАНИЯ&lt;br /&gt;
ДРАЙВЕРА ДЛЯ ФИКТИВНОГО УСТРОЙСТВА (УСТРОЙСТВО, КОТОРОЕ НЕ&lt;br /&gt;
ПРЕРЫВАЕТСЯ И НЕ ЯВЛЯЕТСЯ БОЛЬШИМ ЗАПОМИНАЮЩИМ УСТРОЙСТВОМ),&lt;br /&gt;
ЧТОБЫ ИСПОЛЬЗОВАТЬ ПРЕИМУЩЕСТВА ОРГАНИЗОВАННОЙ В ОЧЕРЕДЬ&lt;br /&gt;
СИСТЕМЫ ВВОДА-ВЫВОДА И ТОГО ФАКТА, ЧТО ДРАЙВЕРЫ МОГУТ&lt;br /&gt;
ОСТАВАТЬСЯ РЕЗИДЕНТНЫМИ В ПАМЯТИ. ПРИМЕРАМИ ДРАЙВЕРОВ ДЛЯ&lt;br /&gt;
ФИКТИВНЫХ УСТРОЙСТВ ЯВЛЯЮТСЯ ДРАЙВЕРЫ NL (ДРАЙВЕР ФИКТИВНОГО&lt;br /&gt;
УСТРОЙСТВА) И MQ (ДРАЙВЕР ОБМЕНА МЕЖДУ ЗАДАНИЯМИ).&lt;br /&gt;
     ВСЕ ВЫПОЛНЯЕМЫЕ КОДЫ ТАКИХ ДРАЙВЕРОВ ДОЛЖНЫ СОДЕРЖАТЬСЯ&lt;br /&gt;
В СЕКЦИИ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА. ЗАТЕМ ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
ВЫЗВАТЬ ЗАПРОС .DRFIN ДЛЯ ОКОНЧАНИЯ ОПЕРАЦИИ И ВОЗВРАТА&lt;br /&gt;
ЭЛЕМЕНТА ОЧЕРЕДИ. ТАК КАК ФИКТИВНЫЕ УСТРОЙСТВА НЕ&lt;br /&gt;
ПРЕРЫВАЮТСЯ, ТО ДРАЙВЕРАМ НЕ НУЖНА СЕКЦИЯ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ И ЗАПРОС .DRAST.&lt;br /&gt;
&lt;br /&gt;
            3. НАСТРОЙКА И ПРОВЕРКА ПРОГРАММЫ&lt;br /&gt;
     3.1. ОБЩЕЕ ОПИСАНИЕ ДРАЙВЕРА УСТРОЙСТВА&lt;br /&gt;
     НИЖЕ ПРИВЕДЕН ПРИМЕР, В КОТОРОМ ПОКАЗАНА СТРУКТУРА ДЛЯ&lt;br /&gt;
ПРОСТОГО ДРАЙВЕРА УСТРОЙСТВА SK.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
 .TITLE SK V05.01&lt;br /&gt;
 ;ДРАЙВЕР УСТРОЙСТВА SK&lt;br /&gt;
 .IDENT /V05.01/&lt;br /&gt;
 .SBTTL СЕКЦИЯ ОПРЕДЕЛЕНИЙ&lt;br /&gt;
 .MCALL .DRDEF&lt;br /&gt;
 .DRDEF SK,377,WONLY$,0,177514,200&lt;br /&gt;
 SKBR =SK$CSR+2 ;РЕГИСТР БУФЕРА SK&lt;br /&gt;
 SKIE =100 ;РАЗРЯД РАЗРЕШЕНИЯ&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
 .SBTTL СЕКЦИЯ ЗАГОЛОВКА&lt;br /&gt;
        .DRBEG SK&lt;br /&gt;
 .SBTTL СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
        MOV SKCQE,R4 ;R4 УКАЗЫВАЕТ ТЕКУЩИЙ&lt;br /&gt;
                                ;ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
        ASL Q$WCNT(R4) ;ДЕЛАЕТ ИЗ СЧЕТЧИКА СЛОВ&lt;br /&gt;
                                ;СЧЕТЧИК БАЙТОВ&lt;br /&gt;
        BEQ SKDONE ;ПЕРЕХОД К НЕПОСРЕДСТВЕННОМУ&lt;br /&gt;
                                ;ОКОНЧАНИЮ&lt;br /&gt;
        BCC SKERR ;УСТРОЙСТВО ТОЛЬКО ЗАПИСИ -&lt;br /&gt;
                                ;ЗАПРОС СЧИТЫВАНИЯ ЗАПРЕЩЕН&lt;br /&gt;
RET: BIS #SKIE,@#SK$CSR ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ&lt;br /&gt;
        RTS PC ;ОЖИДАНИЕ ПРЕРЫВАНИЯ&lt;br /&gt;
 .SBTTL СЕКЦИЯ ОБРАБОТКИ ПРЕРЫВАНИЯ&lt;br /&gt;
 .DRAST SK,4,SKDONE&lt;br /&gt;
        MOV SKCQE,R4 ;R4 УКАЗЫВЕТ ТЕКУЩИЙ&lt;br /&gt;
                                ;ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
        BIT #100200,@#SK$CSR;ОШИБКА ИЛИ ГОТОВНОСТЬ?&lt;br /&gt;
        BMI RET ;ОШИБКА, НЕОБХОДИМО&lt;br /&gt;
                                ;ИСПРАВЛЕНИЕ&lt;br /&gt;
        BEQ RET ;НЕT ГОТОВНОСТИ-ВЫХОД И&lt;br /&gt;
                                ;ОЖИДАНИЕ&lt;br /&gt;
        BIC #SKIE,@#SK$CSR ;ЗАПРЕЩЕНИЕ ПРЕРЫВАНИЙ&lt;br /&gt;
        .FORK SKFBLK ;КОД, ПЕРЕВОДЯЩИЙ ПРОЦЕСС НА&lt;br /&gt;
                                ;FORK-УРОВЕНЬ&lt;br /&gt;
        ADD #Q$WCNT,R4 ;ПЕРЕМЕСТИТЬ УКАЗАТЕЛЬ&lt;br /&gt;
                                ;ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
SKNEXT: TSTB @#SK$CSR ;ГОТОВНОСТЬ ДЛЯ СЛЕДУЮЩЕГО&lt;br /&gt;
                                ;СИМВОЛА?&lt;br /&gt;
        BPL RET ;НЕТ - ПЕРЕХОД НАЗАД&lt;br /&gt;
        TST @R4 ;ПЕЧАТАТЬ НЕМНОГО ЛЕВЕЕ?&lt;br /&gt;
        BEQ SKDONE ;НЕТ - ПЕРЕДАЧА ЗАКОНЧЕНА&lt;br /&gt;
        MOVB @-(R4),R5 ;ПРИНЯТЬ СИМВОЛ&lt;br /&gt;
        INC (R4)+ ;УВЕЛИЧИТЬ УКАЗАТЕЛЬ БУФЕРА&lt;br /&gt;
        INC @R4 ;УВЕЛИЧИТЬ СЧЕТЧИК СИМВОЛОВ&lt;br /&gt;
        BIC #^C&amp;lt;177&amp;gt;,R5 ;7-РАЗРЯДНЫЙ ASCII&lt;br /&gt;
        MOVB R5,@#SKBR ;ПЕРЕСЛАТЬ СИМВОЛ В&lt;br /&gt;
                                ;УСТРОЙСТВО&lt;br /&gt;
        BR SKNEXT ;ТО ЖЕ САМОЕ ДЛЯ ДРУГИХ&lt;br /&gt;
                                ;СИМВОЛОВ&lt;br /&gt;
 .SBTTL СЕКЦИЯ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
SKERR: BIS #HDERR$,@-(R4) ;УСТАНОВИТЬ РАЗРЯД ОШИБКИ&lt;br /&gt;
                                ;В CSW&lt;br /&gt;
SKDONE: BIC #IE,@#SK$CSR ;ЗАПРЕТИТЬ ПРЕРЫВАНИЯ&lt;br /&gt;
        .DRFIN SK ;ВОЗВРАТ В МОНИТОР&lt;br /&gt;
SKFBLK: .WORD 0,0,0,0 ;ЭЛЕМЕНТЫ FORK-ОЧЕРЕДИ&lt;br /&gt;
 .SBTTL СЕКЦИЯ ОКОНЧАНИЯ ДРАЙВЕРА&lt;br /&gt;
        .DREND SK&lt;br /&gt;
 .END&lt;br /&gt;
&lt;br /&gt;
     3.2. ДРАЙВЕРЫ, КОТОРЫЕ ФОРМИРУЮТ ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
     ДРАЙВЕР УСТРОЙСТВА МОЖЕТ ИСПОЛЬЗОВАТЬ ОДНУ ИЛИ БОЛЬШЕЕ&lt;br /&gt;
ЧИСЛО СВОИХ СОБСТВЕННЫХ ОЧЕРЕДЕЙ, НЕОБХОДИМЫХ ДЛЯ ЗАПРОСОВ&lt;br /&gt;
ВВОДА-ВЫВОДА, ВМЕСТО ИСПОЛЬЗОВАНИЯ ОБЫЧНОЙ ОЧЕРЕДИ&lt;br /&gt;
ВВОДА-ВЫВОДА МОНИТОР-ДРАЙВЕР. ВНУТРЕННЯЯ ОЧЕРЕДЬ&lt;br /&gt;
ПРЕДНАЗНАЧЕНА ДЛЯ ОДНОВРЕМЕННОГО ВЫПОЛНЕНИЯ НЕСКОЛЬКИХ&lt;br /&gt;
ОПЕРАЦИЙ, Т.Е. ДРАЙВЕР МОЖЕТ ОБСЛУЖИТЬ НЕСКОЛЬКО ЗАПРОСОВ С&lt;br /&gt;
ОДНИМ ОБРАЩЕНИЕМ К УСТРОЙСТВУ. ВНУТРЕННЯЯ ОЧЕРЕДНОСТЬ&lt;br /&gt;
ВОЗМОЖНА В ЭТОМ СЛУЧАЕ, НО МНОГОЕ ЗАВИСИТ ОТ КОНКРЕТНОЙ&lt;br /&gt;
СИТУАЦИИ. ДЛЯ ДРАЙВЕРОВ И УСТРОЙСТВ, ДЛЯ КОТОРЫХ ВНУТРЕННЯЯ&lt;br /&gt;
ОЧЕРЕДНОСТЬ НЕВОЗМОЖНА ИЛИ НЕЦЕЛЕСООБРАЗНА, НЕ РЕКОМЕНДУЕТСЯ&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ВНУТРЕННЮЮ ОЧЕРЕДНОСТЬ.&lt;br /&gt;
     ДРУГИМ ПРИМЕРОМ ЯВЛЯЕТСЯ ОЧЕРЕДЬ СООБЩЕНИЙ СИСТЕМЫ&lt;br /&gt;
ФОДОС-2, ВЫПОЛНЕННАЯ ПОСРЕДСТВОМ ДРАЙВЕРА MQ ДЛЯ СВЯЗИ&lt;br /&gt;
СИСТЕМНЫХ ЗАДАНИЙ. ЕСЛИ ОДНО ЗАДАНИЕ ПОСЫЛАЕТ СООБЩЕНИЕ&lt;br /&gt;
ВТОРОМУ ЗАДАНИЮ, И ВТОРОЕ ЗАДАНИЕ НЕ ПРИНИМАЕТ СООБЩЕНИЕ,&lt;br /&gt;
ДРАЙВЕР MQ ОЖИДАЕТ. ЕСЛИ ПРОЦЕСС ПРИЕМА СООБЩЕНИЯ&lt;br /&gt;
ОСУЩЕСТВЛЯЕТСЯ ЧЕРЕЗ ОЧЕРЕДЬ, ТО ДРАЙВЕР MQ ОБРАБАТЫВАЕТ&lt;br /&gt;
ЕГО. ДЛЯ ЭТОГО ОН ИСПОЛЬЗУЕТ ПЕРВОНАЧАЛЬНО ПОСЛАННЫЙ ЗАПРОС&lt;br /&gt;
ИЗ ОЧЕРЕДИ МОНИТОР-ДРАЙВЕР, СТАВИТ ЕГО ВО ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
И, ЗАТЕМ, ОБСЛУЖИВАЕТ ЗАПРОС ПРИЕМА.&lt;br /&gt;
     ВООБЩЕ, ДРАЙВЕР СЛЕДУЕТ ПРОСТОЙ ПРОЦЕДУРЕ ДЛЯ&lt;br /&gt;
ОСУЩЕСТВЛЕНИЯ ФОРМИРОВАНИЯ В ОЧЕРЕДЬ. КОГДА ЗАПРОС&lt;br /&gt;
ВВОДА-ВЫВОДА ДЕЛАЕТСЯ ДЛЯ ДРАЙВЕРА, ОН ЯВЛЯЕТСЯ ПЕРВЫМ И&lt;br /&gt;
ЕДИНСТВЕННЫМ ЗАПРОСОМ В ОЧЕРЕДИ МОНИТОР-ДРАЙВЕР. КАК ТОЛЬКО&lt;br /&gt;
ЗАПРОС БУДЕТ ПРИНЯТ, ДРАЙВЕР СТАВИТ ЕГО ВО ВНУТРЕННЮЮ&lt;br /&gt;
ОЧЕРЕДЬ И ОЧИЩАЕТ DDCQE И DDLQE ДЛЯ &amp;quot;УДАЛЕНИЯ&amp;quot; ЗАПРОСА ИЗ&lt;br /&gt;
ОЧЕРЕДИ МОНИТОР-ДРАЙВЕР. ВАЖНО, ЧТО ЭЛЕМЕНТ ОЧЕРЕДИ ВСЕ ЕЩЕ&lt;br /&gt;
ЗАНЯТ - ОН ЕЩЕ ИСПОЛЬЗУЕТСЯ ДРАЙВЕРОМ.&lt;br /&gt;
&lt;br /&gt;
     3.2.1. ФОРМИРОВАНИЕ ВНУТРЕННЕЙ ОЧЕРЕДИ&lt;br /&gt;
     КОГДА ДРАЙВЕР СНАЧАЛА ВВОДИТСЯ ДЛЯ ЗАПРОСА, В ШЕСТОМ&lt;br /&gt;
СЛОВЕ ОН ДОЛЖЕН ПРОВЕРИТЬ НАЛИЧИЕ ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
НЕДОПУСТИМЫЙ ЗАПРОС НЕМЕДЛЕННО ПРИВОДИТ К ФАТАЛЬНОЙ ОШИБКЕ.&lt;br /&gt;
     ЕСЛИ ЗАПРОС СДЕЛАН ДЛЯ БЫСТРОЗАВЕРШАЮЩЕЙСЯ ПРОЦЕДУРЫ,&lt;br /&gt;
КАК, НАПРИМЕР, УСТАНОВКА ПЕРФОЛЕНТЫ, ДРАЙВЕР ВЫПОЛНИТ&lt;br /&gt;
ОПЕРАЦИЮ. ЗАТЕМ ОН ВЫДАСТ ЗАПРОС .DRFIN ДЛЯ ОСВОБОЖДЕНИЯ&lt;br /&gt;
ЭЛЕМЕНТА ОЧЕРЕДИ И СООБЩЕНИЕ О ЗАВЕРШЕНИИ ОПЕРАЦИИ ДЛЯ&lt;br /&gt;
ЗАПРАШИВАЮЩЕЙ ПРОГРАММЫ. В ОБЩЕМ, ДРАЙВЕР ВЫПОЛНЯЕТ&lt;br /&gt;
ОПЕРАЦИЮ, ЕСЛИ ЭТА ОПЕРАЦИЯ МОЖЕТ ВЫПОЛНИТЬСЯ БЫСТРО И&lt;br /&gt;
СИНХРОННО.&lt;br /&gt;
     ЕСЛИ ЗАПРОС СДЕЛАН ДЛЯ ПРОЦЕДУРЫ, ТРЕБУЮЩЕЙ ВЫЧИСЛЕНИЙ&lt;br /&gt;
И ВРЕМЕНИ, ДРАЙВЕР СТАВИТ ЗАПРОС ВО ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
ПОСРЕДСТВОМ ИСПОЛЬЗОВАНИЯ СЛОВА СВЯЗИ ЭЛЕМЕНТОВ ОЧЕРЕДИ.&lt;br /&gt;
СЛОВО СВЯЗИ РАВНО 0, ТАК КАК ЭТОТ ЭЛЕМЕНТ ЯВЛЯЕТСЯ ПЕРВЫМ И&lt;br /&gt;
ЕДИНСТВЕННЫМ В ОЧЕРЕДИ.&lt;br /&gt;
     В ОБЩЕМ, ДРАЙВЕР УСТАНАВЛИВАЕТ ЗАПРОС ВО ВНУТРЕННЮЮ&lt;br /&gt;
ОЧЕРЕДЬ, ЕСЛИ ЭТОТ ЗАПРОС ТРЕБУЕТ РАБОТЫ И ВРЕМЕНИ И ДОЛЖЕН&lt;br /&gt;
ВЫПОЛНЯТЬСЯ АСИНХРОННО. ЕСЛИ ВО ВНУТРЕННЕЙ ОЧЕРЕДИ ЭТОТ&lt;br /&gt;
ЗАПРОС ЯВЛЯЕТСЯ ПЕРВЫМ, ДРАЙВЕР НАЧИНАЕТ ОПЕРАЦИЮ, ОЖИДАЕТ&lt;br /&gt;
ЕЕ ЗАВЕРШЕНИЯ И ВЫВОДИТСЯ КОМАНДОЙ RTS PC. ЕСЛИ ЭТОТ ЗАПРОС&lt;br /&gt;
НЕ ЯВЛЯЕТСЯ ПЕРВЫМ ВО ВНУТРЕНЕЙ ОЧЕРЕДИ, ДРАЙВЕР НЕ НАЧИНАЕТ&lt;br /&gt;
ОПЕРАЦИЮ И ВЫВОДИТСЯ КОМАНДОЙ RTS PC.&lt;br /&gt;
&lt;br /&gt;
     3.2.2. ОБРАБОТКА ПРЕРЫВАНИЙ ДЛЯ ДРАЙВЕРОВ, ФОРМИРУЮЩИХ&lt;br /&gt;
ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
&lt;br /&gt;
     КОГДА ОПЕРАЦИЯ ЗАВЕРШАЕТСЯ, ДРАЙВЕР ПЕРЕХОДИТ В ТОЧКЕ&lt;br /&gt;
ВХОДА ПРЕРЫВАНИЯ DDINT:. ЕСЛИ ВНУТРЕННИХ ОЧЕРЕДЕЙ БОЛЬШЕ,&lt;br /&gt;
ЧЕМ ОДНА, ДРАЙВЕР ОПРЕДЕЛЯЕТ, КАКОЙ ЗАПРОС ВКЛЮЧАЕТ ЭТО&lt;br /&gt;
ПРЕРЫВАНИЕ. ЕСЛИ ОПЕРАЦИЯ НЕЗАВЕРШЕНА, ДРАЙВЕР НАЧИНАЕТ ЕЕ&lt;br /&gt;
ВНОВЬ И ВОЗВРАЩАЕТСЯ В МОНИТОР. ЕСЛИ ПЕРЕДАЧА ЗАВЕРШЕНА,&lt;br /&gt;
ДРАЙВЕР ДОЛЖЕН ПОСТАВИТЬ ЗАПРОС, НАХОДЯЩИЙСЯ ВО ВНУТРЕННЕЙ&lt;br /&gt;
ОЧЕРЕДИ, СНОВА В ОЧЕРЕДЬ ВВОДА-ВЫВОДА МОНИТОР-ДРАЙВЕР&lt;br /&gt;
ПОСРЕДСТВОМ УСТАНОВКИ DDCQE И DDLQE. В ЭТОЙ СИТУАЦИИ&lt;br /&gt;
ДРАЙВЕРУ НУЖНО ВЕРНУТЬ ЗАПРОС В ОСНОВНУЮ ОЧЕРЕДЬ&lt;br /&gt;
ВВОДА-ВЫВОДА, НО ЕМУ НУЖНО ТАКЖЕ ПРОДОЛЖАТЬ ВЫПОЛНЕНИЕ (А НЕ&lt;br /&gt;
СРАЗУ ВОЗВРАЩАТЬСЯ В МОНИТОР), ЧТОБЫ ПРОВЕРИТЬ ВНУТРЕННЮЮ&lt;br /&gt;
ОЧЕРЕДЬ НА СЛУЧАЙ ДРУГОГО НЕВЫПОЛНЕННОГО ЗАПРОСА.&lt;br /&gt;
     ЧТОБЫ ВЕРНУТЬ ЗАПРОС В МОНИТОР БЕЗ ВЫВОДА, ДРАЙВЕР&lt;br /&gt;
ДОЛЖЕН ВЫПОЛНИТЬ ПОДПРОГРАММУ .DRFIN.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        MOV DDCQE,-(SP) ;В СЛУЧАЕ, КОГДА В ОЧЕРЕДИ&lt;br /&gt;
                                ;МОНИТОР-ДРАЙВЕР ЕСТЬ&lt;br /&gt;
                                ;ЭЛЕМЕНТ, ТОГДА ВОЗМОЖНО&lt;br /&gt;
                                ;ПРЕРЫВАНИЕ&lt;br /&gt;
        MOV R4,DDCQE ;ЭЛЕМЕНТ ВНУТРЕННЕЙ ОЧЕРЕДИ&lt;br /&gt;
        MOV R4,DDLQE ;ПОМЕЩАЕТСЯ В ОЧЕРЕДЬ&lt;br /&gt;
                                ;МОНИТОР-ДРАЙВЕР&lt;br /&gt;
        CLR Q$LINK(R4)&lt;br /&gt;
        MOV PC,R4 ;ВЫХОД НА ЗАПРОС&lt;br /&gt;
        ADD #DDCQE-.,R4 ;.DRFIN&lt;br /&gt;
        MOV @#54,R5 ;ЧЕРЕЗ&lt;br /&gt;
        JSR PC,@270(R5) ;ПОДПРОГРАММУ JSR&lt;br /&gt;
        MOV @SP,DDCQE ;ВОССТАНОВЛЕНИЕ ВОЗМОЖНЫХ&lt;br /&gt;
        MOV (SP)+,DDLQE ;ДРУГИХ ЭЛЕМЕНТОВ ОЧЕРЕДИ&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
(ПРОВЕРКА НОВОЙ ВНУТРЕННЕЙ ОЧЕРЕДИ И НАЧАЛО ДРУГОЙ ОПЕРАЦИИ,&lt;br /&gt;
ЕСЛИ НЕОБХОДИМО)&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
        RTS PC ;ВОЗВРАТ&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПОКАЗАНО, КАК ДРАЙВЕР ИСПОЛЬЗУЕТ&lt;br /&gt;
ВНУРЕННЮЮ ОЧЕРЕДЬ. (R4 УКАЗЫВАЕТ ЭЛЕМЕНТ ВНУТРЕННЕЙ&lt;br /&gt;
ОЧЕРЕДИ, ЕГО ТРЕТЬЕ СЛОВО.)&lt;br /&gt;
&lt;br /&gt;
     3.2.3. ПРОЦЕДУРЫ ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ ДЛЯ&lt;br /&gt;
ДРАЙВЕРОВ, ФОРМИРУЮЩИХ ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
     НЕСМОТРЯ НА ТО, УСТАНАВЛИВАЕТ ЛИ ДРАЙВЕР ЗАПРОСЫ ВО&lt;br /&gt;
ВНУТРЕННЮЮ ОЧЕРЕДЬ ИЛИ НЕТ, ФОДОС-2 ИСПОЛЬЗУЕТ СЧЕТЧИК&lt;br /&gt;
НЕВЫПОЛНЕННЫХ ЗАПРОСОВ ВВОДА-ВЫВОДА ДЛЯ КАЖДОГО КАНАЛА.&lt;br /&gt;
ОБЩЕЕ ЧИСЛО НЕВЫПОЛНЕННЫХ ЗАПРОСОВ ВВОДА-ВЫВОДА НАХОДИТСЯ В&lt;br /&gt;
РЕЗИДЕНТНОМ МОНИТОРЕ. КОГДА ЗАДАНИЕ ПРЕЖДЕВРЕМЕННО&lt;br /&gt;
ПРЕРЫВАЕТСЯ, НЕКОТОРЫЕ НЕВЫПОЛНЕННЫЕ ЗАПРОСЫ ВВОДА-ВЫВОДА&lt;br /&gt;
ДОЛЖНЫ УСТРАНЯТЬСЯ ИЗ СЧЕТЧИКОВ. ЭТО ПРОИСХОДИТ&lt;br /&gt;
АВТОМАТИЧЕСКИ, ЕСЛИ ДРАЙВЕР ПОЛАГАЕТСЯ НА ОЧЕРЕДЬ&lt;br /&gt;
ВВОДА-ВЫВОДА МОНИТОР-ДРАЙВЕР.&lt;br /&gt;
     ЕСЛИ ЖЕ ДРАЙВЕР ОСУЩЕСТВЛЯЕТ ВНУТРЕННЮЮ ОЧЕРЕДЬ&lt;br /&gt;
ВВОДА-ВЫВОДА, ОН ДОЛЖЕН СЛЕДОВАТЬ ПРОЦЕДУРЕ ПОНИЖЕНИЯ&lt;br /&gt;
СЧЕТЧИКА НЕВЫПОЛНЕННЫХ ЗАПРОСОВ ВВОДА-ВЫВОДА. ЭТА ПРОЦЕДУРА&lt;br /&gt;
ДОЛЖНА ГАРАНТИРОВАТЬ, ЧТО ДРАЙВЕР БУДЕТ ВВОДИТЬСЯ, КОГДА&lt;br /&gt;
ЗАДАНИЕ ПРЕЖДЕВРЕМЕННО ПРЕРЫВАЕТСЯ, НЕСМОТРЯ НА ТО, ИМЕЕТ&lt;br /&gt;
ДРАЙВЕР АКТИВНЫЕ ЭЛЕМЕНТЫ ОЧЕРЕДИ ИЛИ НЕТ, ОН УСТАНАВЛИВАЕТ&lt;br /&gt;
РАЗРЯД 11, HNDLR$, В СЛОВЕ СОСТОЯНИЯ УСТРОЙСТВА DDSTS, КОГДА&lt;br /&gt;
ДРАЙВЕР ВЫЗЫВАЕТ ЗАПРОС .DRDEF. В СИСТЕМАХ FB И XM ЭТО&lt;br /&gt;
ПРИВОДИТ К ТОМУ, ЧТО ДРАЙВЕР БУДЕТ ВВОДИТЬСЯ ПРИ ВСЕХ&lt;br /&gt;
ПРЕЖДЕВРЕМЕННЫХ ПРЕРЫВАНИЯХ, ДАЖЕ ЕСЛИ В ОЧЕРЕДИ&lt;br /&gt;
МОНИТОР-ДРАЙВЕР НИЧЕГО НЕТ. (МОНИТОР SJ ИГНОРИРУЕТ ЭТОТ&lt;br /&gt;
РАЗРЯД, ТАК КАК В СИСТЕМЕ ОДНОГО ЗАДАНИЯ ТАКОЙ ПРОБЛЕМЫ&lt;br /&gt;
НЕТ.)&lt;br /&gt;
 ЕСЛИ ДРАЙВЕР ВВОДИТСЯ В ТОЧКЕ ВХОДА ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
ПРЕРЫВАНИЯ, ТО ОН ДОЛЖЕН ПРОВЕРЯТЬ ВНУТРЕННЮЮ ОЧЕРЕДЬ НА&lt;br /&gt;
ЭЛЕМЕНТЫ, ПРИНАДЛЕЖАЩИЕ ПРЕЖДЕВРЕМЕННО ПРЕРВАННОМУ ЗАДАНИЮ.&lt;br /&gt;
(R4 ВСЕГДА СОДЕРЖИТ НОМЕР ПРЕЖДЕВРЕМЕННО ПРЕРВАННОГО&lt;br /&gt;
ЗАДАНИЯ.) ДРАЙВЕР ДОЛЖЕН ОЧИЩАТЬ ВНУТРЕННЮЮ ОЧЕРЕДЬ ОТ ЭТИХ&lt;br /&gt;
ЭЛЕМЕНТОВ, И ДОЛЖНА СЛЕДОВАТЬ ОСТАНОВКА ПРОЦЕДУРЫ ДЛЯ&lt;br /&gt;
СНИЖЕНИЯ СЧЕТЧИКА МОНИТОРА НЕВЫПОЛНЕННЫХ ЗАПРОСОВ&lt;br /&gt;
ВВОДА-ВЫВОДА. РЕГИСТРЫ R0-R3 ДОЛЖНЫ БЫТЬ СОХРАНЕНЫ И ЕСЛИ&lt;br /&gt;
DDCQE ИМЕЕТ НЕНУЛЕВОЕ ЗНАЧЕНИЕ, ТО ДРАЙВЕР:&lt;br /&gt;
 - ПЕРЕМЕЩАЕТ СЛЕДУЮЩИЙ ВНУТРЕННИЙ ЭЛЕМЕНТ ДЛЯ ПРЕКРАЩЕНИЯ&lt;br /&gt;
   ЗАДАНИЯ;&lt;br /&gt;
 - СВЯЗЫВАЕТ ЭЛЕМЕНТЫ ВМЕСТЕ ПОСРЕДСТВОМ СЛОВА СВЯЗИ&lt;br /&gt;
   ЭЛЕМЕНТОВ (ELW), ПОСЛЕДНЕЕ СЛОВО СВЯЗИ ЭЛЕМЕНТОВ ДОЛЖНО&lt;br /&gt;
   БЫТЬ НУЛЕВЫМ; УСТАНАВЛИВАЕТ DDLQE В ТОЧКУ ПОСЛЕДНЕГО&lt;br /&gt;
   ЭЛЕМЕНТА В ПРЕЖДЕВРЕМЕННО ПРЕРВАННОМ ЗАДАНИИ;&lt;br /&gt;
 - ЕСЛИ DDCQE УКАЗЫВАЕТ НА ЭЛЕМЕНТ, ПРИНАДЛЕЖАЩИЙ&lt;br /&gt;
   ПРЕЖДЕВРЕМЕННО ПРЕРВАННОМУ ЗАДАНИЮ, ВВОД-ВЫВОД&lt;br /&gt;
   ПРЕКРАЩАЕТСЯ, И ИСПОЛЬЗУЕТСЯ ЗАПРОС .DRFIN; ЕСЛИ&lt;br /&gt;
   ВВОД-ВЫВОД НЕ ПРЕКРАЩАЕТСЯ, ИСПОЛЬЗУЕТСЯ ДИРЕКТИВА RTS&lt;br /&gt;
   PC, ОЖИДАЕТСЯ ПРЕРЫВАНИЕ, ПОТОМ ИСПОЛЬЗУЕТСЯ .DRFIN;&lt;br /&gt;
   ЕСЛИ DDCQE НЕ УКАЗЫВАЕТ НА ЭЛЕМЕНТ, ПРИНАДЛЕЖАЩИЙ&lt;br /&gt;
   ПРЕРВАННОМУ ЗАДАНИЮ, ПРОСТО ИСПОЛЬЗУЕТСЯ ДИРЕКТИВА RTS&lt;br /&gt;
     PC.&lt;br /&gt;
     ЕСЛИ DDCQE ИМЕЕТ НУЛЕВОЕ ЗНАЧЕНИЕ, ТО ДРАЙВЕР:&lt;br /&gt;
 - ПЕРЕМЕЩАЕТ ЭЛЕМЕНТЫ ВНУТРЕННЕЙ ОЧЕРЕДИ, КОТОРЫЕ&lt;br /&gt;
   ПРИНАДЛЕЖАТ ПРЕРВАННОМУ ЗАДАНИЮ, ЕСЛИ ИХ НЕТ, ТО ПРОСТО&lt;br /&gt;
   ИСПОЛЬЗУЕТСЯ ДИРЕКТИВА RTS PC;&lt;br /&gt;
 - СВЯЗЫВАЕТ ЭЛЕМЕНТЫ ВМЕСТЕ, КАК ОПИСАНО ВЫШЕ,&lt;br /&gt;
   УСТАНАВЛИВАЕТ DDCQE В ТОЧКУ ПЕРВОГО ЭЛЕМЕНТА ОЧЕРЕДИ, А&lt;br /&gt;
   DDLQE - В ТОЧКУ ПОСЛЕДНЕГО (ПОСЛЕДНЕE СЛОВО СВЯЗИ&lt;br /&gt;
   ЭЛЕМЕНТОВ ДОЛЖНО БЫТЬ НУЛЕВЫМ);&lt;br /&gt;
 - ИСПОЛЬЗУЕТ ЗАПРОС .DRFIN.&lt;br /&gt;
&lt;br /&gt;
     3.3. ПАРАМЕТРЫ SET&lt;br /&gt;
     КОМАНДА КЛАВИАТУРНОГО МОНИТОРА SET ПОЗВОЛЯЕТ ИЗМЕНИТЬ&lt;br /&gt;
ОПРЕДЕЛЕННЫЕ ХАРАКТЕРИСТИКИ ДРАЙВЕРА УСТРОЙСТВА. ДРАЙВЕР&lt;br /&gt;
ДОЛЖЕН НАХОДИТЬСЯ НА СИСТЕМНОМ УСТРОЙСТВЕ ФАЙЛОМ С ИМЕНЕМ&lt;br /&gt;
DD&amp;amp;.SYS (DDX.SYS ДЛЯ XM МОНИТОРА), ГДЕ DD - ДВУХСИМВОЛЬНОЕ&lt;br /&gt;
ИМЯ УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
     SET LP WIDTH=80&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ УСТАНАВЛИВАЕТСЯ ВОСЬМИДЕСЯТИКОЛОНОЧНАЯ&lt;br /&gt;
ШИРИНА ПЕЧАТИ ДЛЯ УСТРОЙСТВА LP: (ПО УМОЛЧАНИЮ - 132&lt;br /&gt;
КОЛОНКИ).&lt;br /&gt;
     ДРУГОЙ ТИП КОМАНДЫ SET МОЖЕТ РАЗРЕШАТЬ ИЛИ ЗАПРЕЩАТЬ&lt;br /&gt;
ФУНКЦИЮ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        SET LP CR (УСТАНАВЛИВАЕТ ВОЗВРАТ КАРЕТКИ;&lt;br /&gt;
                         ТО ЖЕ - ПО УМОЛЧАНИЮ)&lt;br /&gt;
        SET LP NOCR (НЕ ДЕЛАЕТ ВОЗВРАТ КАРЕТКИ)&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПОКАЗАНО, КАК С ПОМОЩЬЮ ПРЕФИКСА NO&lt;br /&gt;
ОТРИЦАЕТСЯ ПАРАМЕТР CR (ПРЕФИКС NO ВСЕГДА СТОИТ ПЕРЕД&lt;br /&gt;
ПАРАМЕТРОМ).&lt;br /&gt;
     ДРАЙВЕР УСТРОЙСТВА МОЖЕТ СОДЕРЖАТЬ КОД ДЛЯ&lt;br /&gt;
ОСУЩЕСТВЛЕНИЯ РАЗЛИЧНЫХ ПАРАМЕТРОВ. НИЖЕ ОПИСАНО, КАК&lt;br /&gt;
ДОБАВЛЯТЬ ПАРАМЕТР SET К ДРАЙВЕРУ. ЭТО ДОБАВЛЕНИЕ ВЛИЯЕТ&lt;br /&gt;
ТОЛЬКО НА ФАЙЛ ДРАЙВЕРА, НЕТ НЕОБХОДИМОСТИ ДЕЛАТЬ ИЗМЕНЕНИЯ&lt;br /&gt;
В МОНИТОРЕ. (ПАРАМЕТРЫ SET ДЕЙСТВИТЕЛЬНЫ И ДЛЯ УСТРОЙСТВ&lt;br /&gt;
ДАННЫХ, И ДЛЯ СИСТЕМНЫХ УСТРОЙСТВ.)&lt;br /&gt;
&lt;br /&gt;
     3.3.1. КАК ВЫПОЛНЯЕТСЯ КОМАНДА SET&lt;br /&gt;
     КОМАНДА SET ЦЕЛИКОМ И ПОЛНОСТЬЮ ПРИВОДИТСЯ В ДЕЙСТВИЕ&lt;br /&gt;
ТАБЛИЦЕЙ В БЛОКЕ 0 ФАЙЛА ДРАЙВЕРА И ПОСРЕДСТВОМ УСТАНОВКИ&lt;br /&gt;
ПОДПРОГРАММ, ТАКЖЕ В БЛОКЕ 0, КОТОРЫЕ ИЗМЕНЯЮТ КОМАНДЫ И&lt;br /&gt;
ДАННЫЕ В БЛОКАХ 0 И 1 ДРАЙВЕРА. (БЛОК 0 ОТНОСИТСЯ К АДРЕСАМ&lt;br /&gt;
С 0 ДО 776, ЗАГОЛОВОК ДРАЙВЕРА НАЧИНАЕТЯ В БЛОКЕ 1, В ЯЧЕЙКЕ&lt;br /&gt;
1000 ФАЙЛА ДРАЙВЕРА.)&lt;br /&gt;
     ПОСЛЕ ПЕЧАТИ КОМАНДЫ SET НА ПУЛЬТЕ ТЕРМИНАЛА, МОНИТОР&lt;br /&gt;
ПРОИЗВОДИТ АНАЛИЗ КОМАНДНОЙ СТРОКИ И ИЩЕТ ФАЙЛ ДРАЙВЕРА&lt;br /&gt;
СИСТЕМНОГО УСТРОЙСТВА DD.SYS (DDX.SYS В XM МОНИТОРЕ). НЕТ&lt;br /&gt;
НЕОБХОДИМОСТИ В ТОМ, ЧТОБЫ ЭТОТ ДРАЙВЕР БЫЛ УСТАНОВЛЕН В&lt;br /&gt;
ВЫПОЛНЯЮЩЕЙСЯ СИСТЕМЕ. ЗАТЕМ МОНИТОР СЧИТЫВАЕТ БЛОКИ 0 И 1&lt;br /&gt;
ДРАЙВЕРА В ОБЛАСТЬ БУФЕРА USR В ПАМЯТИ. ОН ПРОСМАТРИВАЕТ&lt;br /&gt;
ТАБЛИЦУ В БЛОКЕ 0, ПОКА НЕ НАЙДЕТ ЭЛЕМЕНТЫ ТАБЛИЦЫ ДЛЯ&lt;br /&gt;
УКАЗАННОГО ПАРАМЕТРА SET. ПО ЭЛЕМЕНТУ ТАБЛИЦЫ ОН МОЖЕТ&lt;br /&gt;
НАЙТИ ОПРЕДЕЛЕННУЮ ПОДПРОГРАММУ, ПРЕДНАЗНАЧЕННУЮ ДЛЯ&lt;br /&gt;
ВЫПОЛНЕНИЯ ЭТОГО ПАРАМЕТРА И ИЗМЕНЕНИЙ, ДОПУСКАЕМЫХ ЭТОЙ&lt;br /&gt;
ПОДПРОГРАММОЙ, ТАКИХ КАК NO ИЛИ ЧИСЛОВЫЕ ЗНАЧЕНИЯ. ЗАТЕМ&lt;br /&gt;
МОНИТОР ВЫПОЛНЯЕТ ПОДПРОГРАММУ, КОТОРАЯ СОДЕРЖИТ КОМАНДЫ,&lt;br /&gt;
ИЗМЕНЯЮЩИЕ КОД В БЛОКАХ 0 И 1 ДРАЙВЕРА. КОД В БЛОКЕ 1&lt;br /&gt;
ЯВЛЯЕТСЯ ЧАСТЬЮ ОСНОВАНИЯ ДРАЙВЕРА И СОДЕРЖИТ КОМАНДЫ ДЛЯ&lt;br /&gt;
УСТАНОВОК ПО УМОЛЧАНИЮ ДЛЯ ВСЕХ ПАРАМЕТРОВ SET. ПОСЛЕ&lt;br /&gt;
ИЗМЕНЕНИЯ КОДА, МОНИТОР ЗАПИСЫВАЕТ БЛОКИ 0 И 1 ОБРАТНО НА&lt;br /&gt;
СИСТЕМНОЕ УСТРОЙСТВО. ПОЭТОМУ, В РЕЗУЛЬТАТЕ КОМАНДЫ SET,&lt;br /&gt;
НЕКОТОРЫЕ КОМАНДЫ ИЛИ ДАННЫЕ В ДРАЙВЕРЕ ИЗМЕНЯЮТСЯ. ОДНАКО&lt;br /&gt;
ДРУГИЕ КОПИИ ДРАЙВЕРА, НАХОДЯЩИЕСЯ В ПАМЯТИ,&lt;br /&gt;
НЕДЕЙСТВИТЕЛЬНЫ.&lt;br /&gt;
&lt;br /&gt;
     3.3.2. ФОРМАТ ТАБЛИЦЫ SET&lt;br /&gt;
     ТАБЛИЦА ДЛЯ ПАРАМЕТРОВ SET СОСТОИТ ИЗ СЕРИИ&lt;br /&gt;
ЧЕТЫРЕХСЛОВНЫХ ЭЛЕМЕНТОВ ДЛЯ ПАРАМЕТРА. ТАБЛИЦА НАЧИНАЕТСЯ&lt;br /&gt;
С ЯЧЕЙКИ 400 БЛОКА 0 ДРАЙВЕРА И ОКАНЧИВАЕТСЯ НУЛЕВЫМ СЛОВОМ.&lt;br /&gt;
ДЛЯ ГЕНЕРАЦИИ ТАБЛИЦЫ ИСПОЛЬЗУЕТСЯ ЗАПРОС .DRSET (СМ.&lt;br /&gt;
П.3.5.3).&lt;br /&gt;
     ПЕРВОЕ СЛОВО ТАБЛИЦЫ ЯВЛЯЕТСЯ ЗНАЧЕНИЕМ, КОТОРОЕ БУДЕТ&lt;br /&gt;
ПЕРЕДАНО В R3 ДЛЯ ПОДПРОГРАММЫ SET, СВЯЗАННОЙ С ПАРАМЕТРОМ,&lt;br /&gt;
КОГДА МОНИТОР ОБРАБАТЫВАЕТ ЭТОТ ПАРАМЕТР. ЭТО СЛОВО МОЖЕТ&lt;br /&gt;
БЫТЬ ЧИСЛОВЫМ ЗНАЧЕНИЕМ - ТАКИМ, КАК ЧИСЛО КОЛОНОК ПО&lt;br /&gt;
УМОЛЧАНИЮ ДЛЯ ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА - ИЛИ&lt;br /&gt;
КОМАНДОЙ ДЛЯ ЗАМЕНЫ НА ДРУГУЮ КОМАНДУ В БЛОКЕ 1 ДРАЙВЕРА.&lt;br /&gt;
ЭТО СЛОВО НЕ ДОЛЖНО БЫТЬ НУЛЕВЫМ.&lt;br /&gt;
     ВТОРОЕ И ТРЕТЬЕ СЛОВА ТАБЛИЦЫ ЯВЛЯЮТСЯ НАИМЕНОВАНИЕМ&lt;br /&gt;
ПАРАМЕТРА В КОДАХ RADIX-50 (НАПРИМЕР, CR ИЛИ WIDTH). В&lt;br /&gt;
ТАБЛИЦЕ СИМВОЛЫ ВЫРАВНЕНЫ ВЛЕВО И ЗАПОЛНЕНЫ ПРОБЕЛАМИ.&lt;br /&gt;
     МЛАДШИЙ БАЙТ ЧЕТВЕРТОГО СЛОВА ЯВЛЯЕТСЯ УКАЗАТЕЛЕМ&lt;br /&gt;
ПОДПРОГРАММЫ, КОТОРАЯ ИЗМЕНЯЕТ КОД. СТАРШИЙ БАЙТ ПОКАЗЫВАЕТ&lt;br /&gt;
ТИП ДОПУСТИМОГО ПАРАМЕТРА SET. УСТАНОВКА РАЗРЯДА 100&lt;br /&gt;
ПОКАЗЫВАЕТ, ЧТО ТРЕБУЕТСЯ ВОСЬМЕРИЧНЫЙ АРГУМЕНТ. УСТАНОВКА&lt;br /&gt;
РАЗРЯДА 200 ПОКАЗЫВАЕТ, ЧТО ПРЕФИКС NO ДЕЙСТВИТЕЛЬНА ДЛЯ&lt;br /&gt;
ЭТОГО ПАРАМЕТРА. НА РИС.1 ПОКАЗАНА ТАБЛИЦА ПАРАМЕТРОВ SET.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!            ЗНАЧЕНИЕ, НАХОДЯЩЕЕСЯ В R3,                   !&lt;br /&gt;
!              ДЛЯ ПОДПРОГРАММЫ SET                        !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!                  ИМЯ ПАРАМЕТРА В КОДАХ                   !&lt;br /&gt;
!                        RADIX-50                          !&lt;br /&gt;
!                       (ДВА СЛОВА)                        !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!  КОДЫ ДЛЯ ДОПУСТИМОГО      !          УКАЗАТЕЛЬ          !&lt;br /&gt;
!    ТИПА КОМАНД SET         !     ПОДПРОГРАММЫ SET        !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                           РИС.1&lt;br /&gt;
&lt;br /&gt;
     3.3.3. ЗАПРОС .DRSET&lt;br /&gt;
     ЗАПРОС .DRSET ИСПОЛЬЗУЕТСЯ ДЛЯ УСТАНОВКИ ТАБЛИЦЫ&lt;br /&gt;
ПАРАМЕТРОВ ПОСРЕДСТВОМ ВЫЗОВА ЗАПРОСА ОДИН РАЗ ДЛЯ КАЖДОГО&lt;br /&gt;
ПАРАМЕТРА ТАКИМ ОБРАЗОМ, ЧТОБЫ ВЫЗОВЫ ЗАПРОСА СЛЕДОВАЛИ ОДИН&lt;br /&gt;
ЗА ДРУГИМ. НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ЗАПРОС .DRSET&lt;br /&gt;
ПОСЛЕ .DRDEF И ПЕРЕД ЗАПРОСОМ .DRBEG.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА ЗАПРОСА .DRSET СЛЕДУЮЩИЙ:&lt;br /&gt;
     .DRSET OPTION,VAL,RTN[,MODE]&lt;br /&gt;
ГДЕ OPTION - ИМЯ ПАРАМЕТРА SET (НАПРИМЕР, CR ИЛИ WIDTH);&lt;br /&gt;
             ОНО МОЖЕТ СОДЕРЖАТЬ НЕ БОЛЕЕ ШЕСТИ&lt;br /&gt;
             БУКВЕННО-ЦИФРОВЫХ ЗНАКОВ И НЕ ДОЛЖНО СОДЕРЖАТЬ&lt;br /&gt;
             ПРОБЕЛЫ ИЛИ ТАБУЛЯЦИЮ;&lt;br /&gt;
       VAL - ПАРАМЕТР, КОТОРЫЙ БУДЕТ ПЕРЕДАН В R3 ДЛЯ&lt;br /&gt;
             ПОДПРОГРАММЫ; ОН МОЖЕТ БЫТЬ ЧИСЛОВОЙ&lt;br /&gt;
             КОНСТАНТОЙ, ТАКОЙ, КАК МИНИМАЛЬНАЯ ШИРИНА&lt;br /&gt;
             КОЛОНКИ, ИЛИ ЦЕЛОЙ КОМАНДОЙ, ЗАКЛЮЧЕННОЙ В&lt;br /&gt;
             УГЛОВЫЕ СКОБКИ, ДЛЯ ЗАМЕНЫ СОДЕРЖИМОГО БЛОКОВ 0&lt;br /&gt;
             ИЛИ 1 ДРАЙВЕРА; ОН НЕ ДОЛЖЕН БЫТЬ НУЛЕВЫМ;&lt;br /&gt;
       RTN - ИМЯ ПОДПРОГРАММЫ, КОТОРАЯ ИЗМЕНЯЕТ КОД В БЛОКАХ&lt;br /&gt;
             0 ИЛИ 1 ДРАЙВЕРА; ПОДПРОГРАММА ДОЛЖНА&lt;br /&gt;
             СЛЕДОВАТЬ ЗА ТАБЛИЦЕЙ ПАРАМЕТРОВ В БЛОКЕ 0, НО&lt;br /&gt;
             НЕ ВЫШЕ АДРЕСА 776;&lt;br /&gt;
      MODE - ПРОИЗВОЛЬНЫЙ АРГУМЕНТ ДЛЯ ПОКАЗА ТИПА ПАРАМЕТРА&lt;br /&gt;
             SET; НЕОБХОДИМО ВВЕСТИ ПРЕФИКС NO ДЛЯ ПОКАЗА,&lt;br /&gt;
             ЧТО ОН ДЕЙСТВИТЕЛЕН ДЛЯ ПАРАМЕТРА; НЕОБХОДИМО&lt;br /&gt;
             ВВЕСТИ NUM, ЕСЛИ ТРЕБУЕТСЯ ДЕСЯТИЧНОЕ ЗНАЧЕНИЕ,&lt;br /&gt;
             OCT - ЕСЛИ ВОСЬМЕРИЧНОЕ; ПРОПУСК АРГУМЕНТА&lt;br /&gt;
             MODE ПОКАЗЫВАЕТ, ЧТО OPTION НЕ ПРИНИМАЕТ НИ&lt;br /&gt;
             ПРЕФИКС NO, НИ ЧИСЛОВЫЕ АРГУМЕНТЫ; КОНСТРУКЦИЯ&lt;br /&gt;
             &amp;lt;NO,NUM&amp;gt; ПОКАЗЫВАЕТ, ЧТО ТРЕБУЕТСЯ ИЛИ ПРЕФИКС&lt;br /&gt;
             NO, ИЛИ ДЕСЯТИЧНОЕ ЗНАЧЕНИЕ, НО НЕ ОБА СРАЗУ;&lt;br /&gt;
             КОНСТРУКЦИЯ &amp;lt;NO,OCT&amp;gt; ПОКАЗЫВАЕТ, ЧТО ТРЕБУЕТСЯ&lt;br /&gt;
             ИЛИ ПРЕФИКС NO, ИЛИ ВОСЬМЕРИЧНОЕ ЗНАЧЕНИЕ, НО&lt;br /&gt;
             НЕ ОБА СРАЗУ; ПРОПУСК АРГУМЕНТА MODE ВЫЗЫВАЕТ&lt;br /&gt;
             ПОЯВЛЕНИЕ НУЛЯ В СТАРШЕМ БАЙТЕ ПОСЛЕДНЕГО СЛОВА&lt;br /&gt;
             ЭЛЕМЕНТОВ ТАБЛИЦЫ.&lt;br /&gt;
     СНАЧАЛА ЗАПРОС .DRSET ВЫДАЕТ ДИРЕКТИВУ .ASECT И&lt;br /&gt;
УСТАНАВЛИВАЕТ СЧЕТЧИК АДРЕСА У 400, В НАЧАЛЕ ТАБЛИЦЫ. ОН&lt;br /&gt;
ГЕНЕРИРУЕТ ТАКЖЕ НУЛЕВОЕ СЛОВО ДЛЯ ОКОНЧАНИЯ ТАБЛИЦЫ. ТАК&lt;br /&gt;
КАК ЗАПРОС .DRSET ОСТАВЛЯЕТ СЧЕТЧИК АДРЕСА В КОНЦЕ ТАБЛИЦЫ,&lt;br /&gt;
ТО НЕОБХОДИМО ПОМЕСТИТЬ ПОДПРОГРАММУ ДЛЯ ИЗМЕНЕНИЯ КОДА&lt;br /&gt;
СРАЗУ ЖЕ ПОСЛЕ ТОГО, КАК ЗАПРОС .DRSET ВЫЗОВЕТ ДРАЙВЕР. ЭТО&lt;br /&gt;
ГАРАНТИРУЕТ, ЧТО ОНИ РАСПОЛОЖАТСЯ В БЛОКЕ 0 ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
     3.3.4. ПОДПРОГРАММА ИЗМЕНЕНИЯ ДРАЙВЕРА&lt;br /&gt;
 ДРАЙВЕРУ НУЖНА ОДНА ПОДПРОГРАММА ДЛЯ КАЖДОГО&lt;br /&gt;
ДОПУСТИМОГО ПАРАМЕТРА SET. НЕОБХОДИМА ТАКЖЕ ВЕРСИЯ NO ДЛЯ&lt;br /&gt;
ЭТОГО ЖЕ ПАРАМЕТРА. ЦЕЛЬЮ ПОДПРОГРАММЫ ЯВЛЯЕТСЯ ИЗМЕНЕНИЕ&lt;br /&gt;
КОДА В ОСНОВНОЙ ЧАСТИ ДРАЙВЕРА, ОСНОВАННОЕ НА КОМАНДЕ SET,&lt;br /&gt;
НАПЕЧАТАННОЙ НА ПУЛЬТЕ ТЕРМИНАЛА.&lt;br /&gt;
     СРАЗУ ЖЕ ЗА ПОДПРОГРАММАМИ ДОЛЖНА СЛЕДОВАТЬ ТАБЛИЦА&lt;br /&gt;
ПАРАМЕТРОВ, И ОНИ ДОЛЖНЫ НАХОДИТЬСЯ В БЛОКЕ 0 ПОСЛЕ ТАБЛИЦЫ&lt;br /&gt;
И НИЖЕ АДРЕСА 1000. КОД В ОСНОВНОЙ ЧАСТИ ДРАЙВЕРА, КОТОРУЮ&lt;br /&gt;
ИЗМЕНЯЕТ ПОДПРОГРАММА, ДОЛЖЕН НАХОДИТЬСЯ В БЛОКЕ 1 ДРАЙВЕРА,&lt;br /&gt;
В ПРЕДЕЛАХ ПЕРВЫХ 256-ТИ СЛОВ.&lt;br /&gt;
     ИМЯ ПОДПРОГРАММЫ ЯВЛЯЕТСЯ ТОЧКОЙ ВХОДА ПО УМОЛЧАНИЮ.&lt;br /&gt;
ЭТА ТОЧКА ВХОДА ДЛЯ ПАРАМЕТРОВ, КОТОРЫЕ НЕ ПРИНИМАЮТ НИ&lt;br /&gt;
ЧИСЛОВЫЕ ЗНАЧЕНИЯ, НИ ПРЕФИКС NO, И ДЛЯ ПАРАМЕТРОВ, КОТОРЫЕ&lt;br /&gt;
ПРИНИМАЮТ ПРЕФИКС NO, НО В ДАННЫЙ МОМЕНТ ЕГО НЕ ИМЕЮТ.&lt;br /&gt;
ТОЧКОЙ ВХОДА ДЛЯ ПАРАМЕТРОВ, КОТОРЫЕ ПОЗВОЛЯЮТ ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ПРЕФИКС NO И ИМЕЮТ ЕГО, ЯВЛЯЕТСЯ ТОЧКА ВХОДА ПО УМОЛЧАНИЮ&lt;br /&gt;
+4.&lt;br /&gt;
     ПРИ ВХОДЕ В ПОДПРОГРАММУ ДЛЯ ВСЕХ ПАРАМЕТРОВ РАЗРЯД&lt;br /&gt;
ПЕРЕНОСА ЧИСТ, И РЕГИСТРЫ R0, R1 И R3 СОДЕРЖАТ ИНФОРМАЦИЮ ПО&lt;br /&gt;
ИСПОЛЬЗОВАНИЮ ПОДПРОГРАММЫ. ЕСЛИ ДЛЯ ЭТОГО ПАРАМЕТРА&lt;br /&gt;
ДОПУСТИМЫ ЧИСЛОВЫЕ ЗНАЧЕНИЯ, ТО РЕГИСТР R0 СОДЕРЖИТ ЧИСЛОВОЕ&lt;br /&gt;
ЗНАЧЕНИЕ, СОДЕРЖАЩЕЕСЯ В КОМАНДНОЙ СТРОКЕ С SET; R1&lt;br /&gt;
СОДЕРЖИТ УКАЗАННЫЙ НОМЕР КАНАЛА КАК ЧАСТЬ ИМЕНИ УСТРОЙСТВА&lt;br /&gt;
(ЕСЛИ НОМЕР КАНАЛА НЕ УКАЗАН, ТО РАЗРЯД ПРИЗНАКА&lt;br /&gt;
УСТАНОВЛЕН); R3 СОДЕРЖИТ СЛОВО VAL ТАБЛИЦЫ ПАРАМЕТРОВ SET.&lt;br /&gt;
     ПОДПРОГРАММА МОЖЕТ ПОКАЗАТЬ, ЧТО КОМАНДА НЕДОПУСТИМА,&lt;br /&gt;
ПОСРЕДСТВОМ ВОЗВРАТА С УСТАНОВЛЕННЫМ РАЗРЯДОМ ПЕРЕНОСА.&lt;br /&gt;
НАПРИМЕР, ДЛЯ ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА SET WIDTH НЕ&lt;br /&gt;
ДОПУСКАЕТ ШИРИНУ МЕНЕЕ 30. ЕСЛИ ПАРАМЕТРЫ ПОДПРОГРАММЫ&lt;br /&gt;
ПОКАЗЫВАЮТ НЕИСПРАВНОСТЬ, МОНИТОР ПЕЧАТАЕТ СООБЩЕНИЕ ОБ&lt;br /&gt;
ОШИБКЕ И НЕ ЗАПИСЫВАЕТ БЛОКИ 0 И 1. ТАКИМ ОБРАЗОМ МОЖНО&lt;br /&gt;
СДЕЛАТЬ ПРОВЕРКУ ПОСЛЕ ИЗМЕНЕНИЯ КОДОВ В БЛОКЕ 1.&lt;br /&gt;
     ДОБАВИВ ПОДПРОГРАММЫ ДЛЯ КАЖДОГО ПАРАМЕТРА В ДРАЙВЕРЕ,&lt;br /&gt;
МОЖНО ИСПОЛЬЗОВАТЬ СЛЕДУЮЩУЮ СТРОКУ КОДА, ЧТОБЫ УБЕДИТЬСЯ,&lt;br /&gt;
ЧТО ГРАНИЦЫ РАЗМЕРА НЕ НАРУШЕНЫ:&lt;br /&gt;
     .IIF GT,&amp;lt;.1000&amp;gt;, .ERROR .-1000 ;КОД SET СЛИШКОМ ВЕЛИК!&lt;br /&gt;
     ЭТА СЕКЦИЯ ЗАВЕРШАЕТСЯ ДИРЕКТИВОЙ .ASECT, ПОСЛЕ КОТОРОЙ&lt;br /&gt;
НЕОБХОДИМО УСТАНОВИТЬ СЧЕТЧИК АДРЕСОВ У 1000. ЗАТЕМ МОЖНО&lt;br /&gt;
ПРОДОЛЖАТЬ ОБРАБОТКУ ОСТАЛЬНОГО КОДА ДРАЙВЕРА, НАЧИНАЮЩЕГОСЯ&lt;br /&gt;
С ЗАПРОСА .DRBEG, КОТОРЫЙ УСТАНАВЛИВАЕТ ЗАГОЛОВОК ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
     3.3.5. ПРИМЕРЫ ПАРАМЕТРОВ SET&lt;br /&gt;
     СЛЕДУЮЩИЕ ДАЛЕЕ ПРИМЕРЫ ВЗЯТЫ ИЗ ДРАЙВЕРА&lt;br /&gt;
ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА И ДЕМОНСТРИРУЮТ ПАРАМЕТРЫ&lt;br /&gt;
SET, ОПИСАННЫЕ РАНЕЕ:&lt;br /&gt;
     SET LP WIDTH=80&lt;br /&gt;
     SET LP CR&lt;br /&gt;
     SET LP NOCR&lt;br /&gt;
     СНАЧАЛА ДРАЙВЕР ВЫЗЫВАЕТ ЗАПРОС .DRSET ДЛЯ УСТАНОВКИ&lt;br /&gt;
ТАБЛИЦЫ ПАРАМЕТРОВ ДЛЯ ДВУХ ПАРАМЕТРОВ: WIDTH И CR.&lt;br /&gt;
 ПЕРВЫЙ ВЫЗОВ ПОКАЗЫВАЕТ, ЧТО УСТАНОВЛЕН ПАРАМЕТР WIDTH&lt;br /&gt;
ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА, ЧТО ДЕСЯТИЧНОЕ 30 - ЭТО&lt;br /&gt;
ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ, ЧТО O.WIDTH - ЭТО ИМЯ ПОДПРОГРАММЫ,&lt;br /&gt;
КОТОРАЯ ИЗМЕНЯЕТ КОД ЭТОГО ПАРАМЕТРА, И ЧТО WIDTH - ЦИФРОВОЙ&lt;br /&gt;
АРГУМЕНТ:&lt;br /&gt;
     .DRSET WIDTH,30.,O.WIDTH,NUM&lt;br /&gt;
     СЛЕДУЮЩИЙ ВЫЗОВ ПОКАЗЫВАЕТ, ЧТО УСТАНОВЛЕН ПАРАМЕТР CR&lt;br /&gt;
ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА, ЧТО &amp;quot;NOP&amp;quot; ДОЛЖЕН&lt;br /&gt;
ПЕРЕХОДИТЬ К ПОДПРОГРАММЕ, ЧТО O.CR - ЭТО ИМЯ ПОДПРОГРАММЫ,&lt;br /&gt;
КОТОРАЯ ИЗМЕНЯЕТ КОД ЭТОГО ПАРАМЕТРА, И ЧТО ЭТОТ ПАРАМЕТР CR&lt;br /&gt;
МОЖЕТ ИСПОЛЬЗОВАТЬСЯ С ПРИСТАВКОЙ NO:&lt;br /&gt;
     .DRSET CR,NOP,O.CR,NO&lt;br /&gt;
     ЭТИ ДВА ВЫЗОВА ГЕНЕРИРУЮТ СЛЕДУЮЩУЮ ТАБЛИЦУ:&lt;br /&gt;
 .ASECT&lt;br /&gt;
 .=400&lt;br /&gt;
        .WORD 30. ;МИНИМАЛЬНОЕ ЗНАЧЕНИЕ WIDTH&lt;br /&gt;
        .RAD50 \WIDTH \ ;ИМЯ ПАРАМЕТРА&lt;br /&gt;
        .BYTE &amp;lt;O.WIDTH-400&amp;gt;/2&lt;br /&gt;
        .BYTE 100&lt;br /&gt;
        NOP ;НЕВЫПОЛНЯЕМАЯ КОМАНДА&lt;br /&gt;
        .RAD50 \CR \ ;ИМЯ ПАРАМЕТРА&lt;br /&gt;
        .BYTE &amp;lt;O.CR-400&amp;gt;/2&lt;br /&gt;
        .BYTE 200&lt;br /&gt;
        .WORD 0 ;КОНЕЦ ТАБЛИЦЫ&lt;br /&gt;
&lt;br /&gt;
     ПОДПРОГРАММЫ ДЛЯ ОБРАБОТКИ ЭТИХ ПАРАМЕТРОВ СЛЕДУЮТ&lt;br /&gt;
СРАЗУ ЖЕ ЗА ТАБЛИЦЕЙ.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
O.WIDTH:MOV R0,COLCNT ;ПЕРЕМЕЩАЕТ ЗНАЧЕНИЕ&lt;br /&gt;
                                ;ОТ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
        MOV R0,RSTC+2 ;В ДВЕ ПОСТОЯННЫЕ ЯЧЕЙКИ&lt;br /&gt;
        CMP R0,R3 ;СРАВНИВАЕТ НОВОЕ ЗНАЧЕНИЕ&lt;br /&gt;
                                ;С МИНИМАЛЬНЫМ ЗНАЧЕНИЕМ&lt;br /&gt;
                                ;WIDTH, 30&lt;br /&gt;
        RTS PC ;ВОЗВРАТ, С-РАЗРЯД&lt;br /&gt;
                                ;УСТАНОВЛЕН НА ОШИБКУ&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПОКАЗАНА ПОДПРОГРАММА ИЗМЕНЕНИЯ&lt;br /&gt;
ПАРАМЕТРА WIDTH. КОМАНДЫ В ПОДПРОГРАММЕ O.WIDTH ИЗМЕНЯЮТ&lt;br /&gt;
ДАННЫЕ В ДВУХ ЯЧЕЙКАХ БЛОКА 1 ДРАЙВЕРА.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
O.CR: MOV (PC)+,R3 ;ТОЧКА ВХОДА ДЛЯ &amp;quot;CR&amp;quot;;&lt;br /&gt;
                                ;ПЕРЕМЕЩАЕТ АДРЕС СЛЕДУЮЩЕЙ&lt;br /&gt;
                                ;СТРОКИ В R3&lt;br /&gt;
 BEQ RSTC-CROPT+. ;НОВАЯ КОМАНДА&lt;br /&gt;
        MOV R3,CROPT ;ТОЧКА ВХОДА ДЛЯ &amp;quot;NOCR&amp;quot;&lt;br /&gt;
                                ;(O.CR+4);&lt;br /&gt;
                                ;ПЕРЕМЕЩАЕТ ИЛИ &amp;quot;NOP&amp;quot;, ИЛИ&lt;br /&gt;
                                ;ПРЕДЫДУЩУЮ СТРОКУ В CROPT&lt;br /&gt;
        RTS PC ;ВОЗВРАТ&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА ПОДПРОГРАММА O.CR, КОТОРАЯ&lt;br /&gt;
ИМЕЕТ ДВЕ ТОЧКИ ВХОДА: ДЛЯ ПАРАМЕТРА &amp;quot;CR&amp;quot; ПОДПРОГРАММА&lt;br /&gt;
ВВОДИТСЯ У O.CR, ДЛЯ ПАРАМЕТРА &amp;quot;NOCR&amp;quot; - У O.CR+4. ВАЖНО,&lt;br /&gt;
ЧТО:&lt;br /&gt;
1. ПОДПРОГРАММЕ УДАЕТСЯ ЗАМЕНИТЬ ОДНУ ИЗ ДВУХ КОМАНД,&lt;br /&gt;
   РАСПОЛОЖЕННЫХ В БЛОКЕ 1;&lt;br /&gt;
2. КОМАНДА NOP ПЕРЕМЕЩАЕТСЯ В CROPT, ЕСЛИ ВЫБРАН ПАРАМЕТР&lt;br /&gt;
   &amp;quot;NOCR&amp;quot;;&lt;br /&gt;
3. КОМАНДА BEQ RSTC-CROPT+. ПЕРЕМЕЩАЕТСЯ В CROPT, ЕСЛИ&lt;br /&gt;
   ВЫБРАН &amp;quot;CR&amp;quot;;&lt;br /&gt;
4. ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПОДПРОГРАММ ПРИ ОБРАБОТКЕ ПАРАМЕТРОВ&lt;br /&gt;
   SET РЕГИСТРЫ R4 И R5 НЕДОСТУПНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ.&lt;br /&gt;
     КОНСТРУКЦИЯ КОМАНДЫ BEQ НЕОБХОДИМА, ПОТОМУ ЧТО ПЕРЕХОД&lt;br /&gt;
БУДЕТ ТРАНСЛИРОВАТЬСЯ В ЯЧЕЙКУ, ОТЛИЧНУЮ ОТ ТОЙ, ИЗ КОТОРОЙ&lt;br /&gt;
ОН БУДЕТ ВЫПОЛНЕН. ВО ВСЕХ ПОДПРОГРАММАХ КОМАНДА ПЕРЕХОДА&lt;br /&gt;
ДОЛЖНА ИСПОЛЬЗОВАТЬ СЛЕДУЮЩУЮ КОНСТРУКЦИЮ ДЛЯ ГЕНЕРАЦИИ&lt;br /&gt;
ПРАВИЛЬНОГО АДРЕСА:&lt;br /&gt;
        BR A-B+.&lt;br /&gt;
 ГДЕ A - МЕСТО НАЗНАЧЕНИЯ КОМАНДЫ ПЕРЕХОДА;&lt;br /&gt;
     В - АДРЕС КОМАНДЫ ПЕРЕХОДА;&lt;br /&gt;
     . - ТЕКУЩЕЕ ЗНАЧЕНИЕ СЧЕТЧИКА ЯЧЕЕК.&lt;br /&gt;
&lt;br /&gt;
     ОБЫЧНО ТОЛЬКО ПОДПРОГРАММЫ ДЛЯ ПАРАМЕТРОВ, ДОПУСКАЮЩИХ&lt;br /&gt;
ПРЕФИКС NO, ИСПОЛЬЗУЮТ ЭТИ КОМАНДЫ ПЕРЕХОДА.&lt;br /&gt;
     И, НАКОНЕЦ, ПРИВЕДЕН КОД СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ДРАЙВЕРА, КОТОРЫЙ ИЗМЕНЯЕТСЯ ВЫШЕПРИВЕДЕННЫМИ&lt;br /&gt;
ПОДПРОГРАММАМИ. КОД ДЛЯ ИЗМЕНЕНИЯ ДОЛЖЕН БЫТЬ РАСПОЛОЖЕН В&lt;br /&gt;
БЛОКЕ 1 ДРАЙВЕРА, В ПЕРВЫХ 256-ТИ СЛОВАХ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
COLCNT: .WORD COLSIZ ;ПЕЧАТЬ ОСТАВШИХСЯ&lt;br /&gt;
        . ;СИМВОЛОВ СТРОКИ&lt;br /&gt;
        . ;&lt;br /&gt;
CHRTST: CMPB R5,#HT ;ЭТО СИМВОЛ ТАБУЛЯЦИИ?&lt;br /&gt;
        BEQ TABSET ;ДА, СБРОСИТЬ ТАБУЛЯЦИЮ&lt;br /&gt;
        CMPB R5,#LF ;ЭТО ПЕРЕВОД СТРОКИ?&lt;br /&gt;
        BEQ RSTC ;ДА, ВОССТАНОВИТЬ СЧЕТЧИК&lt;br /&gt;
                                ;КОЛОНОК&lt;br /&gt;
        CMPB R5,#CR ;ЭТО ВОЗВРАТ КАРЕТКИ?&lt;br /&gt;
CROPT: NOP ;&amp;quot;NOP&amp;quot;, ЕСЛИ НЕТ;&lt;br /&gt;
                                ;ИНАЧЕ &amp;quot;BEQ RSTC-CROPT+.&amp;quot;&lt;br /&gt;
                                ;ПОСРЕДСТВОМ ПОДПРОГРАММЫ&lt;br /&gt;
                                ;SET В БЛОКЕ 0 (ЕСЛИ&lt;br /&gt;
                                ;ПАРАМЕТР &amp;quot;CR&amp;quot;)&lt;br /&gt;
        CMPB R5,#FF ;ЭТО ПЕРЕВОД ФОРМАТА?&lt;br /&gt;
        BNE IGNORE ;НЕТ, ЭТО НЕ ПЕЧАТЬ&lt;br /&gt;
RSTC: MOV #COLSIZ,COLCNT ;ПЕРЕУСТАНОВКА СЧЕТЧИКА&lt;br /&gt;
                                ;КОЛОНОК&lt;br /&gt;
&lt;br /&gt;
     ИЗ ЭТОГО ПРИМЕРА ВИДНО, КАК ПОДПРОГРАММЫ ИЗ БЛОКА 0&lt;br /&gt;
МОГУТ ИЗМЕНЯТЬ ДАННЫЕ И КОМАНДЫ В БЛОКЕ 1 ДРАЙВЕРА.&lt;br /&gt;
&lt;br /&gt;
     3.4. КАК ПРОВЕРИТЬ И ОТЛАДИТЬ ДРАЙВЕР УСТРОЙСТВА&lt;br /&gt;
     КАК ТОЛЬКО НОВЫЙ ДРАЙВЕР БУДЕТ ОТТРАНСЛИРОВАН,&lt;br /&gt;
ОТРЕДАКТИРОВАН И ВКЛЮЧЕН В СИСТЕМУ (УСТАНОВЛЕН), МОЖНО&lt;br /&gt;
НАЧИНАТЬ ЕГО ПРОВЕРКУ. ВО ВРЕМЯ ОТЛАДКИ НЕОБХОДИМО НЕ&lt;br /&gt;
ЗАБЫВАТЬ О ТОМ, ЧТО КАЖДЫЙ РАЗ НЕОБХОДИМО УСТРАНЯТЬ СТАРЫЙ&lt;br /&gt;
ДРАЙВЕР И УСТАНАВЛИВАТЬ НОВЫЙ ПОСЛЕ СОЗДАНИЯ ЕГО НОВОЙ&lt;br /&gt;
ВЕРСИИ DD(X).SYS.&lt;br /&gt;
     ПРОВЕРКА ДРАЙВЕРА ЗАКЛЮЧАЕТСЯ В СЛЕДУЮЩИХ ТРЕХ СТАДИЯХ.&lt;br /&gt;
1. ИСПОЛЬЗОВАНИЕ ODT ДЛЯ НАБЛЮДЕНИЯ ЗА ДРАЙВЕРАМИ В ПРОЦЕССЕ&lt;br /&gt;
   ПЕРЕДАЧИ ИМИ ДАННЫХ (СМ. П.П.3.4.1 И 3.4.2).&lt;br /&gt;
2. ПРОВЕРКА ДРАЙВЕРА КОМАНДАМИ КЛАВИАТУРНОГО МОНИТОРА,&lt;br /&gt;
   ПРОГРАММАМИ РАБОТЫ С ФАЙЛАМИ И ПРОГРАММАМИ ФОРТРАН ИЛИ&lt;br /&gt;
   БЭЙСИК. НАПРИМЕР, КОМАНДУ COPY (СМ. [2]) МОЖНО&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ ДЛЯ КОПИРОВАНИЯ ДАННЫХ НА ИЛИ С УСТРОЙСТВА&lt;br /&gt;
   ИЛИ ИСПОЛЬЗОВАТЬ ДЛЯ КОПИРОВАНИЯ PIP (СМ. [7]). ХОРОШО&lt;br /&gt;
   ИСПОЛЬЗОВАТЬ ДРАЙВЕР С ОПЕРАТОРАМИ BASIC INPUT ИЛИ PRINT.&lt;br /&gt;
   ИЛИ С ОПЕРАТОРАМИ FORTRAN READ ИЛИ WRITE. ЕСЛИ ДРАЙВЕР&lt;br /&gt;
   УСТАНАВЛИВАЕТ РАЗРЯД В СЛОВЕ СОСТОЯНИЯ УСТРОЙСТВА,&lt;br /&gt;
   КОТОРЫЙ ПОКАЗЫВАЕТ, ЧТО ДРАЙВЕР ПРЕДНАЗНАЧЕН ДЛЯ&lt;br /&gt;
   УСТРОЙСТВА СИСТЕМЫ ФОДОС-2 СПРАВОЧНОЙ СТРУКТУРЫ, DUP&lt;br /&gt;
   БУДЕТ РАБОТАТЬ ПРАВИЛЬНО В УСТРОЙСТВЕ, БЕЗ ДАЛЬНЕЙШИХ&lt;br /&gt;
   ИЗМЕНЕНИЙ. Т.Е., МОЖНО ИСПОЛЬЗОВАТЬ DUP ДЛЯ&lt;br /&gt;
   ИНИЦИАЛИЗАЦИИ УСТРОЙСТВА (ПО ПЕРЕКЛЮЧАТЕЛЮ /Z) И&lt;br /&gt;
   ОБ'ЕДИНЕНИЯ НЕИСПОЛЬЗУЕМОЙ ОБЛАСТИ (ПО ПЕРЕКЛЮЧАТЕЛЮ /S).&lt;br /&gt;
   ПРОГРАММЕ RESORC НЕ ТРЕБУЕТСЯ ИЗМЕНЕНИЯ ДЛЯ ПРИЗНАНИЯ&lt;br /&gt;
   НОВОГО УСТРОЙСТВА И ВКЛЮЧЕНИЯ ЕГО В СООБЩЕНИЕ SHOW&lt;br /&gt;
   DEVICES.&lt;br /&gt;
3. ДАТЬ ДРАЙВЕРУ РАСШИРЕННУЮ РАЗРАБОТКУ С ПРИКЛАДНОЙ&lt;br /&gt;
   ПРОГРАММОЙ, КОТОРАЯ ИСПОЛЬЗУЕТ РЕЖИМ ОЖИДАНИЯ&lt;br /&gt;
   ВВОДА-ВЫВОДА, АСИНХРОННЫЙ ВВОД-ВЫВОД И ПОДПРОГРАММУ&lt;br /&gt;
   ЗАВЕРШЕНИЯ.&lt;br /&gt;
     КОГДА ДРАЙВЕР ПРОЙДЕТ ВСЮ ПРОВЕРКУ УСПЕШНО, МОЖНО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ЕГО КАК ЧАСТЬ СИСТЕМЫ ФОДОС-2.&lt;br /&gt;
&lt;br /&gt;
     3.4.1. ИСПОЛЬЗОВАНИЕ ODT ДЛЯ ПРОВЕРКИ ДРАЙВЕРА&lt;br /&gt;
     ЛУЧШИЙ СПОСОБ ИСПОЛЬЗОВАНИЯ ODT ДЛЯ ПРОВЕРКИ ДРАЙВЕРА -&lt;br /&gt;
ЭТО ВЫПОЛНЕНИЕ ODT КАК ОСНОВНОГО ЗАДАНИЯ. ЕСЛИ ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
МОНИТОР SJ, ТО ИМЕЕТ СМЫСЛ ПЕРЕКЛЮЧИТЬ ЕГО НА FB НА ВРЕМЯ&lt;br /&gt;
ОТЛАДКИ. ВО ВРЕМЯ ОТЛАДКИ РЕКОМЕНДУЕТСЯ БЫТЬ ОСНОВНЫМ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЕМ.&lt;br /&gt;
     НЕОБХОДИМО ЗАГРУЗИТЬ СИСТЕМУ С ПОМОЩЬЮ АППАРАТНОГО&lt;br /&gt;
ЗАГРУЗЧИКА, НЕ НАЧИНАЯ ВЫПОЛНЕНИЙ СИСТЕМНЫХ ЗАДАНИЙ И&lt;br /&gt;
ЗАГРУЗКИ ДРАЙВЕРОВ.&lt;br /&gt;
     НИЖЕ ПРИВЕДЕНА КОМАНДА, ПО КОТОРОЙ ODT СВЯЗЫВАЕТСЯ С&lt;br /&gt;
ОСНОВНЫМ ЗАДАНИЕМ:&lt;br /&gt;
     LINK/MAP/FOREGROUND ODT&lt;br /&gt;
     ЗАТЕМ НЕОБХОДИМО ЗАГРУЗИТЬ ДРАЙВЕР УСТРОЙСТВА, КОТОРЫЙ&lt;br /&gt;
НЕОБХОДИМО ОТЛАДИТЬ:&lt;br /&gt;
     LOAD DD[X]&lt;br /&gt;
     ТЕПЕРЬ НЕОБХОДИМО ВЫПОЛНИТЬ КОМАНДУ SHOW D. ЗАПОМНИМ&lt;br /&gt;
АДРЕС, ОПРЕДЕЛЕННЫЙ ДЛЯ ДРАЙВЕРА УСТРОЙСТВА, НАПРИМЕР,&lt;br /&gt;
131634. ВЫЧИТАЕМ 6 (ВОСЬМЕРИЧНОЕ) И ПОЛУЧАЕМ БАЗУ АДРЕСА&lt;br /&gt;
ДРАЙВЕРА:&lt;br /&gt;
131634&lt;br /&gt;
-       6&lt;br /&gt;
------&lt;br /&gt;
131626&lt;br /&gt;
&lt;br /&gt;
     ЗАПУСКАЕТСЯ ODT КАК ОСНОВНОЕ ЗАДАНИЕ:&lt;br /&gt;
     FRUN ODT&lt;br /&gt;
     ODT V01.04&lt;br /&gt;
     *&lt;br /&gt;
     ЗАСЫЛАЕTСЯ В РЕГИСТР СМЕЩЕНИЯ 0 ЗНАЧЕНИЕ, ВЫЧИСЛЕННОЕ&lt;br /&gt;
ИЗ АДРЕСА ПО КОМАНДЕ SHOW D:&lt;br /&gt;
     131626;0R&lt;br /&gt;
     МОЖНО ПЕРЕМЕЩАТЬСЯ ПО ДРАЙВЕРУ В ПАМЯТИ ПО МЕРЕ&lt;br /&gt;
СЛЕДОВАНИЯ ИНСТРУКЦИЙ ЛИСТИНГА ТРАНСЛЯЦИИ. ПЯТЬ ПЕРВЫХ СЛОВ&lt;br /&gt;
ЯВЛЯЮТСЯ ЗАГОЛОВКОМ; ПЕРВАЯ ИСПОЛНЯЕМАЯ КОМАНДА ЯВЛЯЕТСЯ&lt;br /&gt;
ШЕСТЫМ СЛОВОМ. ПОЭТОМУ ЛУЧШЕ ВСЕГО УСТАНОВИТЬ ПЕРВУЮ ТОЧКУ&lt;br /&gt;
РАЗРЫВА У ШЕСТОГО СЛОВА:&lt;br /&gt;
&lt;br /&gt;
     0,12;0B&lt;br /&gt;
&lt;br /&gt;
     ДРУГИЕ ТОЧКИ РАЗРЫВА МОЖНО ПОСТАВИТЬ В ТЕХ ЧАСТЯХ&lt;br /&gt;
ДРАЙВЕРА, КОТОРЫЕ НЕОБХОДИМО ПРОВЕРИТЬ ВО ВРЕМЯ ОТЛАДКИ.&lt;br /&gt;
ДРУГИМ КРИТИЧЕСКИМ МЕСТОМ ЯВЛЯЕТСЯ ТОЧКА ВХОДА ПРЕРЫВАНИЯ.&lt;br /&gt;
СООТВЕТСТВУЮЩУЮ ЯЧЕЙКУ МОЖНО НАЙТИ ПРОВЕРКОЙ ЛИСТИНГА&lt;br /&gt;
ДРАЙВЕРА (ТОЧКА ВХОДА ПРЕРЫВАНИЯ НАЗЫВАЕТСЯ DDINT:).&lt;br /&gt;
     ПОСЛЕ УСТАНОВКИ ТОЧЕК РАЗРЫВА МОЖНО ВЫХОДИТЬ ИЗ ODT:&lt;br /&gt;
     0;G&lt;br /&gt;
     ТЕПЕРЬ МОЖНО ПЫТАТЬСЯ ИСПОЛЬЗОВАТЬ ДРАЙВЕР. НАПРИМЕР,&lt;br /&gt;
ИСПОЛЬЗОВАТЬ DUP ДЛЯ ИНИЦИАЛИЗАЦИИ УСТРОЙСТВА ИЛИ PIP ДЛЯ&lt;br /&gt;
КОПИРОВАНИЯ НА УСТРОЙСТВО ДАННЫХ. ИЛИ ВЫПОЛНИТЬ&lt;br /&gt;
ТЕСТ-ПРОГРАММУ, ПРЕДНАЗНАЧЕННУЮ СПЕЦИАЛЬНО ДЛЯ ЭТОЙ ЦЕЛИ.&lt;br /&gt;
КОГДА ВЫПОЛНЕНИЕ ДОСТИГАЕТ ПЕРВОЙ ТОЧКИ РАЗРЫВА, ODT&lt;br /&gt;
ПРИНИМАЕТ УПРАВЛЕНИЕ. ODT ИСПОЛЬЗУЕТСЯ КАК ОБЫЧНО ДЛЯ&lt;br /&gt;
ПРОВЕРКИ ЯЧЕЕК И ИХ ЗНАЧЕНИЙ ИЛИ ИЗМЕНЕНИЯ КОМАНД.&lt;br /&gt;
ПРИОРИТЕТ ODT ПО УМОЛЧАНИЮ РАВЕН 7; ЭТО ПРЕДОТВРАЩАЕТ ОТ&lt;br /&gt;
ВМЕШАТЕЛЬСТВА ДРУГИХ ПРЕРЫВАНИЙ ВО ВРЕМЯ СЕАНСА ОТЛАДКИ.&lt;br /&gt;
     ЕСЛИ РАБОТА ДРАЙВЕРА УСТРАИВАЕТ, ТО НЕОБХОДИМО&lt;br /&gt;
УСТРАНИТЬ ИЗ НЕГО ТОЧКИ РАЗРЫВА И ПРИСТУПИТЬ К ДАЛЬНЕЙШЕМУ&lt;br /&gt;
ВЫПОЛНЕНИЮ ПОСРЕДСТВОМ ДРАЙВЕРА:&lt;br /&gt;
     ;B&lt;br /&gt;
     ;P&lt;br /&gt;
     НЕДОПУСТИМА РАЗГРУЗКА ОСНОВНОГО ЗАДАНИЯ (ODT), ЕСЛИ&lt;br /&gt;
ТОЧКИ РАЗРЫВА ЕЩЕ УСТАНОВЛЕНЫ В ДРАЙВЕРЕ.&lt;br /&gt;
&lt;br /&gt;
     3.4.2. ИСПОЛЬЗОВАНИЕ ODT В ХМ&lt;br /&gt;
     НЕОБХОДИМО ТЩАТЕЛЬНО ВЫБРАТЬ МЕСТО ДЛЯ ODT В ПАМЯТИ.&lt;br /&gt;
МОЖНО СВЯЗАТЬ ЕГО С ПРИКЛАДНОЙ ПРОГРАММОЙ ИЛИ ТАК, ЧТОБЫ ОН&lt;br /&gt;
РАЗМЕЩАЛСЯ В ПАМЯТИ ТАМ, ГДЕ ОН НЕ БУДЕТ РАЗРУШЕН. ЕСЛИ&lt;br /&gt;
ТОЧКА РАЗРЫВА ДОЛЖНА БЫТЬ ВЫБРАНА ВО ВНУТРЕННЕМ РЕЖИМЕ, ODT&lt;br /&gt;
НЕ ДОЛЖЕН РАЗМЕЩАТЬСЯ В ОБЛАСТИ РАС1 (ЯЧЕЙКИ С 20000 ПО&lt;br /&gt;
37776). САМОЕ БЕЗОПАСНОЕ МЕСТО ДЛЯ ODT - ЭТО СЕКЦИЯ&lt;br /&gt;
ОСНОВНОГО ЗАДАНИЯ (СМ. П.3.4.1).&lt;br /&gt;
     ПРИ ОТЛАДКЕ С ИСПОЛЬЗОВАНИЕМ ODT СТРАНИЦА ВВОДА-ВЫВОДА&lt;br /&gt;
ДОЛЖНА БЫТЬ ОТОБРАЖЕНА.&lt;br /&gt;
     УСТАНОВКА ТОЧЕК РАЗРЫВА ТРЕБУЕТ ОСТОРОЖНОСТИ. ПОСЛЕ&lt;br /&gt;
ВВЕДЕНИЯ ODT НЕОБХОДИМО ПРОВЕРИТЬ ВЕКТОР ПРЕРЫВАНИЯ ПО ТОЧКЕ&lt;br /&gt;
РАЗРЫВА (BPT) В ЯЧЕЙКАХ 14 И 16 НИЖНЕЙ ПАМЯТИ. ПОСЛЕ&lt;br /&gt;
УСТАНОВКИ ТОЧЕК РАЗРЫВА НЕОБХОДИМО ВРУЧНУЮ УСТАНОВИТЬ&lt;br /&gt;
РАЗРЯДЫ ТЕКУЩЕГО РЕЖИМА, РАЗРЯДЫ 14 И 15, PS В ЯЧЕЙКЕ 16.&lt;br /&gt;
ЗАТЕМ ОЖИДАЕТСЯ ТОЧКА РАЗРЫВА. ЗНАЧЕНИЕ 11 ПРЕДНАЗНАЧЕНО&lt;br /&gt;
ДЛЯ РЕЖИМА ПОЛЬЗОВАТЕЛЯ, 00 - ДЛЯ СИСТЕМНОГО РЕЖИМА.&lt;br /&gt;
ПРОГРАММЫ РАБОТЫ С ФАЙЛАМИ СИСТЕМЫ ФОДОС-2, ТАКИЕ КАК PIP И&lt;br /&gt;
DUP, ВЫПОЛНЯЮТСЯ В РЕЖИМЕ ПОЛЬЗОВАТЕЛЯ И ПРЕДПОЛАГАЮТ, ЧТО&lt;br /&gt;
РАЗРЯДЫ РЕЖИМА БУДУТ УСТАНОВЛЕНЫ 11.&lt;br /&gt;
     ПОСЛЕ УСТАНОВКИ ТОЧЕК РАЗРЫВА НЕОБХОДИМО НАПЕЧАТАТЬ 0;G&lt;br /&gt;
ДЛЯ ВЫХОДА ИЗ ODT. ЭТО ЗАСТАВЛЯЕТ ODT ВЫПОЛНИТЬ ЗАПРОС&lt;br /&gt;
.EXIT, КОТОРЫЙ РАЗРУШАЕТ ВЕКТОР BPT. ПОЭТОМУ ПОСЛЕ ВЫХОДА&lt;br /&gt;
ИЗ ODT НЕОБХОДИМО ВРУЧНУЮ РЕКОНСТРУИРОВАТЬ СОДЕРЖИМОЕ&lt;br /&gt;
ВЕКТОРА ПОСРЕДСТВОМ ИСПОЛЬЗОВАНИЯ КОМАНДЫ DEPOSIT СЛЕДУЮЩИМ&lt;br /&gt;
ОБРАЗОМ:&lt;br /&gt;
D 14=(ИСТИННОЕ СОДЕРЖИМОЕ ЯЧЕЙКИ 14),(ИСТИННОЕ СОДЕРЖИМОЕ&lt;br /&gt;
ЯЧЕЙКИ 16)&lt;br /&gt;
     НЕОБХОДИМО, ЧТОБЫ ДРУГИЕ ЗАДАНИЯ В ЭТО ВРЕМЯ НЕ&lt;br /&gt;
ВЫПОЛНЯЛИСЬ, ТАК КАК ПЕРЕКЛЮЧЕНИЕ КОНТЕКСТА ВЫЗОВЕТ ВЫХОД ИЗ&lt;br /&gt;
СТРОЯ ЭТОГО МЕТОДА.&lt;br /&gt;
&lt;br /&gt;
           4. ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
     ЭТОТ РАЗДЕЛ ОПИСЫВАЕТ СПОСОБЫ, С ПОМОЩЬЮ КОТОРЫХ&lt;br /&gt;
ПРОГРАММА МОЖЕТ ПЕРЕДАВАТЬ ДАННЫЕ МЕЖДУ ПАМЯТЬЮ И&lt;br /&gt;
ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ. СНАЧАЛА ИЗЛАГАЕТСЯ&lt;br /&gt;
ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД БЕЗ ПРЕРЫВАНИЯ, ЗАТЕМ ВВОДЯТСЯ&lt;br /&gt;
КОНЦЕПЦИИ ДЛЯ ИСПОЛЬЗОВАНИЯ ПРЕРЫВАНИЙ ДЛЯ ОБСЛУЖИВАНИЯ&lt;br /&gt;
УСТРОЙСТВ ВВОДА-ВЫВОДА ПОСРЕДСТВОМ СРАВНЕНИЯ ПРЕИМУЩЕСТВ И&lt;br /&gt;
НЕДОСТАТКОВ ПОДПРОГРАММ ВНУТРЕННЕЙ ОБРАБОТКИ ПРЕРЫВАНИЙ И&lt;br /&gt;
ДРАЙВЕРОВ УСТРОЙСТВ. ПОСЛЕ ЭТИХ ОБЩИХ УКАЗАНИЙ ОПИСЫВАЕТСЯ&lt;br /&gt;
СТРУКТУРА ПОДПРОГРАММ ОБРАБОТКИ ПРЕРЫВАНИЙ И ПОКАЗЫВАЕТСЯ В&lt;br /&gt;
ДЕТАЛЯХ, КАК ОРГАНИЗОВАТЬ И ПИСАТЬ ИХ. ПРИМЕР СХЕМЫ&lt;br /&gt;
ОСНОВНОЙ ПРОГРАММЫ, КОТОРАЯ СОДЕРЖИТ ПОДПРОГРАММУ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ, ЗАКАНЧИВАЕТ ОБСУЖДЕНИЕ. В КОНЦЕ РАЗДЕЛА -&lt;br /&gt;
ПРИМЕНЕНИЕ ПОДПРОГРАММ ОБРАБОТКИ ПРЕРЫВАНИЙ В XM-СИСТЕМЕ.&lt;br /&gt;
&lt;br /&gt;
     4.1. ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД&lt;br /&gt;
     ПЕРВЫМ СПОСОБОМ ПЕРЕДАЧИ ДАННЫХ МЕЖДУ ПАМЯТЬЮ И&lt;br /&gt;
ПЕРИФЕРИЙНЫМ УСТРОЙСТВОМ ЯВЛЯЕТСЯ ПРОГРАММИРУЕМЫЙ&lt;br /&gt;
ВВОД-ВЫВОД. В СООТВЕТСТВИИ С ЭТИМ СПОСОБОМ ПРОГРАММА&lt;br /&gt;
ОПЕРИРУЕТ С УСТРОЙСТВАМИ, ЗАПРЕЩАЯ ПРЕРЫВАНИЯ И ИСПОЛЬЗУЯ&lt;br /&gt;
ПРИЗНАКИ ДЛЯ КООРДИНАЦИИ ПЕРЕДАЧИ ДАННЫХ. ПРОГРАММА&lt;br /&gt;
ПРОВЕРЯЕТ РАЗРЯД ГОТОВНОСТИ В РЕГИСТРЕ СОСТОЯНИЯ&lt;br /&gt;
СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА, ПОСЫЛАЕТ ДАННЫЕ В&lt;br /&gt;
СООТВЕТСТВУЮЩИЙ МОМЕНТ И, ЗАТЕМ, ОЖИДАЕТ ДРУГОЙ СИГНАЛ&lt;br /&gt;
ГОТОВНОСТИ ИЛИ ДЕЛАЕТ ДРУГУЮ ОБРАБОТКУ И, ВРЕМЯ ОТ ВРЕМЕНИ,&lt;br /&gt;
ПОДСЧЕТ УСТРОЙСТВ. ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД ЗАВИСИТ ОТ&lt;br /&gt;
КОНКРЕТНОГО УСТРОЙСТВА И НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬ ВОЗМОЖНОСТИ&lt;br /&gt;
ОПЕРАЦИОННОЙ СИСТЕМЫ, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ ПРОЦЕССОВ&lt;br /&gt;
ВВОДА-ВЫВОДА. КРОМЕ ТОГО, ОН ЗАНИМАЕТ РЕСУРСЫ СИСТЕМЫ ДО&lt;br /&gt;
ОКОНЧАНИЯ ВВОДА-ВЫВОДА.&lt;br /&gt;
     ОДНАКО ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД В ТО ЖЕ ВРЕМЯ&lt;br /&gt;
ЯВЛЯЕТСЯ ЛУЧШИМ ПРАКТИЧЕСКИ МЕТОДОМ. НАПРИМЕР, РЕЗИДЕНТНЫЙ&lt;br /&gt;
МОНИТОР ИСПОЛЬЗУЕТ ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД ДЛЯ ПЕЧАТИ&lt;br /&gt;
СВОЕГО СООБЩЕНИЯ ОБ ОШИБКЕ: ?MON-F-SYSTEM-HALT. СНАЧАЛА ОН&lt;br /&gt;
ВЫПОЛНЯЕТ ОПЕРАЦИЮ RESET ДЛЯ ОСТАНОВКИ ВСЕХ АКТИВНЫХ&lt;br /&gt;
ПРОЦЕССОВ ВВОДА-ВЫВОДА. ПОТОМ ОН ЖДЕТ В СЖАТОМ ЦИКЛЕ ДЛЯ&lt;br /&gt;
СИСТЕМНОГО ТЕРМИНАЛА, ЧТОБЫ НАПЕЧАТЧТЬ СООБЩЕНИЕ ОБ ОШИБКЕ&lt;br /&gt;
ПО ОДНОМУ СИМВОЛУ ЗА РАЗ. ОЧЕВИДНО, В ТАКОЙ СИТУАЦИИ, ГДЕ&lt;br /&gt;
МОНИТОР МОЖЕТ БЫТЬ ИСПОРЧЕН, НИ ОДНО ДРУГОЕ ЗАДАНИЕ ИЛИ&lt;br /&gt;
ПЕРЕДАЧА ДАННЫХ НЕ МОГУТ ВЫПОЛНЯТЬСЯ, И СИСТЕМНЫЙ ТЕРМИНАЛ&lt;br /&gt;
РАЗРЕШЕН ТОЛЬКО КАК УСТРОЙСТВО ВЫВОДА. ПОДПРОГРАММА&lt;br /&gt;
МОНИТОРА .PRINT ТАКЖЕ МОЖЕТ БЫТЬ ИСПОРЧЕНА И НЕ МОЖЕТ БЫТЬ&lt;br /&gt;
ИСПОЛЬЗОВАНА. УЧИТЫВАЯ ЭТИ ТРЕБОВАНИЯ, ПРОГРАММИРУЕМЫЙ&lt;br /&gt;
ВВОД-ВЫВОД ЯВЛЯЕТСЯ ЛУЧШИМ СПОСОБОМ ДЛЯ ПЕЧАТИ СООБЩЕНИЯ ОБ&lt;br /&gt;
ОШИБКЕ.&lt;br /&gt;
     В ПРИКЛАДНЫХ ПРОГРАММАХ МОЖНО ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД ДЛЯ КРИТИЧЕСКИХ ПО ВРЕМЕНИ&lt;br /&gt;
УСТРОЙСТВ, КОГДА ПРОГРАММА ДОЛЖНА РЕАГИРОВАТЬ ТАК БЫСТРО,&lt;br /&gt;
КАК ТОЛЬКО СИМВОЛ БУДЕТ НАХОДИТЬСЯ В РЕГИСТРЕ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;R1 УКАЗЫВАЕТ ТЕКСТ СООБЩЕНИЯ.&lt;br /&gt;
;TTPS - СЛОВО В ПАМЯТИ, СОДЕРЖАЩЕЕ АДРЕС РЕГИСТРА СОСТОЯНИЯ&lt;br /&gt;
;ПЕЧАТАЮЩЕГО ТЕРМИНАЛА; ЕГО ПРИЗНАК ГОТОВНОСТИ УСТАНАВЛИВА-&lt;br /&gt;
;ЕТСЯ В ПОСЛЕДНЕМ ПО СЧЕТУ РАЗРЯДЕ МЛАДШЕГО БАЙТА (РАЗР.7).&lt;br /&gt;
;TTPB - СЛОВО В ПАМЯТИ, СОДЕРЖАЩЕЕ АДРЕС БУФЕРА ТЕРМИНАЛА.&lt;br /&gt;
;ПЕРЕСЫЛКА СИМВОЛОВ В БУФЕР ВОССТАНАВЛИВАЕТ ПРИЗНАК ЗАНЯ-&lt;br /&gt;
;ТОСТИ В РЕГИСТРЕ СОСТОЯНИЯ&lt;br /&gt;
;&lt;br /&gt;
5$: TSTB @TTPS ;ПРОВЕРИТЬ, TT - ИСПОЛЬЗУ-&lt;br /&gt;
                                ;ЕТСЯ?&lt;br /&gt;
        BPL 5$ ;ЕСЛИ ДА, ПРОВЕРИТЬ СНОВА&lt;br /&gt;
        MOVB (R1)+,@TTPB ;ЕСЛИ НЕТ, ПЕЧАТАТЬ СИМВОЛ&lt;br /&gt;
        BNE 5$ ;ПЕРЕХОД НАЗАД, ЕСЛИ ПЕЧА-&lt;br /&gt;
                                ;ТАТЬ ДАЛЬШЕ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ИЗ RMON ДЕМОНСТРИРУЕТСЯ ПРОГРАММИРУЕМЫЙ&lt;br /&gt;
ВВОД-ВЫВОД.&lt;br /&gt;
     ДРАЙВЕР УСТРОЙСТВА ГИБКИХ ДИСКОВ С ОДИНАРНОЙ ПЛОТНОСТЬЮ&lt;br /&gt;
ЗАПИСИ (В ДАЛЬНЕЙШЕМ ПРОСТО ГИБКИЕ ДИСКИ, ЕСЛИ НЕ ОГОВОРЕНА&lt;br /&gt;
ОСОБО ПЛОТНОСТЬ ЗАПИСИ), DX, ПРЕДУСМАТРИВАЕТ ДРУГОЙ ПРИМЕР&lt;br /&gt;
ПРОГРАММИРУЕМОГО ВВОДА-ВЫВОДА. ПРИ СЧИТЫВАНИИ ДАННЫХ С&lt;br /&gt;
ГИБКОГО ДИСКА ПО ОДНОМУ СЕКТОРУ ЗА РАЗ ДРАЙВЕР СНАЧАЛА&lt;br /&gt;
ТРЕБУЕТ СЧИТЫВАНИЯ ОДНОГО СЕКТОРА. УСТРОЙСТВО ГИБКИХ ДИСКОВ&lt;br /&gt;
ЗАВЕРШАЕТ ОПЕРАЦИЮ СЧИТЫВАНИЯ, РАЗМЕЩАЕТ ДАННЫЕ ВО&lt;br /&gt;
ВНУТРЕННЕМ БУФЕРЕ И ВЫХОДИТ К ПРЕРЫВАНИЮ. ДРАЙВЕР ЗАПРЕЩАЕТ&lt;br /&gt;
ПРЕРЫВАНИЯ И ИСПОЛЬЗУЕТ ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД ДЛЯ&lt;br /&gt;
ПЕРЕДАЧИ ДАННЫХ ИЗ ВНУТРЕННЕГО БУФЕРА В ПАМЯТЬ. КОГДА&lt;br /&gt;
ВНУТРЕННИЙ БУФЕР СНОВА ГОТОВ ДЛЯ СЧИТЫВАНИЯ СЛЕДУЮЩЕГО&lt;br /&gt;
СЕКТОРА, ДРАЙВЕР РАЗРЕШАЕТ ПРЕРЫВАНИЕ СНОВА.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;R4 УКАЗЫВАЕТ РЕГИСТР СОСТОЯНИЯ ГИБКОГО ДИСКА;&lt;br /&gt;
;R5 УКАЗЫВАЕТ ВНУТРЕННИЙ БУФЕР;&lt;br /&gt;
;R2 УКАЗЫВАЕТ БУФЕР ДАННЫХ В ПАМЯТИ.&lt;br /&gt;
;&lt;br /&gt;
TRBYT: TSTB @TTPS ;ОЖИДАЕТ ОКОНЧАНИЯ ПЕРЕДАЧИ&lt;br /&gt;
        BPL TRBYT ;ВЕТВЛЕНИЕ, ЕСЛИ ПЕРЕДАЧА НЕ&lt;br /&gt;
                                ;ЗАКОНЧЕНА&lt;br /&gt;
EFBUF: MOVB @R5,(R2)+ ;ПЕРЕДАЧА СИМВОЛА&lt;br /&gt;
        DEC @SP ;ПРОВЕРКА НА ОКОНЧАНИЕ СЧЕТ-&lt;br /&gt;
                                ;ЧИКА&lt;br /&gt;
        BGT TRBYT ;ДАЛЬНЕЙШАЯ ПЕРЕДАЧА&lt;br /&gt;
&lt;br /&gt;
     4.2. ВВОД-ВЫВОД, ОБРАБАТЫВАЕМЫЙ ПО ПРЕРЫВАНИЯМ&lt;br /&gt;
     ХОТЯ ПРОГРАММИРУЕМЫЙ ВВОД-ВЫВОД В НЕКОТОРЫХ СЛУЧАЯХ&lt;br /&gt;
ЛУЧШЕ, ВООБЩЕ, ЛУЧШИМ СПОСОБОМ ОБРАБОТКИ УСТРОЙСТВ&lt;br /&gt;
ВВОДА-ВЫВОДА ЯВЛЯЕТСЯ ОБРАБОТКА ПРЕРЫВАНИЙ. В СООТВЕТСТВИИ&lt;br /&gt;
С ЭТИМ СПОСОБОМ ПРОГРАММА НАЧИНАЕТ ПЕРЕДАЧУ ВВОДА-ВЫВОДА, НЕ&lt;br /&gt;
ПРЕКРАЩАЯ ОБРАБОТКУ. КОГДА ПЕРЕДАЧА ЗАВЕРШАЕТСЯ, УСТРОЙСТВО&lt;br /&gt;
ВЫХОДИТ НА ПРЕРЫВАНИЕ. ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ОПРЕДЕЛЯЕТ, ЗАВЕРШЕНА ПЕРЕДАЧА ИЛИ НЕТ ИЛИ ПРОИЗОШЛА ОШИБКА,&lt;br /&gt;
И ОНА ВЫПОЛНЯЕТ СООТВЕТСТВУЮЩИЕ ФУНКЦИИ (ПРОДОЛЖАЕТ&lt;br /&gt;
ПЕРЕДАЧУ, ВОЗВРАЩАЕТСЯ В ПРОГРАММУ ИЛИ, ВОЗМОЖНО, ПОВТОРЯЕТ&lt;br /&gt;
ПЕРЕДАЧУ В СЛУЧАЕ ОШИБКИ). ПРЕИМУЩЕСТВОМ ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
ПРЕРЫВАНИЙ ЯВЛЯЕТСЯ ВОЗМОЖНОСТЬ ВЫПОЛНЕНИЯ ДВУХ И БОЛЕЕ&lt;br /&gt;
КОНКУРИРУЮЩИХ ПРОЦЕССОВ, И РЕСУРСЫ СИСТЕМЫ НЕ&lt;br /&gt;
МОНОПОЛИЗИРУЮТСЯ.&lt;br /&gt;
&lt;br /&gt;
     4.2.1. КАК РАБОТАЮТ ПРЕРЫВАНИЯ&lt;br /&gt;
     ПРЕРЫВАНИЯ - ВЫНУЖДЕННЫЕ ПЕРЕДАЧИ ВЫПОЛНЕНИЯ&lt;br /&gt;
ПРОГРАММЫ - ВОЗНИКАЮТ В СЛУЧАЕ ТАКИХ ВНЕШНИХ ПРИЧИН, КАК&lt;br /&gt;
ЗАВЕРШЕНИЕ ВВОДА-ВЫВОДА. СОСТОЯНИЕ ПРОЦЕССОРА ПЕРЕД&lt;br /&gt;
ПРЕРЫВАНИЕМ СОХРАНЯЕТСЯ В СТЕКЕ, ТАК ЧТО ОБРАБОТКА МОЖЕТ&lt;br /&gt;
ПРОДОЛЖАТЬСЯ СПОКОЙНО ПОСЛЕ ВОЗВРАЩЕНИЯ ИЗ ПРЕРЫВАНИЯ.&lt;br /&gt;
ПРОЦЕССОР СОХРАНЯЕТ СЛОВО СОСТОЯНИЯ ПРОЦЕССОРА (PS), КОТОРОЕ&lt;br /&gt;
СОДЕРЖИТ ТЕКУЩЕЕ СОСТОЯНИЕ МАШИНЫ, И СЧЕТЧИК КОМАНД (PC),&lt;br /&gt;
КОТОРЫЙ УКАЗЫВАЕТ АДРЕС ВОЗВРАТА.&lt;br /&gt;
     ЗАТЕМ ПРОЦЕССОР ЗАГРУЖАЕТ НОВОЕ СОДЕРЖИМОЕ PS И PC ИЗ&lt;br /&gt;
ДВУХ ПРЕДВАРИТЕЛЬНО НАЗНАЧЕННЫХ ЯЧЕЕК НИЖНЕЙ ПАМЯТИ,&lt;br /&gt;
НАЗЫВАЕМЫХ ВЕКТОРОМ ПРЕРЫВАНИЯ. ЭТИ СЛОВА СОДЕРЖАТ АДРЕС&lt;br /&gt;
ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ И НОВОЕ СЛОВО СОСТОЯНИЯ,&lt;br /&gt;
ПРОЦЕССОРА (PS), КОТОРОЕ УКАЗЫВАЕТ НОВЫЙ ПРИОРИТЕТ&lt;br /&gt;
ПРОЦЕССОРА. КОГДА ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ&lt;br /&gt;
ЗАВЕРШАЕТСЯ, ОНА ВЫПОЛНЯЕТ КОМАНДУ RTI, КОТОРАЯ&lt;br /&gt;
ВОССТАНАВЛИВАЕТ СТАРЫЕ PC И PS ИЗ СТЕКА, И ВОЗОБНОВЛЯЕТСЯ&lt;br /&gt;
ВЫПОЛНЕНИЕ В ПРЕРВАННОЙ ПРОГРАММЕ.&lt;br /&gt;
&lt;br /&gt;
     4.2.2. ПРИОРИТЕТЫ УСТРОЙСТВ И ПРОЦЕССОРА&lt;br /&gt;
     ОБРАБОТКА ПРЕРЫВАНИЯ ТЕСНО СВЯЗАНА С ПРИОРИТЕТОМ&lt;br /&gt;
ПРОЦЕССОРА И УСТРОЙСТВ. РИС.2 ИЛЛЮСТРИРУЕТ СТРУКТУРУ&lt;br /&gt;
ПРИОРИТЕТОВ ФОДОС-2.&lt;br /&gt;
&lt;br /&gt;
ПРИОРИТЕТ ПРОЦЕССОРА ПРИОРИТЕТ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ&lt;br /&gt;
 &lt;br /&gt;
7 ----------------- ДРАЙВЕРЫ УСТРОЙСТВ&lt;br /&gt;
6 ----------------- И&lt;br /&gt;
5 ----------------- ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
4 ----------------- ПРЕРЫВАНИЯ&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
      ------------ FORK ---------- FORK-УРОВЕНЬ&lt;br /&gt;
      !&lt;br /&gt;
бй      !&lt;br /&gt;
      ! ---- ОСНОВНАЯ ПОДПРОГРАММА&lt;br /&gt;
      ! ! ЗАВЕРШЕНИЯ&lt;br /&gt;
      ------------- FG -----------! &lt;br /&gt;
      !                           !    ОСНОВНАЯ&lt;br /&gt;
      !                           ---- МАГИСТРАЛЬ&lt;br /&gt;
      ! &lt;br /&gt;
      !                           ---- ФОНОВАЯ ПОДПРОГРАММА&lt;br /&gt;
      !                           !    ЗАВЕРШЕНИЯ&lt;br /&gt;
      ------------- BG -----------! &lt;br /&gt;
      !                           !    ФОНОВАЯ &lt;br /&gt;
      !                           ---- МАГИСТРАЛЬ&lt;br /&gt;
      ! &lt;br /&gt;
      ! &lt;br /&gt;
 0------- ОТСУТСТВИЕ ЗАДАНИЯ -------- ХОЛОСТОЙ ЦИКЛ МОНИТОРА&lt;br /&gt;
 &lt;br /&gt;
                         РИС.2 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     КАЖДОЕ УСТРОЙСТВО СИСТЕМЫ ИМЕЕТ НАЗНАЧЕННЫЙ ЕМУ&lt;br /&gt;
ПРИОРИТЕТ, И В ПЕРВУЮ ОЧЕРЕДЬ БУДЕТ ОБСЛУЖЕНО УСТРОЙСТВО С&lt;br /&gt;
БОЛЕЕ ВЫСОКИМ ПРИОРИТЕТОМ ПОСЛЕ ПРЕРЫВАНИЯ. КАССЕТНАЯ&lt;br /&gt;
ЛЕНТА, НАПРИМЕР, ИМЕЕТ ПРИОРИТЕТ 6, ДИСК,ОБЫЧНО, 5, ТЕРМИНАЛ&lt;br /&gt;
И ДРУГИЕ СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ УСТРОЙСТВА - 4. ЭТИ&lt;br /&gt;
ПРИОРИТЕТЫ ТОЧНО НАЗНАЧЕНЫ СИСТЕМОЙ И, ВООБЩЕ, РЕГУЛИРУЮТСЯ&lt;br /&gt;
ПОСРЕДСТВОМ ПЕРЕКЛЮЧАТЕЛЯ СМЕННЫХ ПРИОРИТЕТОВ В КАЖДОМ&lt;br /&gt;
ИНТЕРФЕЙСЕ УСТРОЙСТВ ВВОДА-ВЫВОДА. МОЖНО УПРАВЛЯТЬ ПОРЯДКОМ&lt;br /&gt;
УСТРОЙСТВ С ОДИНАКОВЫМ ПРИОРИТЕТОМ. ДЛЯ ЭТИХ УСТРОЙСТВ&lt;br /&gt;
ПЕРВОЕ ЗАНЯВШЕЕ ЦП (ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР) ОБСЛУЖИВАЕТСЯ&lt;br /&gt;
ВПЕРЕД ДРУГИХ УСТРОЙСТВ, КОГДА ОДНОВРЕМЕННО ВОЗНИКАЮТ&lt;br /&gt;
ПРЕРЫВАНИЯ.&lt;br /&gt;
     ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (ЦП) ОПЕРИРУЕТ С ЛЮБЫМ ОДНИМ ИЗ&lt;br /&gt;
ВОСЬМИ УРОВНЕЙ ПРИОРИТЕТА, ОТ 0 ДО 7. (ЭВМ &amp;quot;ЭЛЕКТРОНИКА&lt;br /&gt;
60М&amp;quot;: ИЛИ С 0, ИЛИ С 7.) КОГДА ЦП РАБОТАЕТ С ПРИОРИТЕТОМ 7,&lt;br /&gt;
НИ ОДНО УСТРОЙСТВО НЕ МОЖЕТ ЕГО ПРЕРВАТЬ. КОГДА ЦП&lt;br /&gt;
ОПЕРИРУЕТ С БОЛЕЕ НИЗКИМ ПРИОРИТЕТОМ, ПРИЧИНОЙ ПРЕРЫВАНИЯ&lt;br /&gt;
МОЖЕТ СТАТЬ ЛИШЬ УСТРОЙСТВО С БОЛЕЕ ВЫСОКИМ ПРИОРИТЕТОМ.&lt;br /&gt;
МОЖНО УСТАНАВЛИВАТЬ ПРИОРИТЕТЫ ПРОЦЕССОРА ВНУТРИ&lt;br /&gt;
ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ, ИЗМЕНЯЯ СЛОВО СОСТОЯНИЯ&lt;br /&gt;
ПРОЦЕССОРА. В СИСТЕМЕ ФОДОС-2 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ&lt;br /&gt;
ПРЕДУСМАТРИВАЕТ ЭТО, И МОЖНО НАПРЯМУЮ ИЗМЕНЯТЬ PS&lt;br /&gt;
САМОСТОЯТЕЛЬНО. ОНО ВКЛЮЧАЕТ ПРОГРАММНЫЕ ЗАПРОСЫ .MTPS И&lt;br /&gt;
.MFPS И ЗАПРОСЫ .INTEN И .FORK.&lt;br /&gt;
     СИСТЕМА ПРЕРЫВАНИЙ ПОЗВОЛЯЕТ ПРОЦЕССОРУ ПОСЛЕДОВАТЕЛЬНО&lt;br /&gt;
СРАВНИВАТЬ ЕГО СОБСТВЕННЫЙ ПРИОРИТЕТ С ПРИОРИТЕТОМ&lt;br /&gt;
ПРЕРЫВАЮЩЕГО УСТРОЙСТВА И ВЫЯВЛЯТЬ УСТРОЙСТВО С БОЛЕЕ&lt;br /&gt;
ВЫСОКИМ ПРИОРИТЕТОМ, ЧЕМ ПРИОРИТЕТ ПРОЦЕССОРА. ЭТА СИСТЕМА&lt;br /&gt;
МОЖЕТ БЫТЬ ВЛОЖЕННОЙ, Т.Е. ОБРАБОТКА ОДНОГО ПРЕРЫВАНИЯ&lt;br /&gt;
МОЖЕТ БЫТЬ ПРЕРВАНА ПРЕРЫВАНИЕМ С БОЛЕЕ ВЫСОКИМ ПРИОРИТЕТОМ.&lt;br /&gt;
ОБСЛУЖИВАНИЕ УСТРОЙСТВ С НИЗКИМ ПРИОРИТЕТОМ ПРОДОЛЖАЕТСЯ,&lt;br /&gt;
КОГДА ЗАКОНЧЕНО ОБСЛУЖИВАНИЕ УСТРОЙСТВ С БОЛЕЕ ВЫСОКИМ&lt;br /&gt;
ПРИОРИТЕТОМ.&lt;br /&gt;
&lt;br /&gt;
     4.2.3. СЛОВО СОСТОЯНИЯ ПРОЦЕССОРА&lt;br /&gt;
     СЛОВО СОСТОЯНИЯ ПРОЦЕССОРА (PS) ЗАНИМАЕТ ВЕРХНИЙ АДРЕС&lt;br /&gt;
СТРАНИЦЫ ВВОДА-ВЫВОДА. (ИСКЛЮЧАЯ ПРОЦЕССОР ЭВМ &amp;quot;ЭЛЕКТРОНИКА&lt;br /&gt;
60М&amp;quot;, ЕГО PS НЕ АДРЕСУЕТСЯ НА СТРАНИЦЕ ВВОДА-ВЫВОДА.&lt;br /&gt;
МОНИТОР ОБРАЩАЕТСЯ К PS, ИСПОЛЬЗУЯ КОМАНДЫ MTPS И MFPS.) ОНО&lt;br /&gt;
СОДЕРЖИТ ИНФОРМАЦИЮ О ТЕКУЩЕМ СОСТОЯНИИ МАШИНЫ. ЭТА&lt;br /&gt;
ИНФОРМАЦИЯ СОДЕРЖИТ ТЕКУЩИЙ ПРИОРИТЕТ ПРОЦЕССОРА, ТЕКУЩИЙ И&lt;br /&gt;
ПРЕДШЕСТВУЮЩИЙ ОПЕРАЦИОННЫЕ РЕЖИМЫ, КОДЫ УСЛОВИЙ,&lt;br /&gt;
ОПИСЫВАЮЩИХ РЕЗУЛЬТАТЫ ПОСЛЕДНЕЙ ДИРЕКТИВЫ И УКАЗАТЕЛЬ,&lt;br /&gt;
ВЫЗЫВАЮЩИЙ ПРЕРЫВАНИЕ ПОСЛЕ ВЫПОЛНЕНИЯ ДИРЕКТИВЫ&lt;br /&gt;
(ИСПОЛЬЗУЕТСЯ ДЛЯ ОТЛАДКИ ПРОГРАММ).&lt;br /&gt;
     РИС.3 ПОКАЗЫВАЕТ РАЗРЯДЫ PS. РАЗРЯДЫ С 5 ПО 7&lt;br /&gt;
ОПРЕДЕЛЯЮТ ТЕКУЩИЙ ПРИОРИТЕТ. (ЭВМ &amp;quot;ЭЛЕКТРОНИКА 60М&amp;quot; -&lt;br /&gt;
ТОЛЬКО РАЗРЯД 7 ОПРЕДЕЛЯЕТ ПРИОРИТЕТ: 0 ИЛИ 7.) ПРИ&lt;br /&gt;
ИЗМЕНЕНИИ РАЗРЯДОВ, НЕОБХОДИМО ИЗМЕНЯТЬ ПРИОРИТЕТ ЦП. МОЖНО&lt;br /&gt;
ИЗМЕНИТЬ ПРИОРИТЕТ ДО 7, НАПРИМЕР, ДЛЯ ПРЕДОТВРАЩЕНИЯ&lt;br /&gt;
ВОЗНИКНОВЕНИЯ ЛЮБОГО ДРУГОГО ПРЕРЫВАНИЯ. КОГДА НЕОБХОДИМА&lt;br /&gt;
ОБРАБОТКА ОСОБОГО ПРЕРЫВАНИЯ, МОЖНО ИЗМЕНИТЬ ПРИОРИТЕТ&lt;br /&gt;
ПРОЦЕССОРА ДО ПРИОРИТЕТА УСТРОЙСТВА ТАК, ЧТО ТОЛЬКО&lt;br /&gt;
УСТРОЙСТВА С ВЫСШИМ ПРИОРИТЕТОМ БУДУТ ПРЕРЫВАТЬ ЭТУ&lt;br /&gt;
ПОДПРОГРАММУ ОБРАБОТКИ. (ОБСЛУЖИВАЕМОЕ УСТРОЙСТВО ПРЕРВАТЬ&lt;br /&gt;
НЕЛЬЗЯ.) ВООБЩЕ, НЕТ НЕОБХОДИМОСТИ В САМОСТОЯТЕЛЬНОМ ДОСТУПЕ&lt;br /&gt;
К PS, МОЖНО ИСПОЛЬЗОВАТЬ ЗАПРОСЫ СИСТЕМЫ ФОДОС-2, ТАКИЕ, КАК&lt;br /&gt;
 .INTEN И .FORK, ДЛЯ ИЗМЕНЕНИЯ ПРИОРИТЕТА ПРОЦЕССОРА.&lt;br /&gt;
&lt;br /&gt;
15   14 13   12  11 10     8 7     5  4   3   2   1   0 &lt;br /&gt;
--------------------------------------------------------- &lt;br /&gt;
!      !       !   !        !       ! T ! N ! Z ! V ! C !&lt;br /&gt;
--------------------------------------------------------- &lt;br /&gt;
   !       !     !              !     !  \______  ______/&lt;br /&gt;
   !       !     !              !     !         \/ &lt;br /&gt;
   !       !     !              !     !          ! &lt;br /&gt;
   !       !     !              !     !          ! &lt;br /&gt;
   !       !     !              !     !          -&amp;gt; КОДЫ &lt;br /&gt;
   !       !     !              !     !            УСЛОВИЙ &lt;br /&gt;
   !       !     !              !     ! &lt;br /&gt;
   !       !     !              !     ---------&amp;gt; T-РАЗРЯД &lt;br /&gt;
   !       !     !              ! &lt;br /&gt;
   !       !     !              --------------&amp;gt; ПРИОРИТЕТ &lt;br /&gt;
   !       !     !                                      *&lt;br /&gt;
   !       !     -----------------&amp;gt; ОСНОВНОЙ РЕГИСТР SET&lt;br /&gt;
   !       !                                              *&lt;br /&gt;
   !       -------------------------&amp;gt; ПРЕДШЕСТВУЮЩИЙ РЕЖИМ &lt;br /&gt;
   !                                                      *&lt;br /&gt;
   ----------------------------------------&amp;gt; ТЕКУЩИЙ РЕЖИМ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 * - ТОЛЬКО В СИСТЕМЕ XM&lt;br /&gt;
&lt;br /&gt;
                          РИС.3.&lt;br /&gt;
&lt;br /&gt;
     4.3. ВНУТРЕННИЕ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ В&lt;br /&gt;
СРАВНЕНИИ С ДРАЙВЕРАМИ УСТРОЙСТВ&lt;br /&gt;
     Т.К. В СИСТЕМЕ ФОДОС-2 ИСПОЛЬЗУЮТСЯ КАК&lt;br /&gt;
ПРОГРАММИРУЕМЫЙ (НЕПРЕРЫВНЫЙ), ТАК И ДРАЙВЕРНЫЙ (ПРЕРЫВНЫЙ)&lt;br /&gt;
ВВОД-ВЫВОД, КОГДА НЕОБХОДИМО ВКЛЮЧИТЬ НОВОЕ УСТРОЙСТВО В&lt;br /&gt;
СИСТЕМУ, КОТОРОЕ УЖЕ НЕ ПОДДЕРЖИВАЕТСЯ СИСТЕМОЙ, СНАЧАЛА&lt;br /&gt;
НЕОБХОДИМО РЕШИТЬ, ИСПОЛЬЗОВАТЬ ВНУТРЕННЮЮ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ ИЛИ НАПИСАТЬ ДРАЙВЕР. КАКОВО БЫ НИ&lt;br /&gt;
БЫЛО РЕШЕНИЕ, И ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ, И ДРАЙВЕР&lt;br /&gt;
МОГУТ ВКЛЮЧАТЬ КАК ПРОГРАММИРУЕМУЮ СЕКЦИЮ ВВОДА-ВЫВОДА, ТАК&lt;br /&gt;
И ДРАЙВЕРНЫЙ КОД. ОБЫЧНЫЙ ИНТЕРФЕЙС СИСТЕМЫ ФОДОС-2 МЕЖДУ&lt;br /&gt;
МОНИТОРОМ И ПЕРИФЕРИЙНЫМ УСТРОЙСТВОМ ЕСТЬ ДРАЙВЕР УСТРОЙСТВА&lt;br /&gt;
КОТОРЫЙ ВЫПОЛНЕН КАК ФАЙЛ ОБРАЗА ПАМЯТИ НА УСТРОЙСТВЕ&lt;br /&gt;
МАССОВОГО ХРАНЕНИЯ И НАХОДИТСЯ В ПАМЯТИ, ЕСЛИ ОН НЕОБХОДИМ&lt;br /&gt;
ДЛЯ ВЫПОЛНЕНИЯ ВВОДА-ВЫВОДА УСТРОЙСТВА (СМ. РАЗД.2).&lt;br /&gt;
ДРАЙВЕР УСТРОЙСТВА ОБЫЧНО ВКЛЮЧАЕТ В СЕБЯ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
     ЕСЛИ ДЛЯ ИСПОЛЬЗОВАНИЯ ВЫБРАНА ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ, НЕОБХОДИМО РАЗМЕСТИТЬ ПРОГРАММУ В ПАМЯТИ ТАК,&lt;br /&gt;
ЧТОБЫ ПРОГРАММА НАПРЯМУЮ МЕНЯЛА РЕГИСТР СОСТОЯНИЯ И РЕГИСТР&lt;br /&gt;
БУФЕРА ДЛЯ УКАЗАННОГО УСТРОЙСТВА, И ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ МОГЛА ОБСЛУЖИВАТЬ ПРЕРЫВАНИЯ ВНУТРИ СОБСТВЕННЫХ&lt;br /&gt;
КОДОВ, Т.Е. КОДЫ ПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ ВСЕГДА&lt;br /&gt;
ДОЛЖНЫ БЫТЬ В ПАМЯТИ.&lt;br /&gt;
     ЕСЛИ РЕШЕНО ИСПОЛЬЗОВАТЬ ДРАЙВЕР, КОДЫ ПОДПРОГРАММЫ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ ДОЛЖНЫ НАХОДИТЬСЯ В ДРАЙВЕРЕ, А НЕ В&lt;br /&gt;
ПРОГРАММЕ. ВЫХОДИТЬ ИЗ ОСНОВНОЙ ПРОГРАММЫ НЕОБХОДИМО&lt;br /&gt;
ПОСРЕДСТВОМ ЗАПРОСОВ .READ И .WRITE, И МОНИТОР, И ДРАЙВЕР&lt;br /&gt;
ВМЕСТЕ ИНИЦИИРУЮТ ПЕРЕДАЧУ ДАННЫХ, ОБРАБАТЫВАЮТ ПРЕРЫВАНИЯ И&lt;br /&gt;
СООБЩАЮТ ПРОГРАММЕ, КОГДА ПЕРЕДАЧА ЗАВЕРШАЕТСЯ. В СИСТЕМЕ&lt;br /&gt;
SJ ИЛИ ДЛЯ ФОНОВОГО ЗАДАНИЯ В FB ДРАЙВЕР ДОЛЖЕН БЫТЬ&lt;br /&gt;
РЕЗИДЕНТОМ, ТОЛЬКО КОГДА ПРОГРАММА НЕПОСРЕДСТВЕННО НУЖДАЕТСЯ&lt;br /&gt;
В НЕМ ДЛЯ ВЫПОЛНЕНИЯ ВВОДА-ВЫВОДА. (Т.Е. ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
БЫТЬ ВСЯКИЙ РАЗ РЕЗИДЕНТОМ, КОГДА ФАЙЛ ИЛИ КАНАЛ ОТКРЫТЫ.)&lt;br /&gt;
ДЛЯ ОСНОВНОГО И СИСТЕМНОГО ЗАДАНИЯ ДЛЯ FB И XM НЕОБХОДИМО&lt;br /&gt;
ЗАГРУЖАТЬ ДРАЙВЕР, ИСПОЛЬЗУЯ КОМАНДУ МОНИТОРА LOAD) ПЕРЕД&lt;br /&gt;
ВЫПОЛНИЕМ ПРОГРАММЫ, ТАК ЧТО ДРАЙВЕР ВСЕГДА РЕЗИДЕНТ.&lt;br /&gt;
     СЛЕДУЕТ ИСПОЛЬЗОВАТЬ ВНУТРЕННЮЮ ПОДПРОГРАММУ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ ДЛЯ СЕНСОРОВ И УПРАВЛЯЮЩИХ УСТРОЙСТВ, ТАКИХ, КАК&lt;br /&gt;
АНАЛОГО-ЦИФРОВЫЕ ПРЕОБРАЗОВАТЕЛИ. С ПОМОЩЬЮ ДРАЙВЕРОВ&lt;br /&gt;
СЛЕДУЕТ ОБСЛУЖИВАТЬ УСТРОЙСТВА ФАЙЛОВОЙ СТРУКТУРЫ, ТАКИЕ,&lt;br /&gt;
КАК ДИСКИ, ЗА ИСКЛЮЧЕНИЕМ ЖЕСТКИХ ДИСКОВ ВИНЧЕСТЕРСКОГО&lt;br /&gt;
ТИПА. ЭТИМ МЕТОДОМ МОЖНО ОБСЛУЖИВАТЬ МНОГО ПОДСОЕДИНЯЕМОЙ&lt;br /&gt;
АППАРАТУРЫ.&lt;br /&gt;
     ДВУМЯ БОЛЬШИМИ ПРЕИМУЩEСТВАМИ ВНУТРЕННИХ ПОДПРОГРАММ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ ЯВЛЯЮТСЯ СКОРОСТЬ И КОЛИЧЕСТВО&lt;br /&gt;
УПРАВЛЯЮЩЕЙ ИНФОРМАЦИИ. Т.К. МОНИТОР НЕ УЧАСТВУЕТ В&lt;br /&gt;
ПЕРЕДАЧЕ ДАННЫХ, ВНУТРЕННЯЯ ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ МОЖЕТ ЧАСТО ОБРАБАТЫВАТЬ ПРЕРЫВАНИЯ НАДЕЖНЕЕ, ЧЕМ&lt;br /&gt;
ДРАЙВЕРЫ УСТРОЙСТВ. ЕСЛИ СКОРОСТЬ ОБРАБОТКИ ПРЕРЫВАНИЙ НЕ&lt;br /&gt;
ЯВЛЯЕТСЯ ОПРЕДЕЛЯЮЩИМ ФАКТОРОМ ПРОГРАММЫ, МОЖНО ВЫБРАТЬ&lt;br /&gt;
НАПИСАНИЕ ВНУТРЕННЕЙ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ, ДАЖЕ&lt;br /&gt;
ЕСЛИ УСТРОЙСТВО - ДИСК.&lt;br /&gt;
     ВНУТРЕННЯЯ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ИМЕЕТ&lt;br /&gt;
ДОСТУП КО ВСЕМ РЕГИСТРАМ СОСТОЯНИЯ И РЕГИСТРАМ БУФЕРА.&lt;br /&gt;
(ДРАЙВЕР ТОЖЕ ИМЕЕТ ДОСТУП КО ВСЕМ ЭТИМ РЕГИСТРАМ, НО НЕ&lt;br /&gt;
ИМЕЕТ ПРОГРАММА, ИСПОЛЬЗУЮЩАЯ ДРАЙВЕР.) ОНА МОЖЕТ ПЕРЕДАТЬ&lt;br /&gt;
ЧАСТЬ ИНФОРМАЦИИ ПРОГРАММЕ. ЭТО ОБЕСПЕЧИВАЕТ БОЛЬШУЮ&lt;br /&gt;
ГИБКОСТЬ В СПОСОБЕ ПРОГРАММНОГО ВЫЗОВА ПОДПРОГРАММЫ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ И В КОЛИЧЕСТВЕ ИНФОРМАЦИИ, ВОЗВРАЩАЕМОЙ&lt;br /&gt;
ИЗ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
     ТРЕМЯ БОЛЬШИМИ ПРЕИМУЩЕСТВАМИ ИСПОЛЬЗОВАНИЯ ДРАЙВЕРОВ&lt;br /&gt;
ЯВЛЯЕТСЯ ОБЕСПЕЧЕНИЕ НЕЗАВИСИМОСТИ УСТРОЙСТВА ОТ ПРОГРАММЫ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ, ОНИ МОГУТ РАЗДЕЛЯТЬ ВРЕМЯ ПРОЦЕССОРА С ДРУГИМИ&lt;br /&gt;
ПРОЦЕССАМИ И ПРОСТЫ В ИСПОЛЬЗОВАНИИ. ДРАЙВЕРЫ ИМЕЮТ&lt;br /&gt;
СТАНДАРТНЫЙ ПРОТОКОЛ ДЛЯ ПРИСОЕДИНЕНИЯ К МОНИТОРУ СИСТЕМЫ&lt;br /&gt;
ФОДОС-2. ЕСТЬ ТАКЖЕ СТАНДАРТНЫЙ ПРОТОКОЛ ДЛЯ ИНТЕРФЕЙСА&lt;br /&gt;
МЕЖДУ МОНИТОРОМ И ПРОГРАММОЙ, ТАК ЧТО ЛЮБАЯ ПРОГРАММА,&lt;br /&gt;
КОТОРАЯ СОГЛАСОВАНА СО СТАНДАРТАМИ МОНИТОРА, МОЖЕТ&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ДРАЙВЕРЫ. ЭТО ПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ,&lt;br /&gt;
ВСПОМОГАТЕЛЬНЫЕ ПРОГРАММЫ СИСТЕМЫ И ЯЗЫКОВЫЕ ПРОЦЕССОРЫ&lt;br /&gt;
ФОДОС-2 АССЕМБЛЕР, ФОРТРАН И БЕЙСИК. ТАКИМ ОБРАЗОМ, ДРАЙВЕР&lt;br /&gt;
ДЕЛАЕТ НОВОЕ УСТРОЙСТВО ДОСТУПНЫМ БОЛЬШОМУ КОЛИЧЕСТВУ&lt;br /&gt;
ПРОГРАММ БЕЗ СПЕЦИАЛЬНОЙ МОДИФИКАЦИИ. (КРОМЕ ТОГО, ДРАЙВЕР&lt;br /&gt;
ДЛЯ УСТРОЙСТВ ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ ДЕЛАЕТ ФАЙЛОВУЮ&lt;br /&gt;
СИСТЕМУ ФОДОС-2 ПРИМЕНИМОЙ НА УСТРОЙСТВЕ БЕЗ ДОПОЛНИТЕЛЬНЫХ&lt;br /&gt;
ЗАТРАТ.) НАПРОТИВ, ВНУТРЕННЯЯ ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ ДЕЛАЕТ НОВОЕ УСТРОЙСТВО ДОСТУПНЫМ ОДНОЙ&lt;br /&gt;
ПРИКЛАДНОЙ ПРОГРАММЕ.&lt;br /&gt;
     ДРАЙВЕРЫ УСТРОЙСТВ УДОБНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ. ОНИ&lt;br /&gt;
СТАНДАРТНЫ ДЛЯ ОБСЛУЖИВАНИЯ УСТРОЙСТВ ВВОДА-ВЫВОДА,&lt;br /&gt;
ПРОЦЕДУРА ДЛЯ ИХ НАПИСАНИЯ И ИСПОЛЬЗОВАНИЯ ЯСНА И ДОСТУПНА,&lt;br /&gt;
ПОСКОЛЬКУ ФОДОС-2 ПРЕДУСМАТРИВАЕТ ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ ПРИ&lt;br /&gt;
НАПИСАНИИ ДРАЙВЕРОВ; ИМЕЮТСЯ ТАКЖЕ КОМАНДЫ КЛАВИАТУРНОГО&lt;br /&gt;
МОНИТОРА ДЛЯ УСТАНОВКИ ДРАЙВЕРА В ТАБЛИЦУ УСТРОЙСТВ МОНИТОРА&lt;br /&gt;
И ЗАГРУЗКИ В ПАМЯТЬ. КРОМЕ ТОГО, ДРАЙВЕРЫ ПОЗВОЛЯЮТ&lt;br /&gt;
ИЗВЛЕКАТЬ ВЫГОДУ ИЗ ПРОГРАММНЫХ ЗАПРОСОВ МОНИТОРА ДЛЯ&lt;br /&gt;
ВЫПОЛНЕНИЯ ПЕРЕДАЧИ ДАННЫХ. НАКОНЕЦ, ДРАЙВЕР ЭТО ЛИШЬ&lt;br /&gt;
СПОСОБ СОЕДИНЕНИЯ УСТРОЙСТВА С ВИРТУАЛЬНЫМ ЗАДАНИЕМ В&lt;br /&gt;
СИСТЕМЕ XM.&lt;br /&gt;
     РИС.4 ИЛЛЮСТРИРУЕТ РАЗЛИЧИЯ МЕЖДУ ВНУТРЕННЕЙ&lt;br /&gt;
ПОДПРОГРАММОЙ ОБРАБОТКИ ПРЕРЫВАНИЙ И ДРАЙВЕРАМИ.&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!                                                          !&lt;br /&gt;
!                               ----------------------     !&lt;br /&gt;
!                               ! СПЕЦИАЛИЗИРОВАННАЯ !     !&lt;br /&gt;
!                               !     ПРИКЛАДНАЯ     !     !&lt;br /&gt;
!                               !      ПРОГРАММА     !     !&lt;br /&gt;
!                               !- - - - - - - - - - !     !&lt;br /&gt;
!  --------------               !     ВНУТРЕННЯЯ     !     !&lt;br /&gt;
!  ! УСТРОЙСТВО !---------------!     ПОДПРОГРАММА   !     !&lt;br /&gt;
!  --------------               !     ОБРАБОТКИ      !     !&lt;br /&gt;
!                               !     ПРЕРЫВАНИЙ     !     !&lt;br /&gt;
!                               !- - - - - - - - - - !     !&lt;br /&gt;
!                               !                    !     !&lt;br /&gt;
!                               ----------------------     !&lt;br /&gt;
!                                                          !&lt;br /&gt;
!       ВНУТРЕННЯЯ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ       !&lt;br /&gt;
!                                                          !&lt;br /&gt;
!-----------------------------------------------------------&lt;br /&gt;
!                              ---------      ------------ !&lt;br /&gt;
!                              !       !   ---!ПРИКЛАДНАЯ! !&lt;br /&gt;
!                              !       !   !  !ПРОГРАММА ! !&lt;br /&gt;
!                              !       !   !  ------------ !&lt;br /&gt;
!                              !       !   !               !&lt;br /&gt;
!                              !       !   !  ------------ !&lt;br /&gt;
!              --------------  !       !   !--!ВСПОМОГАТ.! !&lt;br /&gt;
!              !            !  !       !   !  !ПРОГРАММА ! !&lt;br /&gt;
!              !   ДРАЙВЕР  !  !       !   !  ------------ !&lt;br /&gt;
!              ! УСТРОЙСТВА !  !       !   !               !&lt;br /&gt;
!------------  !            !  !       !   !  -----------  !&lt;br /&gt;
!!          !  --------------  ! РЕЗИ- !   !--! ФОРТРАН !  !&lt;br /&gt;
!!УСТРОЙСТВО!--!            !--!ДЕНТНЫЙ!---!  -----------  !&lt;br /&gt;
!!          !  !ПОДПРОГРАММА!  !МОНИТОР!   !               !&lt;br /&gt;
!------------  ! ОБРАБОТКИ  !  !       !   !  -----------  !&lt;br /&gt;
!              ! ПРЕРЫВАНИЙ !  !       !   !--!  БЕЙСИК !  !&lt;br /&gt;
!              !            !  !       !   !  -----------  !&lt;br /&gt;
!              !            !  !       !   !               !&lt;br /&gt;
!              --------------  !       !   !  -----------  !&lt;br /&gt;
!                              !       !   !--!АССЕМБЛЕР!  !&lt;br /&gt;
!                              !       !   !  -----------  !&lt;br /&gt;
!                              !       !   !               !&lt;br /&gt;
!                              !       !   !  ------------ !&lt;br /&gt;
!                              !       !   !--!ПРИКЛАДНАЯ! !&lt;br /&gt;
!                              !       !      !ПРОГРАММА ! !&lt;br /&gt;
!                              ---------      -----------  !&lt;br /&gt;
!                                                          !&lt;br /&gt;
!                 ДРАЙВЕР УСТРОЙСТВА                       !&lt;br /&gt;
!                                                          !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
                        РИС.4.&lt;br /&gt;
&lt;br /&gt;
     4.4. КАК ПЛАНИРОВАТЬ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
     НАИБОЛЕЕ ВАЖНОЙ ЧАСТЬЮ НАПИСАНИЯ ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ ЯВЛЯЕТСЯ МОМЕНТ ЕЕ ПЛАНИРОВАНИЯ. НИЖЕ ПРИВЕДЕНО&lt;br /&gt;
РУКОВОДСТВО.&lt;br /&gt;
     1. ИЗУЧИТЬ УСТРОЙСТВО.&lt;br /&gt;
     2. ИЗУЧИТЬ СТРУКТУРУ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
     3. ИЗУЧИТЬ СХЕМУ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
     4. ПРОДУМАТЬ ТРЕБОВАНИЯ К ПРОГРАММЕ.&lt;br /&gt;
     5. ПОДГОТОВИТЬ БЛОК-СХЕМУ ПРОГРАММЫ.&lt;br /&gt;
     6. НАПИСАТЬ КОДЫ.&lt;br /&gt;
     7. ПРОВЕРИТЬ И ОТЛАДИТЬ ПРОГРАММУ.&lt;br /&gt;
&lt;br /&gt;
     4.4.1. ИЗУЧИТЬ УСТРОЙСТВО&lt;br /&gt;
     ЭТОТ ПУНКТ ЯВЛЯЕТСЯ РЕШАЮЩИМ ДЛЯ НАПИСАНИЯ ПРАВИЛЬНО&lt;br /&gt;
РАБОТАЮЩЕЙ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ. НЕОБХОДИМО&lt;br /&gt;
ВНИМАТЕЛЬНО ИЗУЧИТЬ ДОКУМЕНТАЦИЮ К НЕМУ. НЕ ВЗИРАЯ НА&lt;br /&gt;
ФОРМАТ ДОКУМЕНТАЦИИ (БУДЬ ТО РУКОВОДСТВО ИЛИ БРОШЮРА), ОНА&lt;br /&gt;
ДОЛЖНА СОДЕРЖАТЬ СУЩЕСТВЕННУЮ ИНФОРМАЦИЮ, КОТОРАЯ НЕОБХОДИМА&lt;br /&gt;
ДЛЯ ПОДДЕРЖКИ ЕГО СИСТЕМОЙ ФОДОС-2. НЕОБХОДИМО ПОЛУЧИТЬ ЭТУ&lt;br /&gt;
ИНФОРМАЦИЮ.&lt;br /&gt;
     НЕОБХОДИМО ПОНЯТЬ, КАК РАБОТАЕТ УСТРОЙСТВО, В ЧЕМ ОНО&lt;br /&gt;
НУЖДАЕТСЯ И КАК ОНО ОБСЛУЖИВАЕТ ПЕРЕДАЧИ ДАННЫХ. МОЖНО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ СЛЕДУЮЩИЙ ПРОВЕРОЧНЫЙ СПИСОК ДЛЯ УВЕРЕННОСТИ В&lt;br /&gt;
ТОМ, ЧТО ИМЕЕТСЯ ДОСТАТОЧНАЯ ИНФОРМАЦИЯ СПЕЦИФИЧЕСКИХ&lt;br /&gt;
УСТРОЙСТВ ДЛЯ НАПИСАНИЯ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
НЕОБХОДИМО ИЗУЧИТЬ КАЖДЫЙ ВОПРОС, ПРЕЖДЕ ЧЕМ ПИСАТЬ&lt;br /&gt;
ПОДПРОГРАММУ ОБРАБОТКИ ПРЕРЫВАНИЙ. НЕКОТОРЫЕ ИЗ СЛЕДУЮЩИХ&lt;br /&gt;
ВОПРОСОВ НЕПРИМЕНИМЫ КО ВСЕМ ТИПАМ УСТРОЙСТВ: НЕКОТОРЫЕ&lt;br /&gt;
ОТНОСЯТСЯ ДЛЯ БОЛЬШЕГО ЧИСЛА НОСИТЕЛЕЙ, НЕКОТОРЫЕ БОЛЬШЕ&lt;br /&gt;
ОТНОСЯТСЯ К СЕНСОРАМ И КОММУНИКАЦИЯМ. НЕОБХОДИМО ХОРОШО&lt;br /&gt;
РАЗОБРАТЬСЯ В КАЖДОМ ВОПРОСЕ, ЧТОБЫ УВИДЕТЬ, ПОДХОДИТ ЛИ ОН&lt;br /&gt;
К ДАННОМУ УСТРОЙСТВУ.&lt;br /&gt;
 1. ЧТО ТАКОЕ ВЕКТОР ПРЕРЫВАНИЯ УСТРОЙСТВА?&lt;br /&gt;
    НЕОБХОДИМО РЕШИТЬ, ЧТО СДЕЛАТЬ ВЕКТОРОМ ПРЕРЫВАНИЙ,&lt;br /&gt;
    ПРИНЯВ ВО ВНИМАНИЕ КАК КОНФЛИКТ С СУЩЕСТВУЮЩИМИ&lt;br /&gt;
    УСТРОЙСТВАМИ, ПОДДЕРЖИВАЕМЫМИ СИСТЕМОЙ ФОДОС-2, ТАК И&lt;br /&gt;
    КОНФЛИКТ С УСТРОЙСТВАМИ, ПОДДЕРЖИВАЕМЫМИ ДРУГИМИ&lt;br /&gt;
    ОПЕРАЦИОННЫМИ СИСТЕМАМИ, ЕСЛИ ОНИ ИСПОЛЬЗУЮТСЯ. ЕСЛИ&lt;br /&gt;
    ВЕКТОР ВЫБРАН, НЕОБХОДИМО УБЕДИТЬСЯ, ЧТО УСТРОЙСТВО&lt;br /&gt;
    УСТАНОВЛЕНО ПРАВИЛЬНО, И АППАРАТУРА СКАЧЕТ ПО ЭТОМУ&lt;br /&gt;
    АДРЕСУ. В СИСТЕМЕ ФОДОС-2 ИСПОЛЬЗУЮТСЯ ВСЕ ВЕКТОРА ПО&lt;br /&gt;
    АДРЕСАМ НИЖЕ 500, И ИХ НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ КАК ВЕКТОРА&lt;br /&gt;
    ПРЕРЫВАНИЙ. В РАЗД.2 ПРИВОДИТСЯ СПИСОК ВЕКТОРОВ&lt;br /&gt;
    ПЕРИФЕРИЙНЫХ УСТРОЙСТВ.&lt;br /&gt;
 2. ЧТО ТАКОЕ РЕГИСТРЫ СОСТОЯНИЯ?&lt;br /&gt;
    НЕОБХОДИМО ИЗУЧИТЬ, ГДЕ ЭТИ РЕГИСТРЫ РАСПОЛОЖЕНЫ И ЧТО&lt;br /&gt;
    ОЗНАЧАЕТ В НИХ КАЖДЫЙ РАЗРЯД.&lt;br /&gt;
 3. КАКОЙ У УСТРОЙСТВА ПРИОРИТЕТ?&lt;br /&gt;
 4. УСТРОЙСТВО ПРОИЗВОЛЬНОГО ДОСТУПА К ПАМЯТИ ИЛИ&lt;br /&gt;
    ПРОГРАММИРУЕМОЙ ПЕРЕДАЧИ (СЛОВНО- ИЛИ&lt;br /&gt;
    СИМВОЛЬНО-ОРИЕНТИРОВАННОЕ).&lt;br /&gt;
 5. ГДЕ НАХОДЯТСЯ РЕГИСТРЫ БУФЕРОВ ДАННЫХ?&lt;br /&gt;
    НЕОБХОДИМО ИЗУЧИТЬ, ГДЕ РАСПОЛОЖЕНЫ РЕГИСТРЫ И ЧТО&lt;br /&gt;
    ОЗНАЧАЮТ РАЗРЯДЫ В КАЖДОМ СЛУЧАЕ.&lt;br /&gt;
 6. КАКОВЫ КОДЫ ДЛЯ ТИПИЧНЫХ ОПЕРАЦИЙ?&lt;br /&gt;
    НЕОБХОДИМО ИЗУЧИТЬ, КАК ИНИЦИИРОВАТЬ ЛЮБУЮ ОПЕРАЦИЮ,&lt;br /&gt;
    МАНИПУЛИРУЯ РАЗРЯДАМИ РЕГИСТРОВ УСТРОЙСТВА. ДРАЙВЕРЫ&lt;br /&gt;
    УСТРОЙСТВ ДОЛЖНЫ ВЫПОЛНЯТЬ ОПЕРАЦИИ ЧТЕНИЯ, ЗАПИСИ,&lt;br /&gt;
    ПОИСКА И СБРОСА.&lt;br /&gt;
 7. КОГДА ПРОИСХОДИТ ПРЕРЫВАНИЕ УСТРОЙСТВА?&lt;br /&gt;
    ОДНИ УСТРОЙСТВА ПРЕРЫВАЮТСЯ ДЛЯ КАЖДОГО СИМВОЛА, ДРУГИЕ&lt;br /&gt;
    ОРИЕНТИРУЮТСЯ НА СЛОВА, БЛОКИ ИЛИ ПАКЕТЫ. НЕКОТОРЫЕ&lt;br /&gt;
    УСТРОЙСТВА ПРЕРЫВАЮТСЯ ДВАЖДЫ ДЛЯ ОПРЕДЕЛЕННЫХ ОПЕРАЦИЙ,&lt;br /&gt;
    ТАКИХ, КАК ПОИСК ИЛИ СБРОС ПРИВОДА. НЕОБХОДИМО ИСКАТЬ&lt;br /&gt;
    ВЫХОД, ЕСЛИ УСТРОЙСТВО ДЕЛАЕТ ЭТО, И ПЛАНИРОВАТЬ&lt;br /&gt;
    ЗАРАНЕЕ, КАК БУДЕТ ПРИНИМАТЬСЯ В РАСЧЕТ ЭТА ИНФОРМАЦИЯ&lt;br /&gt;
    ПОЗЖЕ.&lt;br /&gt;
 8. КАКОЙ ПРИВОД ЯВЛЯЕТСЯ ОСНОВНЫМ ДЛЯ ПЕРЕДАЧИ ДАННЫХ?&lt;br /&gt;
    ЭТО, КОНЕЧНО, ОТНОСИТСЯ К ПРЕДЫДУЩЕМУ ВОПРОСУ, НО&lt;br /&gt;
    НЕОБХОДИМО ОПРЕДЕЛИТЬ, КАК ПОСЫЛАЮТСЯ ЗАПРОСЫ&lt;br /&gt;
    ВВОДА-ВЫВОДА В УСТРОЙСТВО: БАЙТАМИ, СЛОВАМИ ИЛИ&lt;br /&gt;
    БЛОКАМИ. ЕСЛИ, НАПРИМЕР, ПРОГРАММА ОПЕРИРУЕТ СЛОВАМИ, А&lt;br /&gt;
    УСТРОЙСТВО ОРИЕНТИРОВАНО НА СИМВОЛЫ, НЕОБХОДИМО&lt;br /&gt;
    ПРЕОБРАЗОВАТЬ СЛОВА В БАЙТЫ В ПОДПРОГРАММЕ ОБРАБОТКИ.&lt;br /&gt;
 9. УСТРОЙСТВО НУЖДАЕТСЯ В ПОЛОЖИТЕЛЬНОМ ИЛИ ОТРИЦАТЕЛЬНОМ&lt;br /&gt;
    СЧЕТЧИКЕ БАЙТОВ?&lt;br /&gt;
    НЕКОТОРЫМ УСТРОЙСТВАМ ТРЕБУЕТСЯ ОТРИЦАТЕЛЬНЫЙ СЧЕТЧИК&lt;br /&gt;
    БАЙТОВ ИЛИ СЛОВ. ЕСЛИ ДАННОЕ УСТРОЙСТВО - ОДНО ИЗ НИХ,&lt;br /&gt;
    НЕОБХОДИМО СДЕЛАТЬ СЧЕТЧИК БАЙТОВ (СЛОВ) В ПОДПРОГРАММЕ&lt;br /&gt;
    ОБРАБОТКИ ПРЕРЫВАНИЙ ОТРИЦАТЕЛЬНЫМ.&lt;br /&gt;
10. КАКОВА СТРУКТУРА УСТРОЙСТВА, ЕГО ГЕОМЕТРИЯ?&lt;br /&gt;
    ЕСЛИ УСТРОЙСТВО - ДИСК, НЕОБХОДИМО РАЗОБРАТЬСЯ, КАКОВА&lt;br /&gt;
    СТРУКТУРА ЦИЛИНДРОВ, ДОРОЖЕК И СЕКТОРОВ, ОПРЕДЕЛИТЬ ИХ&lt;br /&gt;
    РАЗМЕР, ВЫЯСНИТЬ, ТРЕБУЕТ ЛИ УСТРОЙСТВО ЧЕРЕДОВАНИЯ&lt;br /&gt;
    ЗАПИСИ, И, ЕСЛИ ДА, ТО ИЗУЧИТЬ, КАК ОПТИМИЗИРОВАТЬ&lt;br /&gt;
    СКОРОСТЬ ЗАПИСИ. (ЧЕРЕДОВАНИЕ ОПИСЫВАЕТ ПРОЦЕСС ЗАПИСИ&lt;br /&gt;
    ДАННЫХ НА ВРАЩАЮЩЕЕСЯ УСТРОЙСТВО, КОТОРОЕ ТРЕБУЕТ&lt;br /&gt;
    ПРОГРАММНОГО ВМЕШАТЕЛЬСТВА МЕЖДУ СЕКТОРАМИ. ДИСК&lt;br /&gt;
    ВРАЩАЕТСЯ ПОСТОЯННО, ДАННЫЕ ЗАПИСЫВАЮТСЯ В ОДИН СЕКТОР,&lt;br /&gt;
    ПРОГРАММА ВМЕШИВАЕТСЯ, КАК ТОЛЬКО МИНУЕТ СМЕЖНЫЙ СЕКТОР,&lt;br /&gt;
    ТОГДА СЛЕДУЮЩИЕ ДАННЫЕ ЗАПИСЫВАЮТСЯ В СЛЕДУЮЩИЙ&lt;br /&gt;
    ИМЕЮЩИЙСЯ СЕКТОР.)&lt;br /&gt;
11. КАКОВ МЕХАНИЗМ БУФЕРИЗАЦИИ?&lt;br /&gt;
    НЕКОТОРЫЕ УСТРОЙСТВА ПЕРЕДАЮТ ДАННЫЕ ПРОГРАММЕ ПО ОДНОМУ&lt;br /&gt;
    СИМВОЛУ ЗА РАЗ. ДРУГИЕ СОБИРАЮТ ДАННЫЕ ВО ВНУТРЕННИЙ&lt;br /&gt;
    БУФЕР ИЛИ ПЕРЕДАЮТ ИХ ПАКЕТАМИ. НЕОБХОДИМО РЕШИТЬ, КАК&lt;br /&gt;
    БУФЕРИЗОВАТЬ ДАННЫЕ В ПРОГРАММЕ, УБЕДИТЬСЯ, ЧТО РАЗМЕР&lt;br /&gt;
    ОБЛАСТИ, ОТВЕДЕННОЙ ПОД БУФЕР, ДОСТАТОЧНО ВЕЛИК.&lt;br /&gt;
12. КАК ВЫПОЛНЯТЬ ВЫЧИСЛЕНИЕ АДРЕСА ДАННЫХ НА УСТРОЙСТВЕ?&lt;br /&gt;
    ЭТО ОТНОСИТСЯ К СТРУКТУРЕ УСТРОЙСТВА. НЕОБХОДИМО&lt;br /&gt;
    ИЗУЧИТЬ УСТРОЙСТВО И ОПРЕДЕЛИТЬ, КАК ИСКАТЬ НУЖНЫЕ&lt;br /&gt;
    ДАННЫЕ. НОМЕРА БЛОКОВ ДОЛЖНЫ БЫТЬ ПРЕОБРАЗОВАНЫ В&lt;br /&gt;
    СПЕЦИАЛЬНЫЕ АДРЕСА УСТРОЙСТВА. (НЕКОТОРЫЕ ПРОЦЕССОРЫ НЕ&lt;br /&gt;
    ИМЕЮТ ИНСТРУКЦИЙ УМНОЖЕНИЯ И ДЕЛЕНИЯ.)&lt;br /&gt;
13. КАКИЕ СОБСТВЕННЫЕ ОПЕРАЦИИ ТРЕБУЮТСЯ УСТРОЙСТВУ?&lt;br /&gt;
    НЕКОТОРЫМ УСТРОЙСТВАМ ТРЕБУЕТСЯ ВЫПОЛНИТЬ СБРОС В&lt;br /&gt;
    НАЧАЛЬНОЕ СОСТОЯНИЕ ПЕРЕД ПОВТОРЕНИЕМ, ДРУГИМ - ЧТОБЫ&lt;br /&gt;
    УСТРОЙСТВО БЫЛО ДОСТУПНЫМ ИЛИ ЧТОБЫ ЗАПОЛНЕНИЕ ДИСКА&lt;br /&gt;
    БЫЛО ГАРАНТИРОВАНО ПЕРЕД ВЫПОЛНЕНИЕМ ЛЮБОЙ ОПЕРАЦИИ НА&lt;br /&gt;
    НЕМ. НЕОБХОДИМО, НАПРИМЕР, ДЕЛАТЬ СБРОС В НАЧАЛЬНОЕ&lt;br /&gt;
    СОСТОЯНИЕ ПОСЛЕ НЕЗАВЕРШЕННОГО ПОИСКА ИЛИ ОШИБКИ&lt;br /&gt;
    ПРИВОДА.&lt;br /&gt;
14. КАК ОБСЛУЖИВАТЬ ОШИБКИ И УСЛОВИЯ ИСКЛЮЧЕНИЯ?&lt;br /&gt;
    СНАЧАЛА НЕОБХОДИМО РЕШИТЬ, КАКИЕ ОШИБКИ БУДУТ&lt;br /&gt;
    НЕВОССТАНОВИМЫМИ, И ПЕРЕДАЧА ДОЛЖНА БЫТЬ ПРЕЖДЕВРЕМЕННО&lt;br /&gt;
    ПРЕРВАНА, И КАКИЕ ОШИБКИ ВОССТАНОВИМЫ, И ДОЛЖНО БЫТЬ&lt;br /&gt;
    ПОВТОРЕНИЕ ПЕРЕДАЧИ. ОБЫЧНЫЕ ВОССТАНОВИМЫЕ ОШИБКИ:&lt;br /&gt;
    ОШИБКИ КОНТРОЛЬНОЙ СУММЫ, ОШИБКИ ЗАПАЗДЫВАНИЯ ДАННЫХ,&lt;br /&gt;
    ВРЕМЕННЫЕ ОШИБКИ. НЕОБХОДИМО РЕШИТЬ, СКОЛЬКО ВРЕМЕНИ&lt;br /&gt;
    ПОВТОРЯТЬ ПЕРЕДАЧУ ДЛЯ ВОССТАНОВИМЫХ ОШИБОК И КАК&lt;br /&gt;
    ОБСЛУЖИВАТЬ УСЛОВИЯ НЕВОССТАНОВИМЫХ ОШИБОК.&lt;br /&gt;
15. НА ЧТО ОБРАТИТЬ ВНИМАНИЕ ПРИ ПРЕЖДЕВРЕМЕННОМ ПРЕРЫВАНИИ?&lt;br /&gt;
    НЕОБХОДИМО ВЫЯСНИТЬ, ОТНОСИТЕЛЬНО БЫСТРОЕ ИЛИ МЕДЛЕННОЕ&lt;br /&gt;
    УСТРОЙСТВО. НЕДОПУСТИМО ИСПОЛЬЗОВАНИЕ ОЧИСТКИ&lt;br /&gt;
    КОНТРОЛЛЕРА, ЕСЛИ ТОЛЬКО ОДИН ПРИВОД ДВУХПРИВОДНОГО&lt;br /&gt;
    КОНТРОЛЛЕРА ЗАТРАГИВАЕТСЯ В РЕЗУЛЬТАТЕ ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
    ПРЕРЫВАНИЯ ПРОГРАММЫ, Т.К. ЭТО МОЖЕТ ПОМЕШАТЬ РАБОТЕ СО&lt;br /&gt;
    ВТОРЫМ ПРИВОДОМ. ТАКОЕ ЖЕ ВНИМАНИЕ СТОИТ УДЕЛИТЬ&lt;br /&gt;
    ДВУХПОРТОВЫМ УСТРОЙСТВАМ.&lt;br /&gt;
&lt;br /&gt;
     4.4.2. ПОДГОТОВКА БЛОК-СХЕМЫ ПРОГРАММЫ&lt;br /&gt;
     МНОГИЕ ПРОГРАММИСТЫ ГОТОВЯТ БЛОК-СХЕМУ ПОСЛЕ НАПИСАНИЯ&lt;br /&gt;
ПРОГРАММЫ ИЛИ СОВЕРШЕННО ЕЮ ПРЕНЕБРЕГАЮТ. ОДНАКО БЛОК-СХЕМА&lt;br /&gt;
МОЖЕТ ПОМОЧЬ НАЙТИ ЛОГИЧЕСКИЕ НЕТОЧНОСТИ И ОШИБКИ. К&lt;br /&gt;
СОЖАЛЕНИЮ, БЛОК-СХЕМА НЕ ОКАЖЕТ БОЛЬШОЙ ПОМОЩИ В УСЛОВИЯХ&lt;br /&gt;
КОНКУРЕНЦИИ ЗАДАНИЙ. (УСЛОВИЯ ТАКОГО РОДА - СИТУАЦИЯ, В&lt;br /&gt;
КОТОРОЙ ДВА ИЛИ БОЛЕЕ ПРОЦЕССОВ ПЫТАЮТСЯ МОДИФИЦИРОВАТЬ&lt;br /&gt;
СТРУКТУРУ ОБЩИХ ДАННЫХ ОДНОВРЕМЕННО; В РЕЗУЛЬТАТЕ,&lt;br /&gt;
СТРУКТУРА ДАННЫХ РАЗРУШАЕТСЯ, И НУЖНО ИДТИ НА КОМПРОМИСС.&lt;br /&gt;
ОН МОЖЕТ БЫТЬ НАЙДЕН ПОСРЕДСТВОМ ПРЕРЫВАНИЯ УСТРОЙСТВА, ПОКА&lt;br /&gt;
ВЫПОЛНЯЕТСЯ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ, БЛАГОДАРЯ&lt;br /&gt;
ИЗМЕНЕННОМУ ПРИОРИТЕТУ ПРОЦЕССОРА.)&lt;br /&gt;
     ПРИ ПРОГНОЗИРОВАНИИ ПРОГРАММЫ НЕОБХОДИМО ВНИМАТЕЛЬНО&lt;br /&gt;
ИССЛЕДОВАТЬ КАЖДЫЙ ШАГ: НЕОБХОДИМО ИМЕТЬ В ВИДУ, ЧТО МОЖЕТ&lt;br /&gt;
СЛУЧИТЬСЯ, ЕСЛИ ПРЕРЫВАНИЯ БУДУТ ПРОИСХОДИТЬ В КАЖДОЙ&lt;br /&gt;
ДИРЕКТИВЕ.&lt;br /&gt;
     НЕОБХОДИМО ПОТРАТИТЬ ДОСТАТОЧНОЕ КОЛИЧЕСТВО ВРЕМЕНИ ДЛЯ&lt;br /&gt;
ОЧИСТКИ И ПРЯМОГО ОБСЛУЖИВАНИЯ УСЛОВИЯ ОШИБКИ; ЕСЛИ&lt;br /&gt;
ПРОГРАММА ХОРОШО ОБСЛУЖИВАЕТ УСЛОВИЯ ОШИБКИ, ТО В НОРМАЛЬНОМ&lt;br /&gt;
СОСТОЯНИИ ПРОГРАММА РАБОТАЕТ ТАКЖЕ ХОРОШО.&lt;br /&gt;
&lt;br /&gt;
     4.4.3. НАПИСАНИЕ КОДОВ&lt;br /&gt;
     МОЖНО ЗАИМСТВОВАТЬ КОДЫ ИЗ ДРУГИХ ПОДПРОГРАММ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ. НЕОБХОДИМО НАЧАТЬ С ОБЩИХ ЧАСТЕЙ, ЗАТЕМ&lt;br /&gt;
ДОБАВИТЬ ДЕТАЛИ ДЛЯ ПОДГОНКИ К СПЕЦИФИЧЕСКОМУ УСТРОЙСТВУ.&lt;br /&gt;
КОГДА КОДЫ НАПИСАНЫ, НЕОБХОДИМО ПРОВЕРИТЬ ЛОГИКУ,&lt;br /&gt;
ПРОТРАНСЛИРОВАТЬ, ПРОВЕРИТЬ И ОТЛАДИТЬ.&lt;br /&gt;
&lt;br /&gt;
     4.4.4. ПРОВЕРКА И ОТЛАДКА&lt;br /&gt;
     ПРОВЕРКА ПОДПРОГРАММЫ С ВНУТРЕННЕЙ ОБРАБОТКОЙ&lt;br /&gt;
ПРЕРЫВАНИЙ - ПОПЫТКА ВЫПОЛНИТЬ ЕЕ. ЕСЛИ ПОДПРОГРАММА&lt;br /&gt;
СОСТАВЛЕНА ПРАВИЛЬНО, ОНА БУДЕТ СПОСОБНА СЧИТЫВАТЬ И&lt;br /&gt;
ЗАПИСЫВАТЬ ДАННЫЕ ТОЧНО, БЕЗ ПОТЕРИ НЕКОТОРЫХ ДАННЫХ И БУДЕТ&lt;br /&gt;
ПРАВИЛЬНО ОБСЛУЖИВАТЬ УСЛОВИЯ ОШИБКИ. ЕСЛИ ОБНАРУЖИЛИСЬ&lt;br /&gt;
ОШИБКИ, НЕОБХОДИМО СВЯЗАТЬ ПОДПРОГРАММУ С ODT (НЕ VDT) И&lt;br /&gt;
ПОПРОБОВАТЬ ВЫПОЛНИТЬ ЕЕ ШАГ ЗА ШАГОМ. СДЕЛАТЬ&lt;br /&gt;
КОРРЕКТИРОВКУ ПОДПРОГРАММЫ, СНОВА ОТТРАНСЛИРОВАТЬ И СНОВА&lt;br /&gt;
ВЫПОЛНИТЬ ЕЕ, ЕСЛИ НЕОБХОДИМО.&lt;br /&gt;
&lt;br /&gt;
     4.5. СТРУКТУРА ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
     ЭТОТ ПОДРАЗДЕЛ ДАЕТ НАБРОСОК ОБЩЕЙ СТРУКТУРЫ ВНУТРЕННЕЙ&lt;br /&gt;
ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ. ПОЛЬЗОВАТЕЛЬ ДОЛЖЕН&lt;br /&gt;
ВЫБРАТЬ ИЗ НЕЕ ЛИШЬ ТО, ЧТО ПРИМЕНИМО К ЕГО СЛУЧАЮ.&lt;br /&gt;
&lt;br /&gt;
     4.5.1. ЗАЩИТА ВЕКТОРОВ: ЗАПРОС .PROTECT&lt;br /&gt;
     В СИСТЕМАХ FB И XM, ГДЕ ВЫПОЛНЯЕТСЯ БОЛЕЕ ОДНОГО&lt;br /&gt;
ЗАДАНИЯ, СЛЕДУЕТ ИСПОЛЬЗОВАТЬ ПРОГРАММНЫЙ ЗАПРОС .PROTECT&lt;br /&gt;
ДЛЯ ЗАЩИТЫ ВЕКТОРОВ ПРЕРЫВАНИЯ ПЕРЕД ЗАСЫЛКОЙ В НИХ&lt;br /&gt;
ЗНАЧЕНИЙ. ЭТО ГАРАНТИРУЕТ, ЧТО ВЕКТОР УЖЕ НЕ БУДЕТ&lt;br /&gt;
ОТНОСИТЬСЯ К МОНИТОРНОМУ ИЛИ ДРУГОМУ ЗАДАНИЮ, ОБЕСПЕЧИВАЕТ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЬСКОМУ ЗАДАНИЮ СОБСТВЕННОСТЬ ВЕКТОРА И ЗАЩИЩАЕТ&lt;br /&gt;
ЕГО ОТ ВМЕШАТЕЛЬСТВА ДРУГОГО ЗАДАНИЯ ИЛИ МОНИТОРА ПУТЕМ&lt;br /&gt;
УСТАНОВКИ РАЗРЯДОВ В КАРТЕ ЗАЩИТЫ ПАМЯТИ (РАЗД.3 ДЕТАЛЬНО&lt;br /&gt;
ОПИСЫВАЕТ КАРТУ ЗАЩИТЫ НИЖНЕЙ ПАМЯТИ.) ПОЛЬЗОВАТЕЛЬСКОМУ&lt;br /&gt;
ЗАДАНИЮ НЕОБХОДИМО НЕМЕДЛЕННО ВЫХОДИТЬ В СЛУЧАЕ ОШИБКИ&lt;br /&gt;
ЗАПРОСА .PROTECT. ЗАДАНИЕ НЕ ДОЛЖНО ИМЕТЬ ДОСТУПА К&lt;br /&gt;
ВЕКТОРАМ, КОТОРЫЕ ВСЕГДА ИСПОЛЬЗУЮТСЯ. ПРИМЕР ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
ЗАПРОСА .PROTECT ПРИВЕДЕН В ПОДРАЗДЕЛЕ 4.6. СМ. В [1]&lt;br /&gt;
ФОРМАТ ПРОГРАММНОГО ЗАПРОСА .PROTECT.&lt;br /&gt;
     НЕСМОТРЯ НА ТО, ЧТО ЗАПРОС .PROTECT НЕ РАБОТАЕТ В&lt;br /&gt;
СИСТЕМЕ SJ, ЕГО ЦЕЛЕСООБРАЗНО ИСПОЛЬЗОВАТЬ В ПРОГРАММЕ.&lt;br /&gt;
ЗАПРОС НЕ ОКАЗЫВАЕТ ДЕЙСТВИЯ, НЕМЕДЛЕННО ВОЗВРАЩАЮЩЕГО В&lt;br /&gt;
ПРОГРАММУ, ТЕМ НЕ МЕНЕЕ ИСПОЛЬЗОВАНИЕ ЕГО УПРОЩАЕТ ПОЗЖЕ&lt;br /&gt;
ПЕРЕХОД, ЕСЛИ ПРОГРАММА БУДЕТ ВЫПОЛНЯТЬСЯ В СРЕДЕ FB.&lt;br /&gt;
&lt;br /&gt;
     4.5.2. УСТАНОВКА ВЕКТОРА ПРЕРЫВАНИЯ&lt;br /&gt;
     ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА ПОЗАБОТИТЬСЯ О ПЕРЕСЫЛКЕ&lt;br /&gt;
АДРЕСА ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ В ПЕРВОЕ СЛОВО&lt;br /&gt;
ВЕКТОРА ПРЕРЫВАНИЯ. СИСТЕМА ФОДОС-2 ТРЕБУЕТ, ЧТОБЫ ВСЕ&lt;br /&gt;
ПРЕРЫВАНИЯ ПОДНИМАЛИ ПРИОРИТЕТ ПРОЦЕССОРА ДО 7, ПОЭТОМУ&lt;br /&gt;
ПРОГРАММА ПОЛЬЗОВАТЕЛЯ ДОЛЖНА ЗАПОЛНИТЬ ВТОРОЕ СЛОВО ВЕКТОРА&lt;br /&gt;
ПРЕРЫВАНИЯ 7-КОЙ, НОВЫМ ПРИОРИТЕТОМ.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
        XXVEC=220 ;ОПРЕДЕЛЯЕТСЯ ВЕКТОР&lt;br /&gt;
        PR7=340 ;ПРИОРИТЕТ 7 РАВЕН 340&lt;br /&gt;
;&lt;br /&gt;
;ТОЧКОЙ ВХОДА ДЛЯ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
;ЯВЛЯЕТСЯ ISREP:&lt;br /&gt;
;&lt;br /&gt;
        .PROTECT #AREA,#XXVEC ;ЗАЩИТА ВЕКТОРА&lt;br /&gt;
        BCS NOVEC ;ВЕКТОР ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
        MOV #ISREP,@#XXVEC ;УСТАНОВКА ПЕРВОГО СЛОВА&lt;br /&gt;
        MOV #PR7,@#XXVEC ;УСТАНОВКА ВТОРОГО СЛОВА&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПОКАЗАН ТИПИЧНЫЙ СЛУЧАЙ УСТАНОВКИ&lt;br /&gt;
ДВУХСЛОВНОГО ВЕКТОРА ПРЕРЫВАНИЯ. ПРОГРАММЕ НЕ СЛЕДУЕТ&lt;br /&gt;
УСТАНАВЛИВАТЬ ВЕКТОР, ПОКА ОН ЗАЩИЩЕН. ЗДЕСЬ XX - ИМЯ&lt;br /&gt;
УСТРОЙСТВА И 220 И 222 - АДРЕСА ВЕКТОРОВ ПРЕРЫВАНИЯ.&lt;br /&gt;
&lt;br /&gt;
     4.5.3. ЧИСТАЯ ОСТАНОВКА: ЗАПРОС .DEVICE&lt;br /&gt;
     ПРОГРАММНЫЙ ЗАПРОС .DEVICE ЯВЛЯЕТСЯ МНОГОЗНАЧИТЕЛЬНЫМ&lt;br /&gt;
ЛИШЬ В СИСТЕМАХ XB И XM. ЕГО ПРЕДНАЗНАЧЕНИЕ - ЗАМЕНА&lt;br /&gt;
УСТРОЙСТВА (ПОСРЕДСТВОМ ОЧИСТКИ ЕГО РАЗРЯДА РАЗРЕШЕНИЯ&lt;br /&gt;
ПРЕРЫВАНИЯ), ЕСЛИ ВЫПОЛНЯЮЩАЯСЯ ПРОГРАММА ПРЕЖДЕВРЕМЕННО&lt;br /&gt;
ПРЕРВАНА ПО СУ/C ИЛИ ЕСЛИ ПРОГРАММА ВЫПОЛНЕНА. (ФОРМАТ&lt;br /&gt;
ПРОГРАММНОГО ЗАПРОСА .DEVICE СМ. В [1], А В ПОДРАЗДЕЛЕ&lt;br /&gt;
4.6 - ПРИМЕР ИСПОЛЬЗОВАНИЯ ЗАПРОСА .DEVICE.)&lt;br /&gt;
     ЭТОТ ЗАПРОС НЕОБЯЗАТЕЛЕН В ОБЛАСТИ SJ. ОДНАКО,&lt;br /&gt;
ЦЕЛЕСООБРАЗНО ЕГО ИСПОЛЬЗОВАТЬ В ПОЛЬЗОВАТЕЛЬСКОЙ ПРОГРАММЕ.&lt;br /&gt;
ЗАПРОС НЕ ПРЕДПРИНИМАЕТ ДЕЙСТВИЙ ВОЗВРАЩЕНИЯ НЕПОСРЕДСТВЕННО&lt;br /&gt;
В ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ, ОДНАКО ИСПОЛЬЗОВАНИЕ ЕГО УПРОЩАЕТ&lt;br /&gt;
ПОЗЖЕ ПЕРЕХОД, ЕСЛИ ПРОГРАММA БУДЕТ ВЫПОЛНЯТЬСЯ В ОБЛАСТИ&lt;br /&gt;
FB.&lt;br /&gt;
     ЕСЛИ ПРОГРАММА ВЫПОЛНЯЕТСЯ В СРЕДЕ SJ, МОНИТОР ОЖИДАЕТ&lt;br /&gt;
ОКОНЧАНИЯ ЛЮБОГО ВВОДА-ВЫВОДА, ЕСЛИ ИМЕЕТСЯ АКТИВНАЯ ОЧЕРЕДЬ&lt;br /&gt;
НЕВЫПОЛНЕННЫХ ЭЛЕМЕНТОВ. В СРЕДЕ FB, КОГДА ПРОГРАММА&lt;br /&gt;
ВЫПОЛНЯЕТСЯ, МОНИТОР НЕ ТОЛЬКО ОЖИДАЕТ, ЕСЛИ ИМЕЕТСЯ&lt;br /&gt;
АКТИВНАЯ ОЧЕРЕДЬ НЕВЫПОЛНЕННЫХ ЭЛЕМЕНТОВ, НО И ВХОДИТ В&lt;br /&gt;
ТОЧКУ ВХОДА ДРАЙВЕРА УСТРОЙСТВА В ТОМ МЕСТЕ, ГДЕ ОН БЫЛ&lt;br /&gt;
ПРЕЖДЕВРЕМЕННО ПРЕРВАН. ЕСЛИ ЗАДАНИЕ БЫЛО ПРЕЖДЕВРЕМЕННО&lt;br /&gt;
ПРЕРВАНО ПО СУ/C ИЛИ ЕСЛИ ОНО ВЫШЛО НА ЗАПРОС .HRESET,&lt;br /&gt;
МОНИТОР SJ ВЫПОЛНЯЕТ АППАРАТНУЮ ОЧИСТКУ ДЛЯ ПРЕКРАЩЕНИЯ&lt;br /&gt;
ВВОДА-ВЫВОДА НА ЛЮБОМ УСТРОЙСТВЕ. ЕСЛИ ДЛЯ ДАННОГО&lt;br /&gt;
УСТРОЙСТВА НАЗНАЧЕНА АППАРАТУРА, НЕОБХОДИМО УБЕДИТЬСЯ, ЧТО&lt;br /&gt;
ПРОИЗОШЕЛ ЧИСТЫЙ ОСТАНОВ, КОГДА ПОЛУЧЕН СИГНАЛ ИНИЦИАЛИЗАЦИИ&lt;br /&gt;
КАНАЛА.&lt;br /&gt;
&lt;br /&gt;
     4.5.4. ПОНИЖЕНИЕ ПРИОРИТЕТА ПРОЦЕССОРА: ЗАПРОС .INTEN&lt;br /&gt;
     КОГДА ВОЗНИКАЕТ ПРЕРЫВАНИЕ, УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ&lt;br /&gt;
ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ, АДРЕС КОТОРОЙ НАХОДИТСЯ В&lt;br /&gt;
ПЕРВОМ СЛОВЕ ВЕКТОРА ПРЕРЫВАНИЯ. В ЭТОЙ ТОЧКЕ ПРИОРИТЕТ&lt;br /&gt;
ПРОЦЕССОРА РАВЕН 7, И ВСЕ ОСТАЛЬНЫЕ ПРЕРЫВАНИЯ ЗАПРЕЩАЮТСЯ.&lt;br /&gt;
ЕСЛИ ТРЕБУЕТСЯ ЗАПРЕТИТЬ НЕКОТОРЫЕ ПРЕРЫВАНИЯ, ЭТО ОТНОСИТСЯ&lt;br /&gt;
К ЭТОМУ КОДУ. ОН ДОЛЖЕН БЫТЬ КРАТОК И ЭФФЕКТИВЕН И НЕ&lt;br /&gt;
ДОЛЖЕН РАЗРУШАТЬ СОДЕРЖИМОЕ РЕГИСТРОВ. ЕСЛИ ПОДПРОГРАММА&lt;br /&gt;
НУЖДАЕТСЯ В ИСПОЛЬЗОВАНИИ РЕГИСТРОВ, ОНА ДОЛЖНА СОХРАНЯТЬ ИХ&lt;br /&gt;
СОДЕРЖИМОЕ И ВОССТАНАВЛИВАТЬ ИХ ПЕРЕД ВЫХОДОМ ИЗ ЗАПРОСА&lt;br /&gt;
.INTEN. ЕСЛИ КОД ВЫПОЛНЯЕТСЯ НА ПРИОРИТЕТЕ 7 СЛИШКОМ ДОЛГО,&lt;br /&gt;
ПРОИЗОЙДЕТ ПРЕРЫВАНИЕ СИСТЕМЫ В СКРЫТОМ ВИДЕ (МЕРА, КОТОРОЙ&lt;br /&gt;
СИСТЕМА БЫСТРО ОТВЕЧАЕТ НА ПРЕРЫВАНИЕ). ХОРОШЕЙ БУДЕТ&lt;br /&gt;
ОБРАБОТКА НЕ БОЛЕЕ 50 МИКРОСЕКУНД НА ПРИОРИТЕТЕ 7.&lt;br /&gt;
     СЛЕДУЕТ ПОНИЖАТЬ ПРИОРИТЕТ ПРОЦЕССОРА ДЛЯ УСТРОЙСТВА&lt;br /&gt;
КАК ТОЛЬКО ВОЗМОЖНО. ЭТО ЗНАЧИТ, ЧТО ТОЛЬКО УСТРОЙСТВА С&lt;br /&gt;
ВЫСОКИМ ПРИОРИТЕТОМ БУДУТ СПОСОБНЫ ПРЕРВАТЬ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ ДАННОГО УСТРОЙСТВА. ДЛЯ ПОНИЖЕНИЯ&lt;br /&gt;
ПРИОРИТЕТА НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ЗАПРОС .INTEN. УКАЗАТЕЛЬ&lt;br /&gt;
СТЕКА И ОБЩИЕ РЕГИСТРЫ R0-R5 ДОЛЖНЫ СОДЕРЖАТЬ ТЕ ЖЕ&lt;br /&gt;
ЗНАЧЕНИЯ, КОТОРЫЕ УЖЕ СОДЕРЖАЛИСЬ ТАМ ДО ВЫЗОВА ЗАПРОСА&lt;br /&gt;
.INTEN, КОГДА ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ПОКИДАЕТ&lt;br /&gt;
ЗАПРОС .INTEN. ЕСЛИ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ЗАПИСАНА НЕ В ПОЗИЦИОННО-НЕЗАВИСИМОМ КОДЕ (PIC), НЕОБХОДИМО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ СЛЕДУЮЩИЙ ФОРМАТ:&lt;br /&gt;
 .INTEN PRIO&lt;br /&gt;
     ЗАПРОС .INTEN ГЕНЕРИРУЕТСЯ В СЛЕДУЮЩИЙ КОД:&lt;br /&gt;
&lt;br /&gt;
        JSR R5,@54&lt;br /&gt;
        .WORD ^C&amp;lt;PRIO*40&amp;gt;&amp;amp;340&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     ЕСЛИ ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ИСПОЛЬЗУЕТ&lt;br /&gt;
ПОЗИЦИОННО-НЕЗАВИСИМЫЙ КОД (PIC), НЕОБХОДИМО ИСПОЛЬЗОВАТЬ&lt;br /&gt;
.INTEN СО ВТОРЫМ АРГУМЕНТОМ, PIC. (АРГУМЕНТ ДОЛЖЕН БЫТЬ В&lt;br /&gt;
САМОМ ДЕЛЕ ВСЕМ, ЧЕМ УГОДНО, ТОЛЬКО НЕ ПРОБЕЛОМ.)&lt;br /&gt;
&lt;br /&gt;
 .INTEN PRIO,PIC&lt;br /&gt;
     ЭТОТ ЗАПРОС ГЕНЕРИРУЕТСЯ В СЛЕДУЮЩИЙ ПОЗИЦИОННО-НЕЗАВИ-&lt;br /&gt;
СИМЫЙ КОД:&lt;br /&gt;
&lt;br /&gt;
        MOV @#54,-(SP)&lt;br /&gt;
        JSR R5,@(SP)+&lt;br /&gt;
        .WORD ^C&amp;lt;PRIO*40&amp;gt;&amp;amp;340&lt;br /&gt;
&lt;br /&gt;
     ОБА ФОРМАТА ВЫЗЫВАЮТ ПЕРЕХОД К ПОДПРОГРАММЕ МОНИТОРА&lt;br /&gt;
INTEN, КОТОРАЯ ПОНИЖАЕТ ПРИОРИТЕТ ПРОЦЕССОРА И В СИСТЕМАХ FB&lt;br /&gt;
И XM ПЕРЕКЛЮЧАЕТ РЕЖИМ В СИСТЕМНЫЙ. ЗАТЕМ МОНИТОР ВЫЗЫВАЕТ&lt;br /&gt;
ПОДПРОГРАММУ ОБРАБОТКИ ПРЕРЫВАНИЙ КАК СОПОДПРОГРАММУ. R4 И&lt;br /&gt;
R5 МОЖНО ИСПОЛЬЗОВАТЬ ПОСЛЕ ВЫХОДА ИЗ ЗАПРОСА. НЕДОПУСТИМО&lt;br /&gt;
РАЗРУШЕНИЕ СОДЕРЖИМОГО ЛЮБОГО ДРУГОГО РЕГИСТРА. ЕСЛИ&lt;br /&gt;
ТРЕБУЮТСЯ РЕГИСТРЫ R0-R3, НЕОБХОДИМО СОХРАНИТЬ ИХ В СТЕКЕ&lt;br /&gt;
ИЛИ ПАМЯТИ И ВОССТАНОВИТЬ ПЕРЕД ОКОНЧАНИЕМ. ЕСЛИ ТРЕБУЕТСЯ&lt;br /&gt;
СОХРАНИТЬ ЗНАЧЕНИЯ В ПРОЦЕССЕ РАБОТЫ ЗАПРОСА .INTEN,&lt;br /&gt;
НЕОБХОДИМО СОХРАНИТЬ ИХ В ПАМЯТИ ПЕРЕД ВЫЗОВОМ И&lt;br /&gt;
ВОССТАНОВИТЬ ПОСЛЕ ВЫХОДА ИЗ НЕГО. ТАКИМ ОБРАЗОМ, ЕСЛИ&lt;br /&gt;
СОДЕРЖИМОЕ PS ВАЖНОЕ, ТАКОЕ КАК ЗНАЧЕНИЯ РАЗРЯДОВ УСЛОВИЙ,&lt;br /&gt;
СЛЕДУЕТ СОХРАНИТЬ ИХ ПЕРЕД ИСПОЛЬЗОВАНИЕМ ВЫЗОВА .INTEN.&lt;br /&gt;
Т.К. .INTEN ВЫЗЫВАЕТ ПЕРЕКЛЮЧЕНИЕ СИСТЕМНОГО СТЕКА В FB И&lt;br /&gt;
XM, СЛЕДУЕТ ИЗБЕГАТЬ ЧРЕЗМЕРНОГО ИСПОЛЬЗОВАНИЯ СТЕКА В&lt;br /&gt;
ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
     МОЖНО ХРАНИТЬ И ВОССТАНАВЛИВАТЬ РЕГИСТРЫ И PS,&lt;br /&gt;
ИСПОЛЬЗУЯ ЯЧЕЙКИ ПАМЯТИ ВМЕСТО СТЕКА.&lt;br /&gt;
     ХРАНЕНИЕ В ЯЧЕЙКАХ ПАМЯТИ ДОЛЖНО ПРЕДОХРАНИТЬ&lt;br /&gt;
ПОДПРОГРАММУ ПРЕРЫВАНИЙ ОТ ПОВТОРНОГО ВХОДА. ЕСЛИ&lt;br /&gt;
ПОДПРОГРАММА БУДЕТ ИСПОЛЬЗОВАТЬСЯ ДЛЯ МНОГИХ УСТРОЙСТВ,&lt;br /&gt;
НЕОБХОДИМО ПОЗАБОТИТЬСЯ ПРИ ПЛАНИРОВАНИИ О ПОВТОРНОМ ВХОДЕ.&lt;br /&gt;
&lt;br /&gt;
     4.5.5. ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ЗАПРОСА .SYNCH&lt;br /&gt;
     ЗАПРОС .SYNCH ПОЛЕЗЕН В СИСТЕМАХ FB И XM. ЕГО ЦЕЛЬ -&lt;br /&gt;
УБЕДИТЬСЯ, ЧТО ЗАДАНИЕ ВЫПОЛНЕНО ПРАВИЛЬНО, КОГДА&lt;br /&gt;
ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ВЫПОЛНЯЕТ ПРОГРАММНЫЙ&lt;br /&gt;
ЗАПРОС. (В СИСТЕМЕ SJ НЕ РАБОТАЕТ.)&lt;br /&gt;
&lt;br /&gt;
     ЕСЛИ НЕОБХОДИМО ВЫДАТЬ ОДИН ИЛИ НЕСКОЛЬКО ЗАПРОСОВ ИЗ&lt;br /&gt;
ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ, ПЕРВЫМ ДОЛЖЕН СЛЕДОВАТЬ&lt;br /&gt;
ЗАПРОС .SYNCH. ЗАПРОС .INTEN ПЕРЕДАЕТ УПРАВЛЕНИЕ В&lt;br /&gt;
СИСТЕМНЫЙ РЕЖИМ, А ПРОГРАММНЫЙ ЗАПРОС .SYNCH МОЖЕТ&lt;br /&gt;
ВЫПОЛНЯТЬСЯ ТОЛЬКО В СОСТОЯНИИ ПОЛЬЗОВАТЕЛЯ. ЗАПРОС .SYNCH&lt;br /&gt;
САМ ОБСЛУЖИВАЕТ ПЕРЕХОД НАЗАД ПОЛЬЗОВАТЕЛЯ. НИКОГДА НЕ&lt;br /&gt;
СЛЕДУЕТ ВЫДАВАТЬ ИЗ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ЗАПРОСЫ, ТРЕБУЮЩИЕ USR, ДАЖЕ ПОСЛЕ ИСПОЛЬЗОВАНИЯ .SYNCH.&lt;br /&gt;
МОЖНО ТАКЖЕ ИСПОЛЬЗОВАТЬ .SYNCH ПОСЛЕ .FORK. ПРИ&lt;br /&gt;
ИСПОЛЬЗОВАНИИ ЗАПРОСА .SYNCH, R0-R3, SP ДОЛЖНЫ СОДЕРЖАТЬ ТЕ&lt;br /&gt;
ЖЕ ЗНАЧЕНИЯ, КАКИЕ БЫЛИ ПОСЛЕ ИСПОЛЬЗОВАНИЯ ЗАПРОСА .INTEN.&lt;br /&gt;
     В ТАБЛ.5 ПОКАЗАН ФОРМАТ SYNCH-БЛОКА, КОТОРЫЙ РАБОТАЕТ&lt;br /&gt;
ПОДОБНО ЭЛЕМЕНТУ ОЧЕРЕДИ ЗАВЕРШЕНИЯ. ИНФОРМАЦИЯ В 7-СЛОВНОМ&lt;br /&gt;
SYNCH-БЛОКЕ РАЗМЕЩЕНА ВО ГЛАВЕ СООТВЕТСТВУЮЩЕЙ ОЧЕРЕДИ&lt;br /&gt;
ЗАВЕРШЕНИЯ ЗАДАНИЙ. СЛЕДОВАТЕЛЬНО, КОДЫ, СЛЕДУЮЩИE ЗА&lt;br /&gt;
 .SYNCH ВЫПОЛНЯЮТСЯ КАК ПОДПРОГРАММА ЗАВЕРШЕНИЯ В РЕЖИМЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ С ПРИОРИТЕТОМ 0. ПОЭТОМУ ПРОГРАММА&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ ДОЛЖНА ЗАПРЕЩАТЬ ПРЕРЫВАНИЯ ПЕРЕД ЗАПРОСОМ&lt;br /&gt;
.SYNCH ИЛИ ОНА ДОЛЖНА БЫТЬ ПОДГОТОВЛЕНА ДЛЯ УСТРОЙСТВА,&lt;br /&gt;
ЧТОБЫ ПРЕРЫВАНИЕ ОПЯТЬ ВЫПОЛНЯЛОСЬ ПЕРЕД ВЫПОЛНЕНИЕМ .SYNCH.&lt;br /&gt;
SYNCH-БЛОК ДОСТУПЕН ДЛЯ ПОВТОРНОГО ИСПОЛЬЗОВАНИЯ, ЕСЛИ&lt;br /&gt;
Q.COMP РАВНО 0. МОЖНО ПРОВЕРИТЬ SYNCH-БЛОК ПУТЕМ ПОДАЧИ&lt;br /&gt;
СЛЕДУЮЩЕГО ЗАПРОСА .SYNCH. ЕСЛИ УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ К&lt;br /&gt;
ВОЗВРАТУ ПО ОШИБКЕ (СЛОВО, СЛЕДУЮЩЕЕ ЗА ВЫЗОВОМ .SYNCH),&lt;br /&gt;
ЗНАЧИТ, БЛОК ПО-ПРЕЖНЕМУ ИСПОЛЬЗУЕТСЯ.&lt;br /&gt;
&lt;br /&gt;
                                                  ТАБЛИЦА 5&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
! СМЕЩЕНИЕ !   ИМЯ    !   ВЛАДЕЛЕЦ    !     СОДЕРЖИМОЕ     !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!    0     !  Q.LINK  !      --       !  ЗАРЕЗЕРВИРОВАНО   !&lt;br /&gt;
!    2     !  Q.CSW   ! ПОЛЬЗОВАТЕЛЬ  !  НОМЕР  ЗАДАНИЯ    !&lt;br /&gt;
!    4     !  Q.BLKN  !      --       !  ЗАРЕЗЕРВИРОВАНО   !&lt;br /&gt;
!    6     !  Q.FUNK  !      --       !  ЗАРЕЗЕРВИРОВАНО   !&lt;br /&gt;
!    10    !  Q.BUFF  ! ПОЛЬЗОВАТЕЛЬ  !  R0 - АРГУМЕНТ ДЛЯ !&lt;br /&gt;
!          !          !               !  ПЕРЕХОДА          !&lt;br /&gt;
!    12    !  Q.WCNT  ! МОНИТОР       !  -1                !&lt;br /&gt;
!    14    !  Q.COMP  ! ПОЛЬЗОВАТЕЛЬ  !  0 ПРИ ТРАНСЛИРО-  !&lt;br /&gt;
!          !          !               !  ВАНИИ; МОНИТОР    !&lt;br /&gt;
!          !          !               !  ЗАТЕМ СОХРАНЯЕТ   !&lt;br /&gt;
!          !          !               !  СОДЕРЖИМОЕ ЭТОГО  !&lt;br /&gt;
!          !          !               !  СЛОВА             !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
     ВООБЩЕ, МОЖЕТ ПРОЙТИ МНОГО ВРЕМЕНИ МЕЖДУ ВЫЗОВОМ .SYNCH&lt;br /&gt;
И ВОЗВРАТОМ. СНАЧАЛА МОНИТОР ПЕРЕКЛЮЧАЕТСЯ В РЕЖИМ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ, И ЗАПРАШИВАЕТСЯ ПЛАН ПЕРЕХОДА ДЛЯ ОПРЕДЕЛЕНИЯ&lt;br /&gt;
НАЛИЧИЯ ПЕРЕКЛЧАТЕЛЕЙ КОНТЕКСТА. ЗАТЕМ ПОДПРОГРАММА&lt;br /&gt;
ЗАВЕРШЕНИЯ ФОНОВОГО ЗАДАНИЯ ОЖИДАЕТ ВЫЧИСЛЕНИЯ ГРАНИЦЫ&lt;br /&gt;
БЛОКИРОВКИ ОСНОВНОГО ЗАДАНИЯ. ЭТО МОЖЕТ ЗАНЯТЬ МНОГО&lt;br /&gt;
ВРЕМЕНИ, ПРЕЖДЕ ЧЕМ КОДЫ, СЛЕДУЮЩИЕ ЗА .SYNCH, ДЕЙСТВИТЕЛЬНО&lt;br /&gt;
ВЫПОЛНЯТСЯ.&lt;br /&gt;
     В КОДЕ СЛЕДУЮЩЕГО ВЫЗОВА .SYNCH R0 И R1 СВОБОДНЫ ДЛЯ&lt;br /&gt;
ИСПОЛЬЗОВАНИЯ, Т.К. ОНИ ИМЕЮТСЯ В ЛЮБОЙ ПОДПРОГРАММЕ&lt;br /&gt;
ЗАВЕРШЕНИЯ. ОДНАКО НЕОБХОДИМО СОХРАНИТЬ R2-R5, ЕСЛИ&lt;br /&gt;
ПОДПРОГРАММА .SYNCH ИСПОЛЬЗУЕТ ИХ. R4 И R5 НЕ СОХРАНЯЮТСЯ&lt;br /&gt;
ПРИ ВЫЗОВЕ. ПОЭТОМУ, ЕСЛИ ИХ СОДЕРЖИМОЕ ВАЖНО, НЕОБХОДИМО&lt;br /&gt;
СОХРАНИТЬ ИХ В ПАМЯТИ ПЕРЕД ВЫЗОВОМ .SYNCH. МОЖНО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ Q.BUFF В SYNCH-БЛОКЕ ДЛЯ ПЕРЕСЫЛКИ ЗНАЧЕНИЯ В&lt;br /&gt;
R0 ДЛЯ ПОДПРОГРАММЫ.&lt;br /&gt;
     ЗАПРОС .SYNCH ИМЕЕТ НЕОБЫЧНЫЙ ВОЗВРАТ ПО ОШИБКЕ.&lt;br /&gt;
ПЕРВОЕ СЛОВО ПОСЛЕ .SYNCH - АДРЕС ВОЗВРАТА ПО ОШИБКЕ, ВТОРОЕ&lt;br /&gt;
СЛОВО ПОСЛЕ .SYNCH - ВОЗВРАТ ПРИ УСПЕШНОМ ЗАВЕРШЕНИИ.&lt;br /&gt;
     В СРЕДЕ SJ ПОДПРОГРАММЫ, СЛЕДУЮЩИЕ ЗА ВЫЗОВОМ .SYNCH&lt;br /&gt;
(ФАКТИЧЕСКИ ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ), БУДУТ ВМОНТИРОВАНЫ&lt;br /&gt;
(Т.Е. ОНИ МОГУТ ПРЕРЫВАТЬ ДРУГ ДРУГА). ОНИ ВЫДАЮТСЯ&lt;br /&gt;
СЕРИЯМИ В FB И XM. В SJ МЕХАНИЗМ ЗАПРОСА ПОХОЖ НА СХЕМУ FB&lt;br /&gt;
И XM, НО НЕ ДЕЛАЕТ ЕГО ДВАЖДЫ.&lt;br /&gt;
&lt;br /&gt;
     4.5.6. ВЫПОЛНЕНИЕ НА FORK-УРОВНЕ: ЗАПРОС .FORK&lt;br /&gt;
     ПРОГРАMМНЫЙ ЗАПРОС .FORK ВЫДАЕТ ДРУГОЙ, БОЛЕЕ НИЗКИЙ&lt;br /&gt;
ПРИОРИТЕТ ПРОЦЕССОРА. КОГДА ИСПОЛЬЗУЕТСЯ ВЫЗОВ .FORK,&lt;br /&gt;
FORK-БЛОК ДОБАВЛЯЕТСЯ К FORK-ОЧЕРЕДИ, КОТОРАЯ ОРГАНИЗОВАНА&lt;br /&gt;
FIFO (ПЕРВЫМ ВОШЕЛ, ПЕРВЫМ ВЫШЕЛ). FORK-ПОДПРОГРАММЫ (ВСЕ&lt;br /&gt;
КОДЫ, СЛЕДУЮЩИЕ ЗА ЗАПРОСОМ .FORK) ВЫПОЛНЯЮТСЯ В СИСТЕМНОМ&lt;br /&gt;
РЕЖИМЕ С ПРИОРИТЕТОМ 0 ПОСЛЕ ОБРАБОТКИ ВСЕХ ПРЕРЫВАНИЙ, НО&lt;br /&gt;
ПЕРЕД ПЕРЕХОДОМ В РЕЖИМ ПОЛЬЗОВАТЕЛЯ. ПЕРЕКЛЮЧЕНИЕ&lt;br /&gt;
КОНТЕКСТОВ ЗАПРЕЩЕНО ВО ВРЕМЯ ВЫПОЛНЕНИЯ FORK-ПОДПРОГРАММ.&lt;br /&gt;
     R4 И R5 СОХРАНЯЮТСЯ ВО ВРЕМЯ ВЫЗОВА .FORK. КРОМЕ ТОГО,&lt;br /&gt;
R0-R3 МОЖНО ИСПОЛЬЗОВАТЬ ПОСЛЕ ЗАПРОСА .FORK. ПОДОБНО&lt;br /&gt;
.SYNCH, ЗАПРОС .FORK ПРЕДПОЛАГАЕТ, ЧТО R0-R3 И SP НЕ&lt;br /&gt;
ИЗМЕНЯЮТСЯ ПОСЛЕ ВОЗВРАЩЕНИЯ ИЗ ЗАПРОСА .INTEN НЕДОПУСТИМО&lt;br /&gt;
ИСПОЛЬЗОВАНИЕ ЗАПРОСА .FORK БЕЗ ПРЕДВАРИТЕЛЬНОГО ЗАПРОСА&lt;br /&gt;
.INTEN.&lt;br /&gt;
     НЕОБХОДИМО ПРЕДОСТАВИТЬ 4-СЛОВНЫЙ БЛОК ПАМЯТИ ДЛЯ&lt;br /&gt;
ЭЛЕМЕНТА FORK-ОЧЕРЕДИ, НИЖНИЕ ТРИ СЛОВА СОДЕРЖАТ R4, R5 И&lt;br /&gt;
АДРЕС ВОЗВРАТА PC. ПЕРВОЕ СЛОВО - СЛОВО СВЯЗИ, КОТОРОЕ&lt;br /&gt;
ДОЛЖНО БЫТЬ 0, КОГДА ВЫДАЕТСЯ ЗАПРОС .FORK. Т.К.&lt;br /&gt;
ПОДПРОГРАММУ .FORK НЕ СЛЕДУЕТ ПЕРЕЗАПУСКАТЬ, НЕОБХОДИМО&lt;br /&gt;
УБЕДИТЬСЯ, ЧТО УСТРОЙСТВО НЕ МОЖЕТ БЫТЬ ПРЕРВАНО МЕЖДУ&lt;br /&gt;
МОМЕНТОМ ВЫДАЧИ .FORK И МОМЕНТОМ НАЧАЛА ВЫПОЛНЕНИЯ&lt;br /&gt;
ПОДПРОГРАММЫ (КОДЫ, СЛЕДУЮЩИЕ ЗА ВЫЗОВОМ).&lt;br /&gt;
     НЕДОПУСТИМО ПОВТОРНОЕ ИСПОЛЬЗОВАНИЕ FORK-БЛОКА, ПОКА&lt;br /&gt;
РАБОТАЕТ ПОДПРОГРАММА .FORK. ПРЕДПОЛАГАЕТСЯ, ЧТО FORK-БЛОК&lt;br /&gt;
ЯВЛЯЕТСЯ СВОБОДНЫМ, КОГДА ВЫЗОВ, КОТОРЫЙ ИСПОЛЬЗОВАЛ ЕГО,&lt;br /&gt;
ВОЗВРАЩАЕТСЯ. ТАБЛ.6 ИЛЛЮСТРИРУЕТ СОДЕРЖИМОЕ FORK-БЛОКА.&lt;br /&gt;
&lt;br /&gt;
                                                  ТАБЛИЦА 6 &lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
! СМЕЩЕНИЕ !   ИМЯ    !   ВЛАДЕЛЕЦ    !     СОДЕРЖИМОЕ     !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!    0     !  F.BLNK  !   МОНИТОР     !  СЛОВО  СВЯЗИ      !&lt;br /&gt;
!    2     !  F.BADR  !   МОНИТОР     !  АДРЕС ПОДПРОГРАММЫ!&lt;br /&gt;
!          !          !               !  .FORK             !&lt;br /&gt;
!    4     !  F.BR5   !   МОНИТОР     !  ОБЛАСТЬ ХРАНЕНИЯ  !&lt;br /&gt;
!          !          !               !  R5                !&lt;br /&gt;
!    6     !  F.BR4   !   МОНИТОР     !  ОБЛАСТЬ ХРАНЕНИЯ  !&lt;br /&gt;
!          !          !               !  R4                !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
     ОБЫЧНО ЗАПРОС .FORK ИСПОЛЬЗУЕТСЯ В ДРАЙВЕРАХ УСТРОЙСТВ.&lt;br /&gt;
ЧТОБЫ ИСПОЛЬЗОВАТЬ ЕГО В ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ,&lt;br /&gt;
НЕОБХОДИМО СНАЧАЛА УСТАНОВИТЬ УКАЗАТЕЛЬ, НАЗЫВАЕМЫЙ $FKPTR.&lt;br /&gt;
РЕКОМЕНДУЕТСЯ СДЕЛАТЬ ЭТО В ОСНОВНОЙ ПРОГРАММЕ СЛЕДУЮЩИМ&lt;br /&gt;
ОБРАЗОМ:&lt;br /&gt;
&lt;br /&gt;
        MOV @#54,R4&lt;br /&gt;
        ADD 402(R4),R4&lt;br /&gt;
        MOV R4,$FKPTR&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
$FKPTR: .WORD 0&lt;br /&gt;
XXFBLK: .WORD 0,0,0,0&lt;br /&gt;
&lt;br /&gt;
     ЗАТЕМ В ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ МОЖНО&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ОБЫЧНУЮ ФОРМУ ЗАПРОСА .FORK:&lt;br /&gt;
     .FORK XXFBLK&lt;br /&gt;
     МАКРОРАСШИРЕНИЕ ЗАПРОСА .FORK ВЫГЛЯДИТ СЛЕДУЮЩИМ&lt;br /&gt;
ОБРАЗОМ:&lt;br /&gt;
&lt;br /&gt;
        JSR R5,@$FKPTR&lt;br /&gt;
        .WORD XXFBLK-.&lt;br /&gt;
&lt;br /&gt;
     В СИСТЕМЕ SJ ЗАПРОС .FORK НЕ ПОДДЕРЖИВАЕТСЯ, ЕСЛИ НЕ&lt;br /&gt;
ВЫБРАНА ПОДДЕРЖКА ТАЙМЕРА ВО ВРЕМЯ ГЕНЕРАЦИИ СИСТЕМЫ.&lt;br /&gt;
ВМЕСТО ЭТОГО МОНИТОР МОДЕЛИРУЕТ ПРОЦЕСС ПУТЕМ СОХРАНЕНИЯ&lt;br /&gt;
R0-R3 ПЕРЕД ВЫЗОВОМ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ.&lt;br /&gt;
йЗАТЕМ ОН НЕ ПЫТАЕТСЯ ВЫДАВАТЬ СЕРИИ FORK-ПОДПРОГРАММ. В&lt;br /&gt;
ПОДПРОГРАММЕ ОБРАБОТКИ ПРЕРЫВАНИЙ НЕТ СВОБОДНЫХ ДЛЯ&lt;br /&gt;
ИСПОЛЬЗОВАНИЯ РЕГИСТРОВ ПЕРЕД ВЫЗОВОМ .INTEN. ПОСЛЕ ВЫЗОВА&lt;br /&gt;
.INTEN МОЖНО ИСПОЛЬЗОВАТЬ РЕГИСТРЫ R4 И R5.&lt;br /&gt;
     ЗАПРОС .FORK ИМЕЕТ РАЗЛИЧНЫЕ ПРИМЕНЕНИЯ В СИСТЕМАХ&lt;br /&gt;
РЕАЛЬНОГО ВРЕМЕНИ, T.K. ОН ДОПУСКАЕТ ОТКЛАДЫВАТЬ ОБРАБОТКУ&lt;br /&gt;
РАСТЯНУТЫХ, НО НЕ КРИТИЧЕСКИХ ПО ВРЕМЕНИ ПРЕРЫВАНИЙ, ПОКА НЕ&lt;br /&gt;
БУДУТ ОБРАБОТАНЫ ВСЕ ДРУГИЕ ПРЕРЫВАНИЯ.&lt;br /&gt;
     ПОНИЖЕНИЕ ПРИОРИТЕТА ПРИВОДИТ К ПРОБЛЕМАМ В ДРАЙВЕРАХ&lt;br /&gt;
ДРУГИХ УСТРОЙСТВ, КОТОРЫЕ БУДУТ ПЕРЕЗАПУСКАТЬСЯ.&lt;br /&gt;
ИСПОЛЬЗОВАНИЕ .SYNCH НЕ ВСЕГДА РЕШАЕТ ПРОБЛЕМУ, МОНИТОР SJ&lt;br /&gt;
ТОЛЬКО МОДЕЛИРУЕТ .SYNCH И СБРАСЫВАЕТ ПРИОРИТЕТ К 0, КОТОРЫЙ&lt;br /&gt;
ПРИВОДИТ К ТЕМ ЖЕ ПРОБЛЕМАМ ПЕРЕЗАПУСКА ДРАЙВЕРОВ. МОНИТОР&lt;br /&gt;
FB ДОЛЖЕН ВЫПОЛНИТЬ ПЕРЕКЛЮЧЕНИЕ КОНТЕКСТА ПОСЛЕ ВОЗВРАТА ИЗ&lt;br /&gt;
.SYNCH В РЕЖИМ ПОЛЬЗОВАТЕЛЯ, ВЫПОЛНЯЕМЫЙ В СТЕКЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ. ПЕРЕКЛЮЧЕНИЕ КОНТЕКСТА - ДЛИТЕЛЬНЫЙ ПРОЦЕСС И&lt;br /&gt;
НЕ ПРОХОДИТ ДО КОНЦА, ЕСЛИ ИДЕТ ЗАВЕРШЕНИЕ ОСНОВНОГО&lt;br /&gt;
ЗАДАНИЯ.&lt;br /&gt;
     ЗАПРОС .FORK РЕШАЕТ ПРОБЛЕМУ. ОН ВОЗВРАЩАЕТСЯ НА&lt;br /&gt;
ПРИОРИТЕТ 0, ТОЛЬКО КОГДА ВСЕ ДРУГИЕ ПРЕРЫВАНИЯ УЖЕ&lt;br /&gt;
ОБРАБОТАНЫ, НО ПЕРЕД ПЕРЕДАЧЕЙ УПРАВЛЕНИЯ В ПРЕРВАННУЮ&lt;br /&gt;
ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
&lt;br /&gt;
     4.5.7. ИТОГ ПО .INTEN, .FORK И .SYNCH&lt;br /&gt;
     ТАБЛ.7 ОБОБЩАЕТ ДЕЙСТВИЯ ВЫЗОВОВ .INTEN, .FORK И&lt;br /&gt;
.SYNCH. РИС.5 ПОКАЗЫВАЕТ СОСТОЯНИЕ РЕГИСТРОВ ДЛЯ КАЖДОГО&lt;br /&gt;
ВЫЗОВА.&lt;br /&gt;
&lt;br /&gt;
                                                   ТАБЛИЦА 7&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!        !           !         ! РЕГИСТРЫ,     ! ДАННЫЕ,   !&lt;br /&gt;
! МАКРО- !   НОВЫЙ   !  НОВЫЙ  ! ДОСТУПНЫЕ ДЛЯ ! СОХРАНЯЮ- !&lt;br /&gt;
! ВЫЗОВ  ! ПРИОРИТЕТ !  СТЕК   ! ИСПОЛЬЗОВАНИЯ ! ЩИЕСЯ ПРИ !&lt;br /&gt;
!        !           !         ! ПОСЛЕ ВЫЗОВА  ! ВЫЗОВЕ    !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
! .INTEN ! УСТРОЙСТВА! СИСТЕМ- !   R4, R5      !   НЕТ     !&lt;br /&gt;
!        !           ! НЫЙ     !               !           !&lt;br /&gt;
! .FORK  !     0     ! СИСТЕМ- !   R0 - R5     !   R4, R5  !&lt;br /&gt;
!        !           ! НЫЙ     !               !           !&lt;br /&gt;
! .SYNCH !     0     ! ПОЛЬЗО- !   R0, R1      !     R0    !&lt;br /&gt;
!        !           ! ВАТЕЛЯ  !               !           !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 ОПЕРАЦИЯ       R0       R1      R2      R3     R4     R5&lt;br /&gt;
----------    ----------------------------------------------&lt;br /&gt;
        !&lt;br /&gt;
        !     I----------- СОДЕРЖИМОЕ НЕИЗВЕСТНО ---------I&lt;br /&gt;
        V       !        !       !       !      !      !&lt;br /&gt;
 ПРЕРЫВАНИЕ ----!--------!-------!-------!------!------!--- &lt;br /&gt;
        !       !        !       !       !      !      !&lt;br /&gt;
        !       V        V       V       V      V      V&lt;br /&gt;
        !     I---------- СОХРАНИТЬ/ВОССТАНОВИТЬ, --------I&lt;br /&gt;
        !                 ЕСЛИ НЕОБХОДИМО       !      !&lt;br /&gt;
        V       !        !       !       !      V      V&lt;br /&gt;
     .INTEN ----!--------!-------!-------!------------------&lt;br /&gt;
        !       !        !       !       !  I-- СВОБОДНО --I&lt;br /&gt;
        !       !        !       !       !        ДЛЯ &lt;br /&gt;
        !       V        V       V       V    ИСПОЛЬЗОВАНИЯ&lt;br /&gt;
        !     I-- СООХРАНИТЬ/ВОССТАНОВИТЬ--I    !  ----!----&lt;br /&gt;
        !       !        !       !       !      !  !   !  !!&lt;br /&gt;
        !       !        !       !       !      !&amp;lt;-!   !&amp;lt;-!!&lt;br /&gt;
        V       V        V       V       V      !      !   !&lt;br /&gt;
     .FORK  ------------------------------------!------!-- !&lt;br /&gt;
        !                                       !      !   !&lt;br /&gt;
        !                                       V      V   !&lt;br /&gt;
        !     I------------- СВОБОДНО  ДЛЯ --------------I !&lt;br /&gt;
        !       !        !   ИСПОЛЬЗОВАНИЯ      !      !   !&lt;br /&gt;
        !       !        !       !       !      !      !   !&lt;br /&gt;
        !       !        !       !       !      !      !   !&lt;br /&gt;
        V       V        V       V       V      V      V   !&lt;br /&gt;
     .SYNCH ---------------------------------------------- !&lt;br /&gt;
        !   /\                                             !&lt;br /&gt;
        !   ! I---СВОБОДНО---I I--СОХРАНИТЬ/ВОССТАНОВИТЬ--I!&lt;br /&gt;
        !   !   !        !       !       !      !      !   !&lt;br /&gt;
        !   !   !        !       !       !      !      !   !&lt;br /&gt;
        V   !   V        V       V       V      V      V   !&lt;br /&gt;
            !                                              !&lt;br /&gt;
       ЗАГРУЖЕНО                                    СОДЕРЖАТ&lt;br /&gt;
        ДАННЫМИ                                     ДАННЫЕ &lt;br /&gt;
       ПОЛЬЗОВА-                                   ПОЛЬЗОВА-&lt;br /&gt;
        ТЕЛЯ                                         ТЕЛЯ &lt;br /&gt;
&lt;br /&gt;
                          РИС.5&lt;br /&gt;
&lt;br /&gt;
     4.5.8. ВЫХОД ИЗ ОБРАБОТКИ ПРЕРЫВАНИЯ: RTS PC&lt;br /&gt;
     ЗАПРОС .INTEN ЗАСТАВЛЯЕТ МОНИТОР ВЫЗЫВАТЬ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ КАК СОПОДПРОГРАММУ. В КОНЦЕ ЭТОЙ&lt;br /&gt;
ПОДПРОГРАММЫ, ДЛЯ ВЫХОДА ИЗ НЕЕ НЕОБХОДИМО ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ИНСТРУКЦИЮ RTS PC, ПО КОТОРОЙ УПРАВЛЕНИЕ ВОЗВРАЩАЕТСЯ В&lt;br /&gt;
МОНИТОР, КОТОРЫЙ ВОССТАНАВЛИВАЕТ R4, R5 И ВЫПОЛНЯЕТ КОМАНДУ&lt;br /&gt;
RTI.&lt;br /&gt;
     АНАЛОГИЧНО ОСУЩЕСТВЛЯЕТСЯ ВЫХОД ИЗ ПОДПРОГРАММ С&lt;br /&gt;
ПОМОЩЬЮ КОМАНДЫ RTS PC .FORK И .SYNCH. СТЕК ДОЛЖЕН БЫТЬ&lt;br /&gt;
ТАКИМ ЖЕ, ЧТО И ПЕРЕД ВХОДОМ, И РЕГИСТРЫ ДОЛЖНЫ ИМЕТЬ&lt;br /&gt;
НАЧАЛЬНЫЕ ЗНАЧЕНИЯ.&lt;br /&gt;
     4.6. СХЕМАТИЧЕСКАЯ КОНСТРУКЦИЯ ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ&lt;br /&gt;
     В ПРИМЕРЕ, ПРИВЕДЕННОМ НИЖЕ, ПОКАЗАНА ОСНОВНАЯ&lt;br /&gt;
ПРОГРАММА, КОТОРАЯ СОДЕРЖИТ ВНУТРЕННЮЮ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ. ЭТА ПРОГРАММА ПРЕДСТАВЛЯЕТ НЕКОТОРЫЕ&lt;br /&gt;
ЗАДАЧИ ИНИЦИАЛИЗАЦИИ И ПРИОСТАНАВЛИВАЕТ СЕБЯ. КОГДА ДАННЫЕ&lt;br /&gt;
ПОСТУПАЮТ С ПЕРИФЕРИЙНОГО УСТРОЙСТВА, ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ СОБИРАЕТ ИХ. КОГДА ВСЕ ДАННЫЕ СОБРАНЫ,&lt;br /&gt;
ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ ПРОДОЛЖАЕТ ОСНОВНУЮ&lt;br /&gt;
ПРОГРАММУ, КОТОРАЯ МОЖЕТ ПОТОМ ОБРАБАТЫВАТЬ НОВУЮ ИНФОРМАЦИЮ&lt;br /&gt;
ДО ТЕХ ПОР, ПОКА СНОВА НЕ ПРИОСТАНОВИТ СЕБЯ. ВЫПОЛНЕНИЕ&lt;br /&gt;
ОСНОВНОЙ ПРОГРАММЫ МОЖЕТ ВКЛЮЧАТЬ НЕКОТОРУЮ ОБРАБОТКУ НОВЫХ&lt;br /&gt;
ДАННЫХ ИЛИ ЗАПИСЬ ДАННЫХ В ФАЙЛ, ИСПОЛЬЗУЕМЫЙ ФОНОВЫМ&lt;br /&gt;
ЗАДАНИЕМ АНАЛИЗА ДАННЫХ. Т.К. ЭТОТ ПРИМЕР ДОВОДИТ НОМЕР&lt;br /&gt;
ЗАДАНИЯ ДО 2-Х, ОН НЕ МОЖЕТ НОРМАЛЬНО ВЫПОЛНЯТЬСЯ В СИСТЕМЕ,&lt;br /&gt;
ИМЕЮЩЕЙ ПРИЗНАК СИСТЕМНОГО ЗАДАНИЯ.&lt;br /&gt;
     В ПРИМЕРЕ XX - ДВУХСИМВОЛЬНОЕ ИМЯ УСТРОЙСТВА.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
** ОСНОВНАЯ ПРОГРАММА **&lt;br /&gt;
&lt;br /&gt;
        XXVEC=VVV ;ВЕКТОР УСТРОЙСТВА&lt;br /&gt;
        PR7=340 ;ПРИОРИТЕТ 7&lt;br /&gt;
        DEVPRI=5 ;ПРИОРИТЕТ УСТРОЙСТВА&lt;br /&gt;
                                ;РАВЕН 5&lt;br /&gt;
                                ;(0-7, НО НЕ 000-340)&lt;br /&gt;
        XXCSR=NNNNN ;РЕГИСТР СОСТОЯНИЯ&lt;br /&gt;
                                ;УСТРОЙСТВА&lt;br /&gt;
        IENABLE=100 ;РАЗРЯД РАЗРЕШЕНИЯ&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
START: .PROTECT #LIST,#XXVEC ;ЗАЩИТА ВЕКТОРА&lt;br /&gt;
        BCS ERROR ;ОБРАБОТКА ОШИБКИ .PROTECT&lt;br /&gt;
        MOV #ISREP,@#XXVEC ;УСТАНОВКА ПЕРВОГО СЛОВА&lt;br /&gt;
                                ;ВЕКТОРА&lt;br /&gt;
        MOV #PR7,@#XXVEC+2 ;УСТАНОВКА ВТОРОГО СЛОВА&lt;br /&gt;
                                ;ВЕКТОРА&lt;br /&gt;
        .DEVICE #LIST,#DEVLST ;БЛОКИРОВАТЬ УСТРОЙСТВО ОТ&lt;br /&gt;
                                ;ВЫХОДА ИЛИ ПРЕЖДЕВРЕМЕННОГО&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
;&lt;br /&gt;
;СТРОКИ КОДА ИНИЦИАЛИЗИРУЮТ ВХОДНЫЕ БУФЕРЫ В ПОДПРОГРАММЕ&lt;br /&gt;
;ОБРАБОТКИ;&lt;br /&gt;
;ИНИЦИАЛИЗИРУЮТ ДРУГИЕ УКАЗАТЕЛИ И ПРИЗНАКИ&lt;br /&gt;
;&lt;br /&gt;
SPND: BIS #IENABL,@#XXCSR ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ&lt;br /&gt;
        .SPND ;ОЖИДАНИЕ ПОЯВЛЕНИЯ&lt;br /&gt;
                                ;НЕКОТОРЫХ ДАННЫХ&lt;br /&gt;
;&lt;br /&gt;
;СТРОКИ КОДА ХРАНЯТ ДАННЫЕ;&lt;br /&gt;
;ПЕРЕУСТАНАВЛИВАЮТСЯ НЕКОТОРЫЕ ПРИЗНАКИ&lt;br /&gt;
;&lt;br /&gt;
        BR SPND ;ОЖИДАЮТСЯ ДРУГИЕ ДАННЫЕ&lt;br /&gt;
DEVLST: .WORD XXCSR ;СПИСОК ДЛЯ .DEVICE&lt;br /&gt;
        .WORD 0&lt;br /&gt;
        .WORD 0&lt;br /&gt;
LIST: .BLKW 3 ;БЛОК АРГУМЕНТОВ EMT&lt;br /&gt;
ERROR: . ;ПОДПРОГРАММЫ ДЛЯ ОБРАБОТКИ&lt;br /&gt;
                                ;ОШИБОК&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
              ** ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ **&lt;br /&gt;
&lt;br /&gt;
ISPEP: . ;ТОЧКА ВХОДА ПРЕРЫВАНИЯ;&lt;br /&gt;
        . ;ПРИОРИТЕТ РАВЕН 7&lt;br /&gt;
        .&lt;br /&gt;
        .INTEN DEVPRI ;НО НЕ #DEVPRI.&lt;br /&gt;
                                ;ПОНИЖАЕТСЯ ДО ПРИОРИТЕТА&lt;br /&gt;
                                ;УСТРОЙСТВА; В ДАННОМ СЛУ-&lt;br /&gt;
                                ;ЧАЕ, В СИСТЕМНОМ РЕЖИМЕ,&lt;br /&gt;
                                ;ДОСТУПНЫ R4 И R5&lt;br /&gt;
;&lt;br /&gt;
;ЕСЛИ ЕСТЬ ДРУГИЕ ДАННЫЕ ДЛЯ ВЫБОРКИ:&lt;br /&gt;
;&lt;br /&gt;
        BR RETURN&lt;br /&gt;
;&lt;br /&gt;
;ЕСЛИ НЕТ БОЛЬШЕ ДАННЫХ ДЛЯ ВЫБОРКИ:&lt;br /&gt;
;&lt;br /&gt;
        .SYNCH #SYNBLK ;ВОЗВРАТ В ОСНОВНУЮ&lt;br /&gt;
                                ;ПРОГРАММУ ДЛЯ ОБРАБОТКИ&lt;br /&gt;
                                ;ДАННЫХ&lt;br /&gt;
        BR SYNERR ;ВОЗВРАТ ПО ОШИБКЕ .SYNCH&lt;br /&gt;
        .RSUM ;ВОЗОБНОВЛЕНИЕ ОСНОВНОЙ&lt;br /&gt;
                                ;ПРОГРАММЫ&lt;br /&gt;
RETURN: RTS PC ;ОЖИДАНИЕ СЛЕДУЮЩЕГО&lt;br /&gt;
                                ;ПРЕРЫВАНИЯ&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
SYNBLK: .WORD 0,2,0,0,0,-1,0 ;ЗДЕСЬ: 2 - НОМЕР ОСНОВНОГО&lt;br /&gt;
                                ;ЗАДАНИЯ&lt;br /&gt;
SYNERR: ;ОБРАБОТКА ОШИБОК .SYNCH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              5. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ&lt;br /&gt;
&lt;br /&gt;
     5.1. ТАЙМ-АУТ УСТРОЙСТВА ВВОДА-ВЫВОДА&lt;br /&gt;
     ИСПОЛЬЗУЯ ДОПОЛНИТЕЛЬНОЕ СРЕДСТВО, ТАЙМ-АУТ УСТРОЙСТВА,&lt;br /&gt;
ДРАЙВЕР МОЖЕТ НАЗНАЧИТЬ ПОДПРОГРАММУ ЗАВЕРШЕНИЯ, КОТОРАЯ&lt;br /&gt;
БУДЕТ ВЫПОЛНЯТЬСЯ, ЕСЛИ ПРЕРЫВАНИЕ НЕ ВОЗНИКЛО В УКАЗАННЫЙ&lt;br /&gt;
ИНТЕРВАЛ ВРЕМЕНИ. ТАКИМ ОБРАЗОМ, ДРАЙВЕР МОЖЕТ ВЫПОЛНЯТЬ&lt;br /&gt;
ПОДПРОГРАММУ ЗАВЕРШЕНИЯ ПО ИСТЕЧЕНИИ ЭТОГО ИНТЕРВАЛА ВРЕМЕНИ&lt;br /&gt;
БЕЗ ВЫЗОВА .SYNCH И СООТВЕТСТВУЮЩЕЙ ЕМУ ПОТЕНЦИАЛЬНОЙ&lt;br /&gt;
ЗАДЕРЖКИ.&lt;br /&gt;
     ВЫБОР СРЕДСТВА ТАЙМ-АУТА ПРОИЗВОДИТСЯ ВО ВРЕМЯ&lt;br /&gt;
ГЕНЕРАЦИИ СИСТЕМЫ. ТАЙМ-АУТ ИСПОЛЬЗУЕТСЯ ЧАСТИЧНО В&lt;br /&gt;
МУЛЬТИ-ТЕРМИНАЛЬНОМ МОНИТОРЕ СИСТЕМЫ ФОДОС-2. ПАРАМЕТР&lt;br /&gt;
АВТОМАТИЧЕСКИ ВКЛЮЧЕН В СИСТЕМУ, ЕСЛИ ВЫБРАНА&lt;br /&gt;
МУЛЬТИ-ТЕРМИНАЛЬНАЯ ПОДДЕРЖКА. В ПРОТИВНОМ СЛУЧАЕ, ЕСЛИ ЭТО&lt;br /&gt;
СРЕДСТВО ИСПОЛЬЗУЕТСЯ В ДРАЙВЕРЕ, НЕОБХОДИМО ВКЛЮЧИТЬ ЕГО ВО&lt;br /&gt;
ВРЕМЯ ГЕНЕРАЦИИ СИСТЕМЫ.&lt;br /&gt;
     ДЛЯ ОБЕСПЕЧЕНИЯ ТАЙМ-АУТА УСТРОЙСТВА В СИСТЕМЕ ФОДОС-2&lt;br /&gt;
ПРЕДУСМОТРЕНЫ ДВА ЗАПРОСА: .TIMIO И .CTIMIO. ОНИ ДОСТУПНЫ&lt;br /&gt;
ТОЛЬКО ДРАЙВЕРАМ УСТРОЙСТВ. ЕСЛИ ПРИ ТРАНСЛЯЦИИ ФАЙЛА&lt;br /&gt;
ДРАЙВЕРА В УСЛОВИИ TIM$IT РАВЕН 1, ТО ЗАПРОС .DRDEF ВЫДАЕТ&lt;br /&gt;
ДИРЕКТИВУ .MCALL ДЛЯ ЗАПРОСОВ .TIMIO И .CTIMIO.&lt;br /&gt;
&lt;br /&gt;
     5.1.1. ЗАПРОС .TIMIO&lt;br /&gt;
     ЗАПРОС .TIMIO ИСПОЛЬЗУЕТСЯ В СЕКЦИИ ИНИЦИИРОВАНИЯ&lt;br /&gt;
ВВОДА-ВЫВОДА ДЛЯ ФОРМИРОВАНИЯ ВЫЗОВА ТАЙМ-АУТА. ЭТОТ ЗАПРОС&lt;br /&gt;
МОЖЕТ РАСПОЛАГАТЬСЯ В ЛЮБОМ МЕСТЕ ДРАЙВЕРА, КРОМЕ УРОВНЯ&lt;br /&gt;
ПРЕРЫВАНИЯ. ЕСЛИ НЕОБХОДИМО ВЫДАТЬ ЗАПРОС НА УРОВНЕ&lt;br /&gt;
ПРЕРЫВАНИЯ, ТО СНАЧАЛА ДОЛЖЕН СЛЕДОВАТЬ ЗАПРОС .FORK.&lt;br /&gt;
     ЗАПРОС .TIMIO ПЛАНИРУЕТ ВЫПОЛНЕНИЕ ПОДПРОГРАММЫ&lt;br /&gt;
ЗАВЕРШЕНИЯ ПОСЛЕ ИСТЕЧЕНИЯ УКАЗАННОГО ИНТЕРВАЛА ВРЕМЕНИ.&lt;br /&gt;
ПОДПРОГРАММА ЗАВЕРШЕНИЯ ВЫПОЛНЯЕТСЯ В КОНТЕКСТЕ ЗАДАНИЯ,&lt;br /&gt;
УКАЗАННОГО В БЛОКЕ ТАЙМЕРА. В XM-СИСТЕМЕ ПОДПРОГРАММА&lt;br /&gt;
ЗАВЕРШЕНИЯ ВЫПОЛНЯЕТСЯ С ВНУТРЕННИМ ОТОБРАЖЕНИЕМ, ТАК КАК&lt;br /&gt;
ОНА ЯВЛЯЕТСЯ ЧАСТЬЮ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ. КАК&lt;br /&gt;
ОБЫЧНО, RO И R1 ИСПОЛЬЗУЮТСЯ В ПОДПРОГРАММАХ ЗАВЕРШЕНИЯ.&lt;br /&gt;
КОГДА ВВОДИТСЯ ПОДПРОГРАММА ЗАВЕРШЕНИЯ, RO СОДЕРЖИТ&lt;br /&gt;
ПОСЛЕДОВАТЕЛЬНОЕ ЧИСЛО ЗАПРОСОВ ТАЙМ-АУТА.&lt;br /&gt;
     ТАК КАК ДЛЯ ВЫДАЧИ ЗАПРОСА .TIMIO ИЛИ .CTIMIO&lt;br /&gt;
НЕОБХОДИМО ПЕРЕХОДИТЬ К FORK-УРОВНЮ (НУЛЕВОМУ ПРИОРИТЕТУ&lt;br /&gt;
ПРОЦЕССОРА), ДРАЙВЕР ДОЛЖЕН ЗАПРЕТИТЬ ПРЕРЫВАНИЕ УСТРОЙСТВА&lt;br /&gt;
ПЕРЕД ИСПОЛЬЗОВАНИЕМ .FORK, ИЛИ ДОЛЖЕН БЫТЬ ТЩАТЕЛЬНО&lt;br /&gt;
ЗАКОДИРОВАН ВО ИЗБЕЖАНИЕ ПРОБЛЕМЫ ПОВТОРНОГО ВВОДА.&lt;br /&gt;
ЗАПРЕЩЕНО ПОВТОРНО ИСПОЛЬЗОВАТЬ БЛОК ТАЙМЕРА, ПОКА НЕ&lt;br /&gt;
ИСЧЕЗНЕТ ЭЛЕМЕНТ ТАЙМЕРА И НЕ БУДЕТ ВВЕДЕНА ПОДПРОГРАММА&lt;br /&gt;
ЗАВЕРШЕНИЯ, ИЛИ ПОКА ЭЛЕМЕНТ ТАЙМЕРА НЕ БУДЕТ УСПЕШНО&lt;br /&gt;
УСТРАНЕН.&lt;br /&gt;
     ФОРМАТ ЗАПРОСА .TIMIO СЛЕДУЮЩИЙ:&lt;br /&gt;
     .TIMIO TBK,HI,LO&lt;br /&gt;
ГДЕ TBK - АДРЕС БЛОКА ТАЙМЕРА, СЕМИСЛОВНОГО ПСЕВДОЭЛЕМЕНТА&lt;br /&gt;
           ОЧЕРЕДИ ТАЙМЕРА; НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ НОМЕРНОЙ&lt;br /&gt;
 ЗНАК (#) ПЕРЕД TBK;&lt;br /&gt;
      HI - КОНСТАНТА, ОБОЗНАЧАЮЩАЯ СТАРШЕЕ СЛОВО&lt;br /&gt;
           ДВУХСЛОВНОГО ИНТЕРВАЛА ВРЕМЕНИ;&lt;br /&gt;
      LO - КОНСТАНТА, ОБОЗНАЧАЮЩАЯ МЛАДШЕЕ СЛОВО&lt;br /&gt;
           ДВУХСЛОВНОГО ИНТЕРВАЛА ВРЕМЕНИ.&lt;br /&gt;
     ФОРМАТ БЛОКА ТАЙМЕРА ПОКАЗАН В ТАБЛ.8.&lt;br /&gt;
&lt;br /&gt;
                                                  ТАБЛИЦА 8&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
! СМЕЩЕНИЕ !  ИМЯ  ! ВЛАДЕЛЕЦ !         ЗНАЧЕНИЕ           !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
!    0     ! C.HOT ! .TIMIO   ! СТАРШЕЕ  СЛОВО  ВРЕМЕНИ    !&lt;br /&gt;
!    2     ! C.LOT ! .TIMIO   ! МЛАДШЕЕ  СЛОВО  ВРЕМЕНИ    !&lt;br /&gt;
!    4     !C.LINK ! МОНИТОР  ! СВЯЗЬ СО СЛЕДУЮЩИМ ЭЛЕМЕН- !&lt;br /&gt;
!          !       !          ! ТОМ ОЧЕРЕДИ; 0 ПОКАЗЫВАЕТ  !&lt;br /&gt;
!          !       !          ! ОТСУТСТВИЕ ЭЛЕМЕНТА        !&lt;br /&gt;
!    6     !C.JNUM ! ПОЛЬЗОВ. ! НОМЕР ЗАДАНИЯ ВЛАДЕЛЬЦА;   !&lt;br /&gt;
!          !       !          ! ПЕРЕДАЕТСЯ ИЗ ЭЛЕМЕНТА     !&lt;br /&gt;
!          !       !          ! ОЧЕРЕДИ                    !&lt;br /&gt;
!    10    ! C.SEQ ! ПОЛЬЗОВ. ! НОМЕР ЗАПРОСА ТАЙМЕРА.     !&lt;br /&gt;
!          !       !          ! ДОПУСТИМЫЙ ДИАПАЗОН ИСПОЛЬ-!&lt;br /&gt;
!          !       !          ! ЗОВАНИЯ НОМЕРОВ ОТ 177000  !&lt;br /&gt;
!          !       !          ! ДО 177377                  !&lt;br /&gt;
!    12    ! C.SYS ! МОНИТОР  ! -1                         !&lt;br /&gt;
!    14    !C.COMP ! ПОЛЬЗОВ. ! АДРЕС ПОДПРОГРАММЫ ЗАВЕРШЕ-!&lt;br /&gt;
!          !       !          ! НИЯ, КОТОРАЯ БУДЕТ ВЫПОЛ-  !&lt;br /&gt;
!          !       !          ! НЯТЬСЯ, ЕСЛИ ВОЗНИКНЕТ     !&lt;br /&gt;
!          !       !          ! ТАЙМ-АУТ. МОНИТОР ОБНУЛЯЕТ !&lt;br /&gt;
!          !       !          ! ЭТО СЛОВО, КОГДА ВЫЗЫВАЕТ  !&lt;br /&gt;
!          !       !          ! ПОДПРОГРАММУ ЗАВЕРШЕНИЯ,   !&lt;br /&gt;
!          !       !          ! ПОКАЗЫВАЯ, ЧТО БЛОК ТАЙМЕРА!&lt;br /&gt;
!          !       !          ! ИМЕЕТСЯ В НАЛИЧИИ ДЛЯ ПОВ- !&lt;br /&gt;
!          !       !          ! ТОРНОГО ИСПОЛЬЗОВАНИЯ      !&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
     ХОТЯ ЗАПРОС .TIMIO ПЕРЕМЕЩАЕТ СТАРШЕЕ И МЛАДШЕЕ СЛОВА&lt;br /&gt;
ВРЕМЕНИ В БЛОК ТАЙМЕРА, НЕОБХОДИМО ОБОЗНАЧАТЬ ИХ ПРАВИЛЬНО&lt;br /&gt;
ПРИ МАКРОВЫЗОВЕ. ИНТЕРВАЛ ВРЕМЕНИ ВЫРАЖАЕТСЯ В ТИКАХ.&lt;br /&gt;
ИМЕЕТСЯ 50 ДЕСЯТИЧНЫХ ТИКОВ.&lt;br /&gt;
     МЛАДШЕЕ СЛОВО ВРЕМЕНИ ВМЕЩАЕТ ЗНАЧЕНИЕ ДО 65535 ТИКОВ.&lt;br /&gt;
ЭТО ЭКВИВАЛЕНТНО ПРИБЛИЗИТЕЛЬНО 1310 СЕК. ИЛИ&lt;br /&gt;
ПРИБЛИЗИТЕЛЬНО 21,8 МИН.. ЕСЛИ НЕОБХОДИМО УКАЗАТЬ ИНТЕРВАЛ&lt;br /&gt;
ВРЕМЕНИ В 21,8 МИНУТАХ И МЕНЕЕ, ТО АРГУМЕНТ HI ДОЛЖЕН&lt;br /&gt;
СОДЕРЖАТЬ 0, И АРГУМЕНТ LO В ЗАПРОСЕ .TIMIO ДОЛЖЕН СОДЕРЖАТЬ&lt;br /&gt;
ЧИСЛО ТИКОВ.&lt;br /&gt;
     ЕСЛИ НЕОБХОДИМО УКАЗАТЬ ИНТЕРВАЛ ВРЕМЕНИ&lt;br /&gt;
ПРОДОЛЖИТЕЛЬНЕЕ, ЧЕМ 21,8 МИН., ТО СТАРШЕЕ СЛОВО ДОЛЖНО БЫТЬ&lt;br /&gt;
ПРЕДСТАВЛЕНО В ВИДЕ СЛОВА ПЕРЕНОСА. КАЖДЫЙ ИНТЕРВАЛ,&lt;br /&gt;
ПРОДОЛЖИТЕЛЬНОСТЬЮ 21,8 МИН., ВЫЗЫВАЕТ ПЕРЕНОС 1 В СТАРШЕЕ&lt;br /&gt;
СЛОВО. ПОЭТОМУ, ДЛЯ ОБОЗНАЧЕНИЯ ИНТЕРВАЛА, ЧУТЬ БОЛЬШЕГО,&lt;br /&gt;
ЧЕМ 21,8 МИН., НЕОБХОДИМО ОПРЕДЕЛЯТЬ 1 ДЛЯ АРГУМЕНТА HI И 0&lt;br /&gt;
ДЛЯ АРГУМЕНТА LO. ДЛЯ ОБОЗНАЧЕНИЯ 43,6 МИН. В АРГУМЕНТ HI&lt;br /&gt;
ПЕРЕМЕЩАЕТСЯ 2, 0 - В АРГУМЕНТ LO И Т.Д. ТАК КАК&lt;br /&gt;
ДВУХСЛОВНОЕ ВРЕМЯ ПОЗВОЛЯЕТ ПОКАЗАТЬ ДО 65565 ЕДИНИЦ, КАЖДАЯ&lt;br /&gt;
ДЛИНОЙ В 21,8 МИН., ТО САМЫЙ БОЛЬШОЙ ИНТЕРВАЛ, КОТОРЫЙ МОЖНО&lt;br /&gt;
УКАЗАТЬ, РАВЕН 2,7 ГОДА.&lt;br /&gt;
     ЕДИНСТВЕННЫМИ ИНФОРМАЦИОННЫМИ СЛОВАМИ, КОТОРЫЕ&lt;br /&gt;
НЕОБХОДИМО УСТАНОВИТЬ В БЛОКЕ ТАЙМЕРА, ЯВЛЯЮТСЯ НОМЕР&lt;br /&gt;
ЗАДАНИЯ, ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР И АДРЕС ПОДПРОГРАММЫ&lt;br /&gt;
ЗАВЕРШЕНИЯ. НОМЕР ЗАДАНИЯ ПОЛУЧАЕТСЯ ИЗ ТЕКУЩЕГО ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ И, ЗАТЕМ, ПОМЕЩАЕТСЯ В БЛОК ТАЙМЕРА. НЕОБХОДИМО&lt;br /&gt;
НАЗНАЧИТЬ ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР, НАЧИНАЯ С 177000, И МОЖНО&lt;br /&gt;
РАБОТАТЬ ДО САМОГО ВЫСШЕГО НОМЕРА ПОСЛЕДОВАТЕЛЬНОСТИ,&lt;br /&gt;
177377. НОМЕР ЗАДАНИЯ И ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР ПЕРЕДАЮТСЯ&lt;br /&gt;
ПОДПРОГРАММОЙ ЗАВЕРШЕНИЯ, КОГДА ОНА ВВОДИТСЯ. АДРЕС&lt;br /&gt;
ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ НЕОБХОДИМО ПЕРЕМЕСТИТЬ К СЕДЬМОМУ&lt;br /&gt;
СЛОВУ БЛОКА ТАЙМЕРА.&lt;br /&gt;
     НИЖЕ ПРИВЕДЕНО МАКРОРАСШИРЕНИЕ ЗАПРОСА .TIMIO:&lt;br /&gt;
        .TIMIO TBK,HI,LO&lt;br /&gt;
        JSR R5,@$TIMIT ;УКАЗАТЕЛЬ КОНЦА ДРАЙВЕРА&lt;br /&gt;
        .WORD TBK-.&lt;br /&gt;
        .WORD 0 ;КОД ДЛЯ .TIMIO&lt;br /&gt;
        .WORD HI ;СТАРШЕЕ СЛОВО ИНТЕРВАЛА&lt;br /&gt;
                                ;ВРЕМЕНИ&lt;br /&gt;
        .WORD LO ;МЛАДШЕЕ СЛОВО ИНТЕРВАЛА&lt;br /&gt;
                                ;ВРЕМЕНИ&lt;br /&gt;
&lt;br /&gt;
     5.1.2. ЗАПРОС .CTIMIO&lt;br /&gt;
     ПОСЛЕ ВОЗНИКНОВЕНИЯ УСЛОВИЯ, КОТОРОЕ ОЖИДАЛ ДРАЙВЕР,&lt;br /&gt;
НЕОБХОДИМО ВЫДАТЬ ВЫЗОВ УСТРАНЕНИЯ ТАЙМ-АУТА, КОТОРЫЙ&lt;br /&gt;
ЗАПРЕЩАЕТ ПОДПРОГРАММУ ЗАВЕРШЕНИЯ. ВЫЗОВ .CTIMIO&lt;br /&gt;
ИСПОЛЬЗУЕТСЯ В ДРАЙВЕРЕ ДЛЯ УСТРАНЕНИЯ ЗАПРОСА ТАЙМ-АУТА.&lt;br /&gt;
ВЫПОЛНЕНИЕ ДОЛЖНО ПРОИСХОДИТЬ В СИСТЕМНОМ РЕЖИМЕ, КОГДА&lt;br /&gt;
ВЫДАЕТСЯ ВЫЗОВ. ЕСЛИ .CTIMINMYV2^X7.O ИСПОЛЬЗУЕТСЯ НА УРОВНЕ&lt;br /&gt;
ПРЕРЫВАНИЯ, ТО СНАЧАЛА ВЫДАЕТСЯ ВЫЗОВ .FORK.&lt;br /&gt;
     НАПРИМЕР, ДРАЙВЕР ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА&lt;br /&gt;
МОЖЕТ ПРОВЕРЯТЬ НА УСЛОВИЕ АВТОНОМНОСТИ. КОГДА ПРОГРАММА&lt;br /&gt;
ЗАПРАШИВАЕТ ПЕРЕДАЧУ ВВОДА-ВЫВОДА, СЕКЦИЯ ИНИЦИИРОВАНИЯ&lt;br /&gt;
ВВОДА-ВЫВОДА ДРАЙВЕРА ВЫЗЫВАЕТ НЕМЕДЛЕННОЕ ПРЕРЫВАНИЕ.&lt;br /&gt;
ЗАТЕМ СЕКЦИЯ ОБРАБОТКИ ПРЕРЫВАНИЙ ДРАЙВЕРА ПРОВЕРЯЕТ РАЗРЯД&lt;br /&gt;
ОШИБКИ УСТРОЙСТВА. ЕСЛИ РАЗРЯД УСТАНОВЛЕН,&lt;br /&gt;
ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ УСТРОЙСТВО НЕАВТОНОМНО, И ДРАЙВЕР&lt;br /&gt;
ПЕЧАТАЕТ СООБЩЕНИЕ, УСТАНАВЛИВАЕТ ПОСРЕДСТВОМ .TIMIO&lt;br /&gt;
ДВУХМИНУТНЫЙ ТАЙМЕР И ВОЗВРАЩАЕТСЯ В МОНИТОР ПО КОМАНДЕ RTS&lt;br /&gt;
PC ДЛЯ ОЖИДАНИЯ ДРУГОГО ПРЕРЫВАНИЯ. УСТРОЙСТВО НЕ ДОЛЖНО&lt;br /&gt;
ПРЕРЫВАТЬСЯ СНОВА, ПОКА УСЛОВИЕ ОШИБКИ НЕ БУДЕТ&lt;br /&gt;
ЗАФИКСИРОВАНО ОПЕРАТОРОМ. ЕСЛИ ЗА ДВЕ МИНУТЫ НЕ ВОЗНИКЛО&lt;br /&gt;
ПРЕРЫВАНИЕ, ПОДПРОГРАМА ЗАВЕРШЕНИЯ ТАЙМЕРА ПЕЧАТАЕТ ДРУГОЕ&lt;br /&gt;
СООБЩЕНИЕ ОБ ОШИБКЕ, УСТАНАВЛИВАЕТ ДРУГОЙ ДВУХМИНУТНЫЙ&lt;br /&gt;
ТАЙМЕР И ВОЗВРАЩАЕТСЯ ОПЯТЬ В МОНИТОР ПО RTS PC ДЛЯ ОЖИДАНИЯ&lt;br /&gt;
ПРЕРЫВАНИЯ (ПРИМЕР ДРАЙВЕРА ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА&lt;br /&gt;
СМ. П.5.1.3.3).&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ, КОГДА ВОЗНИКАЕТ ПРЕРЫВАНИЕ И РАЗРЯД&lt;br /&gt;
ОШИБКИ ЧИСТ, ДРАЙВЕР ВЫДАЕТ ВЫЗОВ .CTIMIO ДЛЯ УСТРАНЕНИЯ&lt;br /&gt;
ВРЕМЕННОГО ОЖИДАНИЯ.&lt;br /&gt;
     В ВИДЕ ДРУГОГО ПРИМЕРА, ДРАЙВЕР ДИСКА МОЖЕТ УСТАНОВИТЬ&lt;br /&gt;
ТАЙМЕР ДО ТОГО, КАК НАЧНЕТ ОПЕРАЦИЮ ПОИСКА. Т.К.&lt;br /&gt;
ПРЕРЫВАНИЯ ИЩУТСЯ ДВАЖДЫ, ДРАЙВЕР НЕ ДОЛЖЕН УСТРАНЯТЬ ТАЙМЕР&lt;br /&gt;
ПОСЛЕ ПЕРВОГО ПРЕРЫВАНИЯ. КОГДА ВОЗНИКАЕТ ВТОРОЕ&lt;br /&gt;
ПРЕРЫВАНИЕ, ХОТЯ ПОИСК УЖЕ ЗАВЕРШЕН, ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
УСТРАНИТЬ ТАЙМЕР.&lt;br /&gt;
     ЕСЛИ ИНТЕРВАЛ ВРЕМЕНИ В КАКОМ-ТО ПРИМЕНЕНИИ УЖЕ ИСТЕК,&lt;br /&gt;
И УСТРОЙСТВО ПОЭТОМУ В ТАЙМ-АУТЕ, ВЫПОЛНЕНИЕ ЗАПРОСА .CTIMIO&lt;br /&gt;
НЕ УДАЕТСЯ. ТАК КАК ПОДПРОГРАММА ЗАВЕРШЕНИЯ БЫЛА ПОМЕЩЕНА В&lt;br /&gt;
ОЧЕРЕДЬ, ВЫЗОВ .CTIMIO ВОЗВРАЩАЕТСЯ С УСТАНОВЛЕННЫМ РАЗРЯДОМ&lt;br /&gt;
ПЕРЕНОСА. ОБЫЧНО МОЖНО ИГНОРИРОВАТЬ ЭТО УСЛОВИЕ.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА .CTIMIO СЛЕДУЮЩИЙ:&lt;br /&gt;
     .CTIMIO TBK&lt;br /&gt;
ГДЕ TBK - АДРЕС СЕМИСЛОВНОГО БЛОКА ТАЙМЕРА; БЛОК, УКАЗАННЫЙ&lt;br /&gt;
          В ВЫЗОВЕ .CTIMIO, ДОЛЖЕН БЫТЬ ТАКИМ ЖЕ, КАК УЖЕ&lt;br /&gt;
й ИСПОЛЬЗОВАННЫЙ СООТВЕТСТВУЮЩИМ ЗАПРОСОМ .TIMIO.&lt;br /&gt;
й ЗАПРОС .CTIMIO РАСШИРЯЕТСЯ СЛЕДУЮЩИМ ОБРАЗОМ:&lt;br /&gt;
&lt;br /&gt;
        .CTIMIO&lt;br /&gt;
        JSR R5,@$TIMIT ;УКАЗАТЕЛЬ КОНЦА ДРАЙВЕРА&lt;br /&gt;
        .WORD TBK-.&lt;br /&gt;
        .WORD 1 ;КОД ДЛЯ .CTIMIO&lt;br /&gt;
&lt;br /&gt;
     ЕСЛИ ЗАДАНИЕ ПОЛЬЗОВАТЕЛЯ ПРЕЖДЕВРЕМЕННО ПРЕРВЕТСЯ И&lt;br /&gt;
ДРАЙВЕР ВВЕДЕТСЯ В ТОЧКЕ ВХОДА ПРЕЖДЕВРЕМЕННОГО ПРЕРЫВАНИЯ,&lt;br /&gt;
ТО НЕОБХОДИМО СРАЗУ ЖЕ УСТРАНИТЬ ЛЮБЫЕ ВАЖНЫЕ ЗАПРОСЫ&lt;br /&gt;
ТАЙМЕРА. ОДНАКО ЕСЛИ ПОДПРОГРАММА ЗАВЕРШЕНИЯ ТАЙМЕРА УЖЕ&lt;br /&gt;
БЫЛА ВВЕДЕНА, НЕОБХОДИМО ДОЖДАТЬСЯ ЕЕ ВЫПОЛНЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
     5.1.3. ПРИМЕНЕНИЕ ТАЙМ-АУТА УСТРОЙСТВА&lt;br /&gt;
     ПОДДЕРЖКА ТАЙМ-АУТА УСТРОЙСТВА ИСПОЛЬЗУЕТСЯ В СИСТЕМЕ&lt;br /&gt;
ФОДОС-2 ЛИШЬ В НЕСКОЛЬКИХ СЛУЧАЯХ. ОДНАКО В РЯДЕ УСЛОВИЙ&lt;br /&gt;
ПРИМЕНЯЮТСЯ ЗАПРОСЫ ТАЙМЕРА.&lt;br /&gt;
&lt;br /&gt;
     5.1.3.1. МУЛЬТИТЕРМИНАЛЬНАЯ ОБРАБОТКА&lt;br /&gt;
     МУЛЬТИТЕРМИНАЛЬНАЯ ОБРАБОТКА В СИСТЕМЕ ФОДОС-2&lt;br /&gt;
ИСПОЛЬЗУЕТ ТАЙМ-АУТ УСТРОЙСТВА ДЛЯ ПРОВЕРКИ СОСТОЯНИЯ&lt;br /&gt;
УДАЛЕННЫХ ТЕРМИНАЛОВ. ЭТА ПРОВЕРКА ОСУЩЕСТВЛЯЕТСЯ С ПОМОЩЬЮ&lt;br /&gt;
СПЕЦИАЛЬНОЙ ПОДПРОГРАММЫ, КОТОРАЯ ПРОВЕРЯЕТ ГОТОВНОСТЬ&lt;br /&gt;
КАЖДОГО УДАЛЕННОГО ТЕРМИНАЛА И ИСПОЛЬЗУЕТ ЗАПРОС .TIMIO.&lt;br /&gt;
&lt;br /&gt;
     5.1.3.2. ОБЫЧНАЯ ПРОЦЕДУРА ТАЙМЕРА ДЛЯ ДРАЙВЕРА ДИСКА&lt;br /&gt;
     ДРАЙВЕР ДИСКА МОЖЕТ ВЫПОЛНИТЬ ЛЮБУЮ ПРОЦЕДУРУ ТАЙМЕРА&lt;br /&gt;
ДЛЯ ЛЮБОЙ ОПЕРАЦИИ ДИСКА. ЦЕЛЬЮ ПОДПРОГРАММЫ ТАЙМЕРА&lt;br /&gt;
ЯВЛЯЕТСЯ АННУЛИРОВАНИЕ ИЛИ ВОССТАНОВЛЕНИЕ ЛЮБОЙ ОПЕРАЦИИ,&lt;br /&gt;
КОТОРАЯ ДЛИТСЯ СЛИШКОМ ДОЛГО. ЕСЛИ ОПЕРАЦИЯ НЕ&lt;br /&gt;
ЗАКАНЧИВАЕТСЯ ЗА ОТВЕДЕННЫЙ ПРОМЕЖУТОК ВРЕМЕНИ, ТО, СКОРЕЕ&lt;br /&gt;
ВСЕГО, НА ДИСКЕ ОШИБОЧНО РАЗРУШЕНЫ НЕКОТОРЫЕ ОПЕРАЦИИ.&lt;br /&gt;
     СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА УСТАНАВЛИВАЕТ ТАЙМЕР,&lt;br /&gt;
ИСПОЛЬЗУЯ ЗАПРОС .TIMIO. ЗАТЕМ ДРАЙВЕР НАЧИНАЕТ ОПЕРАЦИИ,&lt;br /&gt;
ЗАПРОШЕННЫЕ ЗАДАНИЕМ: ОПЕРАЦИИ СЧИТЫВАНИЯ, ЗАПИСИ ИЛИ&lt;br /&gt;
УСТАНОВКИ. ДРАЙВЕР ВОЗВРАЩАЕТСЯ В МОНИТОР ПО КОМАНДЕ RTS PC&lt;br /&gt;
И ОЖИДАЕТ ПРЕРЫВАНИЯ УСТРОЙСТВА. ЕСЛИ ПРЕРЫВАНИЕ ВОЗНИКАЕТ&lt;br /&gt;
ДО ИСТЕЧЕНИЯ ИНТЕРВАЛА ВРЕМЕНИ, ДРАЙВЕР АННУЛИРУЕТ ТАЙМЕР И&lt;br /&gt;
ВЫПОЛНЯЕТ ОБЫЧНУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ ПРОВЕРКИ ОШИБОК В&lt;br /&gt;
РЕЗУЛЬТАТЕ ПЕРЕДАЧИ. ВООБЩЕ, ДРАЙВЕР ИЛИ СНИЖАЕТСЯ ДО&lt;br /&gt;
FORK-УРОВНЯ ДЛЯ ВОССТАНОВЛЕНИЯ НЕПРАВИЛЬНОЙ ОПЕРАЦИИ, ИЛИ&lt;br /&gt;
ВЫВОДИТСЯ В МОНИТОР ПОСРЕДСТВОМ .DRFIN ДЛЯ УДАЛЕНИЯ ТЕКУЩЕГО&lt;br /&gt;
ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
     ЕСЛИ ПРЕРЫВАНИЕ НЕ ВОЗНИКЛО ЗА УКАЗАННЫЙ ПРОМЕЖУТОК&lt;br /&gt;
ВРЕМЕНИ, НАЧИНАЕТ ВЫПОЛНЯТЬСЯ ПОДПРОГРАММА ЗАВЕРШЕНИЯ&lt;br /&gt;
ТАЙМЕРА. ЕЕ ПЕРВЫМ ДЕЙСТВИЕМ ДОЛЖНО БЫТЬ МОДЕЛИРОВАНИЕ&lt;br /&gt;
ПРЕРЫВАНИЯ. ЭТО ДЕЙСТВИЕ ДУБЛИРУЕТ СРЕДУ ДРАЙВЕРА ПОСЛЕ&lt;br /&gt;
ЭТОГО ПРЕРЫВАНИЯ И ГАРАНТИРУЕТ, ЧТО СТЕК ИМЕЕТ НЕОБХОДИМУЮ&lt;br /&gt;
ИНФОРМАЦИЮ. ЗАТЕМ ПОДПРОГРАММА ЗАВЕРШЕНИЯ ТАЙМЕРА ДЕЙСТВУЕТ&lt;br /&gt;
ТАК, КАК ЕСЛИ БЫ УСТРОЙСТВО БЫЛО ПРЕРВАНО, НО ПЕРЕДАЧА БЫЛА&lt;br /&gt;
ОШИБОЧНОЙ. ПОДПРОГРАММА ЗАВЕРШЕНИЯ ТАЙМЕРА ПРОСТО ПЕРЕХОДИТ&lt;br /&gt;
В ПРАВИЛЬНУЮ СЕКЦИЮ КОДОВ В СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ДРАЙВЕРА УСТРОЙСТВА ДЛЯ ОКОНЧАНИЯ ПРОЦЕССА.&lt;br /&gt;
     ПОДПРОГРАММА ЗАВЕРШЕНИЯ ТАЙМЕРА ДОЛЖНА ИСПОЛЬЗОВАТЬ&lt;br /&gt;
СЛЕДУЮЩИЕ КОМАНДЫ ДЛЯ МОДЕЛИРОВАНИЯ ПРЕРЫВАНИЯ И ВВОДА&lt;br /&gt;
СИСТЕМНОГО РЕЖИМА:&lt;br /&gt;
&lt;br /&gt;
        MOV @SP,-(SP) ;ОТВОДИТ МЕСТО ДЛЯ СТЕКА&lt;br /&gt;
        CLR 2(SP) ;ИММИТИРОВАТЬ ПРЕРЫВАНИЕ&lt;br /&gt;
                                ;PS=0&lt;br /&gt;
        .MTPS #340 ;ПЕРЕХОД НА ПРИОРИТЕТ 7&lt;br /&gt;
        .INTEN 0,PIC ;ВВОД СИСТЕМНОГО РЕЖИМА&lt;br /&gt;
&lt;br /&gt;
     ПОСЛЕ ВХОДА ДРАЙВЕРА В СИСТЕМНЫЙ РЕЖИМ, ОН&lt;br /&gt;
ПРЕДПРИНИМАЕТ СООТВЕТСТВУЮЩЕЕ ДЕЙСТВИЕ КАК РЕЗУЛЬТАТ&lt;br /&gt;
ТАЙМ-АУТА. ДРАЙВЕР СНОВА МОЖЕТ ПЫТАТЬСЯ ВЫПОЛНИТЬ ОПЕРАЦИЮ.&lt;br /&gt;
ДЛЯ ЭТОГО ОН УМЕНЬШАЕТ СЧЕТЧИК ПОВТОРЕНИЙ, СНИЖАЕТСЯ ДО&lt;br /&gt;
FORK-УРОВНЯ И ПЕРЕХОДИТ В СЕКЦИЮ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА.&lt;br /&gt;
КОД В СЕКЦИИ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА УСТАНАВЛИВАЕТ ДРУГОЙ&lt;br /&gt;
ТАЙМЕР, ПОВТОРЯЕТ ПЕРЕДАЧУ И ВОЗВРАЩАЕТСЯ В МОНИТОР ПО&lt;br /&gt;
КОМАНДЕ RTS PC ДЛЯ ОЖИДАНИЯ СЛЕДУЮЩЕГО ПРЕРЫВАНИЯ.&lt;br /&gt;
     ЕСЛИ ДРАЙВЕР РЕШАЕТ, ЧТО ТАЙМ-АУТ ПОКАЗЫВАЕТ СЕРЬЕЗНУЮ&lt;br /&gt;
ОШИБКУ, ОДНУ ИЗ ТЕХ, КОТОРЫЕ НЕ ДОЛЖНЫ ПОВТОРЯТЬСЯ ВНОВЬ, ТО&lt;br /&gt;
ДЛЯ ПЕРЕДАЧИ МОЖЕТ ПОСЛЕДОВАТЬ ТА ЖЕ САМАЯ ПРОЦЕДУРА,&lt;br /&gt;
КОТОРАЯ ПРОИСХОДИТ, КОГДА СЧЕТЧИК ПОВТОРЕНИЙ ИСЧЕРПАН. В&lt;br /&gt;
ЭТОМ СЛУЧАЕ ДРАЙВЕР УСТАНАВЛИВАЕТ РАЗРЯД НЕВОССТАНОВИМОЙ&lt;br /&gt;
ОШИБКИ В СЛОВЕ СОСТОЯНИЯ КАНАЛА, А ЗАТЕМ ВВОДИТСЯ В МОНИТОР&lt;br /&gt;
ВЫЗОВОМ .DRFIN ДЛЯ УДАЛЕНИЯ ТЕКУЩЕГО ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
ПЕРЕД ТЕМ, КАК ДРАЙВЕР ПЕРЕЙДЕТ К УДАЛЕНИЮ ТЕКУЩЕГО ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ С ПОМОЩЬЮ .DRFIN, ОН ДОЛЖЕН АННУЛИРОВАТЬ ЛЮБОЙ&lt;br /&gt;
ЗАПРОС ТАЙМЕРА, КОТОРЫЙ ЕЩЕ НЕ ЗАКОНЧЕН.&lt;br /&gt;
&lt;br /&gt;
     5.1.3.3. ПРИМЕР ДРАЙВЕРА ПОСТРОЧНО-ПЕЧАТАЮЩЕГО&lt;br /&gt;
УСТРОЙСТВА&lt;br /&gt;
     НИЖЕ ПРИВЕДЕН ПРИМЕР, СОСТОЯЩИЙ ИЗ ВЫДЕРЖЕК, ВЗЯТЫХ ИЗ&lt;br /&gt;
ДРАЙВЕРА ПОСТРОЧНО-ПЕЧАТАЮЩЕГО УСТРОЙСТВА СИСТЕМЫ ФОДОС-2,&lt;br /&gt;
МОДИФИЦИРОВАННОГО ДЛЯ ИСПОЛЬЗОВАНИЯ ПОДДЕРЖКИ ТАЙМЕРА ДЛЯ&lt;br /&gt;
ПРОВЕРКИ УСЛОВИЯ АВТОНОМНОСТИ УСТРОЙСТВА.&lt;br /&gt;
     КОГДА СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА ДРАЙВЕРА&lt;br /&gt;
НАЧИНАЕТ ПЕРЕДАЧУ, ЭТО ПРИВОДИТ К НЕМЕДЛЕННОМУ ПРЕРЫВАНИЮ И&lt;br /&gt;
ЗАСТАВЛЯЕТ СЕКЦИЮ ОБРАБОТКИ ПРЕРЫВАНИЙ ВЫПОЛНЯТЬ ПРОВЕРКУ&lt;br /&gt;
РАЗРЯДА ОШИБКИ В CSR. ЕСЛИ ЕСТЬ ОШИБКА, УПРАВЛЕНИЕ&lt;br /&gt;
ПЕРЕХОДИТ К ПОДПРОГРАММЕ OFFLIN, КОТОРАЯ ВЫДАЕТ ВЫЗОВ .SYNCH&lt;br /&gt;
ДЛЯ ВХОДА В РЕЖИМ ПОЛЬЗОВАТЕЛЯ, ПЕЧАТАЕТ СООБЩЕНИЕ ОБ&lt;br /&gt;
ОШИБКЕ, А, ЗАТЕМ, УСТАНАВЛИВАЕТ ДВУХМИНУТНЫЙ ТАЙМЕР, ПОСЛЕ&lt;br /&gt;
ЧЕГО ДРАЙВЕР ВОЗВРАЩАЕТСЯ В МОНИТОР ПО КОМАНДЕ RTS PC И&lt;br /&gt;
ОЖИДАЕТ ПРЕРЫВАНИЕ УСТРОЙСТВА.&lt;br /&gt;
     ЕСЛИ УСТРОЙСТВО БЫЛО ПРЕРВАНО, ЭТО ОЗНАЧАЕТ, ЧТО&lt;br /&gt;
УСЛОВИЕ ОШИБКИ БЫЛО ИСПРАВЛЕНО ОПЕРАТОРОМ. ДРАЙВЕР&lt;br /&gt;
АННУЛИРУЕТ ТАЙМЕР И ПРОВЕРЯЕТ СНОВА РАЗРЯД ОШИБКИ, ЧТОБЫ&lt;br /&gt;
УБЕДИТЬСЯ, ЧТО ПРОБЛЕМЫ ОТСУТСТВУЮТ. ЕСЛИ ОШИБОК НЕТ, ТО&lt;br /&gt;
ДРАЙВЕР ОБРАБАТЫВАЕТСЯ КАК ОБЫЧНО. ЕСЛИ ОШИБКА ЕСТЬ,&lt;br /&gt;
ДРАЙВЕР ЦИКЛИТСЯ В ПОДПРОГРАММЕ OFFLIN. ЕСЛИ ПРЕРЫВАНИЕ НЕ&lt;br /&gt;
ВОЗНИКНЕТ ЗА 2 МИНУТЫ, ТО НАЧИНАЕТ ВЫПОЛНЯТЬСЯ ПОДПРОГРАММА&lt;br /&gt;
ЗАВЕРШЕНИЯ ТАЙМЕРА. ОНА ПЕЧАТАЕТ СООБЩЕНИЕ ОБ ОШИБКЕ,&lt;br /&gt;
УСТАНАВЛИВАЕТ ДРУГОЙ ДВУХМИНУТНЫЙ ТАЙМЕР И ВОЗВРАЩАЕТСЯ В&lt;br /&gt;
МОНИТОР ПО КОМАНДЕ RTS PC ДЛЯ ОЖИДАНИЯ ПРЕРЫВАНИЯ.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
 ;СЕКЦИЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
        .DRBEG LP&lt;br /&gt;
&lt;br /&gt;
        MOV LPCQE,R4 ;R4 УКАЗЫВАЕТ ТЕКУЩИЙ&lt;br /&gt;
                                ;ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
        ASL 6(R4) ;ПЕРЕХОД ОТ СЧЕТЧИКА СЛОВ&lt;br /&gt;
                                ;К СЧЕТЧИКУ БАЙТОВ&lt;br /&gt;
        BCC LPERR ;ЗАПРОС СЧИТЫВАНИЯ&lt;br /&gt;
                                ;НЕДОПУСТИМ&lt;br /&gt;
        BEQ LPDONE ;ПЕРЕХОД НА НЕМЕДЛЕННОЕ&lt;br /&gt;
                                ;ОКОНЧАНИЕ&lt;br /&gt;
RET: BIS #100,@LPS ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ,&lt;br /&gt;
                                ;НАЧАЛО ПЕРЕДАЧИ&lt;br /&gt;
        RTS PC&lt;br /&gt;
 ;СЕКЦИЯ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
 .ENABL LSB&lt;br /&gt;
        .DRAST LP,4,LPDONE&lt;br /&gt;
        CLR @LPS ;ЗАПРЕЩЕНИЕ ПРЕРЫВАНИЙ&lt;br /&gt;
        .FORK FRKBLK&lt;br /&gt;
        TST TICMPL ;АКТИВНЫЙ ЭЛЕМЕНТ ТАЙМЕРА?&lt;br /&gt;
        BEQ 1$ ;НЕТ&lt;br /&gt;
        .CTIMIO TIMBLK ;ДА, УДАЛИТЬ ЕГО&lt;br /&gt;
        BCS 1$ ;ОШИБКА&lt;br /&gt;
        CLR TICMPL ;И НЕ УСТАНАВЛИВАТЬ ЕГО&lt;br /&gt;
                                ;СНОВА&lt;br /&gt;
1$: MOV LPCQE,R4 ;R4 УКАЗЫВАЕТ ТЕКУЩИЙ&lt;br /&gt;
                                ;ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
        TST @(PC)+ ;ОШИБОЧНОЕ УСЛОВИЕ?&lt;br /&gt;
LPS: .WORD LP$CSR ;РЕГИСТР СОСТОЯНИЯ&lt;br /&gt;
                                ;ПОСТРОЧНО-&lt;br /&gt;
                                ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА&lt;br /&gt;
ERROPT: BMI OFFLIN ;ДА, ИДТИ НА ИСПРАВЛЕНИЕ&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
 ;СЕКЦИЯ ЗАВЕРШЕНИЯ ВВОДА-ВЫВОДА&lt;br /&gt;
LPDONE: CLR @LPS ;ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ&lt;br /&gt;
        .DRFIN LP&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
   .&lt;br /&gt;
 ;ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ УСТРОЙСТВО АВТОНОМНО, ПРЕДУПРЕЖДЕНИЕ&lt;br /&gt;
 ;ПЕЧАТАТЬ КАЖДЫЕ ДВЕ МИНУТЫ&lt;br /&gt;
&lt;br /&gt;
OFFLIN: MOV LPCQE,R5 ;УКАЗЫВАЕТ ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
        MOVB Q$JNUM(R5),R5 ;УСТАНАВЛИВАЕТ НОМЕР&lt;br /&gt;
                                ;ТЕКУЩЕГО ЗАДАНИЯ&lt;br /&gt;
        ASR R5 ;СДВИНУТЬ ЕГО&lt;br /&gt;
        ASR R5 ;ВПРАВО&lt;br /&gt;
        ASR R5 ;НА ТРИ РАЗРЯДА&lt;br /&gt;
        BIC #^C&amp;lt;16&amp;gt;,R5 ;ВЫДЕЛЯЕТ НОМЕР ЗАДАНИЯ&lt;br /&gt;
        MOV R5,SYJNUM ;СОХРАНЯЕТ ЕГО ДЛЯ .SYNCH&lt;br /&gt;
        MOV R5,TIJNUM ;СОХРАНЯЕТ ЕГО ДЛЯ .TIMIO&lt;br /&gt;
        .SYNCH SYNBLK,PIC ;ПЕРЕХОД В РЕЖИМ&lt;br /&gt;
                                ;ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
        RTS PC ;СИНХРОНИЗАЦИЯ ЗАКОНЧЕНА,&lt;br /&gt;
                                ;ПРОДВИНУТЬСЯ&lt;br /&gt;
1$: CLR TICMPL ;ПОКАЗЫВАЕТ, ЧТО МЫ ПОПАЛИ&lt;br /&gt;
                                ;СЮДА&lt;br /&gt;
        TST @LPS ;ОШИБКА ВСЕ ЕЩЕ ЕСТЬ?&lt;br /&gt;
        BPL 2$ ;НЕТ, ЗАКОНЧИТЬ&lt;br /&gt;
        MOV PC,RO ;В СЛУЧАЕ ПОДПРОГРАММЫ&lt;br /&gt;
                                ;ЗАВЕРШЕНИЯ ПЕЧАТАЕТ&lt;br /&gt;
                                ;СООБЩЕНИЕ&lt;br /&gt;
        ADD #MESSAG-.,RO ;УКАЗАТЕЛЬ СООБЩЕНИЯ&lt;br /&gt;
                                ;КАК PIC&lt;br /&gt;
        .PRINT ;ПЕЧАТАТЬ ЕГО&lt;br /&gt;
        MOV PC,RO ;В PIC-КОДАХ, УКАЗЫВАЯ ДЛЯ&lt;br /&gt;
        ADD #1$-.,R0 ;.TIMIO ПОДПРОГРАММУ&lt;br /&gt;
                                ;ЗАВЕРШЕНИЯ&lt;br /&gt;
        MOV RO,TICMPL ;ЗАПОМИНАЕТ ЕГО&lt;br /&gt;
        .TIMIO TIMBLK,0,2*60.*60. ;УСТАНАВЛИВАЕТ&lt;br /&gt;
                                ;ДВУХМИНУТНЫЙ ТАЙМЕР&lt;br /&gt;
2$: RTS PC ;ВОЗВРАТ НАЗАД&lt;br /&gt;
FRKBLK: .WORD 0,0,0,0 ;FORK-БЛОК&lt;br /&gt;
TIMBLK: .WORD 0 ;БЛОК ТАЙМЕРА: СТАРШЕЕ&lt;br /&gt;
                                ;СЛОВО ВРЕМЕНИ&lt;br /&gt;
        .WORD 0 ;МЛАДШЕЕ СЛОВО ВРЕМЕНИ&lt;br /&gt;
        .WORD 0 ;СВЯЗЬ СО СЛЕДУЮЩИМ&lt;br /&gt;
                                ;ЭЛЕМЕНТОМ ОЧЕРЕДИ&lt;br /&gt;
TIJNUM: .WORD 0 ;НОМЕР ЗАДАНИЯ&lt;br /&gt;
        .WORD 177000+3 ;ПОСЛЕДОВАТЕЛЬНЫЙ НОМЕР&lt;br /&gt;
        .WORD 0 ;МОНИТОР УСТАНАВЛИВАЕТ&lt;br /&gt;
                                ;ЗДЕСЬ -1&lt;br /&gt;
TICMPL: .WORD 0 ;АДРЕС ПОДПРОГРАММЫ&lt;br /&gt;
                                ;ЗАВЕРШЕНИЯ&lt;br /&gt;
SYNBLK: .WORD 0 ;SYNCH-БЛОК&lt;br /&gt;
SYJNUM: .WORD 0 ;НОМЕР ЗАДАНИЯ&lt;br /&gt;
        .WORD 0,0,0,-1,0 ;ОСТАЛЬНЫЕ&lt;br /&gt;
MESSAG: .ASCIZ &amp;quot;?LP-W-LP OFF LINE - PLEASE CORRECT&amp;quot;&lt;br /&gt;
        .EVEN&lt;br /&gt;
        .DREND LP&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПРИВЕДЕН ДРАЙВЕР ПОСТРОЧНО-ПЕЧАТАЮЩЕГО&lt;br /&gt;
УСТРОЙСТВА.&lt;br /&gt;
&lt;br /&gt;
     5.2. РЕГИСТРАЦИЯ ОШИБОК&lt;br /&gt;
     РЕГИСТРАЦИЯ ОШИБОК - ЭТО ДОПОЛНИТЕЛЬНОЕ СРЕДСТВО&lt;br /&gt;
СИСТЕМЫ ФОДОС-2, ПРЕДНАЗНАЧЕННОЕ ДЛЯ ОБЕСПЕЧЕНИЯ НАДЕЖНОСТИ&lt;br /&gt;
СИСТЕМЫ. ДРАЙВЕРЫ УСТРОЙСТВ, КОТОРЫЕ ПОДДЕРЖИВАЮТ&lt;br /&gt;
РЕГИСТРАЦИЮ ОШИБОК, ВЫЗЫВАЮТ РЕГИСТРАТОР ОШИБОК ПОСЛЕ КАЖДОЙ&lt;br /&gt;
ПЕРЕДАЧИ ВВОДА-ВЫВОДА. РЕГИСТРАТОР ОШИБОК СОБИРАЕТ&lt;br /&gt;
СТАТИСТИКУ О ДЕЯТЕЛЬНОСТИ УСТРОЙСТВ ВВОДА-ВЫВОДА, КОТОРУЮ&lt;br /&gt;
МОЖНО ИСПОЛЬЗОВАТЬ ДЛЯ ПРОВЕРКИ ИХ НАДЕЖНОСТИ.&lt;br /&gt;
     ПОДДЕРЖКА РЕГИСТРАЦИИ ОШИБОК ВЫБИРАЕТСЯ В ПРОЦЕССЕ&lt;br /&gt;
ГЕНЕРАЦИИ СИСТЕМЫ. РЕГИСТРАЦИЯ ОШИБОК МОЖЕТ ВЫПОЛНЯТЬСЯ ПОД&lt;br /&gt;
УПРАВЛЕНИЕМ МОНИТОРОВ XM ИЛИ FB. ЕСЛИ СИСТЕМА СПОСОБНА&lt;br /&gt;
ВЫПОЛНЯТЬ СИСТЕМНОЕ ЗАДАНИЕ, РЕГИСТРАТОР ОШИБОК ВЫПОЛНЯЕТСЯ&lt;br /&gt;
КАК СИСТЕМНОЕ ЗАДАНИЕ; В ПРОТИВНОМ СЛУЧАЕ, ОН ВЫПОЛНЯЕТСЯ&lt;br /&gt;
КАК ОБЫЧНОЕ ОСНОВНОЕ ЗАДАНИЕ. СОДЕРЖИМОЕ ФАЙЛА ПАРАМЕТРОВ&lt;br /&gt;
ГЕНЕРАЦИИ СИСТЕМЫ ДЛЯ РЕГИСТРАЦИИ ОШИБОК СЛЕДУЮЩЕЕ:&lt;br /&gt;
ERL$G - ЕСЛИ ЭТО ЗНАЧЕНИЕ РАВНО 1, ТО РЕГИСТРАЦИЯ ОШИБОК&lt;br /&gt;
        РАЗРЕШЕНА ДЛЯ ЭТОЙ СИСТЕМЫ;&lt;br /&gt;
ERL$S - ЭТО УСЛОВИЕ ОПРЕДЕЛЯЕТ ЧИСЛО 256-СЛОВНЫХО БЛОКОВ,&lt;br /&gt;
        ИСПОЛЬЗУЕМЫХ ПОД ВНУТРЕННИЙ БУФЕР РЕГИСТРАЦИИ В&lt;br /&gt;
        МОНИТОРЕ SJ;&lt;br /&gt;
ERL$U - МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ИНДИВИДУАЛЬНЫХ ПРИВОДОВ&lt;br /&gt;
        УСТРОЙСТВ, ДЛЯ КОТОРЫХ РЕГИСТРАТОР ОШИБОК СОБИРАЕТ&lt;br /&gt;
        СТАТИСТИКУ; ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ РАВНО 10,&lt;br /&gt;
        МАКСИМАЛЬНОЕ ЧИСЛО ПРИВОДОВ РАВНО 30; КАЖДЫЙ ПРИВОД&lt;br /&gt;
        ДОБАВЛЯЕТ СЕМЬ СЛОВ В РЕГИСТРАТОР ОШИБОК; ДЛЯ&lt;br /&gt;
        КАЖДОГО БЛОКА ТРЕБУЕТСЯ ОДНА ПОЗИЦИЯ (НАПРИМЕР, ДЛЯ&lt;br /&gt;
        СИСТЕМЫ С ДИСКАМИ СМ-5400 ТРЕБУЕТСЯ ДВЕ ПОЗИЦИИ);&lt;br /&gt;
        ЗНАЧЕНИЕ ЭТОЙ ПЕРЕМЕННОЙ УСТАНАВЛИВАЕТСЯ ПРИ ОТВЕТЕ&lt;br /&gt;
        НА ВОПРОС ВО ВРЕМЯ ГЕНЕРАЦИИ СИСТЕМЫ.&lt;br /&gt;
     НЕОБХОДИМО ПЕРЕСМОТРЕТЬ ТРЕБОВАНИЯ, ПРЕД'ЯВЛЯЕМЫЕ К&lt;br /&gt;
ПАМЯТИ И ВРЕМЕНИ, ДО ИСПОЛЬЗОВАНИЯ РЕГИСТРАТОРА ОШИБОК, ТАК&lt;br /&gt;
КАК РЕГИСТРАТОР ОШИБОК СОЗДАЕТ ОПРЕДЕЛЕННОЕ МИНИМАЛЬНОЕ&lt;br /&gt;
КОЛИЧЕСТВО ДОПОЛНИТЕЛЬНЫХ ГЛАВ ДЛЯ КАЖДОЙ ПЕРЕДАЧИ&lt;br /&gt;
ВВОДА-ВЫВОДА, И САМ РЕГИСТРАТОР ОШИБОК ИСПОЛЬЗУЕТ ПОЧТИ 2K&lt;br /&gt;
СЛОВ ПАМЯТИ. ОДНАКО РЕГИСТРАТОР ОШИБОК МОЖЕТ ВЫПОЛНЯТЬСЯ НЕ&lt;br /&gt;
КАЖДЫЙ РАЗ, ЧТОБЫ ТРЕБУЮЩАЯСЯ ЕМУ ПАМЯТЬ БЫЛА ДОСТУПНА&lt;br /&gt;
ПРОГРАММАМ ПОЛЬЗОВАТЕЛЯ И ВЫЗОВЫ ДРАЙВЕРОМ РЕГИСТРАТОРА&lt;br /&gt;
ОШИБОК ВОЗВРАЩАЛИСЬ БЫ НЕМЕДЛЕННО. САМЫЙ УДОБНЫЙ СПОСОБ&lt;br /&gt;
ИСПОЛЬЗОВАНИЯ РЕГИСТРАЦИИ ОШИБОК СИСТЕМЫ - ЭТО ИСПОЛЬЗОВАНИЕ&lt;br /&gt;
ЕЕ В ВИДЕ ПРОВЕРКИ, КОГДА ЕСТЬ СОМНЕНИЯ В НАДЕЖНОСТИ&lt;br /&gt;
СИСТЕМЫ.&lt;br /&gt;
     ВСЕ КОДЫ ДРАЙВЕРА, КОТОРЫЕ ПРЕДНАЗНАЧЕНЫ ТОЛЬКО ДЛЯ&lt;br /&gt;
РЕГИСТРАЦИИ ОШИБОК, ДОЛЖНЫ БЫТЬ РАЗМЕЩЕНЫ СРЕДИ КОМАНД&lt;br /&gt;
УСЛОВНОЙ ТРАНСЛЯЦИИ. ЭТИ КОМАНДЫ ВКЛЮЧАЮТ КОД РЕГИСТРАЦИИ&lt;br /&gt;
ОШИБОК, ЕСЛИ СИМВОЛ ERL$G=1, И ОПУСКАЮТ ЕГО В ПРОТИВНОМ&lt;br /&gt;
СЛУЧАЕ. ТАКИМ ОБРАЗОМ, КОДЫ РЕГИСТРАЦИИ ОШИБОК ИЛИ&lt;br /&gt;
ВКЛЮЧАЮТСЯ В ДРАЙВЕР ПРИ ЕГО ТРАНСЛИРОВАНИИ, ИЛИ НЕТ.&lt;br /&gt;
&lt;br /&gt;
     5.2.1. КОГДА И КАК ВЫЗЫВАТЬ РЕГИСТРАТОР ОШИБОК&lt;br /&gt;
     ДРАЙВЕР УСТРОЙСТВА ВЫЗЫВАЕТ РЕГИСТРАТОР ОШИБОК ПОСЛЕ&lt;br /&gt;
КАЖДОЙ ПЕРЕДАЧИ ВВОДА-ВЫВОДА, НЕЗАВИСИМО ОТ ТОГО, БЫЛА&lt;br /&gt;
ПЕРЕДАЧА УСПЕШНОЙ ИЛИ НЕТ. ЕСЛИ ПЕРЕДАЧА БЫЛА ОШИБОЧНОЙ,&lt;br /&gt;
ДРАЙВЕР ВЫЗЫВАЕТ РЕГИСТРАТОР ОШИБОК ОДИН РАЗ ДЛЯ КАЖДОЙ&lt;br /&gt;
ПОВТОРНОЙ ПОПЫТКИ ПЕРЕДАЧИ И ЕЩЕ РАЗ, КОГДА РАЗРЕШЕННОЕ&lt;br /&gt;
КОЛИЧЕСТВО ПОВТОРНЫХ ПОПЫТОК УЖЕ ИСЧЕРПАНО. ТАК КАК ВЫЗОВЫ&lt;br /&gt;
РЕГИСТРАТОРА ОШИБОК ДОЛЖНЫ БЫТЬ УПОРЯДОЧЕНЫ, ДРАЙВЕР МОЖЕТ&lt;br /&gt;
ВЫЗЫВАТЬ ЕГО ТОЛЬКО ВО ВРЕМЯ ИНИЦИИРОВАНИЯ ВВОДА-ВЫВОДА ИЛИ&lt;br /&gt;
СЛЕДОМ ЗА ВЫЗОВОМ ЗАПРОСА .FORK.&lt;br /&gt;
     ДРАЙВЕР ДОЛЖЕН УСТАНОВИТЬ РЕГИСТРЫ ВЫЗОВА РЕГИСТРАТОРА&lt;br /&gt;
ОШИБОК.&lt;br /&gt;
&lt;br /&gt;
     5.2.1.1. РЕГИСТРАЦИЯ УСПЕШНОЙ ПЕРЕДАЧИ&lt;br /&gt;
     РЕГИСТРЫ R4 И R5 УСТАНАВЛИВАЮТСЯ ПЕРЕД ВЫЗОВОМ&lt;br /&gt;
РЕГИСТРАТОРА ОШИБОК ПОСЛЕ КАЖДОЙ УСПЕШНОЙ ПЕРЕДАЧИ СЛЕДУЮЩИМ&lt;br /&gt;
ОБРАЗОМ:&lt;br /&gt;
 R5 - ДОЛЖЕН УКАЗЫВАТЬ НА ТРЕТЬЕ СЛОВО ТЕКУЩЕГО ЭЛЕМЕНТА&lt;br /&gt;
      ОЧЕРЕДИ;&lt;br /&gt;
 R4 - СОДЕРЖИТ ДВА БАЙТА ИНФОРМАЦИИ: СТАРШИЙ БАЙТ ЯВЛЯЕТСЯ&lt;br /&gt;
      БАЙТОМ ИДЕНТИФИКАЦИИ УСТРОЙСТВА, DD$COD, МЛАДШИЙ БАЙТ&lt;br /&gt;
      РАВЕН -1.&lt;br /&gt;
&lt;br /&gt;
     5.2.1.2. РЕГИСТРАЦИЯ НЕВОССТАНОВИМОЙ ОШИБКИ&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ РЕГИСТРАТОРА ОШИБОК НЕОБХОДИМО УСТАНОВИТЬ&lt;br /&gt;
РЕГИСТРЫ С R2 ПО R5 ПОСЛЕ ВОЗНИКНОВЕНИЯ НЕВОССТАНОВИМОЙ&lt;br /&gt;
ОШИБКИ. ПРИМЕРАМИ НЕВОССТАНОВИМЫХ ОШИБОК ЯВЛЯЮТСЯ:&lt;br /&gt;
НЕАВТОНОМНОСТЬ УСТРОЙСТВА, БЛОКИРОВКА УСТРОЙСТВА ЗАПИСИ,&lt;br /&gt;
ОТСУТСТВИЕ ЛЕНТЫ В ПЕРФОЛЕНТОЧНОМ УСТРОЙСТВЕ ВВОДА И Т.Д..&lt;br /&gt;
ВОССТАНОВИМАЯ ОШИБКА, КОТОРАЯ ИСЧЕРПАЛА ЧИСЛО ПОВТОРНЫХ&lt;br /&gt;
ПЕРЕДАЧ, РАССМАТРИВАЕТСЯ КАК НЕВОССТАНОВИМАЯ ОШИБКА.&lt;br /&gt;
R5 - ДОЛЖЕН УКАЗЫВАТЬ НА ТРЕТЬЕ СЛОВО ТЕКУЩЕГО ЭЛЕМЕНТА&lt;br /&gt;
     ОЧЕРЕДИ;&lt;br /&gt;
R4 - СОДЕРЖИТ ДВА БАЙТА ИНФОРМАЦИИ: СТАРШИЙ БАЙТ ЯВЛЯЕТСЯ&lt;br /&gt;
     БАЙТОМ ИДЕНТИФИКАЦИИ УСТРОЙСТВА, DD$COD; МЛАДШИЙ БАЙТ&lt;br /&gt;
     ЯВЛЯЕТСЯ 0;&lt;br /&gt;
R3 - СОДЕРЖИТ ДВА БАЙТА ИНФОРМАЦИИ: СТАРШИЙ БАЙТ СОДЕРЖИТ&lt;br /&gt;
     ОБЩЕЕ ЧИСЛО ПОВТОРНЫХ ПОПЫТОК, РАЗРЕШЕННЫХ ДЛЯ ЭТОЙ&lt;br /&gt;
     ПЕРЕДАЧИ; МЛАДШИЙ БАЙТ СОДЕРЖИТ ЧИСЛО РЕГИСТРОВ&lt;br /&gt;
     УСТРОЙСТВА, СОДЕРЖИМОЕ КОТОРЫХ ДОЛЖНО ПОЯВЛЯТЬСЯ В&lt;br /&gt;
     ПРОТОКОЛЕ ОШИБОК;&lt;br /&gt;
R2 - УКАЗЫВАЕТ НА БУФЕР В ДРАЙВЕРЕ, КОТОРЫЙ СОДЕРЖИТ&lt;br /&gt;
     РЕГИСТРЫ УСТРОЙСТВА ДЛЯ РЕГИСТРАЦИИ.&lt;br /&gt;
&lt;br /&gt;
     5.2.1.3. РЕГИСТРАЦИЯ ВОССТАНОВИМОЙ ОШИБКИ&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ РЕГИСТРАТОРА ОШИБОК НЕОБХОДИМО УСТАНОВИТЬ&lt;br /&gt;
РЕГИСТРЫ R2-R5 ПОСЛЕ ВОЗНИКНОВЕНИЯ ВОССТАНОВИМОЙ ОШИБКИ.&lt;br /&gt;
ОБЫЧНО ВОССТАНОВИМЫЕ ОШИБКИ МОГУТ БЫТЬ ИСПРАВЛЕНЫ&lt;br /&gt;
ПОСРЕДСТВОМ ПОВТОРНОЙ ПОПЫТКИ ПЕРЕДАЧИ. ПРИМЕРАМИ&lt;br /&gt;
ВОССТАНОВИМЫХ ОШИБОК ЯВЛЯЮТСЯ: ОШИБКИ ВРЕМЕНИ ВЫПОЛНЕНИЯ,&lt;br /&gt;
АППАРАТНЫЕ ОШИБКИ СЧИТЫВАНИЯ ИЛИ ЗАПИСИ.&lt;br /&gt;
     НЕОБХОДИМО УСТАНОВИТЬ В ДРАЙВЕРЕ СЧЕТЧИК ОБЩЕГО ЧИСЛА&lt;br /&gt;
ПОВТОРНЫХ ПОПЫТОК, РАЗРЕШЕННЫХ ДЛЯ КАЖДОЙ ПЕРЕДАЧИ. СЧЕТЧИК&lt;br /&gt;
ДОЛЖЕН УМЕНЬШАТЬСЯ ВСЯКИЙ РАЗ, КОГДА ВЫПОЛНЯЕТСЯ ПОВТОРНАЯ&lt;br /&gt;
ПЕРЕДАЧА ДЛЯ ВОССТАНОВИМОЙ ОШИБКИ. КОГДА СЧЕТЧИК ДОСТИГАЕТ&lt;br /&gt;
0, РЕГИСТРАТОР ОШИБОК РАССМАТРИВАЕТ ЭТУ ОШИБКУ КАК&lt;br /&gt;
НЕВОССТАНОВИМУЮ. ПРИ ВОССТАНОВИМОЙ ОШИБКЕ СООБЩЕНИЕ ОБ&lt;br /&gt;
ОШИБКЕ ПЕЧАТАЕТСЯ ОТДЕЛЬНОЙ ЗАПИСЬЮ ДЛЯ КАЖДОГО ПОВТОРА&lt;br /&gt;
ДАННОЙ ПЕРЕДАЧИ.&lt;br /&gt;
     СООБЩЕНИЯ ОБО ВСЕХ ПОВТОРНЫХ ПЕРЕДАЧАХ ПЕЧАТАЮТСЯ ДАЖЕ&lt;br /&gt;
В ТОМ СЛУЧАЕ, КОГДА РЕГИСТРЫ БЫЛИ ИДЕНТИЧНЫ. СООБЩЕНИЕ НЕ&lt;br /&gt;
ДЕЛАЕТ РАЗЛИЧИЙ МЕЖДУ ВОССТАНОВИМОЙ И НЕВОССТАНОВИМОЙ&lt;br /&gt;
ОШИБКАМИ. ОНО ПЕЧАТАЕТ ТОЛЬКО СОДЕРЖИМОЕ РЕГИСТРОВ ВО ВРЕМЯ&lt;br /&gt;
ОШИБКИ И ЗНАЧЕНИЕ СЧЕТЧИКА ПОВТОРНЫХ ПЕРЕДАЧ.&lt;br /&gt;
НЕВОССТАНОВИМУЮ ОШИБКУ МОЖНО УЗНАТЬ ЛИШЬ НА ВЫХОДЕ, ТАК КАК&lt;br /&gt;
ОНА БУДЕТ ПОЯВЛЯТЬСЯ СО СЧЕТЧИКОМ ПОВТОРНЫХ ПЕРЕДАЧ, РАВНЫМ&lt;br /&gt;
0.&lt;br /&gt;
R5 - ДОЛЖЕН УКАЗЫВАТЬ НА ТРЕТЬЕ СЛОВО ТЕКУЩЕГО ЭЛЕМЕНТА&lt;br /&gt;
     ОЧЕРЕДИ;&lt;br /&gt;
R4 - СОДЕРЖИТ ДВА БАЙТА ИНФОРМАЦИИ: СТАРШИЙ БАЙТ ЯВЛЯЕТСЯ&lt;br /&gt;
     БАЙТОМ ИДЕНТИФИКАЦИИ УСТРОЙСТВА, DD$COD; МЛАДШИЙ БАЙТ&lt;br /&gt;
     ЯВЛЯЕТСЯ ТЕКУЩИМ ЗНАЧЕНИЕМ СЧЕТЧИКА ПОВТОРНЫХ ПЕРЕДАЧ;&lt;br /&gt;
R3 - СОДЕРЖИТ ДВА БАЙТА ИНФОРМАЦИИ: СТАРШИЙ БАЙТ СОДЕРЖИТ&lt;br /&gt;
     ОБЩЕЕ ЧИСЛО ПОВТОРНЫХ ПОПЫТОК, РАЗРЕШЕННЫХ ДЛЯ ЭТОЙ&lt;br /&gt;
     ПЕРЕДАЧИ; МЛАДШИЙ БАЙТ СОДЕРЖИТ ЧИСЛО РЕГИСТРОВ&lt;br /&gt;
     УСТРОЙСТВА, СОДЕРЖИМОЕ КОТОРЫХ ДОЛЖНО ПОЯВЛЯТЬСЯ В&lt;br /&gt;
     СООБЩЕНИИ ОБ ОШИБКЕ;&lt;br /&gt;
R2 - УКАЗЫВАЕТ БУФЕР В ДРАЙВЕРЕ, КОТОРЫЙ СОДЕРЖИТ РЕГИСТРЫ&lt;br /&gt;
     УСТРОЙСТВА ДЛЯ РЕГИСТРАЦИИ.&lt;br /&gt;
&lt;br /&gt;
     5.2.1.4. РАЗЛИЧИЯ МЕЖДУ ВОССТАНОВИМОЙ (SOFT) И&lt;br /&gt;
НЕВОССТАНОВИМОЙ (HARD) ОШИБКАМИ&lt;br /&gt;
     САМ РЕГИСТРАТОР ОШИБОК НЕ РАЗЛИЧАЕТ ВОССТАНОВИМЫЕ И&lt;br /&gt;
НЕВОССТАНОВИМЫЕ ОШИБКИ И ЗАПИСЫВАЕТ ОДНУ И ТУ ЖЕ ИНФОРМАЦИЮ&lt;br /&gt;
В ОБОИХ СЛУЧАЯХ. ОДНАКО ПОСРЕДСТВОМ ПРОВЕРКИ СООБЩЕНИЯ&lt;br /&gt;
МОЖНО ОПРЕДЕЛИТЬ НЕВОССТАНОВИМУЮ ОШИБКУ, ПОТОМУ ЧТО В ЭТОМ&lt;br /&gt;
СЛУЧАЕ ПЕРЕДАЧА ИСЧЕРПАЕТ ВСЕ СВОИ ПОВТОРНЫЕ ПОПЫТКИ И БУДЕТ&lt;br /&gt;
ИМЕТЬ ЗАПИСИ ДЛЯ КАЖДОЙ ИЗ ЭТИХ ПОВТОРНЫХ ПОПЫТОК, В ТОМ&lt;br /&gt;
ЧИСЛЕ И ТУ, ДЛЯ КОТОРОЙ СЧЕТЧИК ПОВТОРНЫХ ПЕРЕДАЧ РАВЕН 0.&lt;br /&gt;
     В СЛУЧАЕ, КОГДА ОШИБКИ МОГУТ БЫТЬ ИСПРАВЛЕНЫ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЕМ, ТАКИЕ, КАК АВТОНОМНОЕ УСТРОЙСТВО ИЛИ&lt;br /&gt;
ОГРАНИЧЕННАЯ ЗАПИСЬ, РЕГИСТРАТОР ОШИБОК МОЖЕТ НЕ ВЫЗЫВАТЬСЯ.&lt;br /&gt;
ОБЫЧНО СООБЩАЕТСЯ ЛИШЬ ОБ АППАРАТНЫХ ОШИБКАХ ДИСКА ИЛИ&lt;br /&gt;
ЛЕНТЫ, ТАК КАК ЭТИ ОШИБКИ РАССМАТРИВАЮТСЯ С ТОЧКИ ЗРЕНИЯ&lt;br /&gt;
НАДЕЖНОСТИ УСТРОЙСТВ.&lt;br /&gt;
&lt;br /&gt;
     5.2.1.5. ВЫЗОВ РЕГИСТРАТОРА ОШИБОК&lt;br /&gt;
 ПОСЛЕ ТОГО, КАК НЕОБХОДИМЫЕ РЕГИСТРЫ БУДУТ УСТАНОВЛЕНЫ,&lt;br /&gt;
МОЖНО ВЫЗВАТЬ РЕГИСТРАТОР ОШИБОК:&lt;br /&gt;
     JSR PC,@$ELPTR&lt;br /&gt;
ГДЕ $ELPTR - ЕГО УКАЗАТЕЛЬ В РЕЗИДЕНТНОМ МОНИТОРЕ.&lt;br /&gt;
     ЗАПРОС .DREND ОТВОДИТ МЕСТО В ДРАЙВЕРЕ ДЛЯ ЭТОГО&lt;br /&gt;
УКАЗАТЕЛЯ. УКАЗАТЕЛЬ ЗАПОЛНЯЕТСЯ ВО ВРЕМЯ ЗАГРУЗКИ (ДЛЯ&lt;br /&gt;
СИСТЕМНОГО УСТРОЙСТВА) ИЛИ ПО ЗАПРОСУ .FETCH ИЛИ ПО КОМАНДЕ&lt;br /&gt;
МОНИТОРА LOAD (ДЛЯ УСТРОЙСТВА ДАННЫХ). ЕСЛИ РЕГИСТРАТОР&lt;br /&gt;
ОШИБОК НЕ РАБОТАЕТ, ТО МОНИТОР ВОЗВРАЩАЕТСЯ НЕПОСРЕДСТВЕННО&lt;br /&gt;
К ДРАЙВЕРУ. ЕСЛИ РЕГИСТРАТОР ОШИБОК РАБОТАЕТ, ТО СЛОВО&lt;br /&gt;
СВЯЗИ В RMON СОДЕРЖИТ ЕГО ТОЧКУ ВХОДА.&lt;br /&gt;
&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
&lt;br /&gt;
$ERLOG: MOV (PC)+,-(SP) ;ВХОДИТ ЗДЕСЬ ИЗ ДРАЙВЕРА,&lt;br /&gt;
                                ;ПОМЕЩАЯ СЛЕДУЮЩЕЕ СЛОВО&lt;br /&gt;
                                ;В СТЕК&lt;br /&gt;
$ELHND::.WORD 0 ;0, ЕСЛИ РЕГИСТРАТОР ОШИБОК&lt;br /&gt;
                                ;НЕ РАБОТАЕТ; ИНАЧЕ, СОДЕР-&lt;br /&gt;
                                ;ЖИТ ТОЧКУ ВХОДА РЕГИСТРА-&lt;br /&gt;
                                ;ТОРА ОШИБОК&lt;br /&gt;
        BNE 1$ ;ПЕРЕХОД, ЕСЛИ ЗАГРУЖЕН&lt;br /&gt;
        TST (SP)+ ;ОЧИСТКА СТЕКА&lt;br /&gt;
1$: RTS PC ;ВЫЗОВ РЕГИСТРАТОРА ОШИБОК&lt;br /&gt;
                                ;ИЛИ ВОЗВРАТ К ДРАЙВЕРУ&lt;br /&gt;
&lt;br /&gt;
     ПРИВЕДЕННЫЕ ВЫШЕ СТРОКИ КОДА ИЗ RMON ПОКАЗЫВАЮТ, КАК&lt;br /&gt;
ВЫПОЛНЯЕТСЯ ВЫЗОВ РЕГИСТРАТОРА ОШИБОК.&lt;br /&gt;
     КОМАНДЫ МОНИТОРА SRUN ИЛИ FRUN УСТАНАВЛИВАЮТ ТОЧКУ&lt;br /&gt;
ВХОДА РЕГИСТРАТОРА ОШИБОК; КОМАНДА UNLOAD EL ОБНУЛЯЕТ&lt;br /&gt;
$ELHND.&lt;br /&gt;
     ПРИ ВОЗВРАЩЕНИИ ИЗ ВЫЗОВА РЕГИСТРАТОРА ОШИБОК, РЕГИСТРЫ&lt;br /&gt;
R0-R3 ВОССТАНАВЛИВАЮТСЯ В ДРАЙВЕРЕ, R4 И R5 - РАЗРУШЕНЫ.&lt;br /&gt;
&lt;br /&gt;
     5.3. СПЕЦИАЛЬНЫЕ ФУНКЦИИ&lt;br /&gt;
     ИНОГДА ДРАЙВЕРАМ НЕОБХОДИМО ВЫПОЛНЯТЬ ДЕЙСТВИЯ&lt;br /&gt;
УКАЗАННЫХ УСТРОЙСТВ, ДЛЯ КОТОРЫХ НЕТ СООТВЕТСТВУЮЩИХ&lt;br /&gt;
ПРОГРАММНЫХ ЗАПРОСОВ ФОДОС-2. ПРИМЕРЫ ТАКИХ ДЕЙСТВИЙ:&lt;br /&gt;
ПЕРЕМОТКА МАГНИТНЫХ ЛЕНТ И СЧИТЫВАНИЕ ИЛИ ЗАПИСЬ АБСОЛЮТНЫХ&lt;br /&gt;
СЕКТОРОВ НА ГИБКИХ ДИСКАХ. ПРОГРАММНЫЙ ЗАПРОС .SPFUN&lt;br /&gt;
ОБЕСПЕЧИВАЕТ СРЕДСТВА ПРОГРАММАМ ДЛЯ ИНИЦИАЦИИ ТАКИХ&lt;br /&gt;
СПЕЦИАЛЬНЫХ ФУНКЦИЙ. КОГДА ПРОГРАММА ВЫДАЕТ ЗАПРОС .SPFUN,&lt;br /&gt;
ДОЛЖЕН ПРИСУТСТВОВАТЬ И КОД СПЕЦИАЛЬНОЙ ФУНКЦИИ В ВИДЕ&lt;br /&gt;
ОДНОГО ИЗ АРГУМЕНТОВ. ЭТОТ КОД СООБЩАЕТ ДРАЙВЕРУ, КАКИЕ&lt;br /&gt;
СПЕЦИАЛЬНЫЕ ФУНКЦИИ ОН ДОЛЖЕН ВЫПОЛНИТЬ. НАПРИМЕР, КОДОМ,&lt;br /&gt;
КОТОРЫЙ ПРИКАЗЫВАЕТ ДРАЙВЕРУ МТ ВЫПОЛНЯТЬ АВТОНОМНУЮ&lt;br /&gt;
ПЕРЕМОТКУ МАГНИТНОЙ ЛЕНТЫ, ЯВЛЯЕТСЯ 372.&lt;br /&gt;
&lt;br /&gt;
     5.3.1. ПРОГРАММНЫЙ ЗАПРОС .SPFUN&lt;br /&gt;
     ФОРМАТ ПРОГРАММНОГО ЗАПРОСА .SPFUN СЛЕДУЮЩИЙ:&lt;br /&gt;
     .SPFUN AREA,CHAN,FUNC,BUF,WCNT,BLK[,CRTN]&lt;br /&gt;
     ПОЛНОЕ ОПИСАНИЕ АРГУМЕНТОВ ДЛЯ .SPFUN СМ. В [1].&lt;br /&gt;
     ДЛЯ ИСПОЛЬЗОВАНИЯ ВЫЗОВА СПЕЦИАЛЬНЫХ ФУНКЦИЙ В ДРАЙВЕРЕ&lt;br /&gt;
УСТРОЙСТВА НЕОБХОДИМО ОПРЕДЕЛИТЬ ИНТЕРФЕЙС МЕЖДУ ПРОГРАММНЫМ&lt;br /&gt;
ЗАПРОСОМ И ДРАЙВЕРОМ УСТРОЙСТВА. ТАКИМ ОБРАЗОМ, ЗНАЧЕНИЯ&lt;br /&gt;
АРГУМЕНТОВ BUF, WCNT И BLK ЗАВИСЯТ ОТ КОНКРЕТНЫХ СПЕЦИАЛЬНЫХ&lt;br /&gt;
ФУНКЦИЙ, КОТОРЫЕ ВЫЗЫВАЮТ ЗАПРОС. ЕСЛИ ЗАПРОС ВЫЗЫВАЕТ&lt;br /&gt;
ПЕРЕДАЧУ ДАННЫХ, АРГУМЕНТЫ ИМЕЮТ СВОИ ОБЫЧНЫЕ ЗНАЧЕНИЯ.&lt;br /&gt;
ОДНАКО, ХОТЯ МОНИТОР ОСУЩЕСТВЛЯЕТ ПРОВЕРКУ, ЧТОБЫ BUF&lt;br /&gt;
ЯВЛЯЛСЯ ДЕЙСТВИТЕЛЬНЫМ АДРЕСОМ В ОБЛАСТИ ЗАДАНИЯ, ОН НЕ&lt;br /&gt;
ГАРАНТИРУЕТ, ЧТО BUF+WCNT ЕЩЕ НАХОДИТСЯ В ОБЛАСТИ ЗАДАНИЯ.&lt;br /&gt;
ПОЭТОМУ НЕОБХОДИМО УКАЗЫВАТЬ ДОПУСТИМЫЕ ЗНАЧЕНИЯ, ЕСЛИ&lt;br /&gt;
ИСПОЛЬЗУЕТСЯ ЗАПРОС .SPFUN ДЛЯ ПЕРЕДАЧИ ДАННЫХ.&lt;br /&gt;
     ЕСЛИ ВЫЗОВ СПЕЦИАЛЬНОЙ ФУНКЦИИ ЗАКЛЮЧАЕТСЯ В ВОЗВРАТЕ&lt;br /&gt;
ОДНОГО ЗНАЧЕНИЯ, ТО BUF ДОЛЖЕН БЫТЬ ОДНОСЛОВНОЙ БУФЕРНОЙ&lt;br /&gt;
ОБЛАСТЬЮ. МОЖНО ИЗМЕНЯТЬ WCNT И BLK ПО СВОЕМУ УСМОТРЕНИЮ.&lt;br /&gt;
ОНИ МОГУТ БЫТЬ СПЕЦИФИКАЦИЯМИ ОДНОГО СЛОВА, УКАЗАТЕЛЯМИ&lt;br /&gt;
БОЛЬШИХ БУФЕРОВ И Т.Д., ТАК КАК ДРАЙВЕР ИНТЕРПРЕТИРУЕТ ИХ В&lt;br /&gt;
СООТВЕТСТВИИ С КОДОМ СПЕЦИАЛЬНОЙ ФУНКЦИИ. МОНИТОР НЕ&lt;br /&gt;
ИЗМЕНЯЕТ ИХ, КОГДА ПЕРЕДАЕТ В ДРАЙВЕР. НАПРИМЕР, ОН НЕ&lt;br /&gt;
ИЗМЕНЯЕТ СЧЕТЧИК СЛОВ ИЗ ПОЛОЖИТЕЛЬНОГО В ОТРИЦАТЕЛЬНЫЙ.&lt;br /&gt;
&lt;br /&gt;
     5.3.2. ПОДДЕРЖКА СПЕЦИАЛЬНЫХ ФУНКЦИЙ В ДРАЙВЕРЕ&lt;br /&gt;
УСТРОЙСТВА&lt;br /&gt;
     ДЛЯ ОСУЩЕСТВЛЕНИЯ ПОДДЕРЖКИ ВЫЗОВА СПЕЦИАЛЬНЫХ ФУНКЦИЙ&lt;br /&gt;
В ДРАЙВЕРЕ УСТРОЙСТВА НЕОБХОДИМО ЗАДАТЬ SPFUN$, ОДИН ИЗ&lt;br /&gt;
РАЗРЯДОВ ЗНАЧЕНИЯ STAT, КОТОРОЕ ПРЕДУСМОТРЕНО ДЛЯ ЗАПРОСА&lt;br /&gt;
.DRDEF. ЭТО ЗНАЧИТ, ЧТО ДРАЙВЕР ДОПУСКАЕТ ИСПОЛЬЗОВАНИЕ&lt;br /&gt;
СПЕЦИАЛЬНЫХ ФУНКЦИЙ.&lt;br /&gt;
     ЗАТЕМ ОПРЕДЕЛЯЕТСЯ СИМВОЛИКА В ДРАЙВЕРЕ ДЛЯ&lt;br /&gt;
ПРЕДСТАВЛЕНИЯ ТИПОВ СПЕЦИАЛЬНЫХ ФУНКЦИЙ, КОТОРЫЕ МОЖЕТ&lt;br /&gt;
ВЫПОЛНИТЬ ДРАЙВЕР. НАПРИМЕР, ДРАЙВЕР УСТРОЙСТВА ГИБКИХ&lt;br /&gt;
ДИСКОВ С ДВОЙНОЙ ПЛОТНОСТЬЮ ЗАПИСИ DY ОПРЕДЕЛЯЕТ СЛЕДУЮЩИЕ&lt;br /&gt;
КОДЫ СПЕЦИАЛЬНЫХ ФУНКЦИЙ:&lt;br /&gt;
&lt;br /&gt;
        SIZ$FN =373 ;УСТАНАВЛИВАЕТ РАЗМЕР УСТРОЙСТВА&lt;br /&gt;
        WDD$FN =375 ;ЗАПИСЫВАЕТ МЕТКУ УДАЛЕННЫХ ДАННЫХ&lt;br /&gt;
        WRT$FN =376 ;ЗАПИСЫВАЕТ УКАЗАННЫЙ СЕКТОР&lt;br /&gt;
        RED$FN =377 ;СЧИТЫВАЕТ УКАЗАННЫЙ СЕКТОР&lt;br /&gt;
&lt;br /&gt;
     ВСЕ КОДЫ СПЕЦИАЛЬНЫХ ФУНКЦИЙ ДОЛЖНЫ БЫТЬ ОТРИЦАТЕЛЬНЫМИ&lt;br /&gt;
ЗНАЧЕНИЯМИ БАЙТА (Т.Е. В ДИАПАЗОНЕ ВОСЬМЕРИЧНЫХ ЧИСЕЛ ОТ&lt;br /&gt;
200 ДО 377); РЕКОМЕНДУЕТСЯ, ЧТОБЫ ОПРЕДЕЛЕННЫЙ КОД&lt;br /&gt;
СПЕЦИАЛЬНОЙ ФУНКЦИИ ПРЕДСТАВЛЯЛ ОДНУ И ТУ ЖЕ ОПЕРАЦИЮ НА&lt;br /&gt;
ВСЕХ УСТРОЙСТВАХ. ПОЭТОМУ НЕОБХОДИМО ОЗНАКОМИТЬСЯ СО ВСЕМИ&lt;br /&gt;
УЖЕ СУЩЕСТВУЮЩИМИ КОДАМИ СПЕЦИАЛЬНЫХ ФУНКЦИЙ (СМ. [1]),&lt;br /&gt;
ЧТОБЫ УБЕДИТЬСЯ, ЕСТЬ ЛИ СООТВЕТСТВУЮЩИЙ ДАННОЙ СПЕЦИАЛЬНОЙ&lt;br /&gt;
ФУНКЦИИ КОД ИЛИ ОН ОТСУТСТВУЕТ. ЕСЛИ КОД УЖЕ СУЩЕСТВУЕТ, ТО&lt;br /&gt;
ЕГО СМЕЛО МОЖНО ИСПОЛЬЗОВАТЬ, ЕСЛИ ЖЕ ТАКОВОЙ ОТСУТСТВУЕТ,&lt;br /&gt;
ТО НЕОБХОДИМО ПРИСВОИТЬ ЭТОЙ ФУНКЦИИ ЛЮБОЙ СВОБОДНЫЙ КОД,&lt;br /&gt;
НАЧИНАЯ С 200 В СТОРОНУ КОДА 377. ЭТО ПОМОЖЕТ ИЗБЕЖАТЬ В&lt;br /&gt;
БУДУЩЕМ КОНФЛИКТОВ В ВИДУ ПОЯВЛЕНИЯ НОВЫХ КОДОВ СЛЕДУЮЩИХ&lt;br /&gt;
ВЕРСИЙ СИСТЕМЫ.&lt;br /&gt;
     КОГДА ДРАЙВЕР ВВОДИТСЯ ДЛЯ ПЕРЕДАЧИ ВВОДА-ВЫВОДА, ОН&lt;br /&gt;
ДОЛЖЕН ПРОВЕРИТЬ ЧЕТВЕРТОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ, ЧТОБЫ&lt;br /&gt;
УБЕДИТЬСЯ, ЯВЛЯЕТСЯ ЛИ ОНО ЗАПРОСОМ СПЕЦИАЛЬНОЙ ФУНКЦИИ.&lt;br /&gt;
Q.FUNC, ЯВЛЯЮЩИЙСЯ МЛАДШИМ БАЙТОМ ЧЕТВЕРТОГО СЛОВА ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ ВВОДА-ВЫВОДА, СОДЕРЖИТ КОД СПЕЦИАЛЬНОЙ ФУНКЦИИ. В&lt;br /&gt;
СТАНДАРТНЫХ ЗАПРОСАХ ВВОДА-ВЫВОДА ДЛЯ ОПЕРАЦИИ СЧИТЫВАНИЯ,&lt;br /&gt;
ЗАПИСИ ИЛИ УСТАНОВКИ ЭТОТ БАЙТ РАВЕН 0. ДЛЯ ВЫЗОВОВ&lt;br /&gt;
СПЕЦИАЛЬНОЙ ФУНКЦИИ ЭТОТ БАЙТ РАВЕН ОТРИЦАТЕЛЬНОМУ ЗНАЧЕНИЮ&lt;br /&gt;
КОДА СПЕЦИАЛЬНОЙ ФУНКЦИИ. НЕОБХОДИМО ПРОВЕРЯТЬ, ЧТОБЫ ЭТОТ&lt;br /&gt;
КОД БЫЛ ДОПУСТИМЫМ ДЛЯ ДАННОГО УСТРОЙСТВА, В ПРОТИВНОМ&lt;br /&gt;
СЛУЧАЕ, НЕОБХОДИМО УХОДИТЬ НА НЕВОССТАНОВИМУЮ ОШИБКУ.&lt;br /&gt;
     ЕСЛИ ЭТО ЗАПРОС СПЕЦИАЛЬНОЙ ФУНКЦИИ, ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
ИНИЦИИРОВАТЬ ЭТУ ФУНКЦИЮ И ВОЗВРАТИТЬСЯ ПО КОМАНДЕ RTS PC.&lt;br /&gt;
В СЕКЦИИ ОБРАБОТКИ ПРЕРЫВАНИЙ ДРАЙВЕР ДОЛЖЕН ПРОВЕРИТЬ, КАК&lt;br /&gt;
ОБЫЧНО, НАЛИЧИЕ ОШИБОК И ОПРЕДЕЛИТЬ ЗАВЕРШЕНИЕ ОПЕРАЦИИ.&lt;br /&gt;
ДРАЙВЕР ВОЗВРАЩАЕТ ИЛИ ДАННЫЕ, ИЛИ СЛОВО, ИНФОРМИРУЮЩИЕ О&lt;br /&gt;
СОСТОЯНИИ, В БУФЕР ПОЛЬЗОВАТЕЛЯ ВЫЗВАННОЙ ПРОГРАММЫ.&lt;br /&gt;
     ТАК ОСУЩЕСТВЛЯЕТСЯ ВЫПОЛНЕНИЕ СПЕЦИАЛЬНЫХ ФУНКЦИЙ ДЛЯ&lt;br /&gt;
ОПРЕДЛЕННОГО УСТРОЙСТВА, МОЖНО УСТАНОВИТЬ ПРАВИЛО ВЫЗОВА ДЛЯ&lt;br /&gt;
ЭТОЙ ФУНКЦИИ В ПРОГРАММНОМ ЗАПРОСЕ .SPFUN, А ТАКЖЕ ПРАВИЛО&lt;br /&gt;
ВОЗВРАТА ИЗ ДРАЙВЕРА. ДРАЙВЕР ДОЛЖЕН РАССМАТРИВАТЬ&lt;br /&gt;
АРГУМЕНТЫ СООТВЕТСТВЕННО ДЛЯ КАЖДОГО РАЗЛИЧНОГО ВЫЗОВА&lt;br /&gt;
СПЕЦИАЛЬНОЙ ФУНКЦИИ.&lt;br /&gt;
&lt;br /&gt;
     5.3.3. ТОМА ПЕРЕМЕННОГО РАЗМЕРА&lt;br /&gt;
     ДРАЙВЕР МОЖЕТ УПРАВЛЯТЬ УСТРОЙСТВОМ, КОТОРОЕ ДОПУСКАЕТ&lt;br /&gt;
ИСПОЛЬЗОВАНИЕ ТОМОВ ДВУХ (ИЛИ БОЛЬШЕ) РАЗЛИЧНЫХ РАЗМЕРОВ.&lt;br /&gt;
ПРИМЕРОМ ТАКОГО ДРАЙВЕРА ЯВЛЯЕТСЯ ДРАЙВЕР DY, КОТОРЫЙ МОЖЕТ&lt;br /&gt;
ОБСЛУЖИВАТЬ ГИБКИЕ ДИСКИ С ОДИНАРНОЙ ИЛИ С ДВОЙНОЙ&lt;br /&gt;
ПЛОТНОСТЬЮ ЗАПИСИ НА ОДНОМ ПРИВОДЕ УСТРОЙСТВА.&lt;br /&gt;
     ДРАЙВЕР УСТРОЙСТВА, КОТОРОЕ ПОДДЕРЖИВАЕТ ТОМА РАЗЛИЧНЫХ&lt;br /&gt;
РАЗМЕРОВ, ДОЛЖЕН ПЕРЕДАВАТЬ РАЗМЕР В БЛОКАХ САМОГО&lt;br /&gt;
МАЛЕНЬКОГО ТОМА В ПАРАМЕТР SIZE ЗАПРОСА .DRDEF. ЭТО&lt;br /&gt;
ЗНАЧЕНИЕ ВОЗВРАЩАЕТСЯ В ВЫПОЛНЯЮЩУЮСЯ ПРОГРАММУ, КОГДА ОНА&lt;br /&gt;
ВЫДАЕТ ПРОГРАММНЫЙ ЗАПРОС .DSTATUS.&lt;br /&gt;
     ЕСЛИ ВЫПОЛНЯЮЩЕЙСЯ ПРОГРАММЕ ВАЖНО ЗНАТЬ РАЗМЕР&lt;br /&gt;
УСТАНОВЛЕННОГО В ДАННЫЙ МОМЕНТ ТОМА, ПРОГРАММА МОЖЕТ СДЕЛАТЬ&lt;br /&gt;
ВЫЗОВ .SPFUN. ДРАЙВЕР ДОЛЖЕН БЫТЬ В СОСТОЯНИИ ДАТЬ ОТВЕТ&lt;br /&gt;
НА ЗАПРОС ПОСРЕДСТВОМ ВОЗВРАЩЕНИЯ ФАКТИЧЕСКОГО РАЗМЕРА ТОМА&lt;br /&gt;
В ОДНОСЛОВНУЮ БУФЕРНУЮ ОБЛАСТЬ. ДРАЙВЕР ТАКЖЕ ДОЛЖЕН&lt;br /&gt;
ОСУЩЕСТВЛЯТЬ ПОДДЕРЖКУ СПЕЦИАЛЬНЫХ ФУНКЦИЙ, КАК ОПИСАНО&lt;br /&gt;
ВЫШЕ. СТАНДАРТНЫЙ КОД СПЕЦИАЛЬНОЙ ФУНКЦИИ ДЛЯ ОПРЕДЕЛЕНИЯ&lt;br /&gt;
ФАКТИЧЕСКОГО РАЗМЕРА ТОМА РАВЕН 373.&lt;br /&gt;
&lt;br /&gt;
     5.3.4. УСТРОЙСТВА СО СПЕЦИАЛЬНЫМИ СПРАВОЧНИКАМИ&lt;br /&gt;
     МОНИТОР ФОДОС-2 МОЖЕТ СОПРЯГАТЬСЯ С УСТРОЙСТВАМИ&lt;br /&gt;
ФАЙЛОВОЙ СТРУКТУРЫ, ИМЕЮЩИМИ НЕСТАНДАРТНЫЕ (Т.Е. НЕ СИСТЕМЫ&lt;br /&gt;
ФОДОС-2) СПРАВОЧНИКИ. ПРИМЕРОМ ТАКОГО УСТРОЙСТВА ЯВЛЯЕТСЯ&lt;br /&gt;
МАГНИТНАЯ ЛЕНТА. ЕЕ ДРАЙВЕР УСТАНАВЛИВАЕТ РАЗРЯД 12&lt;br /&gt;
(SPECL$) СЛОВА СОСТОЯНИЯ УСТРОЙСТВА. USR ОБРАБАТЫВАЕТ&lt;br /&gt;
ОПЕРАЦИИ СПРАВОЧНИКА ДЛЯ УСТРОЙСТВ СПРАВОЧНОЙ СТРУКТУРЫ&lt;br /&gt;
ФОДОС-2; ДЛЯ СПЕЦИАЛЬНЫХ УСТРОЙСТВ ДРАЙВЕР ДОЛЖЕН&lt;br /&gt;
ОБРАБАТЫВАТЬ ОПЕРАЦИИ СПРАВОЧНИКА, КАК .LOOKUP, .ENTER,&lt;br /&gt;
 .CLOSE И .DELETE, ТАК ЖЕ, КАК И ПЕРЕДАЧУ ДАННЫХ.&lt;br /&gt;
     МОНИТОР ЗАПРАШИВАЕТ СПЕЦИАЛЬНУЮ ОПЕРАЦИЮ СПРАВОЧНИКА&lt;br /&gt;
ПОСРЕДСТВОМ ЗАСЫЛКИ ПОЛОЖИТЕЛЬНОГО НЕНУЛЕВОГО ЗНАЧЕНИЯ В&lt;br /&gt;
БАЙТ КОДА ФУНКЦИИ ЭЛЕМЕНТА ОЧЕРЕДИ. ПОЛОЖИТЕЛЬНЫЕ КОДЫ&lt;br /&gt;
ФУНКЦИЙ ЯВЛЯЮТСЯ СТАНДАРТНЫМИ ДЛЯ ВСЕХ УСТРОЙСТВ. ОНИ&lt;br /&gt;
ПРИВЕДЕНЫ НИЖЕ:&lt;br /&gt;
&lt;br /&gt;
 КОД:          1           2          3           4&lt;br /&gt;
 ФУНКЦИЯ:   ЗАКРЫТИЕ    УДАЛЕНИЕ   ПРОСМОТР      ВВОД&lt;br /&gt;
&lt;br /&gt;
     ЭТИ ФУНКЦИИ СООТВЕТСТВУЮТ ПРОГРАММНЫМ ЗАПРОСАМ .CLOSE,&lt;br /&gt;
.DELETE, .LOOKUP И .ENTER (СМ.[1]). ЗАПРОС .RENAME НЕ&lt;br /&gt;
ПОДДЕРЖИВАЕТСЯ ДЛЯ СПЕЦИАЛЬНЫХ УСТРОЙСТВ.&lt;br /&gt;
     ПЯТОЕ СЛОВО В ЭЛЕМЕНТЕ ОЧЕРЕДИ ДЛЯ СПЕЦИАЛЬНОЙ ФУНКЦИИ&lt;br /&gt;
СПРАВОЧНИКА СОДЕРЖИТ УКАЗАТЕЛЬ БЛОКА ОПРЕДЕЛИТЕЛЯ ФАЙЛА,&lt;br /&gt;
СОДЕРЖАЩЕГО ИМЯ УСТРОЙСТВА, ИМЯ И ТИП ФАЙЛА В RADIX-50.&lt;br /&gt;
     ПРОГРАММНЫЕ ОШИБКИ (ТАКИЕ, КАК &amp;quot;ФАЙЛ НЕ НАЙДЕН&amp;quot; ИЛИ&lt;br /&gt;
&amp;quot;СПРАВОЧНИК ЗАПОЛНЕН&amp;quot;), ВОЗНИКАЮЩИЕ В ДРАЙВЕРЕ СПЕЦИАЛЬНОГО&lt;br /&gt;
УСТРОЙСТВА ВО ВРЕМЯ ОПЕРАЦИЙ СПРАВОЧНИКА, ВОЗВРАЩАЮТСЯ В&lt;br /&gt;
МОНИТОР. КОД КАЖДОЙ ОШИБКИ ВЫБИРАЕТСЯ ДЛЯ ОПРЕДЕЛЕННОГО&lt;br /&gt;
ТИПА ОШИБКИ. КОД ОШИБКИ ВОЗВРАЩАЕТСЯ ПОСРЕДСТВОМ ЗАСЫЛКИ&lt;br /&gt;
ЕГО В SPUSR (ОШИБКА USR СПЕЦИАЛЬНОГО УСТРОЙСТВА),&lt;br /&gt;
РАСПОЛОЖЕННОГО У ФИКСИРОВАННОГО СМЕЩЕНИЯ 272 ОТ НАЧАЛА&lt;br /&gt;
РЕЗИДЕНТНОГО МОНИТОРА. АППАРАТНЫЕ ОШИБКИ ВОЗВРАЩАЮТСЯ&lt;br /&gt;
ОБЫЧНЫМ СПОСОБОМ ПОСРЕДСТВОМ УСТАНОВКИ НУЛЕВОГО РАЗРЯДА В&lt;br /&gt;
СЛОВЕ СОСТОЯНИЯ КАНАЛА (ВТОРОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ).&lt;br /&gt;
     ПРОГРАММНЫЕ ЗАПРОСЫ ДЛЯ ОПЕРАЦИЙ СПРАВОЧНИКА&lt;br /&gt;
СПЕЦИАЛЬНЫХ УСТРОЙСТВ ОБРАБАТЫВАЮТСЯ СТАНДАРТНЫМИ&lt;br /&gt;
ПРОГРАММНЫМИ ЗАПРОСАМИ. КОГДА, НАПРИМЕР, ВЫДАЕТСЯ ЗАПРОС&lt;br /&gt;
.LOOKUP, МОНИТОР ПРОВЕРЯЕТ РАЗРЯД СПЕЦИАЛЬНОГО УСТРОЙСТВА В&lt;br /&gt;
СЛОВЕ СОСТОЯНИЯ УСТРОЙСТВА. ЕСЛИ УСТРОЙСТВО ИМЕЕТ&lt;br /&gt;
СПЕЦИАЛЬНУЮ СПРАВОЧНУЮ СТРУКТУРУ, ТО СООТВЕТСТВУЮЩИЙ КОД&lt;br /&gt;
ФУНКЦИИ ВВОДИТСЯ В ЭЛЕМЕНТ ОЧЕРЕДИ, И ЭЛЕМЕНТ&lt;br /&gt;
НЕПОСРЕДСТВЕННО УСТАНАВЛИВАЕТСЯ В ОЧЕРЕДЬ ДРАЙВЕРА, ОБХОДЯ&lt;br /&gt;
ОБРАБОТКУ ПОСРЕДСТВОМ USR. НЕЗАВИСИМОСТЬ УСТРОЙСТВА&lt;br /&gt;
СОХРАНЯЕТСЯ, ТАК КАК ОПЕРАЦИИ .LOOKUP, .ENTER, .CLOSE И&lt;br /&gt;
.DELETE ОЧЕВИДНЫ ДЛЯ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     ДЛЯ СПЕЦИАЛЬНЫХ УСТРОЙСТВ ЗАПРОС .LOOKUP ВОЗВРАЩАЕТ&lt;br /&gt;
РАЗМЕР ФАЙЛА В ШЕСТОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ (Q.WCNT). ДЛЯ&lt;br /&gt;
ЗАПРОСА .ENTER ШЕСТОЕ СЛОВО ВОЗВРАЩАЕТ РАЗМЕР НОВОГО ФАЙЛА.&lt;br /&gt;
&lt;br /&gt;
     5.4. ДРАЙВЕРЫ УСТРОЙСТВ В XM-СИСТЕМЕ&lt;br /&gt;
     ДРАЙВЕРЫ УСТРОЙСТВ В СИСТЕМАХ SJ И FB ТРЕБУЮТ&lt;br /&gt;
НЕСКОЛЬКИХ ИЗМЕНЕНИЙ ДЛЯ ПРАВИЛЬНОЙ РАБОТЫ В СИСТЕМЕ XM.&lt;br /&gt;
ПРЕДВАРИТЕЛЬНО НЕОБХОДИМО ОЗНАКОМИТЬСЯ С УСЛОВНЫМИ&lt;br /&gt;
ОБОЗНАЧЕНИЯМИ В СИСТЕМЕ XM.&lt;br /&gt;
&lt;br /&gt;
     5.4.1. УСЛОВНЫЕ ОБОЗНАЧЕНИЯ НАИМЕНОВАНИЙ И УСЛОВНЫЕ&lt;br /&gt;
ОБОЗНАЧЕНИЯ СИСТЕМЫ&lt;br /&gt;
     ПРИ НАПИСАНИИ ДРАЙВЕРА УСТРОЙСТВА ПИШЕТСЯ ОБЩИЙ&lt;br /&gt;
ИСХОДНЫЙ ФАЙЛ С ИМЕНЕМ DD.MAC, ГДЕ DD - ЭТО ДВУХСИМВОЛЬНОЕ&lt;br /&gt;
ИМЯ УСТРОЙСТВА, ВКЛЮЧАЮЩЕЕ КОД, КОТОРЫЙ ОБЕСПЕЧИВАЕТ&lt;br /&gt;
ПОДДЕРЖКУ РАСШИРЕННОЙ ПАМЯТИ В ДИРЕКТИВАХ УСЛОВНОЙ&lt;br /&gt;
ТРАНСЛЯЦИИ. ОБОЗНАЧЕНИЕМ УСЛОВИЯ, КОТОРОЕ ОБЕСПЕЧИВАЕТ&lt;br /&gt;
ПОДДЕРЖКУ РАСШИРЕННОЙ ПАМЯТИ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ, ЯВЛЯЕТСЯ&lt;br /&gt;
MMG$T, КОТОРОЕ ИМЕЕТ ЗНАЧЕНИЕ 0, ЕСЛИ ПОДДЕРЖКА РАСШИРЕННОЙ&lt;br /&gt;
ПАМЯТИ НЕ ВЫБРАНА, ИЛИ 1, ЕСЛИ ВЫБРАНА ПОДДЕРЖКА РАСШИРЕННОЙ&lt;br /&gt;
ПАМЯТИ.&lt;br /&gt;
     ЭТО ОЗНАЧАЕТ, ЧТО КОД РАСШИРЕННОЙ ПАМЯТИ ТРАНСЛИРУЕТСЯ&lt;br /&gt;
ТОЛЬКО ТОГДА, КОГДА ЗНАЧЕНИЕ, УСЛОВНО ОБОЗНАЧЕННОЕ MMG$T,&lt;br /&gt;
РАВНО 1. ДАЛЕЕ НЕОБХОДИМО ПРОТРАНСЛИРОВАТЬ ИСХОДНЫЙ ФАЙЛ&lt;br /&gt;
DD.MAC С УСЛОВНЫМ ФАЙЛОМ СИСТЕМЫ, SYCND, И С XM.MAC,&lt;br /&gt;
СОЗДАВАЯ DDX.OBJ ДЛЯ XM-СИСТЕМЫ ИЛИ DD.OBJ ДЛЯ СИСТЕМ SJ ИЛИ&lt;br /&gt;
FB. ЭТА ПРОЦЕДУРА ГАРАНТИРУЕТ, ЧТО ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА&lt;br /&gt;
СИСТЕМЫ, КОТОРЫЕ ПОДДЕРЖИВАЮТ ДРАЙВЕР, СОГЛАСУЮТСЯ С&lt;br /&gt;
ДОПОЛНИТЕЛЬНЫМИ СРЕДСТВАМИ ДАННОГО МОНИТОРА.&lt;br /&gt;
&lt;br /&gt;
     5.4.2. XM-СРЕДА&lt;br /&gt;
     В СИСТЕМЕ XM ДРАЙВЕРЫ ДОЛЖНЫ РАЗМЕЩАТЬСЯ В ПРЕДЕЛАХ&lt;br /&gt;
МЛАДШИХ 28К СЛОВ ФИЗИЧЕСКОЙ ПАМЯТИ. МОЖЕТ БЫТЬ ЕЩЕ ОДНО&lt;br /&gt;
ОГРАНИЧЕНИЕ, В ЗАВИСИМОСТИ ОТ НАЛИЧИЯ ИЛИ ОТСУТСТВИЯ&lt;br /&gt;
ПОДДЕРЖКИ .FETCH В XM-МОНИТОРЕ.&lt;br /&gt;
     ЕСЛИ XM-МОНИТОР ОСУЩЕСТВЛЯЕТ ПОДДЕРЖКУ .FETCH, ДРАЙВЕР&lt;br /&gt;
НЕ МОЖЕТ РАЗМЕЩАТЬСЯ В ПРЕДЕЛАХ ОБЛАСТИ ФИЗИЧЕСКОЙ ПАМЯТИ,&lt;br /&gt;
ОТОБРАЖЕННОЙ ПОСРЕДСТВОМ РАС1 (РЕГИСТР АДРЕСА СТРАНИЦЫ 1),&lt;br /&gt;
ОБЛАСТЬЮ, КОТОРАЯ ВКЛЮЧАЕТ ЯЧЕЙКИ ПАМЯТИ ОТ 20000 ДО 37776.&lt;br /&gt;
ПЕРЕД ВЫЗОВОМ ПРОГРАММ, ИСПОЛЬЗУЮЩИХ ДРАЙВЕРЫ НЕОБХОДИМО&lt;br /&gt;
СДЕЛАТЬ ИХ РЕЗИДЕНТНЫМИ ПО КОМАНДЕ МОНИТОРА LOAD, КОТОРАЯ&lt;br /&gt;
ПРИВОДИТ К ОГРАНИЧЕНИЮ АДРЕСА.&lt;br /&gt;
     ЕСЛИ XM-МОНИТОР ПОДДЕРЖИВАЕТ .FETCH (ОПРЕДЕЛЯЕТСЯ ВО&lt;br /&gt;
ВРЕМЯ ГЕНЕРАЦИИ СИСТЕМЫ), ОГРАНИЧЕНИЕ РАСПРОСТРАНЯЕТСЯ&lt;br /&gt;
ТОЛЬКО НА РАЗМЕЩЕНИЕ ДРАЙВЕРА В ПАМЯТИ, ОН НЕ ДОЛЖЕН&lt;br /&gt;
ПРЕВЫШАТЬ 28К СЛОВ. ПРИ ПОДДЕРЖКЕ .FETCH НЕТ НАДОБНОСТИ В&lt;br /&gt;
ЗАГРУЗКЕ ДРАЙВЕРОВ XM ПЕРЕД ВЫЗОВОМ ПРОГРАММ. ОДНАКО, ДАЖЕ&lt;br /&gt;
ПРИ ПОДДЕРЖКЕ .FETCH, ТОТ ЖЕ САМЫЙ ДРАЙВЕР МОЖЕТ БЫТЬ&lt;br /&gt;
ЗАГРУЖЕН ПО КОМАНДЕ МОНИТОРА LOAD.&lt;br /&gt;
     КОГДА ДРАЙВЕРЫ ВВЕДЕНЫ, ОНИ ВЫПОЛНЯЮТСЯ С ВНУТРЕННИМ&lt;br /&gt;
ОТОБРАЖЕНИЕМ, КОТОРОЕ РАЗРЕШАЕТ ДОСТУП К МЛАДШИМ 28К СЛОВАМ&lt;br /&gt;
ПАМЯТИ ПЛЮС СТРАНИЦА УСТРОЙСТВА ВВОДА-ВЫВОДА (СМ. РАЗДЕЛ&lt;br /&gt;
6). ОДНАКО ПРОГРАММЕ, ЗАПРАШИВАЮЩЕЙ ПЕРЕДАЧУ ВВОДА-ВЫВОДА,&lt;br /&gt;
НЕТ НЕОБХОДИМОСТИ ИМЕТЬ ТАКОЕ ЖЕ ОТОБРАЖЕНИЕ, ЧТО И&lt;br /&gt;
ВНУТРЕННЕЕ. ФАКТИЧЕСКИ ПРОГРАММА МОЖЕТ ПОПАДАТЬ В ОДНУ ИЗ&lt;br /&gt;
ТРЕХ ВОЗМОЖНЫХ КАТЕГОРИЙ:&lt;br /&gt;
     - ПРИВИЛЕГИРОВАННОЕ ЗАДАНИЕ, ОТОБРАЖЕНИЕ КОТОРОГО&lt;br /&gt;
АНАЛОГИЧНО ВНУТРЕННЕМУ;&lt;br /&gt;
     - ПРИВИЛЕГИРОВАННОЕ ЗАДАНИЕ, КОТОРОЕ ОТОБРАЖАЕТСЯ В&lt;br /&gt;
АДРЕСА ФИЗИЧЕСКОЙ ПАМЯТИ СВЫШЕ 28К СЛОВ;&lt;br /&gt;
     - ВИРТУАЛЬНОЕ ЗАДАНИЕ С ЛЮБЫМ ВИДОМ ОТОБРАЖЕНИЯ.&lt;br /&gt;
     ОСНОВНУЮ ТРУДНОСТЬ ДЛЯ ДРАЙВЕРОВ В СИСТЕМЕ XM&lt;br /&gt;
ПРЕДСТАВЛЯЕТ СВЯЗЬ С БУФЕРОМ ДАННЫХ ПОЛЬЗОВАТЕЛЯ. ЭТА&lt;br /&gt;
ТРУДНОСТЬ ВОЗНИКАЕТ ОТТОГО, ЧТО ПРОГРАММА, ЗАПРАШИВАЮЩАЯ&lt;br /&gt;
ПЕРЕДАЧУ ВВОДА-ВЫВОДА, ВЫДАЕТ 16-РАЗРЯДНЫЙ ВИРТУАЛЬНЫЙ АДРЕС&lt;br /&gt;
БУФЕРА В ПРОГРАММНОМ ЗАПРОСЕ, НЕСМОТРЯ НА ТО, ЧТО ЧАСТЬ&lt;br /&gt;
ОБЛАСТИ ВИРТУАЛЬНОЙ АДРЕСАЦИИ ПОЛЬЗОВАТЕЛЯ МОЖЕТ БЫТЬ&lt;br /&gt;
ОТОБРАЖЕНА ГДЕ-ЛИБО ЕЩЕ В ФИЗИЧЕСКОЙ ПАМЯТИ. ПОЭТОМУ&lt;br /&gt;
ДРАЙВЕР ДОЛЖЕН НАЙТИ ФАКТИЧЕСКИЙ 18- ИЛИ 22-РАЗРЯДНЫЙ&lt;br /&gt;
ФИЗИЧЕСКИЙ АДРЕС БУФЕРА ДАННЫХ ПОЛЬЗОВАТЕЛЯ ПЕРЕД&lt;br /&gt;
ПЕРЕМЕЩЕНИЕМ ИНФОРМАЦИИ В НЕГО И ИЗ НЕГО. МОНИТОР СЛЕДИТ ЗА&lt;br /&gt;
ТЕМ, ЧТОБЫ БУФЕРНАЯ ОБЛАСТЬ ПАМЯТИ ЗАНИМАЛА СМЕЖНЫЕ ЯЧЕЙКИ В&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ.&lt;br /&gt;
     ДЕЛО В ТОМ, ЧТО В СИСТЕМЕ XM ЯЧЕЙКИ ФИЗИЧЕСКОЙ ПАМЯТИ&lt;br /&gt;
ВЫРАЖЕНЫ В ВИДЕ 18- ИЛИ 22-РАЗРЯДНЫХ АДРЕСОВ, ЭТО ВАЖНО,&lt;br /&gt;
КОГДА НЕОБХОДИМО ОБОЗНАЧИТЬ АДРЕС В ПРЕДЕЛАХ САМОГО ДРАЙВЕРА&lt;br /&gt;
В ВИДЕ АДРЕСА БУФЕРА. ЕСЛИ, НАПРИМЕР, ДРАЙВЕР СОДЕРЖИТ&lt;br /&gt;
СТРОКУ НУЛЕЙ, КОТОРУЮ ОН ЗАПИСЫВАЕТ В УСТРОЙСТВО КАК ЧАСТЬ&lt;br /&gt;
ИНИЦИАЛИЗАЦИИ, ДРАЙВЕР УСТАНАВЛИВАЕТ ОПЕРАЦИЮ ЗАПИСИ&lt;br /&gt;
УСТРОЙСТВА, ОБОЗНАЧАЯ АДРЕС СТРОКИ В ДРАЙВЕРЕ КАК АДРЕС&lt;br /&gt;
БУФЕРА. ТАК КАК ДРАЙВЕР РАЗМЕЩАЕТСЯ В ПРЕДЕЛАХ МЛАДШИХ 28К&lt;br /&gt;
СЛОВ ФИЗИЧЕСКОЙ ПАМЯТИ, ЕГО ФИЗИЧЕСКИЙ АДРЕС МОЖЕТ БЫТЬ&lt;br /&gt;
ВЫРАЖЕН КАК ЕГО ВИРТУАЛЬНЫЙ 16-РАЗРЯДНЫЙ АДРЕС ПЛЮС&lt;br /&gt;
ДОПОЛНИТЕЛЬНЫЕ РАЗРЯДЫ ДЛЯ XM (РАЗРЯДЫ 16 И 17 ДЛЯ&lt;br /&gt;
18-РАЗРЯДНОГО АДРЕСА ИЛИ РАЗРЯДЫ С 16 ПО 21 ДЛЯ&lt;br /&gt;
22-РАЗРЯДНОГО АДРЕСА), КОТОРЫЕ ДОЛЖНЫ БЫТЬ НУЛЕВЫМИ.&lt;br /&gt;
     НА РИС.6 ПОКАЗАНА XM-СИСТЕМА. ПРОГРАММА, КОТОРАЯ&lt;br /&gt;
ЗАПРАШИВАЕТ ПЕРЕДАЧУ ВВОДА-ВЫВОДА, ОТОБРАЗИЛА ОБЛАСТЬ БУФЕРА&lt;br /&gt;
ДАННЫХ В ФИЗИЧЕСКУЮ ПАМЯТЬ ВЫШЕ ГРАНИЦЫ 28К СЛОВ.&lt;br /&gt;
&lt;br /&gt;
                         ОБЛАСТЬ&lt;br /&gt;
                    ФИЗИЧЕСКИХ АДРЕСОВ&lt;br /&gt;
                      .-------------&lt;br /&gt;
                       ! СТРАНИЦА !&lt;br /&gt;
                       !ВВОДА-ВЫВОД!&lt;br /&gt;
                    . .!-----------!&lt;br /&gt;
                       ! !&lt;br /&gt;
                       ! !&lt;br /&gt;
                   . . !           ! &lt;br /&gt;
                       !           ! &lt;br /&gt;
          ОБЛАСТЬ . .  !           !       ОБЛАСТЬ &lt;br /&gt;
          ВНУТРЕННЕГО  !-----------!.   ВИРТУАЛЬНОГО &lt;br /&gt;
ДИАПАЗОН  ВИРТУАЛЬНОГО !           ! .     АДРЕСА   ДИАПАЗОН&lt;br /&gt;
АДРЕСА РАС  АДРЕСА .   !   BUFF:   !   . ПОЛЬЗОВ. РАС АДРЕСА&lt;br /&gt;
-----------------.     !-----------!.     .-----------------&lt;br /&gt;
!177776!7!      ! .    !           ! .     !      !7!177776!&lt;br /&gt;
!160000! !      !      !           !   .   !      ! !160000!&lt;br /&gt;
!------!-!------!.  28K!-----------!      .!---------------!&lt;br /&gt;
!157776!6!      !-----&amp;gt;!           !       !      !6!157776!&lt;br /&gt;
!140000! !      !      !           !       !      ! !140000!&lt;br /&gt;
!------!-!------!      !-----------!       !---------------!&lt;br /&gt;
!137776!5!      !-----&amp;gt;!           !       !      !5!137776!&lt;br /&gt;
!120000! !      !      !           !       !      ! !120000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
!117776!4!      !-----&amp;gt;!           !       !      !4!117776!&lt;br /&gt;
!100000! !      !      !           !       !      ! !100000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 77776!3!      !-----&amp;gt;!  ДРАЙВЕР  !       !      !3! 77776!&lt;br /&gt;
! 60000! !      !      ! УСТРОЙСТВА!       !      ! ! 60000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 57776!2!      !-----&amp;gt;!           !       !      !2! 57776!&lt;br /&gt;
! 40000! !      !      !           !       !      ! ! 40000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 37776!1!      !--&amp;gt;   !           !       !      !1! 37776!&lt;br /&gt;
! 20000! !      !      !           !       !      ! ! 20000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 17776!0!202   !-----&amp;gt;!           !       !      !0! 17776!&lt;br /&gt;
! 00000! !200   !      !           !       !      ! ! 00000!&lt;br /&gt;
-----------------      -------------       -----------------&lt;br /&gt;
                  /\                  /\&lt;br /&gt;
                   !                   !&lt;br /&gt;
                   !                   !&lt;br /&gt;
             ВНУТРЕННЕЕ           ВИРТУАЛЬНОЕ &lt;br /&gt;
             ОТОБРАЖЕНИЕ          ОТОБРАЖЕНИЕ &lt;br /&gt;
&lt;br /&gt;
                         РИС.6.&lt;br /&gt;
&lt;br /&gt;
     МОНИТОР ФОДОС-2 ПРЕДОСТАВЛЯЕТ ПОДПРОГРАММЫ ДЛЯ&lt;br /&gt;
ДРАЙВЕРОВ ДЛЯ ДОСТУПА К БУФЕРУ ДАННЫХ ПОЛЬЗОВАТЕЛЯ В&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ. ДАЛЕЕ ОПИСАНЫ ЭТИ ПОДПРОГРАММЫ И&lt;br /&gt;
СИТУАЦИИ, В КОТОРЫХ ОНИ ИСПОЛЬЗУЮТСЯ.&lt;br /&gt;
&lt;br /&gt;
     5.4.3. ЭЛЕМЕНТ ОЧЕРЕДИ В XM&lt;br /&gt;
     ДЛЯ ТОГО, ЧТОБЫ НАЙТИ ФАКТИЧЕСКИЙ БУФЕР ПОЛЬЗОВАТЕЛЯ В&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ, ДРАЙВЕРУ ТРЕБУЕТСЯ ДОПОЛНИТЕЛЬНОЕ&lt;br /&gt;
ИНФОРМАЦИОННОЕ СЛОВО В ЭЛЕМЕНТЕ ОЧЕРЕДИ. ЭТО СЛОВО ЯВЛЯЕТСЯ&lt;br /&gt;
ЗНАЧЕНИЕМ ДЛЯ РАС1, КОТОРОЕ, БУДУЧИ ОБ'ЕДИНЕНО С АДРЕСОМ&lt;br /&gt;
ВИРТУАЛЬНОГО БУФЕРА ПОЛЬЗОВАТЕЛЯ, ОБЕСПЕЧИВАЕТ ФИЗИЧЕСКИЙ&lt;br /&gt;
АДРЕС БУФЕРА. ХОТЯ ДЛЯ ДРАЙВЕРОВ В XM-СИСТЕМЕ ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
ТОЛЬКО ОДНО ДОПОЛНИТЕЛЬНОЕ СЛОВО, ЭЛЕМЕНТ ОЧЕРЕДИ&lt;br /&gt;
ПРЕДОСТАВЛЯЕТ МЕСТО ДЛЯ ДВУХ СЛОВ. ЭТИ ДВА СЛОВА, СО&lt;br /&gt;
СМЕЩЕНИЯМИ 20 И 22, СОХРАНЯЮТСЯ ДЛЯ БУДУЩЕГО ИСПОЛЬЗОВАНИЯ В&lt;br /&gt;
СИСТЕМЕ И НЕ ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ ПОЛЬЗОВАТЕЛЕМ. КОГДА&lt;br /&gt;
УСЛОВНО ОБОЗНАЧЕННЫЙ СИСТЕМОЙ MMG$T УСТАНОВЛЕН 1, ЗАПРОС&lt;br /&gt;
.QELDF, ВЫЗВАННЫЙ ПОСРЕДСТВОМ .DRDEF В НАЧАЛЕ ДРАЙВЕРА,&lt;br /&gt;
РАСШИРЯЕТСЯ ПРИ ГЕНЕРАЦИИ ДОПУСТИМЫХ СМЕЩЕНИЙ ДЛЯ ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ XM. НИЖЕ ПРИВЕДЕНО ЭТО МАКРОРАСШИРЕНИЕ:&lt;br /&gt;
&lt;br /&gt;
        Q.LINK=0 (СВЯЗЬ СО СЛЕДУЮЩИМ ЭЛЕМЕНТОМ&lt;br /&gt;
                         ОЧЕРЕДИ)&lt;br /&gt;
        Q.CSW=2. (УКАЗАТЕЛЬ СЛОВА СОСТОЯНИЯ КАНАЛА)&lt;br /&gt;
        Q.BLKN=4. (НОМЕР ФИЗИЧЕСКОГО БЛОКА)&lt;br /&gt;
        Q.FUNC=6. (КОД СПЕЦИАЛЬНОЙ ФУНКЦИИ)&lt;br /&gt;
        Q.JNUM=7. (НОМЕР ЗАДАНИЯ)&lt;br /&gt;
        Q.UNIT=7. (НОМЕР ПРИВОДА УСТРОЙСТВА)&lt;br /&gt;
        Q.BUFF=^O10 (АДРЕС ВИРТУАЛЬНОГО БУФЕРА&lt;br /&gt;
        ПОЛЬЗОВАТЕЛЯ)&lt;br /&gt;
        Q.WCNT=^O12 (СЧЕТЧИК СЛОВ)&lt;br /&gt;
        Q.COMP=^O14 (КОД ПОДПРОГРАММЫ ЗАВЕРШЕНИЯ)&lt;br /&gt;
        Q$LINK=-4 (СИМВОЛЫ ДЛЯ ОБЛЕГЧЕННОГО&lt;br /&gt;
                         ОБРАЩЕНИЯ)&lt;br /&gt;
        Q$CSW=-2&lt;br /&gt;
        Q$BLKN=0&lt;br /&gt;
        Q$FUNC=2&lt;br /&gt;
        Q$JNUM=3&lt;br /&gt;
        Q$UNIT=3&lt;br /&gt;
        Q$BUFF=4&lt;br /&gt;
        Q$WCNT=6&lt;br /&gt;
        Q$COMP=^O10&lt;br /&gt;
        Q.PAR=^O16 (ЗНАЧЕНИЕ РАС1)&lt;br /&gt;
        Q$PAR=^O12&lt;br /&gt;
        Q.ELGN=^O24 (РАЗМЕР ЭЛЕМЕНТА ОЧЕРЕДИ)&lt;br /&gt;
&lt;br /&gt;
     5.4.4. УСТРОЙСТВА ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ:&lt;br /&gt;
ПОДПРОГРАММА $MPPHY&lt;br /&gt;
&lt;br /&gt;
     УСТРОЙСТВА ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ, НАПРИМЕР,&lt;br /&gt;
БОЛЬШИНСТВО ДИСКОВ, РАБОТАЮТ, ОБЫЧНО, С 18-РАЗРЯДНЫМИ ИЛИ&lt;br /&gt;
22-РАЗРЯДНЫМИ АДРЕСАМИ, ПОЭТОМУ ИХ ДРАЙВЕРАМ НЕТ&lt;br /&gt;
НЕОБХОДИМОСТИ ОТОБРАЖАТЬСЯ В БУФЕР ПОЛЬЗОВАТЕЛЯ. ЭТИ&lt;br /&gt;
ДРАЙВЕРЫ ИСПОЛЬЗУЮТ ПОДПРОГРАММУ МО&lt;br /&gt;
НИТОРА $MPPHY ДЛЯ ПОИСКА&lt;br /&gt;
БУФЕРА ПОЛЬЗОВАТЕЛЯ В ФИЗИЧЕСКОЙ ПАМЯТИ. $MPPHY ИСПОЛЬЗУЕТ&lt;br /&gt;
ЗНАЧЕНИЕ Q.PAR ЭЛЕМЕНТА ОЧЕРЕДИ И АДРЕС ВИРТУАЛЬНОГО БУФЕРА&lt;br /&gt;
Q.BUFF ДЛЯ СОЗДАНИЯ ИСТИННОГО 18- ИЛИ 22-РАЗРЯДНОГО АДРЕСА&lt;br /&gt;
БУФЕРА ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА ПОДПРОГРАММЫ $MPPHY СЛЕДУЮЩИЙ:&lt;br /&gt;
     JSR PC,@$MPPTR&lt;br /&gt;
ГДЕ $MPPTR - СОДЕРЖИТ УКАЗАТЕЛЬ ПОДПРОГРАММЫ $MPPHY В&lt;br /&gt;
             РЕЗИДЕНТНОМ МОНИТОРЕ; ЗАПРОС .DREND РАЗМЕЩАЕТ&lt;br /&gt;
             ЭТОТ УКАЗАТЕЛЬ В КОНЦЕ ДРАЙВЕРА; УКАЗАТЕЛЬ&lt;br /&gt;
             ЗАПОЛНЯЕТСЯ ВО ВРЕМЯ НАЧАЛЬНОЙ ЗАГРУЗКИ (ДЛЯ&lt;br /&gt;
             СИСТЕМНОГО УСТРОЙСТВА) ИЛИ ВО ВРЕМЯ LOAD (ДЛЯ&lt;br /&gt;
             УСТРОЙСТВА ДАННЫХ).&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ:&lt;br /&gt;
R5 ДОЛЖЕН УКАЗЫВАТЬ НА Q.BUFF, ПЯТОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
     ПОСЛЕ ВЫЗОВА:&lt;br /&gt;
(SP), ПЕРВОЕ СЛОВО В СТЕКЕ, СОДЕРЖИТ ШЕСТНАДЦАТЬ МЛАДШИХ&lt;br /&gt;
РАЗРЯДОВ ФИЗИЧЕСКОГО АДРЕСА БУФЕРА;&lt;br /&gt;
2(SP), ВТОРОЕ СЛОВО В СТЕКЕ, СОДЕРЖИТ 2 СТАРШИХ РАЗРЯДА&lt;br /&gt;
ФИЗИЧЕСКОГО АДРЕСА БУФЕРА В РАЗРЯДАХ 4 И 5 (ДЛЯ&lt;br /&gt;
18-РАЗРЯДНОГО АДРЕСА) ИЛИ В РАЗРЯДАХ С 4 ПО 9 (ДЛЯ&lt;br /&gt;
22-РАЗРЯДНОГО АДРЕСА);&lt;br /&gt;
R5 УКАЗЫВАЕТ НА Q.WCNT, ШЕСТОЕ СЛОВО ЭЛЕМЕНТА ОЧЕРЕДИ;&lt;br /&gt;
ЗНАЧЕНИЕ НЕ ИЗМЕНЯЕТСЯ.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        CMP (R5)+,(R5) ;ПЕРЕХОДИТ К АДРЕСУ БУФЕРА&lt;br /&gt;
                                ;В ЭЛЕМЕНТЕ ОЧЕРЕДИ&lt;br /&gt;
        JSR PC,@$MPPTR ;ПЕРЕВОДИТ ВИРТУАЛЬНЫЙ&lt;br /&gt;
                                ;АДРЕС ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
                                ;В ФИЗИЧЕСКИЙ&lt;br /&gt;
        MOV (SP)+,-(R4) ;ЗАСЫЛАЕТ 16 МЛАДШИХ&lt;br /&gt;
                                ;РАЗРЯДОВ В RKBA, СТАРШИЕ&lt;br /&gt;
                                ;РАЗРЯДЫ - В СТЕК&lt;br /&gt;
        MOV (R5)+,-(R4) ;ЗАСЫЛАЕТ СЧЕТЧИК СЛОВ&lt;br /&gt;
                                ;В RKWC&lt;br /&gt;
        BEQ 7$ ;СЧЕТЧИК РАВЕН 0 = ПОИСК&lt;br /&gt;
 BMI 5$ ;СЧЕТЧИК ОТРИЦАТЕЛЬНЫЙ =&lt;br /&gt;
                                ;ЗАПИСЬ ВСЕХ ДО ПОСЛЕДНЕГО&lt;br /&gt;
        NEG @R4 ;СЧЕТЧИК ПОЛОЖИТЕЛЬНЫЙ =&lt;br /&gt;
                                ;СЧИТЫВАТЬ, ФИКСИРУЯ СЧЕТЧИК&lt;br /&gt;
                                ;ДЛЯ КОНТРОЛЛЕРА&lt;br /&gt;
        MOV #CSIE!FNREAD!CSGO,R3 ;ФУНКЦИЯ СЧИТЫВАНИЯ&lt;br /&gt;
5$: BIS (SP)+,R3 ;ПРИСОЕДИНЕНИЕ СТАРШИХ&lt;br /&gt;
                                ;РАЗРЯДОВ АДРЕСА В ФУНКЦИЮ&lt;br /&gt;
        MOV R3,-(R4) ;НАЧАЛО ОПЕРАЦИИ&lt;br /&gt;
6$: RTS PC ;ВЫХОД ИЗ ПРЕРЫВАНИЯ&lt;br /&gt;
&lt;br /&gt;
     ЭТОТ ПРИМЕР ВЗЯТ ИЗ ДРАЙВЕРА RK.&lt;br /&gt;
&lt;br /&gt;
     5.4.5. СИМВОЛЬНО-ОРИЕНТИРОВАННЫЕ УСТРОЙСТВА:&lt;br /&gt;
ПОДПРОГРАММЫ $GETBYT И $PUTBYT&lt;br /&gt;
     ДРАЙВЕРЫ СИМВОЛЬНО-ОРИЕНТИРОВАННЫХ УСТРОЙСТВ, ТАКИХ КАК&lt;br /&gt;
ПЕРФОЛЕНТОЧНОЕ УСТРОЙСТВО ВВОДА-ВЫВОДА ПОСТРОЧНО-ПЕЧАТАЮЩЕЕ&lt;br /&gt;
УСТРОЙСТВО, ДОЛЖНЫ САМИ ПЕРЕДАВАТЬ ДАННЫЕ ИЗ УСТРОЙСТВА В&lt;br /&gt;
ОБЛАСТЬ БУФЕРА ПОЛЬЗОВАТЕЛЯ. УСТРОЙСТВО САМО ИСПОЛЬЗУЕТ&lt;br /&gt;
РЕГИСТРЫ В СТРАНИЦЕ ВВОДА-ВЫВОДА ДЛЯ ЗАПИСИ ОДНОГО СИМВОЛА&lt;br /&gt;
ЗА РАЗ. ДРАЙВЕР МОЖЕТ ИСПОЛЬЗОВАТЬ ДВЕ ПОДПРОГРАММЫ&lt;br /&gt;
МОНИТОРА - $GETBYT И $PUTBYT - ДЛЯ ПЕРЕДВИЖЕНИЯ ДАННЫХ МЕЖДУ&lt;br /&gt;
СТРАНИЦЕЙ ВВОДА-ВЫВОДА И ОБЛАСТЬЮ БУФЕРА ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     5.4.5.1. ПОДПРОГРАММА $GETBYT&lt;br /&gt;
     ДРАЙВЕР МОЖЕТ ИСПОЛЬЗОВАТЬ ПОДПРОГРАММУ МОНИТОРА&lt;br /&gt;
$GETBYT ДЛЯ ПЕРЕМЕЩЕНИЯ БАЙТА ИЗ ОБЛАСТИ БУФЕРА ФИЗИЧЕСКОЙ&lt;br /&gt;
ПАМЯТИ В СТЕК. ЗАТЕМ ДРАЙВЕР МОЖЕТ ПЕРЕМЕЩАТЬ СИМВОЛЫ В&lt;br /&gt;
РЕГИСТР БУФЕРА ДАННЫХ УСТРОЙСТВА СТРАНИЦЫ ВВОДА-ВЫВОДА И&lt;br /&gt;
ИНИЦИИРОВАТЬ ПЕРЕДАЧУ ВВОДА-ВЫВОДА.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА ПОДПРОГРАММЫ $GETBYT:&lt;br /&gt;
     JSR PC,@$GTBYT&lt;br /&gt;
ГДЕ $GTBYT - СОДЕРЖИТ УКАЗАТЕЛЬ ПОДПРОГРАММЫ $GETBYT В&lt;br /&gt;
             РЕЗИДЕНТНОМ МОНИТОРЕ; ЗАПРОС .DREND РАЗМЕЩАЕТ&lt;br /&gt;
             ЭТОТ УКАЗАТЕЛЬ В КОНЦЕ ДРАЙВЕРА; УКАЗАТЕЛЬ&lt;br /&gt;
             ЗАПОЛНЯЕТСЯ ВО ВРЕМЯ НАЧАЛЬНОЙ ЗАГРУЗКИ (ДЛЯ&lt;br /&gt;
             СИСТЕМНОГО УСТРОЙСТВА) ИЛИ ВО ВРЕМЯ LOAD (ДЛЯ&lt;br /&gt;
             УСТРОЙСТВА ДАННЫХ).&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ:&lt;br /&gt;
R4 ДОЛЖЕН УКАЗЫВАТЬ НА Q.BLKN, ТРЕТЬЕ СЛОВО ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ.&lt;br /&gt;
     ПОСЛЕ ВЫЗОВА:&lt;br /&gt;
(SP), ПЕРВОЕ СЛОВО В СТЕКЕ, СОДЕРЖИТ СЛЕДУЮЩИЙ БАЙТ ИЗ&lt;br /&gt;
БУФЕРА ПОЛЬЗОВАТЕЛЯ В МЛАДШЕМ БАЙТЕ; СОДЕРЖИМОЕ СТАРШЕГО&lt;br /&gt;
БАЙТА НЕ ОПРЕДЕЛЕНО;&lt;br /&gt;
R4 НЕ ИЗМЕНЯЕТСЯ.&lt;br /&gt;
     АДРЕС БУФЕРА (Q.BUFF) В ЭЛЕМЕНТЕ ОЧЕРЕДИ&lt;br /&gt;
УСТАНАВЛИВАЕТСЯ 1. ЕСЛИ ВОЗНИКАЕТ ПЕРЕПОЛНЕНИЕ ОТОБРАЖЕНИЯ,&lt;br /&gt;
ПОДПРОГРАММА ВЫЧИТАЕТ 20000 ИЗ ЗНАЧЕНИЯ В Q.BUFF И ДОБАВЛЯЕТ&lt;br /&gt;
200 К ЗНАЧЕНИЮ В Q.PAR. БОЛЕЕ ПОДРОБНО ПЕРЕПОЛНЕНИЕ&lt;br /&gt;
ОТОБРАЖЕНИЯ ОПИСАНО В П.5.4.7.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        MOV PCCQE,R4 ;УКАЗАТЕЛЬ ТЕКУЩЕГО&lt;br /&gt;
                                ;ЭЛЕМЕНТА ОЧЕРЕДИ&lt;br /&gt;
        MOV #PP$CSR,R5 ;УКАЗАТЕЛЬ РЕГИСТРА&lt;br /&gt;
                                ;СОСТОЯНИЯ ПЕРФОЛЕНТОЧНОГО&lt;br /&gt;
                                ;УСТРОЙСТВА ВВОДА-ВЫВОДА&lt;br /&gt;
        TST (RT)+ ;ОШИБКА?&lt;br /&gt;
        BMI PPERR ;ДА, В УСТРОЙСТВЕ НЕТ ЛЕНТЫ&lt;br /&gt;
        TST Q$WCNT(R4) ;ЕСТЬ ЕЩЕ СИМВОЛЫ ДЛЯ&lt;br /&gt;
                                ;ВЫВОДА?&lt;br /&gt;
        BEQ PCDONE ;НЕТ, ГОТОВНОСТЬ К ПЕРЕДАЧЕ&lt;br /&gt;
        INC Q$WCNT(R4) ;УМЕНЬШАЕТСЯ СЧЕТЧИК БАЙТОВ&lt;br /&gt;
                                ;(ОН ОТРИЦАТЕЛЬНЫЙ)&lt;br /&gt;
        JSR PC,@$GTBYT ;ИЗЫМАЕТСЯ БАЙТ ИЗ БУФЕРА&lt;br /&gt;
                                ;ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
        MOVB (SP)+,@R5 ;ВЫВОДИТ ЕГО НА ПЕРФОЛЕНТУ&lt;br /&gt;
&lt;br /&gt;
     ЭТОТ ПРИМЕР ИЗ ДРАЙВЕРА PC ПОКАЗЫВАЕТ КАК ДРАЙВЕР&lt;br /&gt;
ПОЛУЧАЕТ БАЙТ ИЗ БУФЕРА ПОЛЬЗОВАТЕЛЯ И ВЫВОДИТ ЕГО НА&lt;br /&gt;
ПЕРФОЛЕНТУ.&lt;br /&gt;
&lt;br /&gt;
     5.4.5.2. ПОДПРОГРАММА $PUTBYT&lt;br /&gt;
     ПОСЛЕ УСПЕШНОЙ ПЕРЕДАЧИ ДАННЫХ ДРАЙВЕР МОЖЕТ ПОЛУЧИТЬ&lt;br /&gt;
СИМВОЛ ИЗ РЕГИСТРА БУФЕРА ДАННЫХ УСТРОЙСТВА СТРАНИЦЫ&lt;br /&gt;
ВВОДА-ВЫВОДА И ЗАНЕСТИ ЕГО В СТЕК. ЗАТЕМ ОН МОЖЕТ&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ПОДПРОГРАММУ $PUTBYT ДЛЯ ПЕРЕМЕЩЕНИЯ БАЙТА ИЗ&lt;br /&gt;
СТЕКА В БУФЕР ПОЛЬЗОВАТЕЛЯ ФИЗИЧЕСКОЙ ПАМЯТИ.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА ПОДПРОГРАММЫ $PUTBYT СЛЕДУЮЩИЙ:&lt;br /&gt;
     JSR PC,@$PTBYT&lt;br /&gt;
ГДЕ $PTBYT - СОДЕРЖИТ УКАЗАТЕЛЬ ПОДПРОГРАММЫ $PUTBYT В&lt;br /&gt;
             РЕЗИДЕНТНОМ МОНИТОРЕ; ЗАПРОС .DREND РАЗМЕЩАЕТ&lt;br /&gt;
             ЭТОТ УКАЗАТЕЛЬ В КОНЦЕ ДРАЙВЕРА; УКАЗАТЕЛЬ&lt;br /&gt;
             ЗАПОЛНЯЕТСЯ ВО ВРЕМЯ НАЧАЛЬНОЙ ЗАГРУЗКИ (ДЛЯ&lt;br /&gt;
             СИСТЕМНОГО УСТРОЙСТВА) ИЛИ ВО ВРЕМЯ LOAD (ДЛЯ&lt;br /&gt;
             УСТРОЙСТВА ДАННЫХ).&lt;br /&gt;
&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ:&lt;br /&gt;
R4 ДОЛЖЕН УКАЗЫВАТЬ НА Q.BLKN, ТРЕТЬЕ СЛОВО ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ; БАЙТ ДЛЯ ПЕРЕДАЧИ В БУФЕР ПОЛЬЗОВАТЕЛЯ ДОЛЖЕН&lt;br /&gt;
НАХОДИТЬСЯ ВВЕРХУ СТЕКА; СИМВОЛ ДОЛЖЕН НАХОДИТЬСЯ В МЛАДШЕМ&lt;br /&gt;
БАЙТЕ ПЕРВОГО СЛОВА СТЕКА; СТАРШИЙ БАЙТ НЕОПРЕДЕЛЕН.&lt;br /&gt;
     ПОСЛЕ ВЫЗОВА:&lt;br /&gt;
СЛОВО, СОДЕРЖАЩЕЕ СИМВОЛ ДЛЯ ПЕРЕДАЧИ, УДАЛЯЕТСЯ ИЗ СТЕКА.&lt;br /&gt;
R4 НЕ ИЗМЕНЯЕТСЯ.&lt;br /&gt;
     АДРЕС БУФЕРА (Q.BUFF) В ЭЛЕМЕНТЕ ОЧЕРЕДИ&lt;br /&gt;
УСТАНАВЛИВАЕТСЯ 1. ЕСЛИ ВОЗНИКАЕТ ПЕРЕПОЛНЕНИЕ ОТОБРАЖEНИЯ,&lt;br /&gt;
ПОДПРОГРАММА ВЫЧИТАЕТ 20000 ИЗ ЗНАЧЕНИЯ В Q.BUFF И ДОБАВЛЯЕТ&lt;br /&gt;
200 К ЗНАЧЕНИЮ В Q.PAR. БОЛЕЕ ПОДРОБНО ПЕРЕПОЛНЕНИЕ&lt;br /&gt;
ОТОБРАЖЕНИЯ ОПИСАНО В П.5.4.7.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        MOV PRCQE,R4 ;R4 УКАЗЫВАЕТ НА Q.BLKN&lt;br /&gt;
        MOVB @#PRB,-(SP) ;ЗАСЫЛАЕТ СИМВОЛ&lt;br /&gt;
        JSR PC,@$PTBYT ;ПЕРЕМЕЩАЕТ ЕГО В БУФЕР&lt;br /&gt;
                                ;ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
        DEC Q$WCNT(R4) ;УМЕНЬШАЕТ СЧЕТЧИК БАЙТОВ&lt;br /&gt;
&lt;br /&gt;
     ЭТОТ ПРИМЕР ИЗ ДРАЙВЕРА PC ПОКАЗЫВАЕТ, КАК ДРАЙВЕР&lt;br /&gt;
ПОЛУЧАЕТ СИМВОЛ ИЗ ПЕРФОЛЕНТОЧНОГО УСТРОЙСТВА ВВОДА-ВЫВОДА И&lt;br /&gt;
ПЕРЕМЕЩАЕТ ЕГО В БУФЕР ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     5.4.6. ДРУГИЕ УСТРОЙСТВА: ПОДПРОГРАММА $PUTWRD&lt;br /&gt;
     ПОДПРОГРАММА МОНИТОРА $PUTWRD ПОДОБНА $PUTBYT, С ТЕМ&lt;br /&gt;
ИСКЛЮЧЕНИЕМ, ЧТО $PUTWRD ПЕРЕМЕЩАЕТ В БУФЕР ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ СЛОВО, А НЕ БАЙТ. ОНА ПОЛЕЗНА, КОГДА&lt;br /&gt;
ДРАЙВЕРУ НЕОБХОДИМО ПЕРЕДАТЬ ИНФОРМАЦИЮ О СОСТОЯНИИ СЛОВОМ В&lt;br /&gt;
БУФЕР ПОЛЬЗОВАТЕЛЯ, А НЕ СИМВОЛ ДАННЫХ ИЗ УСТРОЙСТВА.&lt;br /&gt;
$PUTWRD МОГУТ ИСПОЛЬЗОВАТЬ ДРАЙВЕРЫ ЛЮБОГО ТИПА УСТРОЙСТВ.&lt;br /&gt;
     ФОРМАТ ВЫЗОВА ПОДПРОГРАМЫ $PUTWRD СЛЕДУЮЩИЙ:&lt;br /&gt;
     JSR PC,@$PTWRD&lt;br /&gt;
ГДЕ $PTWRD - СОДЕРЖИТ УКАЗАТЕЛЬ ПОДПРОГРАММЫ $PUTWRD В&lt;br /&gt;
             РЕЗИДЕНТНОМ МОНИТОРЕ; ЗАПРОС .DREND РАЗМЕЩАЕТ&lt;br /&gt;
             ЭТОТ УКАЗАТЕЛЬ В КОНЦЕ ДРАЙВЕРА; УКАЗАТЕЛЬ&lt;br /&gt;
             ЗАПОЛНЯЕТСЯ ВО ВРЕМЯ НАЧАЛЬНОЙ ЗАГРУЗКИ (ДЛЯ&lt;br /&gt;
             СИСТЕМНОГО УСТРОЙСТВА) ИЛИ ВО ВРЕМЯ LOAD (ДЛЯ&lt;br /&gt;
             УСТРОЙСТВА ДАННЫХ).&lt;br /&gt;
     ПЕРЕД ВЫЗОВОМ:&lt;br /&gt;
R4 ДОЛЖЕН УКАЗЫВАТЬ НА Q.BLKN, ТРЕТЬЕ СЛОВО ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ; СЛОВО ДЛЯ ПЕРЕДАЧИ В БУФЕР ПОЛЬЗОВАТЕЛЯ ДОЛЖНО&lt;br /&gt;
НАХОДИТЬСЯ ВВЕРХУ СТЕКА.&lt;br /&gt;
     ПОСЛЕ ВЫЗОВА:&lt;br /&gt;
СЛОВО ДЛЯ ПЕРЕДАЧИ УДАЛЯЕТСЯ ИЗ СТЕКА.&lt;br /&gt;
R4 НЕ ИЗМЕНЯЕТСЯ.&lt;br /&gt;
     АДРЕС БУФЕРА (Q.BUFF) В ЭЛЕМЕНТЕ ОЧЕРЕДИ&lt;br /&gt;
УСТАНАВЛИВАЕТСЯ 1. ЕСЛИ ВОЗНИКАЕТ ПЕРЕПОЛНЕНИЕ ОТОБРАЖЕНИЯ,&lt;br /&gt;
ПОДПРОГРАММА ВЫЧИТАЕТ 20000 ИЗ ЗНАЧЕНИЯ В Q.BUFF И ДОБАВЛЯЕТ&lt;br /&gt;
200 К ЗНАЧЕНИЮ В Q.PAR. БОЛЕЕ ПОДРОБНО ПЕРЕПОЛНЕНИЕ&lt;br /&gt;
ОТОБРАЖЕНИЯ ОПИСАНО В П.5.4.7.&lt;br /&gt;
 ПРИМЕР:&lt;br /&gt;
        MOV #DDNBLK,-(SP) ;ПОМЕЩАЕТ РАЗМЕР В БЛОКАХ&lt;br /&gt;
                                ;В СТЕК&lt;br /&gt;
        MOV DYCQE,R4 ;R4 УКАЗЫВАЕТ НА Q.BLKN&lt;br /&gt;
        JSR PC,@$PTWRD ;ВЫЗОВ ПОДПРОГРАММЫ&lt;br /&gt;
&lt;br /&gt;
     ЭТОТ ПРИМЕР ИЗ ДРАЙВЕРА DY ПОКАЗЫВАЕТ КАК ДРАЙВЕР&lt;br /&gt;
ОТВЕЧАЕТ НА ВЫЗОВ СПЕЦИАЛЬНОЙ ФУНКЦИИ, КОТОРАЯ ЗАПРАШИВАЕТ&lt;br /&gt;
РАЗМЕР УСТАНОВЛЕННОГО В ДАННЫЙ МОМЕНТ ТОМА. В ДАННОМ СЛУЧАЕ&lt;br /&gt;
ИМЕЕТСЯ ГИБКИЙ ДИСК С ДВОЙНОЙ ПЛОТНОСТЬЮ ЗАПИСИ. ДРАЙВЕР&lt;br /&gt;
ИСПОЛЬЗУЕТ $PUTWRD ДЛЯ ПЕРЕМЕЩЕНИЯ РАЗМЕРА ТОМА В ОБЛАСТЬ&lt;br /&gt;
БУФЕРА ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     5.4.7. ДРАЙВЕРЫ, КОТОРЫЕ ИМЕЮТ НЕПОСРЕДСТВЕННЫЙ ДОСТУП&lt;br /&gt;
К БУФЕРУ ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
     В НЕКОТОРЫХ СИТУАЦИЯХ ТРЕБУЮТСЯ КОМБИНАЦИИ ПРОЦЕДУР,&lt;br /&gt;
ОПИСАННЫХ ВЫШЕ. В ДРУГИХ, ТРЕБУЕТСЯ ТОЛЬКО ЧАСТЬ ДРАЙВЕРА&lt;br /&gt;
ДЛЯ ПЕРЕДАЧИ. НЕКОТОРЫЕ ДРАЙВЕРЫ НЕ МОГУТ ИСПОЛЬЗОВАТЬ&lt;br /&gt;
ПОДПРОГРАММЫ МОНИТОРА И ДОЛЖНЫ ИМЕТЬ НЕПОСРЕДСТВЕННЫЙ ДОСТУП&lt;br /&gt;
К БУФЕРУ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     ПРОЦЕДУРА ДРАЙВЕРА ДЛЯ ОТОБРАЖЕНИЯ В БУФЕР ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
СЛЕДУЮЩАЯ.&lt;br /&gt;
     УСТРОЙСТВА, ТАКИЕ КАК ГИБКИЙ ДИСК, ПЕРЕДАЮТ ДАННЫЕ ПО&lt;br /&gt;
СЕКТОРУ ЗА РАЗ МЕЖДУ САМИМ ДИСКОМ И ВНУТРЕННИМ БУФЕРОМ&lt;br /&gt;
ДАННЫХ ДИСКА. ОДНАКО ГИБКИЙ ДИСК НЕ ЯВЛЯЕТСЯ УСТРОЙСТВОМ&lt;br /&gt;
ПРОИЗВОЛЬНОГО ДОСТУПА К ДАННЫМ, ПОЭТОМУ ДРАЙВЕР DX НЕ МОЖЕТ&lt;br /&gt;
ИСПОЛЬЗОВАТЬ ПОДПРОГРАММУ МОНИТОРА $MPPHY. КРОМЕ ТОГО,&lt;br /&gt;
ДРУГИЕ ПОДПРОГРАММЫ МОНИТОРА ДЛЯ СИМВОЛЬНО-ОРИЕНТИРОВАННЫХ&lt;br /&gt;
УСТРОЙСТВ, ИМЕЮЩИХ В НАЛИЧИИ ВНУТРЕННИЙ БУФЕР ДАННЫХ&lt;br /&gt;
УСТРОЙСТВА, СЛИШКОМ МЕДЛЕННЫ ДЛЯ ПРАКТИЧЕСКОГО&lt;br /&gt;
ИСПОЛЬЗОВАНИЯ. ПОЭТОМУ, ДРАЙВЕР DX ОТОБРАЖАЕТСЯ В БУФЕР&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ ФИЗИЧЕСКОЙ ПАМЯТИ, А ЗАТЕМ ВЫПОЛНЯЕТ ОПЕРАЦИЮ&lt;br /&gt;
ВВОДА-ВЫВОДА ТАК, КАК ЕСЛИ БЫ ОНА БЫЛА ПРОСТОЙ ПЕРЕДАЧЕЙ&lt;br /&gt;
МЕЖДУ ПАМЯТЬЮ И УСТРОЙСТВОМ. ДРАЙВЕР ОСУЩЕСТВЛЯЕТ ЭТО&lt;br /&gt;
ОТОБРАЖЕНИЕ, ЗАИМСТВУЯ ОБЛАСТЬ РАС1.&lt;br /&gt;
     $P1EXT КОПИРУЕТ ИЗ ДРАЙВЕРА В СТЕК МОНИТОРА НЕОБХОДИМЫЕ&lt;br /&gt;
ИНСТРУКЦИИ ПО ПЕРЕДАЧЕ ДАННЫХ, ТАКИМ ОБРАЗОМ, ПЕРЕМЕЩЕНИЕ&lt;br /&gt;
ИНСТРУКЦИЙ ПРОИСХОДИТ ИЗ ВОЗМОЖНОЙ ОБЛАСТИ РАС1. ЗАТЕМ&lt;br /&gt;
$P1EXT УСТАНАВЛИВАЕТ НЕОБХОДИМОЕ ЗНАЧЕНИЕ РАС1 И ВЫПОЛНЯЕТ&lt;br /&gt;
КОМАНДЫ, СКОПИРОВАННЫЕ В СТЕК. ПОСЛЕ ОКОНЧАНИЯ $P1EXT&lt;br /&gt;
ВОССТАНАВЛИВАЕТ РАС1, ОЧИЩАЕТ СТЕК МОНИТОРА И ЗАСЫЛАЕТ В&lt;br /&gt;
ДРАЙВЕР ПО СЛОВАМ СЛЕДУЮЩИЙ СПИСОК КОМАНД.&lt;br /&gt;
     ВЫЗОВ ПОДПРОГРАММЫ $P1EXT ОСУЩЕСТВЛЯЕТСЯ ПО КОМАНДЕ&lt;br /&gt;
JSR R0, СЛЕДУЮЩЕЙ ПОСЛЕ ЧИСЛА БАЙТОВ ДЛЯ КОПИРОВАНИЯ В СТЕК&lt;br /&gt;
МОНИТОРА ПЛЮС 2, СПИСКА КОМАНД ДЛЯ ОСУЩЕСТВЛЕНИЯ ПЕРЕДАЧИ&lt;br /&gt;
ДАННЫХ И ЗНАЧЕНИЯ РАС1 (Q.PAR) ИЗ ЭЛЕМЕНТА ОЧЕРЕДИ.&lt;br /&gt;
     ПРИМЕР:&lt;br /&gt;
        MOV @#SYSPTR,R4 ;R4 СОДЕРЖИТ УКАЗАТЕЛЬ&lt;br /&gt;
                                ;БАЗЫ МОНИТОРА&lt;br /&gt;
        MOV P1EXT(R4),(PC)+ ;ЗАСЫЛАЕТ АДРЕС ПОДПРОГРАММЫ&lt;br /&gt;
                                ;$P1EXT&lt;br /&gt;
$P1EXT: .WORD P1EXT ;УКАЗАТЕЛЬ ПОДПРОГРАММЫ&lt;br /&gt;
        . ;$P1EXT&lt;br /&gt;
        .&lt;br /&gt;
        .&lt;br /&gt;
;--- УДАЛЯЕТ ДВЕ СЛЕДУЮЩИЕ НИЖЕ СТРОКИ, ЕСЛИ ДИСПЕТЧЕР&lt;br /&gt;
;--- ПАМЯТИ НЕ ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
        JSR R0,@#P1EXT ;РАЗРЕШАЕТ МОНИТОРУ&lt;br /&gt;
                                ;ВЫПОЛНЯТЬ СЛЕДУЮЩИЕ КОДЫ&lt;br /&gt;
        .WORD PARVAL-. ;ЧИСЛО БАЙТОВ ДЛЯ&lt;br /&gt;
                                ;КОПИРОВАНИЯ + 2&lt;br /&gt;
;---&lt;br /&gt;
2$: TSTB @R4 ;ПРОВЕРЯЕТ ПРИЗНАК&lt;br /&gt;
                                ;ГОТОВНОСТИ ПЕРЕДАЧИ&lt;br /&gt;
        BPL 2$ ;ОЖИДАЕТ ГОТОВНОСТЬ&lt;br /&gt;
3$: MOVB (R2)+,@R5 ;ПЕРЕМЕЩАЕТ СИМВОЛ ИЗ БУФЕРА&lt;br /&gt;
                                ;ПОЛЬЗОВАТЕЛЯ НА ГИБКИЙ ДИСК&lt;br /&gt;
        TSTB @R4 ;УСТАНАВЛИВАЕТ CSR ДЛЯ&lt;br /&gt;
                                ;СЛЕДУЮЩЕГО РАЗА&lt;br /&gt;
        DECB R1 ;УМЕНЬШАЕТ СЧЕТЧИК ПЕРЕДАЧ&lt;br /&gt;
        BNE 2$ ;ЕСЛИ НЕ 0, ПЕРЕДАВАТЬ&lt;br /&gt;
                                ;ОСТАЛЬНЫЕ СИМВОЛЫ&lt;br /&gt;
;--- ЕСЛИ ИСПОЛЬЗУЕТСЯ ДИСПЕТЧЕР ПАМЯТИ, ОГРАНИЧИТЬСЯ&lt;br /&gt;
;--- СПИСКОМ ЗНАЧЕНИЙ РАС1&lt;br /&gt;
PARVAL: .WORD 0 ;УДАЛЯЕТСЯ, ЕСЛИ&lt;br /&gt;
                                ;ИСПОЛЬЗУЕТСЯ&lt;br /&gt;
                                ;ДИСПЕТЧЕР ПАМЯТИ&lt;br /&gt;
;---&lt;br /&gt;
;ДАЛЕЕ ПРОДОЛЖАЕТСЯ ОБЫЧНЫЙ ПРОЦЕСС&lt;br /&gt;
&lt;br /&gt;
     В ЭТОМ ПРИМЕРЕ ПРИВЕДЕНА КОМАНДА ИЗ ДРАЙВЕРА DX,&lt;br /&gt;
КОТОРАЯ ИЛЛЮСТРИРУЕТ ОПИСАННУЮ ВЫШЕ ТЕХНИКУ. R1 - СЧЕТЧИК&lt;br /&gt;
ПЕРЕДАННЫХ БАЙТОВ, R2 - УКАЗАТЕЛЬ БУФЕРА ПОЛЬЗОВАТЕЛЯ, R4 -&lt;br /&gt;
УКАЗАТЕЛЬ РЕГИСТРА СОСТОЯНИЯ УСТРОЙСТВА ГИБКИХ ДИСКОВ И R5 -&lt;br /&gt;
УКАЗАТЕЛЬ РЕГИСТРА ДАННЫХ УСТРОЙСТВА ГИБКИХ ДИСКОВ. P1EXT -&lt;br /&gt;
УКАЗАТЕЛЬ ЗНАЧЕНИЯ ФИКСИРОВАННОГО СМЕЩЕНИЯ ПОДПРОГРАММЫ&lt;br /&gt;
$P1EXT ОТНОСИТЕЛЬНО МОНИТОРА.&lt;br /&gt;
     К СПИСКУ КОМАНД, ПЕРЕХОДЯЩЕМУ В $P1EXT, НАКЛАДЫВАЮТСЯ&lt;br /&gt;
СЛЕДУЮЩИЕ ОГРАНИЧЕНИЯ:&lt;br /&gt;
- В СПИСКЕ НЕ ДОЛЖНО БЫТЬ КОМАНД, ССЫЛАЮЩИХСЯ НА ДРУГИЕ&lt;br /&gt;
  ЯЧЕЙКИ ДРАЙВЕРА, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ ОТНОСИТЕЛЬНОЙ&lt;br /&gt;
  АДРЕСАЦИИ ВНУТРИ САМОГО СПИСКА;&lt;br /&gt;
- СПИСОК КОМАНД МОЖЕТ ИСПОЛЬЗОВАТЬ СТЕК ДЛЯ ВРЕМЕННОГО&lt;br /&gt;
  ХРАНЕНИЯ, ЕСЛИ НЕВОЗМОЖНО ПЕРЕМЕЩЕНИЕ ДРУГИХ РАННИХ&lt;br /&gt;
  ЗНАЧЕНИЙ ИЗ СТЕКА ИЛИ СБРОСА ДРУГИХ ЗНАЧЕНИЙ В СТЕК ПОСЛЕ&lt;br /&gt;
  ЕГО ГОТОВНОСТИ;&lt;br /&gt;
- ЕСЛИ ИСПОЛЬЗУЕТСЯ СПИСОК КОМАНД, R0 ДОЛЖЕН БЫТЬ СОХРАНЕН И&lt;br /&gt;
  ВОССТАНОВЛЕН;&lt;br /&gt;
- НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ СПИСОК КОМАНД БОЛЕЕ 32-Х&lt;br /&gt;
  СЛОВ, ТАК КАК ОБЛАСТЬ СТЕКА ОГРАНИЧЕНА.&lt;br /&gt;
     ЧТОБЫ ДРАЙВЕР ИМЕЛ ДОСТУП НЕПОСРЕДСТВЕННО К БУФЕРУ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ, НЕОБХОДИМО ПОНЯТЬ, КАК ОБЛАСТЬ РАС1&lt;br /&gt;
ОТОБРАЖАЕТСЯ В ОБЛАСТЬ ПОЛЬЗОВАТЕЛЯ. РИС.7 ПОМОЖЕТ&lt;br /&gt;
РАЗОБРАТЬСЯ В ЭТОМ ВОПРОСЕ. ОН ПОКАЗЫВАЕТ ВИРТУАЛЬНОЕ&lt;br /&gt;
ЗАДАНИЕ В ОБЫЧНОЙ ХМ-СИСТЕМЕ С БУФЕРОМ ПОЛЬЗОВАТЕЛЯ,&lt;br /&gt;
РАЗМЕЩЕННЫМ В ФИЗИЧЕСКОЙ ПАМЯТИ СВЫШЕ 28К СЛОВ. ПРОГРАММА&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ ОТОБРАЖАЕТСЯ В БУФЕР ЧЕРЕЗ РАС6. ДРАЙВЕР&lt;br /&gt;
ИСПОЛЬЗУЕТ РАС1, ПОМЕЩАЯ ТУДА ЗНАЧЕНИЕ Q.PAR ИЗ ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ, А ЗАТЕМ ИСПОЛЬЗУЕТ ЗНАЧЕНИЕ Q.BUFF ИЗ ЭЛЕМЕНТА&lt;br /&gt;
ОЧЕРЕДИ ДЛЯ ДОСТУПА К БУФЕРУ ПОЛЬЗОВАТЕЛЯ. РАС1&lt;br /&gt;
ОТОБРАЖАЕТСЯ В ФИЗИЧЕСКУЮ ПАМЯТЬ СЕКЦИЯМИ 32-СЛОВНЫХ БЛОКОВ&lt;br /&gt;
(ДЕСЯТИЧНОЕ) И, В ЛУЧШЕМ СЛУЧАЕ, МОЖЕТ ОТОБРАЖАТЬ ОБЛАСТЬ&lt;br /&gt;
РАЗМЕРОМ 4К СЛОВ. (РАЗМЕР СТРАНИЦЫ РПС1 (РЕГИСТР ПРИЗНАКА&lt;br /&gt;
СТРАНИЦЫ) УСТАНОВЛЕН ВСЕГДА ТАК, ЧТО ОТОБРАЖАЕТСЯ ВСЯ&lt;br /&gt;
СТРАНИЦА.) ЕСЛИ БУФЕР ПОЛЬЗОВАТЕЛЯ НАЧИНАЕТСЯ С ЯЧЕЙКИ&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ, КОТОРАЯ НЕ КРАТНА 32-М СЛОВАМ, РАС1&lt;br /&gt;
ОТОБРАЖАЕТСЯ В ПЕРВУЮ ЖЕ ОБЛАСТЬ ВЫШЕ НАЧАЛА БУФЕРА, КРАТНУЮ&lt;br /&gt;
32-М СЛОВАМ. ОБЛАСТЬ ОТОБРАЖЕНИЯ РАС1 МОЖЕТ НАЧИНАТЬСЯ В&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ С ЛЮБОГО АДРЕСА, ДВЕ МЛАДШИЕ ВОСЬМЕРИЧНЫЕ&lt;br /&gt;
ЦИФРЫ КОТОРОГО ЯВЛЯЮТСЯ НУЛЯМИ. ТАКИМ ОБРАЗОМ, ПРИ&lt;br /&gt;
ОТОБРАЖЕНИИ РАС1 В БУФЕР ПОЛЬЗОВАТЕЛЯ БУДЕТ ОТОБРАЖЕНО 4К&lt;br /&gt;
ИЛИ 4К-31 СЛОВ (ДЕСЯТИЧНОЕ).&lt;br /&gt;
&lt;br /&gt;
                         ОБЛАСТЬ&lt;br /&gt;
                    ФИЗИЧЕСКИХ АДРЕСОВ&lt;br /&gt;
                       -------------&lt;br /&gt;
                       ! СТРАНИЦА  !&lt;br /&gt;
                       !ВВОДА-ВЫВОД!&lt;br /&gt;
                       !-----------!&lt;br /&gt;
                       !           !&lt;br /&gt;
                       !           !&lt;br /&gt;
                      .!-----------!.&lt;br /&gt;
                       !   BUFF:   ! .&lt;br /&gt;
          ОБЛАСТЬ      !           !       ОБЛАСТЬ&lt;br /&gt;
          ВНУТРЕННЕГО..!-----------!. . ВИРТУАЛЬНОГО&lt;br /&gt;
ДИАПАЗОН  ВИРТУАЛЬНОГО !           !       АДРЕСА   ДИАПАЗОН&lt;br /&gt;
АДРЕСА РАС  АДРЕСА     !           ! . . ПОЛЬЗОВ. РАС АДРЕСА&lt;br /&gt;
-----------------   .. !           !       -----------------&lt;br /&gt;
!      ! !      !      !           !  . .  !      ! !      !&lt;br /&gt;
!      ! !      !      !           !   . . !      ! !      !&lt;br /&gt;
!      ! !      !  ..  !           !    . .!---------------!&lt;br /&gt;
!      ! !      !      !-----------!     . !      !6!157776!&lt;br /&gt;
!      ! !      !      !  ДРАЙВЕР  !      .!      ! !140000!&lt;br /&gt;
!      ! !      ! ..   ! УСТРОЙСТВА!       !---------------!&lt;br /&gt;
!      ! !      !      !-----------!       !      ! !      !&lt;br /&gt;
!      ! !      !      !           !       !      ! !      !&lt;br /&gt;
!---------------!..    !           !       !      ! !      !&lt;br /&gt;
! 37776!1!      !      !           !       !      ! !      !&lt;br /&gt;
! 20000! !      !      !           !       !      ! !      !&lt;br /&gt;
!---------------!.     !           !       !      ! !      !&lt;br /&gt;
!      ! !      !      !           !       !      ! !      !&lt;br /&gt;
!      ! !      !      !           !       !      ! !      !&lt;br /&gt;
-----------------      -------------       -----------------&lt;br /&gt;
                        РИС.7.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     НИЖЕ ПРИВЕДЕН РИС.8, НА КОТОРОМ ПОКАЗАНА РАБОТА&lt;br /&gt;
ОТОБРАЖЕНИЯ.&lt;br /&gt;
&lt;br /&gt;
Q.PAR =3317              ОБЛАСТЬ                   АДРЕС&lt;br /&gt;
Q.BUFF=020024       ФИЗИЧЕСКИХ АДРЕСОВ          ВИРТУАЛЬНОГО&lt;br /&gt;
               СВЫШЕ 28К, В 32-СЛОВНЫХ СЕКЦИЯХ     БУФЕРА&lt;br /&gt;
                       -------------            ПОЛЬЗОВАТЕЛЯ&lt;br /&gt;
                       ! СТРАНИЦА  !            РАВЕН 140224&lt;br /&gt;
                       !ВВОДА-ВЫВОД!&lt;br /&gt;
                       !-----------!&lt;br /&gt;
                       !           !&lt;br /&gt;
                       :           :&lt;br /&gt;
                       !           !&lt;br /&gt;
                 351700!------------&lt;br /&gt;
                      .!           !&lt;br /&gt;
                       !           !&lt;br /&gt;
                       !-----------!&lt;br /&gt;
                     . !           !&lt;br /&gt;
                       !           !&lt;br /&gt;
                 351500!-----------!.&lt;br /&gt;
                     . !           !&lt;br /&gt;
                       :           :&lt;br /&gt;
                       !           ! .&lt;br /&gt;
                    .  !-----------!&lt;br /&gt;
                       !           !&lt;br /&gt;
                       !           !  .&lt;br /&gt;
                   .   !-----------!&lt;br /&gt;
               331724-&amp;gt;!BUFF:      !&lt;br /&gt;
                   .   !           !   .&lt;br /&gt;
                 331700!-----------!&lt;br /&gt;
                  .   .!           !&lt;br /&gt;
                  .  . !           !    .           ДИАПАЗОН&lt;br /&gt;
           НОВОЕ 331600!-----------!            ВИРТУАЛЬНОГО&lt;br /&gt;
ДИАПАЗОН   ЗНАЧЕНИЕ .  !           !    ЗНАЧЕНИЕ      АДРЕСА&lt;br /&gt;
АДРЕСА РАС   РАС . .   !           !     .РАС   РАС ПОЛЬЗОВ.&lt;br /&gt;
-----------------331500!-----------!.     .-----------------&lt;br /&gt;
! 37776!1! 3317 ! .    !           !  .    ! 3315 !6!157776!&lt;br /&gt;
! 20000! !      !.     !           !    .  !      ! !140000!&lt;br /&gt;
-----------------331400-------------      .-----------------&lt;br /&gt;
                       :           :&lt;br /&gt;
                        РИС.8.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     НА РИС.8 ПОКАЗАНА ОБЛАСТЬ БУФЕРА, РАЗМЕЩЕННАЯ У ЯЧЕЙКИ&lt;br /&gt;
331724 ФИЗИЧЕСКОЙ ПАМЯТИ С ПРИКЛАДНОЙ ПРОГРАММОЙ,&lt;br /&gt;
ОТОБРАЖЕННОЙ В БУФЕР ПОСРЕДСТВОМ РАС6. БУФЕР НА 24&lt;br /&gt;
(ВОСЬМЕРИЧНOЕ) БАЙТА ВЫШЕ 331700, КОТОРОЕ ЯВЛЯЕТСЯ&lt;br /&gt;
32-СЛОВНОЙ ГРАНИЦЕЙ. $P1EXT ПОМЕЩАЕТ ЗНАЧЕНИЕ Q.PAR, 3317,&lt;br /&gt;
В РАС1, ЗАМЕНЯЯ ЗНАЧЕНИЕ РАС1 ПО УМОЛЧАНИЮ (0200). ЭТО&lt;br /&gt;
ВЫЗЫВАЕТ ОТОБРАЖЕНИЕ РАС1 В 4К-СЛОВНУЮ ОБЛАСТЬ ФИЗИЧЕСКОЙ&lt;br /&gt;
ПАМЯТИ, НАЧИНАЯ С АДРЕСА 331700. В РЕЗУЛЬТАТЕ, КОГДА&lt;br /&gt;
ДРАЙВЕР ОБРАЩАЕТСЯ К ВНУТРЕННИМ ВИРТУАЛЬНЫМ АДРЕСАМ В&lt;br /&gt;
ДИАПАЗОНЕ ОТ 20000 ДО 37776, ОН ВЫБИРАЕТ ЯЧЕЙКИ ФИЗИЧЕСКОЙ&lt;br /&gt;
ПАМЯТИ С 331700 ПО 351676. ТАК КАК ЗНАЧЕНИЕМ В Q.BUFF&lt;br /&gt;
ЯВЛЯЕТСЯ 20024, ТО ИСПОЛЬЗУЯ ЭТО ЗНАЧЕНИЕ, ДРАЙВЕР МОЖЕТ&lt;br /&gt;
ИМЕТЬ ДОСТУП К ОБЛАСТИ БУФЕРА ПОЛЬЗОВАТЕЛЯ В ЯЧЕЙКЕ 331724.&lt;br /&gt;
     ЕСЛИ КОЛИЧЕСТВО ДАННЫХ ДЛЯ ПЕРЕДАЧИ СЛИШКОМ БОЛЬШОЕ, ТО&lt;br /&gt;
МОЖЕТ ПОТРЕБОВАТЬСЯ ПЕРЕМЕЩЕНИЕ УКАЗАТЕЛЯ БУФЕРА И&lt;br /&gt;
РЕГУЛИРОВАНИЕ ОТОБРАЖЕНИЯ ДЛЯ ЕГО УЧЕТА. СУЩЕСТВУЕТ ДВА&lt;br /&gt;
СПОСОБА ПЕРЕМЕЩЕНИЯ УКАЗАТЕЛЯ БУФЕРА. САМЫЙ ЛЕГКИЙ СПОСОБ -&lt;br /&gt;
ЭТО МОДИФИКАЦИЯ РАС1. НАПРИМЕР, КАЖДЫМ 32-М СЛОВАМ,&lt;br /&gt;
ПЕРЕМЕЩЕННЫМ ЧЕРЕЗ БУФЕР, ДОБАВЛЯЕТСЯ 1 К ЗНАЧЕНИЮ РАС1.&lt;br /&gt;
ДРАЙВЕР DX, НАПРИМЕР, ПЕРЕДАЕТ 64 СЛОВА ЗА РАЗ, ДОБАВЛЯЯ 2 К&lt;br /&gt;
ЗНАЧЕНИЮ РАС1 ПОСЛЕ КАЖДОЙ ПЕРЕДАЧИ, ЧТОБЫ ИЗБЕЖАТЬ&lt;br /&gt;
ПЕРЕПОЛНЕНИЯ ОТОБРАЖЕНИЯ.&lt;br /&gt;
     ДРУГИМ СПОСОБОМ ПЕРЕМЕЩЕНИЯ УКАЗАТЕЛЯ БУФЕРА ЯВЛЯЕТСЯ&lt;br /&gt;
МОДИФИКАЦИЯ ЗНАЧЕНИЯ Q.BUFF ПОСРЕДСТВОМ ИЗМЕНЕНИЯ ЗНАЧЕНИЯ В&lt;br /&gt;
САМОМ ЭЛЕМЕНТЕ ОЧЕРЕДИ. СНАЧАЛА НЕОБХОДИМО ПОСЛЕ&lt;br /&gt;
МОДИФИКАЦИИ ЗНАЧЕНИЯ Q.BUFF СРАВНИТЬ НОВОЕ ЗНАЧЕНИЕ С 40000.&lt;br /&gt;
ЕСЛИ ЗНАЧЕНИЕ БОЛЬШЕ ИЛИ РАВНО 40000, ИЗ НЕГО НАДО ВЫЧЕСТЬ&lt;br /&gt;
20000 И ПРИБАВИТЬ ЗАТЕМ 200 К Q.PAR. ЭТО ПОЗВОЛИТ НЕ ТОЛЬКО&lt;br /&gt;
СЛЕДИТЬ ЗА РЕГУЛИРОВАНИЕМ ОТОБРАЖЕНИЯ, НО И ПОМОЖЕТ ИЗБЕЖАТЬ&lt;br /&gt;
ПЕРЕПОЛНЕНИЕ ОТОБРАЖЕНИЯ.&lt;br /&gt;
     И, НАКОНЕЦ, НЕОБХОДИМО ВЫБРАТЬ ЛЮБУЮ ЯЧЕЙКУ В БУФЕРЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ, ЕСЛИ ДАНО СМЕЩЕНИЕ БАЙТА ОТ НАЧАЛА БУФЕРА. ПО&lt;br /&gt;
СУЩЕСТВУ, НЕОБХОДИМО ОПРЕДЕЛИТЬ ЧИСЛО 32-СЛОВНЫХ СЕКЦИЙ В&lt;br /&gt;
16-РАЗРЯДНОМ СМЕЩЕНИИ БАЙТА ДЕЛЕНИЕМ НА 100 (ВОСЬМЕРИЧНОЕ) И&lt;br /&gt;
ПРИБАВЛЕНИЕМ ЧАСТНОГО К РАС1, А ОСТАТКА К Q.BUFF. ТОГДА&lt;br /&gt;
МОЖНО ПРАВИЛЬНО ВЫБРАТЬ ЯЧЕЙКУ В БУФЕРЕ ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
     НАПРИМЕР, ПРЕДПОЛОЖИМ, ЧТО НУЖЕН БАЙТ СО СМЕЩЕНИЕМ&lt;br /&gt;
12345 ОТ НАЧАЛА БУФЕРА, ПОКАЗАННОГО НА РИС.8. ЧАСТНОЕ ОТ&lt;br /&gt;
ДЕЛЕНИЯ 12345 НА 100 РАВНО 123, ОСТАТОК - 45. ПРИБАВЛЕНИЕ&lt;br /&gt;
123 К ТЕКУЩЕМУ ЗНАЧЕНИЮ Q.PAR, КОТОРОЕ РАВНО 3317, ДАЕТ 3442&lt;br /&gt;
ДЛЯ НОВОГО ЗНАЧЕНИЯ РАС1. ПРИБАВЛЕНИЕ 45 К ЗНАЧЕНИЮ Q.BUFF,&lt;br /&gt;
КОТОРОЕ РАВНО 020024, ДАЕТ 020071 - НОВЫЙ АДРЕС БУФЕРА (В&lt;br /&gt;
ДАННОМ СЛУЧАЕ ПОЛУЧЕН АДРЕС БАЙТА).&lt;br /&gt;
     5.5. ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ В СИСТЕМЕ XM&lt;br /&gt;
     СУЩЕСТВУЮТ ДВА ВИДА ЗАДАНИЙ В СИСТЕМЕ XM, ВИРТУАЛЬНОЕ&lt;br /&gt;
ЗАДАНИЕ И ПРИВИЛЕГИРОВАННОЕ ЗАДАНИЕ, ВИРТУАЛЬНЫЕ ЗАДАНИЯ НЕ&lt;br /&gt;
МОГУТ СОДЕРЖАТЬ ВНУТРЕННЮЮ ПОДПРОГРАММУ ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
(СМ. РАЗД.4). ПО САМОМУ ОПРЕДЕЛЕНИЮ ВИРТУАЛЬНОГО&lt;br /&gt;
ОТОБРАЖЕНИЯ, ВИРТУАЛЬНЫЕ ЗАДАНИЯ НЕ ИМЕЮТ ДОСТУПА К СТРАНИЦЕ&lt;br /&gt;
ВВОДА-ВЫВОДА УСТРОЙСТВА. СЛЕДОВАТЕЛЬНО, ОНИ НЕ МОГУТ&lt;br /&gt;
УСТАНОВИТЬ РАЗРЯД РАЗРЕШЕНИЯ ПРЕРЫВАНИЯ УСТРОЙСТВА ИЛИ&lt;br /&gt;
ПЕРЕДАВАТЬ ДАННЫЕ В (ИЛИ ИЗ) РЕГИСТР БУФЕРА ДАННЫХ&lt;br /&gt;
УСТРОЙСТВА.&lt;br /&gt;
     ЕСЛИ ЗАДАНИЕ, СОДЕРЖАЩЕЕ ВНУТРЕННЮЮ ПОДПРОГРАММУ&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ, ДОЛЖНО ВЫПОЛНЯТЬСЯ В СИСТЕМЕ XM, ТО&lt;br /&gt;
ОНО ДОЛЖНО БЫТЬ ВЫПОЛНЕНО КАК ПРИВИЛЕГИРОВАННОЕ ЗАДАНИЕ.&lt;br /&gt;
ПРИВИЛЕГИРОВАННОЕ ОТОБРАЖЕНИЕ ПРЕДОСТАВЛЯЕТ ПРОГРАММЕ НИЖНИЕ&lt;br /&gt;
28К СЛОВ ПАМЯТИ И ДОСТУП К СТРАНИЦЕ ВВОДА-ВЫВОДА И ПОЗВОЛЯЕТ&lt;br /&gt;
ПРОГРАММЕ ОТОБРАЖАТЬ ЧАСТЯМИ ОБЛАСТЬ ВИРТУАЛЬНОГО АДРЕСА&lt;br /&gt;
ПОЛЬЗОВАТЕЛЯ В РАСШИРЕННУЮ ФИЗИЧЕСКУЮ ПАМЯТЬ, ЕСЛИ ЭТОГО&lt;br /&gt;
ТРЕБУЕТ ПРОГРАММА.&lt;br /&gt;
     КОГДА ПРЕРЫВАНИЯ ПРОИСХОДЯТ В XM, ПОДПРОГРАММА ИХ&lt;br /&gt;
ОБРАБОТКИ ВЫПОЛНЯЕТ ОТОБРАЖЕНИЕ ВНУТРЕННЕ, НЕ&lt;br /&gt;
ПОЛЬЗОВАТЕЛЬСКИ. ЭТО ОЗНАЧАЕТ, ЧТО КАК БЫ ПРОГРАММА НИ&lt;br /&gt;
ОТОБРАЖАЛА НЕКОТОРЫЕ СВОИ ОБЛАСТИ ВИРТУАЛЬНЫХ АДРЕСОВ В&lt;br /&gt;
РАСШИРЕННУЮ ПАМЯТЬ, ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ&lt;br /&gt;
ВЫПОЛНЯЕТ ПО УМОЛЧАНИЮ ВНУТРЕННЕЕ ОТОБРАЖЕНИЕ НИЖНИХ 28К&lt;br /&gt;
СЛОВ ПАМЯТИ ПЛЮС СТРАНИЦЫ ВВОДА-ВЫВОДА. ПРОИСХОДИТ&lt;br /&gt;
СЛЕДУЮЩЕЕ: СНАЧАЛА ОГРАНИЧЕНИЯ XM ТРЕБУЮТ, ЧТОБЫ&lt;br /&gt;
ОТОБРАЖЕНИЕ ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ И ДРУГИХ&lt;br /&gt;
ИСПОЛЬЗУЕМЫХ ЕЮ ДАННЫХ БЫЛО ТО ЖЕ, ЧТО И ВНУТРЕННЕЕ&lt;br /&gt;
ОТОБРАЖЕНИЕ В ЛЮБОЕ ВРЕМЯ, КОГДА ПРОИСХОДИТ ПРЕРЫВАНИЕ.&lt;br /&gt;
     РИС.9 СОДЕРЖИТ СХЕМУ ВНУТРЕННЕГО ОТОБРАЖЕНИЯ ПО&lt;br /&gt;
УМОЛЧАНИЮ, КОТОРОЕ ПРЕДУСМАТРИВАЕТ ДОСТУП К НИЖНИМ 28К&lt;br /&gt;
СЛОВАМ ПАМЯТИ И К СТРАНИЦЕ ВВОДА-ВЫВОДА. ЭТО ТАКЖЕ СХЕМА&lt;br /&gt;
ОТОБРАЖЕНИЯ ДЛЯ ПРИВИЛЕГИРОВАННОГО ЗАДАНИЯ, ЕСЛИ ОНО НАЧАЛО&lt;br /&gt;
ВЫПОЛНЯТЬСЯ. ЭТА СХЕМА ОТОБРАЖЕНИЯ ЭФФЕКТИВНА ВСЕГДА, КОГДА&lt;br /&gt;
ПРЕРЫВАНИЕ ОБРАБАТЫВАЕТСЯ. (ЗАШТРИХОВАННАЯ OБЛАСТЬ НА&lt;br /&gt;
РИСУНКЕ ПРЕДСТАВЛЯЕТ СОБОЙ ПАМЯТЬ, КОТОРАЯ НЕДОСТУПНА&lt;br /&gt;
ПОЛЬЗОВАТЕЛЬСКОМУ ЗАДАНИЮ.) НА РИС.9 ВЕКТОРЫ ПРЕРЫВАНИЯ 200&lt;br /&gt;
И 202 СОДЕРЖАТ ТОЧКУ ВХОДА ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ, НАЗЫВАЕМУЮ ISREP:, И ЗНАЧЕНИЕ 340, КОТОРОЕ&lt;br /&gt;
ЯВЛЯЕТСЯ НОВЫМ ПРИОРИТЕТОМ PS. ЕСЛИ ПРОИЗОШЛО ПРЕРЫВАНИЕ,&lt;br /&gt;
СИСТЕМА ИСПОЛЬЗУЕТ ВНУТРЕННЕЕ ОТОБРАЖЕНИЕ ДЛЯ ПОИСКА&lt;br /&gt;
ПОДПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЙ. В ЭТОМ ПРИМЕРЕ ОНА&lt;br /&gt;
НАЧИНАЕТСЯ С АДРЕСА 120000. ПОСЛЕ ЭТОГО ПРИВИЛЕГИРОВАННОЕ&lt;br /&gt;
ОТОБРАЖЕНИЕ И ВНУТРЕННЕЕ ОТОБРАЖЕНИЕ ОДИНАКОВЫ НА ЭТОЙ&lt;br /&gt;
ДИАГРАММЕ, ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ НАХОДИТСЯ В&lt;br /&gt;
ФИЗИЧЕСКОЙ ПАМЯТИ ТОЧНО В МЕСТЕ ТОЧКИ ВНУТРЕННЕГО&lt;br /&gt;
ОТОБРАЖЕНИЯ, ТОГДА ОНА МОЖЕТ БЫТЬ ВЫПОЛНЕНА ПРАВИЛЬНО.&lt;br /&gt;
&lt;br /&gt;
                         ОБЛАСТЬ&lt;br /&gt;
                    ФИЗИЧЕСКИХ АДРЕСОВ&lt;br /&gt;
                      .-------------.&lt;br /&gt;
                       ! СТРАНИЦА  !&lt;br /&gt;
                     . !ВВОДА-ВЫВОД! .&lt;br /&gt;
                      .!-----------!.&lt;br /&gt;
                    .. !///////////!  .&lt;br /&gt;
                       !///////////! .&lt;br /&gt;
                   ..  !///////////!   .&lt;br /&gt;
                       !///////////!  .&lt;br /&gt;
          ОБЛАСТЬ ..   !///////////!    .  ОБЛАСТЬ&lt;br /&gt;
          ВНУТРЕННЕГО  !///////////!    ВИРТУАЛЬНОГО&lt;br /&gt;
ДИАПАЗОН  ВИРТУАЛЬНОГО !///////////!   . . АДРЕСА   ДИАПАЗОН&lt;br /&gt;
АДРЕСА РАС  АДРЕСА     !///////////!     ПОЛЬЗОВ. РАС АДРЕСА&lt;br /&gt;
-----------------..    !///////////!    . .-----------------&lt;br /&gt;
!177776!7!      !      !///////////!     . !      !7!177776!&lt;br /&gt;
!160000! !      !.     !///////////!      .!      ! !160000!&lt;br /&gt;
!------!-!------!------!-----------!-------!---------------!&lt;br /&gt;
!157776!6!      !-----&amp;gt;!           !&amp;lt;------!      !6!157776!&lt;br /&gt;
!140000! !      !      !           !       !      ! !140000!&lt;br /&gt;
!------!-!------!      !-----------!       !---------------!&lt;br /&gt;
!137776!5!      !-----&amp;gt;!           !&amp;lt;------!      !5!137776!&lt;br /&gt;
!120000! !ISREP:!      !    ПОП    !       !ISREP:! !120000!&lt;br /&gt;
!======!-!------!120000!-----------!       !------!-!======!&lt;br /&gt;
!117776!4!      !-----&amp;gt;!           !&amp;lt;------!      !4!117776!&lt;br /&gt;
!100000! !      !      !           !       !      ! !100000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 77776!3!      !-----&amp;gt;!           !&amp;lt;------!      !3! 77776!&lt;br /&gt;
! 60000! !      !      !           !       !      ! ! 60000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 57776!2!      !-----&amp;gt;!           !&amp;lt;------!      !2! 57776!&lt;br /&gt;
! 40000! !      !      !           !       !      ! ! 40000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 37776!1!      !-----&amp;gt;!           !&amp;lt;------!      !1! 37776!&lt;br /&gt;
! 20000! !      !      !           !       !      ! ! 20000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 17776!0!      !-----&amp;gt;!           !&amp;lt;------!      !0! 17776!&lt;br /&gt;
! 00000! !      !      !           !       !      ! ! 00000!&lt;br /&gt;
-----------------      -------------       -----------------&lt;br /&gt;
                   /\                  /\&lt;br /&gt;
                    !                   !&lt;br /&gt;
                    !                   !&lt;br /&gt;
               ВНУТРЕННЕЕ      ПРИВИЛЕГИРОВАННОЕ&lt;br /&gt;
               ОТОБРАЖЕНИЕ     НЕМОДИФИЦИРОВАННОЕ&lt;br /&gt;
                               ОТОБРАЖЕНИЕ&lt;br /&gt;
&lt;br /&gt;
 ГДЕ ПОП - ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ;&lt;br /&gt;
     РАС - РЕГИСТР АДРЕСА СТРАНИЦЫ&lt;br /&gt;
&lt;br /&gt;
                        РИС.9.&lt;br /&gt;
&lt;br /&gt;
     РИС.10 СОДЕРЖИТ ПРИВИЛЕГИРОВАННОЕ ЗАДАНИЕ, КОТОРОЕ&lt;br /&gt;
ИЗМЕНЯЕТ ОТОБРАЖЕНИЕ ВИРТУАЛЬНОГО АДРЕСА ПОЛЬЗОВАТЕЛЯ.&lt;br /&gt;
(ЗАШТРИХОВАННАЯ НА РИС.10 ОБЛАСТЬ ПРЕДСТАВЛЯЕТ ПАМЯТЬ,&lt;br /&gt;
КОТОРАЯ НЕ ДОСТУПНА ПОЛЬЗОВАТЕЛЮ.) НАПРИМЕР, ПОДПРОГРАММА&lt;br /&gt;
ОБРАБОТКИ ПРЕРЫВАНИЙ НЕ МОЖЕТ БЫТЬ ВЫПОЛНЕНА ПРАВИЛЬНО, ЕСЛИ&lt;br /&gt;
ПРЕРЫВАНИЕ ПРОИЗОШЛО ПОТОМУ, ЧТО ПОДПРОГРАММА ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ НЕ БЫЛА РАСПОЛОЖЕНА В ФИЗИЧЕСКОЙ ПАМЯТИ В ДОЛЖНОМ&lt;br /&gt;
МЕСТЕ. УКАЗАННАЯ ОБЛАСТЬ ПАМЯТИ ДО ВНУТРЕННЕГО ОТОБРАЖЕНИЯ&lt;br /&gt;
СОДЕРЖИТ ПРОИЗВОЛЬНЫЕ ДАННЫЕ ИЛИ КОМАНДЫ.&lt;br /&gt;
&lt;br /&gt;
                         ОБЛАСТЬ &lt;br /&gt;
                    ФИЗИЧЕСКИХ АДРЕСОВ&lt;br /&gt;
                   ...&amp;gt;-------------&amp;lt;----&lt;br /&gt;
                   I   ! СТРАНИЦА  !    !&lt;br /&gt;
                   I   !ВВОДА-ВЫВОД!    !&lt;br /&gt;
                   I .&amp;gt;!-----------!&amp;lt;---!&lt;br /&gt;
                   I I !           !   !!&lt;br /&gt;
                   I I !           !   !!&lt;br /&gt;
                   I I !-----------!&amp;lt;--!!&lt;br /&gt;
                   I I !           !  !!!&lt;br /&gt;
          ОБЛАСТЬ  I I !    ПОП    !  !!!  ОБЛАСТЬ&lt;br /&gt;
          ВНУТРЕННЕГОI !-----------!&amp;lt;-!!ВИРТУАЛЬНОГО&lt;br /&gt;
ДИАПАЗОН  ВИРТУАЛЬНОГО !///////////! !!!!  АДРЕСА   ДИАПАЗОН&lt;br /&gt;
АДРЕСА РАС  АДРЕСА I I !///////////! !!!!ПОЛЬЗОВ. РАС АДРЕСА&lt;br /&gt;
-----------------..I I !///////////! !!!!-------------------&lt;br /&gt;
!177776!7!      !    I !///////////! !!!   !      !7!177776!&lt;br /&gt;
!160000! !      !....I !///////////! !!!   !      ! !160000!&lt;br /&gt;
!------!-!------!------!-----------! !!!---!---------------!&lt;br /&gt;
!157776!6!      !-----&amp;gt;!///////////! !!    !      !6!157776!&lt;br /&gt;
!140000! !      !      !///////////! !!    !      ! !140000!&lt;br /&gt;
!------!-!------!      !-----------! !!----!---------------!&lt;br /&gt;
!137776!5!      !-----&amp;gt;!///////////! !     !      !5!137776!&lt;br /&gt;
!120000! !ISREP:!      !/// ??? ///! !     !ISREP:! !120000!&lt;br /&gt;
!======!-!------!120000!-----------! ------!------!-!======!&lt;br /&gt;
!117776!4!      !-----&amp;gt;!           !&amp;lt;------!      !4!117776!&lt;br /&gt;
!100000! !      !      !           !       !      ! !100000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 77776!3!      !-----&amp;gt;!           !&amp;lt;------!      !3! 77776!&lt;br /&gt;
! 60000! !      !      !           !       !      ! ! 60000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 57776!2!      !-----&amp;gt;!           !&amp;lt;------!      !2! 57776!&lt;br /&gt;
! 40000! !      !      !           !       !      ! ! 40000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 37776!1!      !-----&amp;gt;!           !&amp;lt;------!      !1! 37776!&lt;br /&gt;
! 20000! !      !      !           !       !      ! ! 20000!&lt;br /&gt;
!------!-!------!      !-----------!       !------!-!------!&lt;br /&gt;
! 17776!0!202   !-----&amp;gt;!           !&amp;lt;------!      !0! 17776!&lt;br /&gt;
! 00000! !200   !      ! Ю         !       !      ! ! 00000!&lt;br /&gt;
-----------------      -------------       -----------------&lt;br /&gt;
                   /\                  /\&lt;br /&gt;
                    !                   !&lt;br /&gt;
                    !                   !&lt;br /&gt;
               ВНУТРЕННЕЕ      ПРИВИЛЕГИРОВАННОЕ&lt;br /&gt;
               ОТОБРАЖЕНИЕ     НЕМОДИФИЦИРОВАННОЕ&lt;br /&gt;
                               ОТОБРАЖЕНИЕ&lt;br /&gt;
&lt;br /&gt;
 ГДЕ ПОП - ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЙ;&lt;br /&gt;
     РАС - РЕГИСТР АДРЕСА СТРАНИЦЫ&lt;br /&gt;
&lt;br /&gt;
                        РИС.10.&lt;br /&gt;
&lt;br /&gt;
     ВТОРОЕ ОГРАНИЧЕНИЕ ДЛЯ ПОДПРОГРАММЫ ОБРАБОТКИ&lt;br /&gt;
ПРЕРЫВАНИЙ В XM ОТНОСИТСЯ К ОБЛАСТИ МОНИТОРА, ИСПОЛЬЗУЮЩЕЙ&lt;br /&gt;
РЕГИСТР АДРЕСА СТРАНИЦЫ 1 (РАС1) ПРИ ВНУТРЕННЕМ ОТОБРАЖЕНИИ.&lt;br /&gt;
РАС1 КОНТРОЛИРУЕТ ОТОБРАЖЕНИЯ ВИРТУАЛЬНЫХ АДРЕСОВ С 20000 ДО&lt;br /&gt;
37776. ЕСЛИ XM-МОНИТОР ЗАГРУЖАЕТСЯ ПРИ ВНУТРЕННЕМ&lt;br /&gt;
ОТОБРАЖЕНИИ, ТО ВИРТУАЛЬНЫЙ АДРЕС ОТОБРАЖАЕТСЯ В ТОТ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
</feed>