Uknc ROM disasm - 3

From Felixl.com
Revision as of 08:24, 18 March 2007 by Nzeemin (talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to navigationJump to search
; *****************************************************************
; *                                                               *
; *                  ДРАЙВЕР ТЕКСТОВОГО ТЕРМИНАЛА                 *
; *                                                               *
; *                     Адреса 107744 - 125027                    *
; *                                                               *
; *****************************************************************

; П/п начальной инициализации
107744$:JSR	R5,173730$	; Очистка ОЗУ
	.WORD	13142,4017	; Начальный адрес - 13142, число слов - 4017
	MOV	#0,@#177026	; Разрешить все планы видеопамяти
	CLR	@#177020	; Очистка регистров цвета кода фона
	CLR	@#177022
	CLR	R0		; Цикл очистки видеопамяти
	MOV	#177010,R1
	MOV	#100000,@R1
	MOV	#100000,R2
	MOV	#177024,R3
110014$:MOV	R0,@R3
	INC	@R1
	SOB	R2,110014$
	MOV	#175700$,@#320	; Адрес п/п обработки прерывания канала 0,пр.
	MOV	#200,@#322
	BIS	#1,@#177066	; Разрешить прерывания канала 0, приемник
	CALL	110266$		; Запрограммировать таблицу видеострок
	MOV	#117430$-13,R0	; Настройка таблицы адресов рисунков символов
	MOV	#14142,R1	; на область ПЗУ (адреса 117430-125027)
	MOV	#400,R2
	MOV	#13,R3
110070$:ADD	R3,R0
	MOV	R0,(R1)+
	SOB	R2,110070$
	MOV	#112462$,R0	; Настройка таблицы адресов п/п управляющих и
	BR	110110$		; Esc-последовательностей
110104$:MOV	(R0)+,13142(R1)
110110$:MOV	(R0)+,R1
	BNE	110104$
	MOV	#2000,@#22542	; Настройка указателей на буферы
	MOV	#2000,@#22544
	MOVB	#14,@#2000	; Положить символ Ctrl+L в буфер (CLS)
	JSR	R5,110656$	; Загрузка в ОЗУ ТВ для верхней строки
	.WORD	112040$,22560
	JSR	R5,110656$	; Загрузка в ОЗУ ТВ для экрана пользователя
	.WORD	112142$,22656
	JSR	R5,110656$	; Загрузка в ОЗУ ТВ для экрана установки
	.WORD	112252$,22754
	JSR	R5,110656$	; Загрузка в ОЗУ ТВ для нижней строки
	.WORD	112360$,23052
	MOV	#2270,@#272	; Настройка первой видеостроки
110204$:MOV	#22656,R5	; R5 = адрес ТВ для экрана пользователя
110210$:MOV	62(R5),@#23160	; Указатель на регистр управления отображением
				; экраном пользователя
	MOV	72(R5),@#23164	; Режим использования курсора
	INC	@#7066		; Увел. счетчик симв. в буфере (для вывода CLS)
110230$:MOV	R5,@#23150	; Сделать текущей ТВ, адрес которой в R5
	MOV	34(R5),@#177016	; Настройка регистра кода цвета точки
	MOV	40(R5),@#177020	; Настройка регистра кода цвета фона
	MOV	40(R5),@#177022
	MOVB	70(R5),@64(R5)	; Установить цвет курсора
	RETURN
; П/п программирования таблицы видеострок
110266$:MOV	#1131,R2	; Число программируемых видеострок (ВС)
	MOV	#7034,R1	; Адрес конца
	MOV	R1,@#7036
110302$:MOV	R1,R0		; Цикл начального заполнения таблицы
	MOV	R0,-(R1)
	TST	-(R1)
	SOB	R2,110302$
	JSR	R5,110550$	; Заполнение зоны адресов для ВС вехней строки
	.WORD	175700,2410,12,50
	MOV	R0,@#2464
	MOV	#177460,@#2474
	JSR	R5,110550$	; Заполнение зоны адресов для ВС польз. экрана
	.WORD	100000,2500,436,120
	MOV	#177460,@#4674
	JSR	R5,110550$	; Заполнение зоны адресов для ВС УСТ экрана
	.WORD	177460,4704,25,0
	JSR	R5,110550$
	.WORD	154540,5030,334,50
	JSR	R5,110550$
	.WORD	177460,6610,26,0
	MOV	#177460,@#6744
	JSR	R5,110550$	; Заполнение зоны адресов для ВС нижней строки
	.WORD	176570,6754,13,50
	JSR	R5,110550$
	.WORD	177460,7030,2,0
	MOV	#2,R0		; Выделение регистров управления отображением,
	MOV	#6,R1		; цветом и подправка структуры таблицы
	BIS	R0,@#2366
	BIS	R1,@#2376
	BIS	R0,@#2456
	BIS	R1,@#2466
	MOV	#2500,@#4666
	BIS	R1,@#4676
	MOV	#6742,@#4536
	MOV	#6742,@#6736
	BIS	R1,@#6746
	RETURN
; П/п заполнения зоны адресов для ВС
; 1 параметр - начальный видеоадрес
; 2 параметр - начальный адрес таблицы ВС
; 3 параметр - размер таблицы (число видеострок)
; 4 параметр - длина видеостроки
110550$:MOV	(R5)+,R0
	MOV	(R5)+,R1
	MOV	(R5)+,R2
	MOV	(R5)+,R3
110560$:MOV	R0,(R1)+
	ADD	R3,R0
	TST	(R1)+
	SOB	R2,110560$
	RTS	R5
; П/п установки таблицы ВС на начало видеопамяти
110572$:ADD	74(R5),PC	; Рулон присутствует ?
	BR	110654$		; Нет
	CLR	@#23170		; Число строк для скроллинга = 0
	MOV	@#2476,R0	; Корректировка таблицы
	ADD	#2040,R0
	CMP	R0,#4670
	BLOS	110626$
	SUB	#2170,R0
110626$:MOV	R0,-2(R0)
	MOV	#6742,@#4536	; Установка начальных значений
	MOV	#2500,@#2476
	MOV	#2500,30(R5)
110654$:RETURN
; П/п формирования таблицы видеопараметров
110656$:MOV	(R5)+,R0	; R0 = адрес таблицы в ПЗУ
	MOV	@R5,R1		; R1 = адрес таблицы в ОЗУ
	JSR	R5,110716$	; Перекачка таблицы в ОЗУ
	MOV	(R5)+,R1
	MOV	(R0)+,@64(R1)	; Заполнение регистра управления отображением
	MOV	(R0)+,@54(R1)
	MOV	(R0)+,@50(R1)	; Заполнение регистра управления цветом
	MOV	(R0)+,@52(R1)
	RTS	R5
; П/п перекачки
110712$:MOV	(R5)+,R0
	MOV	(R5)+,R1
110716$:MOV	(R0)+,R2	; R2 = число слов
110720$:MOV	(R0)+,(R1)+
	SOB	R2,110720$
	RTS	R5
;  ***  ОСНОВНАЯ ПОДПРОГРАММА УПРАВЛЕНИЯ ТЕКСТОВЫМ ТЕРМИНАЛОМ  ***
110726$:MOV	#174164$,-(SP)	; Занести в стек адреса возвратов
	MOV	#111126$,-(SP)
	MOV	SP,@#23152
	MOV	@#23154,SP
	MOV	@#23150,R5	; R5 = адрес текущей ТВ
	INC	@#7066		; Установить флаг вызова п/п перекл. курсора
110756$:INC	@#7064
; П/п чтения очередного символа, посланного по каналу 0
110762$:DEC	@#7064		; Уменьшить счетчик символов
	BEQ	111050$		; Символов нет
	MOVB	@22542,R0	; Прочесть символ
	INC	@#22542		; Подкорректировать указатель
	BIC	#200,@#22542
	BIC	#177400,R0
	CMP	R0,#40		; Это управляющие коды ?
	BHIS	111024$		; Нет
	ADD	@#23174,PC	; Разрешено чтение управляющих символов ?
111024$:RETURN			; Да
111026$:CMP	R0,#33		; Это символ Esc ?
	BEQ	111044$		; Да
	ASL	R0		; Вызов п/п обработки управляющего символа
	CALL	@13142(R0)
	BR	110762$
111044$:JMP	113544$
111050$:ADD	@#22546,PC	; Была попытка передачи символа ?
	BR	111062$		; Нет
	TRAP	4
	BR	110756$
111062$:MOV	@#7056,R0	; R0 = указатель текущей задачи
	MOV	#110726$,22(R0)	; Запомнить адрес возврата
	MOV	SP,@#23154
	MOV	@#23152,SP
	CMP	(SP)+,(SP)+
	JMP	174164$		; Переход на цикл вызова подпрограмм
111112$:ADD	@#22546$,PC	; Была попытка передачи символа ?
	RETURN			; Нет
	TRAP	4
	INC	@#7064
111126$:DEC	@#7064		; Уменьшить счетчик символов
	BEQ	111112$		; Символов нет
	TST	@#7060		; Были нажаты клавиши ?
	BEQ	111204$		; Нет
	RETURN
; Точка входа в подпрограмму
111144$:INC	@#7066		; Установить флаг вызова п/п перекл. курсора
	MOV	@#23150,R5	; R5 = адрес текущей таблицы видеопараметров
	MOV	34(R5),@#177016	; Загрузка регистров кода цвета и кода фона
	MOV	40(R5),@#177020
	MOV	40(R5),@#177022
	MOVB	70(R5),@64(R5)	; Установить цвет курсора
111204$:MOVB	@22542,R0	; Прочесть символ
	INC	@#22542		; Подкорректировать указатель
	BIC	#200,@#22542
	MOV	#111126$,-(SP)	; Положить в стек адрес возврата
	BIC	#177400,R0
	CMP	R0,#40		; Это управляющие коды ?
	BHIS	111260$		; Нет
	TSTB	@#22552		; Установлен режим ИСУ ?
	BEQ	111252$		; Нет
	JMP	111730$
111252$:ASL	R0		; Вызов п/п обработки управляющего символа
	JMP	@13142(R0)
111260$:CMPB	R0,#77		; Это символы "A-Z,[,\,],^,_,a-z,{,|,},~" ?
	BLOS	111272$		; Нет
	BIS	@#22560,R0	; Подстройка алфавита
111272$:ASL	R0
	MOV	14142(R0),R1	; R1 = адрес рисунка символа
	MOV	10(R5),R0	; R0 = длина видеостроки
	MOV	#177010,R2
	MOV	#177024,R3
	MOV	@R5,@R2		; Уст. в регистре адреса планов нач. адрес
	ADD	56(R5),PC	; Переход в зависимости от режима (инверсия...)
111322$:.REPT	12		; Цикл рисования символа
	MOVB	(R1)+,R4
	MOV	R4,@R3
	ADD	R0,@R2
	.ENDR
	MOVB	(R1)+,R4
	MOV	R4,@R3
111422$:INC	@R5		; Передвинуть указатель на следующий адрес
	DEC	16(R5)		; Уменьшить счетчик оставшихся позиций
	BNE	111624$		; Еще не конец строки
	MOV	22(R5),@R5	; Формирование адреса начала следующей строки
	MOV	4(R5),16(R5)
111444$:ADD	#54,32(R5)
	CMP	32(R5),26(R5)
	BNE	111470$
	MOV	24(R5),32(R5)
111470$:ADD	@32(R5),@R5
	DEC	20(R5)		; Уменьшить счетчик оставшихся строк
	BNE	111624$		; Еще не конец экрана
	ADD	74(R5),PC	; Рулон присутствует ?
	BR	111626$		; Нет
	INC	20(R5)		; Увеличить счетчик оставшихся строк
	MOV	#13,-(SP)
	ADD	#54,30(R5)	; Увелич. адрес списка ВС верхней части экрана
	CMP	30(R5),#4670
	BNE	111544$
	MOV	#2500,30(R5)
111544$:MOV	@#23170,R0	; R0 = кол-во оставшихся видеострок для скрол.
	BEQ	111574$		; Их нет
	BPL	111556$
	NEG	R0
111556$:CMP	R0,#14		; <= 12(10) ?
	BLOS	111614$		; Да
	TRAP	0		; Вызов цикла подпрограмм
	MOV	@#23150,R5	; R5 = адрес текущей ТВ
	BR	111544$
111574$:CLR	@#23164$	; Запретить курсор
	MOV	#2,@#7134
	MOVB	#177,@23160	; Убрать курсор с экрана
111614$:CALL	113344$		; Очистить освободившуюся строку
	ADD	(SP)+,@#23170	; Осуществить скроллинг
111624$:RETURN
111626$:JMP	114316$		; Перекинуть курсор на верх экрана
; П/п выключения курсора
111632$:CLR	@#23164		; Запретить использование курсора
	MOV	60(R5),R0	; Выключение курсора
	BIC	#1,6(R0)
	BIC	#1,52(R0)
	RETURN
; Обработка режима ПОДЧЕРКИВАНИЕ
111660$:MOV	#12,R0		; R0 = число байт для посылки в видео
111664$:MOVB	(R1)+,R4	; Рисование символа
	MOV	R4,@R3
	ADD	10(R5),@R2
	SOB	R0,111664$
	MOV	#377,@R3	; Подчеркнуть символ
	BR	111422$
; Обработка режима ИНВЕРСИЯ
111704$:MOV	#13,R0
	BR	111716$
111712$:ADD	10(R5),@R2
111716$:MOVB	(R1)+,R4
	COM	R4		; Инвертировать байт
	MOV	R4,@R3
	SOB	R0,111712$
	BR	111422$
; Обработка режима ИСУ
111730$:MOV	#3,-(SP)	; Формирование начальных значений
	MOV	R0,-(SP)
	MOV	R0,-(SP)
	MOV	#74,R0		; Вывод "<"
	CALL	111272$
	CLR	R0		; Цикл вывода трех цифр
	BR	111762$
111754$:CLR	R0
	ROLB	@SP
	ROLB	R0
111762$:ROLB	@SP
	ROLB	R0
	ROLB	@SP
	ROLB	R0
	ADD	#60,R0
	CALL	111272$
	DEC	4(SP)
	BNE	111754$
	MOV	#76,R0		; Вывод ">"
	CALL	111272$
	TST	(SP)+
	CMP	#12,(SP)+	; Это был символ LF ?
	BNE	112034$		; Нет
	CALL	114310$		; Вывод CRLF
112034$:TST	(SP)+
	RETURN

; ТАБЛИЦЫ ВИДЕОПАРАМЕТРОВ
; Структура таблицы:
;   - первое слово N - число элемнтов в таблице
;   - N слов - содержимое таблицы
;   - 4 слова - значения регистров управления отображением и цветом

; ТВ для верхней информационной строки
112040$:.WORD	34
	.WORD	175700,175700,50,13,50,1,13,50,1,0,2410,12114,2410,2410
	.WORD	6,6,0,0,0,0,2400,2402,2372,0,2410,2371,2370,2
	.WORD	0,27,21000,63104
; ТВ для пользовательского экрана
112142$:.WORD	37
	.WORD	100000,100000,120,410,120,30,436,120,30,0,2500,4670,2500,2500
	.WORD	7,7,10421,10421,10421,10421,2470,2472,2462,0,2500,2461,2460
	.WORD	1,7,2,2
	.WORD	7,7,135230,177334
; ТВ для экрана установки
112252$:.WORD	36
	.WORD	154540,154540,50,334,50,24,334,50,24,0,5030,6610,5030,5030
	.WORD	7,7,10421,10421,10421,10421,4700,4702,4672,0,5030,4671,4670
	.WORD	2,7,2
	.WORD	7,27,135230,177334
; ТВ для нижней информационной строки
112360$:.WORD	34
	.WORD	176570,176570,50,13,50,1,13,50,1,0,6754,7030,6754,6754
	.WORD	6,6,0,0,0,0,6750,6752,6742,0,6754,6741,6740,2
	.WORD	0,27,21000,63104

; Таблица описания адресов п/п исполнения управляющих и Esc-последовательностей
112462$:.WORD	16,113220$	; Ctrl-G
	.WORD	20,114226$	; Ctrl-H
	.WORD	24,114216$	; Ctrl-J
	.WORD	26,114772$	; Ctrl-K
	.WORD	30,113236$	; Ctrl-L
	.WORD	32,114336$	; Ctrl-M
	.WORD	34,105260$	; Ctrl-N
	.WORD	36,105306$	; Ctrl-O
	.WORD	44,114636$	; Ctrl-R
	.WORD	46,114514$	; Ctrl-S
	.WORD	50,114410$	; Ctrl-T
	.WORD	52,114310$	; Ctrl-U
	.WORD	54,114620$	; Ctrl-V
	.WORD	56,113670$	; Ctrl-W
	.WORD	62,114254$	; Ctrl-Y
	.WORD	64,114226$	; Ctrl-Z
	.WORD	66,113532$	; Ctrl-[
	.WORD	70,114106$	; Ctrl-\
	.WORD	72,114216$	; Ctrl-]
	.WORD	76,114772$	; Ctrl-_
	.WORD	112,113602$	; Esc %
	.WORD	172,113750$	; Esc =
	.WORD	174,113766$	; Esc >
	.WORD	176,114004$	; Esc ?
	.WORD	202,114106$	; Esc A
	.WORD	204,114216$	; Esc B
	.WORD	206,114254$	; Esc C
	.WORD	210,114226$	; Esc D
	.WORD	212,113712$	; Esc E
	.WORD	220,114660$	; Esc H
	.WORD	222,114106$	; Esc I
	.WORD	224,114714$	; Esc J
	.WORD	226,114772$	; Esc K
	.WORD	240,115010$	; Esc P
	.WORD	262,115626$	; Esc Y
	.WORD	264,115776$	; Esc Z
	.WORD	266,114006$	; Esc [
	.WORD	400,114106$	; Esc 200
	.WORD	402,114216$	; Esc 201
	.WORD	404,114226$	; Esc 202
	.WORD	406,114254$	; Esc 203
	.WORD	410,114316$	; Esc 204
	.WORD	412,114324$	; Esc 205
	.WORD	414,114336$	; Esc 206
	.WORD	416,114356$	; Esc 207
	.WORD	420,114404$	; Esc 210
	.WORD	422,114406$	; Esc 211
	.WORD	424,114410$	; Esc 212
	.WORD	426,114514$	; Esc 213
	.WORD	430,114620$	; Esc 214
	.WORD	432,114636$	; Esc 215
	.WORD	434,114654$	; Esc 216
	.WORD	436,114656$	; Esc 217
	.WORD	440,114260$	; Esc 220
	.WORD	442,114266$	; Esc 221
	.WORD	444,114274$	; Esc 222
	.WORD	446,114302$	; Esc 223
	.WORD	450,114660$	; Esc 224
	.WORD	452,113236$	; Esc 225
	.WORD	454,114714$	; Esc 226
	.WORD	456,114772$	; Esc 227
	.WORD	460,114310$	; Esc 230
	.WORD	462,115626$	; Esc 231
	.WORD	464,116014$	; Esc 232
	.WORD	466,116016$	; Esc 233
	.WORD	470,116020$	; Esc 234
	.WORD	472,0		; Esc 235
	.WORD	474,0		; Esc 236
	.WORD	476,0		; Esc 237
	.WORD	500,116022$	; Esc Граф-@
	.WORD	502,116066$	; Esc Граф-A
	.WORD	504,116144$	; Esc Граф-B
	.WORD	506,116234$	; Esc Граф-C
	.WORD	510,116274$	; Esc Граф-D
	.WORD	512,116374$	; Esc Граф-E
	.WORD	514,116462$	; Esc Граф-F
	.WORD	516,116212$	; Esc Граф-G
	.WORD	520,116542$	; Esc Граф-H
	.WORD	522,116544$	; Esc Граф-I
	.WORD	524,116546$	; Esc Граф-J
	.WORD	526,116550$	; Esc Граф-K
	.WORD	556,116552$	; Esc Граф-W
	.WORD	560,116600$	; Esc Граф-X
	.WORD	570,116624$	; Esc Граф-\
	.WORD	572,116632$	; Esc Граф-]
	.WORD	574,116742$	; Esc Граф-^
	.WORD	576,116750$	; Esc Граф-_
	.WORD	0

; ПОДПРОГРАММЫ ОБРАБОТКИ УПРАВЛЯЮЩИХ И ESC-ПОСЛЕДОВАТЕЛЬНОСТЕЙ
; П/п обработки Ctrl-G
113220$:BIS	#600,@#177716	; Включить звуковой сигнал (частота 1000 Гц)
	MOV	#20,@#7046	; Установить время (0.32 сек)
	RETURN
; П/п обработки Ctrl-L, Esc 225
113236$:MOV	@50(R5),-(SP)	; Сохранение содержимого рег. управления цветом
	MOV	@52(R5),-(SP)
	MOV	44(R5),@50(R5)	; Засветка всего экрана цветом фона
	MOV	44(R5),@52(R5)
	CALL	113362$		; Очистка экрана (заполнение цветом фона)
	CALL	110572$		; Установка ТВ на начало видеопамяти
	MOV	30(R5),R4	; Установка курсора в начало экрана
	MOV	R4,32(R5)
	MOV	@R4,@R5
	ADD	22(R5),@R5
	MOV	4(R5),16(R5)
	MOV	12(R5),20(R5)
	MOV	(SP)+,@52(R5)	; Восстановление регистров управления цветом
	MOV	(SP)+,@50(R5)
	MOV	72(R5),@#23164
	RETURN
; П/п-мы очистки заданной области экрана (заполнение цветом фона)
; Параметры (для точки входа 113376$):
;  R1 - начальный адрес;
;  R2 - длина в байтах;
;  R3 - число видеострок;
113344$:MOV	@32(R5),R1
	ADD	22(R5),R1
113354$:MOV	#13,R3
	BR	113372$
113362$:MOV	2(R5),R1
	MOV	14(R5),R3
113372$:MOV	4(R5),R2
113376$:MOV	44(R5),@#177020	; Загрузка в регистры кода фона цвета фона
	MOV	44(R5),@#177022
	MOV	#177010,R4
	MOV	R1,@R4		; Загрузить в регистр адреса планов нач. адрес
	MOV	#177024,R1
	CLR	R0
	CMP	R2,10(R5)	; Длина очищаемой строки равна истинной длине ?
	BEQ	113500$		; Да
	MOV	R2,-(SP)	; Сохранить длину строки
	BR	113450$
113440$:MOV	@SP,R2		; R2 = длина очищаемой строки
	SUB	R2,@R4		; Вычесть длину строки из адреса планов
	ADD	10(R5),@R4	; Прибавить истинную длину
113450$:MOV	R0,@R1		; Очистить байт строки
	INC	@R4		; Переход к следующему адресу
	SOB	R2,113450$	; Цикл по длине очищаемой части строки
	SOB	R3,113440$	; Цикл по числу видеострок
	TST	(SP)+
113462$:MOV	40(R5),@#177020	; Загр. в регистры кода фона цвета знакоместа
	MOV	40(R5),@#177022
	RETURN
113500$:MUL	R2,R3		; R3 = длина строки * число видеострок
113502$:MOV	R0,@R1		; Цикл очистки
	INC	@R4
	SOB	R3,113502$
	BR	113462$
; Значения для загрузки в регистры кода фона (177020 и 177022)
113512$:.WORD	0,10421,21042,31463,42104,52525,63146,73567
; П/п обработки Ctrl-[ (Esc)
113532$:MOV	SP,@#23152
	MOV	#2,@#23174	; Активировать проверку на управляющие символы
113544$:MOV	#1000,SP
	CALL	110762$		; Прочесть символ
	ASL	R0		; Вызов п/п обработки Esc-последовательности
	CALL	@13142(R0)
	CLR	@#23174
	MOV	@#23152,SP
	RETURN
; Точка входа при исполнении Esc %!3 в графическом режиме
113574$:MOV	2(SP),R0
	BR	113620$
; П/п обработки Esc %
113602$:CALL	110762$		; Прочесть символ
	CMPB	R0,#41		; Это "!" ?
	BNE	110632$		; Нет
	CALL	110762$
113620$:BIC	#177774,R0
	ASL	R0		; Вызов соответствующей п/п
	CALL	@113634$(R0)
113632$:RETURN
; Адреса п/п, вызывающиеся при обработке Esc %!
113634$:.WORD	113644$,113670$,113670$,113670$
; П/п обработки Esc %!0 (переход в графический режим)
113644$:CALL	111632$		; Выключение курсора
	CLR	@#23174$	; Аннулировать проверку на управляющие символы
	CALL	@#135436$	; Вызов п/п управления графикой
	MOV	72(R5),@#23164
	RETURN
; П/п обработки Ctrl-W, Esc %! (1-3)
113670$:JSR	R5,105430$	; Перекодировать клавиши под VT-52
	.WORD	106634$
	MOV	#114226$,@#13162; При Ctrl-H выполнять шаг назад
	CLR	@#7154		; Установить пункт VT-52 в меню УСТ
	RETURN
; П/п обработки Esc E
113712$:JSR	R5,105430$	; Перекодировать клавиши под 15ИЭ-00-013
	.WORD	107002$
	MOV	#114660$,@#13162; При Ctrl-H выполнять операцию Home
	MOV	#1,@#7154	; Установить пункт 15ИЭ-00-013 в меню УСТ
	RETURN
; П/п загрузки регистров кода цвета и фона
113736$:MOV	R5,-(SP)	; Сохранить адрес текущей ТВ
	CALL	110204$		; Загрузить регистры
	MOV	(SP)+,R5	; Восстановить адрес ТВ
	RETURN
; П/п обработки Esc =
113750$:JSR	R5,105346$	; Установить режим ДКЛ
	.WORD	107120$,11014
	EMT	52		; Вывести надпись "ДКЛ"
	.WORD	107576$
	RETURN
; П/п обработки Esc >
113766$:JSR	R5,105400$	; Сбросить режим ДКЛ
	.WORD	107120$,11014
	EMT	52		; Стереть надпись "ДКЛ"
	.WORD	107567$
	RETURN
114004$:RETURN
; П/п обработки Esc [
114006$:CALL	110762$		; Чтение символа
	CMP	R0,#62		; Это "2" ?
	BEQ	114050$		; Да
	CMP	R0,#77		; Это "?" ?
	BEQ	114046$		; Да
	BR	114034$
114030$:CALL	110762$
114034$:CMPB	R0,#162		; Это "r" ?
	BNE	114030$		; Нет
	CALL	113236$		; Очистка экрана
114046$:RETURN
114050$:CALL	110762$
	CMP	R0,#150		; Это "h" ?
	BNE	114072$		; Нет
	MOV	#2,@#7232	; Запрет передачи одиночных ASCII-кодов клав.
	BR	114104$
114072$:CMP	R0,#154		; Это "l" ?
	BNE	114104$		; Нет
	CLR	@#7232		; Разрешение передачи одиночных ASCII-кодов
114104$:RETURN
; П/п обработки Ctrl-\, Esc A, Esc I, Esc 200
114106$:SUB	@32(R5),@R5	; Вычесть адрес начала видеостроки
	SUB	#54,32(R5)	; Перейти к предыд. символьной строке
	CMP	32(R5),24(R5)	; Был переход за верх экрана ?
	BHIS	114144$		; Нет
	MOV	26(R5),32(R5)	; Переход на низ экрана
	SUB	#54,32(R5)
114144$:ADD	@32(R5),@R5	; Прибавить к положению курсора тек. строку
	CMP	20(R5),12(R5)	; Это была верхняя строка
	BNE	114204$		; Нет
	ADD	74(R5),PC	; Рулон присутствует ?
	BR	114212$		; Нет
	MOV	32(R5),30(R5)
	MOV	#-13,-(SP)	; Скроллинг 11(10) видеострок вниз
	JMP	111544$
114204$:INC	20(R5)		; Количество оставшихся строк ++
	RETURN
114212$:JMP	114324$		; Позиционирование на низ текущей колонки
; П/п обработки Ctrl-J, Ctrl-], Esc B, Esc 201
114216$:SUB	@32(R5),@R5	; Вычесть адрес начала видеостроки
	JMP	111444$		; Перемещение вниз
; П/п обработки Ctrl-H (в системе команд VT-52), Ctrl-Z, Esc D, Esc 202
114226$:CMP	16(R5),4(R5)	; Курсор в начале строки ?
	BEQ	114246$		; Да
	DEC	@R5		; Уменьшить позицию в строке
	INC	16(R5)		; Увеличить количество оставшихся позиций
	RETURN
114246$:CALL	114356$		; Позиционирование в конец строки
	BR	114106$		; На одну строку вверх
; П/п обработки Ctrl-Y, Esc C, Esc 203
114254$:JMP	111422$		; Перемещение курсора на одну позицию вправо
; П/п обработки Esc 220
114260$:CALL	114254$		; Вправо
	BR	114106$		; Вверх
; П/п обработки Esc 221
114266$:CALL	114226$		; Влево
	BR	114216$		; Вниз
; П/п обработки Esc 222
114274$:CALL	114106$		; Вверх
	BR	114226$		; Влево
; П/п обработки Esc 223
114302$:CALL	114216$		; Вниз
	BR	114254$		; Вправо
; П/п обработки Ctrl-U, Esc 230
114310$:CALL	114336$		; В начало строки
	BR	114216$		; Вниз
; П/п обработки Esc 204
114316$:CLR	R0		; Номер начальной строки
	JMP	115720$		; Позиционирование
; П/п обработки Esc 205
114324$:MOV	12(R5),R0	; R0 = номер последней строки
	DEC	R0
	JMP	115720$		; Позиционирование
; П/п обработки Ctrl-M, Esc 206
114336$:MOV	22(R5),@R5	; Позиционирование в начало строки
	ADD	@32(R5),@R5
	MOV	4(R5),16(R5)	; Количество оставшихся позиций = длина строки
	RETURN
; П/п обработки Esc 207
114356$:MOV	4(R5),@R5	; Позиционирование в конец строки
	ADD	22(R5),@R5
	DEC	@R5
	ADD	@32(R5),@R5
	MOV	#1,16(R5)	; Осталась одна позиция
	RETURN
114404$:RETURN
114406$:RETURN
; П/п обработки Ctrl-T, Esc 212
114410$:MOV	16(R5),R0	; R0 = количество оставшихся позиций
	DEC	R0
	BEQ	114474$		; Осталась одна позиция
	MOV	@R5,R1
	INC	R1		; R1 = текущий видеоадрес + 1
	MOV	#13,-(SP)	; Число видеострок
	MOV	#177010,R3
	MOV	#177024,R4
114440$:MOV	R0,R2		; R2 = число перемещаемых символов
	MOV	R1,@R3
	BR	114452$
114446$:ADD	#2,@R3		; Цикл перемещения символов
114452$:TST	@R4
	DEC	@R3
	CLR	@R4
	SOB	R2,114446$
	ADD	10(R5),R1	; Переход к следующей видеостроке
	DEC	@SP
	BNE	114440$
	TST	(SP)+
114474$:MOV	@R5,R1
	ADD	R0,R1		; R1 = адрес конечного символа
	MOV	#1,R2		; R2 = 1 (длина очищаемой части строки)
	MOV	#13,R3		; Число очищаемых видеострок
	JMP	113376$		; Очистка
; П/п обработки Ctrl-S, Esc 213
114514$:MOV	16(R5),R0	; R0 = количество оставшихся позиций
	DEC	R0
	BEQ	114602$		; Осталась одна позиция
	MOV	@R5,R1
	ADD	R0,R1		; R1 = адрес конца строки
	DEC	R1
	MOV	#13,-(SP)	; Число видеострок
	MOV	#177010,R3
	MOV	#177024,R4
114546$:MOV	R0,R2		; R2 = число перемещаемых символов
	MOV	R1,@R3
	BR	114560$
114554$:SUB	#2,@R3		; Цикл перемещения символов
114560$:TST	@R4
	INC	@R3
	CLR	@R4
	SOB	R2,114554$
	ADD	10(R5),R1	; Переход к следующей видеостроке
	DEC	@SP
	BNE	114546$
	TST	(SP)+
114602$:MOV	@R5,R1		; R1 = текущий видеоадрес
	MOV	#1,R2		; R2 = длина очищаемой части строки
	MOV	#13,R3		; R3 = число видеострок
	JMP	113376$		; Очистка
; П/п обработки Ctrl-V, Esc 214
114620$:DEC	20(R5)		; Уменьшить количество оставшихся строк
	SUB	#13,@#23170	; Скроллинг вниз
	JMP	114106$		; Курсор вверх
; П/п обработки Ctrl-R, Esc 215
114636$:INC	20(R5)		; Увеличить количество оставшихся строк
	ADD	#13,@#23170	; Скроллинг вверх
	JMP	114216$		; Курсор вниз
114654$:RETURN
114656$:RETURN
; П/п обработки Ctrl-H (в системе команд 15ИЭ-00-013), Esc H, Esc 224
114660$:MOV	30(R5),32(R5)	; Текущий адрес списка ВС - верх экрана
	MOV	22(R5),@R5	; Позиционирование курсора в верх. угол экрана
	ADD	@32(R5),@R5
	MOV	4(R5),16(R5)	; Число ост. позиций = длина строки
	MOV	12(R5),20(R5)	; Число ост. строк = число строк на экране
	RETURN
; П/п обработки Esc J, Esc 226
114714$:CALL	114772$		; Очистка конца строки
	MOV	20(R5),-(SP)	; Количество оставшихся строк
	MOV	32(R5),R1	; R1 = текущий адрес списка ВС
	BR	114762$
114732$:ADD	#54,R1		; Перейти к следующей строке
	CMP	R1,26(R5)	; Дошли до конца экрана ?
	BNE	114750$		; Нет
	MOV	24(R5),R1	; R1 = начальный адрес списка ВС
114750$:MOV	R1,-(SP)
	MOV	@R1,R1
	CALL	113354$		; Очистка
	MOV	(SP)+,R1
114762$:DEC	@SP
	BNE	114732$
	TST	(SP)+
	RETURN
; П/п обработки Ctrl-K, Esc K, Esc 227
114772$:MOV	@R5,R1		; R1 = текущий видеоадрес
	MOV	16(R5),R2	; R2 = количество оставшихся позиций в строке
	MOV	#13,R3		; R3 = число видеострок
	JMP	113376$		; Очистка
; П/п обработки Esc P
115010$:CLR	-(SP)
115012$:CALL	110762$		; Чтение символа
	MOV	R0,-(SP)	; Сохранение его в стеке
	CMPB	R0,#73		; Это ";" ?
	BNE	115012$
115026$:CALL	110762$
	MOV	R0,-(SP)
	CMPB	R0,#73		; Это ";" ?
	BEQ	115424$		; Да
	CMPB	R0,#174		; Это "|" ?
	BNE	115026$
115050$:TST	(SP)+		; Восстановление стека
	BNE	115050$
	ASR	-4(SP)		; Была набрана "1" ?
	BCS	115112$		; Да
	MOV	#115342$,R1	; R1 = список смещ. клавиш К1-К25 в табл. раск.
	MOV	#31,R2		; R2 = 25(10) число программир. клавиш
115072$:MOV	(R1)+,R0	; Цикл очистки назначений клавиш
	MOV	#11140,7232(R0)
	SOB	R2,115072$
	MOV	#11142,@#13140	; Установка указателя на начало буфера
115112$:CLR	-(SP)
115114$:CALL	110762$
	CMPB	R0,#33		; Это Escape ?
	BEQ	115302$		; Да
	CMPB	R0,#57		; Это "/" ?
	BEQ	115154$		; Да
	MOV	@SP,R1		; @SP = @SP * 10 + R0
	MUL	#10.,R1
	BIC	#177760,R0
	ADD	R0,R1
	MOV	R1,@SP
	BR	115114$
115154$:MOV	(SP)+,R0
	CMP	R0,#25.		; Номер клавиши в диапазоне 1 -- 25 ?
	BHI	115112$		; Нет
	DEC	R0
	ASL	R0
	MOV	115342$(R0),R0	; R0 = смещение клавиши в таблице раскладки
	MOV	@#13140,7232(R0); Запомнить адрес строки
115202$:CALL	110762$
	CMPB	R0,#33		; Это Escape ?
	BEQ	115304$
	CMPB	R0,#73		; Это ";" ?
	BEQ	115270$
	CALL	115322$		; Преобразование HEX-цифры в двоичный код
	ASH	#4,R0		; R0 = R0 * 16
	MOV	R0,-(SP)
	CALL	110762$
	CALL	115322$
	BIS	(SP)+,R0
	MOVB	R0,@13140	; Запомнить символ в строке
	CMP	@#13140,#13130	; Достигнут конец буфера
	BHI	115202$		; Да
	INC	@#13140		; Продвинуть указатель на следующую позицию
	BR	115202$
115270$:CLRB	@13140		; Пометить конец строки
	INC	@#13140
	BR	115112$
115302$:TST	(SP)+
115304$:CLRB	@13140
	INC	@#13140
	CALL	110762$
	RETURN
; П/п преобразования HEX-цифры в двоичное представление
115322$:CMP	R0,#101		; Цифра в диапазоне "A-F" ?
	BLO	115334$		; Нет
	ADD	#11,R0
115334$:BIC	#177760,R0
	RETURN
; Смещения для клавиш К1-К25 в таблице раскладки клавиатуры
115342$:.WORD	10,12,14,20,22,270,272,274,300,302,550,552,554,560,562
	.WORD	1030,1032,1034,1040,1042,1310,1312,1314,1320,1322
115424$:MOV	2(SP),R0	; R0 = код симв., шрифт кот. перепрограммир.
115430$:TST	(SP)+		; Восстановление стека
	BNE	115430$
	MOV	R0,R1
	ASL	R0
	ADD	#14142,R0	; R0 = указатель на ячейку адреса рисунка симв.
	MOV	R0,-(SP)
	MUL	#11,R1		; Вычисление местоположения рисунка символа
	ADD	#15142,R1	; R1 = адрес местоположения рисунка символа
	MOV	R1,-(SP)
115460$:CALL	110762$		; Чтение символа
	CMP	R0,#33		; Это Escape ?
	BEQ	115550$		; Да
	CMP	R0,#100		; Это "@" ?
	BNE	115460$		; Нет
115500$:MOV	@SP,@2(SP)	; Сохранить адрес рисунка в таблице
	ADD	#2,2(SP)	; Переход на следующую позицию в табл. адресов
	JSR	R5,115554$	; Программирование первых пяти байт
	.WORD	5
	CALL	110762$
	JSR	R5,115554$	; Программирование следующих шести байт
	.WORD	6
	CALL	110762$
	CMP	R0,#33		; Это Escape
	BNE	115500$
	CALL	110762$
115550$:CMP	(SP)+,(SP)+
	RETURN
; П/п программирования заданного количества байт в рисунке символа
115554$:MOV	#10,-(SP)	; Длина байта
115560$:MOV	R5,-(SP)
	CALL	110762$
	MOV	(SP)+,R5
	CMP	R0,#33		; Это Escape ?
	BEQ	115616$		; Да
	MOV	4(SP),R3	; R3 = адрес рисунка
	MOV	@R5,R4		; R4 = число программируемых байт
115604$:ASR	R0		; Цикл программирования
	RORB	(R3)+
	SOB	R4,115604$
	DEC	@SP
	BNE	115560$
115616$:ADD	(R5)+,4(SP)	; Перейти к следующей области рисунка
	TST	(SP)+
	RTS	R5
; П/п обработки Esc Y, Esc 231
115626$:CALL	110762$		; Прочесть символ
	SUB	#40,R0
	BMI	115652$
	CMP	R0,12(R5)	; Координата Y превышает диапазон ?
	BHIS	115652$		; Да
	CALL	115720$		; Позиционирование по координате Y
115652$:CALL	110762$
	SUB	#40,R0
	BMI	115716$
	CMP	R0,4(R5)	; Координата X превышает диапазон ?
	BHIS	115716$		; Да
	MOV	4(R5),16(R5)	; Позиционирование по координате X
	SUB	R0,16(R5)	; (16)R5 - кол-во оставшихся позиций
	ADD	@32(R5),R0	; R0 = адрес видеопамяти начала строки + X
	ADD	22(R5),R0	; Плюс константа начального доступа
	MOV	R0,@R5		; @R5 - адр.начала видеопамяти для выв. симв.
115716$:RETURN
; П/п позиционирования по координате Y
115720$:SUB	@32(R5),@R5	; @R5 - оставить координату X
	MOV	12(R5),20(R5)
	SUB	R0,20(R5)	; 20(R5) - кол-во ост. символьных строк
	MUL	#11.*4,R0
	ADD	30(R5),R1	; R1 = адрес описания видеостроки
	ADD	74(R5),PC	; Рулон присутствует ?
	BR	115766$		; Нет
	CMP	R1,#4670	; Переход за границу списка ?
	BLO	115766$		; Нет
	SUB	#2170,R1	; Подкорректировать значение
115766$:MOV	R1,32(R5)	; 32(R5) - текущий адрес списка видеострок
	ADD	@R1,@R5		; @R5 - адр.начала видеопамяти для выв.симв. 
	RETURN
; П/п обработки Esc Z
115776$:MOV	#116010$,R0	; R0 = адрес символьной строки
	CALL	104160$		; Передача адреса строки п/п обсл. клавиатуры
	RETURN
116010$:.ASCIZ	<33>"/Z"	; Терминал VT-100 в режиме VT-52
	.EVEN
116014$:RETURN
116016$:RETURN
116020$:RETURN
; П/п обработки Esc Граф-@
116022$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116036$		; Нет
	MOV	36(R5),R0	; R0 = предыдущий цвет символа
	BR	116046$
116036$:CALL	110762$		; Прочесть символ
	BIC	#177770,R0
116046$:MOV	R0,@#177016	; Положить номер цвета в регистр кода цвета
116052$:MOV	34(R5),36(R5)	; Запомнить предыдущий цвет символа
	MOV	R0,34(R5)	; Сохранить номер цвета в ТВ
	RETURN
; П/п обработки Esc Граф-A
116066$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116102$		; Нет
	MOV	42(R5),R0	; R0 = предыдущий цвет знакоместа
	BR	116120$
116102$:CALL	110762$		; Прочесть символ
	BIC	#177770,R0
	ASL	R0
	MOV	113512$(R0),R0	; R0 = код фонового цвета
116120$:MOV	R0,@#177020	; Положить номер фон. цвета в рег. кода фона
	MOV	R0,@#177022
116130$:MOV	40(R5),42(R5)	; Запомнить предыдущий цвет знакоместа
	MOV	R0,40(R5)	; Сохранить номер цвета знакоместа в ТВ
	RETURN
; П/п обработки Esc Граф-B
116144$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116160$		; Нет
	MOV	46(R5),R0	; R0 = предыдущий цвет фона
	BR	116046$
116160$:CALL	110762$		; Прочесть символ
	BIC	#177770,R0
116170$:ASL	R0
	MOV	113512$(R0),R0	; R0 = код фонового цвета
	MOV	44(R5),46(R5)	; Запомнить предыдущий цвет фона
	MOV	R0,44(R5)	; Сохранить номер цвета фона в ТВ
	RETURN
; П/п обработки Esc Граф-G
116212$:CALL	110762$		; Прочесть символ
	BIC	#177770,R0	; R0 = номер цвета курсора
	MOVB	R0,@64(R5)	; Изменить цвет курсора
116226$:MOV	R0,70(R5)	; Сохранить цвет курсора в ТВ
	RETURN
; П/п обработки Esc Граф-C
116234$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116254$		; Нет
	CLR	@#22554		; Сбросить индикатор режима инверсии(подч.)
	EMT	52		; Очистить надпись "ИНВ" ("ПОДЧ")
	.WORD	107605$
	BR	116334$
116254$:MOV	#<111704$-111322$>,56(R5) ; Установить режим инверсии (362)
	INCB	@#22554		; Установить индикатор режима инверсии
	EMT	52		; Высветить надпись "ИНВ"
	.WORD	107614$
	RETURN
; П/п обработки Esc Граф-D
116274$:ADD	@#23274,PC	; Установлен режим отмены ?
	BR	116314$
	CLR	@#22554		; Сбросить индикатор режима подчеркивания(инв.)
	EMT	52		; Погасить надпись "ПОДЧ" ("ИНВ")
	.WORD	107605$
	BR	116334$
116314$:MOV	#<111660$-111322$>,56(R5) ; Установить режим подч. (336)
	INCB	@#22555		; Установить индикатор режима подчеркивания
	EMT	52		; Высветить надпись "ПОДЧ"
	.WORD	107623$
	RETURN
116334$:CLR	56(R5)		; Установить нормальный режим
	TSTB	@#22554		; Ранее был установлен режим инверсии ?
	BEQ	116356$		; Нет
	MOV	#364,56(R5)	; Установить режим инверсии
	BR	116372$
116356$:TSTB	@#22555		; Ранее был установлен режим подчеркивания ?
	BEQ	116372$		; Нет
	MOV	#340,56(R5)	; Установить режим подчеркивания
116372$:RETURN
; П/п обработки Esc Граф-E
116374$:CALL	110762$		; Прочесть символ
	SUB	#61,R0		; Символ в диапазоне "1"-"4"
	BMI	116422$		; Нет
	CMP	R0,#3
	BHI	116422$		; Нет
	ASL	R0		; Вызов соответствующей п/п
	CALL	@116424$(R0)
116422$:RETURN
; Адреса п/п для установки длины строки
116424$:.WORD	116434$,116450$,116460$,116460$
; П/п установки длины строки 80
116434$:MOV	#120,4(R5)	; Установить длину строки 80
116442$:CLR	22(R5)		; Константа начального отступа = 0
	RETURN
; П/п установки длины строки 40
116450$:MOV	#50,4(R5)	; Установить длину строки 40
	BR	116442$
116460$:RETURN
; П/п обработки Esc Граф-F
116462$:CALL	110762$		; Прочесть символ
	SUB	#61,R0		; Символ в диапазоне "1"-"4"
	BMI	116524$		; Нет
	CMP	R0,#4
	BHIS	116524$		; Нет
116502$:MOVB	116526$(R0),@22732; Установить соответствующий формат экрана
	MOVB	116532$(R0),22744 ; Сохранить номер формата в ТВ
	MOVB	116536$(R0),22662 ; Занести новую длину строки в ТВ
116524$:RETURN
; Биты формата экрана для загрузки в регистр управления отображением
116526$:.BYTE	0,20,40,60
; Номера форматов для загрузки в ТВ
116532$:.BYTE	1,2,4,10
; Длины строк
116536$:.BYTE	120,50,24,12
116542$:RETURN
116544$:RETURN
116546$:RETURN
116550$:RETURN
; П/п обработки Esc Граф-W
116552$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116570$		; Нет
	BIS	#1000,@#177054	; Выключить сетевой таймер в канале ЦП
	RETURN
116570$:BIC	#1000,@#177054	; Включить сетевой таймер в канале ЦП
	RETURN
; П/п обработки Esc Граф-X
116600$:MTPS	#200		; Запретить прерывания
	MOVB	#177,@23160	; Убрать курсор с экрана
	CALL	104026$		; Вызов п/п ПАУЗА
	MTPS	#0		; Разрешить прерывания
	RETURN
; П/п обработки Esc Граф-\
116624$:INC	@#7072		; Установить индикатор вызова меню ЗАГРУЗКА
	RETURN
; П/п обработки Esc Граф-]
116632$:ADD	@#23176,PC	; Установлен режим отмены ?
	BR	116706$		; Нет
	JSR	R5,105400$	; Установить пользовательский режим клавиатуры
	.WORD	107310$,11054
	CLR	@#7146		; Сбросить индикатор системного режима
	ADD	@#22550,PC	; Разрешена установка/снятие сигнала HALT ?
	BR	116664$		; Да
	RETURN
116664$:BIC	#20,@#177716	; Снять сигнал HALT в ЦП
	MOV	#70046,@#177010	; Сброс ключа продолжения в области ОЗУ ЦП
	CLR	@#177014
	RETURN
116706$:JSR	R5,105346$	; Установить системный режим клавиатуры
	.WORD	107310$,11054
	INC	@#7146		; Установить индикатор системного режима
	ADD	@#22550,PC	; Разрешена установка/снятие сигнала HALT ?
	BR	116732$		; Да
	RETURN
116732$:BIS	#20,@#177716	; Установить сигнал HALT в ЦП
	RETURN
; П/п обработки Esc Граф-^
116742$:INC	@#7100		; Установить индикатор вызова тест-программы
	RETURN
; П/п обработки Esc Граф-_
116750$:MOV	#2,@#23176	; Установить режим отмены
116756$:CALL	110762$		; Прочесть символ
	CMP	R0,#33		; Это Escape ?
	BEQ	116756$		; Да
	ASL	R0		; Вызов соответствующей п/п
	CALL	@13142(R0)
	CLR	@#23176		; Сбросить режим отмены
	RETURN
; П/п установки цвета курсора, вызываемая при исп. послед. Esc TD (графика)
117004$:MOV	2(SP),R0
	BIC	#177760,R0	; R0 = номер цвета курсора
	MOV	R0,@#7166	; Сохр. ном. цвета кур. в пункте УСТ/цв. кур.
	MOVB	R0,@22742	; Изменить цвет курсора
	RETURN
; П/п установки цветов символа, знакоместа и фона, вызываемая при исполнении
; последовательности Esc LI (графика)
117026$:MOV	R5,-(SP)	; Сохранить R5
	MOV	@#23150,R5	; R5 = адрес текущей ТВ
	MOV	4(SP),R0	; R0 = номер цвета символа
	BMI	117052$		; Если отрицательный - нет установки
	MOV	R0,34(R5)	; Сохранить номер цвета в ТВ
	MOV	R0,@#7160	; Сохр. ном. цвета симв. в пункте УСТ/цв. симв.
117052$:MOV	6(SP),R0	; R0 = номер цвета знакоместа
	BMI	117074$		; Если отрицательный - нет установки
	MOV	R0,@#7162	; Сохр. ном. цвета зн. в пункте УСТ/цв. зн.
	ASL	R0
	MOV	113512$(R0),40(R5); Сохранить номер фонового цвета в ТВ
117074$:MOV	10(SP),R0	; R0 = номер цвета фона
	BMI	117116$		; Если отрицательный - нет установки
	MOV	R0,@#7164	; Сохр. ном. цвета фона в пункте УСТ/цвет фона
	ASL	R0
	MOV	113512$(R0),44(R5); Сохранить номер фонового цвета в ТВ
117116$:CALL	110230$		; Заполнить регистры кода цвета и фона
	MOV	(SP)+,R5	; Восстановить R5
	RETURN
; П/п исполнения запроса EMT 42 (вывод символа)
117126$:CALL	117136$		; Занести символ в буфер
	TRAP	0		; Запуск цикла задач
	RETURN
; П/п заноса символа в буфер
117136$:MOVB	R0,@22544	; Занести символ в буфер
	INC	@#22544		; Корректировка указателя
	BIC	#200,@#22544
	INC	@#7064		; Увеличить счетчик символов
	RETURN
; П/п исполнения запроса EMT 44 (вывод строки символов)
117162$:MOV	@16(SP),R1	; R1 = адрес строки символов
	ADD	#2,16(SP)	; Коррекция адреса возврата
; П/п исполнения запроса EMT 46 (вывод строки символов)
117174$:JSR	R5,117206$	; Занести строку в буфер
	TRAP	0		; Запуск цикла задач
	RETURN
; П/п заноса строки символов в буфер
117204$:MOV	(R5)+,R1	; R1 = адрес строки символов
117206$:MOV	@#22544,R0	; R0 = значение указателя для записи в буфер
	BR	117224$
117214$:BIC	#200,R0		; Коррекция указателя
	INC	@#7064		; Увеличить счетчик символов
117224$:MOVB	(R1)+,(R0)+	; Занести очередной символ в буфер
	BNE	117214$		; Еще не конец строки
	DEC	R0
	MOV	R0,@#22544
	RTS	R5
; П/п исполнения запроса EMT 56 (вывод в нижнюю инф. строку)
117240$:MOV	#23052,R5	; R5 = адрес ТВ для нижней инф. строки
	BR	117260$
117246$:BR	117376$
; П/п исполнения запроса EMT 52 (вывод в верхнюю инф. строку)
117250$:ADD	@#7150,PC	; Разрешение/запрет вывода в верхнюю строку
	MOV	#22560,R5	; R5 = адрес ТВ для верхней инф. строки
117260$:MOV	34(R5),@#177016	; Загрузка регистров кода цвета и фона
	MOV	40(R5),@#177020
	MOV	40(R5),@#177022
	MOV	@32(R5),@R5	; Вычисление видеоадреса
	MOV	4(R5),16(R5)
	MOV	@16(SP),R1	; R1 = адрес строки
	MOVB	(R1)+,R0	; R0 = начальная позиция
	ADD	R0,@R5
	SUB	R0,16(R5)
	BR	117342$
117332$:MOV	R1,-(SP)
	CALL	111272$		; Рисование символа
	MOV	(SP)+,R1
117342$:CLR	R0
	BISB	(R1)+,R0	; R0 = очередной символ
	BNE	117332$		; Еще не конец строки
	MOV	@#23150,R5	; R5 = адрес текущей ТВ
	MOV	34(R5),@#177016	; Восстановление регистров кода цвета и фона
	MOV	40(R5),@#177020
	MOV	40(R5),@#177022
117376$:ADD	#2,16(SP)	; Коррекция адреса возврата
	RETURN
117406$:RETURN
117410$:RETURN
117412$:RETURN
117414$:RETURN
117416$:RETURN
117420$:RETURN
117422$:RETURN
117424$:RETURN
117426$:RETURN

; ***  ТАБЛИЦА РИСУНКОВ СИМВОЛОВ  ***

117430$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-@
117443$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-A
117456$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-B
117471$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-C
117504$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-D
117517$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-E
117532$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-F
117545$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-G
117560$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-H
117573$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-I
117606$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-J
117621$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-K
117634$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-L
117647$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-M
117662$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-N
117675$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-O
117710$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-P
117723$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-Q
117736$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-R
117751$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-S
117764$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-T
117777$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-U
120012$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-V
120025$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-W
120040$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-X
120053$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-Y
120066$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-Z
120101$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-[
120114$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-\
120127$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-]
120142$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-^
120155$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Ctrl-_
120170$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; Space
120203$:.BYTE	0,20,20,20,20,20,20,0,20,0,0			; !
120216$:.BYTE	0,44,44,22,0,0,0,0,0,0,0			; "
120231$:.BYTE	0,0,44,44,176,44,176,44,44,0,0			; #
120244$:.BYTE	0,0,102,74,102,102,102,74,102,0,0		; $
120257$:.BYTE	0,0,206,106,40,20,10,304,302,0,0		; %
120272$:.BYTE	0,30,44,44,30,24,242,102,274,0,0		; &
120305$:.BYTE	0,60,20,10,0,0,0,0,0,0,0			; '
120320$:.BYTE	0,40,20,10,10,10,10,20,40,0,0			; (
120333$:.BYTE	0,10,20,40,40,40,40,20,10,0,0			; )
120346$:.BYTE	0,0,0,20,124,70,124,20,0,0,0			; *
120361$:.BYTE	0,0,20,20,20,376,20,20,20,0,0			; +
120374$:.BYTE	0,0,0,0,0,0,0,30,30,20,10			; ,
120407$:.BYTE	0,0,0,0,0,176,0,0,0,0,0				; -
120422$:.BYTE	0,0,0,0,0,0,0,30,30,0,0				; .
120435$:.BYTE	0,0,200,100,40,20,10,4,2,0,0			; /
120450$:.BYTE	0,74,102,142,122,112,106,102,74,0,0		; 0
120463$:.BYTE	0,20,30,24,20,20,20,20,174,0,0			; 1
120476$:.BYTE	0,74,102,102,40,20,10,104,176,0,0		; 2
120511$:.BYTE	0,176,40,20,70,100,100,102,74,0,0		; 3
120524$:.BYTE	0,40,60,50,44,42,176,40,40,0,0			; 4
120537$:.BYTE	0,176,2,2,76,100,100,102,74,0,0			; 5
120552$:.BYTE	0,74,102,2,76,102,102,102,74,0,0		; 6
120565$:.BYTE	0,176,102,40,20,10,4,2,2,0,0			; 7
120600$:.BYTE	0,74,102,102,74,102,102,102,74,0,0		; 8
120613$:.BYTE	0,74,102,102,102,174,100,102,74,0,0		; 9
120626$:.BYTE	0,0,0,30,30,0,0,30,30,0,0			; :
120641$:.BYTE	0,0,0,30,30,0,0,30,30,20,10			; ;
120654$:.BYTE	0,0,40,20,10,4,10,20,40,0,0			; <
120667$:.BYTE	0,0,0,0,176,0,176,0,0,0,0			; =
120702$:.BYTE	0,0,4,10,20,40,20,10,4,0,0			; >
120715$:.BYTE	0,70,104,100,40,20,20,0,20,0,0			; ?
120730$:.BYTE	0,0,74,102,200,234,222,222,154,0,0		; @
120743$:.BYTE	0,30,44,102,102,176,102,102,102,0,0		; A
120756$:.BYTE	0,76,102,102,76,102,102,102,76,0,0		; B
120771$:.BYTE	0,74,102,2,2,2,2,102,74,0,0			; C
121004$:.BYTE	0,76,104,204,204,204,204,104,76,0,0		; D
121017$:.BYTE	0,176,2,2,76,2,2,2,176,0,0			; E
121032$:.BYTE	0,176,2,2,76,2,2,2,2,0,0			; F
121045$:.BYTE	0,74,102,2,2,162,102,102,74,0,0			; G
121060$:.BYTE	0,102,102,102,102,176,102,102,102,0,0		; H
121073$:.BYTE	0,70,20,20,20,20,20,20,70,0,0			; I
121106$:.BYTE	0,70,20,20,20,20,20,22,14,0,0			; J
121121$:.BYTE	0,102,42,22,16,12,22,42,102,0,0			; K
121134$:.BYTE	0,2,2,2,2,2,2,2,176,0,0				; L
121147$:.BYTE	0,202,306,252,222,202,202,202,202,0,0		; M
121162$:.BYTE	0,102,102,106,112,122,142,102,102,0,0		; N
121175$:.BYTE	0,74,102,102,102,102,102,102,74,0,0		; O
121210$:.BYTE	0,76,102,102,102,76,2,2,2,0,0			; P
121223$:.BYTE	0,74,102,102,102,102,102,122,74,100,0		; Q
121236$:.BYTE	0,76,102,102,102,76,22,42,102,0,0		; R
121251$:.BYTE	0,74,102,2,74,100,100,102,74,0,0		; S
121264$:.BYTE	0,376,20,20,20,20,20,20,20,0,0			; T
121277$:.BYTE	0,102,102,102,102,102,102,102,74,0,0		; U
121312$:.BYTE	0,202,202,202,202,202,104,50,20,0,0		; V
121325$:.BYTE	0,202,202,202,202,222,252,306,202,0,0		; W
121340$:.BYTE	0,102,102,44,30,30,44,102,102,0,0		; X
121353$:.BYTE	0,202,202,104,50,20,20,20,20,0,0		; Y
121366$:.BYTE	0,176,100,40,20,10,4,2,176,0,0			; Z
121401$:.BYTE	0,70,10,10,10,10,10,10,70,0,0			; [
121414$:.BYTE	0,0,2,4,10,20,40,100,200,0,0			; \
121427$:.BYTE	0,70,40,40,40,40,40,40,70,0,0			; ]
121442$:.BYTE	0,0,0,0,176,100,100,0,0,0,0			; ^
121455$:.BYTE	0,0,0,0,0,0,0,0,176,0,0				; _
121470$:.BYTE	0,30,20,40,0,0,0,0,0,0,0			; `
121503$:.BYTE	0,0,0,74,100,174,102,102,274,0,0		; a
121516$:.BYTE	0,2,2,72,106,102,102,106,72,0,0			; b
121531$:.BYTE	0,0,0,74,102,2,2,102,74,0,0			; c
121544$:.BYTE	0,100,100,134,142,102,102,142,134,0,0		; d
121557$:.BYTE	0,0,0,74,102,102,176,2,174,0,0			; e
121572$:.BYTE	0,60,110,10,34,10,10,10,10,0,0			; f
121605$:.BYTE	0,0,0,134,142,102,102,142,134,100,74		; g
121620$:.BYTE	0,2,2,72,106,102,102,102,102,0,0		; h
121633$:.BYTE	0,20,0,30,20,20,20,20,70,0,0			; i
121646$:.BYTE	0,20,0,20,20,20,20,20,20,22,14			; j
121661$:.BYTE	0,2,2,42,22,16,22,42,102,0,0			; k
121674$:.BYTE	0,30,20,20,20,20,20,20,70,0,0			; l
121707$:.BYTE	0,0,0,156,222,222,222,222,222,0,0		; m
121722$:.BYTE	0,0,0,72,106,102,102,102,102,0,0		; n
121735$:.BYTE	0,0,0,74,102,102,102,102,74,0,0			; o
121750$:.BYTE	0,0,0,72,106,102,102,106,72,2,2			; p
121763$:.BYTE	0,0,0,134,142,102,102,142,134,100,100		; q
121776$:.BYTE	0,0,0,72,106,2,2,2,2,0,0			; r
122011$:.BYTE	0,0,0,74,2,74,100,102,74,0,0			; s
122024$:.BYTE	0,10,10,34,10,10,10,110,60,0,0			; t
122037$:.BYTE	0,0,0,102,102,102,102,142,134,0,0		; u
122052$:.BYTE	0,0,0,202,202,202,104,50,20,0,0			; v
122065$:.BYTE	0,0,0,202,202,202,222,222,154,0,0		; w
122100$:.BYTE	0,0,0,102,44,30,30,44,102,0,0			; x
122113$:.BYTE	0,0,0,102,102,102,44,30,10,4,2			; y
122126$:.BYTE	0,0,0,176,40,20,10,4,176,0,0			; z
122141$:.BYTE	0,0,140,20,20,14,20,20,140,0,0			; {
122154$:.BYTE	0,0,20,20,20,20,20,20,20,0,0			; |
122167$:.BYTE	0,0,14,20,20,140,20,20,14,0,0			; }
122202$:.BYTE	0,176,0,0,0,0,0,0,0,0,0				; ~
122215$:.BYTE	0,176,176,176,176,176,176,176,176,0,0		; Delete
122230$:.BYTE	0,10,34,52,10,10,10,10,10,0,0			; 200
122243$:.BYTE	0,10,10,10,10,10,52,34,10,0,0			; 201
122256$:.BYTE	0,0,0,4,2,377,2,4,0,0,0				; 202
122271$:.BYTE	0,0,0,40,100,377,100,40,0,0,0			; 203
122304$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 204
122317$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 205
122332$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 206
122345$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 207
122360$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 210
122373$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 211
122406$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 212
122421$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 213
122434$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 214
122447$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 215
122462$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 216
122475$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 217
122510$:.BYTE	0,0,0,104,50,20,50,104,0,0,0			; 220
122523$:.BYTE	0,0,0,20,0,174,0,20,0,0,0			; 221
122536$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 222
122551$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 223
122564$:.BYTE	0,100,100,100,110,104,176,4,10,0,0		; 224
122577$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 225
122612$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 226
122625$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 227
122640$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 230
122653$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 231
122666$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 232
122701$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 233
122714$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 234
122727$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 235
122742$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 236
122755$:.BYTE	0,0,0,0,0,0,0,0,0,0,0				; 237
122770$:.BYTE	24,24,24,24,24,27,24,24,24,24,24		; Граф-@
123003$:.BYTE	10,10,10,10,10,377,0,0,0,0,0			; Граф-A
123016$:.BYTE	24,24,24,24,24,364,24,24,24,24,24		; Граф-B
123031$:.BYTE	0,0,0,0,0,17,10,10,10,10,10			; Граф-C
123044$:.BYTE	24,24,24,24,24,24,24,24,24,24,24		; Граф-D
123057$:.BYTE	10,10,10,10,10,370,10,10,10,10,10		; Граф-E
123072$:.BYTE	10,10,10,10,10,370,0,0,0,0,0			; Граф-F
123105$:.BYTE	24,24,24,24,364,4,364,24,24,24,24		; Граф-G
123120$:.BYTE	0,0,0,0,374,4,364,24,24,24,24			; Граф-H
123133$:.BYTE	10,10,10,10,377,0,377,10,10,10,10		; Граф-I
123146$:.BYTE	0,0,0,0,0,370,10,10,10,10,10			; Граф-J
123161$:.BYTE	0,0,0,0,0,377,10,10,10,10,10			; Граф-K
123174$:.BYTE	24,24,24,24,367,0,377,0,0,0,0			; Граф-L
123207$:.BYTE	24,24,24,24,24,377,0,0,0,0,0			; Граф-M
123222$:.BYTE	10,10,10,10,10,17,10,10,10,10,10		; Граф-N
123235$:.BYTE	24,24,24,24,367,0,367,24,24,24,24		; Граф-O
123250$:.BYTE	10,10,10,10,10,377,10,10,10,10,10		; Граф-P
123263$:.BYTE	10,10,10,10,370,10,370,10,10,10,10		; Граф-Q
123276$:.BYTE	24,24,24,24,24,367,24,24,24,24,24		; Граф-R
123311$:.BYTE	0,0,0,0,0,377,24,24,24,24,24			; Граф-S
123324$:.BYTE	10,10,10,10,377,0,377,0,0,0,0			; Граф-T
123337$:.BYTE	0,0,0,0,0,377,0,0,0,0,0				; Граф-U
123352$:.BYTE	24,24,24,24,364,4,374,0,0,0,0			; Граф-V
123365$:.BYTE	10,10,10,10,10,10,10,10,10,10,10		; Граф-W
123400$:.BYTE	0,0,0,0,377,0,377,10,10,10,10			; Граф-X
123413$:.BYTE	10,10,10,10,10,17,0,0,0,0,0			; Граф-Y
123426$:.BYTE	0,0,0,0,377,0,377,0,0,0,0			; Граф-Z
123441$:.BYTE	24,24,24,24,27,20,27,24,24,24,24		; Граф-[
123454$:.BYTE	24,24,24,24,27,20,37,0,0,0,0			; Граф-\
123467$:.BYTE	0,0,0,0,377,0,367,24,24,24,24			; Граф-]
123502$:.BYTE	10,10,10,10,17,10,17,10,10,10,10		; Граф-^
123515$:.BYTE	0,0,0,0,37,20,27,24,24,24,24			; Граф-_
123530$:.BYTE	0,0,0,142,222,222,236,222,142,0,0		; ю
123543$:.BYTE	0,0,0,74,100,174,102,102,274,0,0		; а
123556$:.BYTE	0,100,74,2,76,102,102,102,74,0,0		; б
123571$:.BYTE	0,0,0,42,42,42,42,42,176,100,0			; ц
123604$:.BYTE	0,0,0,160,110,104,104,104,376,202,0		; д
123617$:.BYTE	0,0,0,74,102,102,176,2,174,0,0			; е
123632$:.BYTE	0,0,0,20,174,222,222,222,174,20,20		; ф
123645$:.BYTE	0,0,0,176,102,2,2,2,2,0,0			; г
123660$:.BYTE	0,0,0,102,44,30,30,44,102,0,0			; х
123673$:.BYTE	0,0,0,102,142,122,112,106,102,0,0		; и
123706$:.BYTE	0,30,0,102,142,122,112,106,102,0,0		; й
123721$:.BYTE	0,0,0,102,42,22,36,42,102,0,0			; к
123734$:.BYTE	0,0,0,160,110,104,104,104,102,0,0		; л
123747$:.BYTE	0,0,0,202,306,252,222,202,202,0,0		; м
123762$:.BYTE	0,0,0,102,102,102,176,102,102,0,0		; н
123775$:.BYTE	0,0,0,74,102,102,102,102,74,0,0			; о
124010$:.BYTE	0,0,0,176,102,102,102,102,102,0,0		; п
124023$:.BYTE	0,0,0,174,102,102,174,104,102,0,0		; я
124036$:.BYTE	0,0,0,72,106,102,102,106,72,2,2			; р
124051$:.BYTE	0,0,0,74,102,2,2,102,74,0,0			; с
124064$:.BYTE	0,0,0,376,20,20,20,20,20,0,0			; т
124077$:.BYTE	0,0,0,102,102,102,44,30,10,4,2			; у
124112$:.BYTE	0,0,0,222,124,70,70,124,222,0,0			; ж
124125$:.BYTE	0,0,0,76,102,76,102,102,76,0,0			; в
124140$:.BYTE	0,0,0,2,2,76,102,102,76,0,0			; ь
124153$:.BYTE	0,0,0,202,202,236,242,242,236,0,0		; ы
124166$:.BYTE	0,0,0,74,100,70,100,100,74,0,0			; з
124201$:.BYTE	0,0,0,222,222,222,222,222,376,0,0		; ш
124214$:.BYTE	0,0,0,76,100,100,174,100,76,0,0			; э
124227$:.BYTE	0,0,0,222,222,222,222,222,376,200,200		; щ
124242$:.BYTE	0,0,0,102,102,102,174,100,100,0,0		; ч
124255$:.BYTE	0,0,0,7,5,174,204,204,174,0,0			; ъ
124270$:.BYTE	0,142,222,222,222,236,222,222,142,0,0		; Ю
124303$:.BYTE	0,30,44,102,102,176,102,102,102,0,0		; А
124316$:.BYTE	0,176,2,2,76,102,102,102,76,0,0			; Б
124331$:.BYTE	0,102,102,102,102,102,102,102,376,200,0		; Ц
124344$:.BYTE	0,160,110,104,104,104,104,104,376,202,0		; Д
124357$:.BYTE	0,176,2,2,76,2,2,2,176,0,0			; Е
124372$:.BYTE	0,20,174,222,222,222,222,174,20,20,0		; Ф
124405$:.BYTE	0,176,102,2,2,2,2,2,2,0,0			; Г
124420$:.BYTE	0,102,102,44,30,30,44,102,102,0,0		; Х
124433$:.BYTE	0,102,102,142,122,112,106,102,102,0,0		; И
124446$:.BYTE	30,102,102,142,122,112,106,102,102,0,0		; Й
124461$:.BYTE	0,102,42,22,16,22,42,102,202,0,0		; К
124474$:.BYTE	0,160,110,104,104,104,104,104,102,0,0		; Л
124507$:.BYTE	0,202,306,252,222,202,202,202,202,0,0		; М
124522$:.BYTE	0,102,102,102,176,102,102,102,102,0,0		; Н
124535$:.BYTE	0,74,102,102,102,102,102,102,74,0,0		; О
124550$:.BYTE	0,176,102,102,102,102,102,102,102,0,0		; П
124563$:.BYTE	0,174,102,102,102,174,110,104,102,0,0		; Я
124576$:.BYTE	0,76,102,102,102,76,2,2,2,0,0			; Р
124611$:.BYTE	0,74,102,2,2,2,2,102,74,0,0			; С
124624$:.BYTE	0,376,222,20,20,20,20,20,20,0,0			; Т
124637$:.BYTE	0,102,102,102,102,174,100,102,74,0,0		; У
124652$:.BYTE	0,222,222,124,70,124,222,222,222,0,0		; Ж
124665$:.BYTE	0,76,102,102,76,102,102,102,76,0,0		; В
124700$:.BYTE	0,2,2,2,76,102,102,102,76,0,0			; Ь
124713$:.BYTE	0,202,202,202,236,242,242,242,236,0,0		; Ы
124726$:.BYTE	0,74,102,100,70,100,100,102,74,0,0		; З
124741$:.BYTE	0,222,222,222,222,222,222,222,376,0,0		; Ш
124754$:.BYTE	0,74,102,200,200,370,200,102,74,0,0		; Э
124767$:.BYTE	0,222,222,222,222,222,222,222,376,200,200	; Щ
125002$:.BYTE	0,102,102,102,102,174,100,100,100,0,0		; Ч
125015$:.BYTE	0,7,5,4,174,204,204,204,174,0,0			; Ъ
	.EVEN
	.ENDT