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