Uknc ROM disasm - 5
From Felixl.com
Jump to navigationJump to search; ****************************************************** ; * * ; * ГРАФИКА ПОЛЬЗОВАТЕЛЯ, ПРИНТЕР, ПЕЧАТЬ ЭКРАНА * ; * * ; * Адреса 135436 - 157777 * ; * * ; ****************************************************** ; ТОЧКА ВХОДА ПРИ ИСПОЛНЕНИИ ESC-ПОСЛЕДОВАТЕЛЬНОСТИ ESC %!0 (ВХОД В ГРАФИКУ) 135436$:MOV R5,-(SP) MOV SP,R5 135442$:CALL 136274$ TST R0 BNE 135442$ JMP 136056$ ; П/п установки начальных значений для п/п графического режима 135456$:MOV R5,-(SP) MOV SP,R5 MOV 22664,R0 ASL R0 ASL R0 ADD #2500,R0 ADD #-4,R0 MOV R0,23432 MOV 23432,23434 MOV #1200,23412 CLR 23420 CLR 23422 MOV #1,R0 MOV 23420,R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 23422,R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 23420,R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 CLR 23442 CLR 23444 CLR 23446 CLR 23450 CLR 23452 CLR 23454 CLR 23456 CLR 23460 CLR 23462 JMP 136056$ ; Точка входа при вызове п/п печати экрана 135704$:MOV R0,-(SP) MOV R1,-(SP) CALL 140326$ MOV (SP)+,R1 MOV (SP)+,R0 RETURN ; П/п вывода символа на принтер 135722$:MOV R5,-(SP) MOV SP,R5 BIT #2,177101 ; Принтер в состоянии ON-LINE ? BEQ 136000$ ; Нет 135736$:BIT #200,177101 ; Бит подтверждения сброшен ? BNE 135736$ ; Нет MOV 4(R5),177100 ; Послать код символа на линию данных BIC #200,177102 ; Установить сигнал строба 135762$:BIT #200,177101 ; Получен сигнал подтверждения ? BEQ 135762$ ; Нет MOV #200,177102 ; Сбросить сигнал строба 136000$:JMP 136056$ ; П/п инициализации параллельного порта 136004$:MOV R5,-(SP) MOV SP,R5 MOV #174,177103 MOV #200,177102 JMP 136056$ 136030$:MOV R5,R0 MOV SP,R5 MOV R4,-(SP) MOV R3,-(SP) MOV R2,-(SP) CLR -(SP) JMP @R0 136046$:MOV R5,R2 MOV -(R2),R4 MOV -(R2),R3 MOV -(R2),R2 136056$:MOV R5,SP MOV (SP)+,R5 RETURN ; Блок описания Esc-последовательностей графического режима 136064$:.WORD 136414$,111,0,136502$ ; LI 136074$:.WORD 136622$,126,136602$,120 ; MV, MP .WORD 136562$,115,136542$,114 ; MM, ML .WORD 0,136642$ 136120$:.WORD 137054$,125,136706$,122 ; RU,RR .WORD 136700$,104,0,137064$ ; RD 136140$:.WORD 137122$,104,0,137164$ ; TD 136150$:.WORD 140140$,111,137722$,110 ; UI, UH .WORD 137620$,107,137442$,106 ; UG, UF .WORD 137432$,105,137424$,104 ; UE, UD .WORD 137412$,103,137334$,102 ; UC, UB .WORD 137222$,101,0,140174$ ; UA 136220$:.WORD 140232$,41,0,140302$ ; %! 136230$:.WORD 140202$,45,137172$,125 ; %*, U* .WORD 137072$,124,136650$,122 ; T*, R* .WORD 136512$,115,136364$,114 ; M*, L* .WORD 0,140310$ 136264$:.WORD 136334$,33,0,140316$ ; Esc 136274$:JSR R5,136030$ ADD #-6,SP CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136264$,R1 JMP 144650$ ; П/п обработки символа Esc 136334$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136230$,R1 JMP 144650$ ; П/п обработки Esc L 136364$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136064$,R1 JMP 144650$ ; П/п обработки Esc LI 136414$:CALL 143756$ MOV 23424,23456 CALL 143756$ MOV 23424,23460 CALL 143756$ MOV 23424,23462 MOV 23462,@SP MOV 23460,-(SP) MOV 23456,-(SP) CALL 117026$ CMP (SP)+,(SP)+ MOVB #1,R0 BR 136506$ 136502$:MOVB #1,R0 136506$:JMP 136046$ ; П/п обработки Esc M 136512$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136074$,R1 JMP 144650$ ; П/п обработки Esc ML 136542$:CALL 143756$ MOV 23424,23442 MOVB #1,R0 BR 136506$ ; П/п обработки Esc MM 136562$:CALL 143756$ MOV 23424,23446 MOVB #1,R0 BR 136506$ ; П/п обработки Esc MP 136602$:CALL 143756$ MOV 23424,23450 MOVB #1,R0 BR 136506$ ; П/п обработки Esc MV 136622$:CALL 143756$ MOV 23424,23444 MOVB #1,R0 BR 136506$ 136642$:MOVB #1,R0 BR 136506$ ; П/п обработки Esc R 136650$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136120$,R1 JMP 144650$ ; П/п обработки Esc RD 136700$:MOVB #1,R0 BR 136506$ ; П/п обработки Esc RR 136706$:CALL 144104$ CMP 23420,23412 BGE 136732$ CMP 23422,22664 BLT 136740$ 136732$:MOVB #1,R0 BR 136506$ 136740$:MOV 23420,-12(R5) MOV 23422,-14(R5) CALL 144104$ CMP 23420,23412 BGE 137000$ CMP 23422,22664 BLT 137006$ 137000$:MOVB #1,R0 BR 136506$ 137006$:CALL 143756$ MOV 23424,@SP MOV 23422,-(SP) MOV 23420,-(SP) MOV -14(R5),-(SP) MOV -12(R5),-(SP) CALL 144666$ ADD #10,SP MOVB #1,R0 BR 137060$ ; П/п обработки Esc RU 137054$:MOVB #1,R0 137060$:JMP 136046$ 137064$:MOVB #1,R0 BR 137060$ ; П/п обработки Esc T 137072$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136140$,R1 JMP 144650$ ; П/п обработки Esc TD 137122$:CALL 143756$ MOV 23424,23452 CALL 143756$ MOV 23424,23454 MOV 23452,@SP CALL 117004$ MOVB #1,R0 BR 137060$ 137164$:MOVB #1,R0 BR 137060$ ; П/п обработки Esc U 137172$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136150$,R1 JMP 144650$ ; П/п обработки Esc UA 137222$:MOV 23430,177010 TST 177024 BNE 137236$ 137236$:BIT #4,23440 BEQ 137254$ MOV 177022,R0 BR 137260$ 137254$:MOV 177020,R0 137260$:MOV R0,R1 CLR R0 MOV 23440,R4 BIC #177774,R4 ASL R4 ASL R4 NEG R4 ASHC R4,R0 MOV R1,@SP BIC #177760,@SP CALL 144304$ MOV #15,@SP CALL 145612$ MOVB #1,R0 BR 137060$ ; П/п обработки Esc UB 137334$:MOV 23414,23420 MOV 23416,23422 MOV 23422,23414 MOV 23420,23416 CALL 151714$ MOV 23420,23414 MOV 23422,23416 MOVB #1,R0 BR 137060$ ; П/п обработки Esc UC 137412$:CALL 151650$ MOVB #1,R0 BR 137060$ ; П/п обработки Esc UD 137424$:MOVB #1,R0 BR 137436$ ; П/п обработки Esc UE 137432$:MOVB #1,R0 137436$:JMP 136046$ ; П/п обработки Esc UF 137442$:CALL 144104$ CMP 23420,23412 BGE 137466$ CMP 23422,22664 BLT 137474$ 137466$:MOVB #1,R0 BR 137436$ 137474$:MOV #1,R0 MOV 23420,R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 23422,R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 23420,R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 MOV 23420,23414 MOV 23422,23416 MOVB #1,R0 BR 137436$ ; П/п обработки Esc UG 137620$:CALL 144104$ CMP 23420,23412 BGE 137644$ CMP 23422,22664 BLT 137652$ 137644$:MOVB #1,R0 BR 137436$ 137652$:MOV 23442,177016 MOV 23430,177010 TST 177024 BNE 137674$ 137674$:MOV 23430,177010 MOV 23436,177024 CALL 141330$ MOVB #1,R0 BR 137436$ ; П/п обработки Esc UH 137722$:CALL 144104$ CMP 23420,23412 BGE 137746$ CMP 23422,22664 BLT 137754$ 137746$:MOVB #1,R0 BR 140134$ 137754$:MOV #1,R0 MOV 23420,R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 23422,R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 23420,R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 MOV 23420,23414 MOV 23422,23416 MOV 23442,177016 MOV 23430,177010 TST 177024 BNE 140114$ 140114$:MOV 23430,177010 MOV 23436,177024 MOVB #1,R0 140134$:JMP 136046$ ; П/п обработки Esc UI 140140$:MOV 23416,@SP MOV 23414,-(SP) CALL 144454$ TST (SP)+ MOV #15,@SP CALL 145612$ MOVB #1,R0 BR 140134$ 140174$:MOVB #1,R0 BR 140134$ ; П/п обработки Esc % 140202$:CALL 145564$ MOVB R0,-7(R5) MOVB -7(R5),R0 BIC #177400,R0 MOV #136220$,R1 JMP 144650$ ; П/п обработки Esc %! 140232$:CALL 145564$ MOVB R0,-7(R5) CMPB -7(R5),#'0 BEQ 140274$ MOVB -7(R5),R0 BIC #177400,R0 MOV R0,@SP CALL 113574$ CLR R0 BR 140134$ 140274$:MOVB #1,R0 BR 140134$ 140302$:MOVB #1,R0 BR 140134$ 140310$:MOVB #1,R0 BR 140134$ 140316$:MOVB #1,R0 BR 140134$ 140324$:BR 140134$ ; П/п печати экрана 140326$:JSR R5,136030$ ADD #-22,SP BIT #2,177101 BEQ 140602$ BIC #100,177700 MOV #15,@SP CALL 135722$ MOV #12,@SP CALL 135722$ CLR -10(R5) 140400$:CMP -10(R5),#79. BGT 140552$ MOV #1,-20(R5) 140416$:CMP -20(R5),#2 BGT 140606$ MOV #33,@SP CALL 135722$ MOV #52,@SP CALL 135722$ MOV #1,@SP CALL 135722$ MOV #30,@SP CALL 135722$ MOV #3,@SP CALL 135722$ CLR -12(R5) 140502$:CMP -12(R5),#263. BGT 140622$ MOV 23432,R0 MOV -12(R5),R1 ASL R1 ASL R1 SUB R1,R0 MOV @R0,R0 ADD -10(R5),R0 MOV R0,177010 TST 177024 BEQ 141004$ BR 141004$ 140552$:MOV #33,@SP CALL 135722$ MOV #100,@SP CALL 135722$ MOV #14,@SP CALL 135722$ 140602$:JMP 136046$ 140606$:INC -10(R5) BR 140400$ 140614$:INC -20(R5) BR 140416$ 140622$:MOV #33,@SP CALL 135722$ MOV #63,@SP CALL 135722$ MOV -20(R5),R1 MUL #22.,R1 MOV R1,@SP ADD #-21.,@SP CALL 135722$ MOV #12,@SP CALL 135722$ MOV #15,@SP CALL 135722$ BIT #200,177700 BEQ 140614$ CMP 177702,#4 BNE 140614$ MOV #33,@SP CALL 135722$ MOV #100,@SP CALL 135722$ MOV #15,@SP CALL 135722$ MOV #12,@SP CALL 135722$ MTPS #340 BIS #100,177700 MTPS #0 BR 140602$ 141004$:MOV 177020,-30(R5) MOV #1,-14(R5) 141020$:CMP -14(R5),#8. BGT 141246$ MOV -30(R5),R0 BIC #177760,R0 MOV R0,-16(R5) MOV -22(R5),R0 ASL R0 MOV #153540,R1 MOV #1,R4 MOV -16(R5),R2 ASL R2 SUB R2,R4 SUB -20(R5),R4 ASH R4,R1 BIC #177776,R1 BIS R1,R0 MOV R0,-22(R5) MOV -24(R5),R0 ASL R0 MOV #177624,R1 MOV #1,R4 MOV -16(R5),R2 ASL R2 SUB R2,R4 SUB -20(R5),R4 ASH R4,R1 BIC #177776,R1 BIS R1,R0 MOV R0,-24(R5) MOV -26(R5),R0 ASL R0 MOV #172100,R1 MOV #1,R4 MOV -16(R5),R2 ASL R2 SUB R2,R4 SUB -20(R5),R4 ASH R4,R1 BIC #177776,R1 BIS R1,R0 MOV R0,-26(R5) CMP -14(R5),#4 BNE 141306$ MOV 177022,-30(R5) BR 141322$ 141246$:MOV -22(R5),@SP CALL 135722$ MOV -24(R5),@SP CALL 135722$ MOV -26(R5),@SP CALL 135722$ INC -12(R5) JMP 140502$ 141306$:MOV -30(R5),R0 ASH #-4,R0 MOV R0,-30(R5) 141322$:INC -14(R5) BR 141020$ ; П/п рисования линии 141330$:MOV R5,-(SP) MOV SP,R5 ADD #-20,SP MOV 23420,R0 SUB 23414,R0 MOV R0,-12(R5) MOV 23422,R0 SUB 23416,R0 MOV R0,-14(R5) TST -14(R5) BNE 141404$ TST -12(R5) BEQ 141560$ 141404$:MOV 23420,23414 MOV 23422,23416 CLR -16(R5) TST -14(R5) BLT 141564$ TST -12(R5) BLT 141712$ CMP -12(R5),-14(R5) BGT 141454$ JMP 142106$ 141454$:MOV -12(R5),-20(R5) MOV -20(R5),-10(R5) 141470$:MOV -10(R5),R0 DEC -10(R5) TST R0 BEQ 141560$ SUB -14(R5),-16(R5) MOV 23436,R0 ASL R0 BIC #177400,R0 MOV R0,23436 BEQ 141536$ JMP 142260$ 141536$:MOV #1,23436 INC 23430 INC 23426 JMP 142260$ 141560$:JMP 136056$ 141564$:TST -12(R5) BLT 141576$ JMP 142722$ 141576$:CMP -12(R5),-14(R5) BLT 141612$ JMP 143136$ 141612$:MOV -12(R5),R0 NEG R0 MOV R0,-20(R5) MOV -20(R5),-10(R5) 141632$:MOV -10(R5),R0 DEC -10(R5) TST R0 BEQ 141560$ ADD -14(R5),-16(R5) CLC ROR 23436 BEQ 141670$ JMP 143310$ 141670$:MOV #200,23436 DEC 23430 DEC 23426 JMP 143310$ 141712$:MOV -12(R5),R0 NEG R0 CMP R0,-14(R5) BLT 141732$ 141726$:JMP 142442$ 141732$:MOV -14(R5),-20(R5) MOV -20(R5),-10(R5) 141746$:MOV -10(R5),R0 DEC -10(R5) TST R0 BEQ 141560$ ADD -12(R5),-16(R5) SUB #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 TST -16(R5) BGE 142030$ MOV -16(R5),R0 NEG R0 BR 142034$ 142030$:MOV -16(R5),R0 142034$:ASL R0 CMP R0,-20(R5) BGE 142050$ JMP 142540$ 142050$:CLC ROR 23436 BEQ 142064$ JMP 142556$ 142064$:MOV #200,23436 DEC 23430 DEC 23426 JMP 142556$ 142106$:MOV -14(R5),-20(R5) MOV -20(R5),-10(R5) 142122$:MOV -10(R5),R0 DEC -10(R5) TST R0 BEQ 141560$ ADD -12(R5),-16(R5) SUB #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 TST -16(R5) BGE 142204$ MOV -16(R5),R0 NEG R0 BR 142210$ 142204$:MOV -16(R5),R0 142210$:ASL R0 CMP R0,-20(R5) BLT 142376$ MOV 23436,R0 ASL R0 BIC #177400,R0 MOV R0,23436 BNE 142414$ MOV #1,23436 INC 23430 INC 23426 BR 142414$ 142260$:TST -16(R5) BGE 142276$ MOV -16(R5),R0 NEG R0 BR 142302$ 142276$:MOV -16(R5),R0 142302$:ASL R0 CMP R0,-20(R5) BLT 142342$ SUB #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 ADD -12(R5),-16(R5) 142342$:MOV 23430,177010 TST 177024 BNE 142356$ 142356$:MOV 23430,177010 MOV 23436,177024 JMP 141470$ 142376$:MOV 23430,177010 TST 177024 BEQ 142424$ BR 142424$ 142414$:SUB -14(R5),-16(R5) BR 142376$ 142424$:MOV 23430,177010 MOV 23436,177024 BR 142122$ 142442$:MOV -12(R5),R0 NEG R0 MOV R0,-20(R5) MOV -20(R5),-10(R5) 142462$:MOV -10(R5),R0 DEC -10(R5) TST R0 BNE 142502$ JMP 141560$ 142502$:ADD -14(R5),-16(R5) CLC ROR 23436 BNE 142606$ MOV #200,23436 DEC 23430 DEC 23426 BR 142606$ 142540$:MOV 23430,177010 TST 177024 BEQ 142566$ BR 142566$ 142556$:ADD -14(R5),-16(R5) BR 142540$ 142566$:MOV 23430,177010 MOV 23436,177024 JMP 141746$ 142606$:TST -16(R5) BGE 142624$ MOV -16(R5),R0 NEG R0 BR 142630$ 142624$:MOV -16(R5),R0 142630$:ASL R0 CMP R0,-20(R5) BLT 142670$ SUB #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 ADD -12(R5),-16(R5) 142670$:MOV 23430,177010 TST 177024 BNE 142704$ 142704$:MOV 23430,177010 MOV 23436,177024 BR 142462$ 142722$:MOV -14(R5),R0 NEG R0 CMP -12(R5),R0 BLE 142742$ JMP 143472$ 142742$:MOV -14(R5),R0 NEG R0 MOV R0,-20(R5) MOV -20(R5),-10(R5) 142762$:MOV -10(R5),R0 DEC -10(R5) TST R0 BNE 143002$ JMP 141560$ 143002$:SUB -12(R5),-16(R5) ADD #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 TST -16(R5) BGE 143050$ MOV -16(R5),R0 NEG R0 BR 143054$ 143050$:MOV -16(R5),R0 143054$:ASL R0 CMP R0,-20(R5) BGE 143070$ JMP 143574$ 143070$:MOV 23436,R0 ASL R0 BIC #177400,R0 MOV R0,23436 BEQ 143114$ JMP 143612$ 143114$:MOV #1,23436 INC 23430 INC 23426 JMP 143612$ 143136$:MOV -14(R5),R0 NEG R0 MOV R0,-20(R5) MOV -20(R5),-10(R5) 143156$:MOV -10(R5),R0 DEC -10(R5) TST R0 BNE 143176$ JMP 141560$ 143176$:SUB -12(R5),-16(R5) ADD #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 TST -16(R5) BGE 143244$ MOV -16(R5),R0 NEG R0 BR 143250$ 143244$:MOV -16(R5),R0 143250$:ASL R0 CMP R0,-20(R5) BLT 143426$ CLC ROR 23436 BNE 143444$ MOV #200,23436 DEC 23430 DEC 23426 BR 143444$ 143310$:TST -16(R5) BGE 143326$ MOV -16(R5),R0 NEG R0 BR 143332$ 143326$:MOV -16(R5),R0 143332$:ASL R0 CMP R0,-20(R5) BLT 143372$ ADD #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 SUB -12(R5),-16(R5) 143372$:MOV 23430,177010 TST 177024 BNE 143406$ 143406$:MOV 23430,177010 MOV 23436,177024 JMP 141632$ 143426$:MOV 23430,177010 TST 177024 BEQ 143454$ BR 143454$ 143444$:ADD -14(R5),-16(R5) BR 143426$ 143454$:MOV 23430,177010 MOV 23436,177024 BR 143156$ 143472$:MOV -12(R5),-20(R5) MOV -20(R5),-10(R5) 143506$:MOV -10(R5),R0 DEC -10(R5) TST R0 BNE 143526$ JMP 141560$ 143526$:SUB -14(R5),-16(R5) MOV 23436,R0 ASL R0 BIC #177400,R0 MOV R0,23436 BNE 143642$ MOV #1,23436 INC 23430 INC 23426 BR 143642$ 143574$:MOV 23430,177010 TST 177024 BEQ 143622$ BR 143622$ 143612$:SUB -14(R5),-16(R5) BR 143574$ 143622$:MOV 23430,177010 MOV 23436,177024 JMP 142762$ 143642$:TST -16(R5) BGE 143660$ MOV -16(R5),R0 NEG R0 BR 143664$ 143660$:MOV -16(R5),R0 143664$:ASL R0 CMP R0,-20(R5) BLT 143724$ ADD #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 SUB -12(R5),-16(R5) 143724$:MOV 23430,177010 TST 177024 BNE 143740$ 143740$:MOV 23430,177010 MOV 23436,177024 BR 143506$ ; П/п приема трех символов и перевода их в целое число 143756$:MOV R5,-(SP) MOV SP,R5 ADD #-10,SP CALL 145564$ ASH #6,R0 MOV R0,23424 CALL 145564$ BIC #177700,R0 BIS 23424,R0 ASH #4,R0 MOV R0,23424 CALL 145564$ MOV R0,-10(R5) MOV -10(R5),R0 BIC #177760,R0 BIS 23424,R0 MOV R0,23424 BIT #20,-10(R5) BNE 144100$ MOV 23424,R0 NEG R0 MOV R0,23424 144100$:JMP 136056$ ; П/п приема пяти символов и перевода их в два целых числа 144104$:MOV R5,-(SP) MOV SP,R5 ADD #-10,SP CALL 145564$ BIC #177740,R0 ASH #5,R0 MOV R0,23422 CALL 145564$ MOV R0,-10(R5) CALL 145564$ BIC #177740,R0 BIS 23422,R0 ASL R0 ASL R0 MOV R0,23422 CALL 145564$ BIC #177740,R0 ASH #5,R0 MOV R0,23420 CALL 145564$ BIC #177740,R0 BIS 23420,R0 ASL R0 ASL R0 MOV R0,23420 MOV -10(R5),R0 ASR R0 ASR R0 BIC #177774,R0 BIS 23422,R0 MOV R0,23422 MOV -10(R5),R0 BIC #177774,R0 BIS 23420,R0 MOV R0,23420 JMP 136056$ ; П/п преобразования целого числа в три символа и их вывод 144304$:MOV R5,-(SP) MOV SP,R5 ADD #-12,SP TST 4(R5) BGE 144342$ MOV 4(R5),R0 NEG R0 MOV R0,4(R5) CLR -10(R5) BR 144350$ 144342$:MOV #20,-10(R5) 144350$:MOV 4(R5),R0 ASH #-12,R0 MOV R0,@SP BIC #177700,@SP BIS #100,@SP CALL 145612$ MOV 4(R5),R0 ASH #-4,R0 MOV R0,@SP BIC #177700,@SP BIS #100,@SP CALL 145612$ MOV 4(R5),@SP BIC #177760,@SP BIS -10(R5),@SP BIS #40,@SP CALL 145612$ JMP 136056$ ; П/п преобразования двух целых чисел в пять символов и их вывод 144454$:MOV R5,-(SP) MOV SP,R5 TST -(SP) MOV 6(R5),R0 ASH #-7,R0 MOV R0,@SP BIC #177740,@SP BIS #40,@SP CALL 145612$ MOV 4(R5),@SP BIC #177774,@SP MOV 6(R5),R0 BIC #177774,R0 ASL R0 ASL R0 BIS R0,@SP BIS #140,@SP CALL 145612$ MOV 6(R5),@SP ASR @SP ASR @SP BIC #177740,@SP BIS #140,@SP CALL 145612$ MOV 4(R5),R0 ASH #-7,R0 MOV R0,@SP BIC #177740,@SP BIS #40,@SP CALL 145612$ MOV 4(R5),@SP ASR @SP ASR @SP BIC #177740,@SP BIS #100,@SP CALL 145612$ JMP 136056$ 144650$:TST (R1)+ BEQ 144664$ CMP R0,(R1)+ BNE 144650$ JMP @-4(R1) 144664$:JMP @(R1)+ ; П/п закраски прямоугольной области 144666$:MOV R5,-(SP) MOV SP,R5 ADD #-22,SP MOV #1,R0 MOV 10(R5),R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 12(R5),R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 10(R5),R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 MOV 23426,-14(R5) MOV 23434,-22(R5) MOV #100000,R0 MOV 23440,R1 ADD #-16,R1 ASH R1,R0 COM R0 MOV R0,-12(R5) MOV #1,R0 MOV 4(R5),R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 6(R5),R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 4(R5),R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 MOV #100000,R0 MOV 23440,R1 ADD #-17,R1 ASH R1,R0 MOV R0,-10(R5) MOV -14(R5),R0 SUB 23426,R0 MOV R0,-20(R5) MOV 23430,R0 ADD -20(R5),R0 MOV R0,-16(R5) TST -20(R5) BNE 145234$ MOV -12(R5),R0 COM R0 BIC R0,-10(R5) 145234$:MOV 14(R5),177016 145242$:CMP 23434,-22(R5) BLO 145270$ MOV 23430,177010 TST 177024 BEQ 145376$ BR 145376$ 145270$:MOV #1,R0 MOV 23414,R1 BIC #177770,R1 MOV R1,23440 ASH 23440,R0 MOV R0,23436 MOV 23432,R0 MOV 23416,R1 ASL R1 ASL R1 SUB R1,R0 MOV R0,23434 MOV @23434,R0 MOV 23414,R1 ASH #-3,R1 MOV R1,23426 ADD 23426,R0 MOV R0,23430 JMP 136056$ 145376$:MOV 23430,177010 MOV -10(R5),177024 TST -20(R5) BEQ 145452$ 145420$:INC 23430 CMP 23430,-16(R5) BHIS 145512$ MOV 23430,177010 TST 177024 BEQ 145530$ BR 145530$ 145452$:SUB #4,23434 MOV @23434,R0 ADD 23426,R0 MOV R0,23430 MOV 23430,R0 ADD -20(R5),R0 MOV R0,-16(R5) BR 145242$ 145512$:MOV 23430,177010 TST 177024 BEQ 145546$ BR 145546$ 145530$:MOV 23430,177010 MOV #377,177024 BR 145420$ 145546$:MOV 23430,177010 MOV -12(R5),177024 BR 145452$ ; П/п приема символа 145564$:MOV R5,-(SP) MOV R4,-(SP) MOV R3,-(SP) MOV R2,-(SP) CALL 110762$ MOV (SP)+,R2 MOV (SP)+,R3 MOV (SP)+,R4 MOV (SP)+,R5 RETURN ; П/п вывода символа 145612$:MOV 2(SP),R0 CALL 104160$ RETURN ; Все остальные п/п относятся к обработке последовательностей Esc UB и Esc UC 145624$:MOV SP,23602 CALL 152144$ BHIS 145642$ JMP 145716$ 145642$:CALL 151000$ BLO 145732$ 145650$:MOV #23540,R1 CMP 2(R1),#23546 BEQ 145732$ CALL 145734$ BLO 145676$ CALL 146010$ 145676$:MOV #23546,R1 CALL 145762$ BLO 145650$ CALL 146104$ BR 145650$ 145716$:MOV 23602,SP MOV #1,R0 BR 145732$ CLR R0 145732$:RETURN 145734$:MOV 2(R1),R1 TST @R1 BEQ 145756$ MOV 6(R1),23564 BEQ 145734$ BR 145760$ 145756$:SEC 145760$:RETURN 145762$:MOV 4(R1),R1 TST @R1 BEQ 146004$ MOV 10(R1),23564 BEQ 145762$ BR 146006$ 146004$:SEC 146006$:RETURN 146010$:MOV 0(R1),23560 MOV #1,23572 MOV 23474,23574 INC 23574 MOV #0,23576 MOV #2,23600 MOV #-2,23606 MOV #2,23610 MOV R1,23554 ADD #2,R1 CALL 146200$ RETURN 146104$:MOV 0(R1),23560 MOV #-1,23572 MOV #0,23574 MOV 23474,23576 INC 23576 MOV #-2,23600 MOV #-4,23606 MOV #4,23610 MOV R1,23554 ADD #4,R1 CALL 146200$ RETURN 146200$:MOV 23564,R2 MOV 23566,R3 MOV 23502,R5 146214$:MOV (R2)+,(R3)+ SOB R5,146214$ MOV 20(R1),23616 MOV 10(R1),23620 MOV 14(R1),23562 MOV 23570,R0 MOV 23502,R5 146252$:CLR (R0)+ SOB R5,146252$ MOV 10(R1),R5 MOV 20(R1),R0 SUB R0,R5 ASR R5 INC R5 MOV 23570,R2 ADD R0,R2 ADD 23562,R0 MOV R2,-(SP) MOV R0,-(SP) 146312$:CALL 147760$ BIS R4,(R2)+ ADD #2,R0 SOB R5,146312$ MOV 10(R1),R5 ADD 23564,R5 MOV @R5,R5 CALL 150136$ BIT #100000,R5 BEQ 146412$ MOV 23476,R5 SUB 10(R1),R5 ASR R5 DEC R5 BEQ 146412$ 146370$:CALL 147760$ BIS R4,(R2)+ CMP #-1,R4 BNE 146412$ ADD #2,R0 SOB R5,146370$ 146412$:MOV (SP)+,R0 MOV (SP)+,R2 MOV @R2,R4 MOV 20(R1),R5 ADD 23564,R5 MOV @R5,R5 CALL 150136$ BIT #1,R5 BEQ 146476$ MOV 20(R1),R5 BEQ 146476$ ASR R5 146454$:SUB #2,R0 CALL 147760$ BIS R4,-(R2) CMP #-1,R4 BNE 146476$ SOB R5,146454$ 146476$:MOV #23604,R5 CALL 150246$ MOV 23604,R0 MOV 23570,R3 MOV 20(R1),R2 ADD R2,R0 ADD R2,R3 ADD 23564,R2 MOV 10(R1),R5 SUB 20(R1),R5 ASR R5 INC R5 MOV R5,-(SP) BR 146556$ 146552$:BIS #1,@R2 146556$:MOV R5,-(SP) MOV (R2)+,R5 MOV (R3)+,R4 CALL 150136$ BIS R5,(R0)+ MOV (SP)+,R5 BIT #100000,R4 BNE 146606$ SOB R5,146556$ BR 146674$ 146606$:SOB R5,146552$ MOV R0,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV 23476,R5 SUB 10(R1),R5 ASR R5 DEC R5 BEQ 146666$ 146634$:MOV R5,-(SP) BIS #1,@R2 MOV (R2)+,R5 MOV (R3)+,R4 CALL 150136$ BIS R5,(R0)+ MOV (SP)+,R5 BIT #100000,R4 BEQ 146666$ SOB R5,146634$ 146666$:MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R0 146674$:MOV (SP)+,R5 BR 146706$ 146700$:BIS #100000,-2(R2) 146706$:MOV R5,-(SP) MOV -(R2),R5 MOV -(R3),R4 CALL 150136$ BIS R5,-(R0) MOV (SP)+,R5 BIT #1,R4 BNE 146736$ SOB R5,146706$ BR 147002$ 146736$:SOB R5,146700$ TST 20(R1) BEQ 147002$ MOV @R0,R4 146750$:BIT #1,R4 BEQ 147002$ BIS #100000,-(R2) MOV @R2,R5 MOV -(R3),R4 CALL 150136$ BIS R5,-(R0) CMP R0,23604 BHI 146750$ 147002$:MOV 23604,R0 MOV 23570,R3 MOV 23502,R5 147016$:MOV (R0)+,(R3)+ SOB R5,147016$ MOV 23604,R5 CALL 150470$ BHIS 147050$ MOV 23536,@R5 MOV R5,23536 JMP 147644$ 147050$:CALL 150716$ MOV 23560,R3 ADD 23572,R3 CMP R3,23574 BEQ 147426$ CALL 147732$ CALL 150576$ MOV R4,23556 ADD 23610,R4 MOV 23636,14(R4) ADD 23630,14(R4) MOV 4(R4),R3 BNE 147160$ MOV 23604,4(R4) MOV 23612,20(R4) MOV 23614,10(R4) BR 147240$ 147160$:MOV 23502,R5 MOV 23604,R0 147170$:BIS (R0)+,(R3)+ SOB R5,147170$ CMP 23612,20(R4) BGE 147212$ MOV 23612,20(R4) 147212$:CMP 23614,10(R4) BLE 147230$ MOV 23614,10(R4) 147230$:MOV 23604,R5 CALL 150300$ 147240$:MOV R4,-(SP) MOV R1,-(SP) MOV 23612,-(SP) MOV 23614,-(SP) MOV R4,R1 ADD 23600,R1 MOV 4(R1),R2 BEQ 147412$ MOV 4(R4),R3 MOV 23502,R5 MOV R2,-(SP) MOV R3,-(SP) 147304$:MOV @R2,R0 BIC @R3,(R2)+ BIC R0,(R3)+ SOB R5,147304$ MOV (SP)+,R3 MOV (SP)+,R2 MOV 23556,23640 MOV R2,R5 CALL 150470$ BCC 147344$ CALL 150332$ BR 147360$ 147344$:MOV 23612,20(R1) MOV 23614,10(R1) 147360$:MOV R3,R5 CALL 150470$ BCC 147376$ CALL 150332$ BR 147412$ 147376$:MOV 23612,20(R4) MOV 23614,10(R4) 147412$:MOV (SP)+,23614 MOV (SP)+,23612 MOV (SP)+,R1 MOV (SP)+,R4 147426$:SUB 23572,23560 CMP 23560,23576 BEQ 147644$ MOV 23566,R0 MOV 23570,R3 MOV 23502,R5 147460$:BIC (R0)+,(R3)+ SOB R5,147460$ MOV 23570,R5 CALL 150470$ BCS 147644$ MOV 23560,R3 CALL 147732$ CALL 150576$ ADD 23610,R4 ADD 23600,R4 MOV 23636,14(R4) MOV 4(R4),R3 BNE 147554$ MOV R4,R5 ADD #4,R5 CALL 150246$ MOV 4(R4),R3 147554$:MOV 23614,R5 SUB 23612,R5 ASR R5 INC R5 MOV 23570,R2 ADD 23612,R2 ADD 23612,R3 147604$:BIS (R2)+,(R3)+ SOB R5,147604$ CMP 23612,20(R4) BGE 147626$ MOV 23612,20(R4) 147626$:CMP 23614,10(R4) BLE 147644$ MOV 23614,10(R4) 147644$:MOV R1,R5 MOV 23554,23640 CALL 150332$ RETURN 147662$:MOV (SP)+,23642 MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP) MOV 23642,-(SP) RETURN 147706$:MOV (SP)+,23642 MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV 23642,-(SP) RETURN 147732$:MOV R3,-(SP) DEC R3 NEG R3 ASL R3 ASL R3 ADD 23504,R3 MOV @R3,23636 MOV (SP)+,R3 RETURN 147760$:MOV R3,-(SP) MOV R5,-(SP) CLR R4 DEC R4 MOV R0,177010 MOVB 177012,R5 MOV 23464,R3 XOR R3,R5 BICB R5,R4 MOVB 177014,R5 MOV 23466,R3 XOR R3,R5 BICB R5,R4 MOVB 177015,R5 MOV 23470,R3 XOR R3,R5 BICB R5,R4 INC R0 SWAB R4 MOV R0,177010 MOVB 177012,R5 MOV 23464,R3 XOR R3,R5 BICB R5,R4 MOVB 177014,R5 MOV 23466,R3 XOR R3,R5 BICB R5,R4 MOVB 177015,R5 MOV 23470,R3 XOR R3,R5 BICB R5,R4 SWAB R4 TST 23634 BNE 150126$ COM R4 150126$:DEC R0 MOV (SP)+,R5 MOV (SP)+,R3 RETURN 150136$:TST R5 BEQ 150234$ COM R4 BEQ 150240$ BIC R4,R5 BEQ 150234$ MOV R0,-(SP) MOV R1,-(SP) MOV R4,-(SP) COM R4 CLR R0 150164$:MOV R4,R1 DEC R1 XOR R4,R1 BIS R1,R4 MOV R4,R1 INC R1 XOR R4,R1 BLT 150210$ CLC ROR R1 150210$:BIC R0,R1 BIS R1,R0 BIT R1,R5 BEQ 150222$ BIS R1,R5 150222$:BIC R0,R4 BNE 150164$ BIC (SP)+,R5 MOV (SP)+,R1 MOV (SP)+,R0 150234$:MOV R5,R4 RETURN 150240$:COM R4 MOV R4,R5 RETURN 150246$:MOV 23536,@R5 BNE 150260$ JMP 145716$ 150260$:MOV @23536,23536 MOV R5,-(SP) MOV @R5,R5 CLR @R5 MOV (SP)+,R5 RETURN 150300$:MOV R3,-(SP) MOV 23476,R3 ADD R3,R5 ASR R3 150312$:CLR -(R5) SOB R3,150312$ MOV 23536,@R5 MOV R5,23536 MOV (SP)+,R3 RETURN 150332$:MOV R5,-(SP) MOV 4(R5),R4 BEQ 150372$ MOV R5,-(SP) MOV R4,R5 CALL 150300$ MOV (SP)+,R5 CLR 4(R5) MOV #10000,20(R5) CLR 10(R5) 150372$:MOV 23640,R5 TST 6(R5) BNE 150464$ TST 10(R5) BNE 150464$ MOV R2,-(SP) MOV R3,-(SP) MOV 2(R5),R2 MOV 4(R5),R3 MOV R3,4(R2) MOV R2,2(R3) CLR 2(R5) CLR 4(R5) MOV (SP)+,R3 MOV (SP)+,R2 MOV 23506,0(R5) MOV R5,23506 150464$:MOV (SP)+,R5 RETURN 150470$:MOV R5,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R5,R2 MOV 23502,R3 150504$:TST (R2)+ BNE 150524$ SOB R3,150504$ MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R5 SEC RETURN 150524$:SUB #2,R2 MOV R2,23612 MOV 23476,R3 ADD R3,R5 ASR R3 150544$:TST -(R5) BNE 150552$ SOB R3,150544$ 150552$:MOV R5,23614 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R5 SUB R5,23612 SUB R5,23614 RETURN 150576$:MOV R2,-(SP) MOV R3,-(SP) MOV R5,-(SP) MOV #23540,R4 150610$:MOV 2(R4),R5 TST @R5 BEQ 150634$ CMP 0(R5),R3 BGT 150634$ BEQ 150704$ MOV R5,R4 BR 150610$ 150634$:MOV 23506,R2 BNE 150646$ JMP 145716$ 150646$:MOV @R2,23506 MOV R3,0(R2) MOV 2(R4),2(R2) MOV R2,2(R4) MOV 4(R5),4(R2) MOV R2,4(R5) MOV R2,R5 150704$:MOV R5,R4 MOV (SP)+,R5 MOV (SP)+,R3 MOV (SP)+,R2 RETURN 150716$:MOV R2,-(SP) MOV R3,-(SP) MOV R5,-(SP) MOV 23612,R2 MOV 23614,R5 SUB R2,R5 ADD #2,R5 MOV R2,R3 ADD 23604,R3 ADD 14(R1),R2 150754$:MOV R2,177010 MOVB (R3)+,177024 INC R2 SOB R5,150754$ MOV (SP)+,R5 MOV (SP)+,R3 MOV (SP)+,R2 RETURN 151000$:MOV 23652,R3 CALL 150576$ MOV R4,23624 MOV #23604,R5 CALL 150246$ MOV 23604,6(R4) MOV R3,0(R4) MOV R3,23626 MOV 23654,R0 DEC R0 MOV R0,R1 MOV #3,R3 151056$:CLC ROR R1 SOB R3,151056$ BIC #1,R1 MOV R1,22(R4) MOV R1,12(R4) ADD R1,23604 MOV 0(R4),R3 CALL 147732$ MOV 23636,16(R4) MOV 23636,23562 MOV #1,R2 BIC #177760,R0 BEQ 151150$ 151142$:CLC ROL R2 SOB R0,151142$ 151150$:MOV R2,@23604 MOV R2,23622 CALL 151166$ RETURN 151166$:MOV SP,23656 MOV 23624,R1 MOV 22(R1),R0 MOV R0,23616 MOV R0,23620 MOV 6(R1),R2 ADD R0,R2 ADD 23562,R0 MOV R0,-(SP) MOV R2,-(SP) MOV R3,-(SP) CALL 147760$ TST R4 BNE 151246$ JMP 151640$ 151246$:MOV 23622,R5 CALL 150136$ TST R4 BNE 151266$ JMP 151640$ 151266$:MOV R4,(R2)+ ADD #2,R0 BIT #100000,R4 BEQ 151374$ MOV 23476,R5 SUB 23616,R5 ASR R5 DEC R5 BEQ 151374$ 151320$:CALL 147760$ CMP R4,#-1 BNE 151352$ MOV R4,(R2)+ ADD #2,R0 ADD #2,23620 SOB R5,151320$ BR 151374$ 151352$:MOV #1,R5 CALL 150136$ MOV R4,(R2)+ BEQ 151374$ ADD #2,23620 151374$:MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R0 BIT #1,@R2 BEQ 151474$ MOV 23616,R5 ASR R5 BEQ 151474$ 151420$:SUB #2,R0 CALL 147760$ CMP R4,#-1 BNE 151452$ MOV R4,-(R2) 151440$:SUB #2,23616 SOB R5,151420$ BR 151474$ 151452$:MOV #100000,R5 CALL 150136$ MOV R4,-(R2) BEQ 151474$ SUB #2,23616 151474$:MOV 23616,22(R1) MOV 23620,12(R1) MOV 0(R1),R3 DEC R3 BLE 151634$ CALL 147732$ CALL 150576$ MOV R3,0(R4) MOV #23564,R5 CALL 150246$ MOV 12(R1),R5 SUB 22(R1),R5 ASR R5 INC R5 MOV 6(R1),R2 MOV 23564,R3 ADD 22(R1),R2 ADD 22(R1),R3 151600$:MOV (R2)+,(R3)+ SOB R5,151600$ MOV 22(R1),24(R4) MOV 12(R1),14(R4) MOV 23564,10(R4) MOV 23636,20(R4) 151634$:CLC BR 151646$ 151640$:MOV 23656,SP SEC 151646$:RETURN 151650$:CALL 147662$ CALL 151756$ MOV #-1,23634 CALL 145624$ MOV 23646,R1 MOV 23644,R0 CALL 176300$ CALL 147706$ RETURN 151714$:CALL 147662$ CALL 151756$ CLR 23634 CALL 145624$ MOV 23646,R1 MOV 23644,R0 CALL 176300$ CALL 147706$ RETURN 151756$:MOV 23414,23652 INC 23652 MOV 23416,23654 INC 23654 MOV 23442,R1 CLR 23464 ROR R1 SBC 23464 CLR 23466 ROR R1 SBC 23466 CLR 23470 ROR R1 SBC 23470 MOV 23450,R1 NEG R1 MOVB R1,177016 MOV 23432,23504 MOV 22664,23474 MOV 23412,23500 BIC #17,23500 MOV 23500,23476 ASR 23476 ASR 23476 ASR 23476 MOV 23476,23502 ASR 23502 RETURN 152144$:MOV #5322,R0 CALL 176132$ MOV R0,23644 MOV R1,23646 MOV 23644,R1 ASR R1 SUB 23476,R1 BLE 152456$ MOV 23502,R2 ADD #13,R2 CLR R3 BR 152216$ 152214$:INC R3 152216$:SUB R2,R1 BGT 152214$ TST R3 BEQ 152456$ CMP R3,#31 BLE 152240$ MOV #27,R3 152240$:MOV R3,23650 MOV 23646,R1 INC R1 BIC #1,R1 MOV 23502,R2 MOV R1,23566 152266$:CLR (R1)+ SOB R2,152266$ MOV R1,23570 MOV 23502,R2 152302$:CLR (R1)+ SOB R2,152302$ MOV R1,-(SP) MOV #23510,R2 MOV R2,R1 MOV R2,23506 MOV #11,R3 152326$:CLR (R1)+ SOB R3,152326$ MOV #10000,(R1)+ MOV #10000,(R1)+ MOV (SP)+,R1 MOV 23650,R5 DEC R5 BEQ 152402$ 152354$:MOV R1,@R2 MOV R1,R2 MOV #11,R3 152364$:CLR (R1)+ SOB R3,152364$ MOV #10000,(R1)+ MOV #10000,(R1)+ SOB R5,152354$ 152402$:MOV #23536,R2 MOV 23650,R5 152412$:MOV R1,@R2 MOV R1,R2 MOV 23502,R3 152422$:CLR (R1)+ SOB R3,152422$ SOB R5,152412$ MOV #23540,R1 CLR (R1)+ MOV #23546,(R1)+ CLR (R1)+ CLR (R1)+ CLR (R1)+ MOV #23540,@R1 BR 152460$ 152456$:SEC 152460$:RETURN