	.TITLE	SYNTAX
	.DSABL	GBL
	.GLOBL	RAD	ASC	CNVDEV

;	R1 -> .ASCIZ ".MA"
;	R2 <- .ASCIZ "DK :*.MA"

MLEX	=	5

SYNTAX::
	MOV	R2,.R2
NLEX	=	. + 2
	CLR	#0
	MOV	#TLEX,R2
	MOV	#LEX,R3

1$:	CALL	WHO
	ADD	R0,PC
	BR	COMP
	BR	3$

	CALL	INCNLEX
	MOVB	#'S,(R2)+
	MOV	R1,(R3)+
2$:	INC	R1
	CALL	WHO
	ADD	R0,PC
	BR	COMP
	BR	3$
	BR	2$

3$:	CALL	INCNLEX
	MOVB	(R1)+,(R2)+
	BR	1$

COMP:	TST	NLEX
	BEQ	ERROR
	CLRB	(R2)

	MOV	#SOURCE,R2

1$:	MOV	(R2)+,R0
	BEQ	ERROR

	MOV	#TLEX,R1
2$:	CMPB	(R0),(R1)+
	BNE	1$
	TSTB	(R0)+
	BNE	2$

	MOV	<DEST-SOURCE-2>(R2),R1
.R2	=	. + 2
	MOV	#0,R2
	MOV	#LEX,R3

3$:	MOVB	(R1)+,R0
	BEQ	RET
	CMPB	R0,#2
	BLE	4$
	MOVB	R0,(R2)+
	BR	3$

4$:	BNE	6$
	MOVB	(R1)+,R0

	MOV	(R3)+,R4
5$:	TSTB	(R4)
	BEQ	3$
	CMPB	(R4),#'.
	BEQ	3$
	MOVB	(R4)+,(R2)+
	SOB	R0,5$
	BR	3$

6$:	MOV	#3,R0
	MOV	(R3)+,R4
7$:	TSTB	(R4)
	BEQ	8$
	CMPB	(R4),#':
	BEQ	8$
	MOVB	(R4)+,(R2)+
	SOB	R0,7$
	BR	3$

8$:	MOVB	#' ,(R2)+
	SOB	R0,8$
	BR	3$

RET:	CLRB	(R2)

	MOV	.R2,R1
	CALL	ASC
	BCS	ERROR

	CALL	CNVDEV
	BCS	ERROR

	MOV	.R2,R1
	CALL	RAD

	CLC
	RETURN

INCNLEX:
	CMP	NLEX,#MLEX
	BEQ	1$
	INC	NLEX
	RETURN

1$:	TST	(SP)+
ERROR:	SEC
	RETURN

WHO:	MOVB	(R1),R0
	BEQ	1$
	CMPB	R0,#':
	BEQ	2$
	CMPB	R0,#'.
	BEQ	2$

	MOV	#4,R0
	RETURN

1$:	CLR	R0
	RETURN
2$:	MOV	#2,R0
	RETURN

SOURCE:	.WORD	S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,0
DEST:	.WORD	D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10

LEX:	.BLKW	MLEX/2+1
TLEX:	.BLKB	MLEX+1

S0:	.ASCIZ	"S"
S1:	.ASCIZ	"."
S2:	.ASCIZ	"S."
S3:	.ASCIZ	".S"
S4:	.ASCIZ	"S.S"
S5:	.ASCIZ	"S:"
S6:	.ASCIZ	"S:S"
S7:	.ASCIZ	"S:."
S8:	.ASCIZ	"S:S."
S9:	.ASCIZ	"S:.S"
S10:	.ASCIZ	"S:S.S"

D0:	.ASCIZ	"DK :"<2><6>".*"
D1:	.ASCIZ	"DK :*."
D2:	.ASCIZ	"DK :"<2><6>"."
D3:	.ASCIZ	"DK :*."<2><3>
D4:	.ASCIZ	"DK :"<2><6>"."<2><3>
D5:	.ASCIZ	<1>":*.*"
D6:	.ASCIZ	<1>":"<2><6>".*"
D7:	.ASCIZ	<1>":*."
D8:	.ASCIZ	<1>":"<2><6>"."
D9:	.ASCIZ	<1>":*."<2><3>
D10:	.ASCIZ	<1>":"<2><6>"."<2><3>
	.EVEN
;+
;	A:	A  :*     .*  
;	A:B	A  :B     .*  
;	A:.	A  :*     .   
;	A:B.	A  :B     .   
;	A:.C	A  :*     .C  
;	A:B.C	A  :B     .C  
;-

	.END
                                                                                                                                                                                                                                                                                                                                                                                               