;-----------------------------------
;	PKT maker   (c) Андрей Леликов
;			1995
MMSG=	76000
MDAT=	36000
MPKT=	16000

FREMEM=	400

;	MKDOS:
TXT=	120050
DIR=	120014
DIRFIN=	120026

START:	MOV	#776,SP
	JSR	PC,LOACNF
	JSR	PC,LOAMID
	JSR	PC,DSKS
	JSR	PC,PODKAT
CLDST:	MOV	#MPKT,177716
	mov	#bpm+6+20,r1
	mov	#20,r0
	movb	#40,-(r1)
	sob	r0,.-4
	mov	#midtek+4,r0
	mov	#4,r2
1$:	movb	-(r0),r3
	asr	r3
	asr	r3
	asr	r3
	asr	r3
	jsr	pc,msg55	
	movb	(r0),r3
	jsr	pc,msg55
	sob	r2,1$
	MOV #TXT2,R0		;/.PKT/
	MOVB (R0)+,(R1)+
	MOVB (R0)+,(R1)+
	MOVB (R0)+,(R1)+
	MOVB (R0)+,(R1)+

; Попытаемся прочитать 
;	MOV #BPM,R1
;	MOV #3+10+20,(R1)
;	MOV #MDAT,177716
;	EMT 36
;	JSR PC,DSKS
;	MOV #MPKT,177716
;	TSTB 1(R1)
;	BEQ 751$
	;CMPB 1(R1),#1
	;BNE START
	JSR PC,CREPKT
;	BR 75$
;751$:	MOV #14,R0
;	EMT 16
;	JSR R5,INL
;	.WORD TXT5	;/Имя сети :/
;	JSR PC,FFSTR
; Начали добавлять...
75$:	MOV #232,R0
	EMT 16
DFPK:	MOV #MPKT,177716
	JSR PC,SPKT
	JSR PC,SETAK
	JSR PC,GETNAM
	BCC 2$
	MOV #<2+20+10+40>,BPM	;EXIT:
	JSR PC,SVPKT
	JSR PC,SVMID
	CLR R0
	SOB R0,.
	JMP 100000

2$:	MOV APKT,R0
	ADD 324,R0
	CMP R0,#74000
	BLO 1$
	MOV #<2+20+40+10>,BPM
	JSR PC,SVPKT
	MOV #MPKT,177716
	JSR R1,@TXT
	.ASCIZ/Пакет переполнен. Создается новый./<232><12>
	.EVEN
	MOV SP,FLAG
	JMP CLDST
1$:	BIC #100000,2(R5)
	JSR R1,@TXT
	.ASCIZ/Обрабатывается файл /
	.EVEN
	MOV #326,R1
	MOV #16,R2
	EMT 20
	MOV #320,R1
	MOV #40002,2(R1)
	MOV #<3+10+20>,(R1)
	MOV #MMSG,177716
	EMT 36
	TSTB 1(R1)
	BNE DFPK
	MOV #40000,R0
	CLR (R0)+
	MOV 324,R1
10$:	MOVB	#'╖,R5
	MOVB (R0),R2
	BPL 91$

	cmpb	R2,#252		;'╙
	bne	92$
	cmpb	1(r0),R5
	bne	99$
	movb	#311,R2
	BR	9$
92$:	cmpb	r2,#246		;'╕
	bne	93$
	cmpb	1(r0),R5
	bne	99$
	movb	#310,r2
	br	9$
93$:	MOVB	#'м,R5
	cmpb	r2,#243		;'ё
	BNE	94$
	cmpb	-1(r0),r5
	bne	99$
	movb	#273,r2
	br	9$
94$:	cmpb	r2,#271		;'╧
	bne	99$
	cmpb	-1(r0),r5
	bne	99$
	movb	#274,r2
	br	9$
99$:	MOVB <KOITAB-177600>(R2),R2
91$:	CMPB R2,#12
	BNE 9$
	CLR R2
9$:
4$:	MOVB R2,(R0)+
3$:	SOB R1,10$

	mov	#dfpk,-(sp)
	Jmp	ADDMSG
	;BR DFPK
;------ Добавить MSG к пакету -----
ADDMSG:	MOV #MDAT,177716
	CLR DPT
	CLR (PC)+
MODE:	.WORD 0
	MOV APKT,R1
	ADD #2,R1
	MOV PONODE,R4
	JSR PC,PUTW
	JSR PC,PUTW	; У босса такая-же нода, логично?
	MOV PDNET,R4	; Пакет идет боссу от пойнта, WARNING!
	JSR PC,PUTW
	JSR PC,PUTW	; и сеть тоже...
	mov	#'E,r4
	Jsr	pc,finstr
	mov	#mdat,177716	;jsr	pc,makstr
	bcs	888$
	MOV	R1,-(SP)
	mov	#bufer,r1
	jsr	pc,ddc
	MOV	(SP)+,R1
	mov	r5,r4
	tst	(pc)+
888$:	clr	r4
	JSR PC,PUTW	; ATTR
	clr	r4
	JSR	PC,PUTW	; COST

	MOV #'D,R4	; DATE
	JSR PC,FINSTR
	bcc	767$
	;CMPB BUFER,#40
	;BNE 767$
	JSR PC,MDATE
767$:	JSR PC,MAKSTR

	MOV #'T,R4	; TO
	JSR PC,FINSTR
	JSR PC,MAKSTR

	MOV #'F,R4	; FROM
	JSR PC,FINSTR
	bcc	768$
	;CMPB BUFER,#40
	;BNE 768$
	JSR PC,MDFRM
768$:	JSR PC,MAKSTR

	MOV #'S,R4	; SUBJ
	JSR PC,FINSTR
	JSR PC,MAKSTR
	MOV R1,(PC)+
APKT2:	.WORD 0

	MOV	#'N,R4		; Это NETMAIL?
	JSR	PC,FINSTR
	bcs	8$
	;CMPB	BUFER,#40
	;BEQ	8$
	MOV	PDNET,DNT	; Адрес по умолчанию
	MOV	PDNODE,DND
	CLR	DPT		;MOV POPOIN,DPT
	MOV	#BUFER,R1
	MOV	POZONE,R5
	CMPB	(R1),#':	; Нет зоны 
	BEQ	24$
23$:	CMPB	(R1),#'/	; только нода
	BEQ	21$
	CMPB	(R1),#'.	; только поинт
	BEQ	22$
	JSR	PC,DDC
24$:	CMP	PDZONE,#-1
	BNE	1$
	MOV	R5,PDZONE
1$:	MOV	R5,QDZONE	;;;;
	CMP	R5,PDZONE
	BEQ	2$
3$:	JMP	TXT20	;BEEP, RTS PC	; Несовпадение зон!!!
2$:	JSR	R5,FCH
	.WORD	':
	BCS	3$
	JSR	PC,DDC
	MOV	R5,DNT
21$:	JSR	R5,FCH
	.WORD	'/
	BCS	3$
	JSR	PC,DDC
	MOV	R5,DND
22$:	JSR	R5,FCH
	.WORD	'.
	BCS	4$
	JSR	PC,DDC
	MOV	R5,DPT
4$:	cmp	pdzone,#-1
	bne	41$
	mov	pozone,pdzone
	mov	pozone,qdzone
41$:	MOV	APKT,R1
	ADD	#4,R1
	MOV	DND,R4
	JSR	PC,PUTW
	ADD	#2,R1
	MOV	DNT,R4
	JSR	PC,PUTW

	MOV	APKT2,R1
	
	JSR	PC,WRTPNT

	BR	MMS
8$:	MOV	#'A,R4
	INC	MODE
	JSR	PC,FINSTR
	BCS	3$		; Это не NETMAIL и не ECHOMAIL...
	CMP	PDZONE,#-1
	BNE	12$
	MOV	POZONE,PDZONE
	mov	pozone,qdzone
12$:	CMP	POZONE,PDZONE
	BNE	3$
	MOV	#MDAT,177716
	MOV	#TXT10,R0	;/AREA:/
	MOV	#5,R2
11$:	MOVB	(R0)+,(R1)+
	SOB	R2,11$
	JSR	PC,MAKSTR
	MOVB	#15,-1(R1)

MMS:	JSR	PC,MSGID	; Поставить MSGID

	MOV	#'R,R4
	JSR	PC,FINSTR
	CMPB	BUFER,#40
	BEQ	765$
	MOV	#MDAT,177716
	MOV	#TXT15,R0		;/REPLY: /
	MOV	#8.,R2
766$:	MOVB	(R0)+,(R1)+
	SOB	R2,766$
	JSR	PC,MAKSTR
	MOVB	#15,-1(R1)

765$:	MOV	#40002,R0	; Добавляем само сообщение
	MOV	324,R5
	ADD	R0,R5
3$:	MOV	#MMSG,177716
	CMP	R0,R5
	BHIS	6$
	CMPB	(R0),#'@
	BNE	1$
	TSTB	-1(R0)
	BNE	1$
	CMPB	1(R0),#'*
	BNE	15$
	JSR	PC,INORIG	; Вставить *ORIGIN
	BR	3$
15$:	CMPB	2(R0),#':
	BNE	1$
2$:	TSTB	(R0)+
	BNE	2$
	BR	3$
1$:	TSTB	(R0)
	BEQ	4$
	MOVB	(R0),R3
5$:	INC	R0
	MOV	#MDAT,177716
	MOVB	R3,(R1)+
	BR	3$
4$:	MOV	#15,R3
	BR	5$
6$:	MOV	#MDAT,177716
	CLRB	(R1)+
	CLRB	(R1)+
	CLRB	(R1)+
	CLRB	(R1)+
	MOV	APKT,R1
	MOV	#2,R4	; Выыыыыыыыыыыы!
	Jmp	PUTW
DNT:	.WORD 0
DND:	.WORD 0
DPT:	.WORD 0
;------ DEFAULT FROM ----
MDFRM:	MOV	#MDAT,177716
	MOV	CNFADR,R0
1$:	CMPB	(R0)+,#40
	BEQ	1$
2$:	CMPB	(R0)+,#40
	BNE	2$
3$:	CMPB	(R0)+,#40
	BEQ	3$
	DEC	R0
	MOV	#BUFER,R2
4$:	MOVB	(R0)+,(R2)+
	BNE	4$
	DEC	R2
5$:	CMPB	-(R2),#40
	BEQ	5$
	CLRB	1(R2)
	MOV	#MPKT,177716
	RTS	PC
;------ Создать дату ----
MDATE:	MOV	R1,-(SP)
	MOV	#BUFER,R2
	MOV	PDAY,R1
	JSR	PC,D1OU
	MOVB	#40,(R2)+
	MOV	PMON,R0
	BNE	1$
	INC	R0
1$:	CMP	R0,#12.
	BLOS	2$
	MOV	#1,R0
2$:	MOV	R0,R1
	ASL	R0
	ADD	R1,R0
	ADD	#<TXT18-3>,R0	;/JanFebMar../
	MOVB	(R0)+,(R2)+
	MOVB	(R0)+,(R2)+
	MOVB	(R0)+,(R2)+
	MOVB	#40,(R2)+
	MOV	PYEAR,R1
	SUB	#1900.,R1
	JSR	PC,D1OU
	MOVB	#40,(R2)+
	MOVB	#40,(R2)+
	MOV	PHOUR,R1
	JSR	PC,D1OU
	MOVB	#':,(R2)+
	MOV	PMIN,R1
	JSR	PC,D1OU
	MOV	PSEC,R1
	MOVB	#':,(R2)+
	JSR	PC,D1OU
	CLRB	(R2)+
	MOV	(SP)+,R1
	RTS	PC
D1OU:	MOV	#2,R3
	JSR	PC,MDEC
	CMPB	-2(R2),#40
	BNE	1$
	MOVB	#60,-2(R2)
1$:	RTS	PC
;------ Вставить origin ----
INORIG:	TSTB	(R0)+	; Пропустим упр. коды
	BNE	INORIG
	MOV	#MDAT,177716
	MOV	R0,-(SP)
	MOV	CNFADR,R0

	MOV #2,R3	; SKIP ADR&PASSW
1$:	TSTB (R0)+
	BNE 1$
	SOB R3,1$

	CLR	R3
	;mov	#2,r3
2$:	MOVB (R0)+,(R1)+
	BNE 2$
	MOVB #15,-1(R1)
	TST	R3
	BNE	7$
	cmpB	(r0),#40
	bne	2$
	CMPB	1(R0),#'*
	BNE	2$
	INC	R3
	BR	2$
	;sob	r3,2$

7$:
	TST MODE
	BEQ 4$
	JSR R5,5$
	.WORD TXT16		;/SEEN-BY: /
	JSR R5,5$
	.WORD TXT17		;<1>/PATCH: /
4$:	MOV (SP)+,R0
	RTS PC
5$:	MOV (R5)+,R0
	MOV R5,(SP)
6$:	MOVB (R0)+,(R1)+
	BNE 6$
	DEC R1
	MOV PDNET,R5
	JSR PC,dDDOUT
	.word	'/
	MOV PDNODE,R5
	JSR PC,DDdOUT
	.word	15
	RTS PC
;------ Прописать пойнтов -------
WRTPNT:	MOV #MDAT,177716
	mov	#txt7,r0	;<1>/intl /
	mov	#6,r2
5$:	movb	(r0)+,(r1)+
	sob	r2,5$
	mov	pozone,r5
	jsr	pc,dddout
	.word	':
	mov	dnt,r5
	jsr	pc,dddout
	.word	'/
	mov	DND,r5
	jsr	pc,dddout
	.word	40
	mov	pdzone,r5
	jsr	pc,dddout
	.word	':
	mov	PdnEt,r5
	jsr	pc,dddout
	.word	'/
	mov	PONODE,r5
	jsr	pc,dddout
	.word	15
	MOV DPT,R5
	BEQ 1$
	MOV #TXT11,R0		;<1>/TOPT /
	JSR PC,4$
1$:	MOV POPOIN,R5
	BEQ 2$
	MOV #TXT12,R0		;<1>/FMPT /
4$:	MOV #6,R2
3$:	MOVB (R0)+,(R1)+
	SOB R2,3$
	JSR PC,DDdOUT
	.word	15
2$:	RTS PC
;------ Вывод числа из R5 ---
dddout:	call	ddout
	mov	(sp),r0
	movb	(r0),(r1)+
	ADD	#2,(SP)
	rts	pc
DDOUT:	MOV R1,-(SP)
	MOV R5,R1
	MOV #BUFER,R2
	MOV #5,R3
	JSR PC,MDEC
	CLRB (R2)+
	MOV (SP)+,R1
	MOV #BUFER,R0
5$:	CMPB (R0)+,#40
	BEQ 5$
	DEC R0
6$:	MOVB (R0)+,(R1)+
	BNE 6$
	DEC R1
	RTS PC
;------ Проставить MSGID ----
MSGID:	MOV #MDAT,177716
	MOV #TXT14,R0		;<1>/MSGID: /
	MOV #10,R2
1$:	MOVB (R0)+,(R1)+
	SOB R2,1$
	MOV POZONE,R5
	JSR PC,DDdOUT
	.word	':
	MOV PDNET,R5
	JSR PC,dDDOUT
	.word	'/
	MOV PONODE,R5
	JSR PC,dDDOUT
	.word	'.
	MOV POPOIN,R5
	JSR PC,DDdOUT
	.word	40
	ADD #111,MIDTEK
	ADC MIDTEK+2
	MOV #MIDTEK+4,R0
	MOV #4,R2
3$:	MOVB -(R0),R3
	ASR R3
	ASR R3
	ASR R3
	ASR R3
	JSR PC,55$
	MOVB (R0),R3
	JSR PC,55$
	SOB R2,3$
	MOVB #15,(R1)+
	MOV #TXT19,R0		;<1>/PID: BK11M ImageMailer/
31$:	MOVB (R0)+,(R1)+
	BNE 31$
	MOVB #15,-1(R1)
	RTS PC
55$:
msg55:	BIC #177760,R3
	CMP R3,#9.
	BHI 56$
	ADD #60,R3
57$:	MOVB R3,(R1)+
	RTS PC
56$:	ADD #<'a-10.>,R3
	BR 57$
;------ It is ... ---
MDEC::	CLR R5
	MOV #TDEC+12,R4
	SUB R3,R4
	SUB R3,R4
4$:	CLR R0
2$:	INC R0
	SUB (R4),R1
	BPL 2$
	ADD (R4)+,R1
	DEC R0
	BNE 5$
	TST R5
	BNE 5$
	CMP R3,#1
	BEQ 5$
	MOV #-20,R0
	BR 3$
5$:	MOV SP,R5
3$:	ADD #60,R0
	MOVB R0,(R2)+
	SOB R3,4$
	RTS PC
TDEC:	.WORD 10000.,1000.,100.,10.,1
;------ Сбросить буфер ASCIZ строкой ---
MAKSTR:	MOV #MDAT,177716
	MOV #BUFER,R0
1$:	MOVB (R0)+,(R1)+
	BNE 1$
	RTS PC
;------ Найти в тексте строку @x: ----
FINSTR:	MOV #MMSG,177716
	MOV #40000,R0
	MOV 324,R3
	ADD R0,R3
	ADD #2,R3
1$:	CMP R0,R3
	BHIS 5$
	TSTB (R0)+
	BNE 1$
	CMPB (R0),#'@
	BNE 1$
	CMPB 1(R0),R4
	BNE 1$
	CMPB 2(R0),#':
	BNE 1$
	ADD #3,R0
2$:	CMPB (R0)+,#40
	BEQ 2$
	DEC R0
	MOV #BUFER,R3
3$:	TSTB (R0)
	BEQ 4$
;	CMPB (R0),#40
;	BEQ 4$
	MOVB (R0)+,(R3)+
	BR 3$
4$:	CLRB (R3)+
	RTS PC
5$:	MOV #BUFER,R0
	MOVB #40,(R0)+
	CLRB (R0)+
	SEC
	RTS PC
;------ MOV R4,(R1)+ ----
PUTW:	MOV #MDAT,177716
	MOVB R4,(R1)+
	SWAB R4
	MOVB R4,(R1)+
	SWAB R4
	RTS PC
;------ Записать пакет -------
SVPKT:	MOV 120124,-(SP)
	MOV #400,120124
	JSR PC,SETAK
	MOV #MDAT,177716
	MOV APKT,R0
	CLRB (R0)+
	CLRB (R0)+
	CLRB (R0)+
	CLRB (R0)+
	SUB #PKTDAT,R0
	MOV R0,<BPM+4>

	mov	120010,-(sp)
	tstb	boss
	bmi	1$
	mov	#subbos-6,306
	bisb	#60,boss
3$:	mov	dir,r3
	jsr	pc,@Dirfin
	bcc	2$
	movb	#'$,boss
	MOV	DIR,R3
	JSR	pc,@dirfin
	bcs	1$
2$:	movb	(r3),120010
1$:	MOV #BPM,R1
	EMT 36
	mov	(sp)+,120010
	MOV #MPKT,177716
	MOV (SP)+,120124
	RTS PC
subbos: .ascii<177>/OUT_#/
boss:	.byte	0
	.ascii/         /
	.even
;------ Установить адрес конца пакета ----
SETAK:	MOV #<PKTDAT+72>,R5
	MOV #MDAT,177716
3$:	TSTB (R5)
	BNE 1$
	TSTB 1(R5)
	BEQ 4$
1$:	ADD #<2*7>,R5
	MOV #5,R4
2$:	TSTB (R5)+
	BNE 2$
	SOB R4,2$
	BR 3$
4$:	MOV R5,(PC)+
APKT:	.WORD 0
	MOV #MPKT,177716
	RTS PC
;------ Преложить в 320 имя выделеного ф. и снять в. ----
GETNAM:	MOV #MPKT,177716	;Развыделение в вызывающей прг.
	MOV DIR,R5
	MOV 30(R5),R4
	ADD #<500-30>,R5
3$:	ADD #30,R5
2$:	CMPB (R5),#377
	BEQ 3$
1$:	TST 22(R5)
	BMI 4$
	SOB R4,3$
	SEC
	RTS PC
4$:	TST (R5)+
	MOV #7,R4
	MOV #326,R0
5$:	MOV (R5)+,(R0)+
	SOB R4,5$
	MOV 6(R5),324
	CLC
	RTS PC
;------ DSKS ----
DSKS:	TST 177132
	CLR 177130
	CLR @120006
	RTS PC
;------ Показать информацию о пакете -----
SPKT:	JSR R1,@TXT
	.ASCIZ<14>/Идет обработка пакета.../<12>
	.EVEN
	RTS PC
;------ Декодировать дес. число ----
DDC:	CLR R5
2$:	MOVB (R1)+,R0
	CMP R0,#'9
	BHI 1$
	CMP R0,#'0
	BLO 1$
	SUB #60,R0

	MOV R5,R2	; *10
	ASL R5
	ASL R5
	ADD R2,R5
	ASL R5

	ADD R0,R5
	BR 2$

1$:	DEC R1
	RTS PC
;------ Ввести строку ------
INL:	MOV (R5)+,R1
	MOV R5,(SP)
	CLR R2
	EMT 20
	MOV #FREMEM,R1
	MOV #5100,R2
	EMT 10
	CLRB -1(R1)
	RTS PC
;------ Найти символ или конец строки ---
FCH:	MOV (R5)+,R0
	TSTB (R1)
	BEQ 1$
	CMPB (R1)+,R0
	BNE FCH
	TST (PC)+
1$:	SEC
	RTS R5
;------ Создаем пустой PKT-шник -------
CREPKT:	TST (PC)+
FLAG:	.WORD 0
	BNE 559$
	JSR R1,@TXT
	.ASCIZ<14>/Создание PKT-файла. Введите параметры./<12>
	.EVEN

	JSR PC,MKDD
	MOV SMD,PDAY	; Default date
	MOV SMM,PMON
	MOV SMY,PYEAR
	JSR R5,INL	; DATE
	.WORD TXT3	;/Дата [/
	MOV #FREMEM,R1
	JSR PC,DDC
	TST R5
	BEQ 1$
	MOV R5,PDAY
	MOV R5,SMD
	JSR R5,FCH
	.WORD '.
	BCS 1$
	JSR PC,DDC
	MOV R5,PMON
	MOV R5,SMM
	JSR R5,FCH
	.WORD '.
	BCS 1$
	JSR PC,DDC
	CMP R5,#1900.
	BHI 2$
	ADD #1900.,R5
2$:	MOV R5,PYEAR
	MOV R5,SMY

1$:	JSR R5,INL	; TIME
	.WORD TXT4	;/Время [CH:MN:SC] : /
	MOV #FREMEM,R1
	JSR PC,DDC
	MOV R5,PHOUR
	JSR R5,FCH
	.WORD ':
	BCS 3$
	JSR PC,DDC
	MOV R5,PMIN
	JSR R5,FCH
	.WORD ':
	BCS 3$
	JSR PC,DDC
	MOV R5,PSEC

3$:	JSR R5,INL	;сетка
	.WORD TXT5	;/Имя сети : /
	JSR PC,FFSTR
	JSR R5,SBCP	; Password
	.WORD 1
	MOV #FREMEM,R1
4$:	TSTB (R1)+
	BNE 4$
	DEC R1
	MOV #9.,R2
5$:	CLRB (R1)+
	SOB R2,5$
	MOV #FREMEM,R1
	MOV #PASSW,R2
	MOV (R1)+,(R2)+
	MOV (R1)+,(R2)+
	MOV (R1)+,(R2)+
	MOV (R1)+,(R2)+
559$:
	JSR R5,SBCP	; ADRESS
	.WORD 0
	MOV #FREMEM,R1
	JSR PC,DDC
	MOV R5,POZONE
	MOV R5,QOZONE	; Не лезь, куда не знаешь...
	JSR R5,FCH
	.WORD ':
;	BCS CREPKT	; Раньше все шло с клавы...
	JSR PC,DDC
	MOV R5,PONET
	MOV R5,PDNET
	JSR R5,FCH
	.WORD '/
;	BCS CREPKT
	JSR PC,DDC
	MOV R5,PONODE
	MOV R5,PDNODE
	CLR POPOIN
	JSR R5,FCH
	.WORD '.
	BCS 7$
	JSR PC,DDC
	MOV R5,POPOIN
7$:	MOV #<PKTDAT+22>,R0
	MOV #2,(R0)+
	CMP (R0)+,(R0)+
	MOV #401,(R0)+
	ADD #<46-32>,R0
	MOV PDNET,(R0)+		;aonet
	MOV #400,(R0)+
	MOV #401,(R0)+
	MOV #1,(R0)+
	TST (R0)+
	MOV #-1,(R0)+
	TST (R0)+
	CLR (R0)+
	.REPT 5
	CLR (R0)+
	.ENDR
;CLR QOZONE
;CLR QDZONE
	RTS PC
;------ Скопировать строку в буфер ---
SBCP:	MOV #MDAT,177716
	MOV (PC)+,R0
CNFADR:	.WORD 0
	MOV (R5)+,R1
	BEQ 1$
2$:	TSTB (R0)+
	BNE 2$
	SOB R1,2$
1$:	MOV #FREMEM,R1
3$:	MOVB (R0)+,(R1)+
	BNE 3$
	MOV #MPKT,177716
	RTS R5
;------ Найти номер первой строки в конф. ----
FFSTR:	MOV #MDAT,177716
	MOV #74000,R0
;	CLR R1
3$:	CMPB (R0)+,#'@
	BEQ 1$
2$:	TSTB (R0)+
	BNE 2$
;	INC R1
	BR 3$
1$:	TSTB (R0)
	BEQ 4$
	MOV #FREMEM,R2
7$:	TSTB (R0)
	BEQ 2$
	TSTB (R2)
	BEQ 6$
	CMPB (R0)+,(R2)+
	BEQ 7$
	BR 2$

6$:	;INC R1
61$:	TSTB (R0)+
	BNE 61$

	MOV R0,CNFADR
	;tst	-(r0)
	CMPB	-(R0),#40
	Blos	.-4
	
	;DEC	R0
	;CMPB	(R0)+,#40
	;BLOS	.-4
	;DEC	R0
	movb	(r0),r0
	CMPB	R0,#'$
	BEQ	71$
	CMPB	R0,#'9
	BHI	72$
	CMPB	R0,#'0
	BHIS	71$
72$:	MOVB	#-1,R0
71$:	movb	r0,boss

	TST (PC)+
4$:	SEC
	MOV #MPKT,177716
	RTS PC
;------ Прочитать MSGID ----
LNMID=	12
SVMID:	MOV #MIDPAR,R1
	MOV #LNMID,4(R1)
	MOV #2+10+20,(R1)
	MOV 120124,-(SP)
	CLR 120124
	MOV 120010,-(SP)
	MOV (PC)+,R0
PDKT:	.WORD 0
	MOVB R0,120010
	EMT 36
	MOV (SP)+,120010
	MOV (SP)+,120124
	TSTB 1(R1)
	BNE SVMID
	RTS PC
LOAMID:	MOV #MIDPAR,R1
	MOV #<3+10+20>,(R1)
	EMT 36
	TSTB 1(R1)
	BEQ 1$
	MOV 177132,R0
	SOB R0,.
	MOV #MIDTEK,R0
	MOV #4,R1
3$:	MOV 177132,R2	; ГСЧ
	MOVB R2,(R0)+
	SOB R2,.
	SOB R1,3$
	MOV #5,(R0)+
	MOV #9.,(R0)+
	MOV #1995.,(R0)+
	JSR PC,TXT20	;BEEP
1$:	RTS PC
;------ PKT.MID -----
MIDTEK:	.WORD 0,0
SMD:	.WORD 0
SMM:	.WORD 0
SMY:	.WORD 0
;------ Создать def.date ----
MKDD:	CMP SMD,#32.
	BLO 1$
	MOV #1,SMD
1$:	CMP SMM,#13.
	BLO 2$
	MOV #1,SMM
2$:	CMP SMY,#1995.
	BLO 3$
	CMP SMY,#2050.
	BLO 4$
3$:	MOV #1995.,SMY
4$:	MOV SMD,R1
	MOV #TXT3D,R2		;/DD./
	JSR PC,10$
	MOV SMM,R1
	MOV #TXT3M,R2		;/MM./
	JSR PC,10$
	MOV SMY,R1
	CMP R1,#1999.
	BHI 5$
	SUB #1900.,R1
	BR 6$
5$:	SUB #2000.,R1
6$:	MOV #TXT3Y,R2		;/YY] : /
	;JSR PC,10$
	;RTS PC
10$:	MOV #2,R3
	JSR PC,MDEC
	CMPB -2(R2),#40
	BNE 11$
	MOVB #'0,-2(R2)
11$:	RTS PC
;------ Чтение файла конфигурации
LOACNF:	MOV #CNFPAR,R1
	EMT 36
	TSTB 1(R1)
	BEQ 1$
	JSR R1,@TXT
	.ASCIZ/?PKT-F-Нет файла конфигурации/<12><12>
	.EVEN
	HALT

1$:	MOV #MDAT,177716
	MOV #30000,R0
	MOV #74000,R1
	MOV #4000,R2
3$:	MOVB (R0)+,R3
	BPL 31$
	MOVB <KOITAB-177600>(R3),R3
	BR 2$
31$:	CMP R3,#12
	BNE 2$
	CLR R3
2$:	MOVB R3,(R1)+
	SOB R2,3$
	MOV 266,R0
	ADD #74000,R0
	CLRB (R0)+
	MOVB #'@,(R0)+
	CLRB (R0)+
	MOV #MPKT,177716
	RTS PC
;------ TEXTS ----
BPM:	.WORD 0,PKTDAT,0
	.BLKB 40
TXT2:	.ASCII/.PKT/
TXT3:	.ASCII/Дата [/
TXT3D:	.ASCII/DD./
TXT3M:	.ASCII/MM./
TXT3Y:	.ASCIZ/YY]  : /
TXT4:	.ASCIZ/Время [CH:MN:SC] : /
TXT5:	.ASCIZ/Имя сети         : /
;TXT6:	.ASCIZ"Ваш адрес [Z:N/D.P] : "
TXT10:	.ASCII/AREA:/
TXT7:	.Asciz<1>/INTL /
TXT11:	.ASCII<1>/TOPT /
TXT12:	.ASCII<1>/FMPT /
TXT14:	.ASCII<1>/MSGID: /
TXT15:	.ASCII<1>/REPLY: /
TXT16:	.ASCIZ/SEEN-BY: /
TXT17:	.ASCIZ<1>/PATH: /
TXT18:	.ASCII/JanFebMarAprMayJunJulAugSepOctNovDec/
TXT19:	.ASCIZ<1>/PID: BK11M-Image v1.12 by LAV & MKT/
	.EVEN

TXT20:	JSR R1,@TXT
	.BYTE 7,7,7,7,7,7,7,7,14,0
	.EVEN
	RTS PC
KOITAB:

.WORD 020040,020040,020040,020040,020040,020040,020040,020040	;200
.WORD 020040,020040,020040,020040,020040,020040,020040,020040	;220

	.ASCII<24>/а/<3>/©╣цюмя/<6>/збп/<31>/е╨/		;240
	.ASCII/╢/<33>/н/<30><5>/двЁ/<4>/ыьроф/<32>/╠/		;260
	.ASCII/Н═║Ф╓╔ДёЕ╗╘╙╚╛╜╝/				;300
	.ASCII/╞ОЮАБy╕╒ЛК╖ХМИГЙ/				;320
	.ASCII<236><200><201><226><204><205><224><203>		;340
	.ASCII<225><210><211><212><213><214>/H/<216>		;350
	.ASCII<217><237><220><221><222><223><206><202>		;360
	.ASCII<234><233><207><230><235><231><227><232>		;370

MIDPAR:	.WORD 3+10+20,MIDTEK,0
	.ASCII/PKT.MID         /
	.BLKB 24.
;------ Буферная память --------------
BUFER:	.BLKB 80.
PKTDAT:	
PONODE:	.WORD 0
PDNODE:	.WORD 0
PYEAR:	.WORD 0
PMON:	.WORD 0
PDAY:	.WORD 0
PHOUR:	.WORD 0
PMIN:	.WORD 0
PSEC:	.WORD 0
	.WORD 14400.
	.WORD 2
PONET:	.WORD 0
PDNET:	.WORD 0
	.BYTE 0,0
PASSW:	.BLKB 8.
QOZONE:	.WORD 0
QDZONE:	.WORD 0
AONET:	.WORD 0
	.WORD 0
	.BYTE 0,0
	.WORD 0
POZONE:	.WORD 0
PDZONE:	.WORD -1
POPOIN:	.WORD 0,0
	.WORD 0,0
;------ Начало пакета -----
;------ Блок параметров файла конфигурации ---
CNFPAR:	.WORD 3+10+20,30000,0
	.ASCII/PKT.CNF         /
	.BLKB 24.
;------ Поиск подкаталога, откуда грузили ---
PODKAT:	MOV #midpar,306
	MOV DIR,R3
	JSR PC,@DIRFIN
	BCS 2$
	MOVB 1(R3),PDKT
2$:	RTS PC

.BLKW 15.
.END START
                                                                                                                                                                                                                                                                                                                                                                                                                          