	.TITLE	MATCH
;+
; MASK -> .ASCIZ / '*' - Matches null or more chars; '%' matches one char/
;  STR -> .ASCIZ
;
; R1 = MASK
; R2 = STR
;
; Examples :
;	MASK = "A*B%"
;		STR = "ABX", "AOROROBM"; MATCH(MASK,STR) = 1
;		STR = "AAB", "ORPOROBM"; MATCH(MASK,STR) = 0
;
; pETROSQN a.f.
;-

MATCH::
	MOV	R1,-(SP)
	MOV	R2,-(SP)

1$:	MOVB	(R1),R0
	BISB	(R2),R0
	BEQ	YES

	MOVB	(R1)+,R0
	CMPB	R0,#'*
	BEQ	3$
	CMPB	R0,#'%
	BEQ	4$

2$:	TSTB	(R2)
	BEQ	NO
	CMPB	R0,(R2)+
	BNE	NO
	BR	1$

3$:	TSTB	(R1)
	BEQ	YES
	CALL	MATCH
	BCC	RET
	TSTB	(R2)+
	BNE	3$
	BR	NO

4$:	TSTB	(R2)+
	BEQ	NO
	BR	1$

NO:	SEC
	BR	RET

YES:	CLC

RET:	MOV	(SP)+,R2
	MOV	(SP)+,R1
	RETURN

	.END
                                                                                                                                                                                                                                                                                                                           