RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  DECLARATIONS

   (1)      74  MISCELLANEOUS RECORD SERVICE ENTRY POINTS

   (3)     157  RM$FLUSH  -  COMPLETE ACTIVITY ON STREAM

   (3)     274  RM$WRITE_ATTR  -  REWRITE FILE ATTRIBUTES

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   1

008                                                                                                                              (1)



                                     0000     1 	$BEGIN	RMS0MISC,008,L$RMS0MISC1,<$FREE,$RELEASE,$FLUSH>

                                     0000     2 

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000     9 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000    10 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000    11 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000    12 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000    13 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000    14 ; REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000    17 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000    18 ; CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 ;++

                                     0000    24 ; FACILITY: RMS32

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;	THIS MODULE PROVIDES THE HIGH LEVEL CONTROL FOR THE

                                     0000    28 ;	$FREE, $RELEASE, AND $FLUSH RMS SERVICES..

                                     0000    29 ;

                                     0000    30 ; ENVIRONMENT:

                                     0000    31 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    32 ;

                                     0000    33 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 25-OCT-77

                                     0000    34 ;

                                     0000    35 ; MODIFIED BY:

                                     0000    36 ;

                                     0000    37 ;	L F LAVERDURE,   13-JUN-78  17:20

                                     0000    38 ; 01	- 

                                     0000    39 ;--

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   2

008             DECLARATIONS                                                                                                     (1)



                                     0000    41 	.SBTTL	DECLARATIONS

                                     0000    42 ;

                                     0000    43 ; INCLUDE FILES:

                                     0000    44 ;

                                     0000    45 

                                     0000    46 ;

                                     0000    47 ; MACROS:

                                     0000    48 ;

                                     0000    49 	$FABDEF

                                     0000    50 	$RABDEF

                                     0000    51 	$DEVDEF

                                     0000    52 	$BDBDEF

                                     0000    53 	$IFBDEF

                                     0000    54 	$IRBDEF

                                     0000    55 	$IODEF

                                     0000    56 	$ATRDEF

                                     0000    57 	$RLSDEF

                                     0000    58 	$RMSDEF

                                     0000    59 	.LIST MEB

                                     0000    60 

                                     0000    61 ;

                                     0000    62 ; EQUATED SYMBOLS:

                                     0000    63 ;

                           00000020  0000    64 	BKP	= IRB$L_BKPBITS*8		; BIT OFFSET TO FLAGS

                                     0000    65 	LSTMSK	= <1@<IRB$V_FIND_LAST-BKP>>-

                           00000060  0000    66 		 !<1@<IRB$V_PUTS_LAST-BKP>>	; MASK FOR RESETTING IRAB STATUS

                           00000014  0000    67 	FHCLEN	= IFB$C_FHAEND-IFB$B_RFMORG	; FILE HEADER CHARACTERISTICS LENGTH

                                     0000    68 

                                     0000    69 ;

                                     0000    70 ; OWN STORAGE:

                                     0000    71 ;

                                     0000    72 

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   3

008             MISCELLANEOUS RECORD SERVICE ENTRY POINTS                                                                        (1)



                                     0000    74 	.SBTTL MISCELLANEOUS RECORD SERVICE ENTRY POINTS

                                     0000    75 ;++

                                     0000    76 ; FUNCTIONAL DESCRIPTION:

                                     0000    77 ;

                                     0000    78 ;	THIS MODULE PROVIDES THE HIGH LEVEL CONTROL ROUTINES

                                     0000    79 ;	FOR THE MISCELLANEOUS RAB FUNCTIONS $FREE, $RELEASE, AND

                                     0000    80 ;	$FLUSH. SEE INDIVIDUAL DESCRIPTIONS.

                                     0000    81 ;

                                     0000    82 ; CALLING SEQUENCE:

                                     0000    83 ;

                                     0000    84 ;	ENTERED AS A RESULT OF USER'S CALLING SYS$FREE,

                                     0000    85 ;	SYS$RELEASE, SYS$FLUSH.

                                     0000    86 ;

                                     0000    87 ; INPUT PARAMETERS:

                                     0000    88 ;

                                     0000    89 ;	AP	USER'S ARGUMENT LIST

                                     0000    90 ;

                                     0000    91 ; IMPLICIT INPUTS:

                                     0000    92 ;

                                     0000    93 ;	THE CONTENTS OF THE RAB.

                                     0000    94 ;

                                     0000    95 ; OUTPUT PARAMETERS:

                                     0000    96 ;

                                     0000    97 ;	R0	STATUS CODE

                                     0000    98 ;	R1	DESTROYED

                                     0000    99 ;

                                     0000   100 ; IMPLICIT OUTPUTS:

                                     0000   101 ;

                                     0000   102 ;	THE STS AND STV FIELDS OF THE RAB ARE OUTPUT BY ALL OF

                                     0000   103 ;	THESE SERVICES. SEE INDIVIDUAL SERVICE DESCRIPTIONS

                                     0000   104 ;	FOR ADDITIONAL RAB OUTPUTS.

                                     0000   105 ;

                                     0000   106 ; COMPLETION CODES:

                                     0000   107 ;

                                     0000   108 ;	STANDARD RMS

                                     0000   109 ;

                                     0000   110 ; SIDE EFFECTS:

                                     0000   111 ;

                                     0000   112 ;	NONE

                                     0000   113 ;

                                     0000   114 ;--

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   4

008             MISCELLANEOUS RECORD SERVICE ENTRY POINTS                                                                        (1)



                                     0000   116 ;++

                                     0000   117 ;

                                     0000   118 ; ENTRY POINT FOR $FREE

                                     0000   119 ;

                                     0000   120 ; CALL RM$UNLOCKALL TO RELEASE LOCKS ON ALL RECORDS.

                                     0000   121 ;

                                     0000   122 ;--

                                     0000   123 	$ENTRY	RMS$FREE

                                 00000000       	.PSECT	L$RMS0MISC1,GBL,NOWRT

                                     0000   124 	$TSTPT	FREE

                 00000200'9F     D6  0000       		INCL	@#PIO$GL_FMLH+512+TPT$L_FREE

                                     0006   125 	$RABSET					; SET UP STREAM

                          FFF7'  30  0006       		BSBW	RM$RSET

                                 00  0009       		.BYTE	<0 @ 5>!<0 @ 4>!<0 @ 3>!0

                          FFF3'  30  000A   126 	BSBW	RM$UNLOCKALL			; FREE ALL LOCKED RECORDS

                          23     11  000D   127 	BRB	EXIT				; ALL SET

                                     000F   128 ;++

                                     000F   129 ;

                                     000F   130 ; ENTRY POINT FOR $RELEASE

                                     000F   131 ;

                                     000F   132 ; CALL RM$UNLOCK TO RELEASE LOCK ON RECORD SPECIFIED BY

                                     000F   133 ; THE RFA FIELD OF THE RAB.

                                     000F   134 ;

                                     000F   135 ;--

                                     000F   136 	$ENTRY	RMS$RELEASE

                                 0000000F       	.PSECT	L$RMS0MISC1,GBL,NOWRT

                                     000F   137 	$TSTPT	RELEASE0

                 00000200'9F     D6  000F       		INCL	@#PIO$GL_FMLH+512+TPT$L_RELEASE0

                                     0015   138 	$RABSET					; SET UP STREAM

                          FFE8'  30  0015       		BSBW	RM$RSET

                                 00  0018       		.BYTE	<0 @ 5>!<0 @ 4>!<0 @ 3>!0

            51         10 A8     D0  0019   139 	MOVL	RAB$W_RFA(R8),R1		; GET RFA

            52         14 A8     3C  001D   140 	MOVZWL	RAB$W_RFA+4(R8),R2		; AND ZERO EXTEND LAST WORD

                          FFDC'  30  0021   141 	BSBW	RM$UNLOCK_ALT			; RELEASE LOCK ON RECORD

                          0C     11  0024   142 	BRB	EXIT

                                     0026   143 ;++

                                     0026   144 ;

                                     0026   145 ; ENTRY POINT FOR $FLUSH.

                                     0026   146 ;

                                     0026   147 ; CALL INTERNAL FLUSH ROUTINE

                                     0026   148 ;

                                     0026   149 ;--

                                     0026   150 	$ENTRY	RMS$FLUSH

                                 00000026       	.PSECT	L$RMS0MISC1,GBL,NOWRT

                                     0026   151 	$TSTPT	FLUSH

                 00000200'9F     D6  0026       		INCL	@#PIO$GL_FMLH+512+TPT$L_FLUSH

                                     002C   152 	$RABSET					; SET UP STREAM

                          FFD1'  30  002C       		BSBW	RM$RSET

                                 00  002F       		.BYTE	<0 @ 5>!<0 @ 4>!<0 @ 3>!0

                          03     10  0030   153 	BSBB	RM$FLUSH			; DO FLUSH

                          FFCB'  31  0032   154 EXIT:	BRW	RM$EXRMS

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   5

008             MISCELLANEOUS RECORD SERVICE ENTRY POINTS                                                                        (3)



                                     0035   156 

                                     0035   157 	.SBTTL	RM$FLUSH  -  COMPLETE ACTIVITY ON STREAM

                                     0035   158 ;++

                                     0035   159 ; DESCRIPTION:

                                     0035   160 ;

                                     0035   161 ;	THIS ROUTINE PERFORMS THE FOLLOWING STEPS TO GUARANTEE

                                     0035   162 ; 	THAT ALL MODIFIED I/O BUFFERS ARE WRITTEN BACK TO THE

                                     0035   163 ; 	FILE AND THE FILES ATTRIBUTES ARE WRITTEN BACK TO THE

                                     0035   164 ;	FILE HEADER.

                                     0035   165 ;

                                     0035   166 ;	1.  IF SEQUENTIAL FILE ORG, CALL RM$WTLST1.

                                     0035   167 ;	2.  GET THE BDB LIST HEAD.

                                     0035   168 ;	3.  GET NEXT BDB, IF NO MORE CALL RM$WRITE_ATTR, CLEAR THE

                                     0035   169 ;	    FIND_LAST, PUTS_LAST, AND BIO_LAST IRAB BOOKKEEPING

                                     0035   170 ;	    BITS AND EXIT.

                                     0035   171 ;	4.  IF BDB NOT DIRTY, GO TO 3.

                                     0035   172 ;	5.  IF BDB HAS I/O IN PROGRESS, WAIT FOR I/O TO COMPLETE

                                     0035   173 ;	    AND GO TO STEP 4.

                                     0035   174 ;	6.  IF USE COUNT FOR BDB NON-ZERO WAIT FOR BDB TO BECOME

                                     0035   175 ;	    AVAILABLE AND GO TO STEP 4.

                                     0035   176 ;	7.  TAKE OWNERSHIP OF THE BDB, RELEASE IT WITH 

                                     0035   177 ;	    WRITE-THRU, AND GO TO STEP 2.

                                     0035   178 ;

                                     0035   179 ; CALLING SEQUENCE:

                                     0035   180 ;

                                     0035   181 ;	BSBW	RM$FLUSH

                                     0035   182 ;

                                     0035   183 ; INPUT PARAMETERS:

                                     0035   184 ;

                                     0035   185 ;	R11	IMPURE AREA ADDRESS

                                     0035   186 ;	R10	IFAB ADDRESS

                                     0035   187 ;	R9	IRAB ADDRESS

                                     0035   188 ;	R8	RAB ADDRESS

                                     0035   189 ;

                                     0035   190 ; IMPLICIT INPUTS:

                                     0035   191 ;

                                     0035   192 ;	THE CONTENTS OF THE IFAB, IRAB, AND RAB.

                                     0035   193 ;

                                     0035   194 ; OUTPUT PARAMETERS:

                                     0035   195 ;

                                     0035   196 ;	R0		STATUS CODE

                                     0035   197 ;	R1-R7,AP 	DESTROYED

                                     0035   198 ;

                                     0035   199 ; IMPLICIT OUTPUTS:

                                     0035   200 ;

                                     0035   201 ;	NONE.

                                     0035   202 ;

                                     0035   203 ; SIDE EFFECTS:

                                     0035   204 ;

                                     0035   205 ; 	FOR THE SEQUENTIAL FILE ORGANIZATION, GUARANTEES THAT ANY

                                     0035   206 ;	WRITE BEHINDS HAVE TERMINATED.

                                     0035   207 ;

                                     0035   208 ;	FOR THE OTHER ORGANIZATIONS, $FLUSH HAS A POSSIBILITY OF

                                     0035   209 ;	NEVER TERMINATING IF OTHER STREAMS CONTINUALLY LEAVE

                                     0035   210 ;	AROUND DIRTY BUFFERS. IF THIS IS A PROBLEM FOR A GIVEN

                                     0035   211 ;	APPLICATION, SOME OTHER MECHANISM IS REQUIRED IN ADDITION

                                     0035   212 ;	TO FLUSH TO GUARANTEE A QUIET POINT. NOTE THAT THESE 

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   6

008             RM$FLUSH  -  COMPLETE ACTIVITY ON STREAM                                                                         (3)



                                     0035   213 ;	PROBLEMS ONLY OCCUR WITH THE DEFERRED WRITE OPTION.

                                     0035   214 ;--

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   7

008             RM$FLUSH  -  COMPLETE ACTIVITY ON STREAM                                                                         (3)



                                     0035   216 RM$FLUSH::

         04 A9         60 8F     8A  0035   217 	BICB	#LSTMSK,IRB$L_BKPBITS(R9)	; RESET IRAB FLAGS

                                     003A   218 	ASSUME	FAB$C_SEQ EQ 0	

                       23 AA     95  003A   219 	TSTB	IFB$B_ORGCASE(R10)		; SEQ. FILE ORG?

                          12     12  003D   220 	BNEQ	SCAN_BDB_LIST			; BRANCH IF NOT

         22 AA            05     E0  003F   221 	BBS	#IFB$V_BIO,IFB$B_FAC(R10),10$	; BRANCH IF BLOCK I/O

                          0D         0043       

            69            27     E4  0044   222 	BBSC	#IRB$V_BIO_LAST,(R9),10$	; OR LAST OP WAS BLOCK I/O

                          09         0047       

                                     0048   223 						; (I.E., MIXED BLOCK AND RECORD OP)

                          FFB5'  30  0048   224 	BSBW	RM$WTLST1			; WRITE OUT PARTIAL BUFFER

                       42 A9     B4  004B   225 	CLRW	IRB$W_CSIZ(R9)			; SAY NO CURRENT RECORD

            3C            50     E9  004E   226 	BLBC	R0,FLXIT			; GET OUT ON ERROR

                                     0051   227 10$:

                                     0051   228 ;

                                     0051   229 ; SCAN BDB LIST FOR ANY DIRTY BUFFERS AND, IF FOUND, WRITE THEM

                                     0051   230 ; OUT. IF ANY HAVE A WRITE IN PROGRESS, WAIT FOR IT TO FINISH.

                                     0051   231 ;

                                     0051   232 SCAN_BDB_LIST:

            54         30 AA     DE  0051   233 	MOVAL	IFB$L_BDB_FLNK(R10),R4		; GET BDB LIST HEAD ADDR

                                     0055   234 	ASSUME	BDB$L_FLINK EQ 0

            54            64     D0  0055   235 NXTBDB:	MOVL	(R4),R4				; GET NEXT BDB ADDR

         30 AA            64     D1  0058   236 	CMPL	(R4),IFB$L_BDB_FLNK(R10)	; IS THIS THE LIST HEAD?

                          30     13  005C   237 	BEQL	RM$WRITE_ATTR			; BRANCH IF YES

         0A A4            01     E1  005E   238 CHKDRT:	BBC	#BDB$V_DRT,BDB$B_FLGS(R4),NXTBDB ; BRANCH IF BUFFER NOT DIRTY

                          F2         0062       

         0A A4            02     E0  0063   239 	BBS	#BDB$V_IOP,BDB$B_FLGS(R4),WAITBDB ; BRANCH IF I/O IN PROGRESS

                          17         0067       

                       0B A4     95  0068   240 	TSTB	BDB$B_USECNT(R4)		; BDB IN USE?

                          12     12  006B   241 	BNEQ	WAITBDB				; BRANCH IF YES?

                                     006D   242 ;

                                     006D   243 ; BDB IS DIRTY WITH NO USERS AND NO I/O IN PROGRESS

                                     006D   244 ; (DEFERRED WRITE MUST BE ON). TAKE OWNERSHIP OF THE 

                                     006D   245 ; BDB AND RELEASE IT WITH WRITE-THRU. (NOTE THAT THE

                                     006D   246 ; SEQUENTIAL FILE ORG CAN'T GET INTO THIS CODE.)

                                     006D   247 ;

         0C A4         3C A9     D0  006D   248 	MOVL	IRB$L_OWNER_ID(R9),BDB$L_OWN(R4) ; SAY THIS STREAM IS OWNER

                       0B A4     96  0072   249 	INCB	BDB$B_USECNT(R4)		; AND COUNT IT

            53            02     D0  0075   250 	MOVL	#RLS$M_WRT_THRU,R3		; FLAG TO CAUSE WRITE

                          FF85'  30  0078   251 	BSBW	RM$RELEASE			; RELEASE BUFFER

            D3            50     E8  007B   252 	BLBS	R0,SCAN_BDB_LIST		; AND BRANCH IF O.K.

                                 05  007E   253 	RSB					; GET OUT ON ERROR

                                     007F   254 ;

                                     007F   255 ; BUFFER IS DIRTY BUT EITHER THERE IS I/O IN PROGRESS OR ITS

                                     007F   256 ; USECOUNT IS NON-ZERO. WAIT FOR THE BUFFER TO BECOME FREE AND

                                     007F   257 ; THEN CHECK AGAIN.

                                     007F   258 ;

                                     007F   259 WAITBDB:

                                     007F   260 	$CSHFLAGS	LOCK			; SAY WE WANT LOCK

                                     007F       	.SAVE

                                 0000006C       	.PSECT	$ABS$,ABS

                           00000000  006C       	.=0

                                 0000007F       	.RESTORE

            53            01     D0  007F       		MOVL #$$.TMP,R3

                          FF7B'  30  0082   261 	BSBW	RM$WAIT_BDB			; GO WAIT FOR BDB

                          D7     11  0085   262 	BRB	CHKDRT				; GO SEE IF STILL DIRTY

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   8

008             RM$FLUSH  -  COMPLETE ACTIVITY ON STREAM                                                                         (3)



                                     0087   264 ;

                                     0087   265 ;  CLEAR NRP OFFSET ON MAGTAPE FLUSH AND AVOID REWRITE OF FILE ATTRIBUTES

                                     0087   266 ;

                       30 A9     B4  0087   267 CLRNRP:	CLRW	IRB$W_NRP_OFF(R9)		; GET START OF NEXT BLOCK

                                     008A   268 ;

                                     008A   269 ; SUCCESSFUL EXIT FOR NOT WRITE ACCESSED

                                     008A   270 ;

                                     008A   271 SUCXIT:	RMSSUC					; SHOW SUCCESS

            50            01     D0  008A       		MOVL	#1,R0

                                 05  008D   272 FLXIT:	RSB

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page   9

008             RM$WRITE_ATTR  -  REWRITE FILE ATTRIBUTES                                                                        (3)



                                     008E   274 	.SBTTL	RM$WRITE_ATTR  -  REWRITE FILE ATTRIBUTES

                                     008E   275 ;++

                                     008E   276 ; THIS SUBROUTINE EXAMINES THE IFB$V_RW_ATTR BOOKEEPING

                                     008E   277 ; BIT AND IF SET REWRITES THE FILE ATTRIBUTES, CLEARING THE BIT.

                                     008E   278 ;

                                     008E   279 ; INPUTS:

                                     008E   280 ;

                                     008E   281 ;	R11		IMPURE AREA ADDRESS

                                     008E   282 ;	R10		IFAB (SIFAB) ADDRESS

                                     008E   283 ;	R9		IFAB OR IRAB ADDRESS

                                     008E   284 ;	R8		FAB OR RAB ADDRESS

                                     008E   285 ;

                                     008E   286 ; OUTPUTS:

                                     008E   287 ;

                                     008E   288 ;	R0		STATUS CODE

                                     008E   289 ;	R1-R6,AP	DESTROYED

                                     008E   290 ;--

                                     008E   291 RM$WRITE_ATTR::

            6A            34     E5  008E   292 	BBCC	#IFB$V_RW_ATTR,(R10),SUCXIT	; BRANCH IF NOTHING TO DO

                          F8         0091       

            6A            05     E0  0092   293 	BBS	#DEV$V_SQD,IFB$L_PRIM_DEV(R10),CLRNRP	; BRANCH IF MAGTAPE

                          F1         0095       

                                     0096   294 ;

            6A            03     E1  0096   295 	BBC	#DEV$V_DIR,IFB$L_PRIM_DEV(R10),CLRNRP	; OR IF NON-DIRECTORY DEVICE

                          ED         0099       

                                     009A   296 ; BUILD ATTRIBUTE LIST TO REWRITE RECORD ATTRIBUTES

                                     009A   297 ;

                          00     DD  009A   298 	PUSHL	#0				; END OF ATTRIBUTE LIST

                          7E     7C  009C   299 	CLRQ	-(SP)				; BUILD ATTR. LIST HERE

            56            5E     D0  009E   300 	MOVL	SP,R6				; SAVE ITS ADDR

                          0F     10  00A1   301 	BSBB	RM$SETRECATTR			; SET UP RECORD ATTRIBUTES

            08            50     E9  00A3   302 	BLBC	R0,10$				; FOR WRITING

            50            36     9A  00A6   303 	MOVZBL	#IO$_MODIFY,R0			; MODIFY I/O FUNCTION

                          FF54'  30  00A9   304 	BSBW	RM$FCPFNC_ALT3			; GO DO THE REWRITE

                          33     10  00AC   305 	BSBB	RM$RETRECATTR			; RETURN ATTRIBUTES SPACE

            5E            0C     C0  00AE   306 10$:	ADDL2	#12,SP				; REMOVE ATTR. LIST FROM STACK

                                 05  00B1   307 	RSB	

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  10

008             RM$WRITE_ATTR  -  REWRITE FILE ATTRIBUTES                                                                        (3)



                                     00B2   309 ;++

                                     00B2   310 ; RM$SETRECATTR SUBROUTINE TO ALLOCATE SPACE FOR THE RECORD 

                                     00B2   311 ; ATTRIBUTES AND MOVE THEM THERE FROM THE IFAB, CONVERTING THEM

                                     00B2   312 ; TO THEIR ON DISK FORMAT.

                                     00B2   313 ;

                                     00B2   314 ; INPUTS:

                                     00B2   315 ;	R11	IMPURE AREA ADDR

                                     00B2   316 ;	R10	IFAB (SIFAB) ADDR

                                     00B2   317 ;	R9	IRAB/IFAB ADDR

                                     00B2   318 ;	R6	ADDR AT WHICH TO BUILD ATTRIBUTE LIST ENTRY

                                     00B2   319 ;

                                     00B2   320 ; OUTPUTS:

                                     00B2   321 ;	R0	STATUS CODE

                                     00B2   322 ;	R1-R5	DESTROYED

                                     00B2   323 ;	(R6)	ATTRIBUTE LIST ENTRY TO WRITE USER RECORD ATTRIBUTES

                                     00B2   324 ;	@4(R6)	ALLOCATED SPACE WITH CONVERTED RECORD ATTRIBUTES

                                     00B2   325 ;

                                     00B2   326 ;--

                                     00B2   327 RM$SETRECATTR::

            52            14     D0  00B2   328 	MOVL	#FHCLEN,R2			; SIZE OF REC. ATTR.

                          FF48'  30  00B5   329 	BSBW	RM$GETSPC1			; GET THE SPACE

            25            50     E9  00B8   330 	BLBC	R0,10$				; GET OUT ON ERROR

         04 A6            51     D0  00BB   331 	MOVL	R1,4(R6)			; SAVE ADDR OF ALLOCATED SPACE

            66   00040014 8F     D0  00BF   332 	MOVL	#<ATR$C_RECATTR@16>+FHCLEN,(R6)	; AND SET ATTR. CODE AND LENGTH

                                     00C6   333 	ASSUME	IFB$B_RAT EQ IFB$B_RFMORG+1

                                     00C6   334 	ASSUME	IFB$W_LRL EQ IFB$B_RFMORG+2

            61         3C AA     D0  00C6   335 	MOVL	IFB$B_RFMORG(R10),(R1)		; COPY RFM, RAT, LRL

            04         23 A9     F0  00CA   336 	INSV	IFB$B_ORGCASE(R9),#IFB$V_ORG,#IFB$S_ORG,(R1)	; INSERT ORG

            61            04         00CE       

                          81     D5  00D0   337 	TSTL	(R1)+				; MOVE TO NEXT FIELD

                                     00D2   338 	ASSUME	IFB$L_HBK EQ IFB$B_RFMORG+4

         40 AA            10     9C  00D2   339 	ROTL	#16,IFB$L_HBK(R10),(R1)+	; SWITCH WORDS OF HBK

                          81         00D6       

                                     00D7   340 	ASSUME	IFB$L_EBK EQ IFB$B_RFMORG+8

         44 AA            10     9C  00D7   341 	ROTL	#16,IFB$L_EBK(R10),(R1)+	; SWITCH WORDS OF EBK

                          81         00DB       

                                     00DC   342 	ASSUME	<IFB$C_FHAEND-IFB$W_FFB> EQ 8	

                                     00DC   343 	ASSUME 	IFB$W_FFB EQ IFB$L_EBK+4

            61         48 AA     7D  00DC   344 	MOVQ	IFB$W_FFB(R10),(R1)		; COPY REST OF RECORD ATTRIBUTES

                                 05  00E0   345 10$:	RSB

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  11

008             RM$WRITE_ATTR  -  REWRITE FILE ATTRIBUTES                                                                        (3)



                                     00E1   347 ;++

                                     00E1   348 ; RM$RETRECATTR SUBROUTINE TO DEALLOCATE THE SPACE

                                     00E1   349 ; USED FOR USER ATTRIBUTE COPY

                                     00E1   350 ;

                                     00E1   351 ; INPUTS:

                                     00E1   352 ;	R9	IRAB/IFAB ADDR

                                     00E1   353 ;	R8	RAB/FAB ADDR

                                     00E1   354 ;	R0	QIO STATUS CODE

                                     00E1   355 ;	8(SP)	ADDR OF RECORD ATTRIBUTE SPACE TO DEALLOCATE

                                     00E1   356 ;

                                     00E1   357 ; OUTPUTS:

                                     00E1   358 ;

                                     00E1   359 ;	R0	RMS STATUS CODE

                                     00E1   360 ;	R1-R5	DESTROYED

                                     00E1   361 ;--

                                     00E1   362 RM$RETRECATTR::

                          50     DD  00E1   363 	PUSHL	R0				; SAVE QIO STATUS CODE

            52            14     D0  00E3   364 	MOVL	#FHCLEN,R2			; LENGTH OF SPACE TO DEALLOCATE

            54         0C AE     D0  00E6   365 	MOVL	12(SP),R4			; ADDR OF " "

                          FF13'  30  00EA   366 	BSBW	RM$RETSPC1			; DEALLOCATE THE SPACE

                          01     BA  00ED   367 	POPR	#^M<R0>				; RESTORE STATUS CODE

            01            50     E9  00EF   368 	BLBC	R0,10$				; BRANCH ON ERROR

                                 05  00F2   369 	RSB

                                     00F3   370 ;

                                     00F3   371 ; MAP ERROR CODE FROM QIO TO RMS CODE

                                     00F3   372 ;

                                     00F3   373 10$:	$PSECT_BR	L$RMS0	

                          FF0A'  31  00F3       		BRW	L$RMS00

                                     00F6       		.SAVE

                                 00000000       		.PSECT	L$RMS0,GBL,NOWRT

                                     0000       L$RMS00:

                                     0000   374 	RMSERR	WER,R1				; DEFAULT ERROR CODE

            51       C114 8F     3C  0000       		MOVZWL	#<RMS$_WER&^XFFFF>,R1

                          FFF8'  31  0005   375 	BRW	RM$MAPERR			; MAP THE ERROR CODE

                                     0008   376 						; AND RETURN

                                     0008   377 	$PSECT_RESTORE

                                 000000F6       		.RESTORE

                                     00F6   378 	.END

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (3)



$$.PSECT_EP    = 00000001            ATR$W_SIZE       00000000            DEV$M_DIR      = 00000008            

$$.TMP         = 00000001            ATR$W_TYPE       00000002            DEV$M_DMT      = 00200000            

$$RMSTEST      = 0000001A            BDB$B_BID        00000008            DEV$M_ELG      = 00400000            

$$RMS_PBUGCHK  = 00000010            BDB$B_BLN        00000009            DEV$M_FOD      = 00004000            

$$RMS_TBUGCHK  = 00000008            BDB$B_FLGS       0000000A            DEV$M_FOR      = 01000000            

$$RMS_UMODE    = 00000004            BDB$B_POST_CCTL  00000023            DEV$M_GEN      = 00020000            

ATR$C_ACLEVEL  = 00000018            BDB$B_PRE_CCTL   00000022            DEV$M_IDV      = 04000000            

ATR$C_ALCONTROL= 0000000E            BDB$B_REL_VBN    00000020            DEV$M_MBX      = 00100000            

ATR$C_ASCDATES = 0000000D            BDB$B_USECNT     0000000B            DEV$M_MNT      = 00080000            

ATR$C_ASCNAME  = 00000010            BDB$B_VAL_VBNS   00000021            DEV$M_NET      = 00002000            

ATR$C_BAKDATE  = 00000014            BDB$C_BID      = 0000000C            DEV$M_ODV      = 08000000            

ATR$C_BLOCKSIZE= 0000000B            BDB$C_BLN        00000028            DEV$M_RCK      = 40000000            

ATR$C_CREDATE  = 00000011            BDB$K_BLN        00000028            DEV$M_REC      = 00000001            

ATR$C_DIRSEQ   = 0000001B            BDB$L_ADDR       00000014            DEV$M_RND      = 10000000            

ATR$C_ENDLBLAST= 0000000F            BDB$L_BLINK      00000004            DEV$M_RTM      = 20000000            

ATR$C_EXPDAT   = 00000008            BDB$L_CURBUFADR  00000024            DEV$M_SDI      = 00000010            

ATR$C_EXPDATE  = 00000013            BDB$L_FLINK      00000000            DEV$M_SHR      = 00010000            

ATR$C_FILNAM   = 00000005            BDB$L_IOSB       00000020            DEV$M_SPL      = 00000040            

ATR$C_FILTYP   = 00000006            BDB$L_OWN        0000000C            DEV$M_SQD      = 00000020            

ATR$C_FILVER   = 00000007            BDB$L_VBN        00000018            DEV$M_SWL      = 02000000            

ATR$C_FPRO     = 00000016            BDB$L_WAIT       0000001C            DEV$M_TRM      = 00000004            

ATR$C_HEADER   = 0000000A            BDB$L_WK1        00000020            DEV$M_WCK      = 80000000            

ATR$C_RECATTR  = 00000004            BDB$M_AST_DCL  = 00000040            DEV$V_ALL      = 00000017            

ATR$C_REVDATE  = 00000012            BDB$M_DRT      = 00000002            DEV$V_AVL      = 00000012            

ATR$C_RPRO     = 00000017            BDB$M_IOP      = 00000004            DEV$V_CCL      = 00000001            

ATR$C_SEMASK   = 00000019            BDB$M_LKDINWS  = 00000080            DEV$V_DIR      = 00000003            

ATR$C_STATBLK  = 00000009            BDB$M_NOLOCATE = 00000010            DEV$V_DMT      = 00000015            

ATR$C_UCHAR    = 00000003            BDB$M_PRM      = 00000008            DEV$V_ELG      = 00000016            

ATR$C_UIC      = 00000015            BDB$M_VAL      = 00000001            DEV$V_FOD      = 0000000E            

ATR$C_UIC_RO   = 0000001A            BDB$M_WFO      = 00000020            DEV$V_FOR      = 00000018            

ATR$C_USERLABEL= 0000000C            BDB$V_AST_DCL  = 00000006            DEV$V_GEN      = 00000011            

ATR$L_ADDR       00000004            BDB$V_DRT      = 00000001            DEV$V_IDV      = 0000001A            

ATR$S_ACLEVEL  = 00000002            BDB$V_IOP      = 00000002            DEV$V_MBX      = 00000014            

ATR$S_ALCONTROL= 0000000E            BDB$V_LKDINWS  = 00000007            DEV$V_MNT      = 00000013            

ATR$S_ASCDATES = 00000023            BDB$V_NOLOCATE = 00000004            DEV$V_NET      = 0000000D            

ATR$S_ASCNAME  = 00000014            BDB$V_PRM      = 00000003            DEV$V_ODV      = 0000001B            

ATR$S_BAKDATE  = 00000008            BDB$V_VAL      = 00000000            DEV$V_RCK      = 0000001E            

ATR$S_BLOCKSIZE= 00000002            BDB$V_WFO      = 00000005            DEV$V_REC      = 00000000            

ATR$S_CREDATE  = 00000008            BDB$W_NUMB       00000010            DEV$V_RND      = 0000001C            

ATR$S_DIRSEQ   = 00000002            BDB$W_SIZE       00000012            DEV$V_RTM      = 0000001D            

ATR$S_ENDLBLAST= 00000004            BIT...         = 00000005            DEV$V_SDI      = 00000004            

ATR$S_EXPDAT   = 00000007            BKP            = 00000020            DEV$V_SHR      = 00000010            

ATR$S_EXPDATE  = 00000008            CHKDRT           0000005E R     02   DEV$V_SPL      = 00000006            

ATR$S_FILNAM   = 00000006            CLRNRP           00000087 R     02   DEV$V_SQD      = 00000005            

ATR$S_FILTYP   = 00000002            CSH$M_LOCK     = 00000001            DEV$V_SWL      = 00000019            

ATR$S_FILVER   = 00000002            CSH$M_NOBUFFER = 00000010            DEV$V_TRM      = 00000002            

ATR$S_FPRO     = 00000002            CSH$M_NOREAD   = 00000004            DEV$V_WCK      = 0000001F            

ATR$S_HEADER   = 00000200            CSH$M_NOWAIT   = 00000002            EXIT             00000032 R     02   

ATR$S_RECATTR  = 00000020            CSH$M_READAHEAD= 00000008            FAB$B_BID        00000000            

ATR$S_REVDATE  = 00000008            CSH$V_LOCK     = 00000000            FAB$B_BKS        0000003E            

ATR$S_RPRO     = 00000002            CSH$V_NOBUFFER = 00000004            FAB$B_BLN        00000001            

ATR$S_SEMASK   = 00000008            CSH$V_NOREAD   = 00000002            FAB$B_DNS        00000035            

ATR$S_STATBLK  = 0000000A            CSH$V_NOWAIT   = 00000001            FAB$B_FAC        00000016            

ATR$S_UCHAR    = 00000001            CSH$V_READAHEAD= 00000003            FAB$B_FNS        00000034            

ATR$S_UIC      = 00000004            DEV$M_ALL      = 00800000            FAB$B_FSZ        0000003F            

ATR$S_UIC_RO   = 00000004            DEV$M_AVL      = 00040000            FAB$B_ORG        0000001D            

ATR$S_USERLABEL= 00000050            DEV$M_CCL      = 00000002            FAB$B_RAT        0000001E            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (3)



FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            FAB$V_RCK      = 00000017            

FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            FAB$V_RWC      = 0000000B            

FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            FAB$V_RWO      = 00000007            

FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            FAB$V_SCF      = 0000000E            

FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            FAB$V_SHRDEL   = 00000002            

FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            FAB$V_SHRGET   = 00000001            

FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            FAB$V_SHRPUT   = 00000000            

FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            FAB$V_SHRUPD   = 00000003            

FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            FAB$V_SPL      = 0000000D            

FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            FAB$V_SQO      = 00000006            

FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            FAB$V_SUP      = 00000002            

FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            FAB$V_TEF      = 0000001C            

FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            FAB$V_TMD      = 00000004            

FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            FAB$V_TMP      = 00000003            

FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            FAB$V_TRN      = 00000004            

FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            FAB$V_UFM      = 0000001A            

FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            FAB$V_UFO      = 00000011            

FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            FAB$V_UPD      = 00000003            

FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            FAB$V_UPI      = 00000006            

FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            FAB$V_WCK      = 00000009            

FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            FAB$W_BLS        0000003C            

FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            FAB$W_DEQ        00000014            

FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            FAB$W_IFI        00000002            

FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            FAB$W_MRS        00000036            

FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            FHCLEN         = 00000014            

FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            FLXIT            0000008D R     02   

FAB$L_STS        00000008            FAB$V_BLK      = 00000003            GBL...         = 00000000            

FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            IFB$B_AMAX       00000059            

FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            IFB$B_AVBN       00000058            

FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            IFB$B_BID        00000008            

FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            IFB$B_BKS        0000004A            

FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            IFB$B_BLN        00000009            

FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            IFB$B_EFN        0000000B            

FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            IFB$B_EXTRABUF   0000005D            

FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            IFB$B_FAC        00000022            

FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            IFB$B_FSZ        0000004B            

FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            IFB$B_KBUFSZ     0000005C            

FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            IFB$B_MODE       0000000A            

FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            IFB$B_NUM_KEYS   0000005A            

FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            IFB$B_ORGCASE    00000023            

FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            IFB$B_RAT        0000003D            

FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            IFB$B_RFMORG     0000003C            

FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            IFB$B_UBUFSZ     0000005B            

FAB$M_GET      = 00000002            FAB$V_MSE      = 00000004            IFB$C_BID      = 0000000B            

FAB$M_INP      = 00080000            FAB$V_MXV      = 00000001            IFB$C_BLN        00000060            

FAB$M_JNL      = 00400000            FAB$V_NAM      = 00000018            IFB$C_BLN_IDX    00000060            

FAB$M_KFO      = 40000000            FAB$V_NEF      = 0000000A            IFB$C_BLN_REL    00000060            

FAB$M_MSE      = 00000010            FAB$V_NFS      = 00000010            IFB$C_BLN_SEQ    0000005C            

FAB$M_MXV      = 00000002            FAB$V_NIL      = 00000005            IFB$C_DIR      = 00000003            

FAB$M_NAM      = 01000000            FAB$V_OFP      = 0000001D            IFB$C_FHAEND     00000050            

FAB$M_NEF      = 00000400            FAB$V_ORG      = 00000004            IFB$C_IDX      = 00000002            

FAB$M_NFS      = 00010000            FAB$V_POS      = 00000008            IFB$C_MAXORG   = 00000002            

FAB$M_NIL      = 00000020            FAB$V_PPF      = 00000012            IFB$C_REL      = 00000001            

FAB$M_OFP      = 20000000            FAB$V_PPF_IND  = 0000000E            IFB$C_SEQ      = 00000000            

FAB$M_POS      = 00000100            FAB$V_PPF_RAT  = 00000006            IFB$K_BLN        00000060            

FAB$M_PPF      = 00040000            FAB$V_PRN      = 00000002            IFB$K_BLN_IDX    00000060            

FAB$M_PPF_IND  = 00004000            FAB$V_PUT      = 00000000            IFB$K_BLN_REL    00000060            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (3)



IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            IO$M_PACKED    = 00000080            

IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            IO$M_PURGE     = 00000800            

IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            IO$M_READATTN  = 00000080            

IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            IO$M_REVERSE   = 00000040            

IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            IO$M_SHUTDOWN  = 00000080            

IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            IO$M_STARTUP   = 00000040            

IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            IO$M_SYNCH     = 00000200            

IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            IO$M_TIMED     = 00000080            

IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            IO$M_TRMNOECHO = 00001000            

IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            IO$M_WRTATTN   = 00000100            

IFB$L_EBK        00000044            IFB$V_TEF      = 00000036            IO$S_FCODE     = 00000006            

IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            IO$V_ABORT     = 00000008            

IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            IO$V_ACCESS    = 00000006            

IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            IO$V_ATTNAST   = 00000008            

IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            IO$V_BINARY    = 00000006            

IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            IO$V_CANCTRLO  = 00000006            

IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            IO$V_COMMOD    = 00000006            

IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            IO$V_CREATE    = 00000007            

IFB$L_LAST_FAB   00000024            IFB$W_CHNL       00000020            IO$V_CTRLCAST  = 00000008            

IFB$L_LOCK_BDB   00000050            IFB$W_DEQ        0000004E            IO$V_CTRLYAST  = 00000007            

IFB$L_MRN        00000054            IFB$W_DEVBUFSIZ  00000038            IO$V_CVTLOW    = 00000008            

IFB$L_NRP_LNK    00000050            IFB$W_EBK0       00000044            IO$V_DATACHECK = 0000000E            

IFB$L_NWA_PTR    00000028            IFB$W_EBK2       00000046            IO$V_DELETE    = 00000008            

IFB$L_PRIM_DEV   00000000            IFB$W_FFB        00000048            IO$V_DMOUNT    = 0000000A            

IFB$L_RLB_LNK    0000002C            IFB$W_IOS2       0000000E            IO$V_DSABLMBX  = 0000000A            

IFB$L_RNS_LEN    00000050            IFB$W_LRL        0000003E            IO$V_ENABLMBX  = 00000007            

IFB$M_BIO      = 00000020            IFB$W_MRS        0000004C            IO$V_FCODE     = 00000000            

IFB$M_BRO      = 00000040            IFB$W_RTDEQ      0000003A            IO$V_HANGUP    = 00000009            

IFB$M_DEL      = 00000004            IO$M_ABORT     = 00000100            IO$V_INHERLOG  = 0000000B            

IFB$M_EXE      = 00000080            IO$M_ACCESS    = 00000040            IO$V_INHEXTGAP = 0000000C            

IFB$M_GET      = 00000002            IO$M_ATTNAST   = 00000100            IO$V_INHRETRY  = 0000000F            

IFB$M_PUT      = 00000001            IO$M_BINARY    = 00000040            IO$V_INHSEEK   = 0000000C            

IFB$M_TRN      = 00000010            IO$M_CANCTRLO  = 00000040            IO$V_INTERRUPT = 00000006            

IFB$M_UPD      = 00000008            IO$M_COMMOD    = 00000040            IO$V_INTSKIP   = 00000008            

IFB$S_ORG      = 00000004            IO$M_CREATE    = 00000080            IO$V_MOUNT     = 00000009            

IFB$S_RFM      = 00000004            IO$M_CTRLCAST  = 00000100            IO$V_NOECHO    = 00000006            

IFB$V_ACCESSED = 00000025            IO$M_CTRLYAST  = 00000080            IO$V_NOFILTR   = 00000009            

IFB$V_ANSI_D   = 00000026            IO$M_CVTLOW    = 00000100            IO$V_NOFORMAT  = 00000008            

IFB$V_ASYNC    = 00000023            IO$M_DATACHECK = 00004000            IO$V_NOW       = 00000006            

IFB$V_ASYNCWAIT= 00000024            IO$M_DELETE    = 00000100            IO$V_NOWAIT    = 00000007            

IFB$V_BIO      = 00000005            IO$M_DMOUNT    = 00000400            IO$V_PACKED    = 00000007            

IFB$V_BRO      = 00000006            IO$M_DSABLMBX  = 00000400            IO$V_PURGE     = 0000000B            

IFB$V_BUSY     = 00000020            IO$M_ENABLMBX  = 00000080            IO$V_READATTN  = 00000007            

IFB$V_CREATE   = 00000032            IO$M_FCODE     = 0000003F            IO$V_REVERSE   = 00000006            

IFB$V_DAP      = 0000003E            IO$M_HANGUP    = 00000200            IO$V_SHUTDOWN  = 00000007            

IFB$V_DAP_OPEN = 0000003D            IO$M_INHERLOG  = 00000800            IO$V_STARTUP   = 00000006            

IFB$V_DEL      = 00000002            IO$M_INHEXTGAP = 00001000            IO$V_SYNCH     = 00000009            

IFB$V_DFW      = 0000002C            IO$M_INHRETRY  = 00008000            IO$V_TIMED     = 00000007            

IFB$V_DLT      = 0000002B            IO$M_INHSEEK   = 00001000            IO$V_TRMNOECHO = 0000000C            

IFB$V_DMO      = 00000028            IO$M_INTERRUPT = 00000040            IO$V_WRTATTN   = 00000008            

IFB$V_EOF      = 00000021            IO$M_INTSKIP   = 00000100            IO$_ACCESS     = 00000032            

IFB$V_EXE      = 00000007            IO$M_MOUNT     = 00000200            IO$_ACPCONTROL = 00000038            

IFB$V_GET      = 00000001            IO$M_NOECHO    = 00000040            IO$_CREATE     = 00000033            

IFB$V_MSE      = 00000031            IO$M_NOFILTR   = 00000200            IO$_DEACCESS   = 00000034            

IFB$V_NORECLK  = 00000033            IO$M_NOFORMAT  = 00000100            IO$_DELETE     = 00000035            

IFB$V_NSP      = 0000003F            IO$M_NOW       = 00000040            IO$_DIAGNOSE   = 0000001D            

IFB$V_NWA      = 0000003C            IO$M_NOWAIT    = 00000080            IO$_DRVCLR     = 00000004            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (3)



IO$_ERASETAPE  = 00000006            IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            

IO$_LOGICAL    = 0000002F            IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            

IO$_MODIFY     = 00000036            IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            

IO$_MOUNT      = 00000039            IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            

IO$_NOP        = 00000000            IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            

IO$_OFFSET     = 00000006            IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            

IO$_PACKACK    = 00000008            IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            

IO$_PHYSICAL   = 0000001F            IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            

IO$_READHEAD   = 0000000E            IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            

IO$_READLBLK   = 00000021            IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            

IO$_READPBLK   = 0000000C            IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            

IO$_READPRESET = 00000019            IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            

IO$_READPROMPT = 00000037            IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            

IO$_READTRACKD = 00000010            IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            

IO$_READVBLK   = 00000031            IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            

IO$_RECAL      = 00000003            IRB$L_CURBDB     00000020            L$RMS00          00000000 R     04   

IO$_RELEASE    = 00000005            IRB$L_CURVBN     00000030            LSTMSK         = 00000060            

IO$_RETCENTER  = 00000007            IRB$L_IFAB_LNK   00000000            NXTBDB           00000055 R     02   

IO$_REWIND     = 00000024            IRB$L_IOS        0000000C            PIO$GL_FMLH      ********   X   02   

IO$_REWINDOFF  = 00000022            IRB$L_IOS4       00000010            RAB$B_BID        00000000            

IO$_SEARCH     = 00000009            IRB$L_IRAB_LNK   0000001C            RAB$B_BLN        00000001            

IO$_SEEK       = 00000002            IRB$L_KEYBUF     00000048            RAB$B_KRF        00000035            

IO$_SENSECHAR  = 0000001B            IRB$L_LAST_RAB   00000024            RAB$B_KSZ        00000034            

IO$_SENSEMODE  = 00000027            IRB$L_LOCK_BDB   0000005C            RAB$B_MBC        00000037            

IO$_SETCHAR    = 0000001A            IRB$L_NRP        0000002C            RAB$B_MBF        00000036            

IO$_SETMODE    = 00000023            IRB$L_NRP_OFF    00000030            RAB$B_PSZ        00000034            

IO$_SKIPFILE   = 00000025            IRB$L_NRP_VBN    0000002C            RAB$B_RAC        0000001E            

IO$_SKIPRECORD = 00000026            IRB$L_NXTBDB     00000028            RAB$B_ROP1       00000005            

IO$_SPACEFILE  = 00000002            IRB$L_OWNER_ID   0000003C            RAB$B_ROP2       00000006            

IO$_SPACERECORD= 00000009            IRB$L_RFA_VBN    00000054            RAB$B_ROP3       00000007            

IO$_STARTSPNDL = 00000019            IRB$L_RLB_ADDR   00000044            RAB$B_TMO        0000001F            

IO$_UNLOAD     = 00000001            IRB$L_RP         00000034            RAB$C_BID      = 00000001            

IO$_VIRTUAL    = 0000003F            IRB$L_RP_OFF     00000038            RAB$C_BLN        00000044            

IO$_WRITECHECK = 0000000A            IRB$L_RP_VBN     00000034            RAB$C_KEY      = 00000001            

IO$_WRITECHECKH= 00000018            IRB$L_RRV_VBN    0000004C            RAB$C_RFA      = 00000002            

IO$_WRITEHEAD  = 0000000D            IRB$L_TEMP0      00000044            RAB$C_SEQ      = 00000000            

IO$_WRITELBLK  = 00000020            IRB$L_TEMP1      00000048            RAB$K_BLN        00000044            

IO$_WRITEMARK  = 0000001C            IRB$V_ASYNC    = 00000023            RAB$L_BKT        00000038            

IO$_WRITEOF    = 00000028            IRB$V_ASYNCWAIT= 00000024            RAB$L_CTX        00000018            

IO$_WRITEPBLK  = 0000000B            IRB$V_BIO_LAST = 00000027            RAB$L_DCT        00000038            

IO$_WRITETRACKD= 0000000F            IRB$V_BRO_SW   = 00000028            RAB$L_FAB        0000003C            

IO$_WRITEVBLK  = 00000030            IRB$V_BUSY     = 00000020            RAB$L_KBF        00000030            

IRB$B_BCNT       00000040            IRB$V_DAP_CONN = 0000003E            RAB$L_PBF        00000030            

IRB$B_BID        00000008            IRB$V_DAP_FMODE= 0000003F            RAB$L_RBF        00000028            

IRB$B_BLN        00000009            IRB$V_DUP      = 0000002C            RAB$L_RFA0       00000010            

IRB$B_EFN        0000000B            IRB$V_EOF      = 00000021            RAB$L_RHB        0000002C            

IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            RAB$L_ROP        00000004            

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            RAB$L_STS        00000008            

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            RAB$L_STV        0000000C            

IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            RAB$L_UBF        00000024            

IRB$B_NRP_KREF   00000031            IRB$V_NEW_IDX  = 00000003            RAB$M_ASY      = 00000001            

IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            RAB$M_BIO      = 00000800            

IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            RAB$M_CCO      = 80000000            

IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            RAB$M_CVT      = 04000000            

IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            RAB$M_EOF      = 00000100            

IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            RAB$M_FDL      = 00000040            

IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            RAB$M_HSH      = 00000080            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (3)



RAB$M_KGE      = 00200000            RLS$M_KEEP_ACC = 00000008            RMS$_CHK       = 000184A4            

RAB$M_KGT      = 00400000            RLS$M_KEEP_LOCK= 00000004            RMS$_CHN       = 0001C0EC            

RAB$M_LIM      = 00004000            RLS$M_RETURN   = 00000001            RMS$_COD       = 000184AC            

RAB$M_LOA      = 00002000            RLS$M_WRT_THRU = 00000002            RMS$_CONTROLC  = 00010651            

RAB$M_LOC      = 00010000            RLS$V_KEEP_ACC = 00000003            RMS$_CONTROLO  = 00010609            

RAB$M_MAS      = 00000020            RLS$V_KEEP_LOCK= 00000002            RMS$_CONTROLY  = 00010611            

RAB$M_NLK      = 00100000            RLS$V_RETURN   = 00000000            RMS$_CRE       = 0001C00A            

RAB$M_NXR      = 00800000            RLS$V_WRT_THRU = 00000001            RMS$_CREATED   = 00010619            

RAB$M_PMT      = 40000000            RM$EXRMS         ********   X   02   RMS$_CUR       = 000184B4            

RAB$M_PPF_IND  = 00004000            RM$FCPFNC_ALT3   ********   X   02   RMS$_DAC       = 0001C012            

RAB$M_PPF_RAT  = 00003FC0            RM$FLUSH         00000035 RG    02   RMS$_DAN       = 000184BC            

RAB$M_PTA      = 20000000            RM$GETSPC1       ********   X   02   RMS$_DEL       = 00018262            

RAB$M_RAH      = 00000200            RM$MAPERR        ********   X   04   RMS$_DEV       = 000184C4            

RAB$M_RLK      = 00080000            RM$RELEASE       ********   X   02   RMS$_DIR       = 000184CC            

RAB$M_RNE      = 01000000            RM$RETRECATTR    000000E1 RG    02   RMS$_DME       = 000184D4            

RAB$M_RNF      = 08000000            RM$RETSPC1       ********   X   02   RMS$_DNA       = 000184DC            

RAB$M_TMO      = 02000000            RM$RSET          ********   X   02   RMS$_DNF       = 0001C04A            

RAB$M_TPT      = 00000002            RM$SETRECATTR    000000B2 RG    02   RMS$_DNR       = 00018272            

RAB$M_UIF      = 00000010            RM$UNLOCKALL     ********   X   02   RMS$_DPE       = 0001C03A            

RAB$M_ULK      = 00040000            RM$UNLOCK_ALT    ********   X   02   RMS$_DTP       = 000184E4            

RAB$M_WAT      = 00020000            RM$WAIT_BDB      ********   X   02   RMS$_DUP       = 000184EC            

RAB$M_WBH      = 00000400            RM$WRITE_ATTR    0000008E RG    02   RMS$_DVI       = 000184F4            

RAB$S_PPF_RAT  = 00000008            RM$WTLST1        ********   X   02   RMS$_ENT       = 0001C01A            

RAB$V_ASY      = 00000000            RMS$FLUSH      = 00000024 RG    02   RMS$_ENV       = 00018724            

RAB$V_BIO      = 0000000B            RMS$FREE       = FFFFFFFE RG    02   RMS$_EOF       = 0001827A            

RAB$V_CCO      = 0000001F            RMS$RELEASE    = 0000000D RG    02   RMS$_ESA       = 000184FC            

RAB$V_CVT      = 0000001A            RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            

RAB$V_EOF      = 00000008            RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            

RAB$V_FDL      = 00000006            RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            

RAB$V_HSH      = 00000007            RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            

RAB$V_KGE      = 00000015            RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            

RAB$V_KGT      = 00000016            RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            

RAB$V_LIM      = 0000000E            RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            

RAB$V_LOA      = 0000000D            RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            

RAB$V_LOC      = 00000010            RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            

RAB$V_MAS      = 00000005            RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            

RAB$V_NLK      = 00000014            RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            

RAB$V_NXR      = 00000017            RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            

RAB$V_PMT      = 0000001E            RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            

RAB$V_PPF_IND  = 0000000E            RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            

RAB$V_PPF_RAT  = 00000006            RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            

RAB$V_PTA      = 0000001D            RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            

RAB$V_RAH      = 00000009            RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            

RAB$V_RLK      = 00000013            RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            

RAB$V_RNE      = 00000018            RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            

RAB$V_RNF      = 0000001B            RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            

RAB$V_TMO      = 00000019            RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            

RAB$V_TPT      = 00000001            RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            

RAB$V_UIF      = 00000004            RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            

RAB$V_ULK      = 00000012            RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            

RAB$V_WAT      = 00000011            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

RAB$V_WBH      = 0000000A            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

RAB$W_ISI        00000002            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

RAB$W_RFA        00000010            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

RAB$W_RFA4       00000014            RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            

RAB$W_RSZ        00000022            RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            

RAB$W_USZ        00000020            RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (3)



RMS$_LAN       = 000185AC            RMS$_SEQ       = 000186AC            

RMS$_LBL       = 000185B4            RMS$_SHR       = 000186B4            

RMS$_LNE       = 000185BC            RMS$_SIZ       = 000186BC            

RMS$_LOC       = 000185C4            RMS$_SPL       = 0001C042            

RMS$_MBC       = 00018734            RMS$_SQO       = 000186C4            

RMS$_MKD       = 0001C032            RMS$_STALL     = 00018001            

RMS$_MRN       = 000185CC            RMS$_STK       = 000186CC            

RMS$_MRS       = 000185D4            RMS$_SUC       = 00010001            

RMS$_NAM       = 000185DC            RMS$_SUP       = 000182D2            

RMS$_NEF       = 000185E4            RMS$_SUPERSEDE = 00010631            

RMS$_NET       = 0001874C            RMS$_SYN       = 000186D4            

RMS$_NID       = 000185EC            RMS$_SYS       = 0001C10C            

RMS$_NMF       = 000182CA            RMS$_TEMP1     = 0001826A            

RMS$_NOD       = 000185F4            RMS$_TEMP2     = 0001868C            

RMS$_NORMAL    = 00010001            RMS$_TMO       = 000181B0            

RMS$_NPK       = 000185FC            RMS$_TRE       = 000186DC            

RMS$_OK_ALK    = 00018039            RMS$_TYP       = 000186E4            

RMS$_OK_DEL    = 00018041            RMS$_UBF       = 000186EC            

RMS$_OK_DUP    = 00018011            RMS$_USZ       = 000186F4            

RMS$_OK_IDX    = 00018019            RMS$_VER       = 000186FC            

RMS$_OK_LIM    = 00018051            RMS$_VOL       = 00018704            

RMS$_OK_RLK    = 00018021            RMS$_WBE       = 0001C12C            

RMS$_OK_RNF    = 00018049            RMS$_WER       = 0001C114            

RMS$_OK_RRV    = 00018029            RMS$_WLD       = 00018744            

RMS$_ORD       = 00018604            RMS$_WLK       = 000182BA            

RMS$_ORG       = 0001860C            RMS$_WPL       = 0001C11C            

RMS$_PBF       = 00018614            RMS$_WSF       = 0001871C            

RMS$_PENDING   = 00018009            RMS$_XAB       = 0001870C            

RMS$_PLG       = 0001861C            SCAN_BDB_LIST    00000051 R     02   

RMS$_PLV       = 0001872C            SUCXIT           0000008A R     02   

RMS$_POS       = 00018624            TPT$L_FLUSH      ********   X   02   

RMS$_PRM       = 0001862C            TPT$L_FREE       ********   X   02   

RMS$_PRV       = 0001829A            TPT$L_RELEASE0   ********   X   02   

RMS$_QUO       = 00018634            WAITBDB          0000007F R     02   

RMS$_RAB       = 0001863C            

RMS$_RAC       = 00018644            

RMS$_RAT       = 0001864C            

RMS$_RBF       = 00018654            

RMS$_RER       = 0001C0F4            

RMS$_REX       = 000182A2            

RMS$_RFA       = 0001865C            

RMS$_RFM       = 00018664            

RMS$_RHB       = 0001866C            

RMS$_RLF       = 00018674            

RMS$_RLK       = 000182AA            

RMS$_RMV       = 0001C0FC            

RMS$_RNF       = 000182B2            

RMS$_RNL       = 000181A0            

RMS$_ROP       = 0001867C            

RMS$_RPL       = 0001C104            

RMS$_RRV       = 00018684            

RMS$_RSA       = 000182DA            

RMS$_RSL       = 0001873C            

RMS$_RSS       = 00018694            

RMS$_RST       = 0001869C            

RMS$_RSZ       = 000186A4            

RMS$_RTB       = 000181A8            

RMS0MISC        $FREE,$RELEASE,$FLUSH                            21-AUG-1978 22:05:23   VAX-11 MACRO X0.3-11               Page  18

PROGRAM SECTION SYNOPSIS                                                                                                         (3)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

L$RMS0MISC1      000000F6      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

$ABS$            0000006C      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

L$RMS0           00000008      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

2080. BYTES LEFT IN FREE MEMORY POOL.

2460. BYTES OF RECLAIMED MEMORY.

OBJ$:RMS0MISC,LIS$:RMS0MISC/-SP=EXECML$/ML,LIB$:R/ML,SRC$:RMS0MISC

44 MLB DIR RDS - 1412 GETS TO DEFINE 32 MACROS. 118 INTER. FILE WRITES. 

