<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1</id>
	<title>УКНЦ ROM disasm 1 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1&amp;action=history"/>
	<updated>2026-05-03T07:18:09Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1&amp;diff=2952&amp;oldid=prev</id>
		<title>Nzeemin: категория</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1&amp;diff=2952&amp;oldid=prev"/>
		<updated>2020-03-29T14:18:58Z</updated>

		<summary type="html">&lt;p&gt;категория&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:18, 29 марта 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l527&quot;&gt;Строка 527:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 527:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:УКНЦ]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:УКНЦ&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|R&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nzeemin</name></author>
	</entry>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1&amp;diff=1974&amp;oldid=prev</id>
		<title>Nzeemin: Новая страница: «{{ДИ}} &lt;pre&gt;         .TITLE  ROM          .ASECT          .=100000                ; Начальный адрес ПЗУ  ; ************************************…»</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_1&amp;diff=1974&amp;oldid=prev"/>
		<updated>2015-10-07T06:31:01Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{ДИ}} &amp;lt;pre&amp;gt;         .TITLE  ROM          .ASECT          .=100000                ; Начальный адрес ПЗУ  ; ************************************…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ДИ}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        .TITLE  ROM&lt;br /&gt;
&lt;br /&gt;
        .ASECT&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$:.BYTE   &amp;#039;1,40,&amp;#039;-,40,33,240,&amp;#039;0,33,241,&amp;#039;0&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102562$:.BYTE   &amp;#039;2,40,&amp;#039;-,40,33,240,&amp;#039;1,33,241,&amp;#039;1&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102607$:.BYTE   &amp;#039;3,40,&amp;#039;-,40,33,240,&amp;#039;2,33,241,&amp;#039;2&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102634$:.BYTE   &amp;#039;4,40,&amp;#039;-,40,33,240,&amp;#039;3,33,241,&amp;#039;3&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102661$:.BYTE   &amp;#039;5,40,&amp;#039;-,40,33,240,&amp;#039;4,33,241,&amp;#039;4&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102706$:.BYTE   &amp;#039;6,40,&amp;#039;-,40,33,240,&amp;#039;5,33,241,&amp;#039;5&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102733$:.BYTE   &amp;#039;7,40,&amp;#039;-,40,33,240,&amp;#039;6,33,241,&amp;#039;6&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&lt;br /&gt;
102760$:.BYTE   &amp;#039;8,40,&amp;#039;-,40,33,240,&amp;#039;7,33,241,&amp;#039;7&lt;br /&gt;
        .BYTE   237,237,237,237,33,277,240,33,277,241,0&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:УКНЦ]]&lt;/div&gt;</summary>
		<author><name>Nzeemin</name></author>
	</entry>
</feed>