	.TITLE	KCGD
	.IDENT	/181/

	.ASECT
	.=100000

100000$:.WORD	111516$,340	; Вектор прерывания по включению питания
100004$:.WORD	111516$,340	; Вектор прерывания по зависанию в HALT
100010$:.WORD	111516$,340	; Вектор прерывания по команде FIS
; Используемые биты в таблице табуляторов для координаты Y
; (остаток от деления на 8).
100014$:.BYTE	200,100,40,20,10,4,2,1
; Подпрограмма изменения цвета в таблице палитры и состояния курсора на экране.
100024$:COMB	11023		; Изменить режим палитры/курсора.
	BEQ	100042$		; Режим равен нулю.
	MOVB	4351,11024	; Использовать цвет N5 (яркий)
	BR	100050$
100042$:MOVB	4356,11024	; Использовать цвет N10 (нормальный)
100050$:ADD	4442,PC		; Курсор включен?
	RETURN			; Нет
100056$:ADD	4450,160000	; Прибавить смещение курсора к РА
	MOV	4516,R4		; R4 = координата X
	ASL	R4		; Умножить координату на 2
	TST	4476		; В текущей строке режим двойной ширины?
	BNE	100104$		; Нет
	ASL	R4		; Умножить координату на 2
	CALL	@PC		; Поменять состояние курсора (левая половина)
100104$:MOV	160000,-(SP)	; Сохранить в стеке значение РА
	BIC	#177770,R4	; R4 = X * 2(4) mod 8 или (X mod 4) * 2(4)
	ADD	7474(R4),@SP	; Прибавить к сохраненному адресу
	MOV	7504(R4),R1	; R1 = используемые биты левой части
	MOV	7514(R4),R2	; R2 = используемые биты правой части
	MOV	4446,R3		; R3 = высота курсора
100134$:XOR	R1,160002	; Поменять состояние в РД (левая часть)
	INC	160000		; Перейти к след. адресу (правая часть)
	XOR	R2,160002	; Поменять состояние в РД (правая часть)
	ADD	#99.,160000	; Перейти к следующей видеостроке
	SOB	R3,100134$	; Цикл по высоте курсора
	MOV	(SP)+,160000	; Восстановить значение РА (с прибавлением)
	TST	(R4)+		; К параметрам следующего знакоместа
	RETURN
100170$:.WORD	111516$,340	; Вектор прерывания по сигналу или команде HALT
100174$:.WORD	111516$,340	; Вектор прерывания по двойному зависанию
; Вспомогательные п/п для перевода шрифта из 80-символьного режима
; в 132-символьный. Исходная линия (8 точек) в R3, результат в R4.
; П/п перевода двух точек (четыре бита)
100200$:CALL	100226$		; Перевод первой точки
	BR	100226$		; Перевод второй точки
; П/п сложения по ИЛИ двух точек в одну точку
100206$:ASH	#2,R4		; Сдвинуть результат на точку влево
	ASH	#2,R3		; Выдвинуть точку (в бит С)
	BCC	100232$		; Нулевой результат
	BIS	#60,R4		; Установить крайнюю правую точку
	BR	100232$		; На анализ второй точки
; П/п перевода одной точки
100226$:ASH	#2,R4		; Сдвинуть результат на точку влево
100232$:ASH	#2,R3		; Выдвинуть точку (в бит С)
	BCC	100244$		; Нулевой результат
	BIS	#60,R4		; Установить крайнюю правую точку
100244$:RETURN
; П/п перевода линии символа шрифта (8 бит) в слово для отображения (16 бит)
100246$:MOV	#10,R3		; R3 = размер байта в битах
	CLR	R4		; Результат равен нулю
100254$:ASH	#2,R4		; Сдвинуть результат на 2 бита влево
	ASLB	R5		; Сдвинуть байт шрифта
	BCC	100270$		; Нет точки
	BIS	#3,R4		; Установить точку в слове (2 бита)
100270$:SOB	R3,100254$	; Цикл по размеру байта
	RETURN
100274$:.WORD	111516$,340	; Вектор прерывания по зависанию при приеме АВП
; П/п поиска символа и перехода на п/п его обработки. Используется для
; обработки командных и управляющих последовательностей и скэн-кодов клавиш.
; После вызова п/п по JSR R4, после команды вызова расположен массив данных,
; первое слово которого содержит адрес п/п обработки, а второе слово - искомый
; код. Нулевой адрес обработки - конец таблицы. При вызове код в R0.
100300$:CLR	-(SP)		; Выделить место в стеке
100302$:MOV	(R4)+,@SP	; Поместить адрес вызова в стек
	BEQ	100316$		; Таблица окончилась
	CMP	(R4)+,R0	; Код равен запрошенному?
	BNE	100302$		; Нет
	MOV	(SP)+,R4	; R4 = адрес обработки кода
	RTS	R4		; Возвратиться на адрес обработки
100316$:TST	(SP)+		; Освободить стек
	RTS	R4		; Возврат на команду после таблицы
; П/п обработки прерываний от таймера 60 Гц
100322$:MOV	R0,-(SP)	; Сохранить регистры в стеке
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	R4,-(SP)
	DEC	11016		; Уменьшить младшую часть счетчика ожидания
	BNE	100400$		; Не равно нулю
	DECB	11020		; Уменьшить старшую часть счетчика ожидания
	BNE	100372$		; Не равно нулю
	MOV	#100464$,@#100	; Новое значение вектора прерывания
	COMB	11020		; Инверт.ст.часть счетч.(режим гашения экрана)
	MOV	#112464$,R0	; Новое значение палитры (одни нули)
	CMP	(SP)+,(SP)+	; Убрать из стека сохр.значения R4 и R3
	BR	100512$		; На изменение палитры
100372$:MOV	#77777,11016
100400$:TSTB	11025		; Нужен скроллинг?
	BNE	100536$		; Да
	TSTB	11022		; Разрешен режим мигания?
	BEQ	100702$		; Нет
	DECB	11021		; Уменьшить счетчик мигания
	BNE	100702$		; Не равен нулю
	MOV	160000,-(SP)	; Сохранить РА в стеке
	CALL	100024$		; Изменить цвет в табл.палитры/сост.курсора
	MOVB	#30.,11021	; Новое знач.счетчика ожидания (0.5 сек)
	MOV	(SP)+,160000	; Восстановить значение РА
	MOVB	11024,4363	; Изменить цвет N15 в таблице палитры
	MOV	#4344,R0	; R0 = адрес таблицы палитры
	MOV	(SP)+,R4	; Восстановить из стека R4
	MOV	(SP)+,R3	; Восстановить из стека R3
	BR	100512$		; На изменение палитры
100464$:TSTB	11020		; Находимся в режиме гашения экрана?
	BMI	100714$		; Да
	MOV	R0,-(SP)	; Сохранить R0 в стеке
	MOV	#4344,R0	; R0 = адрес таблицы палитры
	MOV	#100322$,@#100	; Восстановить значение вектора прерывания
	MOV	R1,-(SP)	; Сохранить R1 в стеке
	MOV	R2,-(SP)	; Сохранить R2 в стеке
100512$:MOV	#16.,R1		; R1 = кол-во регистров палитры
	CLR	R2		; R2 = начальный номер регистра палитры
100520$:MOVB	R2,167772	; Занести R2 в адрес регистра палитры
	MOVB	(R0)+,167773	; Изменить значение регистра палитры
	CMP	(R2)+,(R2)+	; Перейти к след. номеру регистра (биты 2-5)
	SOB	R1,100520$	; Цикл по кол-ву регистров палитры
	BR	100706$
100536$:MOV	11026,R2	; R2 = адрес 1-й строки рулона в табл.адресов
	SUB	11030,R2
	ASH	#-2,R2		; R2 = кол-во перемещаемых видеострок
	MOV	4474,R3		; R3 = кол-во сдвиг.строк (тип рулона) - 1
	SUB	R3,R2		; R2 = кол-во перемещ.строк-сдвиг.стр.-1
	INC	R3		; R3 = кол-во сдвиг.строк за операцию
	MOV	R3,R1		; R1 = кол-во сдвиг.строк за операцию
	ASH	#2,R1		; R1 = размер в таблице адресов строк
	MOV	11010,R4	; R4 = адрес посл.видеостр.в новой строке
	TSTB	11025		; Направление скроллинга - вверх или вниз?
	BMI	100642$		; Скроллинг вверх
	MOV	11026,R0	; R0 = адрес 1-й строки рулона в табл.адресов
	TST	(R0)+
	NEG	R1
	ADD	R0,R1		; R1 = адрес след.видеостроки в табл.адресов
100614$:MOV	-(R1),-(R0)	; Переместить адреса в таблице адресов
	MOV	-(R1),-(R0)
	SOB	R2,100614$	; Цикл по кол-ву перемещаемых видеострок
100622$:MOV	R4,-(R0)	; Поместить адр.посл.видеостр. в нов.строке
	MOV	R4,-(R0)
	DECB	11025		; Уменьшить кол-во строк для скроллинга
	ADD	#100.,R4	; Перейти к адресу след.видеостроки
	SOB	R3,100622$	; Цикл по кол-ву сдвигаемых строк
	BR	100676$
100642$:MOV	11030,R0	; R0 = адрес посл.строки рулона в табл.адресов
	TST	-(R0)
	ADD	R0,R1		; R1 = адрес пред.видеостроки в табл.адресов
100652$:MOV	(R1)+,(R0)+	; Переместить адреса в таблице адресов
	MOV	(R1)+,(R0)+
	SOB	R2,100652$	; Цикл по кол-ву перемещаемых видеострок
100660$:MOV	R4,(R0)+	; Поместить адр.посл.видеостр. в нов.строке
	MOV	R4,(R0)+
	INCB	11025		; Уменьшить кол-во строк для скроллинга
	SUB	#100.,R4	; Перейти к адресу след.видеостроки
	SOB	R3,100660$	; Цикл по кол-ву сдвигаемых строк
100676$:MOV	R4,11010	; Запомнить след.адрес в новой строке
100702$:MOV	(SP)+,R4	; Восстановить регистры
	MOV	(SP)+,R3
100706$:MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
100714$:RTI
; П/п исполнения Esc-последовательности ESC X (загрузка ПО)
100716$:MTPS	#340		; Запретить прерывания
	MOV	#177400,4444	; При приеме символа оставлять 8 бит
	CALL	102270$		; Пропустить дополнительный "X"
	MOV	#100764$,-(SP)	; Адрес возврата на закачку в ОЗУ
	CALL	@PC		; Принять слово (объем данных) в R1
	MOV	R1,R2		; R2 = объем данных
	CALL	102270$		; Принять мл.часть слова (объем/адрес)
	MOV	R0,R1		; R1 = мл.часть слова
	CALL	102270$		; Принять ст.часть слова (объем/адрес)
	SWAB	R0		; Перенести в старший байт
	BIS	R0,R1		; R1 = слово (объем/данные)
	RETURN
; П/п приема и перекачки кода в ОЗУ при исполнении ESC X
100764$:MOV	R1,R3		; R3 = адрес запуска
100766$:CALL	102270$		; Принять очередной символ в R0
	MOVB	R0,(R1)+	; Поместить байт в ОЗУ
	SOB	R2,100766$	; Цикл по объему данных
	JMP	@R3		; Переход на п/п пользователя
; П/п исполнения ESC I(VT-52) и ESC M(VT-100). Курсор вверх на одну позицию
; со скроллингом вниз (если необходимо). При входе R3 = 1.
101000$:CMP	4520,11032	; Текущая позиция Y равна верхней части рулона?
	BNE	101022$		; Нет - на перемещение курсора
	BR	101066$		; На скроллинг
; П/п исполнения ESC A(VT-52) и ESC [ Pn A(VT-100). Курсор вверх на одну(VT-52)
; /несколько(VT-100) позиций без скроллинга. При входе R3 - кол-во позиций.
101012$:CMP	4520,11032	; Текущая позиция Y равна верхней части рулона?
	BEQ	101064$		; Да - возврат
101022$:NEG	R3		; R3 = - кол-во позиций (уменьшение)
	BR	101060$
; П/п исполнения управляющих кодов 12,13,14(перевод строки). R3 = 1.
101026$:ADD	4426,PC		; Установлен режим АвтоПСВК. Да - на 101036.
101032$:CLR	4516		; Координата курсора X = 0
; П/п исполнения ESC D(VT-100). Курсор вниз на одну позицию
; со скроллингом вверх (если необходимо). При входе R3 = 1.
101036$:CMP	4520,11034	; Текущая позиция Y равна нижней части рулона?
	BNE	101060$		; Нет - на перемещение курсора
	BR	101070$		; На скроллинг
; П/п исполнения ESC B(VT-52) и ESC [ Pn B(VT-100). Курсор вниз на одну(VT-52)
; /несколько(VT-100) позиций без скроллинга. При входе R3 - кол-во позиций.
101050$:CMP	4520,11034	; Текущая позиция Y равна нижней части рулона?
	BEQ	101064$		; Да - возврат
101060$:ADD	R3,4520		; Координата Y += кол-во позиций
101064$:RETURN
101066$:NEG	R3		; R3 = - кол-во позиций(уменьш.)для ESC I/M.
101070$:MOV	11034,R4	; R4 = строка нижней части рулона (по умолч.23)
	MOV	11032,R5	; R5 = строка верхней части рулона (по умолч.0)
	MOV	R4,R2		; R2 = строка нижней части рулона (по умолч.23)
	SUB	R5,R2		; R2 = кол-во текстовых строк для скроллинга
	ASHC	#2,R4		; R4 = нижняя строка рулона * 4
	MOV	#104,R0		; R0 = адрес ОЗУ таблицы параметров текст.строк
	MOV	R0,R1		; R1 = адрес ОЗУ таблицы параметров текст.строк
	MUL	#10.,R3		; R3 = кол-во видеострок для скроллинга
	BPL	101126$		; Скроллинг вверх
	MOV	R4,R5		; R5 = нижняя строка рулона * 4
101126$:ADD	R5,R1		; R1 = адрес парам.текст.строки (верх/низ)
	ADD	R5,R0		; R1 = адрес парам.текст.строки (верх/низ)
	MOV	(R1)+,R4	; R4 = адрес начала видео для текст.строки
	TST	(R1)+		; Пропустить параметры строки
	MOV	#11012,R5	; R5 = указатель на адреса начала доп.строк
	TSTB	R3		; Куда скроллинг - вверх или вниз?
	BMI	101164$		; Скроллинг вниз
101146$:MOV	(R1)+,(R0)+	; Перенести адрес видео и параметры нижеслед.
        MOV	(R1)+,(R0)+	; строки в предыдущую
        SOB	R2,101146$	; Цикл по кол-ву текст.строк для скроллинга
	MOV	@R5,(R0)+	; В освободивш.строку поместить адрес начала
	MOV	4452,@R0	; 1-й доп.строки и параметры по умолчанию
	BR	101204$
101164$:MOV	-(R0),-(R1)	; Перенести адрес видео и параметры предшеств.
	MOV	-(R0),-(R1)	; строки в следующую
	SOB	R2,101164$	; Цикл по кол-ву текст.строк для скроллинга
	MOV	4452,-(R1)	; В освободивш.строку поместить адрес начала
	MOV	@R5,-(R1)	; 1-й доп.строки и параметры по умолчанию
	ADD	#900.,@R5	; Уст. адрес посл.видеостроки в доп.строке
101204$:TSTB	11025		; Предыдущий скроллинг завершен?
	BNE	101204$		; Нет
	MOV	(R5)+,11010	; (11010)=адрес посл.видеостроки доп.строки
	MOVB	R3,11025	; Установить кол-во видеострок для скроллинга
	MOV	@R5,-(R5)	; Адр.видео 1-й допстроки=адр.видео 2-й допстр.
	MOV	(R5)+,R0	; R0 = адрес видео 1-й допстроки (новой)
	MOV	R4,@R5		; Адр.видео 2-й допстроки = адр.освобод.строки
101230$:MOV	160000,-(SP)	; Сохранить в стеке РА
	MOV	#1000.,R1	; R1 = размер текст.строки в словах видеопамяти
	MOV	R0,160000	; Адрес видео 1-й доп.строки
101244$:CLR	160002		; Очистить видеопамять
	INC	160000		; Перейти к следующему адресу
	SOB	R1,101244$	; Цикл очистки видеопамяти
	MOV	(SP)+,160000	; Восстановить из стека РА
	RETURN
; П/п исп.упр.кода 26(СУ-Z) - отмена ESC,CSI или DSC-посл. с выводом символа
101264$:MOV	#102350$,@SP	; Возврат будет производится в 102350
	MOV	#26274,R4	; Смещение символа обрат.? в шрифте в ОЗУ
	BR	101376$		; На вывод символа
; Вывод символа на экран. В R0-код символа в КОИ-7, в R3-адрес тек.табл.GL
101276$:ADD	4536,PC		; Разрешен вызов 10724? 4 - запрещен.
	CALL	10724
	ADD	4434,PC		; Разрешен вызов 10730? 4 - запрещен.
	CALL	10730
	SUB	#40,R0		; Из диапазона 32-127 в диапазон 0-95
	ADD	4526,R0		; Прибавить адрес GL для одиноч.символа
	TST	4526		; Вывод одиноч.симв. с другой GL?
	BNE	101336$		; Да
	ADD	R3,R0		; Прибавить адрес текущей GL
101336$:CLR	4526		; Очистить адрес другой GL
	MOVB	@R0,R1		; R1 = код символа в таблице шрифтов
	BIC	#177400,R1
	MUL	#20.,R1		; Получить смещение в таблице рисунков симв.
	MOV	R1,R4		; R4 = смещение в таблице рисунков симв.
	CMP	R3,4470		; Текущий GL равен своей таблице2 ?
	BNE	101372$		; Нет
	ADD	#32000,R4	; R4 = адрес в своей таблице рисунков символов
	BR	101376$
101372$:ADD	#20000,R4	; R4 = адрес в таблице рисунков
101376$:TST	4476		; В текущей строке режим двойной ширины?
	BNE	101446$		; Нет
	MOV	#1000,R1	; R1=адр.врем.буфера для хран.рисунка двойн.ш.
	MOV	#10.,R2		; R2 = высота символа
	MOV	R4,R0		; R0 = адрес в таблице рисунков
101416$:MOV	(R0)+,R5	; R5 = очередное слово из рисунка
	CALL	100246$		; Преобразовать младший байт
	MOV	R4,24(R1)	; Сохранить во временном буфере
	SWAB	R5		; Обменять байты в слове рисунка
	CALL	100246$		; Преобразовать старший байт
	MOV	R4,(R1)+	; Сохранить во временном буфере
	SOB	R2,101416$	; Цикл по высоте символа
	MOV	#1000,R4	; R4 = адрес рисунка символа
101446$:MOV	4516,R5		; R5 = координата X
	INC	4516		; Увеличить координату X
	ADD	4476,PC		; Режим двойной ширины - нет на 101464$
	ASL	R5
101464$:ASL	R5
	BIC	#177770,R5	; R5 = (X mod 4) * 2 ; (X mod 2) * 4 дв.ш.
	MOV	160000,13500	; (13500) = адрес видео для текущ.знакоместа
	ADD	7474(R5),13500
	MOV	7504(R5),R2
	MOV	7514(R5),R3
	MOV	7524(R5),13476
	TST	4476
	BNE	101560$
	BIS	#17,R2
	ASH	#-4,R3
	BNE	101550$
	INC	13500
101550$:BIC	#4,13476
	CALL	@PC
101560$:MOV	#12,R5
101564$:CLR	R0
	MOV	(R4)+,R1
	ADD	4524,PC
	CMP	R5,#2
	BNE	101606$
	MOV	#177777,R1
101606$:ADD	4522,PC
	COM	R1
	TST	R1
	BPL	101622$
	COM	R0
101622$:ASHC	13476,R0
	BIC	R2,160002
	COM	R2
	BIC	R2,R0
	BIC	4530,R0
	COM	R2
	BIS	R0,160002
	INC	160000
	BIC	R3,160002
	COM	R3
	BIC	R3,R1
	BIC	4530,R1
	COM	R3
	BIS	R1,160002
	ADD	#143,160000
	SOB	R5,101564$
	MOV	13500,160000
	TST	4476
	BNE	101764$
	INC	13500
	TST	7534
	BNE	101750$
	CLRB	R2
	SWAB	R2
	BNE	101764$
	INC	13500
	BR	101764$
101750$:TST	R3
	BNE	101762$
	DEC	13500
	CLRB	R2
101762$:CLR	R3
101764$:RETURN
101766$:MOV	4520,R3
	CLR	R5
	MOV	#27,R2
	TST	4534
	BNE	102016$
	MOV	11032,R5
	MOV	11034,R2
102016$:CMP	R3,R5
	BGE	103024$
	MOV	R5,R3
103024$:CMP	R3,R2
	BLE	102032$
	MOV	R2,R3
102032$:MOV	R3,4520
	ASH	#2,R3
	ADD	#104,R3
	MOV	(R3)+,R5
	BIT	#2,@R3
	BEQ	102102$
	ADD	4476,PC
	BR	102132$
102064$:ASR	7536
	CLR	4476
	ASL	7540
	BR	102132$
102102$:TST	4476
	BNE	102132$
	ASL	7536
	INC	7536
	ASR	7540
	MOV	#2,4476
102132$:MOV	7536,R1
	MOV	4516,R0
	BPL	102146$
	CLR	R0
102146$:CMP	R0,R1
	BLE	102154$
	MOV	R1,R0
102154$:MOV	R0,4516
	MUL	7540,R0
	DIV	#10,R0
	ADD	R0,R5
	MOV	R5,160000
	RETURN
102200$:CALL	102254$
	ADD	#244,R0
	MOVB	100014(R1),R1
	BIC	#177400,R1
102220$:CMP	4516,7536
	BGE	102252$
	INC	4516
	ASR	R1
	BCC	102246$
	BIS	#200,R1
	INC	R0
102246$:BITB	R1,@R0
	BEQ	102220$
102252$:RETURN	
102254$:MOV	4516,R1
	CLR	R0
	DIV	#10,R0
	RETURN
102270$:ADD	4422,PC
	TSTB	@#176560
	BPL	102270$
	MOV	#77777,11016
	MOVB	#3,11020
	MOV	@#176562,R0
	BR	102342$
102324$:TSTB	35625
	BEQ	102270$
	MOVB	35625,R0
	CLRB	35625
102342$:BIC	4444,R0
	RETURN
102350$:MOV	11006,SP
	CLR	11004
102360$:CLR	274
	CLR	13502
	CLR	13504
	MOVB	#1,265
	CLR	266
	CLR	270
102412$:CMP	4516,7536
	BLE	102452$
	ADD	4540,PC
	MOV	#1,R3
	CALL	101032$
	BR	102446$
102440$:MOV	7536,4516
102446$:CALL	101766$
102452$:MTPS	#340
	INCB	11022
	MOVB	#2,11021
	MTPS	#0
	MOV	#102412$,-(SP)
	CALL	102270$
	MTPS	#340
	CLRB	11022
	MTPS	#0
	TSTB	11023
	BEQ	102542$
	MOV	160000,-(SP)
	CALL	100024$
	MOV	(SP)+,160000
102542$:TST	R0
	BPL	102552$
	JMP	10654
102552$:CMP	R0,#40
	BLT	102602$
	MOV	4502,R3
	TST	11004
	BNE	102576$
	JMP	101276$
102576$:TST	(SP)+
	RETURN
102602$:MOV	#1,R3
	CALL	10660
	JSR	R4,100300$
	.WORD	110664$,7
	.WORD	110712$,16
	.WORD	110704$,17
	.WORD	101264$,32
	.WORD	102350$,30
	.WORD	102724$,33
	.WORD	0
102650$:CMP	#220,11004
	BEQ	102722$
	MOV	#101766$,-(SP)
	JSR	R4,100300$
	.WORD	106376$,15
	.WORD	106146$,10
	.WORD	102200$,11
	.WORD	101026$,12
	.WORD	101026$,13
	.WORD	101026$,14
	.WORD	0
102722$:RETURN
102724$:MOV	#102350$,@SP
	MOV	R0,11004
	CALL	102360$
	TSTB	4500
	BEQ	103102$
	MOV	#1,R3
	CALL	10700
	MOV	#101766$,-(SP)
	JSR	R4,100300$
	.WORD	106042$,'=
	.WORD	106040$,'>
	.WORD	110726$,'F
	.WORD	110704$,'G
	.WORD	107156$,'Z
	.WORD	105560$,'<
	.WORD	106156$,'Y
	.WORD	106570$,'K
	.WORD	106402$,'J
	.WORD	101000$,'I
	.WORD	101012$,'A
	.WORD	101050$,'B
	.WORD	106150$,'C
	.WORD	106146$,'D
	.WORD	106322$,'H
	.WORD	100716$,'X
	.WORD	103076$,'V
	.WORD	0
	RETURN
103076$:JMP	@100000
103102$:CMP	R0,#60
	BGE	103126$
	MOV	R0,266
103114$:CALL	102412$
	CMP	R0,#60
	BLT	103114$
103126$:TST	266
	BNE	103322$
	MOV	#1,R3
	JSR	R4,100300$
	.WORD	106042$,'=
	.WORD	106040$,'>
	.WORD	103504$,'[
	.WORD	103310$,'P
	.WORD	106772$,'~
	.WORD	110720$,'n
	.WORD	107000$,'}
	.WORD	110726$,'o
	.WORD	107006$,'|
	.WORD	107020$,'N
	.WORD	107030$,'O
	.WORD	106064$,'H
	.WORD	103300$,'\
	.WORD	105566$,'7
	.WORD	107240$,'Z
	.WORD	111516$,'c
	.WORD	0 
103246$:MOV	#101766$,-(SP)
	JSR	R4,100300$
	.WORD	101032$,'E
	.WORD	101036$,'D
	.WORD	101000$,'M
	.WORD	105600$,'8
	.WORD	0
103300$:RETURN
103302$:CALL	102412$
	BR	103302$
103310$:MOV	#220,11004
	JMP	@11000
103322$:MOV	R0,270
	MOV	266,R0
	JSR	R4,100300$
	.WORD	103372$,'#
	.WORD	10734,40
	.WORD	104166$,'(
	.WORD	104174$,')
	.WORD	104202$,'*
	.WORD	104210$,'+
	.WORD	0
	RETURN
103372$:MOV	#101766$,-(SP)
	MOV	#144,R1
	MOV	4520,R5
	ASH	#2,R5
	MOV	R5,R3
	ADD	#104,R5
	MUL	#12,R3
	MOV	#17474,R4
	SUB	R3,R4
	MOV	(R5)+,R3
	MOV	R3,R2
103436$:TSTB	11025
	BNE	103436$
	MOV	270,R0
	JSR	R4,100300$
	.WORD	105110$,'3
	.WORD	105104$,'4
	.WORD	105316$,'5
	.WORD	105116$,'6
	.WORD	10740,  '8
	.WORD	0
	RETURN
103504$:MOV	#233,11004
	CLR	272
	MOV	#25,R0
	MOV	#13502,R1
	MOV	R1,276
103532$:CLR	(R1)+
	SOB	R0,103532$
	CALL	102412$
	CMP	R0,#77
	BEQ	103556$
	CMP	R0,#76
	BNE	103566$
103556$:NEGB	265
103562$:CALL	102412$
103566$:CMP	R0,#60
	BLT	103730$
	CMP	R0,#100
	BGE	103746$
	CMP	R0,#71
	BLE	103654$
	CMP	R0,#73
	BNE	103700$
	CMP	274,#24
	BEQ	103646$
	INC	274
	MOV	272,@276
	ADD	#2,276
103646$:CLR	272
	BR	103562$
103654$:SUB	#60,R0
	MOV	272,R1
	MUL	#12,R1
	ADD	R0,R1
	MOV	R1,272
	BR	103562$
103700$:CALL	102412$
	CMP	R0,#60
	BLT	103730$
	CMP	R0,#100
	BGE	103746$
	CMP	R0,#73
	BNE	103700$
	BR	103646$
103730$:MOV	R0,266
	CALL	102412$
	CMP	R0,#57
	BLE	103730$
103746$:MOV	272,@276
	INC	274
	TST	266
	BEQ	103772$
	JMP	10664
103772$:MOV	#1,R3
	JSR	R4,100300$
	.WORD	106106$,'g
	.WORD	104612$,'m
	.WORD	107240$,'c
	.WORD	107270$,'n
	.WORD	0
	MOV	#101766$,-(SP)
	JSR	R4,100300$
	.WORD	104326$,'h
	.WORD	104330$,'l
	.WORD	0
	MOV	13502,R3
	BNE	104056$
	INC	R3
104056$:JSR	R4,100300$
	.WORD	101012$,'A
	.WORD	101050$,'B
	.WORD	106150$,'C
	.WORD	106146$,'D
	.WORD	106342$,'H
	.WORD	106342$,'f
	.WORD	10744,  'L
	.WORD	10750,  'M
	.WORD	10754,  'X
	.WORD	106570$,'K
	.WORD	106402$,'J
	.WORD	106230$,'r
	.WORD	10760,  'I
	.WORD	10764,  'y
	.WORD	10770,  '@
	.WORD	10774,  'P
	.WORD	0
	RETURN
104166$:MOV	#4506,R3
	BR	104214$
104174$:MOV	#4510,R3
	BR	104214$
104202$:MOV	#4512,R3
	BR	104214$
104210$:MOV	#4514,R3
104214$:MOV	270,R0
	JSR	R4,100300$
	.WORD	104276$,'B
	.WORD	104304$,'<
	.WORD	104320$,'0
	.WORD	104312$,'u
	.WORD	0
	CMP	R0,4466
	BNE	104262$
	MOV	4464,@R3
	RETURN
104262$:CMP	R0,4472
	BNE	104274$
	MOV	4470,@R3
104274$:RETURN
104276$:MOV	4454,@R3
	RETURN
104304$:MOV	4456,@R3
	RETURN
104312$:MOV	4460,@R3
	RETURN
104320$:MOV	4462,@R3
	RETURN
104326$:CLR	R3
104330$:MOV	#13502,R5
104334$:MOV	R3,-(SP)
	MOV	(R5)+,R0
	MOV	R5,-(SP)
	MOV	#104454$,-(SP)
	TSTB	265
	BPL	104432$
	JSR	R4,100300$
	.WORD	102722$,0
	.WORD	104470$,1
	.WORD	105524$,2
	.WORD	107040$,3
	.WORD	104510$,4
	.WORD	104560$,5
	.WORD	106330$,6
	.WORD	104546$,7
	.WORD	104530$,31
	.WORD	0
	JMP	10670
104432$:JSR	R4,100300$
	.WORD	102722$,0
	.WORD	104600$,24
	.WORD	0
	JMP	10674
104454$:MOV	(SP)+,R5
	MOV	(SP)+,R3
	DEC	274
	BNE	104334$
	RETURN
104470$:MOV	#4404,R0
	MUL	#6,R3
	ADD	R3,R0
	MOV	R0,4436
	RETURN
104510$:TSTB	11025
	BNE	104510$
	MUL	#11,R3
	MOV	R3,4474
	RETURN
104530$:ASL	R3
	MOV	104542$(R3),4442
	RETURN
104542$:.WORD	2,0
104546$:MUL	#12,R3
	MOV	R3,4540
	RETURN
104560$:MOVB	4351,R3
	MOVB	4344,4351
	MOVB	R3,4344
	RETURN
104600$:ASH	#2,R3
	MOV	R3,4426
	RETURN
104612$:MOV	#13502,R5
104616$:MOV	#104700$,-(SP)
	MOV	(R5)+,R0
	JSR	R4,100300$
	.WORD	104710$,0
	.WORD	105020$,1
	.WORD	105002$,4
	.WORD	104734$,5
	.WORD	104774$,7
	.WORD	105026$,26
	.WORD	105010$,30
	.WORD	104756$,31
	.WORD	104724$,33
	.WORD	0
	RETURN
104700$:DEC	274
	BNE	104616$
	RETURN
104710$:MOV	#125252,4530
	MOV	#12,4524
104724$:MOV	#2,4522
	RETURN
104734$:TST	4530
	BEQ	104754$
	MOV	4530,4532
	CLR	4530
104754$:RETURN
104756$:TST	4530
	BNE	104772$
	MOV	4532,4530
104772$:RETURN
104774$:CLR	4522
	RETURN
105002$:CLR	4524
	RETURN
105010$:MOV	#12,4524
	RETURN
105020$:MOV	#52525,R0
	BR	105032$
105026$:MOV	#125252,R0
105032$:TST	4530
	BNE	105046$
	MOV	R0,4532
	RETURN
105046$:MOV	R0,4530
	RETURN
105054$:TSTB	11025
	BNE	105054$
	MOV	R0,R5
	MUL	#50,R5
	MOV	#17472,R4
	SUB	R5,R4
	MOV	R4,11026
	RETURN
105104$:ADD	#764,R2
105110$:CALL	105464$
	BR	105122$
105116$:CALL	105506$
105122$:TST	4476
	BEQ	105314$
	BIS	#2,@R5
	MOV	#12,13474
	ADD	#61,R3
105146$:MOV	R3,-(SP)
	MOV	#62,R4
	ADD	R4,@SP
105156$:MOV	R3,160000
	MOV	160002,R0
	MOV	(SP)+,160000
	MOV	#105254$,-(SP)
	CALL	@PC
	CLR	R2
	MOV	#4,R5
105206$:CLR	R1
	ASHC	#-2,R0
	ASH	#-2,R2
	BIC	#140000,R2
	BIS	R1,R2
	ASH	#-2,R2
	BIC	#140000,R2
	BIS	R1,R2
	SOB	R5,105206$
	MOV	R2,160002
	DEC	160000
	RETURN
105254$:MOV	160000,-(SP)
	DEC	R3
	SOB	R4,105156$
	ADD	#144,160000
	BIC	7534,160002
	ADD	#226,R3
	TST	(SP)+
	DEC	13474
	BNE	105146$
105314$:RETURN
105316$:CALL	105506$
	TST	4476
	BNE	105462$
	BIC	#2,@R5
	MOV	#12,13474
105342$:MOV	R3,R2
	MOV	#62,R4
105350$:MOV	R2,160000
	MOV	#105412$,-(SP)
	CALL	@PC
	MOV	160002,R1
	MOV	#4,R5
105372$:ASHC	#2,R0
	ASH	#2,R1
	SOB	R5,105372$
	INC	160000
	RETURN
105412$:MOV	160000,R2
	MOV	R3,160000
	MOV	R0,160002
	INC	R3
	SOB	R4,105350$
	MOV	#62,R4
105436$:INC	160000
	CLR	160002
	SOB	R4,105436$
	ADD	#62,R3
	DEC	13474
	BNE	105342$
105462$:RETURN
105464$:MOV	#5,R0
105470$:MOV	R2,-(R4)
	MOV	R2,-(R4)
	MOV	R2,-(R4)
	MOV	R2,-(R4)
	ADD	R1,R2
	SOB	R0,105470$
	RETURN
105506$:MOV	#12,R0
105512$:MOV	R2,-(R4)
	MOV	R2,-(R4)
	ADD	R1,R2
	SOB	R0,105512$
105522$:RETURN
105524$:TST	R3
	BEQ	105522$
	MOVB	R3,4500
	MOV	4454,4506
	MOV	4460,4510
	MOV	4462,4514
	RETURN
105560$:CLRB	4500
	RETURN
105566$:MOV	#7434,R0
	MOV	#4502,R1
	BR	105610$
105600$:MOV	#7434,R1
	MOV	#4502,R0
105610$:MOV	#20,R2
105614$:MOV	(R1)+,(R0)+
	SOB	R2,105614$
	RETURN
105622$:MOV	#20000,R0
	MOV	#112236$,R1
	MOV	#5000,R2
105636$:MOVB	(R1)+,R5
	CALL	100246$
	MOV	R4,(R0)+
	SOB	R2,105636$
	MOV	#107456$,R1
105654$:MOV	#7474,R0
	MOV	#24,R2
	BR	105614$
105666$:MOV	#32000,R0
	MOV	#2304,R1
	MOV	#4716,R5
	MOV	#5000,R2
105706$:CLR	R4
	MOV	-(R0),R3
	CALL	100226$
	CMP	R2,R5
	BGE	105776$
	CMP	R2,R1
	BGE	105750$
	CALL	100206$
	CALL	100200$
	CALL	100226$
	CALL	100206$
	BR	106026$
105750$:CALL	100200$
	ASH	#2,R3
	CALL	100226$
	ASH	#2,R3
	CALL	100200$
	BR	106026$
105776$:CALL	100226$
	ASH	#2,R3
	CALL	100226$
	ASH	#2,R3
	CALL	100200$
	CALL	100226$
106026$:MOV	R4,@R0
	SOB	R2,105706$
	MOV	#107524$,R1
	BR	105654$
106040$:CLR	R3
106042$:MOVB	R3,11046
	RETURN
106050$:CALL	102254$
	BICB	100014$(R1),244(R0)
	RETURN
106064$:CALL	102254$
	BISB	100014$(R1),244(R0)
	RETURN
106100$:MOV	#200,R3
	BR	106126$
106106$:TST	13502
	BEQ	106050$
	CMP	13502,#3
	BNE	106144$
	CLR	R3
106126$:MOV	#244,R0
	MOV	#20,R1
	CLRB	(R0)+
106140$:MOVB	R3,(R0)+
	SOB	R1,106140$
106144$:RETURN
106146$:NEG	R3
106150$:ADD	R3,4516
	RETURN
106156$:CALL	102412$
	SUB	#40,R0
	BMI	106202$
	CMP	R0,#27
	BGT	106202$
	MOV	R0,4520
106202$:CALL	102412$
	SUB	#40,R0
	BMI	106226$
	CMP	R0,#117
	BGT	106226$
	MOV	R0,4516
106226$:RETURN
106230$:DEC	R3
	CMP	R3,#26
	BLT	106242$
	CLR	R3
106242$:MOV	13504,R0
	BNE	106256$
106250$:MOV	#27,R0
	BR	106264$
106256$:DEC	R0
	CMP	R3,R0
	BGE	106250$
106264$:MOV	R0,11034
	MOV	R3,11032
	CALL	105054$
	MOV	11026,11030
	SUB	#44,11030
	MOV	R3,R0
	CALL	105054$
106322$:CLR	R3
	CLR	R4
	BR	106354$
106330$:ASH	#2,R3
	MOV	R3,4534
	BR	106322$
106342$:DEC	R3
	MOV	13504,R4
	BEQ	106354$
	DEC	R4
106354$:ADD	4534,PC
	ADD	11032,R3
	MOV	R3,4520
106370$:MOV	R4,4516
	RETURN
106376$:CLR	R4
	BR	106370$
106402$:TSTB	265
	BGT	106414$
	JMP	10644
106414$:CMP	13502,#2
	BEQ	106472$
	BLT	106430$
	RETURN
106430$:CALL	106570$
	MOV	4520,R1
	INC	R1
	TST	13502
	BNE	106462$
	TST	4516
	BNE	106474$
	DEC	R1
	BR	106474$
106462$:TST	-(R1)
	MOV	R1,R3
	CLR	R1
	BR	106500$
106472$:CLR	R1
106474$:MOV	#27,R3
106500$:SUB	R1,R3
	BMI	106566$
	INC	R3
	ASH	#2,R1
	MOV	R1,R5
	MUL	#12,R1
	ADD	#104,R5
	MOV	#17474,R4
	SUB	R1,R4
106532$:TSTB	11025
	BNE	106532$
106540$:MOV	@R5,R0
	CALL	101230$
	MOV	(R5)+,R2
	MOV	#144,R1
	CALL	105506$
	MOV	4452,(R5)+
	SOB	R3,106540$
106566$:RETURN
106570$:TSTB	265
	BGT	106602$
	JMP	10650
106602$:MOV	7536,R1
	MOV	R1,R2
	MOV	4516,R0
	CMP	13502,#2
	BEQ	106640$
	BLT	106630$
	RETURN
106630$:TST	13502
	BEQ	106642$
	MOV	R0,R2
106640$:CLR	R0
106642$:INC	R2
	MUL	7540,R0
	DIV	#10,R0
	MOV	107466$(R1),R1
	MUL	7540,R2
	DIV	#10,R2
	MOV	107466$(R3),R3
	COM	R3
	SUB	R0,R2
	DEC	R2
	MOV	4520,R5
	ASH	#2,R5
	ADD	#104,R5
	ADD	@R5,R0
	MOV	#12,R4
106724$:MOV	R0,160000
	BIC	R1,160002
	INC	160000
	MOV	R2,R5
	BEQ	106756$
106744$:CLR	160002
	INC	160000
	SOB	R5,106744$
106756$:BIC	R3,160002
	ADD	#144,R0
	SOB	R4,106724$
	RETURN
106772$:MOV	4510,R3
	BR	107012$
107000$:MOV	4512,R3
	BR	107012$
107006$:MOV	4514,R3
107012$:MOV	R3,4504
	RETURN
107020$:MOV	4512,4526
	RETURN
107030$:MOV	4514,4526
107036$:RETURN
107040$:TST	R3
	BNE	107060$
	TST	7534
	BNE	107036$
	CALL	105666$
	BR	107072$
107060$:TST	7534
	BEQ	107036$
	CALL	105622$
107072$:CALL	106472$
	CLR	11032
	MOV	#17472,11026
	MOV	#15576,11030
	MOV	#27,11034
	CLR	4516
	CLR	4520
	MOV	#4,4534
	RETURN
107144$:MOV	#310,R1
	BR	107162$
107152$:.ASCIZ	<33>"/Z"
	.EVEN
107156$:MOV	#107152$,R1
107162$:TSTB	@R1
	BEQ	107174$
	CALL	107176$
	BR	107162$
107174$:RETURN
107176$:TST	4422
	BNE	107232$
	TSTB	176564
	BPL	107176$
	MOVB	(R1)+,176566
	MOV	R1,-(SP)
	MOV	#1500,R1
107224$:SOB	R1,107224$
	MOV	(SP)+,R1
	RETURN
107232$:MOVB	(R1)+,35625
	RETURN
107240$:TST	13502
	BNE	107174$
	TSTB	265
	BMI	107262$
	MOV	#35600,R1
	BR	107266$
107262$:MOV	#4371,R1
107266$:BR	107162$
107270$:CMP	13502,#5
	BNE	107306$
	MOV	#4364,R1
	BR	107162$
107306$:CMP	13502,#6
	BNE	107174$
	MOV	#35626,R4
	MOV	4412,(R4)+
	MOV	4520,R0
	ADD	4534,PC
	SUB	11032,R0
	CALL	107376$
	MOVB	#73,(R4)+
	MOV	4516,R0
	CALL	107376$
	MOVB	#122,(R4)+
	CLRB	@R4
	MOV	#35626,R1
	BR	107162$
107376$:INC	R0
	MOV	#107456$,R3
107404$:CMP	R0,-(R3)
	BLO	107404$
	TST	(R3)+
107412$:MOVB	#60,R1
	TST	-(R3)
	BNE	107432$
	ADD	R0,R1
	MOVB	R1,(R4)+
	RETURN
107430$:INC	R1
107432$:SUB	@R3,R0
	BHIS	107430$
	ADD	@R3,R0
	MOVB	R1,(R4)+
	BR	107412$
107444$:.WORD	0,10.,100.,1000.,10000.
; Параметры для 80-символьного режима. В ОЗУ 7474-7541.
107456$:.WORD	1,1,1,2
107466$:.WORD	177777,7777,377,17,170000,177400,177760,177777
107506$:.WORD	14,10,4,0
107516$:.WORD	0,117,12
; Параметры для 132-символьного режима. В ОЗУ 7474-7541.
107524$:.WORD	0,1,1,1
107534$:.WORD	177760,17,377,7777,0,177400,170000,0
107554$:.WORD	20,4,10,14
107564$:.WORD	177777,203,6
107572$:.ASCIZ	<33>/[?1;2c/
	.EVEN
107602$:JSR	R4,100300$
	.WORD	110410$,214
	.WORD	107734$,351
	.WORD	107734$,352
	.WORD	107734$,353
	.WORD	107734$,354
	.WORD	110464$,207
	.WORD	110614$,210
	.WORD	110444$,211
	.WORD	110472$,212
	.WORD	110542$,213
	.WORD	110420$,367
	.WORD	110600$,372
	.WORD	110510$,362
	.WORD	10710,  200
	.WORD	10714,  377
	.WORD	0
	CMP	R0,#206
	BLE	110056$
	CMP	R0,#300
	BLE	107760$
	CMP	R0,#355
	BLT	110024$
	SUB	#334,R0
	BR	110062$
107734$:MOV	R1,11036
	SUB	#250,R0
	TSTB	4500
	BNE	110036$
	MOV	4436,R1
	BR	110050$
107760$:MOV	R1,11036
	SUB	#200,R0
	TSTB	11046
	BEQ	110240$
	ADD	#100,R0
	TSTB	4500
	BEQ	110016$
	MOV	#4417,R1
	BR	110050$
110016$:MOV	#4404,R1
	BR	110050$
110024$:SUB	#200,R0
	TSTB	4500
	BEQ	110044$
110036$:MOV	#4415,R1
	BR	110050$
110044$:MOV	#4404,R1
110050$:CALL	107162$
	BR	110366$
110056$:SUB	#200,R0
110062$:TSTB	4501
	BEQ	110400$
	JMP	10720
110074$:MOV	#77777,11016
	MOVB	#3,11020
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R4,-(SP)
	MOV	@#177562,R0
	MOV	R0,R1
110124$:SUB	#126,R0
	BMI	110400$
	MOVB	4074(R0),R0
	BIC	#177400,R0
	BEQ	110400$
	CMP	R0,#177
	BEQ	110366$
	BGT	107602$
	TSTB	11044
	BNE	110200$
	TSTB	11050
	BEQ	110200$
	MOVB	3474(R0),R0
	BIC	#177400,R0
110200$:MOV	R1,11036
	TSTB	11047
	BEQ	110216$
	JMP	10704
110216$:TSTB	11041
	BEQ	110232$
	SUB	#100,R0
	BR	110366$
110232$:CMP	R0,#40
	BGT	110266$
110240$:CMP	R0,#15
	BNE	110366$
	TST	4426
	BNE	110366$
	MOV	#4407,R1
	CALL	107162$
	BR	110400$
110266$:CMP	R0,#60
	BEQ	110366$
	BLT	110336$
	TSTB	11045
	BEQ	110310$
	ADD	#40,R0
110310$:TSTB	11044
	BEQ	110366$
	TSTB	11051
	BEQ	110366$
	MOVB	3674(R0),R0
	BIC	#177400,R0
	BR	110366$
110336$:CMP	R0,#54
	BLT	110360$
	TSTB	11043
	BEQ	110366$
110352$:ADD	#20,R0
	BR	110366$
110360$:TSTB	11043
	BEQ	110352$
110366$:MOV	R0,-(SP)
	MOV	SP,R1
	CALL	107176$
	TST	(SP)+
110400$:MOV	(SP)+,R4
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	RTI
110410$:MOV	11036,R0
	MOV	R0,R1
	BR	110124$
110420$:TST	4422
	BEQ	110434$
	CLR	4422
	BR	110400$
110434$:MOV	#30,4422
	BR	110400$
110444$:COMB	11043
	MOVB	11042,11045
	COMB	11045
	BR	110400$
110464$:COMB	11041
	BR	110400$
110472$:MOV	#17,R0
	TSTB	11044
	BNE	110506$
	DEC	R0
110506$:BR	110366$
110510$:MOV	#23,R0
	COMB	11040
	BNE	110524$
	TST	-(R0)
110524$:MOV	R0,-(SP)
	MOV	#210,R1
	CALL	110654$
	MOV	(SP)+,R0
	BR	110366$
110542$:TSTB	11041
	BEQ	110556
	CLRB	11041
	BR	110400$
110556$:TSTB	11043
	BEQ	110400$
	COMB	11043
	MOVB	11042,11045
	BR	110400$
110600$:TSTB	4501
	BEQ	110400$
	COMB	11047
	BR	110400$
110614$:TSTB	11043
	BEQ	110400$
	MOV	#23,R0
	COMB	11042
	MOVB	11042,11045
	BNE	110644$
	TST	-(R0)
110644$:MOV	#204,R1
	MOV	#110400$,-(SP)
110654$:CALL	110670$
	MOV	R1,R0
	BR	110670$
110664$:MOV	#247,R0
110670$:TSTB	177564
	BPL	110670$
	MOVB	R0,177566
110702$:RETURN
110704$:MOV	4506,R3
	BR	110732$
110712$:MOV	4510,R3
	BR	110732$
110720$:MOV	4512,R3
	BR	110732$
110726$:MOV	4514,R3
110732$:MOV	R3,4502
	MOV	#21,R0
	MOV	#11044,R1
	CMP	R3,4506
	BNE	110764$
	TSTB	@R1
	BEQ	110702$
	CLRB	@R1
	BR	110774$
110764$:TSTB	@R1
	BNE	110702$
	COMB	@R1
	TST	(R0)+
110774$:MOV	#220,R1
	BR	110654$

; Блок начальных значений параметров1, расположенных в ОЗУ в 4074-4541
111002$:.BYTE	362,000,000,367,000,000,000,000	; Раскладка клавиатуры
	.BYTE	000,000,000,000,000,000,000,000	; для кодов с 126 по 375
	.BYTE	000,000,000,000,000,000,000,000	; Для клавиш с кодом выше
	.BYTE	000,000,000,033,010,012,000,000	; 200 предусмотрена
	.BYTE	000,000,000,000,000,000,000,015	; специальная обработка
	.BYTE	000,000,000,000,000,000,000,000	; (клавиши-стрелки, ДКЛ,
	.BYTE	000,000,000,000,000,000,000,000	; ПФ1-ПФ4).
	.BYTE	000,000,000,000,260,000,256,215	; Клавиши с кодами меньше
	.BYTE	261,262,263,264,265,266,254,267	; 200 обрабатываются
	.BYTE	270,271,255,320,321,322,323,000	; в зависимости от режима
	.BYTE	000,354,353,352,351,000,000,000	; алфавита и регистра.
	.BYTE	211,207,210,000,212,213,214,000	; В ОЗУ 4074-4343.
	.BYTE	000,000,000,000,000,000,177,015
	.BYTE	011,053,041,112,106,121,000,042
	.BYTE	103,131,136,053,057,043,125,127
	.BYTE	123,000,044,113,101,115,040,000
	.BYTE	045,105,120,111,000,046,116,122
	.BYTE	124,000,047,107,117,130,000,050
	.BYTE	133,114,102,000,051,135,104,100
	.BYTE	000,060,132,137,126,054,000,000
	.BYTE	110,056,000,055,052,134,000,000
; Палитра (используются только 0,5,10 и 15 элементы). В ОЗУ 4344-4363.
111252$:.BYTE	0,0,0,0,0,17,0,0,0,0,11,0,0,0,0,17
; Ответ на CSI-последовательность <Esc>[5n. В ОЗУ 4364-4370.
111272$:.ASCIZ	<33>"[0n"
; Ответ на CSI-последовательность <Esc>[>c. В ОЗУ 4371-4402.
111277$:.ASCIZ	<33>"[>7;501c"
	.EVEN
; Код, выдаваемый стрелками в режиме приложения. В ОЗУ 4404-4406.
111312$:.ASCIZ	<33>"O"
; Код, выдаваемый ВК в режиме авто-ПС-ВК. В ОЗУ 4407-4411.
111315$:.ASCIZ	<15><12>
; Код, выдаваемый стрелками в обычном режиме. В ОЗУ 4412-4414.
111320$:.ASCIZ	<33>"["
; Код, выдаваемый стрелками в режиме совместимости и ПФ1-ПФ4. В ОЗУ 4415-4416.
111323$:.ASCIZ	<33>
; Код, выдаваемый допклавиатурой в режиме ДКЛ. В ОЗУ 4417-4421.
111325$:.ASCIZ	<33>"?"
	.EVEN
111330$:.WORD	0 ; 0 - нормальный режим, 30 - автономный. В ОЗУ - 4422.
111332$:.WORD	0 ; Не используется. В ОЗУ - 4424.
111334$:.WORD	4 ; 0 - новая строка, 4 - перевод строки. В ОЗУ - 4426.
111336$:.WORD	2 ; Не используется. В ОЗУ - 4430.
111340$:.WORD	4 ; Не используется. В ОЗУ - 4432.
111342$:.WORD	4 ; 0 - разрешение, 4 - запрет вызова 10730. В ОЗУ - 4434.
111344$:.WORD	4412 ; Режим стрелок.4404-приложения,4412-обычный.В ОЗУ - 4436.
111346$:.WORD	1 ; Не используется. В ОЗУ - 4440.
111350$:.WORD	2 ; 0 - выключить, 2 - включить курсор. В ОЗУ - 4442.
111352$:.WORD	177600 - очищаемые биты при приеме символа. В ОЗУ - 4444.
111354$:.WORD	12 ; Высота курсора. В ОЗУ - 4446.
111356$:.WORD	0 ; Смещение начала курсора в видеопамяти. В ОЗУ - 4450.
111360$:.WORD	0 ; Атрибуты строки по умолчанию. В ОЗУ - 4452.
111362$:.WORD	7544  ; Адрес таблицы КОИ-7 Н0. В ОЗУ - 4454.
111364$:.WORD	10204 ; Адрес таблицы доп.символов. В ОЗУ - 4456.
111366$:.WORD	7704  ; Адрес таблицы КОИ-7 Н1. В ОЗУ - 4460.
111370$:.WORD	10044 ; Адрес таблицы псевдографики. В ОЗУ - 4462.
111372$:.WORD	0 ; Адрес своей таблицы1. В ОЗУ - 4464.
111374$:.WORD	0 ; Код вызова своей таблицы1. В ОЗУ - 4466.
111376$:.WORD	0 ; Адрес своей таблицы2. Рисунки с 32000. В ОЗУ - 4470.
111400$:.WORD	0 ; Код вызова своей таблицы2. В ОЗУ - 4472.
111402$:.WORD	11 ; 0 - плавный, 11 - дискретный рулон. В ОЗУ - 4474.
111404$:.WORD	2 ; 0-двойн.,2-норм.ширина симв.в тек.строке. В ОЗУ - 4476.
111406$:.BYTE	1 ; 0 - норм.(VT-100),<>0 - совмест.(VT-52)режим.В ОЗУ - 4500.
111407$:.BYTE	0 ; 0-запрет,<>0-разреш.обработки польз.клавиш. В ОЗУ - 4501.
111410$:.WORD	7544 ; Адрес текущей таблицы GL. В ОЗУ - 4502.
111412$:.WORD	7704 ; Не используется. В ОЗУ - 4504.
111414$:.WORD	7544  ; Адрес таблицы G0. В ОЗУ - 4506.
111416$:.WORD	7704  ; Адрес таблицы G1. В ОЗУ - 4510.
111420$:.WORD	10204 ; Адрес таблицы G2. В ОЗУ - 4512.
111422$:.WORD	10044 ; Адрес таблицы G3. В ОЗУ - 4514.
111424$:.WORD	0 ; Координата курсора X. В ОЗУ - 4516.
111426$:.WORD	0 ; Координата курсора Y. В ОЗУ - 4520.
111430$:.WORD	2 ; 0 - инверсия, 2 - без инверсии. В ОЗУ - 4522.
111432$:.WORD	12 ; 0 - подчеркивание, 12 - без подчеркивания. В ОЗУ - 4524.
111434$:.WORD	0 ; Адрес таблицы для вывода одного символа. В ОЗУ - 4526.
111436$:.WORD	125252 ; 0-мигание,52525-яркость,125252-без ярк. В ОЗУ-4530.
111440$:.WORD	0 ; Значение ячейки 4530 в режиме мигания. В ОЗУ - 4532.
111442$:.WORD	4 ; 0 - относительный, 4 - обычный отсчет. В ОЗУ - 4534.
111444$:.WORD	4 ; 0 - разрешение, 4 - запрет вызова 10724. В ОЗУ - 4536.
111446$:.WORD	0 ; 0 - автопереход, 12 - нет автоперехода. В ОЗУ - 4540.

; Блок начальных значений параметров2, расположенных в ОЗУ в 11004-11051.
111450$:.WORD	0 ; 0-нормальный режим,33-ESC,220-DSC,233-CSI. В ОЗУ - 11004.
111452$:.WORD	77774 ; Начальное значение SP. В ОЗУ - 11006.
111454$:.WORD	0 ; Адр.посл.видеостр.в нов.стр.после скроллинга. В ОЗУ-11010.
111456$:.WORD	116700 ; Адрес начала видео первой доп.строки. В ОЗУ - 11012.
111460$:.WORD	120650 ; Адрес начала видео второй доп.строки. В ОЗУ - 11014.
111462$:.WORD	77777 ; Счетчик ожидания гашения экрана. В ОЗУ - 11016.
111464$:.BYTE	3 ; Счетчик ожидания гашения экрана. В ОЗУ - 11020.
111465$:.BYTE	2 ; Счетчик мигания курсора. В ОЗУ - 11021.
111466$:.BYTE	0 ; 0-запрет,<>0-разреш.мигания палитры/курсора. В ОЗУ - 11022.
111467$:.BYTE	0 ; Режим палитры/курсора. В ОЗУ - 11023.
111470$:.BYTE	13 ; Текущий цвет мигания. В ОЗУ - 11024.
111471$:.BYTE	0 ; Кол-во видеострок для скроллинга. В ОЗУ - 11025.
111472$:.WORD	17472 ; Адр.перв.строки рулона в табл.адр.строк. В ОЗУ - 11026.
111474$:.WORD	15576 ; Адр.посл.строки рулона в табл.адр.строк. В ОЗУ - 11030.
111476$:.WORD	0 ; Начальная строка зоны рулона. В ОЗУ - 11032.
111500$:.WORD	27 ; Конечная строка зоны рулона. В ОЗУ - 11034.
111502$:.WORD	0 ; Скэн-код последней нажатой клавиши. В ОЗУ - 11036.
111504$:.BYTE	0 ; <>0 - режим СТОП-КАДР. В ОЗУ - 11040.
111505$:.BYTE	0 ; <>0 - режим СУ. В ОЗУ - 11041.
111506$:.BYTE	0 ; <>0 - режим фиксации. В ОЗУ - 11042.
111507$:.BYTE	0 ; <>0 - режим ВР. В ОЗУ - 11043.
111510$:.BYTE	0 ; 0 - ЛАТ, <>0 - РУС. В ОЗУ - 11044.
111511$:.BYTE	0 ; 0 - верхний, <>0 - нижний алфавит. В ОЗУ - 11045.
111512$:.BYTE	0 ; 0 - цифровая, <>0 - ДКЛ. В ОЗУ - 11046.
111513$:.BYTE	0
111514$:.BYTE	0
111515$:.BYTE	0

; Начальная точка запуска
111516$:MOV	#100000,SP	; Установить указатель стека
	MOV	@SP,-(SP)	; Положить в стек адрес точки пуска (111516)
	MOV	@SP,-(SP)	; Положить в стек адрес точки пуска (111516)
	RESET
	MOV	#530.,R0	; R0 = кол-во строк для регенерации
	CLR	R1		; R1 = начальное значение для регенерации
	MOV	#13474,R2	; R2 = адрес конца таблицы регенерации (наб.0)
111542$:MOV	R1,-(R2)	; Заполнение таблицы регенерации
	ADD	#2400,R1	; Следующее значение для регенерации
	SOB	R0,111542$	; Цикл заполнения таблицы, после цикла R0 = 0
	MOV	#340,R3		; R3 = значение PSW в векторе прерывания
	MOV	#16.,R2		; R2 = кол-во элементов палитры и векторов
	MOV	R2,R1		; R1 = кол-во элементов палитры и векторов
111564$:MOVB	R0,@#167772	; (167772) - очередной номер регистра палитры
	CLRB	@#167773	; Очистить регистр палитры
	MOV	@SP,(R0)+	; Значение PC в векторе равно 111516
	MOV	R3,(R0)+	; Значение PSW в векторе равно 340
	SOB	R2,111564$	; Цикл по рег.палитры и векторам (0-77)
	TST	(R0)+		; R0 = 102
	MOV	R3,@R0		; (102) = 340
	SUB	R1,R0		; R0 = 62
	MOV	#110074$,-(R0)	; (60) = 110074 (вектор прерыв. от клавиатуры)
	CALL	106100$		; Начальная установка табуляторов (244-264)
	MOV	#10644,R2	; R2 = таблица вызовов подпрограмм пользователя
	MOV	#207,R1		; R1 = код команды RETURN (RTS PC)
	MOV	#27,R0		; R0 = кол-во элементов таблицы вызовов
111634$:MOV	R1,(R2)+	; Заполнение таблицы
	MOV	R1,(R2)+
	SOB	R0,111634$	; Цикл заполнения таблицы (10644-10777)
	MOV	#103302$,(R2)+	; (11000) = 103302 (заглушка DSC)
	MOV	#111002$,R1	; R1 = адрес начальных значений параметров1
	MOV	#4074,R0	; R0 = адрес параметров1 в ОЗУ
	MOV	#223,R2		; R2 = размер параметров1 в словах
	CALL	105614$		; Передача параметров1 из ПЗУ в ОЗУ (4074-4541)
	MOV	#117236$,R0	; R0 = таблица символов КОИ-7 Н0
	MOV	#7544,R1        ; R1 = адрес таблицы КОИ-7 Н0 в ОЗУ
	MOV	#60,R2		; R2 = размер таблицы символов
	MOV	#117376$,R3	; R3 = таблица дополнительных символов
	MOV	#10204,R4	; R4 = адрес таблицы доп.символов в ОЗУ
111712$:MOV	@R0,140(R1)	; Передать в таблицу КОИ-7 Н1
	MOV	@R0,300(R1)	; Передать в таблицу псевдографики
	MOV	(R0)+,(R1)+	; Передать в таблицу КОИ-7 Н0
	MOV	(R3)+,(R4)+	; Передать в таблицу доп.символов
	SOB	R2,111712$
	MOV	#117576$,R1	; R1 = таблица символов КОИ-7 Н1
	MOV	#7744,R0	; R0 = адрес таблицы КОИ-7 Н1 в ОЗУ
	MOV	#40,R2		; R2 = размер таблицы символов
	CALL	105614$		; Передать в ОЗУ
	MOVB	#261,7710	; Заменить символ с кодом 36 на знак ден.ед.
	MOV	#117536,R0	; R0 = таблица символов псевдографики
	MOV	#10143,R1	; R1 = адрес таблицы псевдографики в ОЗУ
	MOV	#40,R2		; R2 = размер таблицы символов
111772$:MOVB	(R0)+,(R1)+	; Передать в ОЗУ
	SOB	R2,111772$
	CALL	105622$		; Перед.в ОЗУ шрифтов и уст.парам.для 80 симв.
	MOV	#35600,R0	; Адрес в ОЗУ строки типа дисплея
	MOV	#107572$,R1	; Адрес строки типа дисплея
	MOV	#8.,R2		; Размер строки
112016$:MOVB	(R1)+,(R0)+	; Копирование в ОЗУ
	SOB	R2,112016$
	MOV	#40000,160000	; Адрес начала неадресуемой памяти
	TST	(R2)+		; R2 = 2 - количество блоков
112032$:MOV	#60000,R1	; R1 = размер блока в словах
112036$:CLR	160002		; Очистка видеопамяти
	INC	160000		; Переход к следующему адресу
	SOB	R1,112036$	; Цикл по кол-ву слов блока
	SOB	R2,112032$	; Цикл по блокам
	MOV	#240.,R0		; R0 = 240. - кол-во видеострок
	MOV	#40000,R4	; R4 = адрес начала видеопамяти
	MOV	R4,160000	; Поместить адрес начала в регистр адреса
	MOV	R4,R5		; R5 = адрес начала видеопамяти
	MOV	#17474,R3	; R3 = адрес конца таблицы адресов набора 0
112074$:MOV	R4,-(R3)	; Занести адрес видео в таблицу адресов
	MOV	R4,-(R3)
	ADD	#100.,R4	; Перейти к следующему адресу видео
	SOB	R0,112074$	; Цикл по количеству строк
	MOV	#111450$,R1	; R1 = адрес начальных значений параметров2    
	MOV	#11004,R0       ; R0 = адрес параметров2 в ОЗУ                 
	MOV	#30,R2          ; R2 = размер параметров2 в словах             
	CALL	105614$         ; Перед. параметров2 из ПЗУ в ОЗУ (11004-11063)
	CALL	105566$		; Сохранить текущие значения дисплея
	MOV	#104,R0		; R0 = адрес ОЗУ таблицы параметров текст.строк
	MOV	#1000.,R1	; R1 = размер текст.строки в словах видеопамяти
	MOV	#24.,R2		; R2 = кол-во текстовых строк
	MOV	R5,R3		; R3 = адрес начала видеопамяти
112150$:MOV	R3,(R0)+	; Адрес начала видео текст.строки
	MOV	4452,(R0)+	; Параметры строки
	ADD	R1,R3		; Перейти к адресу видео для след.строки
	SOB	R2,112150$	; Цикл по кол-ву текстовых строк
	CMP	(R2)+,(R2)+	; R2 = 4 - адрес вектора TRAP4
	MOV	@R2,-(SP)	; Положить текущее значение вектора в стек
	MOV	#112176$,@R2	; Новое значение вектора
	JMP	120000$		; На инициализацию следующего банка ПЗУ
112176$:CMP	(SP)+,(SP)+	; Банка ПЗУ нет, убрать из стека PC и PSW
	MOV	(SP)+,@R2	; Восстановить значение вектора 4
	CALL	101766$		; Действия при смене координат курсора
	MOV	#100,@#177560	; Разрешить прерывания от клавиатуры
	MOV	#21,R0		; Команда для включения индик."Лат.регистр"
	MOV	#102350$,-(SP)	; Адрес начала обработки поступающих символов
	CLR	-(SP)		; При возврате PSW = 0 (прер.разрешены)
	MOV	#110774$,-(SP)	; Адрес возврата для вкл.инд."Лат.регистр"
	JMP	100464$		; На обработку таймера (палитра)

; Таблица шрифтов (знакогенератор). Всего 256 символов.
; Каждый занимает 10 байт. Размер рисунка 8x10.
112236$:.BYTE	000,000,000,000,000,000,000,000,000,000
	.BYTE	000,000,010,034,076,034,010,000,000,000
	.BYTE	000,052,024,052,024,052,024,052,000,000
	.BYTE	000,104,104,174,104,104,076,010,010,010
	.BYTE	000,100,100,100,170,017,010,017,010,010
	.BYTE	000,044,064,054,044,010,010,010,010,017
	.BYTE	000,042,042,024,010,016,004,004,004,004
	.BYTE	020,020,020,020,360,000,000,000,000,000
	.BYTE	000,000,000,000,360,020,020,020,020,020
	.BYTE	000,000,000,000,037,020,020,020,020,020
	.BYTE	020,020,020,020,037,000,000,000,000,000
	.BYTE	020,020,020,020,377,020,020,020,020,020
	.BYTE	377,000,000,000,000,000,000,000,000,000
	.BYTE	000,000,377,000,000,000,000,000,000,000
	.BYTE	000,000,000,000,377,000,000,000,000,000
112464$:.BYTE	000,000,000,000,000,000,000,000,000,000
	.BYTE	000,000,000,000,000,000,000,000,377,000
	.BYTE	020,020,020,020,037,020,020,020,020,020
	.BYTE	020,020,020,020,360,020,020,020,020,020
	.BYTE	020,020,020,020,377,000,000,000,000,000
	.BYTE	000,000,000,000,377,020,020,020,020,020
	.BYTE	020,020,020,020,020,020,020,020,020,020
	.BYTE	000,001,004,020,100,020,004,001,177,000
	.BYTE	000,100,020,004,001,004,020,100,177,000
	.BYTE	000,000,000,177,024,024,024,044,000,000
	.BYTE	000,001,004,177,010,177,020,100,000,000
	.BYTE	000,006,011,034,010,074,112,061,000,000
	.BYTE	000,000,000,000,030,030,000,000,000,000
	.BYTE	000,000,000,000,177,101,101,177,000,000
	.BYTE	010,004,034,042,101,177,101,101,000,000
	.BYTE	010,020,034,042,101,177,101,101,000,000
	.BYTE	062,114,034,042,101,177,101,101,000,000
	.BYTE	101,000,034,042,101,177,101,101,000,000
	.BYTE	010,000,034,042,101,177,101,101,000,000
	.BYTE	020,010,177,100,176,100,100,177,000,000
	.BYTE	010,020,177,100,176,100,100,177,000,000
	.BYTE	101,000,177,100,176,100,100,177,000,000
	.BYTE	020,010,076,010,010,010,010,076,000,000
	.BYTE	004,010,076,010,010,010,010,076,000,000
	.BYTE	010,024,076,010,010,010,010,076,000,000
	.BYTE	101,000,076,010,010,010,010,076,000,000
	.BYTE	062,114,141,121,111,105,103,101,000,000
	.BYTE	000,002,034,105,111,121,034,040,000,000
	.BYTE	000,000,034,042,054,042,062,054,040,100
	.BYTE	000,034,042,111,125,121,125,111,042,034
	.BYTE	000,000,011,024,110,024,011,000,000,000
	.BYTE	000,030,044,030,000,000,000,000,000,000
	.BYTE	000,010,010,177,010,010,000,177,000,000
	.BYTE	030,044,010,020,074,000,000,000,000,000
	.BYTE	070,004,030,004,070,000,000,000,000,000
	.BYTE	010,030,010,010,000,000,000,000,000,000
	.BYTE	034,042,042,034,076,000,000,000,000,000
	.BYTE	000,000,050,024,012,024,050,000,000,000
	.BYTE	020,062,024,010,026,052,036,002,000,000
	.BYTE	020,062,024,010,020,054,022,004,036,000
	.BYTE	160,010,061,012,164,012,025,051,037,001
	.BYTE	000,022,000,072,022,022,022,072,002,034
	.BYTE	000,000,000,000,000,000,377,000,000,000
	.BYTE	377,377,377,377,377,377,377,377,377,377
	.BYTE	000,010,010,010,010,010,000,010,000,000
	.BYTE	000,022,022,022,000,000,000,000,000,000
	.BYTE	000,061,112,064,010,026,051,106,000,000
	.BYTE	000,024,010,020,000,000,000,000,000,000
	.BYTE	000,004,010,020,020,020,010,004,000,000
	.BYTE	000,040,020,010,010,010,020,040,000,000
	.BYTE	000,000,042,024,177,024,042,000,000,000
	.BYTE	000,000,010,010,177,010,010,000,000,000
	.BYTE	000,000,000,000,000,000,030,030,010,020
	.BYTE	000,101,101,101,111,111,125,042,000,000
	.BYTE	000,000,000,000,000,000,030,030,000,000
	.BYTE	000,001,002,004,010,020,040,100,000,000
	.BYTE	000,034,042,105,111,121,042,034,000,000
	.BYTE	000,010,030,050,010,010,010,076,000,000
	.BYTE	000,006,012,022,042,177,002,002,000,000
	.BYTE	000,177,101,002,004,010,020,040,000,000
	.BYTE	000,000,030,030,000,000,030,030,000,000
	.BYTE	000,000,030,030,000,000,030,030,010,020
	.BYTE	000,004,010,020,040,020,010,004,000,000
	.BYTE	000,000,000,177,000,177,000,000,000,000
	.BYTE	000,040,020,010,004,010,020,040,000,000
	.BYTE	000,010,024,042,101,177,101,101,000,000
	.BYTE	000,076,010,010,010,010,010,076,000,000
	.BYTE	000,102,104,110,160,110,104,102,000,000
	.BYTE	000,100,100,100,100,100,100,177,000,000
	.BYTE	000,101,143,125,111,101,101,101,000,000
	.BYTE	000,101,141,121,111,105,103,101,000,000
	.BYTE	000,101,101,101,042,042,024,010,000,000
	.BYTE	000,000,000,000,177,000,000,000,000,000
	.BYTE	062,114,000,000,000,000,000,000,000,000
	.BYTE	000,000,000,102,104,170,104,102,000,000
	.BYTE	000,000,000,143,125,111,101,101,000,000
	.BYTE	024,111,103,105,111,121,141,101,000,000
	.BYTE	000,100,040,020,010,004,002,001,000,000
	.BYTE	000,076,002,002,002,002,002,076,000,000
	.BYTE	000,010,024,042,000,000,000,000,000,000
	.BYTE	000,000,000,000,000,000,000,177,000,000
	.BYTE	000,014,004,002,000,000,000,000,000,000
	.BYTE	000,100,100,134,142,101,102,174,000,000
	.BYTE	000,001,001,035,043,101,041,037,000,000
	.BYTE	000,010,000,070,010,010,010,076,000,000
	.BYTE	000,100,100,102,104,170,104,102,000,000
	.BYTE	000,000,000,101,101,042,024,010,000,000
	.BYTE	000,007,010,010,060,010,010,007,000,000
	.BYTE	000,020,020,020,000,020,020,020,000,000
	.BYTE	000,160,010,010,006,010,010,160,000,000
	.BYTE	000,101,042,024,010,024,042,101,000,000
	.BYTE	014,022,030,044,042,022,014,044,030,000
	.BYTE	000,000,000,042,046,052,062,042,000,000
	.BYTE	000,024,010,042,046,052,062,042,000,000
	.BYTE	000,101,101,042,024,010,010,010,000,000
	.BYTE	000,000,000,007,011,021,021,141,000,000
	.BYTE	000,177,002,004,010,020,040,177,000,000
	.BYTE	000,000,000,177,010,010,010,010,000,000
	.BYTE	000,000,000,174,102,174,102,174,000,000
	.BYTE	000,000,000,111,111,111,111,177,000,000
	.BYTE	000,000,000,052,052,052,052,077,001,000
	.BYTE	000,177,100,100,100,100,100,100,000,000
	.BYTE	000,101,103,105,111,121,141,101,000,000
	.BYTE	000,037,020,020,020,020,020,037,000,000
	.BYTE	000,007,011,021,021,021,021,041,000,000
	.BYTE	000,052,052,052,052,052,052,077,001,000
	.BYTE	000,002,034,105,111,111,121,034,040,000
	.BYTE	010,042,034,042,101,177,101,101,000,000
	.BYTE	010,042,177,100,176,100,100,177,000,000
	.BYTE	000,010,000,010,010,060,101,076,000,000
	.BYTE	040,010,076,101,101,101,101,076,000,000
	.BYTE	002,010,076,101,101,101,101,076,000,000
	.BYTE	010,042,076,101,101,101,101,076,000,000
	.BYTE	061,116,076,101,101,101,101,076,000,000
	.BYTE	101,000,076,101,101,101,101,076,000,000
	.BYTE	000,077,110,110,117,110,110,077,000,000
	.BYTE	000,170,100,170,100,117,010,017,010,010
	.BYTE	000,070,100,100,070,016,011,016,011,011
	.BYTE	000,077,110,110,117,170,110,117,000,000
	.BYTE	000,074,102,100,100,100,102,074,010,060
	.BYTE	040,010,101,101,101,101,101,076,000,000
	.BYTE	002,010,101,101,101,101,101,076,000,000
	.BYTE	010,024,101,101,101,101,101,076,000,000
	.BYTE	101,000,101,101,101,101,101,076,000,000
	.BYTE	101,000,101,101,042,010,010,010,000,000
	.BYTE	040,010,000,074,102,076,102,075,000,000
	.BYTE	002,010,000,074,102,076,102,075,000,000
	.BYTE	010,042,000,074,102,076,102,075,000,000
	.BYTE	161,116,000,074,102,076,102,075,000,000
	.BYTE	000,101,000,074,102,076,102,075,000,000
	.BYTE	000,010,000,074,102,076,102,075,000,000
	.BYTE	000,000,000,066,111,077,110,067,000,000
	.BYTE	000,000,000,076,101,100,101,076,010,040
	.BYTE	040,010,000,076,101,177,100,076,000,000
	.BYTE	002,010,000,076,101,177,100,076,000,000
	.BYTE	010,042,000,076,101,177,100,076,000,000
	.BYTE	000,101,000,076,101,177,100,076,000,000
	.BYTE	040,010,000,070,010,010,010,076,000,000
	.BYTE	002,010,000,070,010,010,010,076,000,000
	.BYTE	010,042,000,070,010,010,010,076,000,000
	.BYTE	000,101,000,070,010,010,010,076,000,000
	.BYTE	161,116,000,136,141,101,101,101,000,000
	.BYTE	040,010,000,076,101,101,101,076,000,000
	.BYTE	002,010,000,076,101,101,101,076,000,000
	.BYTE	010,042,000,076,101,101,101,076,000,000
	.BYTE	161,116,000,076,101,101,101,076,000,000
	.BYTE	000,101,000,076,101,101,101,076,000,000
	.BYTE	000,000,000,066,111,117,110,067,000,000
	.BYTE	000,076,101,060,010,010,000,010,000,000
	.BYTE	040,010,000,101,101,101,103,075,000,000
	.BYTE	002,010,000,101,101,101,103,075,000,000
	.BYTE	010,042,000,101,101,101,103,075,000,000
	.BYTE	000,101,000,101,101,101,101,075,000,000
	.BYTE	000,101,000,101,101,101,077,001,001,076
	.BYTE	000,010,000,010,010,010,010,010,000,000
	.BYTE	000,010,076,111,110,111,076,010,000,000
	.BYTE	000,101,101,042,010,076,010,010,000,000
	.BYTE	074,002,076,102,075,000,177,000,000,000
	.BYTE	000,000,000,042,066,052,040,100,000,000
	.BYTE	000,077,111,111,077,011,011,011,000,000
	.BYTE	000,102,000,000,000,000,000,000,000,000
	.BYTE	000,042,042,177,042,177,042,042,000,000
	.BYTE	000,000,101,076,101,101,076,101,000,000
	.BYTE	000,076,101,001,036,040,100,177,000,000
	.BYTE	010,076,111,110,076,011,111,076,010,000
	.BYTE	000,177,100,100,176,001,101,076,000,000
	.BYTE	000,076,101,100,176,101,101,076,000,000
	.BYTE	000,076,101,101,076,101,101,076,000,000
	.BYTE	000,076,101,101,077,001,101,076,000,000
	.BYTE	000,076,101,006,010,010,000,010,000,000
	.BYTE	000,176,101,101,176,101,101,176,000,000
	.BYTE	000,036,041,100,100,100,041,036,000,000
	.BYTE	000,174,042,041,041,041,042,174,000,000
	.BYTE	000,177,100,100,174,100,100,177,000,000
	.BYTE	000,177,100,100,174,100,100,100,000,000
	.BYTE	000,036,041,100,100,117,041,036,000,000
	.BYTE	000,101,101,101,177,101,101,101,000,000
	.BYTE	000,076,101,101,101,101,101,076,000,000
	.BYTE	000,176,101,101,176,100,100,100,000,000
	.BYTE	000,176,101,101,176,102,101,101,000,000
	.BYTE	000,076,101,100,076,001,101,076,000,000
	.BYTE	000,177,010,010,010,010,010,010,000,000
	.BYTE	000,101,101,101,101,101,101,076,000,000
	.BYTE	000,000,000,074,002,076,102,075,000,000
	.BYTE	000,000,000,076,101,100,100,077,000,000
	.BYTE	000,000,000,076,101,177,100,076,000,000
	.BYTE	000,036,041,040,174,040,040,040,000,000
	.BYTE	000,000,000,075,102,074,100,076,101,076
	.BYTE	000,100,100,136,141,101,101,101,000,000
	.BYTE	000,002,000,036,002,002,002,002,102,074
	.BYTE	000,070,010,010,010,010,010,076,000,000
	.BYTE	000,000,000,166,111,111,111,111,000,000
	.BYTE	000,000,000,136,141,101,101,101,000,000
	.BYTE	000,000,000,076,101,101,101,076,000,000
	.BYTE	000,000,000,176,101,141,136,100,100,100
	.BYTE	000,000,000,076,101,103,075,001,001,001
	.BYTE	000,000,000,136,141,100,100,100,000,000
	.BYTE	000,000,000,037,040,036,001,176,000,000
	.BYTE	000,040,040,170,040,040,041,036,000,000
	.BYTE	000,000,000,102,102,102,102,075,000,000
	.BYTE	000,000,000,101,101,111,111,042,000,000
	.BYTE	000,000,000,101,042,034,042,101,000,000
	.BYTE	000,000,000,101,101,101,077,001,001,076
	.BYTE	000,000,000,177,006,010,060,177,000,000
	.BYTE	000,000,000,106,111,171,111,106,000,000
	.BYTE	000,001,036,040,136,141,101,076,000,000
	.BYTE	000,000,000,036,042,042,042,177,101,000
	.BYTE	000,000,010,076,111,111,111,076,010,010
	.BYTE	000,000,000,177,100,100,100,100,000,000
	.BYTE	000,000,000,102,102,102,102,177,001,000
	.BYTE	000,000,000,101,101,177,101,101,000,000
	.BYTE	000,000,000,177,101,101,101,101,000,000
	.BYTE	000,000,000,077,101,077,041,101,000,000
	.BYTE	000,000,000,111,111,076,111,111,000,000
	.BYTE	000,000,000,100,100,176,101,176,000,000
	.BYTE	000,000,000,101,101,161,111,161,000,000
	.BYTE	000,000,000,076,101,016,101,076,000,000
	.BYTE	000,000,000,076,101,037,101,076,000,000
	.BYTE	000,000,000,101,101,077,001,001,000,000
	.BYTE	000,000,000,140,040,076,041,076,000,000
	.BYTE	000,106,111,111,171,111,111,106,000,000
	.BYTE	000,177,100,100,176,101,101,176,000,000
	.BYTE	000,102,102,102,102,102,102,177,001,000
	.BYTE	000,036,042,042,042,042,042,177,101,000
	.BYTE	000,010,076,111,111,111,076,010,000,000
	.BYTE	000,177,101,101,101,101,101,101,000,000
	.BYTE	000,077,101,101,077,041,101,101,000,000
	.BYTE	000,101,101,101,077,001,101,076,000,000
	.BYTE	000,111,111,111,076,111,111,111,000,000
	.BYTE	000,100,100,100,176,101,101,176,000,000
	.BYTE	000,101,101,101,161,111,111,161,000,000
	.BYTE	000,076,101,001,006,001,101,076,000,000
	.BYTE	000,111,111,111,111,111,111,177,000,000
	.BYTE	000,076,101,001,037,001,101,076,000,000
	.BYTE	000,101,101,101,077,001,001,001,000,000
	.BYTE	000,140,040,040,076,041,041,076,000,000
	.BYTE	000,177,002,004,036,001,101,076,000,000
	.BYTE	000,076,101,117,121,117,100,077,000,000
	.BYTE	000,076,101,101,101,111,105,076,001,000
	.BYTE	000,037,004,004,004,004,104,070,000,000
	.BYTE	000,070,104,104,070,105,102,075,000,000

; Номера символов в таблице шрифта для набора КОИ7-Н0. Коды 32-127.
117236$:.BYTE	017,073,074,260,263,075,377,076
	.BYTE	077,100,101,102,103,127,105,106
	.BYTE	107,110,262,373,111,264,265,112
	.BYTE	266,267,113,114,115,116,117,270
	.BYTE	374,120,271,272,273,274,275,276
	.BYTE	277,121,376,122,123,124,125,300
	.BYTE	301,375,302,303,304,305,126,104
	.BYTE	151,155,157,166,134,135,136,137
	.BYTE	140,306,141,307,142,310,311,312
	.BYTE	313,143,314,144,315,316,317,320
	.BYTE	321,322,323,324,325,326,145,327
	.BYTE	330,331,332,146,147,150,130,072

; Номера символов в таблице шрифта для доп.символов. Коды 32-127.
117376$:.BYTE	072,251,252,032,017,253,017,152
	.BYTE	261,054,254,055,017,017,017,017
	.BYTE	056,057,060,061,017,255,256,033
	.BYTE	017,062,063,064,065,066,017,174
	.BYTE	035,036,172,037,040,041,205,206
	.BYTE	042,043,173,044,045,046,047,050
	.BYTE	017,051,175,176,177,200,201,202
	.BYTE	171,207,210,211,212,213,017,053
	.BYTE	214,215,216,217,220,221,222,223
	.BYTE	224,225,226,227,230,231,232,233
	.BYTE	017,234,235,236,237,240,241,242
	.BYTE	052,244,245,246,247,250,017,072

; Номера символов в таблице шрифта для псевдографики. Коды 95-126.
117536$:.BYTE	017,001,002,003,203,204,004,056
	.BYTE	057,005,006,007,010,011,012,013
	.BYTE	014,015,016,071,020,021,022,023
	.BYTE	024,025,026,027,030,031,032,033

; Номера символов в таблице шрифта для набора КОИ7-Н1. Коды 64-127.
117576$:.BYTE	333,306,334,340,335,310,336,337
	.BYTE	330,153,154,131,156,132,341,320
	.BYTE	342,343,321,307,160,331,344,161
	.BYTE	345,346,347,162,350,163,351,352
	.BYTE	353,120,354,355,356,274,357,164
	.BYTE	151,165,133,122,167,124,277,300
	.BYTE	360,361,301,272,304,362,363,271
	.BYTE	364,365,366,367,370,170,371,072

	.=120000
120000$:
	.END

