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