From Felixl.com
; *********************************************************
; * *
; * ДРАЙВЕР КЛАВИАТУРЫ *
; * *
; * Адреса 103554 - 107743 *
; * *
; *********************************************************
; П/п начальной инициализации
103554$:JSR R5,173730$ ; Очистка ОЗУ
.WORD 7176,1762 ; Начальный адрес - 7176, число слов - 1762
103564$:TST @#177702 ; Сбросить готовность рег.сост. клавиатуры
MOV #175412$,@#300 ; Вектор прерываний от клавиатуры
MOV #200,@#302
MOV #100,@#177700 ; Разрешить прерывания от клавиатуры
MOV #175540$,@#324 ; Вектор прерываний от канала 0 (источник)
MOV #200,@#326
BIS #1,@#177076 ; Разрешить прерывания от канала 0 (источник)
CALL 104064$ ; Настройка начальных адресов буферов
MOV #11140,@#13140 ; Нач. адрес буфера клавиш К1 - К25
MOV #7234,@#7214 ; Текущая таблица - табл. основного регистра
MOV #7234,@#7216
MOVB #40,@#7221 ; Заглавные буквы
MOVB #16,@#7222 ; Латинский регистр
MOVB #17,@#7223
; Заполнение таблиц раскладки клавиатуры
MOV #105520$,R1 ; R1 = нач. адрес данных для таблиц раскладки
MOV #7234,R0 ; R0 = нач. адрес таблиц раскладки
MOV #5,R4 ; R4 = число таблиц раскладки
103720$:MOV #130,R2 ; R2 = число элементов таблицы
MOV R0,R3 ; R3 = адрес текущей заполняемой таблицы
103726$:MOVB (R1)+,(R3)+ ; Пересылка
CLRB (R3)+
SOB R2,103726$
MOV #400,R2 ; R2 = номер первой регистровой клавиши
103740$:MOVB (R1)+,R3
BEQ 103762$ ; Это строка или конец данных для тек. табл.?
BMI 103756$ ; Переход к следующей регистровой комбинации ?
DEC R3 ; Регистровая клавиша (в R3 - смещение)
ASL R3
ADD R0,R3
MOV R2,@R3
103756$:INC R2
BR 103740$
103762$:MOVB (R1)+,R3
BEQ 104004$ ; Это конец таблицы ?
DEC R3 ; Строка (адрес в R1,смещение в табл. в R3)
ASL R3
ADD R0,R3
MOV R1,@R3
103776$:TSTB (R1)+ ; Прогон строки
BNE 103776$
BR 103762$
104004$:ADD #260,R0 ; Переход к следующей таблице
SOB R4,103720$
CALL 113670$ ; Установить систему команд VT-52
MOVB #2,@#7226 ; Интервал автоповтора
RETURN
; П/п ПАУЗА (ожидание нажатия любой клавиши)
104026$:CLR @#177700 ; Запретить прерывания от клавиатуры
104032$:TSTB @#177700 ; Ожидание нажатия или отжатия клавиши
BPL 104032$
TSTB @#177702 ; Клавиша отжата ?
BMI 104032$ ; Да
MOV #100,@#177700 ; Разрешить прерывания от клавиатуры
104054$:JSR R5,173730$ ; Очистка буферов клавиатуры
.WORD 2240,14
; Установка указателей на начало буферов
104064$:MOV #2260,@#7176
MOV #2260,@#7200
MOV #2240,@#7202
MOV #2240,@#7204
MOV #2200,@#7206
MOV #2200,@#7210
RETURN
; П/п обслуживания запросов EMT 22 и EMT 24 (ввод символа с ожиданием)
104132$:TRAP 2 ; Считывание символа с буфера в регистр R0
ADD @#7230,PC ; Символ есть в буфере ?
BR 104152$ ; Да
CLR @#7230
TRAP 0 ; Запуск диспетчера процессов
BR 104132$
104152$:MOV R0,2(SP)
RETURN
; П/п заноса ASCII-символов и адресов строк в буфер
104160$:MOV R0,@7210 ; Занести символ в буфер
ADD #2,@#7210 ; Продвинуть указатель
BIC #40,@#7210 ; Корректировка указателя (циклический буфер)
ADD @#7230,PC
RETURN
104206$:TRAP 2
RETURN
; *** ОСНОВНАЯ П/П ОБСЛУЖИВАНИЯ КЛАВИАТУРЫ ***
; Точка выхода из п/п обслуживания клавиатуры
104212$:CLR @#7060 ; Очистить флаг вызова п/п
CLRB @#7227 ; Очистить ячейку значения автоповтора
104222$:ADD @#7230,PC
RETURN
104230$:TRAP 2
RETURN
104234$:TSTB @7202 ; Есть скэн-коды в буфере автоповтора ?
BEQ 104212$ ; Нет
TSTB @#7227 ; Истекло время автоповтора ?
BNE 104222$ ; Нет
MOV @#7202,R3 ; R3 = указатель на буфер автоповтора(чтение)
104254$:MOVB (R3)+,R0 ; Прочесть очередной скэн-код
BNE 104336$ ; Он существует
104260$:BIC #20,R3 ; Подправить значение указателя
CMP R3,@#7204 ; Буфер просмотрен до конца ?
BNE 104254$ ; Нет
MOVB @#7226,@#7227
DEC @#7060
BR 104222$
; Точка входа в п/п обслуживания клавиатуры из диспетчера процессов
104306$:MOV @#7176,R1 ; R1 = указатель на буфер скэн-кодов
MOVB @R1,R0 ; Прочесть скэн-код
BEQ 104234$ ; Скэн-кода нет
DEC @#7060 ; Уменьшить счетчик (флаг вызова)
CLRB (R1)+ ; Вычеркнуть скэн-код из буфера
BIC #10,R1 ; Подправить значение указателя
MOV R1,@#7176
CLR R3 ; В данном случае R3 является индикатором
; того, что скэн-код был прочитан из основ-
; ного буфера (R3=0) или из буфера авто-
; повтора (R3<>0).
104336$:MOV R0,R2 ; R2 = скэн-код
BMI 104516$ ; Это скэн-код отжатия
ASHC #74,R0 ; Извлечение ASCII-кода
MOVB 105510$(R0),R1
MOV R2,R0
SUB R1,R0
ASL R0
ADD @#7214,R0
MOV @R0,R0
MOV R0,R1
SWAB R1
BEQ 104410$ ; Это одиночный ASCII-код
ASRB R1
BNE 104434$ ; Это адрес ASCIZ-строки
MOVB R0,R0 ; Переход на обслуживание регистровых клавиш
ASL R0
JMP @104714$(R0)
104410$:TST @#7232 ; Разрешена передача одиночных символов ?
BNE 104510$ ; Нет
TSTB R0 ; Символ в диапазоне 128-255 ?
BMI 104434$ ; Да
CMP R0,#100 ; Это символы @,A-Z,[,\,],_ ?
BLO 104434$ ; Нет
BISB @#7220,R0 ; Установка заглавные/строчные буквы
104434$:TST R3 ; Это символ из буфера автоповтора ?
BNE 104472$ ; Да
TSTB @7202 ; Буфер автоповтора пуст ?
BNE 104454$ ; Нет
MOVB #31,@#7227 ; Задать время между нажатием и автоповтором
104454$:MOVB R2,@7204 ; Положить скэн-код в буфер автоповтора
INC @#7204 ; Подправить значение указателя
BIC #20,@#7204
104472$:MOV @#7210,R1 ; R1 = указатель на буфер ASCII-символов
MOV R0,(R1)+ ; Положить символ(адрес строки) в буфер
BIC #40,R1
MOV R1,@#7210
104510$:TST R3 ; Это был символ из буфера автоповтора ?
BNE 104260$ ; Да
104514$:BR 104306$
104516$:MOV @#7212,R0 ; R0 = ожидаемый код отжатия рег. клавиши
BEQ 104614$ ; Регистровая клавиша не была нажата
CMPB R2,R0 ; Коды отжатия совпадают ?
BEQ 104540$ ; Да
104530$:SWAB R0
BEQ 104530$
CMPB R2,R0
BNE 104614$
; Обработка кода отжатия регистровой клавиши
104540$:CLRB R0 ; Очистить байт кода отжатия
SWAB R0
MOV R0,@#7212
CLR R0
CMPB R2,#205 ; Была отжата клавиша НР (Shift) ?
BEQ 104574$ ; Да
MOVB @#7224,R0 ; R0 = ASCII-код, посылаемый при отжатии АЛФ
BEQ 104600$ ; Его нет
CLRB @#7224
BR 104600$
104574$:SWAB @#7220 ; Переменить состояние заглавные/строчные
104600$:MOV @#7216,@#7214 ; Восстановить пред. табл. раскл. клавиатуры
TST R0 ; Есть данные для передачи при отжатии АЛФ ?
BNE 104472$ ; Да
BR 104306$
; Обработка кода отжатия алфавитно-цифровой клавиши
104614$:BIC #177760,R2 ; Оставить биты кода отжатия
MOV @#7202,R1 ; R1 = указатель на буфер автоповтора
104624$:MOVB (R1)+,R0 ; Прочесть скэн-код из буфера автоповтора
BEQ 104644$ ; Он отсутствует
BIC #177760,R0 ; Оставить биты кода отжатия
CMP R0,R2 ; Эти коды совпадают ?
BEQ 104700$ ; Да
MOV R2,R3
BEQ 104306$
104644$:BIC #20,R1
TST R3
BNE 104660$
MOV R1,@#7202
104660$:CMP R1,@#7204 ; Буфер просмотрен до конца ?
BNE 104624$ ; Нет
MOVB #2,@#7226 ; Установить нормальную скорость автоповтора
104674$:JMP 104306$
104700$:CLRB -1(R1) ; Выбросить скэн-код из буфера автоповтора
CLR R2 ; R2 = 0(признак того, что скэн-код обнаружен)
TST R3
BNE 104674$
BR 104644$
; Адреса п/п обслуживания регистровых комбинаций
104714$:.WORD 104766$ ; Нажатие НР (Shift)
.WORD 105044$ ; Нажатие АЛФ
.WORD 105116$ ; Нажатие ГРАФ (Graph)
.WORD 105150$ ; Нажатие УПР (Ctrl)
.WORD 105160$ ; Нажатие ФИКС (Lock)
.WORD 104734$ ; Установка режимов (УСТ)
.WORD 105234$ ; Режим ИСУ (УПР+ПОМ)
.WORD 104746$ ; Печать экрана (УПР+ИСП)
; П/п обслуживания нажатия УСТ
104734$:CLR @#7042 ; Адресовать ASCII-коды клавиатуры запросу EMT
INC @#7070 ; Установить флаг вызова меню УСТАНОВКА
BR 104514$
; П/п обслуживания нажатия УПР+ИСП (печать экрана)
104746$:CALL 135704$ ; Печать экрана
MOV @#7216,@#7214
CLR @#7212
BR 104514$
; П/п обслуживания нажатия НР
104766$:TSTB @7202 ; Нажата какая-нибудь алф.-циф. клавиша ?
BEQ 105004$ ; Нет
MOV #401,7226 ; Установить повышенную скорость автоповтора
BR 104514$
105004$:MOV #205,R1 ; R1 = код отжатия НР
MOV #7514,@#7214 ; Текущая табл.-таблица нижнего регистра
105016$:SWAB @#7220 ; Переключить режим заглавные/строчные буквы
105022$:SWAB @#7212
MOVB R1,@#7212
CMPB @#7213,#207 ; Была нажата клавиша ФИКС ?
BEQ 105202$ ; Да
BR 104514$
; П/п обслуживания нажатия АЛФ
105044$:MOVB @#7222,R0 ; R0 = 16(8) или 17(8)
MOVB @#7223,@#7224
SWAB @#7212
MOVB #206,@#7212 ; Код отжатия клавиши АЛФ
CMPB @#7213,#207 ; Была нажата клавиша ФИКС ?
BNE 105112$ ; Нет
CLRB @#7224 ; При отжатии АЛФ не передавать ASCII-кода
MOV @#7216,@#7214
105112$:JMP 104472$
; П/п обслуживания нажатия ГРАФ
105116$:MOV #7774,@#7214 ; Текущая табл.-таблица ГРАФ-регистра
105124$:MOV #206,R1 ; R1 = код отжатия ГРАФ и УПР
105130$:CMP @#7214,@#7216 ; Адрес текущей табл. равен адресу предыдущей ?
BNE 105022$ ; Нет
MOV #7234,@#7214 ; Текущая таблица-таблица основного регистра
BR 105022$
; П/п обслуживания нажатия УПР
105150$:MOV #10254,@#7214 ; Текущая таблица-таблица УПР-регистра
BR 105124$
; П/п обслуживания нажатия ФИКС
105160$:MOV #207,R1 ; R1 = код отжатия ФИКС
TST @#7212 ; Нажата регистровая клавиша ?
BNE 105202$ ; Да
MOV #10534,@#7214 ; Текущая таблица-таблица ФИКС-регистра
BR 105130$
105202$:CMP @#7214,#7514 ; Нажата НР ?
BEQ 105016$ ; Да
TSTB @#7224 ; Нажата АЛФ ?
BEQ 105224$ ; Нет
CLRB @#7224 ; При отжатии АЛФ не передавать ASCII-кода
105224$:MOV @#7214,@#7216
BR 105022$
; П/п обслуживания нажатия УПР+ПОМ (ИСУ on/off)
105234$:COMB @#22552 ; Изменить режим ИСУ/не ИСУ
BEQ 105250$ ; Режим ИСУ выключен
EMT 52 ; Высветить надпись "ИСУ"
.WORD 107641$
BR 105254$
105250$:EMT 52 ; Стереть надпись "ИСУ"
.WORD 107632$
105254$:JMP 104306$
; П/п обработки управляющего символа Ctrl+N (переключение на русский алфавит)
105260$:MOV @#22556,R0 ; R0 = текущее состояние алфавита
MOV #200,@#22556 ; Установить русский алфавит
MOV #16*400+17,@#7222;Последовательность посылки кодов
; при нажатии и отжатии АЛФ
EMT 52 ; Высветить надпись "РУС"
.WORD 107731$
BR 105330$
; П/п обработки управляющего символа Ctrl+O (переключение на латинский алфавит)
105306$:MOV @#22556,R0
CLR @#22556 ; Установить латинский алфавит
MOV #17*400+16,@#7222
EMT 52 ; Высветить надпись "ЛАТ"
.WORD 107736$
105330$:CMP R0,@#22556 ; Предыдущий и текущий режимы алфавита равны ?
BEQ 105342$ ; Да
SWAB @#7220 ; Переменить верхний/нижний регистр
105342$:RETURN
105344$:RETURN
; П/п устанавливает специальные режимы клавиатуры (системный, ДКЛ)
105346$:MOV (R5)+,R0 ; R0 = адрес новых кодов клавиатуры
MOV (R5)+,R1 ; R1 = адрес буфера сохранения
TST @R1 ; Режим уже был установлен ?
BNE 105376$ ; Да
INC (R1)+ ; Установить флаг спецрежима
BR 105372$
105362$:MOV 7232(R2),(R1)+ ; Сохранить значение клавиши
MOV (R0)+,7232(R2) ; Занести новое значение
105372$:MOV (R0)+,R2 ; R2 = адрес клавиши
BNE 105362$ ; Еще не конец таблицы
105376$:RTS R5
; П/п восстанавливает предыдущий режим клавиатуры
105400$:MOV (R5)+,R0 ; R0 = адрес новых кодов клавиатуры
MOV (R5)+,R1 ; R1 = адрес буфера сохранения
TST @R1 ; Спецрежим установлен ?
BEQ 105426$ ; Нет
CLR (R1)+ ; Сбросить флаг спецрежима
BR 105422$
105414$:MOV (R1)+,7232(R2) ; Восстановить значение клавиши
TST (R0)+
105422$:MOV (R0)+,R2 ; R2 = адрес клавиши
BNE 105414$ ; Еще не конец таблицы
105426$:RTS R5
; П/п переключения клавиатуры в новый режим. Если текущий режим является
; не системным, то переключение производится сразу, иначе (системный режим)
; производится проверка адресов клавиш и для клавиш, задействованных
; в системном режиме, информация сохраняется в буфере, откуда перекачивается
; в таблицу раскладки при выходе из системного режима.
105430$:MOV (R5)+,R0 ; R0 = адрес новой таблицы
BR 105502$
105434$:TST @#11054 ; Установлен системный режим ?
BEQ 105476$ ; Нет
MOV #107310$-4,R2 ; R2 = адрес списка системных клавиш
105446$:ADD #4,R2 ; Перейти к следущему адресу
MOV @R2,R3 ; R3 = адрес клавиши
BEQ 105476$ ; Конец списка системных клавиш
CMP R3,R1 ; Адреса совпадают ?
BNE 105446$ ; Нет
SUB #107310$,R2 ; Получение адреса клавиши в буфере сохранения
ASR R2
MOV (R0)+,11056(R2) ; Занести код в буфер сохранения
BR 105502$
105476$:MOV (R0)+,7232(R1) ; Занести код в таблицу раскладки клавиатуры
105502$:MOV (R0)+,R1 ; R1 = адрес клавиши
BNE 105434$ ; Еще не конец таблицы
RTS R5
; Корректирующие коды, использующиеся при вычислении адреса в таблице раскладки
105510$:.BYTE 5,12,17,24,31,36,43,50
; НАЧАЛЬНЫЕ ДАННЫЕ ДЛЯ ТАБЛИЦ РАСКЛАДКИ КЛАВИАТУРЫ
; Структура :
; первые 88 байт - ASCII-коды для клавиш
; далее - смещения для регистровых клавиш (конец - байт 0)
; строки символов : - смещение в таблице (байт 0 - конец списка)
; - ASCIZ-строка
; байт 0 - конец описания раскладки
; Раскладка основного регистра
105520$:.BYTE 54,33,73,0,0,0,64,0,0,67,70,55,11,112,61,62,63,105,65,66
.BYTE 133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
.BYTE 131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
.BYTE 130,0,54,67,60,61,64,53,177,0,0,56,134,126,70,56,62,65,0
.BYTE 0,15,0,137,110,132,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
.BYTE 55,56,43,30,57,110,0
; - строки символов
.BYTE 107
.ASCIZ <33><177>
.BYTE 123
.ASCIZ <33>/~/
.BYTE 4,0,5,0,6,0,10,0,11,0,0
; Раскладка НР-регистра
105702$:.BYTE 54,33,53,0,0,0,44,0,0,47,50,57,11,112,41,42,43,105,45,46
.BYTE 133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
.BYTE 131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
.BYTE 130,0,74,67,60,61,64,52,177,0,0,76,134,126,70,56,62,65,0
.BYTE 0,12,0,137,110,132,71,15,63,66,14,12,77,52,75,60,51
; - список регистровых клавиш
.BYTE 55,56,43,30,57,110,0
; - строки символов
.BYTE 107
.ASCIZ <33><177>
.BYTE 123
.ASCIZ <33>/~/
.BYTE 4,0,5,0,6,0,10,0,11,0,0
; Раскладка ГРАФ-регистра
106064$:.BYTE 54,33,73,0,0,0,64,0,0,67,70,55,11,252,61,62,63,245,65,66
.BYTE 273,275,0,0,246,243,265,253,260,256,247,254,244,0,0,261
.BYTE 271,267,241,251,262,257,242,240,0,0,0,276,263,255,40,264
.BYTE 270,0,54,67,60,61,64,53,177,0,0,56,274,266,70,56,62,65,0
.BYTE 0,0,0,277,250,272,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
.BYTE 55,56,43,30,57,110,0
; - строки символов
.BYTE 66
.ASCIZ <33>/D/
.BYTE 76
.ASCIZ <33>/C/
.BYTE 112
.ASCIZ <33>/A/
.BYTE 77
.ASCIZ <33>/B/
.BYTE 111
.ASCIZ <15><12>
.BYTE 4,0,5,0,6,0,10,0,11,0,0
; Раскладка УПР-регистра
106262$:.BYTE 0,33,73,0,0,0,64,0,0,67,70,0,11,12,61,62,63,5,65,66,33,35
.BYTE 0,0,6,3,25,13,20,16,7,14,4,0,0,21,31,27,1,11,22,17,2,0,0,0,0
.BYTE 36,23,15,40,24,30,0,54,67,60,61,64,0,177,0,0,56,34,26,70,56
.BYTE 62,65,0,0,0,0,37,10,32,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
.BYTE 55,56,43,30,57,110,123,107,0
; - строки символов
.BYTE 74
.ASCIZ <33>/P/
.BYTE 14
.ASCIZ <33>/Q/
.BYTE 1
.ASCIZ <33>/R/
.BYTE 4,0,5,0,6,0,10,0,11,0,0
; Раскладка ФИКС-регистра
106452$:.BYTE 54,33,73,0,0,0,64,0,0,67,70,55,11,112,61,62,63,105,65,66
.BYTE 133,135,0,0,106,103,125,113,120,116,107,114,104,0,0,121
.BYTE 131,127,101,111,122,117,102,100,0,0,0,136,123,115,40,124
.BYTE 130,0,54,67,60,61,64,53,177,0,0,56,134,126,70,56,62,65,0
.BYTE 0,0,0,137,110,132,71,15,63,66,14,12,57,72,55,60,71
; - список регистровых клавиш
.BYTE 55,56,43,30,57,110,0
; - строки символов
.BYTE 107
.ASCIZ <33><177>
.BYTE 123
.ASCIZ <33>/~/
.BYTE 4,0,5,0,6,0,10,0,11,0,0
; Данные для пользовательского режима (VT-52)
106634$:.WORD 224,106752$,176,106755$,154,106760$,174,106763$
.WORD 504,106752$,456,106755$,434,106760$,454,106763$
.WORD 1244,106752$,1216,106771$,1174,106760$,1214,106766$
.WORD 1524,106752$,1476,106755$,1454,106760$,1474,106763$
.WORD 244,106774$,524,106771$,1242,106777$,0
106752$:.ASCIZ <33>/A/
106755$:.ASCIZ <33>/B/
106760$:.ASCIZ <33>/D/
106763$:.ASCIZ <33>/C/
106766$:.ASCIZ <33>/K/
106771$:.ASCIZ <33>/J/
106774$:.ASCIZ <33>/H/
106777$:.ASCIZ <15><12>
; Данные для пользовательского режима (15ИЭ-00-013)
107002$:.WORD 224,34,176,35,154,32,174,31,504,22,456,26,434,24,454,23
.WORD 1244,34,1216,37,1174,32,1214,13,1524,34,1476,35,1454,32,1474,31
.WORD 244,10,524,14,1242,25,0
; Данные для ДКЛ-режима
107120$:.WORD 236,107216$,210,107222$,162,107226$,164,107232$
.WORD 212,107236$,240,107242$,166,107246$,214,107252$
.WORD 242,107256$,160,107262$,206,107266$,234,107272$
.WORD 170,107276$,30,107301$,2,107304$,0
107216$:.ASCIZ <33>/?M/
107222$:.ASCIZ <33>/?n/
107226$:.ASCIZ <33>/?p/
107232$:.ASCIZ <33>/?q/
107236$:.ASCIZ <33>/?r/
107242$:.ASCIZ <33>/?s/
107246$:.ASCIZ <33>/?t/
107252$:.ASCIZ <33>/?u/
107256$:.ASCIZ <33>/?v/
107262$:.ASCIZ <33>/?w/
107266$:.ASCIZ <33>/?x/
107272$:.ASCIZ <33>/?y/
107276$:.ASCIZ <33>/P/
107301$:.ASCIZ <33>/Q/
107304$:.ASCIZ <33>/R/
.EVEN
; Данные для системного режима
107310$:.WORD 162,60,164,61,212,62,240,63,166,64
.WORD 214,65,242,66,160,67,206,70,234,71
.WORD 222,107462$,236,107464$,246,107466$,216,107471$
.WORD 224,107474$,176,107477$,154,107502$,174,107505$
.WORD 504,107510$,456,107513$,434,107516$,454,107521$
.WORD 146,107460$,172,107456$,244,14,0
107456$:.BYTE 177,0
107460$:.BYTE 40,0
107462$:.BYTE 15,0
107464$:.BYTE 15,0
107466$:.ASCIZ <33>/~/
107471$:.ASCIZ <33><177>
107474$:.ASCIZ <33><200>
107477$:.ASCIZ <33><201>
107502$:.ASCIZ <33><202>
107505$:.ASCIZ <33><203>
107510$:.ASCIZ <33><204>
107513$:.ASCIZ <33><205>
107516$:.ASCIZ <33><206>
107521$:.ASCIZ <33><207>
; Надписи для верхней информационной строки
107524$:.ASCIZ <0>/ /
107533$:.ASCIZ <0>/ УСТ/
107542$:.ASCIZ <5>/ /
107551$:.ASCIZ <5>/ ПМ /
107560$:.ASCIZ <5>/ ЦМ /
107567$:.ASCIZ <12>/ /
107576$:.ASCIZ <12>/ ДКЛ /
107605$:.ASCIZ <17>/ /
107614$:.ASCIZ <17>/ ИНВ /
107623$:.ASCIZ <17>/ПОДЧ /
107632$:.ASCIZ <24>/ /
107641$:.ASCIZ <24>/ ИСУ /
107650$:.ASCIZ <31>/ /
107657$:.ASCIZ <31>/ НР /
107666$:.ASCIZ <31>/ СУ /
107675$:.ASCIZ <31>/ГРАФ /
107704$:.ASCIZ <31>/ФИКС /
107713$:.ASCIZ <36>/ЗАГЛ /
107722$:.ASCIZ <36>/СТР /
107731$:.ASCIZ <43>/РУС/
107736$:.ASCIZ <43>/ЛАТ/
.EVEN