	.TITLE	PRO
	.MCALL	.PURGE	.FPROT
	.DSABL	GBL
	.GLOBL	.10
	.GLOBL	ALT	BREAK
	.GLOBL	ENTRY
	.GLOBL	UPACK	UNPACK	PRPACK
	.GLOBL	AREA

	.GLOBL	DEFS	SCANS	TOASZ	FFILE
	.GLOBL	FUNC	FLAG	FOUND

	.GLOBL	S.WHAT	S.DPU	EX
	.GLOBL	UNCACHE

	.INCLU	"SCRMAC"
	.INCLU	"DIAMAC"

DIAGS:	.WORD	D.SELUNP	,D.SELPRO
DING:	.WORD	D.UNPING	,D.PROING
CANT:	.WORD	D.CUPF		,D.CPF

S.PRO::
.PRO	=	. + 4
	MOV	#2,#0
	MOV	#2,S.WHAT
	BR	.CONT
S.UNPRO::
	CLR	.PRO
	MOV	#4,S.WHAT
.CONT:	JMP	S.DPU

PRO::
	MOV	#2,.PRO
	BR	CONT
UNPRO::
	CLR	.PRO
CONT:
	CALL	UNCACHE
	CLR	FLAG
	CALL	DEFS
	BEQ	NOSEL

	MOV	#T.YHS+18.,R1
	MOV	#3.,R3
	CALL	.10
	MOV	.PRO,R1
	.DIALOG	DIAGS(R1)
	DEC	R1
	BEQ	1$
	JMP	ENTRY

1$:	MOV	#.UNPRO,FUNC
	CALL	SCANS
	BR	.EX

NOSEL:	CALL	UPACK
	CALL	..UNPRO
.EX:	JMP	EX


.MACRO	.BREAK	?LABEL
	TSTB	BREAK
	BEQ	LABEL
	RETURN
LABEL:
.ENDM

.UNPRO::
	CALL	UNPACK
..UNPRO:
	CALL	PRPACK
	MOV	#T.F3,R3
	CALL	TOASZ
	CALL	FFILE

	INCB	FOUND

	TSTB	.PRO
	BEQ	1$
	TST	(R2)
	BMI	4$
	BR	2$
1$:	TST	(R2)
	BPL	4$

2$:	MOV	.PRO,R1
	.DIALOG	DING(R1)
	INCB	ING

3$:	.BREAK
	.PURGE	#0
	MOV	.PRO,R1
	ASR	R1
	.FPROT	#AREA,#0,R4,R1
	BCC	5$
	.DIALOG	CANT(R1)
	DEC	R1
	BEQ	3$
	RETURN

4$:	BIT	#1,(R2)
	BEQ	6$
5$:	INC	FLAG
	BIC	#1,(R2)
6$:	RETURN

	.END
                                                                                                                                                                                                                         