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:18
Сообщение #2


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

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



Код

; *********************************************************
; *                                                       *
; *                  ДРАЙВЕР КЛАВИАТУРЫ                   *
; *                                                       *
; *                Адреса 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



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

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


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

 



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