RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      44  DECLARATIONS

   (1)      72  RM$GET2/RM$FIND2  -  REL. $GET & $FIND

   (1)     129  CLEANUP CODE

   (1)     185  $GET CODE

   (1)     344  $FIND CODE

   (1)     372  GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER

   (1)     621  GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   1

020                                                                                                                              (1)



                                     0000     1 	$BEGIN RM2GET,020,$RMS2,<RELATIVE SPECIFIC GET AND FIND>

                                     0000     2 ;

                                     0000     3 ; COPYRIGHT (C) 1977, 1978

                                     0000     4 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     5 ;

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

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

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

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

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

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

                                     0000    12 ; REMAIN IN DEC.

                                     0000    13 ;

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

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

                                     0000    16 ; CORPORATION.

                                     0000    17 ;

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

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

                                     0000    20 ;

                                     0000    21 ;++

                                     0000    22 ; FACILITY: RMS32

                                     0000    23 ;

                                     0000    24 ; ABSTRACT:

                                     0000    25 ;		THIS MODULE PROVIDES RELATIVE FILE ORGANIZATION-

                                     0000    26 ;		SPECIFIC PROCESSING FOR THE $GET AND $FIND FUNCTIONS.

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:

                                     0000    29 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    30 ;

                                     0000    31 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 4-NOV-77

                                     0000    32 ;

                                     0000    33 ; MODIFIED BY:

                                     0000    34 ;

                                     0000    35 ;	L F LAVERDURE,      16-AUG-78  17:06	; FIX LONG PROBE BUG

                                     0000    36 ;	L F LAVERDURE,      7-AUG-78  16:00	; FIX 'KEY' ERROR (WAS 'KBF')

                                     0000    37 ;	L F LAVERDURE,      4-AUG-78  14:10

                                     0000    38 ;	R A NEWELL,     18-JUL-78   9:59

                                     0000    39 ;	L F LAVERDURE,   9-MAY-78  13:03

                                     0000    40 ;	J A KRYCKA,	 1-AUG-78  11:30

                                     0000    41 ; 01	- 

                                     0000    42 ;--

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   2

020             DECLARATIONS                                                                                                     (1)



                                     0000    44 	.SBTTL	DECLARATIONS

                                     0000    45 ;

                                     0000    46 ; INCLUDE FILES:

                                     0000    47 ;

                                     0000    48 

                                     0000    49 ;

                                     0000    50 ; MACROS:

                                     0000    51 ;

                                     0000    52 	$IRBDEF

                                     0000    53 	$IFBDEF

                                     0000    54 	$RABDEF

                                     0000    55 	$FABDEF

                                     0000    56 	$DLCDEF

                                     0000    57 	$BDBDEF

                                     0000    58 	$CSHDEF

                                     0000    59 	$RMSDEF

                                     0000    60 	.LIST MEB

                                     0000    61 

                                     0000    62 ;

                                     0000    63 ; EQUATED SYMBOLS:

                                     0000    64 ;

                           00000020  0000    65 	ROP=RAB$L_ROP*8		; BIT OFFSET TO ROP

                                     0000    66 

                                     0000    67 ;

                                     0000    68 ; OWN STORAGE:

                                     0000    69 ;

                                     0000    70 

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   3

020             RM$GET2/RM$FIND2  -  REL. $GET & $FIND                                                                           (1)



                                     0000    72 	.SBTTL RM$GET2/RM$FIND2  -  REL. $GET & $FIND

                                     0000    73 ;++

                                     0000    74 ; FUNCTIONAL DESCRIPTION:

                                     0000    75 ;

                                     0000    76 ; THIS MODULE PERFORMS THE FOLLOWING FUNCTIONS:

                                     0000    77 ;

                                     0000    78 ;	1. COMMON $GET/$FIND SETUP

                                     0000    79 ;	2. ACCESSES THE BUCKET, LOCKS THE RECORD IF NECESSARY, AND

                                     0000    80 ;	   FOR GET, COPIES THE RECORD TO THE USER BUFFER IF MOVE MODE,

                                     0000    81 ;	   SETTING THE VARIOUS RAB FIELDS AS REQUIRED.

                                     0000    82 ;	3. SET "LAST-OPERATION-WAS-A-FIND" AND NRP CONTEXT

                                     0000    83 ;

                                     0000    84 ;

                                     0000    85 ; CALLING SEQUENCE:

                                     0000    86 ;

                                     0000    87 ;	ENTERED VIA CASE BRANCH FROM RMS$GET

                                     0000    88 ;	OR RMS$FIND AT RM$GET2 OR RM$FIND2 RESPECTIVELY.

                                     0000    89 ;

                                     0000    90 ;	EXIT IS TO USER VIA RM$EXRMS.

                                     0000    91 ;

                                     0000    92 ;

                                     0000    93 ; INPUT PARAMETERS:

                                     0000    94 ;

                                     0000    95 ;	R11	IMPURE AREA ADDRESS

                                     0000    96 ;	R10	IFAB ADDRESS

                                     0000    97 ;	R9	IRAB ADDRESS

                                     0000    98 ;	R8	RAB ADDRESS

                                     0000    99 ;

                                     0000   100 ;

                                     0000   101 ; IMPLICIT INPUTS:

                                     0000   102 ;

                                     0000   103 ;	THE CONTENTS OF THE RAB AND RELATED IRAB AND IFAB.

                                     0000   104 ;	IN PARTICULAR, IRB$V_FIND MUST BE SET IF DOING $FIND, ELSE CLEAR.

                                     0000   105 ;

                                     0000   106 ; OUTPUT PARAMETERS:

                                     0000   107 ;

                                     0000   108 ;	R7 - R1		DESTROYED

                                     0000   109 ;	R0		STATUS

                                     0000   110 ;

                                     0000   111 ;

                                     0000   112 ; IMPLICIT OUTPUTS:

                                     0000   113 ;

                                     0000   114 ;	VARIOUS FIELDS OF THE RAB ARE FILLED IN TO REFLECT THE STATUS OF

                                     0000   115 ;	THE OPERATION (SEE FUNCTIONAL SPEC FOR DETAILS).

                                     0000   116 ;

                                     0000   117 ;	THE IRAB IS SIMILARLY UPDATED.

                                     0000   118 ;

                                     0000   119 ;

                                     0000   120 ; COMPLETION CODES:

                                     0000   121 ;

                                     0000   122 ;	STANDARD RMS (SEE FUNCTIONAL SPEC).

                                     0000   123 ;

                                     0000   124 ; SIDE EFFECTS:

                                     0000   125 ;

                                     0000   126 ;	NONE

                                     0000   127 ;--

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   4

020             CLEANUP CODE                                                                                                     (1)



                                     0000   129 	.SBTTL	CLEANUP CODE

                                     0000   130 ;

                                     0000   131 ;  CODE TO CLEAN UP ON ERRORS (NOTE: THIS IS NOT THE ENTRY POINT TO RM$GET2)

                                     0000   132 ;

                                     0000   133 ;  THERE ARE VARIOUS ENTRY POINTS FOR THE CLEANUP DEPENDING UPON THE FUNCTION

                                     0000   134 ;  BEING EXECUTED.  ZEROES THE RSZ, BKT, AND RFA FIELDS OF THE RAB, UNLOCKS

                                     0000   135 ;  THE RP AND RESETS VARIOUS IRAB FLAGS, RELEASES THE BUCKET, AND EXITS RMS.

                                     0000   136 ;

                                     0000   137 ;  INPUTS:

                                     0000   138 ;	R7	STATUS CODE

                                     0000   139 ;	R4	BDB ADDRESS OR 0 IF NONE

                                     0000   140 ;

                                     0000   141 CLEANUP:				; ENTRY POINT FOR $GET CLEANUP

                                     0000   142 	$PSECT_BR	L$RMS2

                          FFFD'  31  0000       		BRW	L$RMS20

                                     0003       		.SAVE

                                 00000000       		.PSECT	L$RMS2,GBL,NOWRT

                                     0000       L$RMS20:

                       22 A8     B4  0000   143 CLEAN1:	CLRW	RAB$W_RSZ(R8)		; INDICATE NO RECORD

                                     0003   144 ;

                                     0003   145 ;  ENTRY POINT FOR $FIND AND $PUT

                                     0003   146 ;

                                     0003   147 RM$CLN2_PUT::

                                     0003   148 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  0003   149 	TSTB	RAB$B_RAC(R8)		; SEQ. ACCESS?

                          03     12  0006   150 	BNEQ	RM$CLN2_UPD		; BRANCH IF NOT

                       38 A8     D4  0008   151 	CLRL	RAB$L_BKT(R8)		; CLEAR THE RECORD #

                                     000B   152 ;

                                     000B   153 ;  ENTRY POINT FOR $UPDATE

                                     000B   154 ;

                                     000B   155 RM$CLN2_UPD::

                       10 A8     D4  000B   156 	CLRL	RAB$W_RFA(R8)		; ZERO THE RFA

                       14 A8     B4  000E   157 	CLRW	RAB$W_RFA+4(R8)		;   "

                                     0011   158 ;

                                     0011   159 ;  ENTRY POINT FOR $DELETE

                                     0011   160 ;

                                     0011   161 RM$CLN2_DEL::

            6A            3E     E1  0011   162 	BBC	#IFB$V_DAP,(R10),1$	; BRANCH IF NOT NETWORK FUNCTION

                          03         0014       

                          FFE8'  31  0015   163 	BRW	RM$EXRMS		; EXIT RMS

            51         34 A9     D0  0018   164 1$:	MOVL	IRB$L_RP(R9),R1		; GET RP

                          0C     13  001C   165 	BEQL	10$			; BRANCH IF NONE

                          52     D4  001E   166 	CLRL	R2			; HIGH ORDER LOCK VALUE

            68            32     E0  0020   167 	BBS	#RAB$V_ULK+ROP,(R8),5$	; DONT UNLOCK ON ERROR IF MANUAL LOCK

                          03         0023       

                          FFD9'  30  0024   168 	BSBW	RM$UNLOCK		; UNLOCK RECORD IF LOCKED (IGNORE ERROR)

                       34 A9     D4  0027   169 5$:	CLRL	IRB$L_RP(R9)		; SHOW NO CURRENT RECORD

                                     002A   170 10$:	CSB	#IRB$V_UNLOCK_RP,(R9)	; CLEAR UNLOCK FLAG

            69            2D     E5  002A       		BBCC	#IRB$V_UNLOCK_RP,(R9),30000$

                          00         002D       

                                     002E       30000$:

                                     002E   171 	CSB	#IRB$V_FIND_LAST,(R9)	; AND FIND LAST

            69            25     E5  002E       		BBCC	#IRB$V_FIND_LAST,(R9),30001$

                          00         0031       

                                     0032       30001$:

                          005D'  31  0032   172 	BRW	RM$RLS2			; GO RELEASE BUCKET

                                     0035   173 	$PSECT_RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   5

020             CLEANUP CODE                                                                                                     (1)



                                 00000003       		.RESTORE

                                     0003   174 ;++

                                     0003   175 ;

                                     0003   176 ;  PERFORM NETWORK GET FUNCTION

                                     0003   177 ;

                                     0003   178 ;--

                                     0003   179 NTGET:	$PSECT_BR	NF$NETWORK

                          FFFA'  31  0003       		BRW	NF$NETWORK1

                                     0006       		.SAVE

                                 00000000       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0000       NF$NETWORK1:

                          FFFD'  30  0000   180 	BSBW	NT$GET2			; PERFORM GET AT REMOTE NODE

            57            50     D0  0003   181 	MOVL	R0,R7			; COPY STATUS CODE

                          000D'  31  0006   182 	BRW	NTRETG			; JOIN MAINLINE

                                     0009   183 	$PSECT_RESTORE

                                 00000006       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   6

020             $GET CODE                                                                                                        (1)



                                     0006   185 	.SBTTL	$GET CODE

                                     0006   186 ;

                                     0006   187 ;  ENTRY POINT FOR RELATIVE-SPECIFIC GET

                                     0006   188 ;

                                     0006   189 RM$GET2::

                                     0006   190 	$TSTPT	GET2

                 00000200'9F     D6  0006       		INCL	@#PIO$GL_FMLH+512+TPT$L_GET2

            6A            3E     E0  000C   191 	BBS	#IFB$V_DAP,(R10),NTGET	; BRANCH IF NETWORK FUNCTION

                          F3         000F       

                          00C1   30  0010   192 	BSBW	GETREC2			; GO ACCESS BUCKET

                          0198   30  0013   193 	BSBW	GETFIND2		; GO ACCESS RECORD, LOCKING IF NECC.

            E7            57     E9  0016   194 NTRETG:	BLBC	R7,CLEANUP		; GET OUT ON ERROR

                                     0019   195 	CSB	#IRB$V_FIND_LAST,(R9)	; CLEAR FIND LAST FLAG

            69            25     E5  0019       		BBCC	#IRB$V_FIND_LAST,(R9),30002$

                          00         001C       

                                     001D       30002$:

       8049 8F            57     B1  001D   196 	CMPW	R7,#RMS$_OK_RNF&^XFFFF	; WAS STATUS = RECORD NOT FOUND?

                          18     13  0022   197 	BEQL	NULL_REC		; BRANCH IF YES

                                     0024   198 ;

                                     0024   199 ;  SET THE RAB$W_RSZ FIELD BASED UPON THE RECORD FORMAT

                                     0024   200 ;

            01         3C AA     91  0024   201 	CMPB	IFB$B_RFMORG(R10),#FAB$C_FIX	; RFM=FIX?

                          1E     13  0028   202 	BEQL	RSZFIX				; BRANCH IF YES

            56            85     3C  002A   203 	MOVZWL	(R5)+,R6			; SET VARIABLE RECORD LENGTH

         4C AA            56     B1  002D   204 	CMPW	R6,IFB$W_MRS(R10)		; SIZE WITHIN RANGE?

                          0C     1A  0031   205 	BGTRU	ERRIRC				; BRANCH IF NOT

            02         3C AA     91  0033   206 	CMPB	IFB$B_RFMORG(R10),#FAB$C_VAR	; RFM=VAR?

                          13     13  0037   207 	BEQL	CHKLOC				; BRANCH IF YES

                                     0039   208 ;

                                     0039   209 ;  VFC RECORD FORMAT

                                     0039   210 ;

                                     0039   211 ;  ADJUST RECORD SIZE FOR FIXED HEADER SIZE AND MOVE THE HEADER TO THE RECORD

                                     0039   212 ;  HEADER BUFFER.

                                     0039   213 ;

                                     0039   214 	$PSECT_BR	L$RMS2

                          FFF9'  31  0039       		BRW	L$RMS22

                                     003C       		.SAVE

                                 00000035       		.PSECT	L$RMS2,GBL,NOWRT

                                     0035       L$RMS22:

            50         4B AA     9A  0035   215 	MOVZBL	IFB$B_FSZ(R10),R0		; PICK UP HEADER SIZE

            56            50     A2  0039   216 	SUBW2	R0,R6				; ADJUST RECORD LENGTH

                          49     19  003C   217 	BLSS	ERRIRC1				; BRANCH IF BAD LENGTH

            51         2C A8     D0  003E   218 	MOVL	RAB$L_RHB(R8),R1		; GET RHB ADDRESS

                          14     13  0042   219 	BEQL	10$				; AND BRANCH IF NONE

                                     0044   220 	IFNOWRT	R0,(R1),ERRRHB,IRB$B_MODE(R9)	; BRANCH IF NOT WRITABLE

            50         0A A9     0D  0044       		PROBEW	IRB$B_MODE(R9),R0,(R1)

                          61         0048       

                          34     13  0049       		BEQL	ERRRHB

                          54     DD  004B   221 	PUSHL	R4				; SAVE BDB ADDRESS

            65            50     28  004D   222 	MOVC3	R0,(R5),(R1)			; MOVE THE RECORD HEADER

                          61         0050       

                          10     BA  0051   223 	POPR	#^M<R4>				; RESTORE BDB ADDRESS

            55            51     D0  0053   224 	MOVL	 R1,R5				; UPDATE RECORD BUFFER ADDR

                          03     11  0056   225 	BRB	20$

            55            50     C0  0058   226 10$:	ADDL2	R0,R5				; SKIP UNWANTED HEADER

                          FFEE'  31  005B   227 20$:	BRW	CHKLOC				; GO PICK UP MAIN SEQUENCE

                                     005E   228 	$PSECT_RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   7

020             $GET CODE                                                                                                        (1)



                                 0000003C       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   8

020             $GET CODE                                                                                                        (1)



                                     003C   230 ;

                                     003C   231 ;  STATUS FROM GETFIND2 WAS OK_RNF.

                                     003C   232 ;  THIS IMPLIES USER HAS SPECIFIED READ OF A NON-EXISTENT RECORD.

                                     003C   233 ;

                                     003C   234 NULL_REC:

                                     003C   235 	$PSECT_BR	L$RMS2

                          001F'  31  003C       		BRW	L$RMS23

                                     003F       		.SAVE

                                 0000005E       		.PSECT	L$RMS2,GBL,NOWRT

                                     005E       L$RMS23:

                          56     B4  005E   236 	CLRW	R6				; SHOW ZERO LEN

            03         3C AA     B1  0060   237 	CMPW	IFB$B_RFMORG(R10),#FAB$C_VFC	; RFM = VFC?

                          16     12  0064   238 	BNEQ	20$				; BRANCH IF NOT

            51         2C A8     D0  0066   239 	MOVL	RAB$L_RHB(R8),R1		; RHB SPECIFIED?

                          10     13  006A   240 	BEQL	20$				; BRANCH IF NOT

            50         4B AA     9A  006C   241 	MOVZBL	IFB$B_FSZ(R10),R0		; GET HEADER LEN

                                     0070   242 	IFNOWRT	R0,(R1),ERRRHB,IRB$B_MODE(R9)	; BRANCH IF NOT WRITABLE

            50         0A A9     0D  0070       		PROBEW	IRB$B_MODE(R9),R0,(R1)

                          61         0074       

                          08     13  0075       		BEQL	ERRRHB

                          81     94  0077   243 10$:	CLRB	(R1)+				; CLEAR THE BUFFER

            FB            50     F5  0079   244 	SOBGTR	R0,10$				; LOOP

                          0009'  31  007C   245 20$:	BRW	SETRSZ				; GO FINISH UP

                                     007F   246 ;

                                     007F   247 ERRRHB:	RMSERR	RHB,R7				; BAD RECORD HEADER BUFFER

            57       866C 8F     3C  007F       		MOVZWL	#<RMS$_RHB&^XFFFF>,R7

                          FF79   31  0084   248 CLN1BR:	BRW	CLEAN1				; GO CLEAN UP

                                     0087   249 	$PSECT_RESTORE

                                 0000003F       		.RESTORE

                                     003F   250 ;

                                     003F   251 ;  HANDLE ERRORS

                                     003F   252 ;

                                     003F   253 ERRIRC:	$PSECT_BR	L$RMS2

                          0045'  31  003F       		BRW	L$RMS24

                                     0042       		.SAVE

                                 00000087       		.PSECT	L$RMS2,GBL,NOWRT

                                     0087       L$RMS24:

                                     0087   254 ERRIRC1:

                                     0087   255 	RMSERR	IRC,R7				; ILLEGAL RECORD SIZE IN FILE

            57       857C 8F     3C  0087       		MOVZWL	#<RMS$_IRC&^XFFFF>,R7

         0C A8         38 A8     D0  008C   256 	MOVL	RAB$L_BKT(R8),RAB$L_STV(R8)	; INDICATE RRN OF BAD RECORD

                          F1     11  0091   257 	BRB	CLN1BR				; GO CLEAN UP

                                     0093   258 	$PSECT_RESTORE

                                 00000042       		.RESTORE

                                     0042   259 ;

                                     0042   260 ERRUSZ:	$PSECT_BR	L$RMS2

                          004E'  31  0042       		BRW	L$RMS25

                                     0045       		.SAVE

                                 00000093       		.PSECT	L$RMS2,GBL,NOWRT

                                     0093       L$RMS25:

                                     0093   261 	RMSERR	USZ,R7				; 0 USER BUFFER LEN

            57       86F4 8F     3C  0093       		MOVZWL	#<RMS$_USZ&^XFFFF>,R7

                          EA     11  0098   262 	BRB	CLN1BR				; GO CLEAN UP

                                     009A   263 	$PSECT_RESTORE

                                 00000045       		.RESTORE

                                     0045   264 ;

                                     0045   265 ERRUBF:	$PSECT_BR	L$RMS2

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page   9

020             $GET CODE                                                                                                        (1)



                          0052'  31  0045       		BRW	L$RMS26

                                     0048       		.SAVE

                                 0000009A       		.PSECT	L$RMS2,GBL,NOWRT

                                     009A       L$RMS26:

                                     009A   266 ERRUBF1:

                                     009A   267 	RMSERR	UBF,R7				; INVALID USER BUFFER

            57       86EC 8F     3C  009A       		MOVZWL	#<RMS$_UBF&^XFFFF>,R7

                          E3     11  009F   268 	BRB	CLN1BR				; GO CLEAN UP

                                     00A1   269 	$PSECT_RESTORE

                                 00000048       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  10

020             $GET CODE                                                                                                        (1)



                                     0048   271 ;

                                     0048   272 ;  SET RECORD SIZE FROM MRS FOR FIXED LENGTH RECORD FORMAT

                                     0048   273 ;

            56         4C AA     B0  0048   274 RSZFIX:	MOVW	IFB$W_MRS(R10),R6

                                     004C   275 ;

                                     004C   276 ;  IF LOCATE MODE ASKED FOR AND ALLOWABLE, RETURN POINTER TO RECORD,

                                     004C   277 ;  ELSE COPY RECORD TO USER BUFFER.

                                     004C   278 ;

            68            30     E1  004C   279 CHKLOC:	BBC	#RAB$V_LOC+ROP,(R8),MOVE_MODE	; BRANCH IF LOCATE MODE NOT SPECED

                          10         004F       

         22 AA            03     E0  0050   280 	BBS	#FAB$V_UPD,IFB$B_FAC(R10),MOVE_MODE	; OR IF UPDATE ACCESSED

                          0B         0054       

         0A A4            04     E0  0055   281 	BBS	#BDB$V_NOLOCATE,BDB$B_FLGS(R4),MOVE_MODE ; OR IF BDB SAYS NO

                          06         0059       

         28 A8            55     D0  005A   282 	MOVL	R5,RAB$L_RBF(R8)		; SET RBF FROM RECORD ADDRESS

                          28     11  005E   283 	BRB	SETRSZ				; GO SET RECORD SIZE

                                     0060   284 ;

                                     0060   285 ;  MOVE MODE

                                     0060   286 ;

                                     0060   287 ;  CHECK OUT THE USER BUFFER AND COPY THE RECORD.

                                     0060   288 ;

                                     0060   289 MOVE_MODE:

            50         20 A8     3C  0060   290 	MOVZWL	RAB$W_USZ(R8),R0		; GET USER BUFFER SIZE

                          DC     13  0064   291 	BEQL	ERRUSZ				; ERROR IF NONE

            56            50     B1  0066   292 	CMPW	R0,R6				; USZ < RSZ?

                          43     1F  0069   293 	BLSSU	ERRRTB				; BRANCH IF YES

       0200 8F            56     B1  006B   294 PROBEB:	CMPW	R6,#512				; RECORD GREATER THAN 2 PAGES?

                          39     1A  0070   295 	BGTRU	LONG_PROBE			; BRANCH IF YES

                                     0072   296 	IFNOWRT	R6,@RAB$L_UBF(R8),ERRUBF,IRB$B_MODE(R9)	;BRANCH IF UBF NOT WRITABLE

            56         0A A9     0D  0072       		PROBEW	IRB$B_MODE(R9),R6,@RAB$L_UBF(R8)

                       24 B8         0076       

                          CB     13  0078       		BEQL	ERRUBF

                          54     DD  007A   297 MOVREC:	PUSHL	R4				; SAVE BDB ADDRESS

            65            56     28  007C   298 	MOVC3	R6,(R5),@RAB$L_UBF(R8)		; COPY RECORD

                       24 B8         007F       

                          10     BA  0081   299 	POPR	#^M<R4>				; RESTORE BDB ADDRESS

         28 A8         24 A8     D0  0083   300 	MOVL	RAB$L_UBF(R8),RAB$L_RBF(R8)	; SET RECORD ADDRESS

         22 A8            56     B0  0088   301 SETRSZ:	MOVW	R6,RAB$W_RSZ(R8)		; AND SET RECORD SIZE

            01         34 A9     C1  008C   302 SETNRP:	ADDL3	IRB$L_RP(R9),#1,IRB$L_NRP(R9)	; SET NRP FROM RP+1

                       2C A9         0090       

                                     0092   303 ;

                                     0092   304 ;  RELEASE ACCESS TO THE BUCKET.

                                     0092   305 ;  WILL CAUSE WRITE TO OCCUR IF DIRTY AND DEFERRED WRITE NOT SET.

                                     0092   306 ;

                                     0092   307 RM$RLS2::

                          54     D5  0092   308 	TSTL	R4				; IS THERE A BDB?

                          0B     13  0094   309 	BEQL	10$				; BRANCH IF NONE

                          53     D4  0096   310 	CLRL	R3				; NO OPTIONS WANTED

                          FF65'  30  0098   311 	BSBW	RM$RELEASE			; RELEASE ACCESS TO BUCKET

            03            57     E9  009B   312 	BLBC	R7,10$				; BRANCH IF ALREADY HAD ERROR

            03            50     E9  009E   313 	BLBC	R0,20$				; BRANCH IF RELEASE FAILED

            50            57     D0  00A1   314 10$:	MOVL	R7,R0				; STATUS TO R0

                                     00A4   315 20$:	CSB	#IRB$V_FIND,(R9)		; CLEAR 'DOING FIND'

            69            29     E5  00A4       		BBCC	#IRB$V_FIND,(R9),30003$

                          00         00A7       

                                     00A8       30003$:

                          FF55'  31  00A8   316 	BRW	RM$EXRMS			; EXIT RMS

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  11

020             $GET CODE                                                                                                        (1)



                                     00AB   318 ;

                                     00AB   319 ;  PROBE WRITEABLITY OF ALL PAGES ( > 1) OF USER BUFFER

                                     00AB   320 ;

                                     00AB   321 LONG_PROBE:	$PSECT_BR	L$RMS2

                          FFF3'  31  00AB       		BRW	L$RMS27

                                     00AE       		.SAVE

                                 000000A1       		.PSECT	L$RMS2,GBL,NOWRT

                                     00A1       L$RMS27:

            50            56     D0  00A1   322 	MOVL	R6,R0				; COPY BUFFER LENGTH

            51         24 A8     D0  00A4   323 	MOVL	RAB$L_UBF(R8),R1		; AND ADDRESS

            52       FE00 8F     32  00A8   324 	CVTWL	#-512,R2			; SET ADDRESS CONSTANT

                                     00AD   325 10$:	IFNOWRT	R0,(R1),ERRUBF1,IRB$B_MODE(R9)	; BRANCH IF NOT WRITABLE

            50         0A A9     0D  00AD       		PROBEW	IRB$B_MODE(R9),R0,(R1)

                          61         00B1       

                          E6     13  00B2       		BEQL	ERRUBF1

            51            52     C2  00B4   326 	SUBL2	R2,R1				; GET ADDRESS NEXT PAGE

            50            6042   3E  00B7   327 	MOVAW	(R0)[R2],R0			; CALCULATE NEW LENGTH

                          F0     14  00BB   328 	BGTR	10$				; BRANCH IF MORE TO PROBE

            50            52     C2  00BD   329 	SUBL2	R2,R0				; FINAL PAGE TO PROBE?

                          EB     14  00C0   330 	BGTR	10$				; BRANCH IF YES

                          FFB5'  31  00C2   331 	BRW	MOVREC				; RETURN TO MAIN SEQUENCE

                                     00C5   332 	$PSECT_RESTORE

                                 000000AE       		.RESTORE

                                     00AE   333 ;

                                     00AE   334 ;  RECORD TOO LONG FOR USER BUFFER.

                                     00AE   335 ;  NOTE ERROR AND ACTUAL LENGTH AND ADJUST COUNT TO FILL USER BUFFER.

                                     00AE   336 ;

                                     00AE   337 ERRRTB:	$PSECT_BR	L$RMS2

                          0014'  31  00AE       		BRW	L$RMS28

                                     00B1       		.SAVE

                                 000000C5       		.PSECT	L$RMS2,GBL,NOWRT

                                     00C5       L$RMS28:

                                     00C5   338 	RMSERR	RTB,R7				; SHOW RECORD TOO BIG ERROR

            57       81A8 8F     3C  00C5       		MOVZWL	#<RMS$_RTB&^XFFFF>,R7

         0C A8            56     D0  00CA   339 	MOVL	R6,RAB$L_STV(R8)		; TELL USER ACTUAL LENGTH

            56            50     D0  00CE   340 	MOVL	R0,R6				; BUT COPY ONLY USZ AMOUNT

                          FF97'  31  00D1   341 	BRW	PROBEB				; RETURN TO MAIN SEQUENCE

                                     00D4   342 	$PSECT_RESTORE

                                 000000B1       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  12

020             $FIND CODE                                                                                                       (1)



                                     00B1   344 	.SBTTL	$FIND CODE

                                     00B1   345 ;

                                     00B1   346 ;  ENTRY POINT FOR $FIND FUNCTION.

                                     00B1   347 ;

                                     00B1   348 RM$FIND2::

                                     00B1   349 	$TSTPT	FIND2

                 00000200'9F     D6  00B1       		INCL	@#PIO$GL_FMLH+512+TPT$L_FIND2

            6A            3E     E0  00B7   350 	BBS	#IFB$V_DAP,(R10),NTFIND		; BRANCH IF NETWORK FUNCTION

                          16         00BA       

                          17     10  00BB   351 	BSBB	GETREC2				; GO ACCESS BUCKET

                          00EE   30  00BD   352 	BSBW	GETFIND2			; GO ACCESS RECORD, LOCKING

                                     00C0   353 						;  IT IF NECESSARY

                                     00C0   354 NTRETF:	SSB	#IRB$V_FIND_LAST,(R9)		; SET LAST OPR. WAS A FIND

            69            25     E2  00C0       		BBSS	#IRB$V_FIND_LAST,(R9),30004$

                          00         00C3       

                                     00C4       30004$:

            07            57     E9  00C4   355 	BLBC	R7,10$				; BRANCH ON ERROR

                                     00C7   356 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  00C7   357 	TSTB	RAB$B_RAC(R8)			; SEQUENTIAL ACCESS?

                          C6     12  00CA   358 	BNEQ	RM$RLS2				; BRANCH IF NOT

                          BE     11  00CC   359 	BRB	SETNRP				; YES - SET NRP

                          FF32'  31  00CE   360 10$:	BRW	RM$CLN2_PUT			; CLEAN UP ON ERROR

                                     00D1   361 ;++

                                     00D1   362 ;

                                     00D1   363 ;  PERFORM NETWORK FIND FUNCTION

                                     00D1   364 ;

                                     00D1   365 ;--

                                     00D1   366 NTFIND:	$PSECT_BR	NF$NETWORK

                          FF35'  31  00D1       		BRW	NF$NETWORK9

                                     00D4       		.SAVE

                                 00000009       		.PSECT	NF$NETWORK,GBL,NOWRT

                                     0009       NF$NETWORK9:

                          FFF4'  30  0009   367 	BSBW	NT$FIND2			; PERFORM FIND AT REMOTE NODE

            57            50     D0  000C   368 	MOVL	R0,R7				; COPY STATUS CODE

                          00AE'  31  000F   369 	BRW	NTRETF				; JOIN MAINLINE

                                     0012   370 	$PSECT_RESTORE

                                 000000D4       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  13

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     00D4   372 	.SBTTL	GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER

                                     00D4   373 ;++

                                     00D4   374 ;  FUNCTIONAL DESCRIPTION:

                                     00D4   375 ;

                                     00D4   376 ;  THIS ROUTINE PERFORMS THE FOLLOWING FUNCTIONS:

                                     00D4   377 ;

                                     00D4   378 ;	1.  SETS RECORD NUMBER FROM RP, NRP, KBF OR RFA DEPENDING UPON

                                     00D4   379 ;	    RAB$B_RAC AND IRB$V_FIND_LAST

                                     00D4   380 ;	2.  IF IRB$V_UNLOCK_RP SET, UNLOCKS RECORD SPECIFIED BY RP ON ENTRY

                                     00D4   381 ;	3.  CHECKS FOR RECORD NUMBER VALID

                                     00D4   382 ;	4.  CALCULATES VBN AND OFFSET FOR RECORD

                                     00D4   383 ;	5.  IF BUCKET NOT PAST EOF, CALLS RM$CACHEC TO LOCATE THE RECORD

                                     00D4   384 ;	    (POSSIBLY READING IT IN)

                                     00D4   385 ;	6.  CALCULATES ADDRESS OF RECORD IN BUFFER

                                     00D4   386 ;

                                     00D4   387 ;  CALLING SEQUENCE:

                                     00D4   388 ;

                                     00D4   389 ;	BSBW	GETREC2

                                     00D4   390 ;

                                     00D4   391 ;	ALTERNATE ENTRY AT RM$GETREC2_PUT FOR $PUT

                                     00D4   392 ;

                                     00D4   393 ;  INPUT PARAMETERS:

                                     00D4   394 ;

                                     00D4   395 ;	R11	IMPUREA AREA ADDRESS

                                     00D4   396 ;	R10	IFAB (SIFAB) ADDRESS

                                     00D4   397 ;	R9	IRAB ADDRESS

                                     00D4   398 ;	R8	RAB ADDRESS

                                     00D4   399 ;	R3	CSH$M_LOCK FLAG IF ENTRY AT RM$GETREC2_PUT

                                     00D4   400 ;

                                     00D4   401 ;  IMPLICIT INPUTS:

                                     00D4   402 ;

                                     00D4   403 ;	RAB$B_RAC	RECORD ACCESS MODE

                                     00D4   404 ;	RAB$W_RFA	IF RAC = RFA

                                     00D4   405 ;	RAB$L_KBF	IF RAC = KEY

                                     00D4   406 ;	IFB$L_EBK	END OF FILE BLOCK

                                     00D4   407 ;	IFB$L_MRN	MAX. RECORD #

                                     00D4   408 ;	IRB$L_RP	RECORD #

                                     00D4   409 ;	IRB$L_NRP	IF RAC = SEQ AND IRB$V_FIND_LAST = 0

                                     00D4   410 ;	IRB$V_FIND	SET IF DOING $FIND

                                     00D4   411 ;

                                     00D4   412 ;  OUTPUT PARAMETERS:

                                     00D4   413 ;

                                     00D4   414 ;	R5		ADDRESS OF RECORD IN BUFFER

                                     00D4   415 ;	R4		BDB ADDRESS, IF ANY, ELSE 0

                                     00D4   416 ;	R0		STATUS CODE

                                     00D4   417 ;	RAB$L_BKT	RRN OF RECORD ACCESSED

                                     00D4   418 ;	R1-R3,R6,AP	DESTROYED

                                     00D4   419 ;

                                     00D4   420 ;  IMPLICIT OUTPUTS:

                                     00D4   421 ;

                                     00D4   422 ;	ON ERRORS, OLD RP IS ZEROED TO AVOID UNLOCK IF IT WAS MANUALLY LOCKED.

                                     00D4   423 ;	IF ERROR = EOF, R2 HAS THE REQURIED HI VBN + 1

                                     00D4   424 ;

                                     00D4   425 ;  COMPLETION CODES:

                                     00D4   426 ;

                                     00D4   427 ;	STANDARD RMS.

                                     00D4   428 ;

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  14

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     00D4   429 ;  SIDE EFFECTS:

                                     00D4   430 ;

                                     00D4   431 ;	PROCESS MAY HAVE STALLED WAITING FOR ACCESS TO THE BUCKET.

                                     00D4   432 ;	BUCKET IS LEFT ACCESSED.

                                     00D4   433 ;--

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  15

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     00D4   435 ;

                                     00D4   436 ;  ENTRY POINT FOR $GET AND $FIND

                                     00D4   437 ;

                                     00D4   438 GETREC2:

                                     00D4   439 	$CSHFLAGS	<>			; NEED READ ONLY ACCESS TO BKT

                          53     D4  00D4       		CLRL R3

                                     00D6   440 ;

                                     00D6   441 ;  ALTERNATE ENTRY POINT FOR $PUT

                                     00D6   442 ;	(R3 ALREADY SET TO CSH$M_LOCK)

                                     00D6   443 ;

                                     00D6   444 RM$GETREC2_PUT::

                          54     D4  00D6   445 	CLRL	R4				; ZERO BDB ADDRESS

                                     00D8   446 						; (FLAG FOR NO BUCKET ACCESSED)

                                     00D8   447 ;

                                     00D8   448 ;  GET THE RECORD # TO USE BASED UPON RAC

                                     00D8   449 ;

                                     00D8   450 	ASSUME	RAB$C_SEQ EQ 0

                                     00D8   451 	ASSUME	RAB$C_KEY EQ 1

                                     00D8   452 	ASSUME	RAB$C_RFA EQ 2

            01            2D     EF  00D8   453 	EXTZV	#IRB$V_UNLOCK_RP,#1,(R9),AP	; PUT UNLOCK FLG IN AP

            5C            69         00DB       

                                     00DD   454 	CASE	TYPE=B,SRC=RAB$B_RAC(R8),-

                                     00DD   455 		DISPLIST=<SEQRAC,KEYRAC,RFARAC>	; DISPATCH TO RIGHT ROUTINE

            00         1E A8     8F  00DD       	CASEB	RAB$B_RAC(R8),#0,S^#<<30006$-30005$>/2>-1

                          02'        00E1       

                                     00E2       30005$:

                               0037' 00E2       	.WORD	SEQRAC-30005$

                               001F' 00E4       	.WORD	KEYRAC-30005$

                               0015' 00E6       	.WORD	RFARAC-30005$

                                     00E8       30006$:

                                     00E8   456 ;

                                     00E8   457 ;  FALL THRU ON BAD RAC VALUE

                                     00E8   458 ;

                                     00E8   459 ERRRAC:	$PSECT_BR	L$RMS2

                          FFE9'  31  00E8       		BRW	L$RMS210

                                     00EB       		.SAVE

                                 000000D4       		.PSECT	L$RMS2,GBL,NOWRT

                                     00D4       L$RMS210:

                                     00D4   460 	RMSERR	RAC				; BAD RAC VALUE

            50       8644 8F     3C  00D4       		MOVZWL	#<RMS$_RAC&^XFFFF>,R0

            69            2D     E0  00D9   461 CLEARP:	BBS	#IRB$V_UNLOCK_RP,(R9),10$	; BRANCH IF AUTO UNLOCK

                          03         00DC       

                       34 A9     D4  00DD   462 	CLRL	IRB$L_RP(R9)			; AVOID UNLOCK OF POSSIBLY

                                     00E0   463 						; MANUALLY LOCKED RECORD

                                 05  00E0   464 10$:	RSB

                                     00E1   465 	$PSECT_RESTORE

                                 000000EB       		.RESTORE

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  16

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     00EB   467 	.NLIST	MEB

                                     00EB   468 ;

                                     00EB   469 ;  HANDLE KEY BUFFER ERRORS

                                     00EB   470 ;

                                     00EB   471 ERRKSZ:	$PSECT_BR	L$RMS2

                                     00E1   472 	RMSERR	KSZ				; INVALID KEY LENGTH

                          F1     11  00E6   473 	BRB	CLEARP				; GO CLEAN UP

                                     00E8   474 	$PSECT_RESTORE

                                     00EE   475 ;

                                     00EE   476 ERRKBF:	$PSECT_BR	L$RMS2

                                     00E8   477 	RMSERR	KBF				; INVALID KEY BUFFER

                          EA     11  00ED   478 	BRB	CLEARP				; GO CLEAN UP

                                     00EF   479 	$PSECT_RESTORE

                                     00F1   480 ;

                                     00F1   481 ERRKEY:	SETERR_RSB	KEY			; KEY < OR = 0

                                     00F4   482 ;

                                     00F4   483 ERRMRN:	$PSECT_BR	L$RMS2

                          53     D5  00EF   484 	TSTL	R3				; DO CACHE FLAGS INDICATE $PUT

                          08     12  00F1   485 	BNEQ	10$				; BRANCH IF YES (ERR = MRN)

                                     00F3   486 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  00F3   487 	TSTB	RAB$B_RAC(R8)			; SEQUENTIAL ACCESS?

                          03     12  00F6   488 	BNEQ	10$				; BRANCH IF NOT

                          00AA'  31  00F8   489 	BRW	ERREOF				; YES - GIVE EOF ERROR

                                     00FB   490 10$:	RMSERR		MRN			; KEY > MAX. REC. #

                                 05  0100   491 	RSB

                                     0101   492 	$PSECT_RESTORE

                                     00F7   493 	.LIST	MEB

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  17

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     00F7   495 ;

                                     00F7   496 ;  RAC = RFA

                                     00F7   497 ;

                                     00F7   498 ;  SET RP FROM RFA VALUE IN RAB

                                     00F7   499 ;

            55         10 A8     D0  00F7   500 RFARAC:	MOVL	RAB$W_RFA(R8),R5		; GET REC # FROM RFA

            53            00     E1  00FB   501 	BBC	#CSH$V_LOCK,R3,ULKRP		; BRANCH IF NOT DOING $PUT

                          3A         00FE       

                          E7     11  00FF   502 	BRB	ERRRAC				; $PUT BY RFA NOT ALLOWED

                                     0101   503 ;

                                     0101   504 ;  RAC = KEY

                                     0101   505 ;

                                     0101   506 ;  SET RP FROM RELATIVE RECORD NUMBER IN KEY BUFFER

                                     0101   507 ;

                       34 A8     95  0101   508 KEYRAC:	TSTB	RAB$B_KSZ(R8)			; ZERO KEY SIZE?

                          06     13  0104   509 	BEQL	10$				; BRANCH IF YES (DEFAULT)

            04         34 A8     91  0106   510 	CMPB	RAB$B_KSZ(R8),#4		; IS IT 4?

                          DF     12  010A   511 	BNEQ	ERRKSZ				; BRANCH IF NOT

                                     010C   512 10$:	IFNORD	#4,@RAB$L_KBF(R8),ERRKBF	; BRANCH IF NOT READABLE

            04            00     0C  010C       		PROBER	#0,#4,@RAB$L_KBF(R8)

                       30 B8         010F       

                          DB     13  0111       		BEQL	ERRKBF

            55         30 B8     D0  0113   513 	MOVL	@RAB$L_KBF(R8),R5		; PICK UP RECORD #

                          19     11  0117   514 	BRB	SETRFA

                                     0119   515 ;

                                     0119   516 ;  RAC = SEQ

                                     0119   517 ;

                                     0119   518 ;  SET RP FROM NRP UNLESS DOING A $GET AFTER A $FIND, IN WHICH CASE

                                     0119   519 ;  THE RP IS CORRECT AS IS

                                     0119   520 ;

            69            29     E0  0119   521 SEQRAC:	BBS	#IRB$V_FIND,(R9),10$		; BRANCH IF DOING $FIND

                          0D         011C       

            69            25     E1  011D   522 	BBC	#IRB$V_FIND_LAST,(R9),10$	; OR IF LAST OPERATION NOT $FIND

                          09         0120       

                                     0121   523 						; (NOTE: THIS BIT WILL BE CLEAR

                                     0121   524 						;  FOR $PUT)

            55         34 A9     D0  0121   525 	MOVL	IRB$L_RP(R9),R5			; RE-GET LAST RECORD

            5C            01     8A  0125   526 	BICB2	#1,AP				; DON'T UNLOCK RECORD

                          04     11  0128   527 	BRB	20$

            55         2C A9     D0  012A   528 10$:	MOVL	IRB$L_NRP(R9),R5		; GET NEXT RECORD

                                     012E   529 20$:

                                     012E   530 ;

                                     012E   531 ;  ALTERNATE ENTRY POINT TO GET NEXT RECORD SPECIFIED BY R5

                                     012E   532 ;  (FOR SEQUENTIAL $GET AND $FIND AFTER HAVING LOCATED A NON-EXISTENT RECORD)

                                     012E   533 ;

                                     012E   534 GETNXTREC2:

         38 A8            55     D0  012E   535 	MOVL	R5,RAB$L_BKT(R8)		; INDICATE RECORD # OF RECORD

                                     0132   536 						; ACTUALLY ACCESSED

                                     0132   537 ;

                                     0132   538 ;  SAVE RECORD NUMBER IN RFA AND RP, UNLOCK ANY AUTOMATICALLY LOCKED

                                     0132   539 ;  RECORD, AND CALCULATE THE VBN AND OFFSET OF THE RECORD

                                     0132   540 ;

         10 A8            55     D0  0132   541 SETRFA:	MOVL	R5,RAB$W_RFA(R8)		; SET RFA FROM REC #

                       14 A8     B4  0136   542 	CLRW	RAB$W_RFA+4(R8)			; BE NEAT

                                     0139   543 ;

                                     0139   544 ;  IF IRB$V_UNLOCK_RP SET, UNLOCK THE CURRENT RECORD

                                     0139   545 ;

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  18

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



            11            5C     E9  0139   546 ULKRP:	BLBC	AP,10$				; DONT UNLOCK THIS TIME - 

                                     013C   547 						;  MAINTAIN AUTO LOCK

                                     013C   548 	CSB	#IRB$V_UNLOCK_RP,(R9)		; CLEAR UNLOCK FLAG

            69            2D     E5  013C       		BBCC	#IRB$V_UNLOCK_RP,(R9),30007$

                          00         013F       

                                     0140       30007$:

            51         34 A9     D0  0140   549 	MOVL	IRB$L_RP(R9),R1			; GET RECORD #

                          52     D4  0144   550 	CLRL	R2				; CLEAR HI WORD OF REC #

                          53     DD  0146   551 	PUSHL	R3				; SAVE CACHE FLAGS

                          FEB5'  30  0148   552 	BSBW	RM$UNLOCK			; UNLOCK THE RECORD

                                     014B   553 						; (IGNORE POSSIBLE ERROR)

                          08     BA  014B   554 	POPR	#^M<R3>				; RESTORE CACHE FLAGS

                                     014D   555 10$:

                                     014D   556 ;

                                     014D   557 ;  SET RP AND CHECK FOR VALIDITY

                                     014D   558 ;

         34 A9            55     D0  014D   559 	MOVL	R5,IRB$L_RP(R9)			; SAVE REC # IN RP

                          9E     15  0151   560 	BLEQ	ERRKEY				; GET OUT ON BAD REC #

            55         54 AA     D1  0153   561 	CMPL	IFB$L_MRN(R10),R5		; REC # WITHIN BOUNDS?

                          9B     19  0157   562 	BLSS	ERRMRN				; BRANCH IF NOT

                                     0159   563 ;

                                     0159   564 ;  CALCULATE VBN AND OFFSET

                                     0159   565 ;

                          55     D7  0159   566 	DECL	R5				; REC # - 1

            50         5E AA     3C  015B   567 	MOVZWL	IFB$W_BKS_RECS(R10),R0		; GET # OF RECORDS PER BUCKET

                          56     D4  015F   568 	CLRL	R6				; ZERO EXTEND DIVIDEND

            55            50     7B  0161   569 	EDIV	R0,R5,R1,IRB$L_RP_OFF(R9)	; COMPUTE BKT # (IN R1)

         38 A9            51         0164       

                                     0167   570 						; AND REC-IN-BKT (IN RP_OFF)

         38 A9         42 A9     A4  0167   571 	MULW2	IRB$W_CSIZ(R9),IRB$L_RP_OFF(R9)	; COMPUTE OFFSET IN BUCKET

            52         4A AA     9A  016C   572 	MOVZBL	IFB$B_BKS(R10),R2		; GET # BLOCKS PER BUCKET

            51            52     C4  0170   573 	MULL2	R2,R1				; GET RELATIVE VBN

            51         58 AA     C0  0173   574 	ADDL2	IFB$L_DVBN(R10),R1		; AND POINT PAST PROLOG

                          54     D5  0177   575 	TSTL	R4				; ALREADY GOT BUFFER?

                          20     12  0179   576 	BNEQ	SETOFF				; BRANCH IF YES

         30 A9            51     D0  017B   577 	MOVL	R1,IRB$L_CURVBN(R9)		; SAVE VBN FOR LATER

            52            51     C0  017F   578 	ADDL2	R1,R2				; COMPUTE END VBN+1

         44 AA            52     D1  0182   579 	CMPL	R2,IFB$L_EBK(R10)		; PAST EOF?

                          1D     1A  0186   580 	BGTRU	ERREOF				; BRANCH IF YES

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  19

020             GETREC2  -  ROUTINE TO LOCATE RECORD IN BUFFER                                                                   (1)



                                     0188   582 ;

                                     0188   583 ;  ENTRY POINT TO READ A BUCKET VIA RM$CACHEC

                                     0188   584 ;

                                     0188   585 ;  INPUTS:

                                     0188   586 ;

                                     0188   587 ;	R8-R11		SAME AS FOR RM$GET2

                                     0188   588 ;	R3		CACHE FLAGS

                                     0188   589 ;	R1		VBN

                                     0188   590 ;	IRB$L_RP_OFF	OFFSET TO RECORD CELL IN BUCKET

                                     0188   591 ;

                                     0188   592 ;  OUTPUTS:

                                     0188   593 ;

                                     0188   594 ;	R5		RECORD ADDRESS

                                     0188   595 ;	R4		BDB ADDRESS (0 ON FAILURE)

                                     0188   596 ;	R0		STATUS

                                     0188   597 ;	R1-R3,AP	DESTROYED

                                     0188   598 ;	IRB$L_CURBDB	BDB ADDRESS

                                     0188   599 ;

                                     0188   600 RM$READBKT2::

                                     0188   601 	$CACHEC	VBN=R1,SIZE=IFB$W_BKS_BYTES(R10),FLAGS=R3,ERR=ERRCSH	; ACCESSBKT

            52         5C AA     3C  0188       		.IIF DIF <IFB$W_BKS_BYTES(R10)><R2>,	MOVZWL	IFB$W_BKS_BYTES(R10),R2

                          FE71'  30  018C       		BSBW	RM$CACHEC

            19            50     E9  018F       		.IIF NB <ERRCSH>,	BLBC	R0,ERRCSH

         20 A9            54     D0  0192   602 	MOVL	R4,IRB$L_CURBDB(R9)		; SAVE BDB ADDRESS

            55         38 A9     C0  0196   603 	ADDL2	IRB$L_RP_OFF(R9),R5		; ADD IN RECORD OFFSET TO BUFFER

                                     019A   604 						; ADDR GIVING RECORD ADDR

                                 05  019A   605 	RSB

                                     019B   606 ;

                                     019B   607 ;  ALREADY HAVE BDB.  COMPUTE NEW RECORD BUFFER ADDRESS.

                                     019B   608 ;

         14 A4         38 A9     C1  019B   609 SETOFF:	ADDL3	IRB$L_RP_OFF(R9),BDB$L_ADDR(R4),R5

                          55         01A0       

                                     01A1   610 	RMSSUC					; SHOW SUCCESS

            50            01     D0  01A1       		MOVL	#1,R0

                                 05  01A4   611 	RSB

                                     01A5   612 ;

                                     01A5   613 ;  HANDLE ERRORS

                                     01A5   614 ;

                                     01A5   615 ERREOF:	RMSERR	EOF				; SAY IT'S EOF

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

                                 05  01AA   616 	RSB

                                     01AB   617 ;

                          54     D4  01AB   618 ERRCSH:	CLRL	R4				; SHOW NO BDB ACCESSED

                                 05  01AD   619 	RSB

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  20

020             GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC                                                                  (1)



                                     01AE   621 	.SBTTL	GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOCK RECORD

                                     01AE   622 ;++

                                     01AE   623 ;

                                     01AE   624 ;  THIS ROUTINE PERFORMS THE FOLLOWING FUNCTIONS:

                                     01AE   625 ;

                                     01AE   626 ;	1. CHECKS R0 STATUS CODE AND IF IN ERROR CHECKS FOR EOF.

                                     01AE   627 ;	   IF EOF AND RAC IS NOT SEQUENTIAL, CHANGES THE STATUS TO RNF

                                     01AE   628 ;	   (RECORD NOT FOUND) UNLESS THE NXR ROP BIT IS SET, IN WHICH CASE

                                     01AE   629 ;	   IT CHANGES THE STATUS TO OK_RNF.

                                     01AE   630 ;

                                     01AE   631 ;	2. IF R0 DOES NOT INDICATE AN ERROR, CHECKS THE CONTROL BYTE OF THE

                                     01AE   632 ;	   RECORD TO SEE IF RECORD EXISTS.  IF NOT AND RAC NOT = SEQ,

                                     01AE   633 ;	   RETURNS RNF (DEL IF RAC=RFA) UNLESS THE NXR ROP BIT IS SET, IN WHICH

                                     01AE   634 ;	   CASE IT RETURNS EITHER OK_RNF OR OK_DEL.  IF RAC = SEQ, NON-EXISTENT

                                     01AE   635 ;	   RECORDS ARE SKIPPED UNTIL EITHER A VALID RECORD IS FOUND OR EOF

                                     01AE   636 ;	   IS ENCOUNTERED.

                                     01AE   637 ;

                                     01AE   638 ;	3. ONCE A VALID RECORD IS FOUND IT IS LOCKED IF SO REQUIRED.

                                     01AE   639 ;

                                     01AE   640 ;  INPUTS:

                                     01AE   641 ;

                                     01AE   642 ;	R0		STATUS CODE

                                     01AE   643 ;	R4		BDB ADDRESS IF ONE, ELSE 0

                                     01AE   644 ;	R5		RECORD CELL ADDRESS

                                     01AE   645 ;	R8-R11		SAME AS FOR RM$GET2

                                     01AE   646 ;	IRB$L_RP	CURRENT RECORD #

                                     01AE   647 ;

                                     01AE   648 ;  OUTPUTS:

                                     01AE   649 ;

                                     01AE   650 ;	R7		STATUS CODE

                                     01AE   651 ;	R5		RECORD CELL ADDRESS + 1 (I.E., PAST CONTROL BYTE)

                                     01AE   652 ;	R0-R3,R6,AP	DESTROYED

                                     01AE   653 ;--

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  21

020             GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC                                                                  (1)



                                     01AE   655 GETFIND2:

            57            50     D0  01AE   656 	MOVL	R0,R7				; SAVE STATUS CODE

            56            50     E9  01B1   657 	BLBC	R0,CHKEOF			; BRANCH ON ERROR

                                     01B4   658 	ASSUME	FAB$C_SEQ EQ 0

                       1E A8     95  01B4   659 	TSTB	RAB$B_RAC(R8)			; SEQUENTIAL ACCESS MODE?

                          20     13  01B7   660 	BEQL	SEQACC				; BRANCH IF YES

            08            85     91  01B9   661 	CMPB	(R5)+,#DLC$M_REC		; DOES RECORD EXIST?

                          69     13  01BC   662 	BEQL	LOCK				; BRANCH IF YES

         FF A5         F3 8F     93  01BE   663 	BITB	#^C <DLC$M_DELETED!DLC$M_REC>,-1(R5)	; VALID BIT COMBINATION?

                          5F     12  01C3   664 	BNEQ	ERRIRC_BR			; BRANCH IF NOT

            68            37     E0  01C5   665 	BBS	#RAB$V_NXR+ROP,(R8),RTNNXR	; BRANCH IF USER WANTS THE

                          0D         01C8       

                                     01C9   666 						; NON-EXISTENT RECORD

            02         1E A8     91  01C9   667 	CMPB	RAB$B_RAC(R8),#RAB$C_RFA	; IS RAC=RFA?

                          4B     12  01CD   668 	BNEQ	ERRRNF				; BRANCH IF NOT (ERR = RNF)

                                     01CF   669 	RMSERR	DEL,R7				; SET ERROR CODE

            57       8262 8F     3C  01CF       		MOVZWL	#<RMS$_DEL&^XFFFF>,R7

                          49     11  01D4   670 	BRB	GF2XT1

                                     01D6   671 RTNNXR:	$PSECT_BR	L$RMS2

                          FF28'  31  01D6       		BRW	L$RMS215

                                     01D9       		.SAVE

                                 00000101       		.PSECT	L$RMS2,GBL,NOWRT

                                     0101       L$RMS215:

         FF A5            02     E1  0101   672 	BBC	#DLC$V_DELETED,-1(R5),OK_RNF	; BRANCH IF RECORD NOT DELETED

                          07         0105       

                                     0106   673 	RMSSUC	OK_DEL,R7			; INDICATE READ OF DELETED RECORD

            57       8041 8F     3C  0106       		MOVZWL	#<RMS$_OK_DEL&^XFFFF>,R7

                          05     11  010B   674 	BRB	LOCKBR				; AND CONTINUE

                                     010D   675 OK_RNF:	RMSSUC	OK_RNF,R7			; INDICATE READ OF NON-EX REC.

            57       8049 8F     3C  010D       		MOVZWL	#<RMS$_OK_RNF&^XFFFF>,R7

                          0112'  31  0112   676 LOCKBR:	BRW	LOCK				; AND CONTINUE

                                     0115   677 	$PSECT_RESTORE

                                 000001D9       		.RESTORE

                                     01D9   678 ;

                                     01D9   679 ;  HANDLE SEQUENTIAL ACCESS

                                     01D9   680 ;  IF RECORD DELETED OR NEVER EXISTED TRY NEXT RECORD.

                                     01D9   681 ;

            08            85     91  01D9   682 SEQACC:	CMPB	(R5)+,#DLC$M_REC		; DOES RECORD EXIST?

                          49     13  01DC   683 	BEQL	LOCK				; BRANCH IF YES

         FF A5         F3 8F     93  01DE   684 	BITB	#^C <DLC$M_DELETED!DLC$M_REC>,-1(R5)	; VALID BIT COMBINATION?

                          3F     12  01E3   685 	BNEQ	ERRIRC_BR			; BRANCH IF NOT

         42 A9            01     78  01E5   686 	ASHL	#1,IRB$W_CSIZ(R9),R0		; GET TWICE THE CELL SIZE

                          50         01E9       

            50         38 A9     A0  01EA   687 	ADDW2	IRB$W_RP_OFF(R9),R0		; PLUS THE RECORD OFFSET

                                     01EE   688 						; (I.E. THE END OF THE NEXT REC)

            50         5C AA     B1  01EE   689 	CMPW	IFB$W_BKS_BYTES(R10),R0		; IS THE NEXT RECORD IN THIS BKT?

                          0A     1E  01F2   690 	BGEQU	10$				; BRANCH IF YES (OMIT RELEASE)

                          53     D4  01F4   691 	CLRL	R3				; NO OPTIONS WANTED

                          FE07'  30  01F6   692 	BSBW	RM$RELEASE			; RELEASE ACCESS TO BUCKET

                          54     D4  01F9   693 	CLRL	R4				; SHOW NO BDB

                       20 A9     D4  01FB   694 	CLRL	IRB$L_CURBDB(R9)		; AND NO CURRENT BDB

            01         34 A9     C1  01FE   695 10$:	ADDL3	IRB$L_RP(R9),#1,R5		; GET NEXT RECORD #

                          55         0202       

                          53     D4  0203   696 	CLRL	R3				; INDICATE GET

                          FF26   30  0205   697 	BSBW	GETNXTREC2			; GET THE RECORD

                          A4     11  0208   698 	BRB	GETFIND2			; AND CHECK IT OUT

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  22

020             GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC                                                                  (1)



                                     020A   700 ;

                                     020A   701 ;  GOT AN ERROR.

                                     020A   702 ;

                                     020A   703 ;  IF ERROR = EOF PERFORM FOLLOWING:

                                     020A   704 ;

                                     020A   705 ;	IF RAC NOT = SEQ, CHANGE ERROR CODE TO RECORD NOT FOUND, UNLESS

                                     020A   706 ;	USER IS READING NON-EXISTENT RECORDS, IN WHICH CASE SET STATUS TO

                                     020A   707 ;	OK_RNF AND CONTINUE

                                     020A   708 ;

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

                          52     12  020F   710 	BNEQ	GF2XIT				; BRANCH IF NOT

                                     0211   711 	ASSUME	RAB$C_SEQ EQ 0

                       1E A8     95  0211   712 	TSTB	RAB$B_RAC(R8)			; RAC = SEQ?

                          4D     13  0214   713 	BEQL	GF2XIT				; BRANCH IF YES

            68            37     E0  0216   714 	BBS	#RAB$V_NXR+ROP,(R8),OK_RNF1	; MODIFY STATUS AND CONTINUE

                          07         0219       

                                     021A   715 ERRRNF: RMSERR	RNF,R7				; SET ERROR CODE TO REC. NOT FOUND

            57       82B2 8F     3C  021A       		MOVZWL	#<RMS$_RNF&^XFFFF>,R7

                          42     11  021F   716 GF2XT1:	BRB	GF2XIT

                                     0221   717 OK_RNF1:

                          FEE9'  31  0221   718 	BRW	OK_RNF				; EXTENDED BRANCH

                                     0224   719 ;

                                     0224   720 ERRIRC_BR:

                          FE60'  31  0224   721 	BRW	ERRIRC1				; EXTENDED BRANCH

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  23

020             GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC                                                                  (1)



                                     0227   723 ;

                                     0227   724 ;  IF RECORD LOCKING NOT REQUIRED, RETURN TO CALLER.

                                     0227   725 ;  OTHERWISE, IF THE FILE IS WRITE ACCESSED AND THE NLK (NO LOCK) ROP

                                     0227   726 ;  BIT IS CLEAR, LOCK THE RECORD.  IF THE FILE IS EITHER NOT WRITE ACCESSED OR

                                     0227   727 ;  NLK IS SET,  NEED MERELY CHECK THAT NO OTHER USER HAS RECORD LOCKED.

                                     0227   728 ;

            6A            33     E0  0227   729 LOCK:	BBS	#IFB$V_NORECLK,(R10),GF2XIT	; BRANCH IF NO LOCKING

                          38         022A       

            51         34 A9     D0  022B   730 	MOVL	IRB$L_RP(R9),R1			; SET REC #

                          52     D4  022F   731 	CLRL	R2				; AND HIGH HALF

            6A            30     E1  0231   732 	BBC	#IFB$V_WRTACC,(R10),QLOCK	; BRANCH IF NOT WRITE ACCESSED

                          20         0234       

            68            34     E0  0235   733 	BBS	#RAB$V_NLK+ROP,(R8),QLOCK	; OR IF LOCK NOT WANTED

                          1C         0238       

                          FDC4'  30  0239   734 	BSBW	RM$LOCK				; LOCK RECORD

            21            50     E9  023C   735 	BLBC	R0,SETR7			; BRANCH IF FAILURE

                          54     D5  023F   736 	TSTL	R4				; IS A BUCKET ACCESSED?

                          0F     13  0241   737 	BEQL	CHKEOF1				; BRANCH IF NONE

            68            32     E0  0243   738 CHKULK:	BBS	#RAB$V_ULK+ROP,(R8),CHKR7	; BRANCH IF MANUAL UNLOCKING

                          14         0246       

       8039 8F            50     B1  0247   739 	CMPW	R0,#RMS$_OK_ALK&^XFFFF		; WAS RECORD ALREADY LOCKED

                          0D     13  024C   740 	BEQL	CHKR7				; YES, DON'T UNLOCK AUTOMATICALLY

            69            2D     E3  024E   741 	BBCS	#IRB$V_UNLOCK_RP,(R9),CHKR7	; INDICATE UNLOCK REQUIRED

                          09         0251       

                                     0252   742 						; AND BRANCH

                                     0252   743 ;

                                     0252   744 ;  WE HAVE JUST LOCKED A RECORD BUT THERE IS NO BUCKET ACCESSED.

                                     0252   745 ;  COULD ONLY BE A LOCK ON A NON-EXISTENT RECORD PAST EOF.  CHECK THAT

                                     0252   746 ;  RECORD IS STILL PAST EOF TO AVOID RETURNING A FALSE STATUS OF OK_RNF

                                     0252   747 ;  IF RECORD HAS BEEN ADDED TO FILE SINCE WE LAST CHECKED.

                                     0252   748 ;

                                     0252   749 CHKEOF1:

                                     0252   750 	$PSECT_BR	L$RMS2

                          FEC0'  31  0252       		BRW	L$RMS216

                                     0255       		.SAVE

                                 00000115       		.PSECT	L$RMS2,GBL,NOWRT

                                     0115       L$RMS216:

            53         4A AA     9A  0115   751 	MOVZBL	IFB$B_BKS(R10),R3		; GET # BLKS/BKT

            53         30 A9     C0  0119   752 	ADDL2	IRB$L_CURVBN(R9),R3		; + CURRENT VBN

            53         44 AA     D1  011D   753 	CMPL	IFB$L_EBK(R10),R3		; STILL PAST EOF?

                          03     1E  0121   754 	BGEQU	10$				; BRANCH IF NOT

                          011D'  31  0123   755 	BRW	CHKULK				; CONTINUE

                          FED7'  30  0126   756 10$:	BSBW	RM$UNLOCK			; UNLOCK THE RECORD

            51         30 A9     D0  0129   757 	MOVL	IRB$L_CURVBN(R9),R1		; RESTORE VBN

                                     012D   758 	$CSHFLAGS	<>			; NO NEED TO LOCK

                          53     D4  012D       		CLRL R3

                          0056'  30  012F   759 	BSBW	RM$READBKT2			; GO READ THE BUCKET

                          0079'  31  0132   760 	BRW	GETFIND2			; AND CHECK IT OUT

                                     0135   761 	$PSECT_RESTORE

                                 00000255       		.RESTORE

                                     0255   762 ;

                                     0255   763 ;  EITHER NOT WRITE ACCESSED OR NLK SET.

                                     0255   764 ;  NEED MERELY CHECK THAT RECORD IS NOT LOCKED FROM READERS.

                                     0255   765 ;

                          FDA8'  30  0255   766 QLOCK:	BSBW	RM$QUERY_LCK			; CHECK IF READ OK

            05            50     E9  0258   767 	BLBC	R0,SETR7			; BRANCH ON ERROR

                                     025B   768 ;

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  24

020             GETFIND2  -  COMMON $GET AND $ FIND CODE TO LOC                                                                  (1)



                                     025B   769 ;  UPDATE STATUS IN R7 WITH THE RESULT OF LOCK OR QUERYLOCK UNLESS R7

                                     025B   770 ;  ALREADY HAS SOME STATUS OTHER THAN RMS$_NORMAL

                                     025B   771 ;

            01            57     B1  025B   772 CHKR7:	CMPW	R7,#RMS$_NORMAL&^XFFFF		; R7 = NORMAL?

                          03     12  025E   773 	BNEQ	GF2XIT				; BRANCH IF NOT

            57            50     D0  0260   774 SETR7:	MOVL	R0,R7				; UPDATE STATUS

                                 05  0263   775 GF2XIT:	RSB

                                     0264   776 

                                     0264   777 	.END

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  25

SYMBOL TABLE                                                                                                                     (1)



$$.PSECT_EP    = 00000011            CSH$M_NOWAIT   = 00000002            FAB$L_FOP        00000004            

$$.TMP         = 00000000            CSH$M_READAHEAD= 00000008            FAB$L_JNL        00000020            

$$RMSTEST      = 0000001A            CSH$V_LOCK     = 00000000            FAB$L_MRN        00000038            

$$RMS_PBUGCHK  = 00000010            CSH$V_NOBUFFER = 00000004            FAB$L_NAM        00000028            

$$RMS_TBUGCHK  = 00000008            CSH$V_NOREAD   = 00000002            FAB$L_SDC        00000044            

$$RMS_UMODE    = 00000004            CSH$V_NOWAIT   = 00000001            FAB$L_STS        00000008            

BDB$B_BID        00000008            CSH$V_READAHEAD= 00000003            FAB$L_STV        0000000C            

BDB$B_BLN        00000009            DLC$M_DELETED  = 00000004            FAB$L_XAB        00000024            

BDB$B_FLGS       0000000A            DLC$M_REC      = 00000008            FAB$M_BIO      = 00000020            

BDB$B_POST_CCTL  00000023            DLC$V_DELETED  = 00000002            FAB$M_BLK      = 00000008            

BDB$B_PRE_CCTL   00000022            DLC$V_REC      = 00000003            FAB$M_BRO      = 00000040            

BDB$B_REL_VBN    00000020            ERRCSH           000001AB R     02   FAB$M_CBT      = 00200000            

BDB$B_USECNT     0000000B            ERREOF           000001A5 R     02   FAB$M_CIF      = 02000000            

BDB$B_VAL_VBNS   00000021            ERRIRC           0000003F R     02   FAB$M_CR       = 00000002            

BDB$C_BID      = 0000000C            ERRIRC1          00000087 R     04   FAB$M_CTG      = 00100000            

BDB$C_BLN        00000028            ERRIRC_BR        00000224 R     02   FAB$M_DEL      = 00000004            

BDB$K_BLN        00000028            ERRKBF           000000EE R     02   FAB$M_DFW      = 00000020            

BDB$L_ADDR       00000014            ERRKEY           000000F1 R     02   FAB$M_DLT      = 00008000            

BDB$L_BLINK      00000004            ERRKSZ           000000EB R     02   FAB$M_DMO      = 00001000            

BDB$L_CURBUFADR  00000024            ERRMRN           000000F4 R     02   FAB$M_ESC      = 08000000            

BDB$L_FLINK      00000000            ERRRAC           000000E8 R     02   FAB$M_EXE      = 00000080            

BDB$L_IOSB       00000020            ERRRHB           0000007F R     04   FAB$M_FTN      = 00000001            

BDB$L_OWN        0000000C            ERRRNF           0000021A R     02   FAB$M_GET      = 00000002            

BDB$L_VBN        00000018            ERRRTB           000000AE R     02   FAB$M_INP      = 00080000            

BDB$L_WAIT       0000001C            ERRUBF           00000045 R     02   FAB$M_JNL      = 00400000            

BDB$L_WK1        00000020            ERRUBF1          0000009A R     04   FAB$M_KFO      = 40000000            

BDB$M_AST_DCL  = 00000040            ERRUSZ           00000042 R     02   FAB$M_MSE      = 00000010            

BDB$M_DRT      = 00000002            FAB$B_BID        00000000            FAB$M_MXV      = 00000002            

BDB$M_IOP      = 00000004            FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

BDB$M_LKDINWS  = 00000080            FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

BDB$M_NOLOCATE = 00000010            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

BDB$M_PRM      = 00000008            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

BDB$M_VAL      = 00000001            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

BDB$M_WFO      = 00000020            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

BDB$V_AST_DCL  = 00000006            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

BDB$V_DRT      = 00000001            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

BDB$V_IOP      = 00000002            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

BDB$V_LKDINWS  = 00000007            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

BDB$V_NOLOCATE = 00000004            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

BDB$V_PRM      = 00000003            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

BDB$V_VAL      = 00000000            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

BDB$V_WFO      = 00000005            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

BDB$W_NUMB       00000010            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

BDB$W_SIZE       00000012            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

BIT...         = 0001C134            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

CHKEOF           0000020A R     02   FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

CHKEOF1          00000252 R     02   FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

CHKLOC           0000004C R     02   FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

CHKR7            0000025B R     02   FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

CHKULK           00000243 R     02   FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

CLEAN1           00000000 R     04   FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

CLEANUP          00000000 R     02   FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

CLEARP           000000D9 R     04   FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

CLN1BR           00000084 R     04   FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

CSH$M_LOCK     = 00000001            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

CSH$M_NOBUFFER = 00000010            FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

CSH$M_NOREAD   = 00000004            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  26

SYMBOL TABLE                                                                                                                     (1)



FAB$M_UPI      = 00000040            FAB$W_DEQ        00000014            IFB$L_LAST_FAB   00000024            

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

FAB$S_ORG      = 00000004            FAB$W_MRS        00000036            IFB$L_MRN        00000054            

FAB$S_PPF_RAT  = 00000008            GBL...         = 00000000            IFB$L_NRP_LNK    00000050            

FAB$V_BIO      = 00000005            GETFIND2         000001AE R     02   IFB$L_NWA_PTR    00000028            

FAB$V_BLK      = 00000003            GETNXTREC2       0000012E R     02   IFB$L_PRIM_DEV   00000000            

FAB$V_BRO      = 00000006            GETREC2          000000D4 R     02   IFB$L_RLB_LNK    0000002C            

FAB$V_CBT      = 00000015            GF2XIT           00000263 R     02   IFB$L_RNS_LEN    00000050            

FAB$V_CIF      = 00000019            GF2XT1           0000021F R     02   IFB$M_BIO      = 00000020            

FAB$V_CR       = 00000001            IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            

FAB$V_CTG      = 00000014            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

FAB$V_DEL      = 00000002            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

FAB$V_DFW      = 00000005            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

FAB$V_DLT      = 0000000F            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

FAB$V_DMO      = 0000000C            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

FAB$V_ESC      = 0000001B            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

FAB$V_EXE      = 00000007            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

FAB$V_FTN      = 00000000            IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            

FAB$V_GET      = 00000001            IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            

FAB$V_INP      = 00000013            IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            

FAB$V_JNL      = 00000016            IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            

FAB$V_KFO      = 0000001E            IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            

FAB$V_MSE      = 00000004            IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            

FAB$V_MXV      = 00000001            IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            

FAB$V_NAM      = 00000018            IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            

FAB$V_NEF      = 0000000A            IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            

FAB$V_NFS      = 00000010            IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            

FAB$V_NIL      = 00000005            IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            

FAB$V_OFP      = 0000001D            IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            

FAB$V_ORG      = 00000004            IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            

FAB$V_POS      = 00000008            IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            

FAB$V_PPF      = 00000012            IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            

FAB$V_PPF_IND  = 0000000E            IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            

FAB$V_PPF_RAT  = 00000006            IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            

FAB$V_PRN      = 00000002            IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            

FAB$V_PUT      = 00000000            IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            

FAB$V_RCK      = 00000017            IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            

FAB$V_RWC      = 0000000B            IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            

FAB$V_RWO      = 00000007            IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            

FAB$V_SCF      = 0000000E            IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            

FAB$V_SHRDEL   = 00000002            IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            

FAB$V_SHRGET   = 00000001            IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            

FAB$V_SHRPUT   = 00000000            IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            

FAB$V_SHRUPD   = 00000003            IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            

FAB$V_SPL      = 0000000D            IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            

FAB$V_SQO      = 00000006            IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            

FAB$V_SUP      = 00000002            IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            

FAB$V_TEF      = 0000001C            IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            

FAB$V_TMD      = 00000004            IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            

FAB$V_TMP      = 00000003            IFB$L_EBK        00000044            IFB$V_TEF      = 00000036            

FAB$V_TRN      = 00000004            IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            

FAB$V_UFM      = 0000001A            IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            

FAB$V_UFO      = 00000011            IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            

FAB$V_UPD      = 00000003            IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            

FAB$V_UPI      = 00000006            IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            

FAB$V_WCK      = 00000009            IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            

FAB$W_BLS        0000003C            IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  27

SYMBOL TABLE                                                                                                                     (1)



IFB$W_CHNL       00000020            IRB$L_RP_OFF     00000038            LOCKBR           00000112 R     04   

IFB$W_DEQ        0000004E            IRB$L_RP_VBN     00000034            LONG_PROBE       000000AB R     02   

IFB$W_DEVBUFSIZ  00000038            IRB$L_RRV_VBN    0000004C            MOVE_MODE        00000060 R     02   

IFB$W_EBK0       00000044            IRB$L_TEMP0      00000044            MOVREC           0000007A R     02   

IFB$W_EBK2       00000046            IRB$L_TEMP1      00000048            NF$NETWORK1      00000000 R     05   

IFB$W_FFB        00000048            IRB$V_ASYNC    = 00000023            NF$NETWORK9      00000009 R     05   

IFB$W_IOS2       0000000E            IRB$V_ASYNCWAIT= 00000024            NT$FIND2         ********   X   05   

IFB$W_LRL        0000003E            IRB$V_BIO_LAST = 00000027            NT$GET2          ********   X   05   

IFB$W_MRS        0000004C            IRB$V_BRO_SW   = 00000028            NTFIND           000000D1 R     02   

IFB$W_RTDEQ      0000003A            IRB$V_BUSY     = 00000020            NTGET            00000003 R     02   

IRB$B_BCNT       00000040            IRB$V_DAP_CONN = 0000003E            NTRETF           000000C0 R     02   

IRB$B_BID        00000008            IRB$V_DAP_FMODE= 0000003F            NTRETG           00000016 R     02   

IRB$B_BLN        00000009            IRB$V_DUP      = 0000002C            NULL_REC         0000003C R     02   

IRB$B_EFN        0000000B            IRB$V_EOF      = 00000021            OK_RNF           0000010D R     04   

IRB$B_KEYSZ      00000051            IRB$V_FIND     = 00000029            OK_RNF1          00000221 R     02   

IRB$B_MBC        00000041            IRB$V_FIND_LAST= 00000025            PIO$GL_FMLH      ********   X   02   

IRB$B_MODE       0000000A            IRB$V_IDX_ERR  = 00000031            PROBEB           0000006B R     02   

IRB$B_NRP_ID     00000030            IRB$V_LOCKABOVE= 00000002            QLOCK            00000255 R     02   

IRB$B_NRP_KREF   00000031            IRB$V_NEW_IDX  = 00000003            RAB$B_BID        00000000            

IRB$B_NVBNS      00000048            IRB$V_POSINSERT= 00000000            RAB$B_BLN        00000001            

IRB$B_POST_CCTL  00000045            IRB$V_PPF_EOF  = 0000002E            RAB$B_KRF        00000035            

IRB$B_PPF_ISI    0000003E            IRB$V_PPF_FNDSV= 00000030            RAB$B_KSZ        00000034            

IRB$B_PRE_CCTL   00000044            IRB$V_PPF_IMAGE= 00000022            RAB$B_MBC        00000037            

IRB$B_RFA_ID     00000058            IRB$V_PPF_SKIP = 0000002F            RAB$B_MBF        00000036            

IRB$B_RP_ID      00000038            IRB$V_PUTS_LAST= 00000026            RAB$B_PSZ        00000034            

IRB$B_RP_KREF    00000039            IRB$V_RAHWBH   = 0000002A            RAB$B_RAC        0000001E            

IRB$B_RRV_ID     00000050            IRB$V_SKIP_NEXT= 0000002B            RAB$B_ROP1       00000005            

IRB$B_SRCHFLAGS  00000043            IRB$V_SRCHGT   = 00000001            RAB$B_ROP2       00000006            

IRB$B_STOPLEVEL  00000042            IRB$V_UNLOCK_RP= 0000002D            RAB$B_ROP3       00000007            

IRB$C_BID      = 0000000A            IRB$V_WRITE    = 00000029            RAB$B_TMO        0000001F            

IRB$C_BLN_IDX    0000006C            IRB$W_CSIZ       00000042            RAB$C_BID      = 00000001            

IRB$C_BLN_REL    00000048            IRB$W_DUP_POS    00000032            RAB$C_BLN        00000044            

IRB$C_BLN_SEQ    0000004C            IRB$W_IOS2       0000000E            RAB$C_KEY      = 00000001            

IRB$K_BLN_IDX    0000006C            IRB$W_NRP_OFF    00000030            RAB$C_RFA      = 00000002            

IRB$K_BLN_REL    00000048            IRB$W_OWN_ID     0000003C            RAB$C_SEQ      = 00000000            

IRB$K_BLN_SEQ    0000004C            IRB$W_OWN_ISI    0000003E            RAB$K_BLN        00000044            

IRB$L_ARGLST     00000018            IRB$W_ROVHDSZ    00000044            RAB$L_BKT        00000038            

IRB$L_ASBADDR    00000014            IRB$W_RP_OFF     00000038            RAB$L_CTX        00000018            

IRB$L_BKPBITS    00000004            IRB$W_RTOTLSZ    00000046            RAB$L_DCT        00000038            

IRB$L_BWB        0000000C            IRB$W_SAVE_POS   00000052            RAB$L_FAB        0000003C            

IRB$L_CURBDB     00000020            KEYRAC           00000101 R     02   RAB$L_KBF        00000030            

IRB$L_CURVBN     00000030            L$RMS013         00000000 R     06   RAB$L_PBF        00000030            

IRB$L_IFAB_LNK   00000000            L$RMS20          00000000 R     04   RAB$L_RBF        00000028            

IRB$L_IOS        0000000C            L$RMS210         000000D4 R     04   RAB$L_RFA0       00000010            

IRB$L_IOS4       00000010            L$RMS211         000000E1 R     04   RAB$L_RHB        0000002C            

IRB$L_IRAB_LNK   0000001C            L$RMS212         000000E8 R     04   RAB$L_ROP        00000004            

IRB$L_KEYBUF     00000048            L$RMS214         000000EF R     04   RAB$L_STS        00000008            

IRB$L_LAST_RAB   00000024            L$RMS215         00000101 R     04   RAB$L_STV        0000000C            

IRB$L_LOCK_BDB   0000005C            L$RMS216         00000115 R     04   RAB$L_UBF        00000024            

IRB$L_NRP        0000002C            L$RMS22          00000035 R     04   RAB$M_ASY      = 00000001            

IRB$L_NRP_OFF    00000030            L$RMS23          0000005E R     04   RAB$M_BIO      = 00000800            

IRB$L_NRP_VBN    0000002C            L$RMS24          00000087 R     04   RAB$M_CCO      = 80000000            

IRB$L_NXTBDB     00000028            L$RMS25          00000093 R     04   RAB$M_CVT      = 04000000            

IRB$L_OWNER_ID   0000003C            L$RMS26          0000009A R     04   RAB$M_EOF      = 00000100            

IRB$L_RFA_VBN    00000054            L$RMS27          000000A1 R     04   RAB$M_FDL      = 00000040            

IRB$L_RLB_ADDR   00000044            L$RMS28          000000C5 R     04   RAB$M_HSH      = 00000080            

IRB$L_RP         00000034            LOCK             00000227 R     02   RAB$M_KGE      = 00200000            

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  28

SYMBOL TABLE                                                                                                                     (1)



RAB$M_KGT      = 00400000            RM$CACHEC        ********   X   02   RMS$_DEV       = 000184C4            

RAB$M_LIM      = 00004000            RM$CLN2_DEL      00000011 RG    04   RMS$_DIR       = 000184CC            

RAB$M_LOA      = 00002000            RM$CLN2_PUT      00000003 RG    04   RMS$_DME       = 000184D4            

RAB$M_LOC      = 00010000            RM$CLN2_UPD      0000000B RG    04   RMS$_DNA       = 000184DC            

RAB$M_MAS      = 00000020            RM$EXRMS         ********   X   04   RMS$_DNF       = 0001C04A            

RAB$M_NLK      = 00100000            RM$FIND2         000000B1 RG    02   RMS$_DNR       = 00018272            

RAB$M_NXR      = 00800000            RM$GET2          00000006 RG    02   RMS$_DPE       = 0001C03A            

RAB$M_PMT      = 40000000            RM$GETREC2_PUT   000000D6 RG    02   RMS$_DTP       = 000184E4            

RAB$M_PPF_IND  = 00004000            RM$LOCK          ********   X   02   RMS$_DUP       = 000184EC            

RAB$M_PPF_RAT  = 00003FC0            RM$QUERY_LCK     ********   X   02   RMS$_DVI       = 000184F4            

RAB$M_PTA      = 20000000            RM$READBKT2      00000188 RG    02   RMS$_ENT       = 0001C01A            

RAB$M_RAH      = 00000200            RM$RELEASE       ********   X   02   RMS$_ENV       = 00018724            

RAB$M_RLK      = 00080000            RM$RLS2          00000092 RG    02   RMS$_EOF       = 0001827A            

RAB$M_RNE      = 01000000            RM$UNLOCK        ********   X   04   RMS$_ESA       = 000184FC            

RAB$M_RNF      = 08000000            RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            

RAB$M_TMO      = 02000000            RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            

RAB$M_TPT      = 00000002            RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            

RAB$M_UIF      = 00000010            RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            

RAB$M_ULK      = 00040000            RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            

RAB$M_WAT      = 00020000            RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            

RAB$M_WBH      = 00000400            RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            

RAB$S_PPF_RAT  = 00000008            RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            

RAB$V_ASY      = 00000000            RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            

RAB$V_BIO      = 0000000B            RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            

RAB$V_CCO      = 0000001F            RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            

RAB$V_CVT      = 0000001A            RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            

RAB$V_EOF      = 00000008            RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            

RAB$V_FDL      = 00000006            RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            

RAB$V_HSH      = 00000007            RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            

RAB$V_KGE      = 00000015            RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            

RAB$V_KGT      = 00000016            RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            

RAB$V_LIM      = 0000000E            RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            

RAB$V_LOA      = 0000000D            RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            

RAB$V_LOC      = 00000010            RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            

RAB$V_MAS      = 00000005            RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            

RAB$V_NLK      = 00000014            RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            

RAB$V_NXR      = 00000017            RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            

RAB$V_PMT      = 0000001E            RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            

RAB$V_PPF_IND  = 0000000E            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

RAB$V_PPF_RAT  = 00000006            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

RAB$V_PTA      = 0000001D            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

RAB$V_RAH      = 00000009            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

RAB$V_RLK      = 00000013            RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            

RAB$V_RNE      = 00000018            RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            

RAB$V_RNF      = 0000001B            RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            

RAB$V_TMO      = 00000019            RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            

RAB$V_TPT      = 00000001            RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            

RAB$V_UIF      = 00000004            RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            

RAB$V_ULK      = 00000012            RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            

RAB$V_WAT      = 00000011            RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            

RAB$V_WBH      = 0000000A            RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            

RAB$W_ISI        00000002            RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            

RAB$W_RFA        00000010            RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            

RAB$W_RFA4       00000014            RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            

RAB$W_RSZ        00000022            RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            

RAB$W_USZ        00000020            RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            

RFARAC           000000F7 R     02   RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  29

SYMBOL TABLE                                                                                                                     (1)



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            RSZFIX           00000048 R     02   

RMS$_POS       = 00018624            RTNNXR           000001D6 R     02   

RMS$_PRM       = 0001862C            SEQACC           000001D9 R     02   

RMS$_PRV       = 0001829A            SEQRAC           00000119 R     02   

RMS$_QUO       = 00018634            SETNRP           0000008C R     02   

RMS$_RAB       = 0001863C            SETOFF           0000019B R     02   

RMS$_RAC       = 00018644            SETR7            00000260 R     02   

RMS$_RAT       = 0001864C            SETRFA           00000132 R     02   

RMS$_RBF       = 00018654            SETRSZ           00000088 R     02   

RMS$_RER       = 0001C0F4            TPT$L_FIND2      ********   X   02   

RMS$_REX       = 000182A2            TPT$L_GET2       ********   X   02   

RMS$_RFA       = 0001865C            ULKRP            00000139 R     02   

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            

RMS$_SEQ       = 000186AC            

RMS$_SHR       = 000186B4            

RMS$_SIZ       = 000186BC            

RMS$_SPL       = 0001C042            

RMS$_SQO       = 000186C4            

RMS$_STALL     = 00018001            

RMS$_STK       = 000186CC            

RMS$_SUC       = 00010001            

RMS$_SUP       = 000182D2            

RMS$_SUPERSEDE = 00010631            

RMS$_SYN       = 000186D4            

RMS$_SYS       = 0001C10C            

RM2GET          RELATIVE SPECIFIC GET AND FIND                   21-AUG-1978 21:53:13   VAX-11 MACRO X0.3-11               Page  30

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







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  

$RMS2            00000264      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$RMS2           00000135      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

NF$NETWORK       00000012      05     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

L$RMS0           00000006      06     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

6412. BYTES LEFT IN FREE MEMORY POOL.

1142. BYTES OF RECLAIMED MEMORY.

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

35 MLB DIR RDS - 1202 GETS TO DEFINE 35 MACROS. 96 INTER. FILE WRITES. 

