; ####################################################### ; # ПРОГРАММА PRINTPZ. РАЗРАБОТАЛ 16.12.90 ПЗ # ; # ДЛЯ ПЕЧАТИ ТЕКСТОВЫХ ФАЙЛОВ НА ПРИНТЕРЕ МС-6312 # ; # РЕДАКТОР МИКРО10. # ; ####################################################### MEN: MOV C214,R0 ;ОЧИСКА ЭКРАНА EMT 16 EMT 16 MOV #232,R0 ;ОТКЛЮЧИТЬ КУРСОР EMT 16 MOV #40000,@#160 ;АДРЕС ЭКРАНА В ЯЧЕЙКУ 160. ADD #14,@#160 MOV #T00,R4 JSR PC,@#163270 ;ЗАПИСЬ В СЛУЖЕБН. СТРОКУ MOV #232,R0 ;ВКЛЮЧИТЬ КУРСОР EMT 16 MOV #22,R1 ;ЗАГОЛОВОК МЕНЮ MOV #5,R2 ;КООРД ВЫВОДА НА ЭКРАН Т0 EMT 24 MOV #T0,R1 ;АДРЕС ТЕКСТА Т0 JSR PC,TXT ;ВЫВОД НА ЭКРАН ТЕКСТА Т0 MOV #10,R3 ;ТЕКСТ МЕНЮ: КОЛИЧ ТЕКСТОВ MOV #7,R4 ;КООРД Y ТЕКСТА Т1 MOV #TAB,R5 ;АДРЕС ТАБЛИЦЫ АДРЕСОВ ТЕКСТОВ 1: MOV #26,R1 ;КООРД X ТЕКСТОВ Т1...Т10 MOV R4,R2 ;КООРД Y ОЧЕРЕДНОГО ТЕКСТА EMT 24 ;УСТАНОВКА КУРСОРА MOV (R5)+,R1 ;АДРЕС ТЕКСТА JSR PC,TXT ;ВЫВОД НА ЭКРАН ОЧЕРЕДНОГО ТЕКСТА INC R4 ;КООРД Y ОЧЕРЕДНОГО ТЕКСТА SOB R3,1 ;ЦИКЛ ПО КОЛИЧ ТЕКСТОВ JSR PC,KUR ;ПП УПРАВЛЕНИЕ КУРСОРОМ JSR PC,PRA ;ПП ПРИРАЩЕНИЕ АДРЕСА DA CMP #120,DA ;Р=120 - ПЕЧАТЬ КОПИИ BEQ PRN CMP #113,DA ;К=113 - КОНЕЦ РАБОТЫ BNE ZAG MOV #214,R0 EMT 16 EMT 16 JMP @#100274 ;ВЫХОД ИЗ ПРОГРАММЫ ZAG: MOV #T11,R1 ;ЗАГРУЗКА ФАЙЛА: АДРЕС ТЕКСТА Т11 JSR PC,TXT ;ВЫВОД НА ЭКРАН ТЕКСТА Т11 MOV AE,R5 ;АДРЕС ЗАГРУЗКИ JSR PC,@#100536 ;ПП ЗАГРУЗЧИКА MONIT TSTB @#321 ;ПРОВЕРКА ОШИБКИ СЧИТЫВАНИЯ. BNE ZAG ;КОПИРОВАНИЕ ФАЙЛА В РАБОЧУЮ ОБЛАСТЬ ПАМЯТИ MOV AE,AK ;ВЫЧИСЛЕНИЕ АДРЕСА ADD @#350,AK ;КОНЦА ФАЙЛА. MOV AE,AN ;ВЫЧИСЛЕНИЕ АДРЕСА ADD DA,AN ;НАЧАЛА ФАЙЛА. MOV AK,DF ;ВЫЧИСЛЕНИЕ ДЛИНЫ SUB AN,DF ;ФАЙЛА. MOV A,R1 ;КОПИРОВАТЬ MOV AN,R2 ;ФАЙЛ MOV DF,R0 ;С ЭКРАНА 1: MOVB (R2)+,(R1)+ ;НА SOB R0,1 ;АДРЕС A. MOV R1,AK ;АДР КОНЦА ФАЙЛА DEC AK ;ДЛЯ ПЕЧАТИ. PRN: MOV #214,R0 ;ОЧИСТКА ЭКРАНА EMT 16 EMT 16 MOV #16,R1 ;ПЕЧАТЬ ФАЙЛА: КООРД MOV #12,R2 ;ТЕКСТА Т12. EMT 24 MOV #23,@#256 ;ПЕРЕДАЧА НА ПРИНТЕР УПРАВЛЯЮЩЕГО JSR PC,@#PCH ;КОДА ДЛЯ НАСТРОЙКИ НА КОИ-8. MOV #T12,R1 ;АДРЕС ТЕКСТА Т12 JSR PC,TXT ;ВВОД НА ЭКРАН ТЕКСТА Т12 MOV #352,R1 ;ИМЯ ФАЙЛА JSR PC,TXT ;ВЫВОД НА ЭКРАН ИМЕНИ ФАЙЛА CHT: MOV A,R0 ;АДРЕС НАЧАЛА ФАИЛА ДЛЯ ПЕЧАТИ M12: MOVB (R0)+,@#256 ;ПЕРЕДАЧА КОДА НА ПРИНТЕР. TSTB @#256 ;ПРОВЕРКА КОНЦА СТРОКИ. BEQ 1 CMP @#256,#10 BLE 2 CMP @#256,#40 BLT 1 2: JSR PC,PRB ;ПЕЧАТЬ ПРОБЕЛОВ TSTB R1 ;ПРОВЕРКА ПЕЧАТИ BEQ M12 ;ПРОБЕЛОВ. CLR DA ;ОЧИСТКА ПАМЯТИ ПРОБЕЛОВ JSR PC,@#PCH ;ПЕЧАТЬ СИМВОЛА НА ПРИНТЕРЕ. CMP R0,AK ;ЦИКЛ ДО BLT M12 ;КОНЦА ФАЙЛА. MOV #14,@#256 ;ПЕРЕВОД . JSR PC,@#PCH ;ФОРМАТА. JMP MEN ;ВОЗВРАТ В МЕНЮ 1: MOV #12,@#256 ;ЕСЛИ КОНЕЦ СТРОКИ. JSR PC,@#PCH ;ТО ПЕРЕВОД CTPCK.M. MOV #15,@#256 ;ТАБУЛЯЦИЯ СТРОКИ JSR PC,@#PCH BR M12 ;ПП ПЕРЕДАЧА КОДОВ ИЗ БК К ПРИНТЕРУ. PCH: MOV @#256,@#177714 ;ПЕ-ЧА КОДА СИМ-ЛА В ВЫХОД РЕГ ПОРТА 1: CMP #600,@#177714 ;ПРОВЕРКА ГОТОВНОСТИ ПРИНТЕРА. BNE 1 ADD #400,@#256 ;ЕСЛИ ДА. ТО ДОБАВИТЬ СТРОБ-И. А MOV @#256,@#177714 ;ПОЛУЧЕННЫЙ КОД ПЕРЕДАТЬ В ВЫХ РЕГ. 2: BIT #400,@#177714 ;ПРОВЕРКА ИСЧЕЗНОВЕНИЯ СИГНАЛА BNE 2 ;ЗП-П ЗАПРОС ПРИЕМНИКА. CLR @#256 ;ЕСЛИ ДА. ТО ОЧИСТИТЬ ЯЧЕЙКУ 256. RTS PC HALT PRB: MOVB @#256,21 ;ПП ВЫЯВЛЕНИЕ ПРОБЕЛОВ MOVB #10,R2 1: CMPB R1,R2 ;ПРОВЕРКА НАЛИЧИЯ ПРОБЕЛОВ. BEQ 3 SOB R2,1 BR 6 3: CMPB #1,DA ;ПРОВЕРКА ПОВТОРЕНИЯ ПРОБЕЛОВ. BEQ 2 MOVB #1,DA BR 4 2: ASL R1 ASL R1 ASL R1 4: BIC #177400,21 ;ОЧИСТКА СТ. БАЙТА R1 5: MOV #40,@#256 ;ПЕЧАТЬ JSR PC,@#PCH ;ПРОБЕЛОВ. SOB R1,5 6: RTS PC ; ПП УПРАВЛЕНИЕ КУРСОРОМ KUR: MOV #25,R1 ;КООРДИНАТА X MOV #7,R2 ;КООРДИНАТА Y EMT 24 5L: EMT 6 ;ПЕРЕМЕЩЕНИЕ КУГСОРА CMP #32,R0 ;ВВЕРХ BEQ 2L CMP #33,R0 ;ВНИЗ BEQ 3L CMP #12,R0 ;ВВОД: ВЫХОД ИЗ ПП BEQ 1L ;ВЫХОД ИЗ ПЛ BR 5L 2L: CMP #7,R2 ;ОГРАНИЧЕНИЕ ВЫШЕ СТРОКИ 7 BHIS 5L SUB #1,R2 EMT 24 3L: CMP #16,R2 ;ОГРАНИЧЕНИЕ НИЖЕ СТРОКИ 16 BLOS 5L ADD #1,R2 EMT 24 BR 5L 1L: RTS PC ;ПП ПРИРАЩЕНИЕ АДРЕСА DA PRA: MOV #7,R3 ;КООРД Y ДАННЫХ MOV #DAN,R4 ;АДРЕС ДАННЫХ 2: MOV (R4)+,DA ;ПРИРАЩЕНИЕ АДРЕСА DA CMP R3,R2 ;СРАВНЕНИЕ КООРДИНАТ BEQ 3 INC R3 ;УВЕЛИЧЕНИЕ КООРДИНАТЫ Y BR 2 3: RTS PC TXT: CLR R2 ;ПП ЧТЕНИЕ ТЕКСТА EMT 20 RTS PC ;ВЫХОД ИЗ ПП ТЕКСТ DAN: .#0 .#376 .#250 .#166 .#2452 .#2124 .#120 .#113 .E TAB: .#T1 .#T2 .#T3 .#T4 .#T5 .#T6 .#T7 .#T10 .E .E A: .#3000 ;РАБОЧИЙ АДРЕС ФАЙЛА AE: .#40000 ;АДРЕС ЗАГРУЗКИ ФАЙЛА AN: .+2 AK: .+2 DA: .+2 DF: .+2 .E .E T00: .A: PRINTPZ $ П.И.ЗАХАРОВ $ МОСКВА $ 1991. .B:0 T0: .A: ФОРМАТ ФАЙЛА ДЛЯ ПЕЧАТИ: .B:0 T1: .A: EDASP10, МИКРО11 .B:0 T2: .A: READER.2 .B:0 T3: .A: DOCUM .B:0 T4: .A: СТРЕЛКИ ВВЕРХ-ВНИЗ .B:0 T5: .A: "ФОРМАТ" .B:0 T6: .A: МОНСТР . .B:0 T7: .A: -$- ПЕЧАТЬ СЛЕДУЮЩЕЙ КОПИИ .B:0 T10: .A: -$- КОНЕЦ РАБОТЫ .B:0 T11: .B:14 .B:12 .A: ЧТЕНИЕ ФАЙЛА С МАГНИТОФОНА : .B:40 .B:0 T12: .A: ПЕЧАТАЕТСЯ ФАЙЛ : .B:40 .B:0 .E .E EN: END