.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 ; 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