Uknc ROM disasm - 5

From Felixl.com
Revision as of 08:26, 18 March 2007 by Nzeemin (talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
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)
	JMR	@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
137150$:.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	137422$,101,0,140174$	; UA
136220$:.WORD	140322$,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	#132264$,R1
	JMP	144650$
; П/п обработки символа Esc
136334$:CALL	145564$
	MOVB	R0,-7(R5)
	MOVB	-7(R5),R0
	BIC	#177400,R0
	MOV	#132230$,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$
	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	136056$
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	136050$
; П/п обработки 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	136056$
; П/п обработки 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)
	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)
	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)
	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)
	MOV	-10(R5),R0
	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)
	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$
142114$:MOV	-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$
	ADD	-14(R5),-16(R5)
	BR	142540$
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)
	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)
	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	134050$
	MOV	-16(R5),R0
	NEG	R0
	BR	143054$
143050$:MOV	-16(R5),R0
	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	143522$
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)
	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$
	MOV	-12(R5),-16(R5)
143372$:MOV	23430$,177010$
	TST	177024$
	BNE	143406$
143406$:MOV	23430$,177010$
	MOV	23436$,177024$
	JMP	141622$
143426$:MOV	23430$,177010$
	TST	177024$
	BEQ	143454$
	BR	143454$
143444$:MOV	-14(R5),-16(R5)
	BR	143426$
143454$:MOV	23430$,177010$
	MOV	23436$,177024$
	BR	143216$
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$:MOV	-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$:MOV	-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	143350$
143342$:MOV	#20,-10(R5)
143350$: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)
	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$
	MOV	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	23430$,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$
	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	145734$
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	146106$
	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,R0
	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$
	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
	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
	BEQ	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	@SP,R5
	CLR	@R5
	MOV	(SP)+,R5
	RETURN
150300$:MOV	R3,-(SP)
	MOV	23476$,R3
	ADD	R3,R5
	ASL	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$
	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,4(R2)
	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
	ROL	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	23316$,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(R1)
	MOV	12(R1),14(R1)
	MOV	23564$,10(R4)
	MOV	23636$,20(R4)
	CLC
	BR	151646$
151640$:MOV	23656$,SP
	SEC
	RETURN
151650$:CALL	147662$
	CALL	151756$
	MOV	#-1,23636$
	CALL	145624$
	MOV	23646$,R1
	MOV	23644$,R0
	CALL	176300$
	CALL	147706$
	RETURN
151714$:CALL	147662$
	CALL	151756$
	CLR	23636$
	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$,23506$
	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	#23150$,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	#100000,(R1)+
	MOV	#100000,(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)+
	MOV	#23540$,@R1
	BR	152460$
152456$:SEC
152460$:RETURN
	.ENDT