RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  DECLARATIONS

   (1)      70  RM$READ  -  $READ ROUTINE

   (2)     249  BLKIO - COMMON $READ - $WRITE ROUTINE

   (3)     413  RMS$WRITE  -  $WRITE ROUTINE

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   1

017                                                                                                                              (1)



                                     0000     1 	$BEGIN	RMS0BLKIO,017,$RMS0BLOCKIO,<BLOCK I/O ROUTINES>

                                     0000     2 

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977, 1978

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

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

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

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

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

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

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

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

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

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

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 ;

                                     0000    22 ;++

                                     0000    23 ; FACILITY: RMS32

                                     0000    24 ;

                                     0000    25 ; ABSTRACT:

                                     0000    26 ;		THIS MODULE PERFORMS THE $READ AND $WRITE FUNCTIONS.

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:

                                     0000    29 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    30 ;

                                     0000    31 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 23-MAY-77

                                     0000    32 ;

                                     0000    33 ; MODIFIED BY:

                                     0000    34 ;

                                     0000    35 ;	L F LAVERDURE,      18-AUG-78  15:19	; FIX LONG PROBES

                                     0000    36 ;	L F LAVERDURE,   8-MAY-78  10:36

                                     0000    37 ;	J A KRYCKA,	02-JUL-78  15:22

                                     0000    38 ; 01	- 

                                     0000    39 ;--

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   2

017             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 	$IFBDEF

                                     0000    50 	$IRBDEF

                                     0000    51 	$RABDEF

                                     0000    52 	$FABDEF

                                     0000    53 	$DEVDEF

                                     0000    54 	$RLSDEF

                                     0000    55 	$BDBDEF

                                     0000    56 	$RMSDEF

                                     0000    57 	.LIST MEB

                                     0000    58 ;

                                     0000    59 

                                     0000    60 ;

                                     0000    61 ; EQUATED SYMBOLS:

                                     0000    62 ;

                           00000020  0000    63 	ROP=RAB$L_ROP*8			; BIT OFFSET TO RECORD OPTIONS

                                     0000    64 

                                     0000    65 ;

                                     0000    66 ; OWN STORAGE:

                                     0000    67 ;

                                     0000    68 

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   3

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                                     0000    70 	.SBTTL RM$READ  -  $READ ROUTINE

                                     0000    71 ;++

                                     0000    72 ; FUNCTIONAL DESCRIPTION:

                                     0000    73 ;

                                     0000    74 ; THIS ROUTINE PERFORMS THE $READ SPECIFIC CODE.

                                     0000    75 ; IT CHECKS THE USER'S PARAMETERS, CALLS THE

                                     0000    76 ; COMMON BLOCK I/O SETUP, READS THE BUFFER

                                     0000    77 ; AWAITING COMPLETION, SETS THE NEXT BLOCK

                                     0000    78 ; POINTER AND EXITS VIA THE COMMON BLOCK I/O

                                     0000    79 ; CO-ROUTINE.

                                     0000    80 ;

                                     0000    81 ; CALLING SEQUENCE:

                                     0000    82 ;

                                     0000    83 ; ENTERED FROM EXEC AS A RESULT OF USER'S CALLING

                                     0000    84 ; SYS$READ (E.G., BY USING THE $READ MACRO).

                                     0000    85 ;

                                     0000    86 ; INPUT PARAMETERS:

                                     0000    87 ;

                                     0000    88 ;	AP	USER'S ARGUMENT LIST ADDR.

                                     0000    89 ;

                                     0000    90 ; IMPLICIT INPUTS:

                                     0000    91 ;

                                     0000    92 ; THE CONTENTS OF THE VARIOUS RAB FIELDS

                                     0000    93 ; (SEE FUNCTIONAL SPEC FOR DETAILED LIST).

                                     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 ;	VARIOUS FIELDS OF THE RAB ARE FILLED IN

                                     0000   103 ;	TO REFLECT THE STATUS OF THE $READ OPERATION.

                                     0000   104 ;	(SEE RMS FUNCTIONAL SPEC FOR LIST.)

                                     0000   105 ;

                                     0000   106 ;	THE IRAB IS SIMILARLY UPDATED.

                                     0000   107 ;

                                     0000   108 ;	A COMPLETION AST IS QUEUED IF SPECIFIED IN THE USER ARG LIST.

                                     0000   109 ;

                                     0000   110 ; COMPLETION CODES:

                                     0000   111 ;

                                     0000   112 ;	STANDARD RMS.

                                     0000   113 ;

                                     0000   114 ; SIDE EFFECTS:

                                     0000   115 ;

                                     0000   116 ;	IF FILE WAS OPENED WITH 'BRO' OPTION SPECIFYING

                                     0000   117 ;	MIXED BLOCK AND RECORD I/O OPERATIONS, THE

                                     0000   118 ;	CURRENT AND NEXT RECORD CONTEXT IS DESTROYED.

                                     0000   119 ;--

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   4

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                                     0000   121 	$ENTRY	RMS$READ

                                 00000000       	.PSECT	$RMS0BLOCKIO,GBL,NOWRT

                                     0000   122 	$TSTPT	READ

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

                                     0006   123 

                                     0006   124 	$RABSET	FAC=IFB$V_GET,BIO=1,CFLG=1

                          FFF7'  30  0006       		BSBW	RM$RSET

                                 19  0009       		.BYTE	<0 @ 5>!<1 @ 4>!<1 @ 3>!IFB$V_GET

                                     000A   125 ;

                                     000A   126 ; INITIALIZE RBF AND RSZ AND CALL BLKIO TO DO THE I/O

                                     000A   127 ;

            56         20 A8     3C  000A   128 	MOVZWL	RAB$W_USZ(R8),R6		; GET BUFFER SIZE

                          5B     13  000E   129 	BEQL	ERRUSZ				; BRANCH IF ZERO

            57         24 A8     D0  0010   130 	MOVL	RAB$L_UBF(R8),R7		; GET BUFFER ADDR

         28 A8            57     D0  0014   131 	MOVL	R7,RAB$L_RBF(R8)		; SET BUFFER ADDR

                       22 A8     B4  0018   132 	CLRW	RAB$W_RSZ(R8)			; INIT READ SIZE

                                     001B   133 	CSB	#IRB$V_WRITE,(R9)		; FLAG AS READ

            69            29     E5  001B       		BBCC	#IRB$V_WRITE,(R9),30000$

                          00         001E       

                                     001F       30000$:

                          0087   30  001F   134 	BSBW	BLKIO				; DO COMMON BLOCK I/O SETUP

            6A            3E     E0  0022   135 	BBS	#IFB$V_DAP,(R10),NTREAD		; BRANCH IF NETWORK OPERATION

                          42         0025       

                          FFD7'  30  0026   136 	BSBW	RM$RDBUFWT			; ISSUE THE READ AND AWAIT COMPLETION

            4B            50     E9  0029   137 	BLBC	R0,CHKEOF			; BRANCH ON ERROR

                                     002C   138 ;

                                     002C   139 ;  CHECK FOR LOGICAL EOF IF SEQUENTIAL FILE ORG

                                     002C   140 ;

                                     002C   141 CHKLEOF:

            6A            1C     E1  002C   142 	BBC	#DEV$V_RND,IFB$L_PRIM_DEV(R10),SETRSZ ; BRANCH IF NOT DISK

                          32         002F       

                          56     10  0030   143 	BSBB	SETNBP				; SET NEXT BLOCK POINTER

                                     0032   144 	ASSUME	FAB$C_SEQ EQ 0

                       23 AA     95  0032   145 	TSTB	IFB$B_ORGCASE(R10)		; SEQUENTIAL ORG?

                          2B     12  0035   146 	BNEQ	SETRSZ				; BRANCH IF NOT

                                     0037   147 ;

         44 AA            51     D1  0037   148 	CMPL	R1,IFB$L_EBK(R10)		; LAST BLOCK XFERRED > EOF?

                          25     1F  003B   149 	BLSSU	SETRSZ				; BRANCH IF NOT

         44 AA            55     D1  003D   150 	CMPL	R5,IFB$L_EBK(R10)		; 1ST BLOCK PAST EOF?

                          0C     1F  0041   151 	BLSSU	20$				; BRANCH IF DEFINITELY NOT

                          05     1A  0043   152 	BGTRU	10$				; BRANCH IF YES

                       48 AA     B5  0045   153 	TSTW	IFB$W_FFB(R10)			; 1ST BLOCK IS EOF BLOCK

                          05     12  0048   154 	BNEQ	20$				; BRANCH IF ANY BYTES IN USE

                                     004A   155 						; (I.E., NOT YET EOF)

                                     004A   156 ;

                                     004A   157 ;  PAST LOGICAL EOF

                                     004A   158 ;  RESET NUMB TO REFLECT THE NUMBER OF BYTES TRANSFERRED BEFORE LOGICAL EOF.

                                     004A   159 ;

                                     004A   160 10$:	RMSERR	EOF

            50       827A 8F     3C  004A       		MOVZWL	#<RMS$_EOF&^XFFFF>,R0

         44 AA            55     C3  004F   161 20$:	SUBL3	R5,IFB$L_EBK(R10),R1		; GET # FULL VBN'S BEFORE EOF

                          51         0053       

                          11     19  0054   162 	BLSS	RETURN				; IF < 0 JUST RETURN (RSZ = 0)

            51            09     9C  0056   163 	ROTL	#9,R1,R1			; GET # OF BYTES

                          51         0059       

            51         48 AA     A1  005A   164 	ADDW3	IFB$W_FFB(R10),R1,BDB$W_NUMB(R4) ; + LAST BLOCK OFFSET = TOTAL # BYTES

                       10 A4         005E       

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   5

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                          26     10  0060   165 	BSBB	SETNBP				;RESET NEXT BLOCK POINTER

                                     0062   166 ;

         22 A8         10 A4     B0  0062   167 SETRSZ:	MOVW	BDB$W_NUMB(R4),RAB$W_RSZ(R8)	; SET LENGTH OF READ

                                 05  0067   168 RETURN:	RSB					; RETURN TO BLOCK I/O CO-ROUTINE

                                     0068   169 ;++

                                     0068   170 ;

                                     0068   171 ;  PERFORM NETWORK READ FUNCTION

                                     0068   172 ;

                                     0068   173 ;--

                                     0068   174 NTREAD:	$PSECT_BR	NF$NETWORK

                          FF95'  31  0068       		BRW	NF$NETWORK0

                                     006B       		.SAVE

                                 00000000       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0000       NF$NETWORK0:

       0200 8F            56     B1  0000   175 	CMPW	R6,#512				; ENFORCE NETWORK RESTRICTION

                          0C     1A  0005   176 	BGTRU	20$				; OF ONE BLOCK MAX TRANSFER

                          FFF6'  30  0007   177 	BSBW	NT$READ				; READ THE BLOCK

            03            50     E9  000A   178 	BLBC	R0,10$				; BRANCH ON ERROR

                          0052'  31  000D   179 	BRW	SETRSZ				; REJOIN MAINLINE

                          0064'  31  0010   180 10$:	BRW	CHKEOF				; BRANCH AID

                          0058'  31  0013   181 20$:	BRW	ERRSUP				; BRANCH AID

                                     0016   182 	$PSECT_RESTORE

                                 0000006B       		.RESTORE

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   6

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                                     006B   184 ;++

                                     006B   185 ;

                                     006B   186 ; HANDLE ERRORS

                                     006B   187 ;

                                     006B   188 ;--

                                     006B   189 ERRUSZ:	$PSECT_BR	L$RMS0

                          FF92'  31  006B       		BRW	L$RMS01

                                     006E       		.SAVE

                                 00000000       		.PSECT	L$RMS0,GBL,NOWRT

                                     0000       L$RMS01:

                                     0000   190 	RMSERR	USZ

            50       86F4 8F     3C  0000       		MOVZWL	#<RMS$_USZ&^XFFFF>,R0

                          0C     11  0005   191 	BRB	EXIT1

                                     0007   192 	$PSECT_RESTORE

                                 0000006E       		.RESTORE

                                     006E   193 ERRSUP:	$PSECT_BR	L$RMS0

                          FF96'  31  006E       		BRW	L$RMS02

                                     0071       		.SAVE

                                 00000007       		.PSECT	L$RMS0,GBL,NOWRT

                                     0007       L$RMS02:

                                     0007   194 	RMSERR	SUP			; UNSUPPORTED NETWORK OPERATION

            50       82D2 8F     3C  0007       		MOVZWL	#<RMS$_SUP&^XFFFF>,R0

                          05     11  000C   195 	BRB	EXIT1

                                     000E   196 	$PSECT_RESTORE

                                 00000071       		.RESTORE

                                     0071   197 ERRUBF:	$PSECT_BR	L$RMS0

                          FF9A'  31  0071       		BRW	L$RMS03

                                     0074       		.SAVE

                                 0000000E       		.PSECT	L$RMS0,GBL,NOWRT

                                     000E       L$RMS03:

                                     000E   198 	RMSERR	UBF

            50       86EC 8F     3C  000E       		MOVZWL	#<RMS$_UBF&^XFFFF>,R0

                          FFEA'  31  0013   199 EXIT1:	BRW	RM$EXRMS

                                     0016   200 	$PSECT_RESTORE

                                 00000074       		.RESTORE

                                     0074   201 ;++

                                     0074   202 ;

                                     0074   203 ;  HANDLE $WRITE ERRORS

                                     0074   204 ;

                                     0074   205 ;--

                                     0074   206 ERRRBF:	$PSECT_BR	L$RMS0

                          FF9F'  31  0074       		BRW	L$RMS04

                                     0077       		.SAVE

                                 00000016       		.PSECT	L$RMS0,GBL,NOWRT

                                     0016       L$RMS04:

                                     0016   207 	RMSERR	RBF				; BAD BUFFER ADDRESS

            50       8654 8F     3C  0016       		MOVZWL	#<RMS$_RBF&^XFFFF>,R0

                          F6     11  001B   208 	BRB	EXIT1

                                     001D   209 	$PSECT_RESTORE

                                 00000077       		.RESTORE

                                     0077   210 ;++

                                     0077   211 ;

                                     0077   212 ;  HANDLE EOF ERROR

                                     0077   213 ;

                                     0077   214 ;--

       827A 8F            50     B1  0077   215 CHKEOF:	CMPW	R0,#RMS$_EOF&^XFFFF		; WAS ERROR EOF?

                          E9     12  007C   216 	BNEQ	RETURN				; BRANCH IF NOT

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   7

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                       10 A4     B5  007E   217 	TSTW	BDB$W_NUMB(R4)			; ANY INPUT?

                          DF     13  0081   218 	BEQL	SETRSZ				; BRANCH IF NONE (IT'S EOF)

                                     0083   219 	RMSSUC					; RETURN SUCCESS INSTEAD

            50            01     D0  0083       		MOVL	#1,R0

                          A4     11  0086   220 	BRB	CHKLEOF				; GO CHECK FOR LOGICAL EOF

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   8

017             RM$READ  -  $READ ROUTINE                                                                                        (1)



                                     0088   222 ;++

                                     0088   223 ;

                                     0088   224 ;  SUBROUTINE TO SET NEXT BLOCK POINTER

                                     0088   225 ;

                                     0088   226 ; INPUTS:

                                     0088   227 ;	R9		IRAB ADDR

                                     0088   228 ;	R5		STARTING VBN FOR XFER

                                     0088   229 ;	R4		BDB ADDR

                                     0088   230 ;	BDB$W_NUMB	# BYTES XFERED

                                     0088   231 ;

                                     0088   232 ;  OUTPUTS:

                                     0088   233 ;	IRB$L_NRP_VBN	VBN OF BLOCK FOLLOWING LAST TRANSFERRED

                                     0088   234 ;	R1		LAST VBN XFERRED

                                     0088   235 ;	R2		# BYTES XFERRED IN LAST BLK

                                     0088   236 ;

                                     0088   237 ; \ASSUMES VBN SIGNIFICANT FOR DISK DEVICES ONLY\

                                     0088   238 ;--

            51         10 A4     3C  0088   239 SETNBP:	MOVZWL	BDB$W_NUMB(R4),R1		; GET XFER LEN

            51       FE00 8F     AB  008C   240 	BICW3	#^XFE00,R1,R2			; GET # BYTES IN LAST BLK

                          52         0091       

                          05     12  0092   241 	BNEQ	10$				; BRANCH IF NON-ZERO

            52       0200 8F     B0  0094   242 	MOVW	#512,R2				; MUST HAVE BEEN 512!

                          51     D7  0099   243 10$:	DECL	R1				; ROUND DOWN # BYTES

            51         F7 8F     78  009B   244 	ASHL	#-9,R1,R1			; GET # VBN'S XFERRED - 1

                          51         009F       

            51            55     C0  00A0   245 	ADDL2	R5,R1				; SET LAST VBN XFERRED

            01            51     C1  00A3   246 	ADDL3	R1,#1,IRB$L_NRP_VBN(R9)		; SET NBP

                       2C A9         00A6       

                                 05  00A8   247 	RSB

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page   9

017             BLKIO - COMMON $READ - $WRITE ROUTINE                                                                            (2)



                                     00A9   249 	.SBTTL	BLKIO - COMMON $READ - $WRITE ROUTINE

                                     00A9   250 ;++

                                     00A9   251 ;

                                     00A9   252 ; FUNCTIONAL DESCRIPTION:

                                     00A9   253 ;

                                     00A9   254 ;	THIS ROUTINE PERFORMS COMMON $READ - $WRITE FUNCTION

                                     00A9   255 ;	SETUP AND CLEANUP.  IT FUNCTIONS AS A CO-ROUTINE

                                     00A9   256 ;	SO THAT THE $READ OR $WRITE ROUTINE NEED

                                     00A9   257 ;	MERELY DO AN RSB TO EXECUTE THE COMMON

                                     00A9   258 ;	BLOCK I/O CLEANUP.

                                     00A9   259 ;

                                     00A9   260 ; CALLING SEQUENCE:

                                     00A9   261 ;

                                     00A9   262 ;	BSBW	BLKIO

                                     00A9   263 ;

                                     00A9   264 ; INPUT PARAMETERS:

                                     00A9   265 ;

                                     00A9   266 ;	R11	IMPURE AREA ADDRESS

                                     00A9   267 ;	R10	IFAB ADDR

                                     00A9   268 ;	R9	IRAB ADDR

                                     00A9   269 ;	R8	RAB ADDR

                                     00A9   270 ;	R7	USER BUFFER ADDR

                                     00A9   271 ;	R6	USER BUFFER LENGTH

                                     00A9   272 ;

                                     00A9   273 ; IMPLICIT INPUTS:

                                     00A9   274 ;

                                     00A9   275 ;	IRB$L_CURBDB

                                     00A9   276 ;	IRB$L_NRP_VBN

                                     00A9   277 ;	RAB$L_BKT

                                     00A9   278 ;	IRB$W_BKPBITS

                                     00A9   279 ;

                                     00A9   280 ; OUTPUT PARAMETERS:

                                     00A9   281 ;

                                     00A9   282 ;	R5	VBN FOR 1ST BLOCK OF XFER

                                     00A9   283 ;	R4	CURRENT BDB ADDR

                                     00A9   284 ;	R0-R3	DESTROYED

                                     00A9   285 ;

                                     00A9   286 ; IMPLICIT OUTPUTS:

                                     00A9   287 ;

                                     00A9   288 ;	CURRENT BDB POSSIBLY RELEASED

                                     00A9   289 ;	NEW CURRENT BDB LOCKED

                                     00A9   290 ;	BDB SETUP FOR XFER

                                     00A9   291 ;	RAB$W_RFA SET TO STARTING VBN

                                     00A9   292 ;

                                     00A9   293 ; COMPLETION CODES:

                                     00A9   294 ;

                                     00A9   295 ;	NONE.  EXITS RMS IF ANY ERRORS.

                                     00A9   296 ;

                                     00A9   297 ; SIDE EFFECTS:

                                     00A9   298 ;

                                     00A9   299 ;	BDB BUFFER INFORMATION SAVED IN IRAB,

                                     00A9   300 ;	HENCE CO-ROUTINE MUST BE CALLED IN

                                     00A9   301 ;	ORDER TO CLEAN UP ON EXIT.

                                     00A9   302 ;--

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  10

017             BLKIO - COMMON $READ - $WRITE ROUTINE                                                                            (2)



                                     00A9   304 ;

                                     00A9   305 ;  PROBE THE USER'S BUFFER FOR APPROPRIATE ACCESS

                                     00A9   306 ;

                                     00A9   307 BLKIO:

                          56     B5  00A9   308 	TSTW	R6				; ZERO LENGTH?

                          28     13  00AB   309 	BEQL	40$				; BRANCH IF YES (AVOIDING PROBE)

            54            56     7D  00AD   310 	MOVQ	R6,R4				; COPY SIZE AND ADDRESS

            50       FE00 8F     32  00B0   311 	CVTWL	#-512,R0			; ADDRESSING CONSTANT

            69            29     E0  00B5   312 10$:	BBS	#IRB$V_WRITE,(R9),20$		; BRANCH IF WRITE

                          08         00B8       

            54            00     0D  00B9   313 	PROBEW	#0,R4,(R5)			; PROBE WRITEABILITY

                          65         00BC       

                          08     12  00BD   314 	BNEQ	30$				; BRANCH IF O.K.

                          B0     11  00BF   315 	BRB	ERRUBF				; GO HANDLE ERROR

                                     00C1   316 20$:	IFNORD	R4,(R5),ERRRBF			; BRANCH IF NOT READABLE

            54            00     0C  00C1       		PROBER	#0,R4,(R5)

                          65         00C4       

                          AD     13  00C5       		BEQL	ERRRBF

            55            50     C2  00C7   317 30$:	SUBL2	R0,R5				; GET ADDRESS OF NEXT PAGE

            54            6440   3E  00CA   318 	MOVAW	(R4)[R0],R4			; CALCULATE NEW LENGTH

                          E5     14  00CE   319 	BGTR	10$				; BRANCH IF MORE TO PROBE

            54            50     C2  00D0   320 	SUBL2	R0,R4				; NEED TO HANDLE LAST PAGE?

                          E0     14  00D3   321 	BGTR	10$				; BRANCH IF YES

                                     00D5   322 40$:

                                     00D5   323 ;

                                     00D5   324 ;  GET BLOCK NUMBER FOR I/O

                                     00D5   325 ;

            55         38 A8     D0  00D5   326 	MOVL	RAB$L_BKT(R8),R5		; GET BLOCK #

                          04     12  00D9   327 	BNEQ	RELBDB				; BRANCH IF NON-ZERO

                                     00DB   328 ;

                                     00DB   329 ; SEQUENTIAL OPERATION INDICATED - SET NBP FROM SAVED VALUE

                                     00DB   330 ;

            55         2C A9     D0  00DB   331 	MOVL	IRB$L_NRP_VBN(R9),R5

                                     00DF   332 ;

                                     00DF   333 ; RELEASE THE CURRENT BDB IF ANY, UNLESS

                                     00DF   334 ; IT IS FOR THIS VBN AND WE'RE WRITING

                                     00DF   335 ;

                                     00DF   336 RELBDB:

            54         20 A9     D0  00DF   337 	MOVL	IRB$L_CURBDB(R9),R4		; GET CURRENT BDB

                          27     13  00E3   338 	BEQL	GETBDB				; BRANCH IF NONE

            69            28     E0  00E5   339 	BBS	#IRB$V_BRO_SW,(R9),RELEASE	; ALWAYS RELEASE IF

                          0A         00E8       

                                     00E9   340 						; RECORD I/O OPERATION LAST

            69            29     E1  00E9   341 	BBC	#IRB$V_WRITE,(R9),RELEASE	; ALWAYS RELEASE ON READ

                          06         00EC       

            55         18 A4     D1  00ED   342 	CMPL	BDB$L_VBN(R4),R5		; SAME BLOCK?

                          3A     13  00F1   343 	BEQL	SETBDB				; YES (OMIT RELEASE)

                                     00F3   344 ;

                                     00F3   345 ; MUST RELEASE BDB - USE RM$WTLST1 FOR SEQUENTIAL ORG IF IRB$V_BRO_SW SET,

                                     00F3   346 ;  ELSE RM$RELEASE

                                     00F3   347 ;

                                     00F3   348 RELEASE:

                                     00F3   349 	ASSUME	FAB$C_SEQ EQ 0

                       23 AA     95  00F3   350 	TSTB	IFB$B_ORGCASE(R10)		; SEQ ORG?

                          1B     12  00F6   351 	BNEQ	REL23				; BRANCH IF NOT

            69            28     E1  00F8   352 	BBC	#IRB$V_BRO_SW,(R9),GBDB0	; BRANCH IF BLOCK I/O LAST

                          06         00FB       

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  11

017             BLKIO - COMMON $READ - $WRITE ROUTINE                                                                            (2)



                                     00FC   353 						; (OMITTING UNNEEDED RELEASE)

                          FF01'  30  00FC   354 	BSBW	RM$WTLST1			; RELEASE LAST BLOCK (WITH PADDING)

            64            50     E9  00FF   355 	BLBC	R0,RELERR			; BRANCH ON ERROR

            54         28 A9     D0  0102   356 GBDB0:	MOVL	IRB$L_NXTBDB(R9),R4		; GET BDB ADDR TO USE

         18 A4            55     D0  0106   357 	MOVL	R5,BDB$L_VBN(R4)		; AND SET VBN INTO IT

                          21     11  010A   358 	BRB	SETBDB

                                     010C   359 ;

                                     010C   360 ;  NEED MERELY GET A BDB (NO RELEASE REQUIRED).  BRANCH BASED ON FILE ORG.

                                     010C   361 ;

                                     010C   362 	ASSUME	FAB$C_SEQ EQ 0

                       23 AA     95  010C   363 GETBDB:	TSTB	IFB$B_ORGCASE(R10)		; SEQ. FILE ORG?

                          F1     13  010F   364 	BEQL	GBDB0				; BRANCH IF YES

                          0C     11  0111   365 	BRB	GBDB23				; BRANCH FOR REL. AND IDX.

                                     0113   366 ;

                                     0113   367 ;  RELEASE LAST BLOCK FOR RELATIVE AND INDEXED FILE ORGS

                                     0113   368 ;  AND GET A BDB FOR THE NEW OPERATION

                                     0113   369 ;

                                     0113   370 REL23:

                       20 A9     D4  0113   371 	CLRL	IRB$L_CURBDB(R9)		; NOTE NO BDB

            53            02     D0  0116   372 	MOVL	#RLS$M_WRT_THRU,R3		; SPECIFY WRITE THRU

                          FEE4'  30  0119   373 	BSBW	RM$RELEASE			; RELEASE THE BLOCK

            4E            50     E9  011C   374 	BLBC	R0,EXIT				; BRANCH ON ERROR

                                     011F   375 GBDB23:	$CACHE	VBN=R5,SIZE=#0,FLAGS=<LOCK,NOBUFFER,NOREAD,NOWAIT>,ERR=EXIT

            51            55     D0  011F       		.IIF DIF <R5><R1>,	MOVL	R5,R1

                          52     D4  0122       		CLRL	R2

                                     0124       	.SAVE

                                 0000006C       	.PSECT	$ABS$,ABS

                           00000000  006C       	.=0

                                 00000124       	.RESTORE

            53            17     D0  0124       		MOVL #$$.TMP,R3

                          FED6'  30  0127       		BSBW	RM$CACHE

            40            50     E9  012A       		.IIF NB <EXIT>,	BLBC	R0,EXIT

                                     012D   376 						; GET BDB FOR OPERATION

                                     012D   377 SETBDB:

         20 A9            54     D0  012D   378 	MOVL	R4,IRB$L_CURBDB(R9)		; NOTE NEW CURRENT BDB

                                     0131   379 ;

                                     0131   380 ; SAVE SIZE AND ADDRESS OF BUFFER ASSOCIATED

                                     0131   381 ; WITH BDB IN RP FIELD OF IRAB

                                     0131   382 ;

         34 A9         14 A4     D0  0131   383 	MOVL	BDB$L_ADDR(R4),IRB$L_RP_VBN(R9)

         38 A9         12 A4     B0  0136   384 	MOVW	BDB$W_SIZE(R4),IRB$W_RP_OFF(R9)

                                     013B   385 ;

                                     013B   386 ; STORE USER-SUPPLIED BUFFER INFO

                                     013B   387 ;

         12 A4            56     B0  013B   388 	MOVW	R6, BDB$W_SIZE(R4)

         10 A4            56     B0  013F   389 	MOVW	R6, BDB$W_NUMB(R4)

         14 A4            57     D0  0143   390 	MOVL	R7, BDB$L_ADDR(R4)

         10 A8            55     D0  0147   391 	MOVL	R5, RAB$W_RFA(R8)		; SET RFA FROM VBN

                          9E     16  014B   392 	JSB	@(SP)+				; CO-ROUTINE CALL FOR CALLER

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  12

017             BLKIO - COMMON $READ - $WRITE ROUTINE                                                                            (2)



                                     014D   394 ;

                                     014D   395 ; FINISH BLOCK I/O CO-ROUTINE

                                     014D   396 ;

                                     014D   397 ; CALLED WHEN READ OR WRITE DOES 'RSB'

                                     014D   398 ;

                                     014D   399 ; RESTORE REAL BUFFER INFO & RELEASE UNLESS LOCK NEEDED

                                     014D   400 ; (R0 HAS STATUS CODE)

                                     014D   401 ;

         14 A4         34 A9     D0  014D   402 	MOVL	IRB$L_RP_VBN(R9),BDB$L_ADDR(R4)

         12 A4         38 A9     B0  0152   403 	MOVW	IRB$W_RP_OFF(R9),BDB$W_SIZE(R4)

         0A A4            03     8A  0157   404 	BICB2	#BDB$M_VAL!BDB$M_DRT,BDB$B_FLGS(R4)	; CLEAR VALID AND DIRTY

            6A            30     E1  015B   405 	BBC	#IFB$V_WRTACC,(R10),10$		; BRANCH IF NOT WRITE ACCESSED

                          04         015E       

            69            29     E5  015F   406 	BBCC	#IRB$V_WRITE,(R9),EXIT		; BRANCH IF DOING READ

                          0A         0162       

                       20 A9     D4  0163   407 10$:	CLRL	IRB$L_CURBDB(R9)		; SAY NO BDB

                          50     DD  0166   408 RELERR:	PUSHL	R0				; SAVE STATUS

                          FE95'  30  0168   409 	BSBW	RM$RLNERR			; RELEASE BDB

                          01     BA  016B   410 	POPR	#^M<R0>				; RESTORE STATUS

                          FE90'  31  016D   411 EXIT:	BRW	RM$EXRMS

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  13

017             RMS$WRITE  -  $WRITE ROUTINE                                                                                     (3)



                                     0170   413 	.SBTTL	RMS$WRITE  -  $WRITE ROUTINE

                                     0170   414 ;++

                                     0170   415 ; FUNCTIONAL DESCRIPTION:

                                     0170   416 ;

                                     0170   417 ; THIS ROUTINE PERFORMS THE $WRITE SPECIFIC CODE.

                                     0170   418 ; IT CHECKS THE USER'S PARAMETERS, CALLS THE

                                     0170   419 ; COMMON BLOCK I/O SETUP, WRITES THE BUFFER

                                     0170   420 ; AWAITING COMPLETION, SETS THE NEXT BLOCK

                                     0170   421 ; POINTER AND EXITS VIA THE COMMON BLOCK I/O

                                     0170   422 ; CO-ROUTINE.

                                     0170   423 ;

                                     0170   424 ; CALLING SEQUENCE:

                                     0170   425 ;

                                     0170   426 ; ENTERED FROM EXEC AS A RESULT OF USER'S CALLING

                                     0170   427 ; SYS$WRITE (E.G., BY USING THE $WRITE MACRO).

                                     0170   428 ;

                                     0170   429 ; INPUT PARAMETERS:

                                     0170   430 ;

                                     0170   431 ;	AP	USER'S ARGUMENT LIST ADDR.

                                     0170   432 ;

                                     0170   433 ; IMPLICIT INPUTS:

                                     0170   434 ;

                                     0170   435 ; THE CONTENTS OF THE VARIOUS RAB FIELDS

                                     0170   436 ; (SEE FUNCTIONAL SPEC FOR DETAILED LIST).

                                     0170   437 ;

                                     0170   438 ; OUTPUT PARAMETERS:

                                     0170   439 ;

                                     0170   440 ;	R0	STATUS CODE

                                     0170   441 ;	R1	DESTROYED

                                     0170   442 ;

                                     0170   443 ; IMPLICIT OUTPUTS:

                                     0170   444 ;

                                     0170   445 ;	VARIOUS FIELDS OF THE RAB ARE FILLED IN

                                     0170   446 ;	TO REFLECT THE STATUS OF THE $WRITE OPERATION.

                                     0170   447 ;	(SEE RMS FUNCTIONAL SPEC FOR LIST.)

                                     0170   448 ;

                                     0170   449 ;	THE IRAB IS SIMILARLY UPDATED.

                                     0170   450 ;

                                     0170   451 ;	A COMPLETION AST IS QUEUED IF SPECIFIED IN THE USER ARG LIST.

                                     0170   452 ;

                                     0170   453 ; COMPLETION CODES:

                                     0170   454 ;

                                     0170   455 ;	STANDARD RMS.

                                     0170   456 ;

                                     0170   457 ; SIDE EFFECTS:

                                     0170   458 ;

                                     0170   459 ;	IF FILE WAS OPENED WITH 'BRO' OPTION SPECIFYING

                                     0170   460 ;	MIXED BLOCK AND RECORD I/O OPERATIONS, THE

                                     0170   461 ;	CURRENT AND NEXT RECORD CONTEXT IS DESTROYED.

                                     0170   462 ;--

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  14

017             RMS$WRITE  -  $WRITE ROUTINE                                                                                     (3)



                                     0170   464 	$ENTRY	RMS$WRITE

                                 00000170       	.PSECT	$RMS0BLOCKIO,GBL,NOWRT

                                     0170   465 	$TSTPT	WRITE

                 00000200'9F     D6  0170       		INCL	@#PIO$GL_FMLH+512+TPT$L_WRITE

                                     0176   466 	$RABSET	FAC=IFB$V_PUT,BIO=1,CFLG=1

                          FE87'  30  0176       		BSBW	RM$RSET

                                 18  0179       		.BYTE	<0 @ 5>!<1 @ 4>!<1 @ 3>!IFB$V_PUT

                                     017A   467 ;

                                     017A   468 ; GET RECORD SIZE AND ADDRESS AND PROBE THE BUFFER

                                     017A   469 ;

            56         22 A8     3C  017A   470 	MOVZWL	RAB$W_RSZ(R8),R6		; GET SIZE

            57         28 A8     D0  017E   471 	MOVL	RAB$L_RBF(R8),R7		; GET ADDR

                                     0182   472 	SSB	#IRB$V_WRITE,(R9)		; FLAG AS WRITE

            69            29     E2  0182       		BBSS	#IRB$V_WRITE,(R9),30001$

                          00         0185       

                                     0186       30001$:

                          FF20   30  0186   473 	BSBW	BLKIO				; DO COMMON BLOCK I/O SETUP

            6A            3E     E0  0189   474 	BBS	#IFB$V_DAP,(R10),NTWRITE	; BRANCH IF NETWORK OPERATION

                          5E         018C       

            6A            1C     E1  018D   475 	BBC	#DEV$V_RND,IFB$L_PRIM_DEV(R10),WT1	; BRANCH IF NOT DISK

                          4F         0190       

                                     0191   476 	ASSUME	FAB$C_SEQ EQ 0

                       23 AA     95  0191   477 	TSTB	IFB$B_ORGCASE(R10)		; IS THIS THE SEQ. FILE ORG?

                          10     12  0194   478 	BNEQ	WRTBLK				; BRANCH IF NOT (NO AUTO EXTEND)

                                     0196   479 ;

                                     0196   480 ;  CHECK FOR FILE EXTEND NEEDED

                                     0196   481 ;

                          56     D7  0196   482 	DECL	R6				; ROUND DOWN # OF BYTES

            56         F7 8F     78  0198   483 	ASHL	#-9,R6,R2			; GET # BLKS TO XFER - 1

                          52         019C       

            52            55     C0  019D   484 	ADDL2	R5,R2				; GET ENDING VBN FOR XFER

            52         40 AA     C2  01A0   485 	SUBL2	IFB$L_HBK(R10),R2		; COMPUTE # BLOCKS TO EXTEND

                          3E     1A  01A4   486 	BGTRU	EXTEND				; AND BRANCH IF > 0

                          FE57'  30  01A6   487 WRTBLK:	BSBW	RM$WTBUFWT			; WRITE THE BLOCK

            2B            50     E9  01A9   488 	BLBC	R0,10$				; BRANCH ON ERROR

                                     01AC   489 ;

                                     01AC   490 ; IF REQUESTED BLOCK IS PAST CURRENT EOF, RESET EOF

                                     01AC   491 ;

                          FED9   30  01AC   492 	BSBW	SETNBP				; SET NEXT BLOCK POINTER

            68            21     E0  01AF   493 	BBS	#RAB$V_TPT+ROP,(R8),20$		; BRANCH IF NEW EOF WANTED

                          25         01B2       

            51         44 AA     D1  01B3   494 	CMPL	IFB$L_EBK(R10),R1		; PAST EOF?

                          1E     1A  01B7   495 	BGTRU	10$				; BRANCH IF NOT

                          06     1F  01B9   496 	BLSSU	5$				; BRANCH IF DEFINITE YES

         48 AA            52     B1  01BB   497 	CMPW	R2,IFB$W_FFB(R10)		; PAST CURRENT EOF BYTE?

                          16     1B  01BF   498 	BLEQU	10$				; BRANCH IF NOT

                                     01C1   499 ;

                                     01C1   500 ;  STORE THE NEW EOF

                                     01C1   501 ;

                                     01C1   502 5$:	SSB	#IFB$V_RW_ATTR,(R10)		; FLAG ATTRIBUTE REWRITE NEEDED

            6A            34     E2  01C1       		BBSS	#IFB$V_RW_ATTR,(R10),30002$

                          00         01C4       

                                     01C5       30002$:

         38 AA            52     B1  01C5   503 	CMPW	R2,IFB$W_DEVBUFSIZ(R10)		; IS LAST BLOCK FULL?

                          04     1F  01C9   504 	BLSSU	7$				; BRANCH IF NOT

                          52     B4  01CB   505 	CLRW	R2				; YES - CLEAR OFFSET IN BLOCK

                          51     D6  01CD   506 	INCL	R1				; AND BUMP EOF VBN

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  15

017             RMS$WRITE  -  $WRITE ROUTINE                                                                                     (3)



         44 AA            51     D0  01CF   507 7$:	MOVL	R1,IFB$L_EBK(R10)

         48 AA            52     B0  01D3   508 	MOVW	R2,IFB$W_FFB(R10)

                                 05  01D7   509 10$:	RSB

                                     01D8   510 ;

                                     01D8   511 ;  VERIFY TPT OPTION ALLOWED BY FAC

                                     01D8   512 ;

         22 AA            04     E0  01D8   513 20$:	BBS	#FAB$V_TRN,IFB$B_FAC(R10),5$	; BRANCH IF ALLOWED

                          E4         01DC       

                                     01DD   514 	$PSECT_BR	L$RMS0

                          FE3D'  31  01DD       		BRW	L$RMS05

                                     01E0       		.SAVE

                                 0000001D       		.PSECT	L$RMS0,GBL,NOWRT

                                     001D       L$RMS05:

                                     001D   515 	RMSERR	FAC				; GIVE ERROR

            50       8514 8F     3C  001D       		MOVZWL	#<RMS$_FAC&^XFFFF>,R0

                                 05  0022   516 	RSB					; AND RETURN TO CO-ROUTINE

                                     0023   517 	$PSECT_RESTORE

                                 000001E0       		.RESTORE

                                     01E0   518 ;

                                     01E0   519 ;  WRITE FOR NON DISK DEVICES

                                     01E0   520 ;

                          FE1D'  30  01E0   521 WT1:	BSBW	RM$WTBUFWT

                                 05  01E3   522 	RSB

                                     01E4   523 ;

                                     01E4   524 ;  EXTEND FILE (I.E., FOR DISK ONLY)

                                     01E4   525 ;

                          FE19'  30  01E4   526 EXTEND:	BSBW	RM$AUTOEXTEND

            BC            50     E8  01E7   527 	BLBS	R0,WRTBLK			; IF SUCCESSFUL, REWRITE

                                 05  01EA   528 	RSB

                                     01EB   529 ;++

                                     01EB   530 ;

                                     01EB   531 ;  PERFORM NETWORK WRITE FUNCTION

                                     01EB   532 ;

                                     01EB   533 ;--

                                     01EB   534 NTWRITE:$PSECT_BR	NF$NETWORK

                          FE28'  31  01EB       		BRW	NF$NETWORK6

                                     01EE       		.SAVE

                                 00000016       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0016       NF$NETWORK6:

       0200 8F            56     B1  0016   535 	CMPW	R6,#512				; ENFORCE NETWORK RESTRICTION

                          04     1A  001B   536 	BGTRU	10$				; OF ONE BLOCK MAX TRANSFER

                          FFE0'  30  001D   537 	BSBW	NT$WRITE			; WRITE THE BLOCK

                                 05  0020   538 	RSB					; RETURN TO CO-ROUTINE

                          004A'  31  0021   539 10$:	BRW	ERRSUP				; BRANCH AID

                                     0024   540 	$PSECT_RESTORE

                                 000001EE       		.RESTORE

                                     01EE   541 	.END

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (3)



$$.PSECT_EP    = 00000007            CSH$V_READAHEAD= 00000003            EXTEND           000001E4 R     02   

$$.TMP         = 00000017            DEV$M_ALL      = 00800000            FAB$B_BID        00000000            

$$RMSTEST      = 0000001A            DEV$M_AVL      = 00040000            FAB$B_BKS        0000003E            

$$RMS_PBUGCHK  = 00000010            DEV$M_CCL      = 00000002            FAB$B_BLN        00000001            

$$RMS_TBUGCHK  = 00000008            DEV$M_DIR      = 00000008            FAB$B_DNS        00000035            

$$RMS_UMODE    = 00000004            DEV$M_DMT      = 00200000            FAB$B_FAC        00000016            

BDB$B_BID        00000008            DEV$M_ELG      = 00400000            FAB$B_FNS        00000034            

BDB$B_BLN        00000009            DEV$M_FOD      = 00004000            FAB$B_FSZ        0000003F            

BDB$B_FLGS       0000000A            DEV$M_FOR      = 01000000            FAB$B_ORG        0000001D            

BDB$B_POST_CCTL  00000023            DEV$M_GEN      = 00020000            FAB$B_RAT        0000001E            

BDB$B_PRE_CCTL   00000022            DEV$M_IDV      = 04000000            FAB$B_RFM        0000001F            

BDB$B_REL_VBN    00000020            DEV$M_MBX      = 00100000            FAB$B_RTV        0000001C            

BDB$B_USECNT     0000000B            DEV$M_MNT      = 00080000            FAB$B_SHR        00000017            

BDB$B_VAL_VBNS   00000021            DEV$M_NET      = 00002000            FAB$C_BID      = 00000003            

BDB$C_BID      = 0000000C            DEV$M_ODV      = 08000000            FAB$C_BLN        00000050            

BDB$C_BLN        00000028            DEV$M_RCK      = 40000000            FAB$C_FIX      = 00000001            

BDB$K_BLN        00000028            DEV$M_REC      = 00000001            FAB$C_HSH      = 00000030            

BDB$L_ADDR       00000014            DEV$M_RND      = 10000000            FAB$C_IDX      = 00000020            

BDB$L_BLINK      00000004            DEV$M_RTM      = 20000000            FAB$C_MAXRFM   = 00000003            

BDB$L_CURBUFADR  00000024            DEV$M_SDI      = 00000010            FAB$C_REL      = 00000010            

BDB$L_FLINK      00000000            DEV$M_SHR      = 00010000            FAB$C_RFM_DFLT = 00000002            

BDB$L_IOSB       00000020            DEV$M_SPL      = 00000040            FAB$C_SEQ      = 00000000            

BDB$L_OWN        0000000C            DEV$M_SQD      = 00000020            FAB$C_UDF      = 00000000            

BDB$L_VBN        00000018            DEV$M_SWL      = 02000000            FAB$C_VAR      = 00000002            

BDB$L_WAIT       0000001C            DEV$M_TRM      = 00000004            FAB$C_VFC      = 00000003            

BDB$L_WK1        00000020            DEV$M_WCK      = 80000000            FAB$K_BLN        00000050            

BDB$M_AST_DCL  = 00000040            DEV$V_ALL      = 00000017            FAB$L_ALQ        00000010            

BDB$M_DRT      = 00000002            DEV$V_AVL      = 00000012            FAB$L_CTX        00000018            

BDB$M_IOP      = 00000004            DEV$V_CCL      = 00000001            FAB$L_DEV        00000040            

BDB$M_LKDINWS  = 00000080            DEV$V_DIR      = 00000003            FAB$L_DNA        00000030            

BDB$M_NOLOCATE = 00000010            DEV$V_DMT      = 00000015            FAB$L_FNA        0000002C            

BDB$M_PRM      = 00000008            DEV$V_ELG      = 00000016            FAB$L_FOP        00000004            

BDB$M_VAL      = 00000001            DEV$V_FOD      = 0000000E            FAB$L_JNL        00000020            

BDB$M_WFO      = 00000020            DEV$V_FOR      = 00000018            FAB$L_MRN        00000038            

BDB$V_AST_DCL  = 00000006            DEV$V_GEN      = 00000011            FAB$L_NAM        00000028            

BDB$V_DRT      = 00000001            DEV$V_IDV      = 0000001A            FAB$L_SDC        00000044            

BDB$V_IOP      = 00000002            DEV$V_MBX      = 00000014            FAB$L_STS        00000008            

BDB$V_LKDINWS  = 00000007            DEV$V_MNT      = 00000013            FAB$L_STV        0000000C            

BDB$V_NOLOCATE = 00000004            DEV$V_NET      = 0000000D            FAB$L_XAB        00000024            

BDB$V_PRM      = 00000003            DEV$V_ODV      = 0000001B            FAB$M_BIO      = 00000020            

BDB$V_VAL      = 00000000            DEV$V_RCK      = 0000001E            FAB$M_BLK      = 00000008            

BDB$V_WFO      = 00000005            DEV$V_REC      = 00000000            FAB$M_BRO      = 00000040            

BDB$W_NUMB       00000010            DEV$V_RND      = 0000001C            FAB$M_CBT      = 00200000            

BDB$W_SIZE       00000012            DEV$V_RTM      = 0000001D            FAB$M_CIF      = 02000000            

BIT...         = 00000005            DEV$V_SDI      = 00000004            FAB$M_CR       = 00000002            

BLKIO            000000A9 R     02   DEV$V_SHR      = 00000010            FAB$M_CTG      = 00100000            

CHKEOF           00000077 R     02   DEV$V_SPL      = 00000006            FAB$M_DEL      = 00000004            

CHKLEOF          0000002C R     02   DEV$V_SQD      = 00000005            FAB$M_DFW      = 00000020            

CSH$M_LOCK     = 00000001            DEV$V_SWL      = 00000019            FAB$M_DLT      = 00008000            

CSH$M_NOBUFFER = 00000010            DEV$V_TRM      = 00000002            FAB$M_DMO      = 00001000            

CSH$M_NOREAD   = 00000004            DEV$V_WCK      = 0000001F            FAB$M_ESC      = 08000000            

CSH$M_NOWAIT   = 00000002            ERRRBF           00000074 R     02   FAB$M_EXE      = 00000080            

CSH$M_READAHEAD= 00000008            ERRSUP           0000006E R     02   FAB$M_FTN      = 00000001            

CSH$V_LOCK     = 00000000            ERRUBF           00000071 R     02   FAB$M_GET      = 00000002            

CSH$V_NOBUFFER = 00000004            ERRUSZ           0000006B R     02   FAB$M_INP      = 00080000            

CSH$V_NOREAD   = 00000002            EXIT             0000016D R     02   FAB$M_JNL      = 00400000            

CSH$V_NOWAIT   = 00000001            EXIT1            00000013 R     05   FAB$M_KFO      = 40000000            

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (3)



FAB$M_MSE      = 00000010            FAB$V_NFS      = 00000010            IFB$C_BLN_REL    00000060            

FAB$M_MXV      = 00000002            FAB$V_NIL      = 00000005            IFB$C_BLN_SEQ    0000005C            

FAB$M_NAM      = 01000000            FAB$V_OFP      = 0000001D            IFB$C_DIR      = 00000003            

FAB$M_NEF      = 00000400            FAB$V_ORG      = 00000004            IFB$C_FHAEND     00000050            

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

FAB$M_NIL      = 00000020            FAB$V_PPF      = 00000012            IFB$C_MAXORG   = 00000002            

FAB$M_OFP      = 20000000            FAB$V_PPF_IND  = 0000000E            IFB$C_REL      = 00000001            

FAB$M_POS      = 00000100            FAB$V_PPF_RAT  = 00000006            IFB$C_SEQ      = 00000000            

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

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

FAB$M_PPF_RAT  = 00003FC0            FAB$V_RCK      = 00000017            IFB$K_BLN_REL    00000060            

FAB$M_PRN      = 00000004            FAB$V_RWC      = 0000000B            IFB$K_BLN_SEQ    0000005C            

FAB$M_PUT      = 00000001            FAB$V_RWO      = 00000007            IFB$K_FHAEND     00000050            

FAB$M_RCK      = 00800000            FAB$V_SCF      = 0000000E            IFB$L_ARGLST     00000018            

FAB$M_RWC      = 00000800            FAB$V_SHRDEL   = 00000002            IFB$L_ASBADDR    00000014            

FAB$M_RWO      = 00000080            FAB$V_SHRGET   = 00000001            IFB$L_AS_DEV     00000054            

FAB$M_SCF      = 00004000            FAB$V_SHRPUT   = 00000000            IFB$L_BDB_BLNK   00000034            

FAB$M_SHRDEL   = 00000004            FAB$V_SHRUPD   = 00000003            IFB$L_BDB_FLNK   00000030            

FAB$M_SHRGET   = 00000002            FAB$V_SPL      = 0000000D            IFB$L_BKPBITS    00000004            

FAB$M_SHRPUT   = 00000001            FAB$V_SQO      = 00000006            IFB$L_BWB        0000000C            

FAB$M_SHRUPD   = 00000008            FAB$V_SUP      = 00000002            IFB$L_DVBN       00000058            

FAB$M_SPL      = 00002000            FAB$V_TEF      = 0000001C            IFB$L_EBK        00000044            

FAB$M_SQO      = 00000040            FAB$V_TMD      = 00000004            IFB$L_FRB_PTR    00000028            

FAB$M_SUP      = 00000004            FAB$V_TMP      = 00000003            IFB$L_FWA_BDB    00000050            

FAB$M_TEF      = 10000000            FAB$V_TRN      = 00000004            IFB$L_HBK        00000040            

FAB$M_TMD      = 00000010            FAB$V_UFM      = 0000001A            IFB$L_IDX_PTR    00000054            

FAB$M_TMP      = 00000008            FAB$V_UFO      = 00000011            IFB$L_IOS        0000000C            

FAB$M_TRN      = 00000010            FAB$V_UPD      = 00000003            IFB$L_IOS4       00000010            

FAB$M_UFM      = 04000000            FAB$V_UPI      = 00000006            IFB$L_IRAB_LNK   0000001C            

FAB$M_UFO      = 00020000            FAB$V_WCK      = 00000009            IFB$L_LAST_FAB   00000024            

FAB$M_UPD      = 00000008            FAB$W_BLS        0000003C            IFB$L_LOCK_BDB   00000050            

FAB$M_UPI      = 00000040            FAB$W_DEQ        00000014            IFB$L_MRN        00000054            

FAB$M_WCK      = 00000200            FAB$W_IFI        00000002            IFB$L_NRP_LNK    00000050            

FAB$S_ORG      = 00000004            FAB$W_MRS        00000036            IFB$L_NWA_PTR    00000028            

FAB$S_PPF_RAT  = 00000008            GBDB0            00000102 R     02   IFB$L_PRIM_DEV   00000000            

FAB$V_BIO      = 00000005            GBDB23           0000011F R     02   IFB$L_RLB_LNK    0000002C            

FAB$V_BLK      = 00000003            GBL...         = 00000000            IFB$L_RNS_LEN    00000050            

FAB$V_BRO      = 00000006            GETBDB           0000010C R     02   IFB$M_BIO      = 00000020            

FAB$V_CBT      = 00000015            IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            

FAB$V_CIF      = 00000019            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

FAB$V_CR       = 00000001            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

FAB$V_CTG      = 00000014            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

FAB$V_DEL      = 00000002            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

FAB$V_DFW      = 00000005            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

FAB$V_DLT      = 0000000F            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

FAB$V_DMO      = 0000000C            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

FAB$V_ESC      = 0000001B            IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            

FAB$V_EXE      = 00000007            IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            

FAB$V_FTN      = 00000000            IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            

FAB$V_GET      = 00000001            IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            

FAB$V_INP      = 00000013            IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            

FAB$V_JNL      = 00000016            IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            

FAB$V_KFO      = 0000001E            IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            

FAB$V_MSE      = 00000004            IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            

FAB$V_MXV      = 00000001            IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            

FAB$V_NAM      = 00000018            IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            

FAB$V_NEF      = 0000000A            IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (3)



IFB$V_DEL      = 00000002            IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            

IFB$V_DFW      = 0000002C            IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            

IFB$V_DLT      = 0000002B            IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            

IFB$V_DMO      = 00000028            IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            

IFB$V_EOF      = 00000021            IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            

IFB$V_EXE      = 00000007            IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            

IFB$V_GET      = 00000001            IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            

IFB$V_MSE      = 00000031            IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            

IFB$V_NORECLK  = 00000033            IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            

IFB$V_NSP      = 0000003F            IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            

IFB$V_NWA      = 0000003C            IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            

IFB$V_ORG      = 00000004            IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            

IFB$V_PPF_IMAGE= 00000022            IRB$L_CURBDB     00000020            L$RMS01          00000000 R     05   

IFB$V_PPF_INPUT= 0000002E            IRB$L_CURVBN     00000030            L$RMS02          00000007 R     05   

IFB$V_PUT      = 00000000            IRB$L_IFAB_LNK   00000000            L$RMS03          0000000E R     05   

IFB$V_RFM      = 00000000            IRB$L_IOS        0000000C            L$RMS04          00000016 R     05   

IFB$V_RWC      = 00000027            IRB$L_IOS4       00000010            L$RMS05          0000001D R     05   

IFB$V_RW_ATTR  = 00000034            IRB$L_IRAB_LNK   0000001C            NF$NETWORK0      00000000 R     04   

IFB$V_SCF      = 0000002A            IRB$L_KEYBUF     00000048            NF$NETWORK6      00000016 R     04   

IFB$V_SPL      = 00000029            IRB$L_LAST_RAB   00000024            NT$READ          ********   X   04   

IFB$V_SQO      = 0000002D            IRB$L_LOCK_BDB   0000005C            NT$WRITE         ********   X   04   

IFB$V_TEF      = 00000036            IRB$L_NRP        0000002C            NTREAD           00000068 R     02   

IFB$V_TMP      = 00000035            IRB$L_NRP_OFF    00000030            NTWRITE          000001EB R     02   

IFB$V_TRN      = 00000004            IRB$L_NRP_VBN    0000002C            PIO$GL_FMLH      ********   X   02   

IFB$V_UPD      = 00000003            IRB$L_NXTBDB     00000028            RAB$B_BID        00000000            

IFB$V_WRTACC   = 00000030            IRB$L_OWNER_ID   0000003C            RAB$B_BLN        00000001            

IFB$W_ASDEVBSIZ  0000005A            IRB$L_RFA_VBN    00000054            RAB$B_KRF        00000035            

IFB$W_BKS_BYTES  0000005C            IRB$L_RLB_ADDR   00000044            RAB$B_KSZ        00000034            

IFB$W_BKS_RECS   0000005E            IRB$L_RP         00000034            RAB$B_MBC        00000037            

IFB$W_CHNL       00000020            IRB$L_RP_OFF     00000038            RAB$B_MBF        00000036            

IFB$W_DEQ        0000004E            IRB$L_RP_VBN     00000034            RAB$B_PSZ        00000034            

IFB$W_DEVBUFSIZ  00000038            IRB$L_RRV_VBN    0000004C            RAB$B_RAC        0000001E            

IFB$W_EBK0       00000044            IRB$L_TEMP0      00000044            RAB$B_ROP1       00000005            

IFB$W_EBK2       00000046            IRB$L_TEMP1      00000048            RAB$B_ROP2       00000006            

IFB$W_FFB        00000048            IRB$V_ASYNC    = 00000023            RAB$B_ROP3       00000007            

IFB$W_IOS2       0000000E            IRB$V_ASYNCWAIT= 00000024            RAB$B_TMO        0000001F            

IFB$W_LRL        0000003E            IRB$V_BIO_LAST = 00000027            RAB$C_BID      = 00000001            

IFB$W_MRS        0000004C            IRB$V_BRO_SW   = 00000028            RAB$C_BLN        00000044            

IFB$W_RTDEQ      0000003A            IRB$V_BUSY     = 00000020            RAB$C_KEY      = 00000001            

IRB$B_BCNT       00000040            IRB$V_DAP_CONN = 0000003E            RAB$C_RFA      = 00000002            

IRB$B_BID        00000008            IRB$V_DAP_FMODE= 0000003F            RAB$C_SEQ      = 00000000            

IRB$B_BLN        00000009            IRB$V_DUP      = 0000002C            RAB$K_BLN        00000044            

IRB$B_EFN        0000000B            IRB$V_EOF      = 00000021            RAB$L_BKT        00000038            

IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            RAB$L_CTX        00000018            

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            RAB$L_DCT        00000038            

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            RAB$L_FAB        0000003C            

IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            RAB$L_KBF        00000030            

IRB$B_NRP_KREF   00000031            IRB$V_NEW_IDX  = 00000003            RAB$L_PBF        00000030            

IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            RAB$L_RBF        00000028            

IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            RAB$L_RFA0       00000010            

IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            RAB$L_RHB        0000002C            

IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            RAB$L_ROP        00000004            

IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            RAB$L_STS        00000008            

IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            RAB$L_STV        0000000C            

IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            RAB$L_UBF        00000024            

IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            RAB$M_ASY      = 00000001            

IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            RAB$M_BIO      = 00000800            

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (3)



RAB$M_CCO      = 80000000            RAB$W_ISI        00000002            RMS$_CCR       = 00018494            

RAB$M_CVT      = 04000000            RAB$W_RFA        00000010            RMS$_CDA       = 0001C0E4            

RAB$M_EOF      = 00000100            RAB$W_RFA4       00000014            RMS$_CHG       = 0001849C            

RAB$M_FDL      = 00000040            RAB$W_RSZ        00000022            RMS$_CHK       = 000184A4            

RAB$M_HSH      = 00000080            RAB$W_USZ        00000020            RMS$_CHN       = 0001C0EC            

RAB$M_KGE      = 00200000            REL23            00000113 R     02   RMS$_COD       = 000184AC            

RAB$M_KGT      = 00400000            RELBDB           000000DF R     02   RMS$_CONTROLC  = 00010651            

RAB$M_LIM      = 00004000            RELEASE          000000F3 R     02   RMS$_CONTROLO  = 00010609            

RAB$M_LOA      = 00002000            RELERR           00000166 R     02   RMS$_CONTROLY  = 00010611            

RAB$M_LOC      = 00010000            RETURN           00000067 R     02   RMS$_CRE       = 0001C00A            

RAB$M_MAS      = 00000020            RLS$M_KEEP_ACC = 00000008            RMS$_CREATED   = 00010619            

RAB$M_NLK      = 00100000            RLS$M_KEEP_LOCK= 00000004            RMS$_CUR       = 000184B4            

RAB$M_NXR      = 00800000            RLS$M_RETURN   = 00000001            RMS$_DAC       = 0001C012            

RAB$M_PMT      = 40000000            RLS$M_WRT_THRU = 00000002            RMS$_DAN       = 000184BC            

RAB$M_PPF_IND  = 00004000            RLS$V_KEEP_ACC = 00000003            RMS$_DEL       = 00018262            

RAB$M_PPF_RAT  = 00003FC0            RLS$V_KEEP_LOCK= 00000002            RMS$_DEV       = 000184C4            

RAB$M_PTA      = 20000000            RLS$V_RETURN   = 00000000            RMS$_DIR       = 000184CC            

RAB$M_RAH      = 00000200            RLS$V_WRT_THRU = 00000001            RMS$_DME       = 000184D4            

RAB$M_RLK      = 00080000            RM$AUTOEXTEND    ********   X   02   RMS$_DNA       = 000184DC            

RAB$M_RNE      = 01000000            RM$CACHE         ********   X   02   RMS$_DNF       = 0001C04A            

RAB$M_RNF      = 08000000            RM$EXRMS         ********   X   05   RMS$_DNR       = 00018272            

RAB$M_TMO      = 02000000            RM$RDBUFWT       ********   X   02   RMS$_DPE       = 0001C03A            

RAB$M_TPT      = 00000002            RM$RELEASE       ********   X   02   RMS$_DTP       = 000184E4            

RAB$M_UIF      = 00000010            RM$RLNERR        ********   X   02   RMS$_DUP       = 000184EC            

RAB$M_ULK      = 00040000            RM$RSET          ********   X   02   RMS$_DVI       = 000184F4            

RAB$M_WAT      = 00020000            RM$WTBUFWT       ********   X   02   RMS$_ENT       = 0001C01A            

RAB$M_WBH      = 00000400            RM$WTLST1        ********   X   02   RMS$_ENV       = 00018724            

RAB$S_PPF_RAT  = 00000008            RMS$READ       = FFFFFFFE RG    02   RMS$_EOF       = 0001827A            

RAB$V_ASY      = 00000000            RMS$V_STVSTATUS= 0000000E            RMS$_ESA       = 000184FC            

RAB$V_BIO      = 0000000B            RMS$WRITE      = 0000016E RG    02   RMS$_ESL       = 00018714            

RAB$V_CCO      = 0000001F            RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            

RAB$V_CVT      = 0000001A            RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            

RAB$V_EOF      = 00000008            RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            

RAB$V_FDL      = 00000006            RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            

RAB$V_HSH      = 00000007            RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            

RAB$V_KGE      = 00000015            RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            

RAB$V_KGT      = 00000016            RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            

RAB$V_LIM      = 0000000E            RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            

RAB$V_LOA      = 0000000D            RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            

RAB$V_LOC      = 00000010            RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            

RAB$V_MAS      = 00000005            RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            

RAB$V_NLK      = 00000014            RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            

RAB$V_NXR      = 00000017            RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            

RAB$V_PMT      = 0000001E            RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            

RAB$V_PPF_IND  = 0000000E            RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            

RAB$V_PPF_RAT  = 00000006            RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            

RAB$V_PTA      = 0000001D            RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            

RAB$V_RAH      = 00000009            RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            

RAB$V_RLK      = 00000013            RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            

RAB$V_RNE      = 00000018            RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            

RAB$V_RNF      = 0000001B            RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            

RAB$V_TMO      = 00000019            RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            

RAB$V_TPT      = 00000001            RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            

RAB$V_UIF      = 00000004            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

RAB$V_ULK      = 00000012            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

RAB$V_WAT      = 00000011            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

RAB$V_WBH      = 0000000A            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                     (3)



RMS$_KFF       = 00018031            RMS$_RST       = 0001869C            

RMS$_KRF       = 0001859C            RMS$_RSZ       = 000186A4            

RMS$_KSZ       = 000185A4            RMS$_RTB       = 000181A8            

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            ROP            = 00000020            

RMS$_PLV       = 0001872C            SETBDB           0000012D R     02   

RMS$_POS       = 00018624            SETNBP           00000088 R     02   

RMS$_PRM       = 0001862C            SETRSZ           00000062 R     02   

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

RMS$_QUO       = 00018634            TPT$L_WRITE      ********   X   02   

RMS$_RAB       = 0001863C            WRTBLK           000001A6 R     02   

RMS$_RAC       = 00018644            WT1              000001E0 R     02   

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            

RMS0BLKIO       BLOCK I/O ROUTINES                               21-AUG-1978 21:56:40   VAX-11 MACRO X0.3-11               Page  21

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  

$RMS0BLOCKIO     000001EE      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

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

NF$NETWORK       00000024      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

L$RMS0           00000023      05     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

5536. BYTES LEFT IN FREE MEMORY POOL.

2016. BYTES OF RECLAIMED MEMORY.

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

31 MLB DIR RDS - 1228 GETS TO DEFINE 34 MACROS. 98 INTER. FILE WRITES. 

