;----- ридер QWK. модуль #2 -------
MMSG==	26000	; (2/4) Адреса мессажей
MMEM==	36000	; (3/4) Кэш
MQWK==	16000	; (5/4) Программа
MTXT==	76000	; (6/4) Письмо

SOUN=120054	;MKDOS sound

; Last correction 17/03/96 by MKT

.MACRO	.OFF
	IOT
.ENDM
.MACRO	.ON
	.WORD -1
.ENDM

;------ Читать сообщение -----
FBMEM:	.WORD 40000
QRMSG::	JSR PC,CLS
	JSR PC,FRMSG
	JSR PC,FCMSG	;вывод DATE/TO/FROM/SUBJ/AREA///
1$:	MOV FBMEM,R5
2$:	JSR PC,P8PAG
	JSR PC,DSKS
3$:	MOV #MQWK,177716
	JSR PC,KEY
	BIC #40,R0
	CMPB	R0,#'G
	BNE	16$
	COM	KLF
	BR	QRMSG
16$:	CMPB	R0,#8.
	BNE	17$
	CALL	QPMSG
	BR	QRMSG
17$:	CMPB	R0,#31
	BNE	20$
	CALL	QNMSG
	BR	QRMSG
20$:	CMP R0,#33
	BNE 7$
	MOV R5,R4
	MOV #19.,R2
	MOV #MTXT,177716
4$:	CMP R4,ENDMSG
	BEQ 3$
5$:	TSTB (R4)+
	BNE 5$
	TST	KLF
	BNE	51$
	CMPB	(R4),#1
	BEQ	4$
51$:	SOB R2,4$
6$:	MOV #MQWK,177716
	MOV R4,-(SP)
	JSR PC,SOUND
	MOV (SP)+,R5
	BR 2$
7$:	CMP R0,#32
	BNE 10$
	MOV #19.,R2
	MOV R5,R4
	MOV #MTXT,177716
	CLR 37776	; WARNING!!!!!!!!!
8$:	CMP R4,FBMEM
	BEQ 3$
	DEC R4
9$:	TSTB -(R4)
	BNE 9$
	INC R4
	TST	KLF
	BNE	91$
	CMPB	(R4),#1
	BEQ	8$
91$:	SOB R2,8$
	BR 6$
10$:	CMP R0,#3
	BEQ QMR
	MOV	#MTXT,177716
	mov	#txt33,rpl
	CMP	R0,#14
	BEq	13$
	cmp	r0,#'R
	bne	11$
	DEC	FORW
	BR	12$
11$:	CMPB	R0,#'F
	BNE	3$
	CLR	FORW
12$:	call	reply
	mov	#txt35,rpl
	br	15$
13$:	mov	fbmem,r1
	MOV	ENDMSG,r2
14$:	MOVB	(R1),R0
	CALL	IBMB
	MOVB	R0,(R1)+
	cmp	r1,endmsg
	blo	14$
15$:	MOV #MQWK,177716
	MOV	#"00,MSVN
MSV1:	cmpb	msvn+1,#'9
	bne	1$
	incb	msvn
	movb	#'0-1,msvn+1
1$:	incb	msvn+1

	;messag00.lsg
	;reply000

2$:	MOV (pc)+,r0
rpl:	.word	TXT33
	MOV #326,R1
	MOV (R0)+,(R1)+
	MOV (R0)+,(R1)+
	MOV (R0)+,(R1)+
	MOV (PC)+,(R1)+
MSVN::	.ASCII/$$/
	MOV #".L,(R1)+
	MOV #"SG,(R1)+
	JSR PC,DSKF
	BCC MSV1

	MOV #320,R1
	MOV #2,(R1)
	MOV FBMEM,2(R1)
	MOV ENDMSG,R0
	SUB FBMEM,R0
	;INC R0
	;BIC #1,R0
	MOV R0,4(R1)
	MOV #MTXT,177716
	MOV	2(R1),R2
	MOV	2(R1),R3
1$:	MOVB	(R2),R0
	BNE	2$
	MOV	#12,R0
2$:	MOVB	R0,(R2)+
	SOB	R3,1$
	EMT 36
	MOV #MQWK,177716

QMR:	JSR PC,SLMS
	RTS PC
;------ Паписать страницу письма ---
P8PAG:	MOV R5,-(SP)
	JSR PC,CLS
	MOV (SP),R5
	MOV #19.,R4
	MOV #46400,R1
1$:	MOV #MTXT,177716
111$:	CMP R5,ENDMSG
	BHIS 9$
	TST	KLF
	BNE	2$
	CMPB	(R5),#1
	BNE	2$
	TSTB	(R5)+
	BNE	.-2
	BR	111$
2$:	MOV #MTXT,177716
	MOVB (R5)+,R0
	BEQ 8$
	MOV R1,R3
	BIC #177600,R3
	CMP R3,#79.
	BHI 2$
	MOV R5,-(SP)
	MOV R4,-(SP)
	MOV #MQWK,177716
	CMPB R0,#37
	BHI 6$
	MOV R0,5$
	cmpb	r0,#7
	bne	3$
	EMT	16
	br	7$
3$:	cmpb	r0,#11
	bne	4$
	;movb	#40,r0
	add	#10,r1
	bic	#7,r1
	br	7$
4$:	;MOVB <TXT34-1>(R0),R0
	tstB	IBMBK(R0)
	BNE 6$
	MOV #'^,R0
	JSR PC,PRC8
	INC R1
	MOV (PC)+,R0
5$:	.WORD 0
	ADD #100,R0
6$:	JSR PC,PRC8
	INC R1
7$:	MOV (SP)+,R4
	MOV (SP)+,R5
	BR 2$
8$:	BIC #177,R1
	ADD #1200,R1
	DEC	R4
	BNE	1$
	;SOB R4,1$
9$:	MOV (SP)+,R5
	MOV #MQWK,177716
	RTS PC

;------ Прочитать msg в память ---
FCMSG:	MOV R1,-(SP)
	MOV TKMS,R1
	JSR PC,NMPM
	BIC #177000,R5
	ADD #37000,R5
	MOV R0,BAB
	JSR PC,BAI
	MOV (SP)+,R1

	MOV #<7*2>,R4	; Заголовок skip...
1$:	JSR PC,BAL
	SOB R4,1$

	MOV #MTXT,177716
	JSR R5,STMC	; DATE TIME
	.WORD TXT27
	JSR PC,RDSTR
	CLRB (R1)+

	JSR R5,STMC	; TO
	.WORD TXT26
	JSR PC,RDSTR
	CLRB (R1)+

	JSR R5,STMC	; FROM
	.WORD TXT25
	JSR PC,RDSTR
	CLRB (R1)+

	JSR R5,STMC	; SUBJ 
	.WORD TXT28
	JSR PC,RDSTR
	CLRB (R1)+

	CLR TPOS
2$:	MOV #MQWK,177716
	JSR PC,BAL
	TSTB R0
	BEQ 7$
	CMP	R1,#77700
	BHI	7$
	CMP R0,#12
	BEQ 2$
	CMP R0,#15
	BNE 3$
	CLR R0
	MOV #-1,TPOS
	clr	tpos+2
3$:	MOV #MTXT,177716
	Cmpb	R0,#1
	bne	4$
	tst	tpos
	bne	4$
	inc	tpos+2
	;br	8$
4$:	CMP TPOS,#80.
	Bhi	 9$
	MOVB R0,(R1)+
	INC TPOS
	br	2$
9$:	tst	tpos+2
	bne	2$
	movb	r0,(r1)+
	inc	tpos
	MOV R1,R0
5$:	TSTB -(R0)	; Если одно большое слово...
	BNE 5$
	MOV R0,-(SP)
	MOV R1,R0
6$:	CMPB -(R0),#40
	BNE 6$
	CMP R0,(SP)+
	BLO 2$
	CLRB (R0)+
	MOV R1,TPOS
	SUB R0,TPOS
	BR 2$
7$:	MOV #MTXT,177716
	CLRB (R1)+
	CLRB (R1)+
	MOV R1,(PC)+
ENDMSG:	.WORD 0
	MOV #MQWK,177716
	RTS PC
TPOS:	.WORD 0,0
;------ Чтение строки символов до 0 ----
RDSTR:	MOV #MQWK,177716
	JSR PC,BAL
	MOV #MTXT,177716
	TSTB R0
	BEQ 1$
	MOVB R0,(R1)+
	BR RDSTR
1$:	RTS PC
;------ Чтение байта -----
BAL:	CMP R5,#40000
	BEQ 2$
	MOVB (R5)+,R0
	;BPL 1$
	;MOVB <ALTSTB-177600>(R0),R0
1$:	RTS PC
2$:	INC (PC)+
BAB:	.WORD 0
	JSR PC,BAB1
	BR BAL
BAB1:	MOV R4,-(SP)
	MOV R1,-(SP)
	MOV BAB,R0
	MOV #400,R1
	MOV #37000,R2
	EMT 364
	TSTB 52
	BNE .
	MOV (SP)+,R1
	MOV (SP)+,R4
	MOV #37000,R5
	RTS PC
;------ Инит байтового доступа ---
BAI:	
;	MOV #37000,R0
;	MOV R0,R3
;	ADD MTOF,R3
;	MOV #100,R2
;1$:	MOV (R0)+,(R3)+
;	SOB R2,1$
	MOV R5,-(SP)
	JSR PC,BAB1
	MOV (SP)+,R5
	RTS PC
;------ Формируем заголовок сообщения ------
FRMSG:	MOV TKMS,R1	;вывод FRAD и TOAD
	JSR PC,RKMSG
	MOV FBMEM,R1

	;MOV #MTXT,177716

	;JSR R5,STMC	; FRAD
	;.WORD TXT31
	;MOV #MMSG,177716
	;MOV 40002,R5
	;MOV #MTXT,177716
	;JSR PC,DCOUT
	;MOVB #':,(R1)+
	;MOV 37736,R5
	;JSR PC,DCOUT
	;MOVB #'/,(R1)+
	;MOV 37732,R5
	;JSR PC,DCOUT
	;CLRB (R1)+
	; JSR R5,STMC	;TOAD
	; .WORD TXT35
	; MOV 37740,R5
	; JSR PC,DCOUT
	; MOVB #'/,(R1)+
	; MOV 37734,R5
	; JSR PC,DCOUT
	; CLRB (R1)+
	RTS PC
;------ Нормальный вывод числа -----
DCOUT:	MOV R1,-(SP)
	MOV R5,R1
	MOV #TXT32,R2
	MOV #5,R3
	JSR PC,MDEC
	CLRB (R1)+
	MOV (SP)+,R1
	MOV #MTXT,177716
	MOV #TXT32,R0
1$:	CMPB (R0)+,#40
	BEQ 1$
	DEC R0
2$:	MOVB (R0)+,(R1)+
	BNE 2$
	DEC R1
	RTS PC
;------ Копир. до 0 ------
STMC:	MOV (R5)+,R0
1$:	MOVB (R0)+,(R1)+
	BNE 1$
	DEC R1
	RTS R5
STML:	MOV (R5)+,R0
	MOV (R5)+,R2
1$:	MOVB (R0)+,(R1)+
	SOB R2,1$
	RTS R5
;------ Напечатать страничку мессажей ----
SLMS::	MOV #MQWK,177716
	TST TKMS
	BNE 1$
	CLR NNMS
	CLR NTMS
1$:	MOV #1,R0
	JSR PC,PRCHR
	JSR PC,CLS
	MOV #MMSG,177716
	MOV 40000,KLMSG
	MOV 40004,FBLK
	MOV #MQWK,177716
	MOV (PC)+,R1
NNMS:	.WORD 0
	MOV #19.,R2
	MOV (PC)+,R3
KLMSG:	.WORD 0
	MOV #46402,R4

2$:	CMP R1,R3
	BHIS 1$
	JSR PC,RKMSG
	JSR PC,PRMSG
1$:	ADD #1200,R4
	INC R1
	SOB R2,2$
	JSR PC,OKTK
;	JSR PC,INTMS
;	RTS PC
;------ Инвертировать текущий мессаж ----
INTMS:	MOV (PC)+,R0
NTMS:	.WORD 0
	SWAB R0
	MOV R0,R1
	ASR R0
	ASL R1
	ADD R0,R1
	ADD #46502,R1
	MOV #60.,R3
	MOV #11,R4
	JMP INCOM
;------ Следующий мессаж -----
QNMSG::	MOV NNMS,R0
	ADD NTMS,R0
	INC R0
	CMP R0,KLMSG
	BNE 1$
	RTS PC
1$:	JSR PC,SOUND
	CMP NTMS,#18.
	BEQ 2$
	JSR PC,INTMS
	INC NTMS
	JSR PC,INTMS
	BR  OKTK
2$:	ADD #19.,NNMS
	CLR NTMS
	JSR PC,SLMS
;------ Преобразование отн. координат в абс. 
OKTK:	MOV NNMS,R0
	ADD NTMS,R0
	MOV R0,TKMS
	JMP PMSG
;------ Следующий REPLAY ---
QRNMS::	;MOV TKNS,R0
	;BEQ RT7
	;BR MSNNN
RT7:	RTS PC
;------ Перейти к предыдущему REPLAY ----
QRPMS::	;MOV TKPS,R0
BR RT7
;	BEQ RT7
MSNNN:	MOV R0,-(SP)	; Мессаж по номеру 
	SUB TKMS,(SP)
	JSR PC,SOUND
	JSR PC,INTMS
	ADD (SP)+,NTMS
	.WORD 12705
3$:	CLR R5
	TST NTMS
	BMI 1$
	CMP NTMS,#18.
	BLOS 2$
	SUB #19.,NTMS
	ADD #19.,NNMS
	BR 3$
1$:	SUB #19.,NNMS
	ADD #19.,NTMS
	BR 3$
2$:	TST R5
	BEQ 5$
	JSR PC,INTMS
	BR OKTK
5$:	JSR PC,SLMS
	BR OKTK
;------ Предыдущий мессаж -----
QPMSG::	MOV NNMS,R0
	ADD NTMS,R0
	BNE 1$
	RTS PC
1$:	JSR PC,SOUND
	TST NTMS
	BEQ 2$
	JSR PC,INTMS
	DEC NTMS
	JSR PC,INTMS
	BR OKTK
2$:	SUB #19.,NNMS
	MOV #18.,NTMS
	JSR PC,SLMS
	BR OKTK
;------ Скан по FROM/TO -----
QFRTO::	TST SCRG
	BEQ RT4
	CLR SCRG
QMD1:	JSR PC,SOUND
	JMP SLMS
;------ Скан по SUBJ -----
QSUBJ::	CMP SCRG,#1
	BEQ RT4
	MOV #1,SCRG
	BR QMD1
;------ Переключение режима ----
QMODE::	MOV #1,R0
	XOR R0,SCRG
	BR QMD1
;------ Печать заголовка ------
PRMSG:	MOV R0,-(SP)
	MOV R1,-(SP)
	MOV R2,-(SP)
	MOV R3,-(SP)
	MOV R4,-(SP)
	MOV R4,R2
	TST (PC)+
SCRG::	.WORD 0
	BEQ 1$
	MOV #TXT22,R5	;Subj
	MOV #6,R3
	JSR PC,STPL
	MOV #37700,R5
	MOV #45,R3
	JSR PC,STPL
	MOV #TXT29,R5	;date
	MOV #7,R3
	JSR PC,STPL
	MOV #37600,R5
	MOV #11,R3
	JSR PC,STPL
;	MOV #TXT30,R5
;	MOV #1,R3
;	JSR PC,STPL
;	MOV #37610,R5
;	MOV #5,R3
;	JSR PC,STPL
	BR 2$
1$:	MOV #TXT20,R5
	MOV #6,R3
	JSR PC,STPL
	MOV #37647,R5
	MOV #31,R3
	JSR PC,STPL
	MOV #TXT21,R5
	MOV #5,R3
	JSR PC,STPL
	MOV #37616,R5
	MOV #30,R3
	JSR PC,STPL
2$:	MOV (SP)+,R4
	MOV (SP)+,R3
	MOV (SP)+,R2
	MOV (SP)+,R1
	MOV (SP)+,R0
RT4:	RTS PC
;------ Печать строки длиной R3 ---
STPL:	MOVB (R5)+,R0
	MOV R5,-(SP)
	MOV R3,-(SP)
	TSTB	R0
	BPL 1$
	MOVB <ALTSTB-177600>(R0),R0
1$:	JSR PC,PRCHR
	MOV (SP)+,R3
	MOV (SP)+,R5
	SOB R3,STPL
	RTS PC


;------ Поучение параметров меса по номеру --
NMPM::	ASL R1
	ASL R1
	ADD LMSG,R1
	.OFF
	MOV #MMSG,177716
	MOV (R1),R0
	MOV 2(R1),R5
	MOV #MQWK,177716
	.ON
	RTS PC
;------ Чтение письма в КЭШ -------
RKMSG:	MOV R0,-(SP)
	MOV R1,-(SP)
	MOV R2,-(SP)
	MOV R3,-(SP)
	MOV R4,-(SP)
	.OFF
	MOV #MMEM,177716
	MOV #40000,R0
	MOV #200-2,R5
1$:	CMP (R0)+,R1
	BEQ RKS
	SOB R5,1$
	MOV #MQWK,177716
	.ON
2$:	MOV 6(SP),R1
	JSR PC,NMPM
	BIC #177000,R5
	MOV R5,-(SP)
	MOV #1000,R1
	MOV #36000,R2
	EMT 364
	MOV (SP)+,R5
	TSTB 52
	BNE 2$

	MOV #36000,R1
	ADD R1,R5
	MOV #400,R2
3$:	MOVB (R5)+,(R1)+
	SOB R2,3$

	MOV #36000+<7*2>,R0
	MOV #37600,R1
	JSR R5,STCL	; DATE
	.WORD 16
	JSR R5,STCL	; TO
	.WORD 31
	JSR R5,STCL	; FROM
	.WORD 31
	JSR R5,STCL	; SUBJ
	.WORD 45	;31

	MOV #36002,R0
	MOV #37746,R1	;37732
	MOV #12.,R2
4$:	MOVB (R0)+,(R1)+
	SOB R2,4$

;	MOV R1,-(SP)
;	MOV #37164,R1
;	JSR PC,DECDEC
;	MOV (SP)+,R1
;	MOV R2,(R1)+
;	MOVB 37173,(R1)

	.OFF
	MOV #MMEM,177716
	MOV (PC)+,R0
KAD:	.WORD 40000
	ADD #2,R0
	CMP R0,#40176
	BNE 1$
	MOV #40000,R0
1$:	MOV R0,KAD
	MOV 6(SP),R1
	MOV R1,(R0)
	SUB #40000,R0
	.REPT 6
	ASL R0
	.ENDR
	ADD #40200,R0
	MOV #37600,R1
	MOV #100,R2
2$:	MOV (R1)+,(R0)+
	SOB R2,2$
RK2:	MOV (SP)+,R4
	MOV (SP)+,R3
	MOV (SP)+,R2
	MOV (SP)+,R1
	MOV (SP)+,R0
	MOV #MQWK,177716
	.ON
	RTS PC
RKS:	SUB #40002,R0
	.REPT 6
	ASL R0
	.ENDR
	ADD #40200,R0
	MOV #37600,R1
	MOV #100,R2
1$:	MOV (R0)+,(R1)+
	SOB R2,1$
	BR RK2
;------ Очистка рабочего окна ----
CLS::	MOV #<46476+<1200*19.>-100>,R1
	MOV #<12*19.>,R5
	MOV #7,R2
	MOV #4,R4
2$:	MOV R2,R3
	CLR -(R1)
	CLR -(R1)
1$:	.REPT 4
	CLR -(R1)
	.ENDR
	SOB R3,1$
	SUB R4,R1
	SOB R5,2$
	RTS PC
;----- Копирование строки длиной ARG ---
STCL:	MOV (R5)+,R4
2$:	MOVB (R0)+,R3
	BEQ 4$
	;BPL 1$
	;MOVB <ALTSTB-177600>(R3),R3
	;BR 3$
1$:
	CMP R3,#40
	BHI 3$
	MOV #40,R3
3$:	MOVB R3,(R1)+
	SOB R4,2$
5$:	TSTB (R0)+
	BNE 5$
	RTS R5
4$:	MOVB #40,(R1)+
	SOB R4,4$
	RTS R5
;------ Формирование текста ответного письма ------
reply:	mov	endmsg,r1
	CMP 	-(r1),-(R1)
	mov	r1,enms
	add	#2000,(PC)+
Enms:	.word	100000
1$:	movb	-(r1),R0
	call	ibmb
	MOVB	R0,2000(r1)
	cmp	r1,fbmem
	bhi	1$

	mov	r1,r3
	add	#2000,r3
	mov	r3,(pc)+
fbm:	.word	42000

	JSR	R5,SEAR
	.WORD	TXT27
	MOV	R4,21$
	JSR	R5,SEAR
	.WORD	TXT26
	MOV	R4,23$
	jsr	r5,sear
	.word	txt25	;FROM -> @T:
	mov	r4,2$
	mov	r4,17$
	JSR	R5,SEAR
	.WORD	TXT28
	MOV	R4,25$
	MOV	R4,4$


	jsr	r5,stmc
	.word	txt40
	TST	FORW
	BEQ	3$
	jsr	r5,stmc
2$:	.word	0
3$:	clrb	(r1)+
	jsr	r5,stmc	;subj
	.word	txt41
	jsr	r5,stmc
4$:	.word	0
	clrb	(r1)+
	jsr	r5,sear		;area
	.word	txt52
	cmp	r3,enms		;net.mail???
	beq	6$
	MOV	R4,27$
	mov	r4,5$
	jsr	r5,stmc
	.word	txt42
	jsr	r5,stmc
5$:	.word	0
	br	9$
6$:	MOV	#TXT53,27$
	mov	fbm,r3		;net.mail
	jsr	r5,sear
	.word	txt50
	cmp	r3,enms
	beq	11$		;если нет msgid
	mov	r4,7$
	jsr	r5,stmc
	.word	txt43
	jsr	r5,stmc
7$:	.word	0
8$:	cmpb	-(r1),#40
	bne	8$
9$:	clrb	(r1)+		;lf
	mov	fbm,r3		;reply
	jsr	r5,sear
	.word	txt50
	cmp	r3,enms
	beq	11$
	mov	r4,10$
	jsr	r5,stmc
	.word	txt44
	jsr	r5,stmc
10$:	.word	0
	clrb	(r1)+

11$:	MOV	#FREMEM,R3
	TST	FORW
	BEQ	12$
	JSR	R5,SEAR
	.WORD	TXT54		;@R:
	BR	13$
12$:	JSR	R5,SEAR
	.WORD	TXT55		;@F:
13$:	CMP	R3,ENMS
	BEQ	30$
	INC	R4
14$:	MOVB	(R4)+,R0
	BEQ	15$
	CMPB	R0,#12
	BNE	16$
15$:	CLRB	(R1)+
	CMPB	(R4),#'@
	BNE	14$
	BEQ	29$
16$:	CMPB	R0,#'@
	BNE	28$
	MOVB	(R4)+,R0
	CMPB	R0,#'F
	BNE	20$
	mov	r1,-(sp)		;Hi, from!
	jsr	r5,stmc
17$:	.word	0
	CMPB	(R4),#'1
	BEQ	18$
	TST	(SP)+
	BR	14$
18$:	INC	R4
	mov	(sp)+,r1
19$:	cmpb	(r1)+,#40
	bhi	19$
	DEC	R1
	BR	14$
20$:	CMPB	R0,#'D
	BNE	22$
	JSR	R5,STMC
21$:	.WORD	0		;адрес #DATE
	BR	14$
22$:	CMPB	R0,#'T
	BNE	24$
	JSR	R5,STMC
23$:	.WORD	0		;адрес #TO
	BR	14$
24$:	CMPB	R0,#'S
	BNE	26$
	JSR	R5,STMC
25$:	.WORD	0		;адрес #SUBJ
	BR	14$
26$:	CMPB	R0,#'A
	BNE	28$
	JSR	R5,STMC
27$:	.WORD	0
	br	14$
28$:	MOVB	R0,(R1)+
	BR	14$
29$:
30$:
	TST	FORW
	BEQ	35$
	mov	17$,r3		;формирование строки "nm>"
	mov	#txt51,r2
	movb	#40,(r2)+
31$:	movb	(r3)+,(r2)+
32$:	tstb	(r3)+
	beq	34$
	cmpb	@R3,#'A
	Bhis	32$
33$:	Tstb	(R3)+
	Beq	34$
	Cmpb	@R3,#'A
	blo	33$
	br	31$
34$:	movb	#'>,(r2)+
	movb	#40,(r2)+
	clrb	(r2)+
35$:
	mov	fbm,r3		;поиск начала текста
36$:	tstb	(r3)+
	bne	36$
	cmpb	(r3),#'@
	bne	36$
37$:	tstb	(r3)+
	bne	37$
	cmpb	(r3),#'@
	beq	37$
FORW=.+2
	TST	#0		;FORW
	BNE	39$
38$:	MOVB	(R3)+,(R1)+
	cmp	r3,enms
	BLO	38$
	BR	51$

39$:	tstb	(r3)		;повторный ввод?
	beq	42$
	mov	r3,r5
	mov	#10.,r0		;в строке уже была квота
40$:	movb	(r5)+,r2
	beq	41$
	cmpb	r2,#'>
	beq	44$
	sob	r0,40$

41$:	Jsr	R5,Stmc		;вставить квоту " ФИО> "
	.Word	Txt51
	jsr	pc,45$
42$:	clrb	(r1)+
	inc	r3
	br	39$
43$:	movb	r0,(r1)+	
44$:	movb	(R3)+,r0
	cmpb	r0,#'>
	bne	43$
	movb	r0,(r1)+
	movb	r0,(R1)+
	jsr	pc,45$
	br	42$
45$:	movb	(r3)+,(r1)+
	cmp	r3,enms
	bhis	46$
	tstb	(r3)
	bne	45$
	RTS	PC

46$:	TST	(SP)+
51$:	tst	forw
	bne	50$
	Clrb	(R1)+
	mov	#fremem,r3
	jsr	r5,sear
	.word	txt56		;@@
	CMP	R3,ENMS
	BEQ	50$
	INC	R4
47$:	MOVB	(R4)+,R0
	CMPB	R0,#12
	BNE	48$
	CLR	R0
48$:	CMPB	R0,#'@
	BnE	49$
	TSTB	-1(R1)
	BEQ	50$
49$:	MOVB	R0,(R1)+
	BR	47$
50$:	Clrb	(R1)+		;@*
	Clrb	(R1)+
	jsr	r5,stmc
	.word	txt45
	clrb	(r1)+
	mov	r1,endmsg
	return

sear::	mov	(r5)+,-(sp)	;поиск, формат: jsr r5,sear
1$:	mov	(sp),r2		;		.word adres
	mov	r3,r4		;aдрес начало поиска в r3
3$:	cmpb	(r4)+,(r2)+	;адрес модели r3
	bne	2$		;адрес конца модели в r4
	tstb	(r2)
	bne	3$
	br	4$
2$:	inc	r3
	cmp	r3,enms
	blo	1$
4$:	tst	(sp)+
	rts	r5

;------ Текстики ------

TXT51:	.BLKB	10
txt40:	.asciz/@T: /
TXT41:	.ASCIZ/@S: /
TXT42:	.ASCIZ/@A: /
TXT43:	.ASCIZ/@N: /
TXT44:	.ASCIZ/@R: /
TXT45:	.ASCIZ/@*/
	.BLKB	10
TXT53:	.ASCIZ/Net.Mail/
TXT54:	.ASCIZ/@R:/
TXT55:	.ASCIZ/@F:/
TXT56:	.ASCIZ/@@/
TXT50:	.ASCIZ/MSGID: /
TXT52:	.ASCIZ/AREA:/
TXT20:	.ASCII/From: /
TXT21:	.ASCII/ To: /
TXT22:	.ASCII/Subj: /
TXT25:	.ASCIZ/#FROM : /
TXT26:	.ASCIZ/#TO   : /
TXT27:	.ASCIZ/#DATE : /
TXT28:	.ASCIZ/#SUBJ : /
TXT29:	.ASCII/ Date: /
TXT30:	.ASCII/,/
;TXT31:	.ASCIZ/#FRAD : /
;TXT35:	.ASCIZ/#TOAD : Z:/
TXT32:	.BLKB 10
.EVEN
TXT33:	.ASCII/MESSAG/
TXT35:	.ASCII/REPLY0/
.EVEN

IBMB::	BIC	#177400,R0
	CMPB	R0,#40
	BLO	1$
	CMPB	R0,#200
	BLO	2$
	SUB	#140,R0
1$:	MOVB	IBMBK2(R0),R0
2$:	RTS	pc

.END
                                                                                            