	.TITLE FTCREATE ROUTINE TO CREATE AND CONNECT TO OUTPUT RMS FILES.
	.IDENT	/1-APR-83 V01.A/
;
;	V01.A	1-APR-83	INITIAL RELEASE
;
;	CALLING PROCEDURE -
;		PUSHL	ADDRESS OF THE OUTPUT FAB
;		PUSHL	ADDRESS OF THE OUTPUT RAB
;		CALLS	#2,G^FT_CREATE
;
;	REGISTER USAGE:
;		R0 - Used for status from system I/O routines.
;		R1-R7 - Not used.
;		R8 - Pointer to current RAB.
;		R9 - Pointer to current FAB.
;
;
	FTCBDEF		; FT CONTROL BLOCK DEFINITIONS.
	$FABDEF		; FAB DEFINITIONS.
	$RABDEF		; RAB DEFINITIONS.
	$NAMDEF
;
	.ENTRY	FT_CREATE,^M<R2,R3,R4,R5,R6,R7,R8,R9>
;
	MOVL	8(AP),R9	; GET THE OUTPUT FAB ADDRESS.
	MOVL	4(AP),R8	; GET THE OUTPUT RAB ADDRESS.
	MOVL	FAB$L_NAM(R9),R7	; GET THE OUTPUT NAM ADDRESS.
;
	CLRW	FAB$W_MRS(R9)		; SET THE BLOCK SIZE IN MAX. REC.SIZE.
					; EQUAL TO ZERO TO SUPPRESS CHECKING.
	$CREATE	FAB=R9			; CREATE/OPEN THE OUTPUT RMS FILE.
	BLBS	R0,20$
;
;   		BAD OPEN - EXIT WITH RMS 
	MOVZBL	NAM$B_ESL(R7),R5	; GET EXPANDED NAME LENGTH.
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_10,MSG_10+4,-
		R5,NAM$L_ESA(R7),R0,FAB$L_STV(R9)
;
20$:	$CONNECT	RAB=R8		; CONNECT TO THE FILE.
	BLBC	R0,30$			; BRANCH IF BAD.
;
	RET			; RETURN TO CALLING PROGRAM.
;
;    		BAD CONNECT - EXIT 
30$:	MOVZBL	NAM$B_ESL(R7),R5	; GET EXPANDED NAME LENGTH.
	CALL_MSG	EXIT_SYS,#FTC_RMSERROR,#4,MSG_9,MSG_9+4,-
		R5,NAM$L_ESA(R7),R0,RAB$L_STV(R8)
	.END
