	.TITLE	SEARCH
	.DSABL	GBL
	.GLOBL	CHAR	KEYIN	.INPKE	..INPK
	.GLOBL	O.SCRO	.LIN3	BAX	MODE
	.GLOBL	PTRS	SCROL	OFFS	RDRAW
	.GLOBL	ALT	ENALT	INPKEY	KILKEY
	.GLOBL	MINI	UNPNX	CORR
	.GLOBL	L.GOTO

	.GLOBL	BRIEF	FULL	INFO	ONOFF	CTRLO

	.INCLU	"SCRMAC"

BY	=	HEIGHT-3

SEARCH::
	BIT	#ONOFF!INFO,MODE(R5)
	BNE	2$
	CALL	WHO
	BCC	1$
2$:	JMP	CHAR

1$:	MOV	BAX(R5),R1
	ADD	#<WIDTH2-DX>/2,R1
	.WGET	R1,#HEIGHT-3,#DX,#3
	.WATTR	#^B1000
	.WPUT	#T.1,R1,#BY,#DX
	.WPUT	#T.2,R1,#BY+1,#DX
	.WPUT	#T.3,R1,#BY+2,#DX
	ADD	#2+10,R1
BX	=	. + 2
	MOV	R1,#0
LEN	=	. + 2
	CLR	#0
	MOV	SCROL(R5),R1
	ADD	OFFS(R5),R1
CURRENT	=	. + 2
	MOV	R1,#0
	MOV	#137,.INPKEY
	MOV	#INP,.INPKEY+2
	BR	.INP

BACK:	TST	LEN
	BEQ	INP
	DEC	LEN
PRI:	MOV	LEN,R0
	BEQ	1$
	.WATTR	#^B0011
	.WPUT	#LINE,BX,#BY+1,R0

1$:	MOV	BX,R1
	ADD	R0,R1
	NEG	R0
	ADD	#6+1+3+1,R0
	.WCLR	R1,#BY+1,R0
	.WGCUR	R1,#BY+1
	CALL	KILKEY
	JMP	KEYIN
INP:	CALL	INPKEY
	TST	R0
	BEQ	INP
.INP:	TSTB	ALT
	BEQ	4$
	CMPB	R0,#200
	BEQ	S.ENTER
4$:	CMPB	R0,#200!40
	BEQ	S.ENTER
	CMPB	R0,#230
	BEQ	BACK
	CMPB	R0,#230!40
	BEQ	BACK
	CALL	WHO
	BCC	3$
	CMPB	R0,#33
	BEQ	1$
	CMPB	R0,#212
	BNE	2$
1$:	CLRB	R0
2$:	.WRES
	CALL	L.GOTO
	MOV	#105137,.INPKEY
	MOV	#ENALT,.INPKEY+2
	JMP	..INPKEY

3$:	CMP	LEN,#6+1+3
	BEQ	PRI
	MOV	LEN,R1
	MOVB	R0,LINE(R1)
	INC	LEN
	MOV	CURRENT,R1
	CALL	SEA
	BCS	BACK
	BR	PRI

S.ENTER:
	MOV	CURRENT,R1
	INC	R1
	CMP	R1,@R5
	BNE	1$
	CLR	R1
1$:	CALL	SEA
	BR	PRI

SEA:	TST	@R5
	BEQ	8$
	MOV	R1,R3
	ASL	R3
	ADD	PTRS(R5),R3
2$:	MOV	(R3)+,R2
	MOV	R1,-(SP)
	CALL	UNPNX
	MOV	(SP)+,R1
	MOV	LEN,R0
	BEQ	4$
	MOV	#MINI,R2
	MOV	#LINE,R4
3$:	CMPB	(R2)+,(R4)+
	BNE	6$
	SOB	R0,3$

4$:	MOV	R1,CURRENT
	MOV	.LIN3,R4
	CALL	CORR
	CMP	SCROL(R5),O.SCROL
	BEQ	5$
	INCB	RDRAW(R5)
5$:	CLC
	RETURN

6$:	INC	R1
	CMP	R1,(R5)
	BNE	7$
	CLR	R1
	MOV	PTRS(R5),R3
7$:	CMP	R1,CURRENT
	BNE	2$
8$:	SEC
	RETURN

WHO::	CMPB	R0,#' 
	BLO	1$
	CMPB	R0,#'a
	BHIS	1$
	CLC
	RETURN
1$:	SEC
	RETURN

.MACRO	.EXT	CHAR,N
	.REPT	N
		.BYTE	CHAR
	.ENDR
.ENDM

DX	=	2+ 10+ 6+1+3 +1  +2

T.1:    .BYTE	250
	.EXT	272,DX-2
	.BYTE	277

T.2:    .BYTE	244
	.ASCII	" Search:             "
	.BYTE	244

T.3:    .BYTE	266
	.EXT	272,DX-2
	.BYTE	274

LINE:	.ASCII	"MYFILE.PAF"

	.EVEN

	.END
                                                                                                                                                                                                                                       