	.TITLE BLNKINIT INITIALIZE BLANK EDIT MASK
	.IDENT /2-JUN-83  V01.1/
;
;	Subroutine used to initialize the blank edit mask.  This routine
;	uses parameters passed through global variables and the FT control
;	block.  
;	This routine uses the following registers.
;		R0 - Status from system routines.
;		R1-R4 - Not used.
;		R5 - Expanded file name length from the NAM block.
;		R6-R7 - Not used.
;		R8 - The temp. file NAM block pointer.
;		R9 - The temp. file FAB pointer.
;		R10 - FTCB pointer.
;		R11 - FTIO block pointer.
;		Saved registers are R2-R7.  
;
;
	FTIODEF
	FTCBDEF
	$NAMDEF
	$FABDEF
	$RABDEF
;
	.PAGE
	.SUBTITLE SUBROUTINE CODE.
;
	.ENTRY	BLNK_INIT,^M<R2,R3,R4,R5,R6,R7>
;
;		BUILD THE DESCRIPTOR OF THE FILE NAME IN 
;		THE TEMP. FILE FAB AND OPEN THE FILE.
;
5$:	MOVB	FTIO_L_BLASIZ(R11),FAB$B_FNS(R9)	; PUT IN STRING SIZE.
	MOVL	FTIO_L_BLAPTR(R11),FAB$L_FNA(R9)	; PUT IN STRING ADDR.
;
	$OPEN	FAB=R9				; OPEN THE FILE.
	MOVZBL	NAM$B_ESL(R8),R5		; GET FILE NAME LENGTH.
	BLBS	R0,10$				; IF OK, BRANCH
;
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_10,-	; EXIT - RMS.
		MSG_10+4,R5,NAM$L_ESA(R8),R0,FAB$L_STV(R9)
;
;		CONNECT TO THE FILE.
;
10$:	$CONNECT	RAB=R8
	BLBS	R0,20$				; BRANCH IF OK.
;
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_9,-
		MSG_9+4,R5,NAM$L_ESA(R8),R0,RAB$L_STV(R8)
;
;		SET UP POINTERS TO THE RECORD ADDRESS AND THEN GET THE RECORD.
;
20$:	MOVW	#^X0100,RAB$W_USZ(R8)		; PUT IN THE RECORD SIZE.
	MOVAL	FT_BLANK_DATA,RAB$L_UBF(R8)	; PUT IN THE RECORD ADDRESS.
;
	$GET	RAB=R8			; GET THE RECORD
	BLBS	R0,30$			; BRANCH IF OK
;
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_8,-	; EXIT - RMS.
		MSG_8+4,R5,NAM$L_ESA(R8),R0,RAB$L_STV(R8)
;
;		CLOSE THE FILE
;
30$:	$CLOSE	FAB=R9			; CLOSE THE BLANKEDIT FILE.
	BLBS	R0,RETURN 		; BRANCH IF OK
;
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_12,-	; EXIT - RMS.
		MSG_12+4,R5,NAM$L_ESA(R8),R0,FAB$L_STV(R9)
;
RETURN:	RET
;
	.END
