IPB

Здравствуйте, гость ( Вход | Регистрация )

> ПЗУ УКНЦ, дизассемблирование от Alex_K (Alexey Kisly)
SuperMax
сообщение 29.1.2021, 1:17
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 342
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Код

        .TITLE  ROM

        .ASECT

        .=100000               ; Начальный адрес ПЗУ

; ********************************************************************
; *                                                                  *
; *        ПОДПРОГРАММЫ ОБСЛУЖИВАНИЯ МЕНЮ УСТАНОВКА И ЗАГРУЗКА       *
; *                                                                  *
; *                    Адреса 100000 - 103553                        *
; *                                                                  *
; ********************************************************************

; П/п установки начальных значений в меню УСТАНОВКА и ЗАГРУЗКА
100000$:JSR     R5,110712$     ; П/п заносит данные из области
        .WORD   100012$,7152   ; по адресу 100012 в 7152
        RETURN
100012$:.WORD   10.            ; Количество слов
        .WORD   177701,0,0     ; Пункт УСТ не выбран, VT-52, 80x24
        .WORD   7,1,1,7        ; Цвета символа, знакоместа, экрана и курсора
        .WORD   0,0            ; Рулон плавный, таймер включен
        .WORD   177701         ; Пункт ЗАГРУЗКА не выбран

; П/п обслуживания главного меню УСТАНОВКА
100040$:TST     @#23170        ; Ожидание завершения скроллинга
        BNE     100040$
        MOV     @#2476,-(SP)   ; Сохранить адрес пользовательского экрана
        MOV     #4672,@#2476   ; Включить экран установки
        MOV     #22754,R5      ; Сделать текущей таблицу видеопараметров
        CALL    110210$        ;  экрана установки
        JSR     R5,105346$     ; Перевести клавиатуру в системный режим
        .WORD   107310$,11054  ; Данные для системного режима
        CALL    104054$        ; Очистить буфер клавиатуры
        CLR     @#7232         ; Разрешение алфавитно-цифровой клавиатуры
        MOV     SP,@#7142
        EMT     52             ; Вывод УСТ в верхней строке
        .WORD   107533$
100120$:EMT     44             ; Вывод заголовка
        .WORD   102133$
100124$:MOV     #4,R0
        JSR     R4,101202$     ; Вывод меню и запрос пункта
        .WORD   101644$        ; Адрес списка для меню УСТАНОВКА
        BMI     100172$        ; Нажата <Enter> или УПР-@ ?
        CALL    @100150$(R2)   ; Обслуживание выбранного пункта
        BMI     100172$        ; Нажата <Enter> или УПР-@ ?
        BR      100124$
; Адреса п/п обслуживания пунктов меню УСТАНОВКА
100150$:.WORD   100172$,100334$,100372$,100432$,100476$
        .WORD   100536$,100576$,100630$,100730$
; Если нажаты <Enter> или УПР-@
100172$:CMP     R0,#177772     ; Нажата УПР-@ (выход в монитор ПП) ?
        BEQ     100302$
        MOV     @#7142,SP
        EMT     52             ; Стирание в верхней строке надписи УСТ
        .WORD   107524$
        EMT     52
        .WORD   107542$
        TST     @#7146         ; Предыдущий режим клавиатуры был системным ?
        BNE     100232$        ; Да
        JSR     R5,105400$     ; Восстановить пользовательский режим
        .WORD   107310$,11054  ; Данные для пользовательского режима
100232$:CALL    110204$        ; Включение пользовательского экрана
        MOV     (SP)+,@#2476
        CLR     @#7070         ; Очистить признак вызова
        TST     @#7072         ; Вызов происходил из меню ЗАГРУЗКА ?
        BNE     100300$        ; Да
100254$:MOV     #2,@#7230      ; Установить признак выполнения TRAP 2
        MOV     #2,@#22546     ; Установить признак выполнения TRAP 4
        MOV     #2,@#7042      ; Адресовать ASCII-коды клавиатуры каналу 0
        TRAP    4              ; Прочесть символ с канала 0 (если есть)
100300$:RETURN
100302$:MOV     #14,R0         ; Очистить экран
        EMT     42
        MOV     #100120$,-(SP) ; Адрес возврата в меню УСТАНОВКА
        MOV     SP,@#7144
        JMP     @#160576       ; Переход к программе монитора ПП

; П/п обслуживания подменю СИСТЕМА КОМАНД
100324$:CALL    @100346(R2)    ; Вызов п/п по текущему пункту меню
        MOV     #4,R0
100334$:JSR     R4,101202$     ; Вывод подменю и запрос пункта
        .WORD   101672$        ; Адрес списка подменю СИСТЕМА КОМАНД
        BEQ     100324$
        RETURN
; Адреса п/п для обслуживания подменю СИСТЕМА КОМАНД
100346$:.WORD   162572$,113670$,113712$

; П/п обслуживания подменю ФОРМАТ ЭКРАНА
100354$:MOV     R2,R0          ; Получение номера формата
        ASR     R0             ; 0 - 80x24, 1 - 40x24, 2 - 20x24, 3 - 10x24
        DEC     R0
        CALL    116502$        ; Обращение к п/п установки формата экрана
        MOV     #2,R0
100372$:JSR     R4,101202$     ; Вывод меню и запрос пункта
        .WORD   101704$        ; Адрес списка подменю ФОРМАТ ЭКРАНА
        BEQ     100354$
        RETURN

; П/п для обслуживания подменю ЦВЕТ СИМВОЛА
100404$:MOV     R2,R0          ; Получение номера цвета
        ASR     R0
        DEC     R0
        MOV     R5,-(SP)       ; Сохранить адрес текущей таблицы видеопар.
        MOV     #22656,R5      ; Загрузить адрес таблицы экрана пользователя
        CALL    116052$        ; Обращение к п/п установки цвета символа
        MOV     (SP)+,R5
        MOV     #2,R0
100432$:JSR     R4,101202$     ; Вывод меню и запрос пункта
        .WORD   101722$        ; Адрес списка подменю ЦВЕТ СИМВОЛА
        BEQ     100404$
        RETURN

; П/п для обслуживания подменю ЦВЕТ ЗНАКОМЕСТА
100444$:MOV     R2,R0          ; Получение номера цвета
        SUB     #2,R0
        MOV     113512$(R0),R0
        MOV     R5,-(SP)
        MOV     #22656,R5
        CALL    116130$        ; Обращение к п/п установки цвета знакоместа
        MOV     (SP)+,R5
        MOV     #2,R0
100476$:JSR     R4,101202$
        .WORD   101750$        ; Адрес списка подменю ЦВЕТ ЗНАКОМЕСТА
        BEQ     100444$
        RETURN

; П/п для обслуживания подменю ЦВЕТ ЭКРАНА
100510$:MOV     R2,R0          ; Получение номера цвета
        ASR     R0
        DEC     R0
        MOV     R5,-(SP)
        MOV     #22656,R5
        CALL    116170$        ; Обращение к п/п установки цвета экрана
        MOV     (SP)+,R5
        MOV     #2,R0
100536$:JSR     R4,101202$
        .WORD   101776$        ; Адрес списка подменю ЦВЕТ ЭКРАНА
        BEQ     100510$
        RETURN

; П/п для обслуживания подменю ЦВЕТ КУРСОРА
100550$:MOV     R2,R0          ; Получение номера цвета
        ASR     R0
        DEC     R0
        MOV     R5,-(SP)
        MOV     #22656,R5
        CALL    116226$        ; Обращение к п/п установки цвета курсора
        MOV     (SP)+,R5
        MOV     #2,R0
100576$:JSR     R4,101202$
        .WORD   102024$        ; Адрес списка подменю ЦВЕТ КУРСОРА
        BEQ     100550$
        RETURN

; П/п для обслуживания подменю РУЛОН
100610$:MOV     R5,-(SP)
        MOV     #22656,R5
        CALL    @<100642$-2>(R2); Обращение к п/п-ам установки рулона
        MOV     (SP)+,R5
        MOV     #2,R0
100630$:JSR     R4,101202$
        .WORD   102052$        ; Адрес списка подменю РУЛОН
        BEQ     100610$
        RETURN
; Адреса п/п-ам для установки рулона
100642$:.WORD   100650$,100656$,100674$
100650$:CLR     @#7136         ; Установить плавный рулон
        BR      100664$
100656$:MOV     #2,@#7136      ; Установить дискретный рулон
100664$:MOV     #2,74(R5)      ; Установить присутствие рулона
        RETURN                 ; 74 - смещение в таблице видеопараметров
100674$:CLR     74(R5)         ; Установить отсутствие рулона
        RETURN

; П/п для обслуживания подменю ТАЙМЕР
100702$:BIS     #1000,@#177054 ; Выключить таймер в канале ЦП
        SUB     #2,R2          ; Текущий пункт - включен ?
        BNE     100724$        ; Нет
        BIC     #1000,@#177054 ; Включить таймер в канале ЦП
100724$:MOV     #2,R0
100730$:JSR     R4,101202$
        .WORD   102066$        ; Адреса списка подменю ТАЙМЕР
        BEQ     100702$
        RETURN

; П/п обслуживания главного меню ЗАГРУЗКА
100742$:CLR     @#7042         ; Направлять ASCII-коды запросам EMT 22
        CLR     -(SP)          ; Номер устройства = 0
100750$:MOV     #14,R0         ; Очистить экран
        EMT     42
100756$:CLR     @SP
        JSR     R4,101616$     ; Позиционирование курсора
        .BYTE   2,5            ; Y=2, X=5
        MOV     #-6,@#7150     ; Запрет вывода в верхнюю инф. строку
        CLR     @#23164        ; Разрешение использования курсора
        EMT     44             ; Вывод заголовка
        .WORD   103114$
101004$:MOV     #4,R0
        JSR     R4,101202$     ; Вывод меню и запрос пункта
        .WORD   102100$        ; Адрес списка меню ЗАГРУЗКА
        BEQ     100756$
        BMI     101146$        ; Нажаты <Enter>,<ИСП> или <0> ?
        ADD     R2,PC          ; Переход по номеру пункта (нажата вправо)
        BR      100756$
        BR      101044$        ; Диск
        BR      101102$        ; Кассета ПЗУ
        BR      101004$        ; Сеть
        BR      101004$        ; Стык С2
        BR      101004$        ; Магнитофон
        BR      101004$        ; Отладка
        BR      101004$        ; Тестирование
; Запрос номера диска
101044$:JSR     R4,101616$     ; Позиционирование курсора
        .BYTE   4,34
        EMT     22             ; Ввод символа с ожиданием
        CMP     R0,#33         ; Код Escape ?
        BEQ     101142$        ; Да
        EMT     42             ; Вывод символа
        SUB     #60,R0         ; Проверка нажатия <0> - <3>
        BMI     100756$
        CMP     R0,#3
        BHI     100756$
        BR      101136$
; Запрос номера кассеты ПЗУ
101102$:JSR     R4,101616$     ; Позиционирование курсора
        .BYTE   5,34
        EMT     22             ; Ввод символа с ожиданием
        CMP     R0,#33         ; Код Escape ?
        BEQ     101142$        ; Да
        EMT     42             ; Вывод символа
        SUB     #61,R0         ; Проверка нажатия <1>,<2>
        BMI     100756$
        CMP     R0,#1
        BHI     100756$
101136$:MOV     R0,@SP         ; Сохранение номера устройства
        BR      101004$
101142$:EMT     22
        BR      100750$
101146$:MOV     #14,R0         ; Очистка экрана
        EMT     42
        CALL    100254$        ; Восстановить пользовательский режим
        MOV     R2,R0          ; Занести номер пункта в буфер клавиатуры
        CALL    104160$
        MOVB    (SP)+,R0       ; Занести номер устройства в буфер клавиатуры
        CALL    104160$
        CLR     @#7072         ; Очистить признак вызова
        RETURN

; П/п вывода пунктов меню и запроса номера пункта
101202$:MOV     #-6,@#7150     ; Запрет вывода в верхнюю инф. строку
        MOV     R0,-(SP)
        CALL    101446$        ; Вывод пунктов меню
        ADD     (SP)+,PC
        BR      101432$
        BR      101224$
101224$:MOV     @R4,R0         ; Позиционирование курсора
        MOV     2(R0),R3       ; R3 = координаты
        DEC     R3
        CALL    101564$
        MOV     @R4,R3         ; R3 = адрес списка
101242$:EMT     22             ; Ввод символа с ожиданием
        TST     R0             ; Нажата УПР-@ ?
        BEQ     101436$
        CMP     R0,#33         ; Символ Escape ?
        BEQ     101306$
        SUB     #60,R0         ; Символы <0> - <9> ?
        BMI     101276$
        BEQ     101442$        ; Символ <0> ?
        CMP     R0,@R3         ; Не превышает номер последнего пункта ?
        BHI     101242$
        MOV     R0,R2          ; R2 = номер выбранного пункта
        BR      101404$
101276$:ADD     #43,R0         ; Нажата <Enter> (15(8)-60(8)+43(8)=0) ?
        BEQ     101442$
        BR      101404$
101306$:EMT     22
        SUB     #176,R0        ; Нажаты <ПОМ>,<ИСП> или стрелки
        BMI     101242$
        CMP     R0,#6
        BHIS    101242$
        ASL     R0
        ADD     R0,PC
        BR      101344$        ; <ПОМ>
        BR      101436$        ; <ИСП>
        BR      101362$        ; <Вверх>
        BR      101372$        ; <Вниз>
        BR      101436$        ; <Влево>
        BR      101436$        ; <Вправо>
101344$:MOV     #20,R3         ; Позиционирование курсора
        CALL    101564$
        EMT     44             ; Вывод краткого хелпинга
        .WORD   103406$        ; Адрес начала хелпинга
        BR      101224$
101362$:DEC     R2             ; Уменьшить номер пункта
        BGT     101404$
        MOV     @R3,R2         ; R2 = номер последнего пункта
        BR      101404$
101372$:INC     R2             ; Увеличить номер пункта
        CMP     R2,@R3         ; Превысил номер последнего пункта ?
        BLOS    101404$
        MOV     #1,R2
101404$:MOV     R2,@4(R3)      ; Запомнить номер текущего пункта
        DEC     @4(R3)
        CLR     R0
101416$:TST     (R4)+
        CLR     @#7150         ; Разрешение вывода в верхнюю инф. строку
        ASL     R2
        TST     R0
        RTS     R4
101432$:MOV     #10,R0
101436$:SUB     #5,R0
101442$:DEC     R0
        BR      101416$

; П/п вывода пунктов меню
101446$:CLR     @#23164        ; Запрет использования курсора
        MOV     @R4,R2
        MOV     (R2)+,-(SP)    ; Число пунктов меню
        MOV     (R2)+,R3       ; Координаты курсора
        ADD     R3,@SP
        MOV     @(R2)+,-(SP)   ; Номер текущего пункта меню
        ADD     R3,@SP
        TST     R0
        BNE     101502$
        CALL    101564$        ; Курсор в начало экрана
        EMT     44             ; Стирание правой части экрана
        .WORD   103364$
101502$:CALL    101564$
        CMP     R3,@SP         ; Номер выводимого пункта совпадает с текущим ?
        BNE     101516$
        EMT     44             ; Включить режим инверсии
        .WORD   102124$
101516$:MOV     (R2)+,R1       ; Вывод очередного пункта
        EMT     46
        CMP     R3,@SP         ; Номер выводимого пункта совпадает с текущим ?
        BNE     101532$
        EMT     44             ; Выключить режим инверсии
        .WORD   102127$
101532$:INC     R3             ; Переход к очередному пункту
        CMP     R3,2(SP)       ; Вывод завершен ?
        BLO     101502$        ; Нет
        CMP     (SP)+,(SP)+
        MOV     @R4,R0
        MOV     @4(R0),R2      ; R2 = номер текущего пункта
        INC     R2
        MOV     #2,@#23164     ; Разрешить использование курсора
        RETURN

; Следующие две п/п осуществляют позиционирование курсора
; В первой п/п координаты задаются в R3, во второй - в слове,
; которое следует за командой вызова п/п (JSR R4,101616$).
101564$:MOV     @#23150,R5     ; R5 = адрес таблицы видеопараметров
        MOVB    R3,R0          ; R0 = Y (строка)
        CALL    115720$        ; Позиционирование по строке
        SWAB    R3
        MOVB    R3,R0          ; R0 = X (столбец)
        CALL    115672$        ; Позиционирование по столбцу
        SWAB    R3
        INC     @#7066         ; Установить признак перемещения курсора
        RETURN
101616$:MOV     @#23150,R5     ; R5 = адрес таблицы видеопараметров
        MOVB    (R4)+,R0       ; R0 = Y (строка)
        CALL    115720$        ; Позиционирование по строке
        MOVB    (R4)+,R0       ; R0 = X (столбец)
        CALL    115672$        ; Позиционирование по столбцу
        INC     @#7066         ; Установить признак перемещения курсора
        RTS     R4

;       СПИСКИ  ПУНКТОВ  МЕНЮ
; Структура списка:
;    первое слово - число пунктов меню
;    второе слово - координаты курсора
;    третье слово - адрес ячейки, в которой сохраняется номер тек. пункта
;    далее        - адреса надписей пунктов меню

; Список главного меню УСТАНОВКА
101644$:.WORD   10
        .BYTE   4,0
        .WORD   7152,102165$,102211$,102235$,102261$
        .WORD   102305$,102331$,102355$,102401$

; Список меню СИСТЕМА КОМАНД
101672$:.WORD   2
        .BYTE   4,30
        .WORD   7154,102425$,102445$

; Список меню ФОРМАТ ЭКРАНА
101704$:.WORD   4
        .BYTE   4,30
        .WORD   7156,102465$,102477$,102511$,102523$

; Список меню ЦВЕТ СИМВОЛА
101722$:.WORD   10
        .BYTE   4,30
        .WORD   7160,102535$,102562$,102607$,102634$
        .WORD   102661$,102706$,102733$,102760$

; Список меню ЦВЕТ ЗНАКОМЕСТА
101750$:.WORD   10
        .BYTE   4,30
        .WORD   7162,102535$,102562$,102607$,102634$
        .WORD   102661$,102706$,102733$,102760$

; Список меню ЦВЕТ ЭКРАНА
101776$:.WORD   10
        .BYTE   4,30
        .WORD   7164,102535$,102562$,102607$,102634$
        .WORD   102661$,102706$,102733$,102760$

; Список меню ЦВЕТ КУРСОРА
102024$:.WORD   10
        .BYTE   4,30
        .WORD   7166,102535$,102562$,102607$,102634$
        .WORD   102661$,102706$,102733$,102760$

; Список меню РУЛОН
102052$:.WORD   3
        .BYTE   4,30
        .WORD   7170,103005$,103024$,103043$

; Список меню ТАЙМЕР
102066$:.WORD   2
        .BYTE   4,30
        .WORD   7172,103062$,103077$

; Список меню ЗАГРУЗКА
102100$:.WORD   7
        .BYTE   4,2
        .WORD   7174,103175$,103216$,103237$,103260$
        .WORD   103301$,103322$,103343$

; Esc-последовательность включения инверсии
102124$:.BYTE   33,243,0
; Esc-последовательность выключения инверсии
102127$:.BYTE   33,277,243,0
; Заголовок меню УСТАНОВКА
102133$:.BYTE   14,12,40,33,244
        .ASCII  /УСТАНОВКА РЕЖИМОВ/
        .BYTE   33,277,244,0

; Надписи меню УСТАНОВКА
102165$:.ASCIZ  /1 - система команд /
102211$:.ASCIZ  /2 - формат экрана  /
102235$:.ASCIZ  /3 - цвет символа   /
102261$:.ASCIZ  /4 - цвет знакоместа/
102305$:.ASCIZ  /5 - цвет экрана    /
102331$:.ASCIZ  /6 - цвет курсора   /
102355$:.ASCIZ  /7 - рулон          /
102401$:.ASCIZ  /8 - таймер         /

; Надписи меню СИСТЕМА КОМАНД
102425$:.ASCIZ  /1 - VT-52      /
102445$:.ASCIZ  /2 - 15ИЭ-00-013/

; Надписи меню ФОРМАТ ЭКРАНА
102465$:.ASCIZ  /1 - 80/<220>/24/
102477$:.ASCIZ  /2 - 40/<220>/24/
102511$:.ASCIZ  /3 - 20/<220>/24/
102523$:.ASCIZ  /4 - 10/<220>/24/

; Надписи меню ЦВЕТ СИМВОЛА, ЦВЕТ ЗНАКОМЕСТА, ЦВЕТ ЭКРАНА, ЦВЕТ КУРСОРА
102535$:.BYTE   '1,40,'-,40,33,240,'0,33,241,'0
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102562$:.BYTE   '2,40,'-,40,33,240,'1,33,241,'1
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102607$:.BYTE   '3,40,'-,40,33,240,'2,33,241,'2
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102634$:.BYTE   '4,40,'-,40,33,240,'3,33,241,'3
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102661$:.BYTE   '5,40,'-,40,33,240,'4,33,241,'4
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102706$:.BYTE   '6,40,'-,40,33,240,'5,33,241,'5
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102733$:.BYTE   '7,40,'-,40,33,240,'6,33,241,'6
        .BYTE   237,237,237,237,33,277,240,33,277,241,0
102760$:.BYTE   '8,40,'-,40,33,240,'7,33,241,'7
        .BYTE   237,237,237,237,33,277,240,33,277,241,0

; Надписи меню РУЛОН
103005$:.ASCIZ  /1 - плавный   /
103024$:.ASCIZ  /2 - дискретный/
103043$:.ASCIZ  /3 - выключен  /

; Надписи меню ТАЙМЕР
103062$:.ASCIZ  /1 - включен /
103077$:.ASCIZ  /2 - выключен/

; Заголовок меню ЗАГРУЗКА
103114$:.ASCII  <33><244>/ЗАГРУЗКА/<33><277><244>
        .BYTE   12,12
        .REPT   10
        .BYTE   31
        .ENDR
        .ASCII  /(0/<221>/3): 0/<12>
        .REPT   10
        .BYTE   32
        .ENDR
        .ASCIZ  /(1,2): 1/

; Надписи меню ЗАГРУЗКА
103175$:.ASCIZ  /1 - диск        /
103216$:.ASCIZ  /2 - кассета ПЗУ /
103237$:.ASCIZ  /3 - сеть        /
103260$:.ASCIZ  /4 - стык С2     /
103301$:.ASCIZ  /5 - магнитофон  /
103322$:.ASCIZ  /6 - отладка     /
103343$:.ASCIZ  /7 - тестирование/

; Стирание правой части экрана
103364$:.REPT   10
        .BYTE   37,35
        .ENDR
        .BYTE   37,0

; Краткий хелпинг
103406$:.BYTE   61,221,71,54,200,54,201
        .ASCII  / - выбор элемента/<15><12>
        .BYTE   40,40,203
        .ASCII  /     - следующий уровень/<15><12>
        .BYTE   40,40,202
        .ASCII  /     - предыдущий уровень/<15><12>
        .ASCIZ  /0,/<224>/,ИСП - выход/
        .EVEN





--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
SuperMax
сообщение 29.1.2021, 1:19
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 342
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Код


; *****************************************************************
; *                                                               *
; *                  ДРАЙВЕР ТЕКСТОВОГО ТЕРМИНАЛА                 *
; *                                                               *
; *                     Адреса 107744 - 125027                    *
; *                                                               *
; *****************************************************************

; П/п начальной инициализации
107744$:JSR     R5,173730$     ; Очистка ОЗУ
        .WORD   13142,4017     ; Начальный адрес - 13142, число слов - 4017
107754$: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     @#22556,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  ; Включить звуковой сигнал (частота 500 Гц)
        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     113632$        ; Нет
        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$        ; Да
115672$: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     @#23176,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




--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 4.7.2025, 12:30