<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.felixl.com/index.php?action=history&amp;feed=atom&amp;title=Uknc_ROM_disasm_-_1</id>
	<title>Uknc ROM disasm - 1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.felixl.com/index.php?action=history&amp;feed=atom&amp;title=Uknc_ROM_disasm_-_1"/>
	<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;action=history"/>
	<updated>2026-10-21T03:23:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;diff=1724&amp;oldid=prev</id>
		<title>Alex K: Исправлены ошибки</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;diff=1724&amp;oldid=prev"/>
		<updated>2008-01-13T14:32:16Z</updated>

		<summary type="html">&lt;p&gt;Исправлены ошибки&lt;/p&gt;
&lt;a href=&quot;https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;amp;diff=1724&amp;amp;oldid=1527&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Alex K</name></author>
		
	</entry>
	<entry>
		<id>https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;diff=1527&amp;oldid=prev</id>
		<title>Nzeemin at 15:23, 18 March 2007</title>
		<link rel="alternate" type="text/html" href="https://www.felixl.com/index.php?title=Uknc_ROM_disasm_-_1&amp;diff=1527&amp;oldid=prev"/>
		<updated>2007-03-18T15:23:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
	.TITLE	ROM&lt;br /&gt;
&lt;br /&gt;
	.=100000		; Начальный адрес ПЗУ&lt;br /&gt;
&lt;br /&gt;
; ********************************************************************&lt;br /&gt;
; *                                                                  *&lt;br /&gt;
; *        ПОДПРОГРАММЫ ОБСЛУЖИВАНИЯ МЕНЮ УСТАНОВКА И ЗАГРУЗКА       *&lt;br /&gt;
; *                                                                  *&lt;br /&gt;
; *                    Адреса 100000 - 103553                        *&lt;br /&gt;
; *                                                                  *&lt;br /&gt;
; ********************************************************************&lt;br /&gt;
&lt;br /&gt;
; П/п установки начальных значений в меню УСТАНОВКА и ЗАГРУЗКА&lt;br /&gt;
100000$:JSR	R5,110712$	; П/п заносит данные из области&lt;br /&gt;
	.WORD	100012$,7152	; по адресу 100012 в 7152&lt;br /&gt;
	RETURN&lt;br /&gt;
100012$:.WORD	10.		; Количество слов&lt;br /&gt;
	.WORD	177701,0,0	; Пункт УСТ не выбран, VT-52, 80x24&lt;br /&gt;
	.WORD	7,1,1,7		; Цвета символа, знакоместа, экрана и курсора&lt;br /&gt;
	.WORD	0,0		; Рулон плавный, таймер включен&lt;br /&gt;
	.WORD	177701		; Пункт ЗАГРУЗКА не выбран&lt;br /&gt;
&lt;br /&gt;
; П/п обслуживания главного меню УСТАНОВКА&lt;br /&gt;
100040$:TST	@#23170		; Ожидание завершения скроллинга&lt;br /&gt;
	BNE	100040$&lt;br /&gt;
	MOV	@#2476,-(SP)	; Сохранить адрес пользовательского экрана&lt;br /&gt;
	MOV	#4672,@#2476	; Включить экран установки&lt;br /&gt;
	MOV	#22754,R5	; Сделать текущей таблицу видеопараметров&lt;br /&gt;
	CALL	110210$		;  экрана установки&lt;br /&gt;
	JSR	R5,105346$	; Перевести клавиатуру в системный режим&lt;br /&gt;
	.WORD	107310$,11054	; Данные для системного режима&lt;br /&gt;
	CALL	104054$		; Очистить буфер клавиатуры&lt;br /&gt;
	CLR	@#7232		; Разрешение алфавитно-цифровой клавиатуры&lt;br /&gt;
	MOV	SP,@#7142&lt;br /&gt;
	EMT	52		; Вывод УСТ в верхней строке&lt;br /&gt;
	.WORD	107533$&lt;br /&gt;
100120$:EMT	44		; Вывод заголовка&lt;br /&gt;
	.WORD	102133$&lt;br /&gt;
100124$:MOV	#4,R0&lt;br /&gt;
	JSR	R4,101202$	; Вывод меню и запрос пункта&lt;br /&gt;
	.WORD	101644$		; Адрес списка для меню УСТАНОВКА&lt;br /&gt;
	BMI	100172$		; Нажата &amp;lt;Enter&amp;gt; или УПР-@ ?&lt;br /&gt;
	CALL	@100150$(R2)	; Обслуживание выбранного пункта&lt;br /&gt;
	BMI	100172$		; Нажата &amp;lt;Enter&amp;gt; или УПР-@ ?&lt;br /&gt;
	BR	100124$&lt;br /&gt;
; Адреса п/п обслуживания пунктов меню УСТАНОВКА&lt;br /&gt;
100150$:.WORD	100172$,100334$,100372$,100432$,100476$&lt;br /&gt;
	.WORD	100536$,100576$,100630$,100730$&lt;br /&gt;
; Если нажаты &amp;lt;Enter&amp;gt; или УПР-@&lt;br /&gt;
100172$:CMP	R0,#177772	; Нажата УПР-@ (выход в монитор ПП) ?&lt;br /&gt;
	BEQ	100302$&lt;br /&gt;
	MOV	@#7142,SP&lt;br /&gt;
	EMT	52		; Стирание в верхней строке надписи УСТ&lt;br /&gt;
	.WORD	107524$&lt;br /&gt;
	EMT	52&lt;br /&gt;
	.WORD	107542$&lt;br /&gt;
	TST	@#7146		; Предыдущий режим клавиатуры был системным ?&lt;br /&gt;
	BNE	100232$		; Да&lt;br /&gt;
	JSR	R5,105400$	; Восстановить пользовательский режим&lt;br /&gt;
	.WORD	107310$,11054	; Данные для пользовательского режима&lt;br /&gt;
100232$:CALL	110204$		; Включение пользовательского экрана&lt;br /&gt;
	MOV	(SP)+,@#2476&lt;br /&gt;
	CLR	@#7070		; Очистить признак вызова&lt;br /&gt;
	TST	@#7072		; Вызов происходил из меню ЗАГРУЗКА ?&lt;br /&gt;
	BNE	100300$		; Да&lt;br /&gt;
100254$:MOV	#2,@#7230	; Установить признак выполнения TRAP 2&lt;br /&gt;
	MOV	#2,@#22546	; Установить признак выполнения TRAP 4&lt;br /&gt;
	MOV	#2,@#7042	; Адресовать ASCII-коды клавиатуры каналу 0&lt;br /&gt;
	TRAP	4		; Прочесть символ с канала 0 (если есть)&lt;br /&gt;
100300$:RETURN&lt;br /&gt;
100302$:MOV	#14,R0		; Очистить экран&lt;br /&gt;
	EMT	42&lt;br /&gt;
	MOV	#100120$,-(SP)	; Адрес возврата в меню УСТАНОВКА&lt;br /&gt;
	MOV	SP,@#7144&lt;br /&gt;
	JMP	@#160576	; Переход к программе монитора ПП&lt;br /&gt;
&lt;br /&gt;
; П/п обслуживания подменю СИСТЕМА КОМАНД&lt;br /&gt;
100324$:CALL	@100346(R2)	; Вызов п/п по текущему пункту меню&lt;br /&gt;
	MOV	#4,R0&lt;br /&gt;
100334$:JSR	R4,101202$	; Вывод подменю и запрос пункта&lt;br /&gt;
	.WORD	101672$		; Адрес списка подменю СИСТЕМА КОМАНД&lt;br /&gt;
	BEQ	100324$&lt;br /&gt;
	RETURN&lt;br /&gt;
; Адреса п/п для обслуживания подменю СИСТЕМА КОМАНД&lt;br /&gt;
100346$:.WORD	162572$,113670$,113712$&lt;br /&gt;
&lt;br /&gt;
; П/п обслуживания подменю ФОРМАТ ЭКРАНА&lt;br /&gt;
100354$:MOV	R2,R0		; Получение номера формата&lt;br /&gt;
	ASR	R0		; 0 - 80x24, 1 - 40x24, 2 - 20x24, 3 - 10x24&lt;br /&gt;
	DEC	R0&lt;br /&gt;
	CALL	116502$		; Обращение к п/п установки формата экрана&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100372$:JSR	R4,101202$	; Вывод меню и запрос пункта&lt;br /&gt;
	.WORD	101704$		; Адрес списка подменю ФОРМАТ ЭКРАНА&lt;br /&gt;
	BEQ	100354$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю ЦВЕТ СИМВОЛА&lt;br /&gt;
100404$:MOV	R2,R0		; Получение номера цвета&lt;br /&gt;
	ASR	R0&lt;br /&gt;
	DEC	R0&lt;br /&gt;
	MOV	R5,-(SP)	; Сохранить адрес текущей таблицы видеопар.&lt;br /&gt;
	MOV	#22656,R5	; Загрузить адрес таблицы экрана пользователя&lt;br /&gt;
	CALL	116052$		; Обращение к п/п установки цвета символа&lt;br /&gt;
	MOV	(SP)+,R5&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100432$:JSR	R4,101202$	; Вывод меню и запрос пункта&lt;br /&gt;
	.WORD	101722$		; Адрес списка подменю ЦВЕТ СИМВОЛА&lt;br /&gt;
	BEQ	100404$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю ЦВЕТ ЗНАКОМЕСТА&lt;br /&gt;
100444$:MOV	R2,R0		; Получение номера цвета&lt;br /&gt;
	SUB	#2,R0&lt;br /&gt;
	MOV	113512$(R0),R0&lt;br /&gt;
	MOV	R5,-(SP)&lt;br /&gt;
	MOV	#22656,R5&lt;br /&gt;
	CALL	116130$		; Обращение к п/п установки цвета знакоместа&lt;br /&gt;
	MOV	(SP)+,R5&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100476$:JSR	R4,101202$&lt;br /&gt;
	.WORD	101750$		; Адрес списка подменю ЦВЕТ ЗНАКОМЕСТА&lt;br /&gt;
	BEQ	100444$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю ЦВЕТ ЭКРАНА&lt;br /&gt;
100510$:MOV	R2,R0		; Получение номера цвета&lt;br /&gt;
	ASR	R0&lt;br /&gt;
	DEC	R0&lt;br /&gt;
	MOV	R5,-(SP)&lt;br /&gt;
	MOV	#22656,R5&lt;br /&gt;
	CALL	116170$		; Обращение к п/п установки цвета экрана&lt;br /&gt;
	MOV	(SP)+,R5&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100536$:JSR	R4,101202$&lt;br /&gt;
	.WORD	101776$		; Адрес списка подменю ЦВЕТ ЭКРАНА&lt;br /&gt;
	BEQ	100510$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю ЦВЕТ КУРСОРА&lt;br /&gt;
100550$:MOV	R2,R0		; Получение номера цвета&lt;br /&gt;
	ASR	R0&lt;br /&gt;
	DEC	R0&lt;br /&gt;
	MOV	R5,-(SP)&lt;br /&gt;
	MOV	#22656,R5&lt;br /&gt;
	CALL	116226$		; Обращение к п/п установки цвета курсора&lt;br /&gt;
	MOV	(SP)+,R5&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100576$:JSR	R4,101202$&lt;br /&gt;
	.WORD	102024$		; Адрес списка подменю ЦВЕТ КУРСОРА&lt;br /&gt;
	BEQ	100550$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю РУЛОН&lt;br /&gt;
100610$:MOV	R5,-(SP)&lt;br /&gt;
	MOV	#22656,R5&lt;br /&gt;
	CALL	@&amp;lt;100642$-2&amp;gt;(R2); Обращение к п/п-ам установки рулона&lt;br /&gt;
	MOV	(SP)+,R5&lt;br /&gt;
	MOV	#2,R0&lt;br /&gt;
100630$:JSR	R4,101202$&lt;br /&gt;
	.WORD	102052$		; Адрес списка подменю РУЛОН&lt;br /&gt;
	BEQ	100610$&lt;br /&gt;
	RETURN&lt;br /&gt;
; Адреса п/п-ам для установки рулона&lt;br /&gt;
100642$:.WORD	100650$,100656$,100674$&lt;br /&gt;
100650$:CLR	@#7136		; Установить плавный рулон&lt;br /&gt;
	BR	100664$&lt;br /&gt;
100656$:MOV	#2,@#7136	; Установить дискретный рулон&lt;br /&gt;
100664$:MOV	#2,74(R5)	; Установить присутствие рулона&lt;br /&gt;
	RETURN			; 74 - смещение в таблице видеопараметров&lt;br /&gt;
100674$:CLR	74(R5)		; Установить отсутствие рулона&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п для обслуживания подменю ТАЙМЕР&lt;br /&gt;
100702$:BIS	#1000,@#177054	; Выключить таймер в канале ЦП&lt;br /&gt;
	SUB	#2,R2		; Текущий пункт - включен ?&lt;br /&gt;
	BNE	100724$		; Нет&lt;br /&gt;
	BIC	#1000,@#177054	; Включить таймер в канале ЦП&lt;br /&gt;
100724$:MOV	#2,R0&lt;br /&gt;
100730$:JSR	R4,101202$&lt;br /&gt;
	.WORD	102066$		; Адреса списка подменю ТАЙМЕР&lt;br /&gt;
	BEQ	100702$&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п обслуживания главного меню ЗАГРУЗКА&lt;br /&gt;
100742$:CLR	@#7042		; Направлять ASCII-коды запросам EMT 22&lt;br /&gt;
	CLR	-(SP)		; Номер устройства = 0&lt;br /&gt;
100750$:MOV	#14,R0		; Очистить экран&lt;br /&gt;
	EMT	42&lt;br /&gt;
100756$:CLR	@SP&lt;br /&gt;
	JSR	R4,101616$	; Позиционирование курсора&lt;br /&gt;
	.BYTE	2,5		; Y=2, X=5&lt;br /&gt;
	MOV	#-6,@#7150	; Запрет вывода в верхнюю инф. строку&lt;br /&gt;
	CLR	@#23164		; Разрешение использования курсора&lt;br /&gt;
	EMT	44		; Вывод заголовка&lt;br /&gt;
	.WORD	103114$&lt;br /&gt;
101004$:MOV	#4,R0&lt;br /&gt;
	JSR	R4,101202$	; Вывод меню и запрос пункта&lt;br /&gt;
	.WORD	102100$		; Адрес списка меню ЗАГРУЗКА&lt;br /&gt;
	BEQ	100756$&lt;br /&gt;
	BMI	101146$		; Нажаты &amp;lt;Enter&amp;gt;,&amp;lt;ИСП&amp;gt; или &amp;lt;0&amp;gt; ?&lt;br /&gt;
	ADD	R2,PC		; Переход по номеру пункта (нажата вправо)&lt;br /&gt;
	BR	100756$&lt;br /&gt;
	BR	101044$		; Диск&lt;br /&gt;
	BR	101102$		; Кассета ПЗУ&lt;br /&gt;
	BR	101004$		; Сеть&lt;br /&gt;
	BR	101004$		; Стык С2&lt;br /&gt;
	BR	101004$		; Магнитофон&lt;br /&gt;
	BR	101004$		; Отладка&lt;br /&gt;
	BR	101004$		; Тестирование&lt;br /&gt;
; Запрос номера диска&lt;br /&gt;
101044$:JSR	R4,101616$	; Позиционирование курсора&lt;br /&gt;
	.BYTE	4,34&lt;br /&gt;
	EMT	22		; Ввод символа с ожиданием&lt;br /&gt;
	CMP	R0,#33		; Код Escape ?&lt;br /&gt;
	BEQ	101142$		; Да&lt;br /&gt;
	EMT	42		; Вывод символа&lt;br /&gt;
	SUB	#60,R0		; Проверка нажатия &amp;lt;0&amp;gt; - &amp;lt;3&amp;gt;&lt;br /&gt;
	BMI	100756$&lt;br /&gt;
	CMP	R0,#3&lt;br /&gt;
	BHI	100756$&lt;br /&gt;
	BR	101136$&lt;br /&gt;
; Запрос номера кассеты ПЗУ&lt;br /&gt;
101102$:JSR	R4,101616$	; Позиционирование курсора&lt;br /&gt;
	.BYTE	5,34&lt;br /&gt;
	EMT	22		; Ввод символа с ожиданием&lt;br /&gt;
	CMP	R0,#33		; Код Escape ?&lt;br /&gt;
	BEQ	101142$		; Да&lt;br /&gt;
	EMT	42		; Вывод символа&lt;br /&gt;
	SUB	#61,R0		; Проверка нажатия &amp;lt;1&amp;gt;,&amp;lt;2&amp;gt;&lt;br /&gt;
	BMI	100756$&lt;br /&gt;
	CMP	R0,#1&lt;br /&gt;
	BHI	100756$&lt;br /&gt;
101136$:MOV	R0,@SP		; Сохранение номера устройства&lt;br /&gt;
	BR	101004$&lt;br /&gt;
101142$:EMT	22&lt;br /&gt;
	BR	100750$&lt;br /&gt;
101146$:MOV	#14,R0		; Очистка экрана&lt;br /&gt;
	EMT	42&lt;br /&gt;
	CALL	100254$		; Восстановить пользовательский режим&lt;br /&gt;
	MOV	R2,R0		; Занести номер пункта в буфер клавиатуры&lt;br /&gt;
	CALL	104160$&lt;br /&gt;
	MOVB	(SP)+,R0	; Занести номер устройства в буфер клавиатуры&lt;br /&gt;
	CALL	104160$&lt;br /&gt;
	CLR	@#7072		; Очистить признак вызова&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; П/п вывода пунктов меню и запроса номера пункта&lt;br /&gt;
101202$:MOV	#-6,@#7150	; Запрет вывода в верхнюю инф. строку&lt;br /&gt;
	MOV	R0,-(SP)&lt;br /&gt;
	CALL	101446$		; Вывод пунктов меню&lt;br /&gt;
	ADD	(SP)+,PC&lt;br /&gt;
	BR	101432$&lt;br /&gt;
	BR	101224$&lt;br /&gt;
101224$:MOV	@R4,R0		; Позиционирование курсора&lt;br /&gt;
	MOV	2(R0),R3	; R3 = координаты&lt;br /&gt;
	DEC	R3&lt;br /&gt;
	CALL	101564$&lt;br /&gt;
	MOV	@R4,R3		; R3 = адрес списка&lt;br /&gt;
101242$:EMT	22		; Ввод символа с ожиданием&lt;br /&gt;
	TST	R0		; Нажата УПР-@ ?&lt;br /&gt;
	BEQ	101436$&lt;br /&gt;
	CMP	R0,#33		; Символ Escape ?&lt;br /&gt;
	BEQ	101306$&lt;br /&gt;
	SUB	#60,R0		; Символы &amp;lt;0&amp;gt; - &amp;lt;9&amp;gt; ?&lt;br /&gt;
	BMI	101276$&lt;br /&gt;
	BEQ	101442$		; Символ &amp;lt;0&amp;gt; ?&lt;br /&gt;
	CMP	R0,@R3		; Не превышает номер последнего пункта ?&lt;br /&gt;
	BHI	101242$&lt;br /&gt;
	MOV	R0,R2		; R2 = номер выбранного пункта&lt;br /&gt;
	BR	101404$&lt;br /&gt;
101276$:ADD	#43,R0		; Нажата &amp;lt;Enter&amp;gt; (15(8)-60(8)+43(8)=0) ?&lt;br /&gt;
	BEQ	101442$&lt;br /&gt;
	BR	101404$&lt;br /&gt;
101306$:EMT	22&lt;br /&gt;
	SUB	#176,R0		; Нажаты &amp;lt;ПОМ&amp;gt;,&amp;lt;ИСП&amp;gt; или стрелки&lt;br /&gt;
	BMI	101242$&lt;br /&gt;
	CMP	R0,#6&lt;br /&gt;
	BHIS	101242$&lt;br /&gt;
	ASL	R0&lt;br /&gt;
	ADD	R0,PC&lt;br /&gt;
	BR	101344$		; &amp;lt;ПОМ&amp;gt;&lt;br /&gt;
	BR	101436$		; &amp;lt;ИСП&amp;gt;&lt;br /&gt;
	BR	101362$		; &amp;lt;Вверх&amp;gt;&lt;br /&gt;
	BR	101372$		; &amp;lt;Вниз&amp;gt;&lt;br /&gt;
	BR	101436$		; &amp;lt;Влево&amp;gt;&lt;br /&gt;
	BR	101436$		; &amp;lt;Вправо&amp;gt;&lt;br /&gt;
101344$:MOV	#20,R3		; Позиционирование курсора&lt;br /&gt;
	CALL	101564$&lt;br /&gt;
	EMT	44		; Вывод краткого хелпинга&lt;br /&gt;
	.WORD	103406$		; Адрес начала хелпинга&lt;br /&gt;
	BR	101224$&lt;br /&gt;
101362$:DEC	R2		; Уменьшить номер пункта&lt;br /&gt;
	BGT	101404$&lt;br /&gt;
	MOV	@R3,R2		; R2 = номер последнего пункта&lt;br /&gt;
	BR	101404$&lt;br /&gt;
101372$:INC	R2		; Увеличить номер пункта&lt;br /&gt;
	CMP	R2,@R3		; Превысил номер последнего пункта ?&lt;br /&gt;
	BLOS	101404$&lt;br /&gt;
	MOV	#1,R2&lt;br /&gt;
101404$:MOV	R2,@4(R3)	; Запомнить номер текущего пункта&lt;br /&gt;
	DEC	@4(R3)&lt;br /&gt;
	CLR	R0&lt;br /&gt;
101416$:TST	(R4)+&lt;br /&gt;
	CLR	@#7150		; Разрешение вывода в верхнюю инф. строку&lt;br /&gt;
	ASL	R2&lt;br /&gt;
	TST	R0&lt;br /&gt;
	RTS	R4&lt;br /&gt;
101432$:MOV	#10,R0&lt;br /&gt;
101436$:SUB	#5,R0&lt;br /&gt;
101442$:DEC	R0&lt;br /&gt;
	BR	101416$&lt;br /&gt;
&lt;br /&gt;
; П/п вывода пунктов меню&lt;br /&gt;
101446$:CLR	@#23164		; Запрет использования курсора&lt;br /&gt;
	MOV	@R4,R2&lt;br /&gt;
	MOV	(R2)+,-(SP)	; Число пунктов меню&lt;br /&gt;
	MOV	(R2)+,R3	; Координаты курсора&lt;br /&gt;
	ADD	R3,@SP&lt;br /&gt;
	MOV	@(R2)+,-(SP)	; Номер текущего пункта меню&lt;br /&gt;
	ADD	R3,@SP&lt;br /&gt;
	TST	R0&lt;br /&gt;
	BNE	101502$&lt;br /&gt;
	CALL	101564$		; Курсор в начало экрана&lt;br /&gt;
	EMT	44		; Стирание правой части экрана&lt;br /&gt;
	.WORD	103364$&lt;br /&gt;
101502$:CALL	101564$&lt;br /&gt;
	CMP	R3,@SP		; Номер выводимого пункта совпадает с текущим ?&lt;br /&gt;
	BNE	101516$&lt;br /&gt;
	EMT	44		; Включить режим инверсии&lt;br /&gt;
	.WORD	102124$&lt;br /&gt;
101516$:MOV	(R2)+,R1	; Вывод очередного пункта&lt;br /&gt;
	EMT	46&lt;br /&gt;
	CMP	R3,@SP		; Номер выводимого пункта совпадает с текущим ?&lt;br /&gt;
	BNE	101532$&lt;br /&gt;
	EMT	44		; Выключить режим инверсии&lt;br /&gt;
	.WORD	102127$&lt;br /&gt;
101532$:INC	R3		; Переход к очередному пункту&lt;br /&gt;
	CMP	R3,2(SP)	; Вывод завершен ?&lt;br /&gt;
	BLO	101502$		; Нет&lt;br /&gt;
	CMP	(SP)+,(SP)+&lt;br /&gt;
	MOV	@R4,R0&lt;br /&gt;
	MOV	@4(R0),R2	; R2 = номер текущего пункта&lt;br /&gt;
	INC	R2&lt;br /&gt;
	MOV	#2,@#23164	; Разрешить использование курсора&lt;br /&gt;
	RETURN&lt;br /&gt;
&lt;br /&gt;
; Следующие две п/п осуществляют позиционирование курсора&lt;br /&gt;
; В первой п/п координаты задаются в R3, во второй - в слове,&lt;br /&gt;
; которое следует за командой вызова п/п (JSR R4,101616$).&lt;br /&gt;
101564$:MOV	@#23150,R5	; R5 = адрес таблицы видеопараметров&lt;br /&gt;
	MOVB	R3,R0		; R0 = Y (строка)&lt;br /&gt;
	CALL	115720$		; Позиционирование по строке&lt;br /&gt;
	SWAB	R3&lt;br /&gt;
	MOVB	R3,R0		; R0 = X (столбец)&lt;br /&gt;
	CALL	115672$		; Позиционирование по столбцу&lt;br /&gt;
	SWAB	R3&lt;br /&gt;
	INC	@#7066		; Установить признак перемещения курсора&lt;br /&gt;
	RETURN&lt;br /&gt;
101616$:MOV	@#23150,R5	; R5 = адрес таблицы видеопараметров&lt;br /&gt;
	MOVB	(R4)+,R0	; R0 = Y (строка)&lt;br /&gt;
	CALL	115720$		; Позиционирование по строке&lt;br /&gt;
	MOVB	(R4)+,R0	; R0 = X (столбец)&lt;br /&gt;
	CALL	115672$		; Позиционирование по столбцу&lt;br /&gt;
	INC	@#7066		; Установить признак перемещения курсора&lt;br /&gt;
	RTS	R4&lt;br /&gt;
&lt;br /&gt;
;       СПИСКИ  ПУНКТОВ  МЕНЮ&lt;br /&gt;
; Структура списка:&lt;br /&gt;
;    первое слово - число пунктов меню&lt;br /&gt;
;    второе слово - координаты курсора&lt;br /&gt;
;    третье слово - адрес ячейки, в которой сохраняется номер тек. пункта&lt;br /&gt;
;    далее        - адреса надписей пунктов меню&lt;br /&gt;
&lt;br /&gt;
; Список главного меню УСТАНОВКА&lt;br /&gt;
101644$:.WORD	10&lt;br /&gt;
	.BYTE	4,0&lt;br /&gt;
	.WORD	7152,102165$,102211$,102235$,102261$&lt;br /&gt;
	.WORD	102305$,102331$,102355$,102401$&lt;br /&gt;
&lt;br /&gt;
; Список меню СИСТЕМА КОМАНД&lt;br /&gt;
101672$:.WORD	2&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7154,102425$,102445$&lt;br /&gt;
&lt;br /&gt;
; Список меню ФОРМАТ ЭКРАНА&lt;br /&gt;
101704$:.WORD	4&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7156,102465$,102477$,102511$,102523$&lt;br /&gt;
&lt;br /&gt;
; Список меню ЦВЕТ СИМВОЛА&lt;br /&gt;
101722$:.WORD	10&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7160,102535$,102562$,102607$,102634$&lt;br /&gt;
	.WORD	102661$,102706$,102733$,102760$&lt;br /&gt;
&lt;br /&gt;
; Список меню ЦВЕТ ЗНАКОМЕСТА&lt;br /&gt;
101750$:.WORD	10&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7162,102535$,102562$,102607$,102634$&lt;br /&gt;
	.WORD	102661$,102706$,102733$,102760$&lt;br /&gt;
&lt;br /&gt;
; Список меню ЦВЕТ ЭКРАНА&lt;br /&gt;
101776$:.WORD	10&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7164,102535$,102562$,102607$,102634$&lt;br /&gt;
	.WORD	102661$,102706$,102733$,102760$&lt;br /&gt;
&lt;br /&gt;
; Список меню ЦВЕТ КУРСОРА&lt;br /&gt;
102024$:.WORD	10&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7166,102535$,102562$,102607$,102634$&lt;br /&gt;
	.WORD	102661$,102706$,102733$,102760$&lt;br /&gt;
&lt;br /&gt;
; Список меню РУЛОН&lt;br /&gt;
102052$:.WORD	3&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7170,103005$,103024$,103043$&lt;br /&gt;
&lt;br /&gt;
; Список меню ТАЙМЕР&lt;br /&gt;
102066$:.WORD	2&lt;br /&gt;
	.BYTE	4,30&lt;br /&gt;
	.WORD	7172,103062$,103077$&lt;br /&gt;
&lt;br /&gt;
; Список меню ЗАГРУЗКА&lt;br /&gt;
102100$:.WORD	7&lt;br /&gt;
	.BYTE	4,2&lt;br /&gt;
	.WORD	7174,103175$,103216$,103237$,103260$&lt;br /&gt;
	.WORD	103301$,103322$,103343$&lt;br /&gt;
&lt;br /&gt;
; Esc-последовательность включения инверсии&lt;br /&gt;
102124$:.BYTE	33,243,0&lt;br /&gt;
; Esc-последовательность выключения инверсии&lt;br /&gt;
102127$:.BYTE	33,277,243,0&lt;br /&gt;
; Заголовок меню УСТАНОВКА&lt;br /&gt;
102133$:.BYTE	14,12,40,33,244&lt;br /&gt;
	.ASCII	/УСТАНОВКА РЕЖИМОВ/&lt;br /&gt;
	.BYTE	33,277,244,0&lt;br /&gt;
&lt;br /&gt;
; Надписи меню УСТАНОВКА&lt;br /&gt;
102165$:.ASCIZ	/1 - система команд /&lt;br /&gt;
102211$:.ASCIZ	/2 - формат экрана  /&lt;br /&gt;
102235$:.ASCIZ	/3 - цвет символа   /&lt;br /&gt;
102261$:.ASCIZ	/4 - цвет знакоместа/&lt;br /&gt;
102305$:.ASCIZ	/5 - цвет экрана    /&lt;br /&gt;
102331$:.ASCIZ	/6 - цвет курсора   /&lt;br /&gt;
102355$:.ASCIZ	/7 - рулон          /&lt;br /&gt;
102401$:.ASCIZ	/8 - таймер         /&lt;br /&gt;
&lt;br /&gt;
; Надписи меню СИСТЕМА КОМАНД&lt;br /&gt;
102425$:.ASCIZ	/1 - VT-52      /&lt;br /&gt;
102445$:.ASCIZ	/2 - 15ИЭ-00-013/&lt;br /&gt;
&lt;br /&gt;
; Надписи меню ФОРМАТ ЭКРАНА&lt;br /&gt;
102465$:.ASCIZ	/1 - 80/&amp;lt;220&amp;gt;/24/&lt;br /&gt;
102477$:.ASCIZ	/2 - 40/&amp;lt;220&amp;gt;/24/&lt;br /&gt;
102511$:.ASCIZ	/3 - 20/&amp;lt;220&amp;gt;/24/&lt;br /&gt;
102523$:.ASCIZ	/4 - 10/&amp;lt;220&amp;gt;/24/&lt;br /&gt;
&lt;br /&gt;
; Надписи меню ЦВЕТ СИМВОЛА, ЦВЕТ ЗНАКОМЕСТА, ЦВЕТ ЭКРАНА, ЦВЕТ КУРСОРА&lt;br /&gt;
102535$:.IRP	X,&amp;lt;60,61,62,63,64,65,66,67&amp;gt;&lt;br /&gt;
	.BYTE	X+1,40,55,40,33,240,X,33,241,X&lt;br /&gt;
	.BYTE	237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
	.ENDR&lt;br /&gt;
&lt;br /&gt;
; Надписи меню РУЛОН&lt;br /&gt;
103005$:.ASCIZ	/1 - плавный   /&lt;br /&gt;
103024$:.ASCIZ	/2 - дискретный/&lt;br /&gt;
103043$:.ASCIZ	/3 - выключен  /&lt;br /&gt;
&lt;br /&gt;
; Надписи меню ТАЙМЕР&lt;br /&gt;
103062$:.ASCIZ	/1 - включен /&lt;br /&gt;
103077$:.ASCIZ	/2 - выключен/&lt;br /&gt;
&lt;br /&gt;
; Заголовок меню ЗАГРУЗКА&lt;br /&gt;
103114$:.ASCII	&amp;lt;33&amp;gt;&amp;lt;244&amp;gt;/ЗАГРУЗКА/&amp;lt;33&amp;gt;&amp;lt;277&amp;gt;&amp;lt;244&amp;gt;&lt;br /&gt;
	.BYTE	12,12&lt;br /&gt;
	.REPT	10&lt;br /&gt;
	.BYTE	31&lt;br /&gt;
	.ENDR&lt;br /&gt;
	.ASCII	/(0/&amp;lt;221&amp;gt;/3): 0/&amp;lt;12&amp;gt;&lt;br /&gt;
	.REPT	10&lt;br /&gt;
	.BYTE	32&lt;br /&gt;
	.ENDR&lt;br /&gt;
	.ASCIZ	/(1,2): 1/&lt;br /&gt;
&lt;br /&gt;
; Надписи меню ЗАГРУЗКА&lt;br /&gt;
103175$:.ASCIZ	/1 - диск        /&lt;br /&gt;
103216$:.ASCIZ	/2 - кассета ПЗУ /&lt;br /&gt;
103237$:.ASCIZ	/3 - сеть        /&lt;br /&gt;
103260$:.ASCIZ	/4 - стык С2     /&lt;br /&gt;
103301$:.ASCIZ	/5 - магнитофон  /&lt;br /&gt;
103322$:.ASCIZ	/6 - отладка     /&lt;br /&gt;
103343$:.ASCIZ	/7 - тестирование/&lt;br /&gt;
&lt;br /&gt;
; Стирание правой части экрана&lt;br /&gt;
103364$:.REPT	10&lt;br /&gt;
	.BYTE	37,35&lt;br /&gt;
	.ENDR&lt;br /&gt;
	.BYTE	37,0&lt;br /&gt;
&lt;br /&gt;
; Краткий хелпинг&lt;br /&gt;
103406$:.BYTE	61,221,71,54,200,54,201&lt;br /&gt;
	.ASCII	/ - выбор элемента/&amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
	.BYTE	40,40,203&lt;br /&gt;
	.ASCII	/     - следующий уровень/&amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
	.BYTE	40,40,202&lt;br /&gt;
	.ASCII	/     - предыдущий уровень/&amp;lt;15&amp;gt;&amp;lt;12&amp;gt;&lt;br /&gt;
	.ASCIZ	/0,/&amp;lt;224&amp;gt;/,ИСП - выход/&lt;br /&gt;
	.EVEN&lt;br /&gt;
	.ENDT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
		
	</entry>
</feed>