	ALWAYS	26MAR4	USE	<FIND DOMAIN & RANGE FOR READ/WRITE>
	.MCALL	CALLR,DIR$
	.PSECT
;************************************************************************
;*									*
;*	MODULE:	USE							*
;*									*
;*	FUCTION:  TO DETERMINE THE DOMAIN AND RANGE OF BYTES TO BE	*
;*		  USED FOR A READ.					*
;*									*
;*	INPUT PARAMETERS:						*
;*									*
;*	R0 POINTS TO THE COMMAND LINE IN PROCESS			*
;*									*
;*	OUTPUT PARAMETERS:						*
;*									*
;*	R0 POINTS JUST BEYOND COMMAND LINE				*
;*									*
;*	DESTROYS:  R1,R2,R3						*
;*									*
;*	AUTHOR:  SCOTT SMITH						*
;*									*
;*	DATE:  07-FEB-84						*
;*									*
;************************************************************************

USE::
	CALL	GETHX2		;GET TWO HEX DIGITS
	BCS	250$		; CS: TAKE ERROR EXIT
	TSTB	R1		;IS VALUE GT 0?
	BHI	5$		; YES - CONTINUE PROCESSING
	OUTPUT	BGO		; NO - OUTPUT "BIT GROUP OUT OF RANGE"
	BR	250$		;  AND TAKE ERROR EXIT
5$:	MOVB	R1,R2		;STORE CONVERTED VALUE IN R2
	GETKEY	OF		;COLLECT "OF" KEYWORD
	BEQ	10$		; EQ:  YES - CONTINUE PROCESSING
	OUTPUT	MSK		;OUTPUT "MISSING KEYWORD"
	BR	250$		; AND TAKE ERROR EXIT
10$:	CALL	GETHX2		;GET TWO MORE HEX DIGITS
	BCS	250$		; CS: TAKE ERROR EXIT
	MOVB	R1,R3		;STORE RANGE VALUE IN R3
	SUB	R2,R3		;REPLACE RANGE WITH DIFERENCE OF RAN & DOM
	BPL	15$		;CONTINUE IF RANGE GE DOMAIN
	OUTPUT	BGO		; ELSE ANNOUNCE "BIT GROUP OUT OF RANGE"
	BR	250$		;  AND TAKE THE ERROR EXIT
15$:	GETKEY	FOR		;COLLECT "FOR" KEYWORD
	BEQ	20$		; EQ:  YES - CONTINUE PROCESSING
	OUTPUT	MSK		;OUTPUT "MISSING KEYWORD"
	BR	250$		; AND TAKE ERROR EXIT
20$:	GETKEY	READ		;COLLECT "READ" KEYWORD
	BEQ	30$		; EQ: YES - CONTINUE PROCESSING
	OUTPUT	MSK		;OUTPUT "MISSING KEYWORD"
	BR	250$		; AND TAKE ERROR EXIT
30$:	MOVB	R3,RDRAN	;STORE VALUE OF RANGE FOR READ,
	MOVB	R2,RDDOM	; STORE VALUE OF DOMAIN FOR READ
250$:				;ERROR EXIT
255$:				;NORMAL EXIT
	CALLR	EXTRA		;PURGE COMMAND LINE OF SUPERFOLUS JUNK
				; AND RETURN
	.END
