Uknc ROM disasm - 2

From Felixl.com
Revision as of 08:23, 18 March 2007 by Nzeemin (talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to navigationJump to search
; *********************************************************
; *                                                       *
; *                  ДРАЙВЕР КЛАВИАТУРЫ                   *
; *                                                       *
; *                Адреса 103554 - 107743                 *
; *                                                       *
; *********************************************************

; П/п начальной инициализации
103554$:JSR	R5,173730$	; Очистка ОЗУ
	.WORD	7176,1762	; Начальный адрес - 7176, число слов - 1762
103564$:TST	@#177702	; Сбросить готовность рег.сост. клавиатуры
	MOV	#175412$,@#300	; Вектор прерываний от клавиатуры
	MOV	#200,@#302
	MOV	#100,@#177700	; Разрешить прерывания от клавиатуры
	MOV	#175540$,@#324	; Вектор прерываний от канала 0 (источник)
	MOV	#200,@#326
	BIS	#1,@#177076	; Разрешить прерывания от канала 0 (источник)
	CALL	104064$		; Настройка начальных адресов буферов
	MOV	#11140,@#13140	; Нач. адрес буфера клавиш К1 - К25
	MOV	#7234,@#7214	; Текущая таблица - табл. основного регистра
	MOV	#7234,@#7216
	MOVB	#40,@#7221	; Заглавные буквы
	MOVB	#16,@#7222	; Латинский регистр
	MOVB	#17,@#7223
; Заполнение таблиц раскладки клавиатуры
	MOV	#105520$,R1	; R1 = нач. адрес данных для таблиц раскладки
	MOV	#7234,R0	; R0 = нач. адрес таблиц раскладки
	MOV	#5,R4		; R4 = число таблиц раскладки
103720$:MOV	#130,R2		; R2 = число элементов таблицы
	MOV	R0,R3		; R3 = адрес текущей заполняемой таблицы
103726$:MOVB	(R1)+,(R3)+	; Пересылка
	CLRB	(R3)+
	SOB	R2,103726$
	MOV	#400,R2		; R2 = номер первой регистровой клавиши
103740$:MOVB	(R1)+,R3
	BEQ	103762$		; Это строка или конец данных для тек. табл.?
	BMI	103756$		; Переход к следующей регистровой комбинации ?
	DEC	R3		; Регистровая клавиша (в R3 - смещение)
	ASL	R3
	ADD	R0,R3
	MOV	R2,@R3
103756$:INC	R2
	BR	103740$
103762$:MOVB	(R1)+,R3
	BEQ	104004$		; Это конец таблицы ?
	DEC	R3		; Строка (адрес в R1,смещение в табл. в R3)
	ASL	R3
	ADD	R0,R3
	MOV	R1,@R3
103776$:TSTB	(R1)+		; Прогон строки
	BNE	103776$
	BR	103762$
104004$:ADD	#260,R0		; Переход к следующей таблице
	SOB	R4,103720$
	CALL	113670$		; Установить систему команд VT-52
	MOVB	#2,@#7226	; Интервал автоповтора
	RETURN
; П/п ПАУЗА (ожидание нажатия любой клавиши)
104026$:CLR	@#177700	; Запретить прерывания от клавиатуры
104032$:TSTB	@#177700	; Ожидание нажатия или отжатия клавиши
	BPL	104032$
	TSTB	@#177702$	; Клавиша отжата ?
	BMI	104032$		; Да
	MOV	#100,@#177700	; Разрешить прерывания от клавиатуры
104054$:JSR	R5,173730$	; Очистка буферов клавиатуры
	.WORD	2240,14
; Установка указателей на начало буферов
104064$:MOV	#2260,@#7176
	MOV	#2260,@#7200
	MOV	#2240,@#7202
	MOV	#2240,@#7204
	MOV	#2200,@#7206
	MOV	#2200,@#7210
	RETURN
; П/п обслуживания запросов EMT 22 и EMT 24 (ввод символа с ожиданием)
104132$:TRAP	2		; Считывание символа с буфера в регистр R0
	ADD	@#7230,PC	; Символ есть в буфере ?
	BR	104152$		; Да
	CLR	@#7230
	TRAP	0		; Запуск диспетчера процессов
	BR	104132$
104152$:MOV	R0,2(SP)
	RETURN
; П/п заноса ASCII-символов и адресов строк в буфер
104160$:MOV	R0,@7210$	; Занести символ в буфер
	ADD	#2,@#7210	; Продвинуть указатель
	BIC	#40,@#7210	; Корректировка указателя (циклический буфер)
	ADD	@#7230,PC
	RETURN
104206$:TRAP	2
	RETURN

; *** ОСНОВНАЯ П/П ОБСЛУЖИВАНИЯ КЛАВИАТУРЫ ***

; Точка выхода из п/п обслуживания клавиатуры
104212$:CLR	@#7060		; Очистить флаг вызова п/п
	CLRB	@#7227		; Очистить ячейку значения автоповтора
104222$:ADD	@#7230,PC
	RETURN
104230$:TRAP	2
	RETURN
104234$:TSTB	@7202$		; Есть скэн-коды в буфере автоповтора ?
	BEQ	104212$		; Нет
	TSTB	@#7227		; Истекло время автоповтора ?
	BNE	104222$		; Нет
	MOV	@#7202,R3	; R3 = указатель на буфер автоповтора(чтение)
104254$:MOVB	(R3)+,R0	; Прочесть очередной скэн-код
	BNE	104336$		; Он существует
104260$:BIC	#20,R3		; Подправить значение указателя
	CMP	R3,@#7204	; Буфер просмотрен до конца ?
	BNE	104254$		; Нет
	MOVB	@#7226,@#7227
	DEC	@#7060
	BR	104222$
; Точка входа в п/п обслуживания клавиатуры из диспетчера процессов
104306$:MOV	@#7176,R1	; R1 = указатель на буфер скэн-кодов
	MOVB	@R1,R0		; Прочесть скэн-код
	BEQ	104234$		; Скэн-кода нет
	DEC	@#7060		; Уменьшить счетчик (флаг вызова)
	CLRB	(R1)+		; Вычеркнуть скэн-код из буфера
	BIC	#10,R1		; Подправить значение указателя
	MOV	R1,@#7176
	CLR	R3		; В данном случае R3 является индикатором
				; того, что скэн-код был прочитан из основ-
				; ного буфера (R3=0) или из буфера авто-
				; повтора (R3<>0).
104336$:MOV	R0,R2		; R2 = скэн-код
	BMI	104516$		; Это скэн-код отжатия
	ASHC	#74,R0		; Извлечение ASCII-кода
	MOVB	105510$(R0),R1
	MOV	R2,R0
	SUB	R1,R0
	ASL	R0
	ADD	@#7214,R0
	MOV	@R0,R0
	MOV	R0,R1
	SWAB	R1
	BEQ	104410$		; Это одиночный ASCII-код
	ASRB	R1
	BNE	104434$		; Это адрес ASCIZ-строки
	MOVB	R0,R0		; Переход на обслуживание регистровых клавиш
	ASL	R0
	JMP	@104714$(R0)
104410$:TST	@#7232		; Разрешена передача одиночных символов ?
	BNE	104510$		; Нет
	TSTB	R0		; Символ в диапазоне 128-255 ?
	BMI	104434$		; Да
	CMP	R0,#100		; Это символы @,A-Z,[,\,],_ ?
	BLO	104434$		; Нет
	BISB	@#7220,R0	; Установка заглавные/строчные буквы
104434$:TST	R3		; Это символ из буфера автоповтора ?
	BNE	104472$		; Да
	TSTB	@7202$		; Буфер автоповтора пуст ?
	BNE	104454$		; Нет
	MOVB	#31,@#7227	; Задать время между нажатием и автоповтором
104454$:MOVB	R2,@7204$	; Положить скэн-код в буфер автоповтора
	INC	@#7204		; Подправить значение указателя
	BIC	#20,@#7204
104472$:MOV	@#7210,R1	; R1 = указатель на буфер ASCII-символов
	MOV	R0,(R1)+	; Положить символ(адрес строки) в буфер
	BIC	#40,R1
	MOV	R1,@#7210
104510$:TST	R3		; Это был символ из буфера автоповтора ?
	BNE	104260$		; Да
104514$:BR	104306$
104516$:MOV	@#7212,R0	; R0 = ожидаемый код отжатия рег. клавиши
	BEQ	104614$		; Регистровая клавиша не была нажата
	CMPB	R2,R0		; Коды отжатия совпадают ?
	BEQ	104540$		; Да
104530$:SWAB	R0
	BEQ	104530$
	CMPB	R2,R0
	BNE	104614$
; Обработка кода отжатия регистровой клавиши
104540$:CLRB	R0		; Очистить байт кода отжатия
	SWAB	R0
	MOV	R0,@#7212
	CLR	R0
	CMPB	R2,#205		; Была отжата клавиша НР (Shift) ?
	BEQ	104574$		; Да
	MOVB	@#7224,R0	; R0 = ASCII-код, посылаемый при отжатии АЛФ
	BEQ	104600$		; Его нет
	CLRB	@#7224
	BR	104600$
104574$:SWAB	@#7220		; Переменить состояние заглавные/строчные
104600$:MOV	@#7216,@#7214	; Восстановить пред. табл. раскл. клавиатуры
	TST	R0		; Есть данные для передачи при отжатии АЛФ ?
	BNE	104472$		; Да
	BR	104306$
; Обработка кода отжатия алфавитно-цифровой клавиши
104614$:BIC	#177760,R2	; Оставить биты кода отжатия
	MOV	@#7202,R1	; R1 = указатель на буфер автоповтора
104624$:MOVB	(R1)+,R0	; Прочесть скэн-код из буфера автоповтора
	BEQ	104644$		; Он отсутствует
	BIC	#177760,R0	; Оставить биты кода отжатия
	CMP	R0,R2		; Эти коды совпадают ?
	BEQ	104700$		; Да
	MOV	R2,R3
	BEQ	104306$
104644$:BIC	#20,R1
	TST	R3
	BNE	104660$
	MOV	R1,@#7202
104660$:CMP	R1,@#7204	; Буфер просмотрен до конца ?
	BNE	104624$		; Нет
	MOVB	#2,@#7226	; Установить нормальную скорость автоповтора
104674$:JMP	104306$
104700$:CLRB	-1(R1)		; Выбросить скэн-код из буфера автоповтора
	CLR	R2		; R2 = 0(признак того, что скэн-код обнаружен)
	TST	R3
	BNE	104674$
	BR	104644$
; Адреса п/п обслуживания регистровых комбинаций
104714$:.WORD	104766$		; Нажатие НР (Shift)
	.WORD	105044$		; Нажатие АЛФ
	.WORD	105116$		; Нажатие ГРАФ (Graph)
	.WORD	105150$		; Нажатие УПР (Ctrl)
	.WORD	105160$		; Нажатие ФИКС (Lock)
	.WORD	104734$		; Установка режимов (УСТ)
	.WORD	105234$		; Режим ИСУ (УПР+ПОМ)
	.WORD	104746$		; Печать экрана (УПР+ИСП)
; П/п обслуживания нажатия УСТ
104734$:CLR	@#7042		; Адресовать ASCII-коды клавиатуры запросу EMT
	INC	@#7070		; Установить флаг вызова меню УСТАНОВКА
	BR	104514$
; П/п обслуживания нажатия УПР+ИСП (печать экрана)
104746$:CALL	135704$		; Печать экрана
	MOV	@#7216,@#7214
	CLR	@#7212
	BR	104514$
; П/п обслуживания нажатия НР
104766$:TSTB	@7202$		; Нажата какая-нибудь алф.-циф. клавиша ?
	BEQ	105004$		; Нет
	MOV	#401,7226$	; Установить повышенную скорость автоповтора
	BR	104514$
105004$:MOV	#205,R1		; R1 = код отжатия НР
	MOV	#7514,@#7214	; Текущая табл.-таблица нижнего регистра
105016$:SWAB	@#7220		; Переключить режим заглавные/строчные буквы
105022$:SWAB	@#7212
	MOVB	R1,@#7212
	CMPB	@#7213,#207	; Была нажата клавиша ФИКС ?
	BEQ	105202$		; Да
	BR	104514$
; П/п обслуживания нажатия АЛФ
105044$:MOVB	@#7222,R0	; R0 = 16(8) или 17(8)
	MOVB	@#7223,@#7224
	SWAB	@#7212
	MOVB	#206,@#7212	; Код отжатия клавиши АЛФ
	CMPB	@#7213,#207	; Была нажата клавиша ФИКС ?
	BNE	105112$		; Нет
	CLRB	@#7224		; При отжатии АЛФ не передавать ASCII-кода
	MOV	@#7216,@#7214
105112$:JMP	104472$
; П/п обслуживания нажатия ГРАФ
105116$:MOV	#7774,@#7214	; Текущая табл.-таблица ГРАФ-регистра
105124$:MOV	#206,R1		; R1 = код отжатия ГРАФ и УПР
105130$:CMP	@#7214,@#7216	; Адрес текущей табл. равен адресу предыдущей ?
	BNE	105022$		; Нет
	MOV	#7234,@#7214	; Текущая таблица-таблица основного регистра
	BR	105022$
; П/п обслуживания нажатия УПР
105150$:MOV	#10254,@#7214	; Текущая таблица-таблица УПР-регистра
	BR	105124$
; П/п обслуживания нажатия ФИКС
105160$:MOV	#207,R1		; R1 = код отжатия ФИКС
	TST	@#7212		; Нажата регистровая клавиша ?
	BNE	105202$		; Да
	MOV	#10534,@#7214	; Текущая таблица-таблица ФИКС-регистра
	BR	105130$
105202$:CMP	@#7214,#7514	; Нажата НР ?
	BEQ	105016$		; Да
	TSTB	@#7224		; Нажата АЛФ ?
	BEQ	105224$		; Нет
	CLRB	@#7224		; При отжатии АЛФ не передавать ASCII-кода
105224$:MOV	@#7214,@#7216
	BR	105022$
; П/п обслуживания нажатия УПР+ПОМ (ИСУ on/off)
105234$:COMB	@#22552		; Изменить режим ИСУ/не ИСУ
	BEQ	105250$		; Режим ИСУ выключен
	EMT	52		; Высветить надпись "ИСУ"
	.WORD	107641$
	BR	105254$
105250$:EMT	52		; Стереть надпись "ИСУ"
	.WORD	107632$
105254$:JMP	104306$
; П/п обработки управляющего символа Ctrl+N (переключение на русский алфавит)
105260$:MOV	@#22556,R0	; R0 = текущее состояние алфавита
	MOV	#200,@#22556	; Установить русский алфавит
	MOV	#16*400+17,@#7222;Последовательность посылки кодов
				; при нажатии и отжатии АЛФ
	EMT	52		; Высветить надпись "РУС"
	.WORD	107731$
	BR	105330$
; П/п обработки управляющего символа Ctrl+O (переключение на латинский алфавит)
105306$:MOV	@#22556,R0
	CLR	@#22556		; Установить латинский алфавит
	MOV	#17*400+16,@#7222
	EMT	52		; Высветить надпись "ЛАТ"
	.WORD	107736$
105330$:CMP	R0,@#22556	; Предыдущий и текущий режимы алфавита равны ?
	BEQ	105342$		; Да
	SWAB	@#7220		; Переменить верхний/нижний регистр
105342$:RETURN
105344$:RETURN
; П/п устанавливает специальные режимы клавиатуры (системный, ДКЛ)
105346$:MOV	(R5)+,R0	; R0 = адрес новых кодов клавиатуры
	MOV	(R5)+,R1	; R1 = адрес буфера сохранения
	TST	@R1		; Режим уже был установлен ?
	BNE	105376$		; Да
	INC	(R1)+		; Установить флаг спецрежима
	BR	105372$
105362$:MOV	7232(R2),(R1)+	; Сохранить значение клавиши
	MOV	(R0)+,7232(R2)	; Занести новое значение
105372$:MOV	(R0)+,R2	; R2 = адрес клавиши
	BNE	105362$		; Еще не конец таблицы
105376$:RTS	R5
; П/п восстанавливает предыдущий режим клавиатуры
105400$:MOV	(R5)+,R0	; R0 = адрес новых кодов клавиатуры
	MOV	(R5)+,R1	; R1 = адрес буфера сохранения
	TST	@R1		; Спецрежим установлен ?
	BEQ	105426$		; Нет
	CLR	(R1)+		; Сбросить флаг спецрежима
	BR	105422$
105414$:MOV	(R1)+,7232(R2)	; Восстановить значение клавиши
	TST	(R0)+
105422$:MOV	(R0)+,R2	; R2 = адрес клавиши
	BNE	105414$		; Еще не конец таблицы
105426$:RTS	R5
; П/п переключения клавиатуры в новый режим. Если текущий режим является
; не системным, то переключение производится сразу, иначе (системный режим)
; производится проверка адресов клавиш и для клавиш, задействованных
; в системном режиме, информация сохраняется в буфере, откуда перекачивается
; в таблицу раскладки при выходе из системного режима.
105430$:MOV	(R5)+,R0	; R0 = адрес новой таблицы
	BR	105502$
105434$:TST	@#11054		; Установлен системный режим ?
	BEQ	105476$		; Нет
	MOV	#107310$-4,R2	; R2 = адрес списка системных клавиш
105446$:ADD	#4,R2		; Перейти к следущему адресу
	MOV	@R2,R3		; R3 = адрес клавиши
	BEQ	105476$		; Конец списка системных клавиш
	CMP	R3,R1		; Адреса совпадают ?
	BNE	105446$		; Нет
	SUB	#107310$,R2	; Получение адреса клавиши в буфере сохранения
	ASR	R2
	MOV	(R0)+,11056(R2)	; Занести код в буфер сохранения
	BR	105502$
105476$:MOV	(R0)+,7232(R1)	; Занести код в таблицу раскладки клавиатуры
105502$:MOV	(R0)+,R1	; R1 = адрес клавиши
	BNE	105434$		; Еще не конец таблицы
	RTS	R5
; Корректирующие коды, использующиеся при вычислении адреса в таблице раскладки
105510$:.BYTE	5,12,17,24,31,36,43,50

; НАЧАЛЬНЫЕ ДАННЫЕ ДЛЯ ТАБЛИЦ РАСКЛАДКИ КЛАВИАТУРЫ
; Структура :
; первые 88 байт - ASCII-коды для клавиш
; далее - смещения для регистровых клавиш (конец - байт 0)
; строки символов : - смещение в таблице (байт 0 - конец списка)
;                   - ASCIZ-строка
; байт 0 - конец описания раскладки

; Раскладка основного регистра
105520$:.BYTE	54,33,73,0,0,0,64,0,0,67,70,55,11,112,61,62,63,105,65,66
	.BYTE	133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
	.BYTE	131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
	.BYTE	130,0,54,67,60,61,64,53,177,0,0,56,134,126,70,56,62,65,0
	.BYTE	0,15,0,137,110,132,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
	.BYTE	55,56,43,30,57,110,0
; - строки символов
	.BYTE	107
	.ASCIZ	<33><177>
	.BYTE	123
	.ASCIZ	<33>/~/
	.BYTE	4,0,5,0,6,0,10,0,11,0,0

; Раскладка НР-регистра
105702$:.BYTE	54,33,53,0,0,0,44,0,0,47,50,57,11,112,41,42,43,105,45,46
	.BYTE	133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
	.BYTE	131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
	.BYTE	130,0,74,67,60,61,64,52,177,0,0,76,134,126,70,56,62,65,0
	.BYTE	0,12,0,137,110,132,71,15,63,66,14,12,77,52,75,60,51
; - список регистровых клавиш
	.BYTE	55,56,43,30,57,110,0
; - строки символов
	.BYTE	107
	.ASCIZ	<33><177>
	.BYTE	123
	.ASCIZ	<33>/~/
	.BYTE	4,0,5,0,6,0,10,0,11,0,0

; Раскладка ГРАФ-регистра
106064$:.BYTE	54,33,73,0,0,0,64,0,0,67,70,55,11,252,61,62,63,245,65,66
	.BYTE	273,275,0,0,246,243,265,253,260,256,247,254,244,0,0,261
	.BYTE	271,267,241,251,262,257,242,240,0,0,0,276,263,255,40,264
	.BYTE	270,0,54,67,60,61,64,53,177,0,0,56,274,266,70,56,62,65,0
	.BYTE	0,0,0,277,250,272,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
	.BYTE	55,56,43,30,57,110,0
; - строки символов
	.BYTE	66
	.ASCIZ	<33>/D/
	.BYTE	76
	.ASCIZ	<33>/C/
	.BYTE	112
	.ASCIZ	<33>/A/
	.BYTE	77
	.ASCIZ	<33>/B/
	.BYTE	111
	.ASCIZ	<15><12>
	.BYTE	4,0,5,0,6,0,10,0,11,0,0

; Раскладка УПР-регистра
106262$:.BYTE	0,33,73,0,0,0,64,0,0,67,70,0,11,12,61,62,63,5,65,66,33,35
	.BYTE	0,0,6,3,25,13,20,16,7,14,4,0,0,21,31,27,1,11,22,17,2,0,0,0,0
	.BYTE	36,23,15,40,24,30,0,54,67,60,61,64,0,177,0,0,56,34,26,70,56
	.BYTE	62,65,0,0,0,0,37,10,32,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
	.BYTE	55,56,43,30,57,110,123,107,0
; - строки символов
	.BYTE	74
	.ASCIZ	<33>/P/
	.BYTE	14
	.ASCIZ	<33>/Q/
	.BYTE	1
	.ASCIZ	<33>/R/
	.BYTE	4,0,5,0,6,0,10,0,11,0,0

; Раскладка ФИКС-регистра
106452$:.BYTE	54,33,73,0,0,0,64,0,0,67,70,55,11,112,61,62,63,105,65,66
	.BYTE	133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
	.BYTE	131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
	.BYTE	130,0,54,67,60,61,64,53,177,0,0,56,134,126,70,56,62,65,0
	.BYTE	0,0,0,137,110,132,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
	.BYTE	55,56,43,30,57,110,0
; - строки символов
	.BYTE	107
	.ASCIZ	<33><177>
	.BYTE	123
	.ASCIZ	<33>/~/
	.BYTE	4,0,5,0,6,0,10,0,11,0,0

; Данные для пользовательского режима (VT-52)
106634$:.WORD	224,106752$,176,106755$,154,106760$,174,106763$
	.WORD	504,106752$,456,106755$,434,106760$,454,106763$
	.WORD	1244,106752$,1216,106771$,1174,106760$,1214,106766$
	.WORD	1524,106752$,1476,106755$,1454,106760$,1474,106763$
	.WORD	244,106774$,524,106771$,1242,106777$,0
106752$:.ASCIZ	<33>/A/
106755$:.ASCIZ	<33>/B/
106760$:.ASCIZ	<33>/D/
106763$:.ASCIZ	<33>/C/
106766$:.ASCIZ	<33>/K/
106771$:.ASCIZ	<33>/J/
106774$:.ASCIZ	<33>/H/
106777$:.ASCIZ	<15><12>
; Данные для пользовательского режима (15ИЭ-00-013)
107002$:.WORD	224,34,176,35,154,32,174,31,504,22,456,26,434,24,454,23
	.WORD	1244,34,1216,37,1174,32,1214,13,1524,34,1476,35,1454,32,1474,31
	.WORD	244,10,524,14,1242,25,0
; Данные для ДКЛ-режима
107120$:.WORD	236,107216$,210,107222$,162,107226$,164,107232$
	.WORD	212,107236$,240,107242$,166,107246$,214,107252$
	.WORD	242,107256$,160,107262$,206,107266$,234,107272$
	.WORD	170,107276$,30,107301$,2,107304$,0
107216$:.ASCIZ	<33>/?M/
107222$:.ASCIZ	<33>/?n/
107226$:.ASCIZ	<33>/?p/
107232$:.ASCIZ	<33>/?q/
107236$:.ASCIZ	<33>/?r/
107242$:.ASCIZ	<33>/?s/
107246$:.ASCIZ	<33>/?t/
107252$:.ASCIZ	<33>/?u/
107256$:.ASCIZ	<33>/?v/
107262$:.ASCIZ	<33>/?w/
107266$:.ASCIZ	<33>/?x/
107272$:.ASCIZ	<33>/?y/
107276$:.ASCIZ	<33>/P/
107301$:.ASCIZ	<33>/Q/
107304$:.ASCIZ	<33>/R/
	.EVEN
; Данные для системного режима
107310$:.WORD	162,60,164,61,212,62,240,63,166,64
	.WORD	214,65,242,66,160,67,206,70,234,71
	.WORD	222,107462$,236,107464$,246,107466$,216,107471$
	.WORD	224,107474$,176,107477$,154,107502$,174,107505$
	.WORD	504,107510$,456,107513$,434,107516$,454,107521$
	.WORD	146,107460$,172,107456$,244,14,0
107456$:.BYTE	177,0
107460$:.BYTE	40,0
107462$:.BYTE	15,0
107464$:.BYTE	15,0
107466$:.ASCIZ	<33>/~/
107471$:.ASCIZ	<33><177>
107474$:.ASCIZ	<33><200>
107477$:.ASCIZ	<33><201>
107502$:.ASCIZ	<33><202>
107505$:.ASCIZ	<33><203>
107510$:.ASCIZ	<33><204>
107513$:.ASCIZ	<33><205>
107516$:.ASCIZ	<33><206>
107521$:.ASCIZ	<33><207>
; Надписи для верхней информационной строки
107524$:.ASCIZ	<0>/     /
107533$:.ASCIZ	<0>/  УСТ/
107542$:.ASCIZ	<5>/     /
107551$:.ASCIZ	<5>/ ПМ  /
107560$:.ASCIZ	<5>/ ЦМ  /
107567$:.ASCIZ	<12>/     /
107576$:.ASCIZ	<12>/ ДКЛ /
107605$:.ASCIZ	<17>/     /
107614$:.ASCIZ	<17>/ ИНВ /
107623$:.ASCIZ	<17>/ПОДЧ /
107632$:.ASCIZ	<24>/     /
107641$:.ASCIZ	<24>/ ИСУ /
107650$:.ASCIZ	<31>/     /
107657$:.ASCIZ	<31>/ НР  /
107666$:.ASCIZ	<31>/ СУ  /
107675$:.ASCIZ	<31>/ГРАФ /
107704$:.ASCIZ	<31>/ФИКС /
107713$:.ASCIZ	<36>/ЗАГЛ /
107722$:.ASCIZ	<36>/СТР  /
107731$:.ASCIZ	<43>/РУС/
107736$:.ASCIZ	<43>/ЛАТ/
	.EVEN
	.ENDT